changeset 0:9790cfb46d03 draft default tip

Uploaded
author bgruening
date Mon, 07 Oct 2013 15:34:32 -0400
parents
children
files COPYING create_index.py prinseq-graphs-noPCA.pl prinseq-graphs.pl prinseq-lite.pl prinseq.xml readme.rst tool-data/example1.fasta tool-data/example1.fastq tool-data/example1.gd tool-data/example1.html tool-data/example1_cd.png tool-data/example1_ce.png tool-data/example1_df.png tool-data/example1_dl.png tool-data/example1_dm.png tool-data/example1_gc.png tool-data/example1_ld.png tool-data/example1_ns.png tool-data/example1_or.png tool-data/example1_pm.png tool-data/example1_pv.png tool-data/example1_qd.png tool-data/example1_qd2.png tool-data/example1_qd3.png tool-data/example1_td3.png tool-data/example1_td5.png tool-data/example1_trim_right_10.fastq tool-data/example_readme.txt tool_dependencies.xml
diffstat 30 files changed, 18398 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/COPYING	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/create_index.py	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+
+import os
+import sys
+
+o = open( sys.argv[1], 'w+' )
+
+
+o.write('<html> <body> <h1> InterProScan result summary page </h1> <ul>' )
+
+for filename in [f for f in os.listdir( sys.argv[2] ) if os.path.isfile( os.path.join( sys.argv[2], f) )]:
+    o.write( '<li><a href="%s"> %s </a></li>' % ( filename, os.path.splitext( filename )[0] ) )
+
+o.write( '</ul></body></html>' )
+o.close()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/prinseq-graphs-noPCA.pl	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,2655 @@
+#!/usr/bin/perl
+
+#===============================================================================
+#   Author: Robert SCHMIEDER, Computational Science Research Center @ SDSU, CA
+#
+#   File: prinseq-graphs
+#   Date: 2012-12-22
+#   Version: 0.6 graphs
+#
+#   Usage:
+#      prinseq-graphs [options]
+#
+#      Try 'prinseq-graphs-noPCA -h' for more information.
+#
+#    Purpose: PRINSEQ will help you to preprocess your genomic or metagenomic
+#             sequence data in FASTA or FASTQ format. The graphs version allows
+#             users of the lite version to generate graphs similar to the web
+#             version.
+#
+#    Bugs: Please use http://sourceforge.net/tracker/?group_id=315449
+#
+#===============================================================================
+
+use strict;
+use warnings;
+
+use Getopt::Long;
+use Pod::Usage;
+use File::Temp qw(tempfile); #for output files
+use Fcntl qw(:flock SEEK_END); #for log file
+use Cwd;
+use JSON;
+use Cairo;
+#use Statistics::PCA;
+use MIME::Base64;
+use File::Basename;
+use Data::Dumper; ###
+
+$| = 1; # Do not buffer output
+
+my $PI = 4 * atan2(1, 1);
+my $LOG62 = log(62);
+my $DINUCODDS_VIR = [
+                        [qw(1.086940308	0.98976932	1.034167044	0.880024041	1.070421277	0.990687084	0.890945575	1.069957074	0.92465631	0.803973303)],
+                        [qw(1.101064857	0.986812783	1.038299155	0.896162618	1.081652847	0.976365237	0.867445186	1.06727283	0.94688543	0.768007295)],
+                        [qw(1.071548411	0.912204166	1.196914981	0.80628184	1.294201511	1.148517794	0.269295791	1.033948026	0.895951033	0.623192149)],
+                        [qw(1.090253719	0.907428629	1.203991784	0.786359294	1.281499107	1.145421568	0.235974709	1.033437274	0.899580091	0.631699771)],
+                        [qw(1.075864745	1.003413074	1.01872902	0.897841689	0.980373171	1.05854979	0.934262259	1.052477953	0.88145851	0.889239724)],
+                        [qw(1.101890467	1.030028291	1.019912674	0.84191395	1.0015174	1.069546264	0.900151602	0.996269395	0.889195343	0.904039022)],
+                        [qw(1.152417359	0.855028574	0.91164793	1.017415486	1.114163672	1.128353311	0.846355573	0.916745489	1.206820475	0.811014651)],
+                        [qw(1.142454218	0.8635465	0.923406967	1.026242747	1.134445058	1.131747833	0.79793368	0.920767641	1.179468556	0.799770057)],
+                        [qw(1.124462747	0.873556143	0.945627041	1.013755408	1.159866153	1.096259526	0.757315047	0.972924919	1.105562567	0.772731886)],
+                        [qw(1.143826972	0.866968779	0.995740249	0.945859278	1.109590621	1.089305083	0.76048874	0.971561388	1.157101408	0.792923027)],
+                        [qw(1.131900141	0.82776996	0.996204924	0.999433455	1.024692372	1.071176333	0.921026216	1.088936699	1.054010776	0.773498892)],
+                        [qw(1.042180476	0.930180412	1.019242897	0.98909997	1.006666828	1.046708539	0.959492164	1.011183418	1.055168776	0.937433818)],
+                        [qw(1.086515695	0.985345815	0.930914307	0.969581792	1.043010232	1.087463712	0.939482285	0.990551965	0.954752469	0.893972874)],
+                        [qw(1.096657826	0.950117614	0.936195529	0.965619788	1.114975275	1.077011195	0.843153131	0.989128406	1.043790912	0.840634731)],
+                        [qw(1.158030995	0.935307365	0.874812261	1.056236525	1.117171274	0.937484692	1.057442372	0.970079538	1.174848738	0.725071711)],
+                        [qw(1.15591506	0.93000227	0.883538923	1.0567652	1.095730954	0.944489906	1.074229471	0.983993745	1.156051409	0.726688465)],
+                        [qw(1.205726473	0.924439339	1.049457756	0.805718412	0.975472778	1.07581991	0.726992211	1.075025787	0.8704929	0.726672843)],
+                        [qw(1.188544681	0.95239611	1.049066985	0.790031334	1.038632598	1.056749787	0.665197397	1.057566244	0.862429061	0.708982398)],
+                        [qw(1.063631482	0.925593715	1.014869316	0.944904401	1.119690731	1.325971834	0.273781451	0.943347677	1.06438014	0.920825904)],
+                        [qw(1.077560287	0.911888545	1.044147857	0.927758054	1.058535939	1.296838544	0.421514996	0.945722451	1.128317986	0.926419928)],
+                        [qw(1.163753415	0.989905668	0.893599328	0.955641844	1.176047687	0.941559156	0.950641089	0.959741692	1.100815282	0.72491925)],
+                        [qw(1.139253929	0.946297517	0.922096125	1.024801537	1.205206793	0.968818717	0.915801342	0.971626058	1.107569276	0.627623404)]
+                     ];
+my $DINUCODDS_MIC = [
+                        [qw(1.13127323	0.853587195	0.911041047	1.104520778	1.065586428	1.021434164	0.999734139	1.063684014	1.078035184	0.733596552)],
+                        [qw(1.173267344	0.840539337	0.919534602	1.068050141	1.062394214	1.051999071	0.96770576	1.035511729	1.095600433	0.72328141)],
+                        [qw(1.172939786	0.84567902	0.911836259	1.106288994	1.05351787	1.026143368	1.002308358	1.066319771	1.094918797	0.710733535)],
+                        [qw(1.073527689	0.850290918	0.978455025	1.080882178	1.111174765	1.010754115	0.895668707	1.072980666	1.079304608	0.754057386)],
+                        [qw(1.08807747	0.837444678	0.95824965	1.097310298	1.118897971	1.030863881	0.886827263	1.072349394	1.07406322	0.733440096)],
+                        [qw(1.071685485	0.861055813	0.966566865	1.090268118	1.112945761	1.012538936	0.909535491	1.063745603	1.071156598	0.755770377)],
+                        [qw(1.142698587	0.867936867	1.000612099	0.977934257	1.111801746	1.018318601	0.788556794	0.987763594	1.184649653	0.784776176)],
+                        [qw(1.134560074	0.876651844	0.998190253	0.995723123	1.128448077	1.014172324	0.781776188	0.971020602	1.182411449	0.786449476)],
+                        [qw(1.180029632	0.787899325	1.01316945	0.932268406	1.077837263	1.211699678	0.612128817	1.033036699	1.157314398	0.74940288)],
+                        [qw(1.160925546	0.788308899	1.003702496	0.965371236	1.076051693	1.188304271	0.641536444	1.070331188	1.124067192	0.740126813)],
+                        [qw(1.173873006	0.790118011	1.014718833	0.937979878	1.07453725	1.207167373	0.622279064	1.046150047	1.145627707	0.742212886)],
+                        [qw(1.128383111	0.870541389	0.987269741	0.98353238	1.115643879	1.040107028	0.774505865	1.010896432	1.164757274	0.775254395)],
+                        [qw(1.15297511	0.853883985	0.956393231	1.000027661	1.139915472	1.01355294	0.838843622	1.015553125	1.216219741	0.70447264)],
+                        [qw(1.148264236	0.852123859	0.974568293	0.985455546	1.13192373	1.015879393	0.828987111	1.016820786	1.216647853	0.71634006)],
+                        [qw(1.12933788	0.831777975	1.005434367	0.991081409	1.126146895	1.07421504	0.69343913	1.054032466	1.14809591	0.728541157)],
+                        [qw(1.124157235	0.828112691	1.022348424	0.983822386	1.143028487	1.081830005	0.672594435	1.05685982	1.149537403	0.684432106)],
+                        [qw(1.128029586	0.841853305	1.00983936	0.967179139	1.122524003	1.094555807	0.659238308	1.061578854	1.1243601	0.740148171)],
+                        [qw(1.093521636	0.855071052	0.929160818	1.203773691	1.178257185	0.881341255	1.078305505	1.051988532	1.169143967	0.555057308)],
+                        [qw(1.073737278	0.877396537	0.968017446	1.124155374	1.166244435	0.909044208	0.999147578	1.071098934	1.120156138	0.607444953)],
+                        [qw(1.092150184	0.863407008	0.927040387	1.185387013	1.171670826	0.882276859	1.083058605	1.048379554	1.168635365	0.580337997)]
+                    ];
+my $DATA_VIR = [
+                    [2,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [3,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [42,2,'Human (nasal)',[127/255, 127/255, 255/255,1]],
+                    [43,2,'Human (nasal)',[127/255, 127/255, 255/255,1]],
+                    [45,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [49,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [52,3,'Human (sputum)',[127/255, 127/255, 255/255,1]],
+                    [54,3,'Human (sputum)',[127/255, 127/255, 255/255,1]],
+                    [55,4,'Human (sputum, CF)',[127/255, 127/255, 255/255,1]],
+                    [57,4,'Human (sputum, CF)',[127/255, 127/255, 255/255,1]],
+                    [88,5,'Freshwater (Hot spring)',[127/255, 127/255, 255/255,1]],
+                    [89,5,'Freshwater (Hot spring)',[127/255, 127/255, 255/255,1]],
+                    [98,6,'Freshwater (Antartic lake)',[127/255, 127/255, 255/255,1]],
+                    [99,6,'Freshwater (Antartic lake)',[127/255, 127/255, 255/255,1]],
+                    [100,7,'Freshwater (reclaimed)',[127/255, 127/255, 255/255,1]],
+                    [102,7,'Freshwater (reclaimed)',[127/255, 127/255, 255/255,1]],
+                    [153,8,'Mouse (brain tissue)',[127/255, 127/255, 255/255,1]],
+                    [154,8,'Mouse (brain tissue)',[127/255, 127/255, 255/255,1]],
+                    [202,9,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+                    [206,9,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+                    [209,10,'Mosquito',[127/255, 127/255, 255/255,1]],
+                    [211,10,'Mosquito',[127/255, 127/255, 255/255,1]],
+		    ['U',0,'User input',[255/255, 127/255, 127/255,1]]
+                ];
+my $DATA_MIC = [
+                    [17,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [20,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [22,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [63,2,'Mouse (fecal)',[127/255, 127/255, 255/255,1]],
+                    [65,2,'Mouse (fecal)',[127/255, 127/255, 255/255,1]],
+                    [68,2,'Mouse (fecal)',[127/255, 127/255, 255/255,1]],
+                    [93,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [95,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [109,4,'Marine (open ocean)',[127/255, 127/255, 255/255,1]],
+                    [110,4,'Marine (open ocean)',[127/255, 127/255, 255/255,1]],
+                    [111,4,'Marine (open ocean)',[127/255, 127/255, 255/255,1]],
+                    [120,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [124,5,'Marine (estuary)',[127/255, 127/255, 255/255,1]],
+                    [125,5,'Marine (estuary)',[127/255, 127/255, 255/255,1]],
+                    [134,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [146,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [148,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [201,6,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+                    [203,7,'Fish (slime)',[127/255, 127/255, 255/255,1]],
+                    [205,6,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+		    ['U',0,'User input',[255/255, 127/255, 127/255,1]]
+                ];
+my $BASE64_BASES = {A => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC',
+		    C => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC',
+		    G => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=',
+		    T => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==',
+		    N => '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
+SUVORK5CYII='
+		    };
+my $MMCHART_B2 = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC';
+my $FREQCHART_L = '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';
+
+my $CSS_STYLE = '
+html, body, div, span, p, img {
+    margin: 0;
+    padding: 0;
+    border: 0;
+    outline: 0;
+    font-size: 100%;
+    vertical-align: baseline;
+    background: transparent;
+}
+
+html, body {
+    font-family: Arial, Verdana;
+    color: #40454b;
+    font-size: 12px;
+    text-align: center;
+}
+
+img {
+    padding: 0px; margin: 0px; border: none;
+}
+
+.info-panel {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    width: 740px;
+    text-align: left;
+}
+
+.info-header {
+    padding-top: 20px;
+    padding-top: 10px;
+}
+
+.info-header-title {
+    color: #126499;
+    text-decoration: none;
+    font-family: sans-serif;
+    font-weight: bold;
+    font-size: 16px;
+    vertical-align: baseline;
+    margin-right: 20px;
+    margin-bottom: 25px;
+    margin-top: 15px;
+}
+
+.info-content {
+    padding: 2px;
+    font-family: "lucida grande",sans-serif,arial;
+    margin-top: 15px;
+    margin-bottom: 15px;
+}
+
+.info-table-type {
+    min-width: 70px;
+    padding: 4px;
+    vertical-align: top;
+}
+
+.info-table-value {
+    font-weight: bold;
+    padding-top: 4px;
+    padding-left: 10px;
+    padding-right: 10px;
+    vertical-align: top;
+}
+
+hr {
+    background-color: #E0E0E0;
+    border: medium none;
+    color: #E0E0E0;
+    height: 1px;
+    outline: medium none;
+}
+
+.sequencetext {
+    font-family: courier, "courier new";
+    font-weight: normal;
+}
+';
+
+my $VERSION = '0.6';
+my $WHAT = 'graphs-noPCA';
+
+my $man = 0;
+my $help = 0;
+my %params = ('help' => \$help, 'h' => \$help, 'man' => \$man);
+GetOptions( \%params,
+            'help|h',
+            'man',
+            'verbose',
+            'version' => sub { print "PRINSEQ-$WHAT $VERSION\n"; exit; },
+            'i=s',
+	    'o=s',
+	    'png_all',
+	    'html_all',
+            'log:s',
+            'web:s'
+            ) or pod2usage(2);
+pod2usage(1) if $help;
+pod2usage(-exitstatus => 0, -verbose => 2) if $man;
+
+=head1 NAME
+
+PRINSEQ - PReprocessing and INformation of SEQuence data
+
+=head1 VERSION
+
+PRINSEQ-graphs 0.6
+
+=head1 SYNOPSIS
+
+perl prinseq-graphs.pl [-h] [-help] [-version] [-man] [-verbose] [-i input_graph_data_file] [-png_all] [-html_all] [-log file]
+
+=head1 DESCRIPTION
+
+PRINSEQ will help you to preprocess your genomic or metagenomic sequence data in FASTA (and QUAL) or FASTQ format. The graphs version allows users of the lite version to generate graphs similar to the web version.
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<-help> | B<-h>
+
+Print the help message; ignore other arguments.
+
+=item B<-man>
+
+Print the full documentation; ignore other arguments.
+
+=item B<-version>
+
+Print program version; ignore other arguments.
+
+=item B<-verbose>
+
+Prints status and info messages during processing.
+
+=item B<***** INPUT OPTIONS *****>
+
+=item B<-i> <file>
+
+Input file containing the graph data generated by the lite version.
+
+=item B<***** OUTPUT OPTIONS *****>
+
+=item B<-o> <string>
+
+By default, the output files are created in the same directory as the input file with an additional "_prinseq_graphs_XXXX" in their name (where XXXX is replaced by random characters to prevent overwriting previous files). To change the output filename and location, specify the filename using this option. The file extension will be added automatically.
+
+=item B<-png_all>
+
+Use this option to generate PNG files with the graphs.
+
+=item B<-html_all>
+
+Use this option to generate a HTML file with the graphs and tables.
+
+=item B<-log> <file>
+
+Log file to keep track of parameters, errors, etc. The log file name is optional. If no file name is given, the log file name will be "inputname.log". If the log file already exists, new content will be added to the file.
+
+=back
+
+=head1 AUTHOR
+
+Robert SCHMIEDER, C<< <rschmieder_at_gmail_dot_com> >>
+
+=head1 BUGS
+
+If you find a bug please email me at C<< <rschmieder_at_gmail_dot_com> >> or use http://sourceforge.net/tracker/?group_id=315449 so that I can make PRINSEQ better.
+
+=head1 COPYRIGHT
+
+Copyright (C) 2011-2012  Robert SCHMIEDER
+
+=head1 LICENSE
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+#
+################################################################################
+## DATA AND PARAMETER CHECKING
+################################################################################
+#
+
+my ($file1,$command,@dataread);
+
+#Check if input file exists and check if file format is correct
+if(exists $params{i}) {
+    $command .= ' -i '.$params{i};
+    $file1 = $params{i};
+    if($params{i} eq 'stdin') {
+        my $format = &checkInputFormat();
+        unless($format eq 'gd') {
+            &printError('input data for -i is in '.uc($format).' format not in graph data format');
+        }
+    } elsif(-e $params{i}) {
+        #check for file format
+        my $format = &checkFileFormat($file1);
+        unless($format eq 'gd') {
+            &printError('input file for -i is in '.uc($format).' format not in graph data format');
+        }
+    } else {
+        &printError("could not find input file \"".$params{i}."\"");
+    }
+} else {
+    &printError("you did not specify an input file containing the graph data");
+}
+
+#check output file name prefix
+if(exists $params{o}) {
+    $command .= ' -o '.$params{o};
+}
+
+#check for output format
+unless(exists $params{png_all} || exists $params{html_all}) {
+    &printError("No output format specified. Use -png_all and/or -html_all to generate graphs.");
+}
+if(exists $params{png_all}) {
+    $command .= ' -png_all';
+}
+if(exists $params{html_all}) {
+    $command .= ' -html_all';
+}
+if(exists $params{web}) {
+    $command .= ' -web'.($params{web} ? ' '.$params{web} : '');
+}
+
+#add remaining to log command
+if(exists $params{log}) {
+    $command .= ' -log'.($params{log} ? ' '.$params{log} : '');
+
+    unless($params{log}) {
+	$params{log} = join("__",$file1||'nonamegiven').'.log';
+    }
+    $params{log} = cwd().'/'.$params{log} unless($params{log} =~ /^\//);
+    &printLog("Executing PRINSEQ with command: \"perl prinseq-".$WHAT.".pl".$command."\"");
+}
+
+#
+################################################################################
+## DATA PROCESSING
+################################################################################
+#
+
+my $filename = $file1;
+while($filename =~ /[\w\d]+\.[\w\d]+$/) {
+    $filename =~ s/\.[\w\d]+$//;
+    last if($filename =~ /\/[^\.]+$/);
+}
+
+if(exists $params{png_all}) {
+    my $graphs = &generateGraphs($params{i},$params{o});
+    if(exists $params{web} && $params{web} ne 'nozip') {
+        #png files
+        if(scalar(@$graphs)) {
+            system("zip -j -r ".dirname($params{o})."/png_graphs.zip ".dirname($params{o}).' -i \*.png') == 0 or &printError("Cannot generate graphs ZIP file");
+        }
+    }
+}
+if(exists $params{html_all}) {
+    &generateHtml($params{i},$params{o});
+}
+
+&printWeb("STATUS: done");
+
+##
+#################################################################################
+### MISC FUNCTIONS
+#################################################################################
+##
+
+sub printError {
+    my $msg = shift;
+    print STDERR "\nERROR: ".$msg.".\n\nTry \'perl prinseq-".$WHAT.".pl -h\' for more information.\nExit program.\n";
+    &printLog("ERROR: ".$msg.". Exit program.\n");
+    exit(0);
+}
+
+sub printWarning {
+    my $msg = shift;
+    print STDERR "WARNING: ".$msg.".\n";
+    &printLog("WARNING: ".$msg.".\n");
+}
+
+sub printWeb {
+    my $msg = shift;
+    if(exists $params{web}) {
+        print STDERR "\n".&getTime()."$msg\n";
+    }
+}
+
+sub getTime {
+    return sprintf("[%02d/%02d/%04d %02d:%02d:%02d] ",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+}
+
+sub printLog {
+    my $msg = shift;
+    if(exists $params{log}) {
+        my $time = sprintf("%02d/%02d/%04d %02d:%02d:%02d",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+        open(FH, ">>", $params{log}) or die "ERROR: Can't open file ".$params{log}.": $! \n";
+        flock(FH, LOCK_EX) or die "ERROR: Cannot lock file ".$params{log}.": $! \n";
+        print FH "[prinseq-".$WHAT."-$VERSION] [$time] $msg\n";
+        flock(FH, LOCK_UN) or die "ERROR: cannot unlock ".$params{log}.": $! \n";
+        close(FH);
+    }
+}
+
+sub addCommas {
+    my $num = shift;
+    return unless(defined $num);
+    return $num if($num < 1000);
+    $num = scalar reverse $num;
+    $num =~ s/(\d{3})/$1\,/g;
+    $num =~ s/\,$//;
+    $num = scalar reverse $num;
+    return $num;
+}
+
+sub checkFileFormat {
+    my $file = shift;
+
+    my ($format,$count,$id,$fasta,$fastq,$qual,$gd,$aa);
+    $count = 3;
+    $fasta = $fastq = $qual = $gd = $aa = 0;
+    $format = 'unknown';
+
+    open(FILE,"perl -p -e 's/\r/\n/g;s/\n\n/\n/g' < $file |") or die "ERROR: Could not open file $file: $! \n";
+    while (<FILE>) {
+#        chomp();
+ #       next unless(length($_));
+        if($count-- == 0) {
+            last;
+        } elsif(!$fasta && /^\>\S+\s*/) {
+            $fasta = 1;
+            $qual = 1;
+        } elsif($fasta == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fasta = 2;
+        } elsif($qual == 1 && /^\s*\d+/) {
+            $qual = 2;
+        } elsif(!$fastq && /^\@(\S+)\s*/) {
+            $id = $1;
+            $fastq = 1;
+        } elsif($fastq == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fastq = 2;
+        } elsif($fastq == 2 && /^\+(\S*)\s*/) {
+            $fastq = 3 if($id eq $1 || /^\+\s*$/);
+        } elsif(!$gd && /^\{\"numseqs\"\:/) {
+	    $gd = 1;
+	}
+    }
+    close(FILE);
+    if($fasta == 2) {
+        $format = 'fasta';
+    } elsif($qual == 2) {
+        $format = 'qual';
+    } elsif($fastq == 3) {
+        $format = 'fastq';
+    } elsif($gd == 1) {
+	$format = 'gd';
+    }
+
+    return $format;
+}
+
+sub checkInputFormat {
+    my ($format,$count,$id,$fasta,$fastq,$qual,$gd,$aa);
+    $count = 3;
+    $fasta = $fastq = $qual = $gd = $aa = 0;
+    $format = 'unknown';
+
+    while (<STDIN>) {
+        push(@dataread,$_);
+#        chomp();
+ #       next unless(length($_));
+        if($count-- == 0) {
+            last;
+        } elsif(!$fasta && /^\>\S+\s*/) {
+            $fasta = 1;
+            $qual = 1;
+        } elsif($fasta == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fasta = 2;
+        } elsif($qual == 1 && /^\s*\d+/) {
+            $qual = 2;
+        } elsif(!$fastq && /^\@(\S+)\s*/) {
+            $id = $1;
+            $fastq = 1;
+        } elsif($fastq == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fastq = 2;
+        } elsif($fastq == 2 && /^\+(\S*)\s*/) {
+            $fastq = 3 if($id eq $1 || /^\+\s*$/);
+        } elsif(!$gd && /^\{\"numseqs\"\:/) {
+	    $gd = 1;
+	}
+    }
+
+    if($fasta == 2) {
+        $format = 'fasta';
+    } elsif($qual == 2) {
+        $format = 'qual';
+    } elsif($fastq == 3) {
+        $format = 'fastq';
+    } elsif($gd == 1) {
+	$format = 'gd';
+    }
+
+    return $format;
+}
+
+sub readGdFile {
+    my $file = shift;
+    my $data;
+
+    open(DATA,"<$file") or &printError("Could not open file $file: $!");
+    while(<DATA>) {
+	next if(/^\#/);
+        chomp();
+	if(length($_)) {
+	    $data = from_json($_);
+	}
+    }
+    close(DATA);
+
+    return $data;
+}
+
+sub getFileName {
+    my $ext = shift;
+    my ($file,$fh);
+    if(exists $params{o}) {
+	$file = $params{o}.$ext;
+	open(OUT,">$file") or &printError('cannot open output file');
+	close(OUT);
+    } else {
+	$fh = File::Temp->new( TEMPLATE => $filename.'_prinseq_graphs_XXXX',
+			       SUFFIX => $ext,
+			       UNLINK => 0);
+	$file = $fh->filename;
+	$fh->close();
+    }
+    return $file;
+}
+
+sub generateGraphs {
+    my ($in,$out) = @_;
+    my ($file,$data,$surface,@graphs);
+    $data = &readGdFile($in);
+
+    #length plot
+    if(exists $data->{counts}->{length}) {
+	$file = &getFileName('_ld.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{length},1),$data->{stats}->{length},'Length Distribution','Read Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{counts2} && exists $data->{counts2}->{length}) {
+	$file = &getFileName('_ld-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{length},1),$data->{stats2}->{length},'Length Distribution','Read Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #tail plot
+    if(exists $data->{tail}) {
+	$file = &getFileName('_td5.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+	$file = &getFileName('_td3.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{tail2}) {
+	$file = &getFileName('_td5-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+	$file = &getFileName('_td3-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Ns plot
+    if(exists $data->{counts}->{ns}) {
+	$file = &getFileName('_ns.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{counts2} && exists $data->{counts2}->{ns}) {
+	$file = &getFileName('_ns-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #GC content plot
+    if(exists $data->{counts}->{gc}) {
+	$file = &getFileName('_gc.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{gc},0),$data->{stats}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{counts2} && exists $data->{counts2}->{gc}) {
+	$file = &getFileName('_gc-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{gc},0),$data->{stats2}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Sequence complexity plot - dust
+    if(exists $data->{compldust}) {
+	$file = &getFileName('_cd.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{compldust},0),undef,'Sequence complexity distribution','Mean sequence complexity (DUST scores)','Number of sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Sequence complexity plot - entropy
+    if(exists $data->{complentropy}) {
+	$file = &getFileName('_ce.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{complentropy},0),undef,'Sequence complexity distribution','Mean sequence complexity (Entropy values)','Number of sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Dinucleotide odd ratio PCA plot - microbial/viral
+    #Odds ratio plot
+    if(exists $data->{dinucodds}) {
+	my @new = map {$data->{dinucodds}->{$_}} sort keys %{$data->{dinucodds}};
+#	$file = &getFileName('_pm.png');
+#	$surface = &createPCAPlot(&convertToPCAValues(\@new,'m'),'PCA','1st Principal Component Score','2nd Principal Component Score',$file);
+#	$surface->write_to_png($file);
+#        push(@graphs,$file);
+#	$file = &getFileName('_pv.png');
+#	$surface = &createPCAPlot(&convertToPCAValues(\@new,'v'),'PCA','1st Principal Component Score','2nd Principal Component Score',$file);
+#	$surface->write_to_png($file);
+#        push(@graphs,$file);
+	$file = &getFileName('_or.png');
+	$surface = &createOddsRatioPlot($data->{dinucodds},'Odds ratios','Dinucleotide','Odds ratio',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Qual plot
+    if(exists $data->{quals}) {
+	$file = &getFileName('_qd.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{quals},4),'Base Quality Distribution','Read position in %','Quality score',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{quals2}) {
+	$file = &getFileName('_qd-2.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{quals2},4),'Base Quality Distribution','Read position in %','Quality score',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Qualbin plot
+    if(exists $data->{qualsbin}) {
+	$file = &getFileName('_qd2.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin},4),'Base Quality Distribution','Read position in bp','Quality score',$file,0,'bp',$data->{binval});
+       $surface->write_to_png($file);
+       push(@graphs,$file);
+    }
+    if(exists $data->{qualsbin2}) {
+	$file = &getFileName('_qd2-2.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin2},4),'Base Quality Distribution','Read position in bp','Quality score',$file,0,'bp',$data->{binval});
+       $surface->write_to_png($file);
+       push(@graphs,$file);
+    }
+
+    #Qualmean plot
+    if(exists $data->{qualsmean}) {
+	$file = &getFileName('_qd3.png');
+	$surface = &createBarPlot(&convertToBarValues($data->{qualsmean},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{qualsmean2}) {
+	$file = &getFileName('_qd3-2.png');
+	$surface = &createBarPlot(&convertToBarValues($data->{qualsmean2},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Sequence duplicate plots
+    if(exists $data->{dubscounts}) {
+	$file = &getFileName('_df.png');
+	$surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubscounts},5,1,100),'Sequence duplication level','Number of duplicates','Number of sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{dubslength}) {
+	$file = &getFileName('_dl.png');
+	$surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubslength},5,1),'Sequence duplication level','Read Length in bp','Number of duplicates',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{dubscounts}) {
+	my %dubsmax;
+	my $count = 1;
+	foreach my $n (sort {$b <=> $a} keys %{$data->{dubscounts}}) {
+	    foreach my $s (keys %{$data->{dubscounts}->{$n}}) {
+		foreach my $i (1..$data->{dubscounts}->{$n}->{$s}) {
+		    $dubsmax{$count++}->{$s} = $n;
+		    last unless($count <= 100);
+		}
+		last unless($count <= 100);
+	    }
+	    last unless($count <= 100);
+	}
+	$file = &getFileName('_dm.png');
+	$surface = &createStackBarPlot(&convertOdToStackBinMatrix(\%dubsmax,5,1,100),'Sequence duplication level','Sequence','Number of duplicates',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    return \@graphs;
+}
+
+sub convertOdToBinMatrix {
+    my ($data,$min,$max,$nonice) = @_;
+
+    my ($num,$ymax,$xmax,$xmin,$step,%vals,$tmp,@matrix,$bin,$tmpbin);
+
+    #make nice xmax value
+    if(defined $max) {
+	$xmax = $max;
+    } else {
+	$xmax = (sort {$b <=> $a} keys %$data)[0];
+    }
+    $bin = &getBinVal($xmax);
+    $xmax = $bin*100;
+    $xmin = (defined $min ? $min : 0);
+
+    #get data to bin and find y axis max value
+    $ymax = 0;
+    $tmp = 0;
+    $tmpbin = $bin;
+    foreach my $i ($xmin..$xmax) {
+	if(exists $data->{$i}) {
+	    $tmp += $data->{$i};
+	}
+	if(--$tmpbin <= 0) {
+	    $tmpbin = $bin;
+	    $ymax = &max($ymax,$tmp);
+	    push(@matrix,$tmp);
+	    $tmp = 0;
+	}
+    }
+
+    #make nice ymax value
+    unless($nonice) {
+	$ymax = sprintf("%d",($ymax/4)+1)*4 if($ymax % 4);
+#        $step = ($ymax <= 10 ? 10 : ($ymax < 40 ? 40 : ($ymax < 100 ? 100 : ($ymax < 1000 ? 100 : 100))));
+#        $ymax = sprintf("%d",($ymax/$step)+1)*$step if($ymax % $step);
+    }
+
+    return (\@matrix,$xmax,$ymax);
+}
+
+sub getBinVal {
+    my $val = shift;
+    my $step;
+    if(!$val || $val <= 100) {
+	return 1;
+    } elsif($val < 10000) {
+	return int($val/100)+($val % 100 ? 1 : 0);
+    } elsif($val < 100000) {
+	return 1000;
+    } else {
+	$step = 1000000;
+	my $xmax = ($val % $step ? sprintf("%d",($val/$step+1))*$step : $val);
+	return ($xmax/100);
+    }
+}
+
+sub max {
+    my ($a,$b) = @_;
+    return ($a < $b ? $b : $a);
+}
+
+sub min {
+    my ($a,$b) = @_;
+    return ($a > $b ? $b : $a);
+}
+
+sub createAnnotBarPlot {
+    my ($matrix,$xmax,$ymax,$annot,$title,$xlab,$ylab,$file,$zero,$add) = @_;
+
+    my $bin = 1;
+    if($xmax > 100) {
+	$bin = $xmax / 100;
+	$xmax = 100;
+    }
+
+    my @barcol = (127/255, 127/255, 255/255, 1); #b2b2ff
+    my @meancol = (255/255, 127/255, 127/255, 1); #ffb2b2
+    my @stdcol = (178/255, 178/255, 255/255, 0.8); #7f7fff
+    my @std1col = (0, 0, 0, 0.04); #ff7f7f
+    my @std2col = (0, 0, 0, 0.03); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol = (1, 1, 1, 0.9);
+    my @background = (0.95, 0.95, 0.95, 1);
+    my @tickcol = (0, 0, 0, 0.8);
+    my @labelcol = (0, 0, 0, 1);
+
+    #create new image
+    my $size   = 6;
+    my $offset = 20;
+    my $left   = 40;
+    my $bottom = 15;
+    my $top = 20;
+    my $height = 200;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$top+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(@background);
+    $cr->fill;
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(@tickcol);
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+	} else {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+1);
+	}
+    }
+    $cr->stroke;
+
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset);
+    $cr->line_to($left+$offset-3, $top+$offset);
+    $cr->move_to($left+$offset, $top+$offset+$height-1);
+    $cr->line_to($left+$offset-3, $top+$offset+$height-1);
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(@tickcol);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%10) == 0 && $i > 1 && $i < $xmax) {
+	    $extents = $cr->text_extents($i*$bin);
+	    $cr->move_to($left+$offset+int($size/2+1)+$size*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+	    $cr->show_text($i*$bin);
+	}
+    }
+    #y-axis
+    $extents = $cr->text_extents(&addCommas($ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2);
+    $cr->show_text(&addCommas($ymax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    $cr->set_source_rgba(@labelcol);
+    $extents = $cr->text_extents($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab.($bin>1 ? ' (per bin)' : ''));
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset+10);
+    $cr->show_text($ylab.($bin>1 ? ' (per bin)' : ''));
+
+    $cr->restore;
+
+    #draw annotations
+    if($annot) {
+	$cr->set_antialias('none');
+	my ($std1l,$std2l,$std1r,$std2r);
+	#std boxes
+	$std1l = int($annot->{mean})-int($annot->{std});
+	$std2l = int($annot->{mean})-2*int($annot->{std});
+	$std1r = int($annot->{mean})+int($annot->{std});
+	$std2r = int($annot->{mean})+2*int($annot->{std});
+        unless($std1l == $std1r) {
+            if($std1l < 0) {
+                $std1l = 0;
+            } else {
+                $std1l = int($std1l/$bin);
+            }
+            if($std2l < 0) {
+                $std2l = 0;
+            } else {
+                $std2l = int($std2l/$bin);
+            }
+            if($std1r/$bin > 100) {
+                $std1r = 100;
+            } else {
+                $std1r = int($std1r/$bin);
+            }
+            if($std2r/$bin > 100) {
+                $std2r = 100;
+            } else {
+                $std2r = int($std2r/$bin);
+            }
+            $cr->rectangle($left+$offset+$std2l*$size+2, $top+$offset, ($std2r-$std2l)*$size, $height);
+            $cr->set_source_rgba(@std2col);
+            $cr->fill;
+            $cr->rectangle($left+$offset+$std1l*$size+2, $top+$offset, ($std1r-$std1l)*$size, $height);
+            $cr->set_source_rgba(@std1col);
+            $cr->fill;
+            #mean line
+            $cr->set_source_rgba(@meancol);
+            $cr->move_to($left+$offset+int(int($annot->{mean})/$bin)*$size+2, $top+$offset-5);
+            $cr->line_to($left+$offset+int(int($annot->{mean})/$bin)*$size+2, $top+$offset+$height);
+            $cr->stroke;
+            #std lines
+            $cr->set_source_rgba(@stdcol);
+            if($std1l > 0) {
+                $cr->move_to($left+$offset+$std1l*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std1l*$size+2, $top+$offset+$height);
+            }
+            if($std2l > 0) {
+                $cr->move_to($left+$offset+$std2l*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std2l*$size+2, $top+$offset+$height);
+            }
+            if($std1r < 100) {
+                $cr->move_to($left+$offset+$std1r*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std1r*$size+2, $top+$offset+$height);
+            }
+            if($std2r < 100) {
+                $cr->move_to($left+$offset+$std2r*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std2r*$size+2, $top+$offset+$height);
+            }
+            $cr->stroke;
+            #labels
+            $cr->set_antialias('default');
+            $cr->set_source_rgba(@tickcol);
+            $extents = $cr->text_extents('M');
+            $cr->move_to($left+$offset+int(int($annot->{mean})/$bin)*$size+2-$extents->{width}/2, $top+$offset-10);
+            $cr->show_text('M');
+            if($std1l > 0) {
+                $extents = $cr->text_extents('1SD');
+                $cr->move_to($left+$offset+$std1l*$size-$extents->{width}/2+2, $top+$offset-10);
+                $cr->show_text('1SD');
+            }
+            if($std2l > 0) {
+                $extents = $cr->text_extents('2SD');
+                $cr->move_to($left+$offset+$std2l*$size-$extents->{width}/2+3, $top+$offset-10);
+                $cr->show_text('2SD');
+            }
+            if($std1r < 100) {
+                $extents = $cr->text_extents('1SD');
+                $cr->move_to($left+$offset+$std1r*$size-$extents->{width}/2+2, $top+$offset-10);
+                $cr->show_text('1SD');
+            }
+            if($std2r < 100) {
+                $extents = $cr->text_extents('2SD');
+                $cr->move_to($left+$offset+$std2r*$size-$extents->{width}/2+3, $top+$offset-10);
+                $cr->show_text('2SD');
+            }
+        }
+    }
+
+    #draw boxes
+    $cr->set_antialias('none');
+    $cr->set_source_rgba(@barcol);
+    foreach my $pos (0..$xmax-($zero ? 0 : 1)) {
+        next unless($matrix->[$pos]);
+        my $tmp = $matrix->[$pos] / $ymax;
+	#unique
+        if($tmp) {
+            $cr->rectangle($left+$offset+$pos*$size, $top+$offset+$height, $size-1, -$tmp*$height);
+            $cr->fill;
+        }
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+#sub convertToPCAValues {
+#    my ($new,$type) = @_;
+#
+#    my @data = ($type eq 'v' ? @$DINUCODDS_VIR : @$DINUCODDS_MIC);
+#
+#    push(@data,$new);
+#
+#    my $pca = Statistics::PCA->new;
+#    $pca->load_data({format => 'table', data => \@data});
+#    $pca->pca();
+#
+#    my @variances = $pca->results('proportion');
+#    my @list = $pca->results('transformed');
+#
+#    my ($xmin,$xmax,$ymin,$ymax);
+#    $xmax = $ymax = -100;
+#    $xmin = $ymin = 100;
+#
+#    #get min/max values for PC1
+#    foreach my $v (@{$list[0]}) {
+#        $xmax = &max($xmax,$v);
+#        $xmin = &min($xmin,$v);
+#    }
+#    #get min/max values for PC2
+#    foreach my $v (@{$list[1]}) {
+#        $ymax = &max($ymax,$v);
+#        $ymin = &min($ymin,$v);
+#    }
+#
+#    return ([$list[0],$list[1]],sprintf("%d",$variances[0]*100),sprintf("%d",$variances[1]*100),$xmin,$xmax,$ymin,$ymax,$type);
+#}
+
+sub createPCAPlot {
+    my ($data,$var1,$var2,$xmin,$xmax,$ymin,$ymax,$type,$title,$xlab,$ylab,$file) = @_;
+
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = 5;
+    my $offset = 20;
+    my $left   = 25;
+    my $bottom = 15;
+    my $top = ($type eq 'v' ? 35 : 20);
+    my $height = 500;
+    my $space = 10;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+$height+2*$space,$top+$bottom+$offset*2+$height+2*$space); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+$height+2*$space,$top+$bottom+$offset*2+$height+2*$space);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans-serif', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    my ($dx, $dy);
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, $height+2*$space, $height+2*$space);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #get infos
+    my $num = scalar(@{$data->[0]})-1;
+    my $xrange = ($xmax-$xmin);
+    my $yrange = ($ymax-$ymin);
+    my $data_info = ($type eq 'v' ? $DATA_VIR : $DATA_MIC);
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->move_to($left+$offset+$space, $top+$offset+$height+2*$space);
+    $cr->line_to($left+$offset+$space, $top+$offset+$height+2*$space+3);
+    $cr->move_to($left+$offset+$space+$height, $top+$offset+$height+2*$space);
+    $cr->line_to($left+$offset+$space+$height, $top+$offset+$height+2*$space+3);
+    $cr->move_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset+$height+2*$space);
+    $cr->line_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset+$height+2*$space+3);
+    $cr->stroke;
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset+$space);
+    $cr->line_to($left+$offset-3, $top+$offset+$space);
+    $cr->move_to($left+$offset, $top+$offset+$height+$space);
+    $cr->line_to($left+$offset-3, $top+$offset+$height+$space);
+    $cr->move_to($left+$offset, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->line_to($left+$offset-3, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol1);
+    $cr->move_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset);
+    $cr->line_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset+$height+2*$space);
+    $cr->stroke;
+    $cr->move_to($left+$offset, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->line_to($left+$offset+2*$space+$height, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->stroke;
+
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    $extents = $cr->text_extents(sprintf("%.2f",$xmin));
+    $cr->move_to($left+$offset+$space-$extents->{width}/2-1, $top+$offset+$height+2*$space+$fontheight+2);
+    $cr->show_text(sprintf("%.2f",$xmin));
+    $extents = $cr->text_extents(sprintf("%.2f",$xmax));
+    $cr->move_to($left+$offset+$space+$height-$extents->{width}/2-1, $top+$offset+$height+2*$space+$fontheight+2);
+    $cr->show_text(sprintf("%.2f",$xmax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset+$space+int(abs($xmin)/$xrange*$height)-$extents->{width}/2, $top+$offset+$height+2*$space+$fontheight+2);
+    $cr->show_text(0);
+    #y-axis
+    $extents = $cr->text_extents(sprintf("%.2f",$ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$space+$fontheight/2-2);
+    $cr->show_text(sprintf("%.2f",$ymax));
+    $extents = $cr->text_extents(sprintf("%.2f",$ymin));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$height+$space+$fontheight/2-2);
+    $cr->show_text(sprintf("%.2f",$ymin));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$space+int(abs($ymax)/$yrange*$height)+$fontheight/2-2);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #add type
+    $cr->set_source_rgba(0, 0, 0, 0.5);
+    $extents = $cr->text_extents(uc($type));
+    $cr->arc($offset/2+$extents->{width}/2, $offset-5, 10, 0, 2*$PI);
+    $cr->fill;
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->move_to($offset/2-($type eq 'm' ? 1 : 0), $offset);
+    $cr->show_text(uc($type));
+
+    #axis labels
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents($xlab.'  ('.$var1.'%)');
+    $cr->move_to($left+$offset+$height/2-$extents->{width}/2+$space, $top+$offset+$height+$fontheight+15+2*$space);
+    $cr->show_text($xlab.'  ('.$var1.'%)');
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab.'  ('.$var2.'%)');
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2)+$space,$offset);
+    $cr->show_text($ylab.'  ('.$var2.'%)');
+
+    $cr->restore;
+
+    #draw dots
+    $cr->set_antialias('default');
+    $cr->set_font_size (10);
+    foreach my $i (0..$num) {
+        $cr->set_source_rgba(@{$data_info->[$i]->[3]});
+        $cr->arc(($left+$offset+$space+int(($data->[0]->[$i]+abs($xmin))/$xrange*$height)), ($space+$top+$offset+int(($data->[1]->[$i]+abs($ymin))/$yrange*$height)), $size, 0, 2*$PI);
+        $cr->fill;
+    }
+    $cr->set_source_rgba(0, 0, 0, 1);
+    foreach my $i (0..$num) {
+        $extents = $cr->text_extents($data_info->[$i]->[1]);
+	$cr->move_to(($left+$offset+$space+int(($data->[0]->[$i]+abs($xmin))/$xrange*$height))+$size+1, ($space+$top+$offset+int(($data->[1]->[$i]+abs($ymin))/$yrange*$height))+$size*2);
+	$cr->show_text($data_info->[$i]->[1]);
+    }
+
+    #draw legend
+    my %labels;
+    foreach  my $i (0..$num) {
+	$labels{$data_info->[$i]->[1]} = $data_info->[$i]->[2];
+    }
+    $cr->set_font_size(10);
+    $fontheight = $font_extents->{height};
+    $cr->set_source_rgba(0, 0, 0, 1);
+    my $x = $left+$offset+$space;
+    my $y = int($offset/2);
+    foreach my $n (sort {$a <=> $b} keys %labels) {
+	if($x+$cr->text_extents($n.' - '.$labels{$n})->{width}+15 >= $left+$offset+$space+$height) {
+	    $x = $left+$offset+$space;
+	    $y += $fontheight;
+	}
+	$cr->move_to($x,$y);
+	$cr->show_text($n.' - '.$labels{$n});
+	$x += $cr->text_extents($n.' - '.$labels{$n})->{width}+15;
+
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub createOddsRatioPlot {
+    my ($data,$title,$xlab,$ylab,$file) = @_;
+
+    my @yvalues = (0.5,0.78,1.00,1.23,1.5);
+
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = 40;
+    my $offset = 20;
+    my $left   = 35;
+    my $right = 90;
+    my $bottom = 20;
+    my $top = 0;
+    my $height = 100;
+    my $width = $size*10;
+    my $space = 20;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+$width+$right,$top+$bottom+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+$width+$right,$top+$bottom+$offset*2+$height);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    my ($dx, $dy);
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, $width, $height);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #right side marks
+    $cr->set_source_rgba(255/255, 127/255, 127/255, 0.6);
+    $cr->rectangle($left+$offset+$width+8, $top+$offset, 3, 0.77/2*$height);
+    $cr->fill;
+    $cr->rectangle($left+$offset+$width+8, $top+$offset+$height-0.78/2*$height, 3, 0.78/2*$height);
+    $cr->fill;
+
+    #get infos
+    my $num = scalar(keys %$data)-1;
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    foreach my $i (0..$num) {
+	$cr->move_to($left+$offset+$size/2+$i*$size, $top+$offset+$height);
+	$cr->line_to($left+$offset+$size/2+$i*$size, $top+$offset+$height+3);
+    }
+    $cr->stroke;
+    #y-axis
+    foreach my $i (@yvalues) {
+	$cr->move_to($left+$offset, $top+$offset+$height-$i/2*$height);
+	$cr->line_to($left+$offset-3, $top+$offset+$height-$i/2*$height);
+    }
+    $cr->stroke;
+
+    #helplines
+    #x-axis
+    $cr->set_source_rgba(@helplinecol1);
+    foreach my $i (0..$num) {
+	$cr->move_to($left+$offset+$size/2+$i*$size, $top+$offset);
+	$cr->line_to($left+$offset+$size/2+$i*$size, $top+$offset+$height);
+    }
+    $cr->stroke;
+    #yaxis
+    foreach my $i (@yvalues) {
+	$cr->set_source_rgba(0, 0, 0, ($i == 0.5 || $i == 1.00 || $i == 1.50 ? 0.1 : 0.3));
+	$cr->move_to($left+$offset, $top+$offset+$height-$i/2*$height);
+	$cr->line_to($left+$offset+$width, $top+$offset+$height-$i/2*$height);
+	$cr->stroke;
+    }
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    my $xcur = 0;
+    foreach my $dn (map {join("/",(m/../g ))} sort keys %$data) {
+	$extents = $cr->text_extents($dn);
+	$cr->move_to($left+$offset+$size/2-$extents->{width}/2-1+$size*$xcur++, $top+$offset+$height+$fontheight+2);
+	$cr->show_text($dn);
+    }
+    #y-axis
+    foreach my $i (@yvalues) {
+	$cr->set_source_rgba(0, 0, 0, ($i == 0.5 || $i == 1.00 || $i == 1.50 ? 0.5 : 0.8));
+	$extents = $cr->text_extents(sprintf("%.2f",$i));
+	$cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$height-$i/2*$height+$fontheight/2-2);
+	$cr->show_text(sprintf("%.2f",$i));
+    }
+
+    #label on right side
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents('Over-represented');
+    $cr->move_to($left+$offset+$width+15, $top+$offset+$height-1.6/2*$height+$fontheight/2-2);
+    $cr->show_text('Over-represented');
+    $extents = $cr->text_extents('Under-represented');
+    $cr->move_to($left+$offset+$width+15, $top+$offset+$height-0.4/2*$height+$fontheight/2-2);
+    $cr->show_text('Under-represented');
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents($xlab);
+    $cr->move_to($left+$offset+$width/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab);
+    #y-axis
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab);
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset);
+    $cr->show_text($ylab);
+
+    $cr->restore;
+
+    #draw dots
+    $cr->set_antialias('default');
+    $xcur = 0;
+    foreach my $dn (sort keys %$data) {
+	if($data->{$dn} > 1.23 || $data->{$dn} < 0.78) {
+	    $cr->set_source_rgba(255/255, 127/255, 127/255, 1);
+	} else {
+	    $cr->set_source_rgba(127/255, 127/255, 255/255, 1);
+	}
+        $cr->arc($left+$offset+$size/2+$size*$xcur++, $top+$offset+$height-$data->{$dn}/2*$height, 5, 0, 2*$PI);
+        $cr->fill;
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub convertToBoxValues {
+    my ($data,$niceval) = @_;
+    my ($xmax,$ymax,@matrix);
+    $xmax = $ymax = 0;
+    foreach my $i (sort {$a <=> $b} keys %$data) {
+	$xmax++;
+	push(@matrix,[$i,$data->{$i}->{min},$data->{$i}->{p25},$data->{$i}->{median},$data->{$i}->{p75},$data->{$i}->{max}]);
+	$ymax = &max($ymax,$data->{$i}->{max});
+    }
+
+    if($niceval) {
+        $ymax = sprintf("%d",($ymax/$niceval)+1)*$niceval if($ymax % $niceval);
+    }
+
+    return (\@matrix,$xmax,$ymax);
+}
+
+sub createBoxPlot {
+    my ($matrix,$xmax,$ymax,$title,$xlab,$ylab,$file,$zero,$add,$bin) = @_;
+    $bin = ($bin ? $bin : 1);
+    $zero = 0 unless($zero);
+    $add = '' unless(defined $add);
+    if($xmax != 100) {
+	$xmax = 100;
+    }
+    $ymax = 1 unless($ymax);
+#    die Dumper $matrix;
+
+
+    my @col0 = (178/255, 178/255, 255/255); #b2b2ff
+    my @col1 = (255/255, 178/255, 178/255); #ffb2b2
+    my @col3 = (127/255, 127/255, 255/255); #7f7fff
+    my @col4 = (255/255, 127/255, 127/255); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @linecol0 = (@col3, 1);
+    my @linecol1 = (@col4, 1);
+    my @boxcol = (@col3, 1);
+    my @whiscol = (@col0, 0.9);
+    my @medcol = (0,0,0, 0.5);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = 6;
+    my $offset = 20;
+    my $left   = 25;
+    my $bottom = 25;
+    my $top = 5;
+    my $height = 300;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+#    $cr->set_font_size (30);
+
+    $cr->save;
+
+    #set up work space
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #draw legend
+    $cr->set_font_size(10);
+#    $font_extents = $cr->font_extents;
+    my $x = $left+$offset+$size*50;
+    foreach my $v ([\@whiscol,'Min/Max value'],[\@boxcol,'25th to 75th percentile'],[\@medcol,'Median']) {
+	$cr->set_antialias('none');
+	$cr->set_source_rgba(@{$v->[0]});
+	$cr->rectangle($x, $top+5, 10, 10);
+	$cr->fill;
+	$x += 15;
+	$cr->set_antialias('default');
+	$cr->move_to($x,$top+5+9);
+	$cr->set_source_rgba(0, 0, 0, 0.8);
+	$cr->show_text($v->[1]);
+	$x += $cr->text_extents($v->[1])->{width}+15;
+    }
+
+    $cr->set_antialias('none');
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+#    $cr->move_to($left+$offset+int($size/2+1), $top+$offset+$height);
+#    $cr->line_to($left+$offset+int($size/2+1), $top+$offset+$height+3);
+#    $cr->move_to($left+$offset+int($size/2+1), $top+$offset+$height+$space);
+#    $cr->line_to($left+$offset+int($size/2+1), $top+$offset+$height+$space-3);
+    foreach my $i (1..9) {
+        $cr->move_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	$cr->line_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+#	$cr->move_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset);
+#	$cr->line_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset-3);
+    }
+    $cr->stroke;
+    #y-axis
+    foreach my $j (0..4) {
+	$cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+	$cr->line_to($left+$offset-3, $top+$offset+$height*$j/4-($j ? 1 : 0));
+#	$cr->move_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+#	$cr->line_to($left+$offset+($xmax+$zero)*$size+3, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol1);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+#    $extents = $cr->text_extents(1);
+#    $cr->move_to($left+$offset+int($size/2+1)-$extents->{width}, $top+$offset+$height+$fontheight+2);
+#    $cr->show_text(1);
+    foreach my $i (1..9) {
+        $extents = $cr->text_extents($i*10*$bin);
+	$cr->move_to($left+$offset+int($size/2+1)+$size*10*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+        $cr->show_text($i*10*$bin);
+    }
+    #y-axis
+    foreach my $j (0..4) {
+	$extents = $cr->text_extents(&addCommas($ymax*$j/4));
+	$cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height*(4-$j)/4);
+	$cr->show_text(&addCommas($ymax*$j/4));
+    }
+
+    $cr->save;
+
+    #axis labels
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    $extents = $cr->text_extents($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab);
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset);
+    $cr->show_text($ylab);
+
+    $cr->restore;
+
+    #draw boxes
+    my $factor = $height/$ymax;
+    $cr->set_antialias('none');
+    foreach my $v (@$matrix) {
+	#wiskers
+	$cr->set_source_rgba(@whiscol);
+	if($v->[1] != $v->[2]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+1, $top+$offset+$height-$v->[1]*$factor-1);
+	    $cr->line_to($left+$offset+$size*$v->[0]+$size-2, $top+$offset+$height-$v->[1]*$factor-1);
+	    $cr->stroke;
+	}
+	if($v->[4] != $v->[5]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+1, $top+$offset+$height-$v->[5]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+$size-2, $top+$offset+$height-$v->[5]*$factor);
+	    $cr->stroke;
+	}
+	$cr->save;
+	$cr->set_dash(1,4,3);
+	if($v->[1] != $v->[2]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[2]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[1]*$factor);
+	    $cr->stroke;
+	}
+	if($v->[4] != $v->[5]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[5]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[4]*$factor-1);
+	    $cr->stroke;
+	}
+	$cr->restore;
+	#box
+	if(($v->[2] != $v->[3]) || ($v->[4] != $v->[3])) {
+	    $cr->set_source_rgba(@whiscol);
+	    $cr->rectangle($left+$offset+$size*$v->[0], $top+$offset+$height-$v->[2]*$factor, $size-1, -($v->[4]-$v->[2])*$factor);
+	    $cr->fill;
+	    $cr->stroke;
+	    $cr->set_source_rgba(@boxcol);
+	    $cr->rectangle($left+$offset+$size*$v->[0], $top+$offset+$height-$v->[2]*$factor, $size-2, -($v->[4]-$v->[2])*$factor);
+	    $cr->stroke;
+	} else {
+	    $cr->set_source_rgba(@boxcol);
+	    $cr->move_to($left+$offset+$size*$v->[0], $top+$offset+$height-$v->[3]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+$size-1, $top+$offset+$height-$v->[3]*$factor);
+	    $cr->stroke;
+	}
+	#median
+	$cr->set_source_rgba(@medcol);
+	$cr->move_to($left+$offset+$size*$v->[0]+1, $top+$offset+$height-$v->[3]*$factor);
+	$cr->line_to($left+$offset+$size*$v->[0]+$size-2, $top+$offset+$height-$v->[3]*$factor);
+	$cr->stroke;
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub convertToBarValues {
+    my ($data,$niceval,$start,$max) = @_;
+    my ($xmax,$ymax,@matrix,$tmp);
+    $xmax = $ymax = 0;
+
+    #get xmax value
+    if($max) {
+	$xmax = $max;
+    } else {
+	foreach my $q (keys %$data) {
+	    $xmax = &max($xmax,$q);
+	}
+    }
+    if($niceval) {
+        $xmax = sprintf("%d",($xmax/$niceval)+1)*$niceval if($xmax % $niceval);
+    }
+
+    #get matrix values
+    foreach my $q ($start..$xmax) {
+	$tmp = (exists $data->{$q} ? $data->{$q} : 0);
+	$ymax = &max($ymax,$tmp);
+	push(@matrix,$tmp);
+    }
+
+    $ymax = sprintf("%d",($ymax/4)+1)*4 if($ymax % 4);
+
+    return (\@matrix,$xmax,$ymax);
+}
+
+sub createBarPlot {
+    my ($matrix,$xmax,$ymax,$title,$xlab,$ylab,$file,$zero) = @_;
+
+    my @col0 = (178/255, 178/255, 255/255); #b2b2ff
+    my @col1 = (255/255, 178/255, 178/255); #ffb2b2
+    my @col3 = (127/255, 127/255, 255/255); #7f7fff
+    my @col4 = (255/255, 127/255, 127/255); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @linecol0 = (@col3, 1);
+    my @linecol1 = (@col4, 1);
+    my @barcol0 = (@col3, 1);
+    my @barcol1 = (@col4, 1);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = ($xmax <= 50 ? 10 : ($xmax <= 100 ? 6 : 3));
+    my $offset = 20;
+    my $left   = 25;
+    my $bottom = 15;
+    my $top = 0;
+    my $height = 200;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+#    $cr->set_font_size (30);
+
+    $cr->save;
+
+    #set up work space
+    my ($dx, $dy);
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+	} else {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+1);
+	}
+    }
+    $cr->stroke;
+
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset);
+    $cr->line_to($left+$offset-3, $top+$offset);
+    $cr->move_to($left+$offset, $top+$offset+$height-1);
+    $cr->line_to($left+$offset-3, $top+$offset+$height-1);
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol1);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $extents = $cr->text_extents($i);
+	    $cr->move_to($left+$offset+int($size/2+1)+$size*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+	    $cr->show_text($i);
+	}
+    }
+    #y-axis
+    $extents = $cr->text_extents(&addCommas($ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2);
+    $cr->show_text(&addCommas($ymax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents($xlab);
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab);
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab);
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset);
+    $cr->show_text($ylab);
+
+    $cr->restore;
+
+    #draw boxes
+    $cr->set_antialias('none');
+    foreach my $pos (0..$xmax-($zero ? 0 : 1)) {
+        next unless($matrix->[$pos+($zero ? 0 : 1)]);
+        my $tmp = $matrix->[$pos+($zero ? 0 : 1)] / $ymax;
+	#unique
+        if($tmp) {
+            $cr->set_source_rgba(@barcol0);
+            $cr->rectangle($left+$offset+($pos+($zero ? 0 : 1))*$size, $top+$offset+$height, $size-1, -$tmp*$height);
+            $cr->fill;
+        }
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub convertOdToStackBinMatrix {
+    my ($data,$stacks,$min,$max,$nonice) = @_;
+
+    my ($num,$ymax,$xmax,$xmin,$step,%vals,%sums,$sum,@matrix,$bin,$tmpbin);
+
+    #make nice xmax value
+    if(defined $max) {
+	$xmax = $max;
+    } else {
+	$xmax = (sort {$b <=> $a} keys %$data)[0];
+    }
+    $bin = &getBinVal($xmax);
+    $xmax = $bin*100;
+    $xmin = (defined $min ? $min : 0);
+
+    #get data to bin and find y axis max value
+    $ymax = 0;
+    foreach my $s (0..$stacks-1) {
+	$sums{$s} = 0;
+    }
+    $sum = 0;
+    $tmpbin = $bin;
+    foreach my $i ($xmin..$xmax) {
+	foreach my $s (0..$stacks-1) {
+	    next unless(exists $data->{$i}->{$s});
+	    $sums{$s} += $data->{$i}->{$s};
+	    $sum += $data->{$i}->{$s};
+	}
+	if(--$tmpbin <= 0) {
+	    $tmpbin = $bin;
+	    $ymax = &max($ymax,$sum);
+	    $sum = 0;
+	    foreach my $s (0..$stacks-1) {
+		push(@{$matrix[$s]},$sums{$s});
+		$sums{$s} = 0;
+	    }
+	}
+    }
+
+    #make nice ymax value
+    unless($nonice) {
+	$ymax = sprintf("%d",($ymax/4)+1)*4 if($ymax % 4);
+#        $step = ($ymax <= 10 ? 10 : ($ymax < 40 ? 40 : ($ymax < 100 ? 100 : ($ymax < 1000 ? 100 : 100))));
+#        $ymax = sprintf("%d",($ymax/$step)+1)*$step if($ymax % $step);
+    }
+
+    return (\@matrix,$xmax,$ymax,$stacks);
+}
+
+sub createStackBarPlot {
+    my ($matrix,$xmax,$ymax,$stacks,$title,$xlab,$ylab,$file,$zero,$add) = @_;
+
+    my $bin = 1;
+    if($xmax > 100) {
+	$bin = $xmax / 100;
+	$xmax = 100;
+    }
+
+    my @legend = ('Exact dupl.','5\' dupl.','3\' dupl.','Rev. compl. exact dupl.','Rev. compl. 5\'/3\' dupl.');
+    my @cols = ([69/255, 114/255, 167/255, 1],
+		[137/255, 1165/255, 78/255, 1],
+		[170/255, 70/255, 67/255, 1],
+		[147/255, 169/255, 207/255, 1],
+		[51/255, 102/255, 102/255, 1]);
+    my @barcol = (127/255, 127/255, 255/255, 1); #b2b2ff
+    my @meancol = (255/255, 127/255, 127/255, 1); #ffb2b2
+    my @stdcol = (178/255, 178/255, 255/255, 0.8); #7f7fff
+    my @std1col = (0, 0, 0, 0.02); #ff7f7f
+    my @std2col = (0, 0, 0, 0.02); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol = (1, 1, 1, 0.9);
+    my @background = (0.95, 0.95, 0.95, 1);
+    my @tickcol = (0, 0, 0, 0.8);
+    my @labelcol = (0, 0, 0, 1);
+
+    #create new image
+    my $size   = 6;
+    my $offset = 20;
+    my $left   = 40;
+    my $bottom = 15;
+    my $top = 20;
+    my $height = 200;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$top+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(@background);
+    $cr->fill;
+
+    #draw legend
+    $cr->set_font_size(10);
+#    $font_extents = $cr->font_extents;
+    my $x = $left+$offset+$size*100-5;
+    foreach my $i (reverse (0..scalar(@legend)-1)) {
+	$cr->set_antialias('default');
+	$x -= $cr->text_extents($legend[$i])->{width};
+	$cr->move_to($x,$top+5+9);
+	$cr->set_source_rgba(@tickcol);
+	$cr->show_text($legend[$i]);
+	$x -= 15;
+	$cr->set_antialias('none');
+	$cr->set_source_rgba(@{$cols[$i]});
+	$cr->rectangle($x, $top+5, 10, 10);
+	$cr->fill;
+	$x -= 15;
+    }
+
+    #draw ticks
+    $cr->set_antialias('none');
+    #x-axis
+    $cr->set_source_rgba(@tickcol);
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+	} else {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+1);
+	}
+    }
+    $cr->stroke;
+
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset);
+    $cr->line_to($left+$offset-3, $top+$offset);
+    $cr->move_to($left+$offset, $top+$offset+$height-1);
+    $cr->line_to($left+$offset-3, $top+$offset+$height-1);
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(@tickcol);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%10) == 0 && $i > 1 && $i < $xmax) {
+	    $extents = $cr->text_extents($i*$bin);
+	    $cr->move_to($left+$offset+int($size/2+1)+$size*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+	    $cr->show_text($i*$bin);
+	}
+    }
+    #y-axis
+    $extents = $cr->text_extents(&addCommas($ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2);
+    $cr->show_text(&addCommas($ymax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size(14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    $cr->set_source_rgba(@labelcol);
+    $extents = $cr->text_extents($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab.($bin>1 ? ' (per bin)' : ''));
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2+($bin>1 ? 12 : 0)),$offset+10);
+    $cr->show_text($ylab.($bin>1 ? ' (per bin)' : ''));
+
+    $cr->restore;
+
+    #draw boxes
+    $cr->set_antialias('none');
+    foreach my $pos (0..$xmax-($zero ? 0 : 1)) {
+	my $tmp = 0;
+	foreach my $s (0..$stacks-1) {
+	    next unless($matrix->[$s]->[$pos]);
+	    my $cur = $matrix->[$s]->[$pos] / $ymax;
+	    $cr->set_source_rgba(@{$cols[$s]});
+	    if($cur) {
+		$cr->rectangle($left+$offset+$pos*$size, $top+$offset+$height-$tmp*$height, $size-1, -$cur*$height);
+		$cr->fill;
+	    }
+	    $tmp += $cur;
+	}
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub header {
+    return '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PRINSEQ-'.$WHAT.' Report</title>
+<style type="text/css">
+<!--/* <![CDATA[ */
+'.$CSS_STYLE.'
+/* ]]> */-->
+</style>
+</head>
+<body>
+<center>';
+}
+
+sub footer {
+    return '</center></body></html>';
+}
+
+sub generateHtml {
+    my ($in,$out) = @_;
+    my ($file,$data,$surface,$html,$png);
+    $data = &readGdFile($in);
+    my $time = sprintf("%02d/%02d/%04d %02d:%02d:%02d",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+
+    $html .= &header();
+    $html .= '<h2>PRINSEQ-'.$WHAT.' v'.$VERSION.' HTML Report&nbsp;&nbsp;&nbsp;</h2>[Generated: '.$time.']<br /><br />';
+    $html .= '<div class="info-panel">';
+
+    #input info
+    if(exists $data->{numseqs}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Input Information</span></div>';
+        $html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Input file(s):</td><td class="info-table-value">'.($data->{filename1} ? &convertIntToString($data->{filename1}) : '-').($data->{filename2} ? ' and '.&convertIntToString($data->{filename2}) : '').'</td></tr><tr><td class="info-table-type">Input format(s):</td><td class="info-table-value">'.($data->{format1} ? uc($data->{format1}) : '-').($data->{format2} ? ' and '.uc($data->{format2}) : '').'</td></tr>';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            my $singletons1 = ($data->{numseqs}||0)-($data->{pairs}||0);
+            my $singletons2 = ($data->{numseqs2}||0)-($data->{pairs}||0);
+            $html .= '<tr><td class="info-table-type"># Sequences (file 1):</td><td class="info-table-value">'.&addCommas($data->{numseqs}||'-').'</td></tr><tr><td class="info-table-type">Total bases (file 1):</td><td class="info-table-value">'.&addCommas($data->{numbases}||'-').'</td></tr><tr><td class="info-table-type"># Sequences (file 2):</td><td class="info-table-value">'.&addCommas($data->{numseqs2}||'-').'</td></tr><tr><td class="info-table-type">Total bases (file 2):</td><td class="info-table-value">'.&addCommas($data->{numbases2}||'-').'</td></tr><tr><td class="info-table-type"># Pairs:</td><td class="info-table-value">'.&addCommas($data->{pairs}||'-').($data->{pairs} ? '&nbsp;&nbsp;('.sprintf("%.2f",(100*(2*$data->{pairs})/(($data->{numseqs}||0)+($data->{numseqs2}||0)))).'% of sequences)' : '').'</td></tr></tr><tr><td class="info-table-type"># Singletons (file 1):</td><td class="info-table-value">'.&addCommas($singletons1).($singletons1 ? '&nbsp;&nbsp;('.sprintf("%.2f",(100*$singletons1/$data->{numseqs})).'%)' : '').'</td></tr><tr><td class="info-table-type"># Singletons (file 2):</td><td class="info-table-value">'.&addCommas($singletons2).($singletons2 ? '&nbsp;&nbsp;('.sprintf("%.2f",(100*$singletons2/$data->{numseqs2})).'%)' : '').'</td></tr>';
+        } else {
+            $html .= '<tr><td class="info-table-type"># Sequences:</td><td class="info-table-value">'.&addCommas($data->{numseqs}||'-').'</td></tr><tr><td class="info-table-type">Total bases:</td><td class="info-table-value">'.&addCommas($data->{numbases}||'-').'</td></tr>';
+        }
+        $html .= '</tbody></table></div><hr>';
+    }
+
+    #length plot
+    if(exists $data->{counts}->{length} && keys %{$data->{counts}->{length}}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Length Distribution</span></div>';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<div class="info-content"><b>File 1</b><br /><table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type">Mean sequence length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mean} ? sprintf("%.2f",$data->{stats}->{length}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{length}->{std} ? sprintf("%.2f",$data->{stats}->{length}->{std}) : '-').' bp</td></tr><tr><td class="info-table-type">Minimum length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{min} ? &addCommas($data->{stats}->{length}->{min}) : '-').' bp</td></tr> <tr><td class="info-table-type">Maximum length:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{max} ? &addCommas($data->{stats}->{length}->{max}) : '-').' bp</td></tr> <tr><td class="info-table-type">Length range:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{range} ? &addCommas($data->{stats}->{length}->{range}) : '-').' bp</td></tr> <tr><td class="info-table-type">Mode length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mode} ? &addCommas($data->{stats}->{length}->{mode}) : '-').' bp with '.(exists $data->{stats}->{length}->{modeval} ? &addCommas($data->{stats}->{length}->{modeval}) : '-').' sequences</td></tr></tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{length},1),$data->{stats}->{length},'Length Distribution','Read Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+            $html .= '<div class="info-content"><br /><b>File 2</b><br /><table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type">Mean sequence length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{length}->{mean} ? sprintf("%.2f",$data->{stats2}->{length}->{mean}) : '-').' &plusmn; '.(exists $data->{stats2}->{length}->{std} ? sprintf("%.2f",$data->{stats2}->{length}->{std}) : '-').' bp</td></tr><tr><td class="info-table-type">Minimum length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{length}->{min} ? &addCommas($data->{stats2}->{length}->{min}) : '-').' bp</td></tr> <tr><td class="info-table-type">Maximum length:</td><td class="info-table-value">'.(exists $data->{stats2}->{length}->{max} ? &addCommas($data->{stats2}->{length}->{max}) : '-').' bp</td></tr> <tr><td class="info-table-type">Length range:</td><td class="info-table-value">'.(exists $data->{stats2}->{length}->{range} ? &addCommas($data->{stats2}->{length}->{range}) : '-').' bp</td></tr> <tr><td class="info-table-type">Mode length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{length}->{mode} ? &addCommas($data->{stats2}->{length}->{mode}) : '-').' bp with '.(exists $data->{stats2}->{length}->{modeval} ? &addCommas($data->{stats2}->{length}->{modeval}) : '-').' sequences</td></tr></tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{length},1),$data->{stats2}->{length},'Length Distribution','Read Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        } else {
+            $html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type">Mean sequence length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mean} ? sprintf("%.2f",$data->{stats}->{length}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{length}->{std} ? sprintf("%.2f",$data->{stats}->{length}->{std}) : '-').' bp</td></tr><tr><td class="info-table-type">Minimum length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{min} ? &addCommas($data->{stats}->{length}->{min}) : '-').' bp</td></tr> <tr><td class="info-table-type">Maximum length:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{max} ? &addCommas($data->{stats}->{length}->{max}) : '-').' bp</td></tr> <tr><td class="info-table-type">Length range:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{range} ? &addCommas($data->{stats}->{length}->{range}) : '-').' bp</td></tr> <tr><td class="info-table-type">Mode length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mode} ? &addCommas($data->{stats}->{length}->{mode}) : '-').' bp with '.(exists $data->{stats}->{length}->{modeval} ? &addCommas($data->{stats}->{length}->{modeval}) : '-').' sequences</td></tr></tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{length},1),$data->{stats}->{length},'Length Distribution','Read Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        }
+        $html .= '<hr>';
+    }
+
+    #GC content
+    if(exists $data->{counts}->{gc} && keys %{$data->{counts}->{gc}}) {
+	$html .= '<div class="info-header"><span class="info-header-title">GC Content Distribution</span></div>';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<div class="info-content"><b>File 1</b><br /><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Mean GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mean} ? sprintf("%.2f",$data->{stats}->{gc}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{gc}->{std} ? sprintf("%.2f",$data->{stats}->{gc}->{std}) : '-').' %</td></tr> <tr><td class="info-table-type">Minimum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{min} ? $data->{stats}->{gc}->{min} : '-').' %</td></tr> <tr><td class="info-table-type">Maximum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{max} ? $data->{stats}->{gc}->{max} : '-').' %</td></tr> <tr><td class="info-table-type">GC content range:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{range} ? $data->{stats}->{gc}->{range} : '-').' %</td></tr> <tr><td class="info-table-type">Mode GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mode} ? $data->{stats}->{gc}->{mode} : '-').' % with '.(exists $data->{stats}->{gc}->{modeval} ? &addCommas($data->{stats}->{gc}->{modeval}) : '-').' sequences</td></tr> </tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{gc},0),$data->{stats}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences','',1);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+            $html .= '<div class="info-content"><br /><b>File 2</b><br /><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Mean GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{mean} ? sprintf("%.2f",$data->{stats2}->{gc}->{mean}) : '-').' &plusmn; '.(exists $data->{stats2}->{gc}->{std} ? sprintf("%.2f",$data->{stats2}->{gc}->{std}) : '-').' %</td></tr> <tr><td class="info-table-type">Minimum GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{min} ? $data->{stats2}->{gc}->{min} : '-').' %</td></tr> <tr><td class="info-table-type">Maximum GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{max} ? $data->{stats2}->{gc}->{max} : '-').' %</td></tr> <tr><td class="info-table-type">GC content range:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{range} ? $data->{stats2}->{gc}->{range} : '-').' %</td></tr> <tr><td class="info-table-type">Mode GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{mode} ? $data->{stats2}->{gc}->{mode} : '-').' % with '.(exists $data->{stats2}->{gc}->{modeval} ? &addCommas($data->{stats2}->{gc}->{modeval}) : '-').' sequences</td></tr> </tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{gc},0),$data->{stats2}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences','',1);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        } else {
+            $html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Mean GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mean} ? sprintf("%.2f",$data->{stats}->{gc}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{gc}->{std} ? sprintf("%.2f",$data->{stats}->{gc}->{std}) : '-').' %</td></tr> <tr><td class="info-table-type">Minimum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{min} ? $data->{stats}->{gc}->{min} : '-').' %</td></tr> <tr><td class="info-table-type">Maximum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{max} ? $data->{stats}->{gc}->{max} : '-').' %</td></tr> <tr><td class="info-table-type">GC content range:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{range} ? $data->{stats}->{gc}->{range} : '-').' %</td></tr> <tr><td class="info-table-type">Mode GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mode} ? $data->{stats}->{gc}->{mode} : '-').' % with '.(exists $data->{stats}->{gc}->{modeval} ? &addCommas($data->{stats}->{gc}->{modeval}) : '-').' sequences</td></tr> </tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{gc},0),$data->{stats}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences','',1);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        }
+        $html .= '<hr>';
+    }
+
+    #Base quality
+    if(exists $data->{quals} || exists $data->{qualsmean} || exists $data->{qualsbin}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Base Quality Distribution</span></div><div class="info-content">';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+    }
+    if(exists $data->{quals} && keys %{$data->{quals}}) {
+	$surface = &createBoxPlot(&convertToBoxValues($data->{quals},4),'Base Quality Distribution','Read position in %','Quality score','');
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{qualsbin} && keys %{$data->{qualsbin}}) {
+	$surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin},4),'Base Quality Distribution','Read position in bp','Quality score','',0,'bp',$data->{binval});
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+        $html .= '<br /><br />' if(exists $data->{quals});
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{qualsmean} && keys %{$data->{qualsmean}}) {
+	$surface = &createBarPlot(&convertToBarValues($data->{qualsmean},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences','',0);
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= '<br /><br />' if(exists $data->{qualsbin});
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{pairedend} && $data->{pairedend}) {
+        if(exists $data->{quals} || exists $data->{qualsmean} || exists $data->{qualsbin}) {
+            $html .= '<br /><br /><br /><b>File 2</b><br />';
+        }
+        if(exists $data->{quals2} && keys %{$data->{quals2}}) {
+            $surface = &createBoxPlot(&convertToBoxValues($data->{quals2},4),'Base Quality Distribution','Read position in %','Quality score','');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+        }
+        if(exists $data->{qualsbin2} && keys %{$data->{qualsbin2}}) {
+            $surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin2},4),'Base Quality Distribution','Read position in bp','Quality score','',0,'bp',$data->{binval});
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{quals2});
+            $html .= &insert_image($png);
+        }
+        if(exists $data->{qualsmean2} && keys %{$data->{qualsmean2}}) {
+            $surface = &createBarPlot(&convertToBarValues($data->{qualsmean2},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{qualsbin2});
+            $html .= &insert_image($png);
+        }
+    }
+    if(exists $data->{quals} || exists $data->{qualsmean} || exists $data->{qualsbin}) {
+	$html .= '</div><hr>';
+    }
+
+    #Ns
+    if((exists $data->{counts}->{ns} && keys %{$data->{counts}->{ns}}) || (exists $data->{counts2} && exists $data->{counts2}->{ns} && keys %{$data->{counts2}->{ns}})) {
+        $html .= '<div class="info-header"><span class="info-header-title">Occurence of N</span></div><div class="info-content">';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+    }
+    if(exists $data->{counts}->{ns} && keys %{$data->{counts}->{ns}}) {
+	my $nscount = 0;
+	foreach my $n (values %{$data->{counts}->{ns}}) {
+	    $nscount += $n;
+	}	
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Sequences with N:</td> <td class="info-table-value">'.($nscount ? &addCommas($nscount).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$nscount).' %)' : 0).'</td></tr><tr><td class="info-table-type">Max percentage of Ns per sequence:</td> <td class="info-table-value">'.(exists $data->{stats}->{ns}->{max} ? $data->{stats}->{ns}->{max} : 0).' %</td></tr></tbody></table>';
+	if($nscount) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if(exists $data->{pairedend} && $data->{pairedend} && exists $data->{counts2}->{ns} && keys %{$data->{counts2}->{ns}}) {
+        $html .= '<br /><br /><br /><b>File 2</b><br />';
+        my $nscount = 0;
+        foreach my $n (values %{$data->{counts2}->{ns}}) {
+            $nscount += $n;
+        }	
+        $html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Sequences with N:</td> <td class="info-table-value">'.($nscount ? &addCommas($nscount).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs2}*$nscount).' %)' : 0).'</td></tr><tr><td class="info-table-type">Max percentage of Ns per sequence:</td> <td class="info-table-value">'.(exists $data->{stats2}->{ns}->{max} ? $data->{stats2}->{ns}->{max} : 0).' %</td></tr></tbody></table>';
+        if($nscount) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if((exists $data->{counts}->{ns} && keys %{$data->{counts}->{ns}}) || (exists $data->{counts2} && exists $data->{counts2}->{ns} && keys %{$data->{counts2}->{ns}})) {
+        $html .= '</div><hr>';
+    }
+
+    #tails
+    if(exists $data->{tail} || exists $data->{tail2}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Poly-A/T Tails</span></div><div class="info-content">';
+    }
+    if(exists $data->{tail}) {
+	my $tail5count = 0;
+	foreach my $n (values %{$data->{counts}->{tail5}}) {
+	    $tail5count += $n;
+	}
+	my $tail3count = 0;
+	foreach my $n (values %{$data->{counts}->{tail3}}) {
+	    $tail3count += $n;
+	}
+	if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td> <td class="info-table-value">3\'-end</td></tr> <tr><td class="info-table-type">Sequences with tail:</td><td class="info-table-value">'.($tail5count ? &addCommas($tail5count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$tail5count).' %)' : 0).'</td> <td class="info-table-value">'.($tail3count ? &addCommas($tail3count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$tail3count).' %)' : 0).'</td></tr> <tr><td class="info-table-type">Maximum tail length:</td> <td class="info-table-value">'.(exists $data->{stats}->{tail5}->{max} ? $data->{stats}->{tail5}->{max} : 0).'</td> <td class="info-table-value">'.(exists $data->{stats}->{tail3}->{max} ? $data->{stats}->{tail3}->{max} : 0).'</td></tr></tbody></table>';
+        if($tail5count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+            if($tail3count) {
+                $html .= '<br />';
+            }
+        }
+        if($tail3count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if(exists $data->{pairedend} && $data->{pairedend} && exists $data->{tail2}) {
+        my $tail5count = 0;
+	foreach my $n (values %{$data->{counts2}->{tail5}}) {
+	    $tail5count += $n;
+	}
+	my $tail3count = 0;
+	foreach my $n (values %{$data->{counts2}->{tail3}}) {
+	    $tail3count += $n;
+	}
+        $html .= '<br /><br /><br /><b>File 2</b><br />';
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td> <td class="info-table-value">3\'-end</td></tr> <tr><td class="info-table-type">Sequences with tail:</td><td class="info-table-value">'.($tail5count ? &addCommas($tail5count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs2}*$tail5count).' %)' : 0).'</td> <td class="info-table-value">'.($tail3count ? &addCommas($tail3count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs2}*$tail3count).' %)' : 0).'</td></tr> <tr><td class="info-table-type">Maximum tail length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{tail5}->{max} ? $data->{stats2}->{tail5}->{max} : 0).'</td> <td class="info-table-value">'.(exists $data->{stats2}->{tail3}->{max} ? $data->{stats2}->{tail3}->{max} : 0).'</td></tr></tbody></table>';
+        if($tail5count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+            if($tail3count) {
+                $html .= '<br />';
+            }
+        }
+        if($tail3count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if(exists $data->{tail} || exists $data->{tail2}) {
+        $html .= '</div><hr>';
+    }
+    
+
+    #tag sequence check
+    if(exists $data->{freqs} || exists $data->{freqs2}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Tag Sequence Check</span></div><div class="info-content">';
+    }
+    if(exists $data->{freqs}) {
+	my $tagmidseq;
+	if(exists $data->{tagmidseq}) {
+	    $tagmidseq = $data->{tagmidseq};
+	    $tagmidseq =~ s/\,/\<br \/\>/g;
+	}
+	if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td><td class="info-table-value">3\'-end</td></tr><tr><td class="info-table-type">Probability of tag sequence:</td><td class="info-table-value">'.(exists $data->{tagprob}->{5} ? $data->{tagprob}->{5}.' %' : '-').'</td><td class="info-table-value">'.(exists $data->{tagprob}->{3} ? $data->{tagprob}->{3}.' %' : '-').'</td></tr><tr><td class="info-table-type">GSMIDs or RLMIDs:</td><td class="info-table-value">'.(exists $data->{tagmidnum} ? ($data->{tagmidnum} == 0 ? 'none' : ($tagmidseq ? $tagmidseq : $data->{tagmidnum})) : '-').'</td><td class="info-table-value">&nbsp;</td></tr></tbody></table><br>';
+	$html .= '<table border="0" cellspacing="0" cellpadding="0"><tr><td>'.&insert_image($FREQCHART_L,undef,undef,1).'</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs}->{5}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs}->{5}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs}->{5}->{$pos}->{$base},14,1).'<br />';
+		    #'<img height="'.$data->{freqs}->{5}->{pos}->{$base}.'px" border="0" src="'..'" alt="'.$base.'" width="14px" /><br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '<td align="center" valign="middle">&nbsp;...&nbsp;</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs}->{3}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs}->{3}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs}->{3}->{$pos}->{$base},14,1).'<br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '</tr>';
+	$html .= '<tr><td>&nbsp;</td>';
+	foreach my $num (1,0,0,0,5,0,0,0,0,10,0,0,0,0,15,0,0,0,0,20,0,20,0,0,0,0,15,0,0,0,0,10,0,0,0,0,5,0,0,0,1) {
+	    $html .= '<td valign="top" align="center" style="font-size: 10px;margin: 0;">'.($num ? $num : '').'&nbsp;</td>';
+	}
+	$html .= '</tr><tr><td align="left" valign="middle">&nbsp;</td><td align="center" valign="middle" colspan="41" class="pinfo"><b>Position from Sequence Ends</b></td></tr>';
+	$html .= '</table>';
+    }
+    if(exists $data->{pairedend} && $data->{pairedend} && exists $data->{freqs2}) {
+        $html .= '<br /><br /><br /><b>File 2</b><br />';
+        $html .= '<table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td><td class="info-table-value">3\'-end</td></tr><tr><td class="info-table-type">Probability of tag sequence:</td><td class="info-table-value">'.(exists $data->{tagprob2}->{5} ? $data->{tagprob2}->{5}.' %' : '-').'</td><td class="info-table-value">'.(exists $data->{tagprob2}->{3} ? $data->{tagprob2}->{3}.' %' : '-').'</td></tr></tbody></table><br>';
+	$html .= '<table border="0" cellspacing="0" cellpadding="0"><tr><td>'.&insert_image($FREQCHART_L,undef,undef,1).'</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs2}->{5}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs2}->{5}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs2}->{5}->{$pos}->{$base},14,1).'<br />';
+		    #'<img height="'.$data->{freqs}->{5}->{pos}->{$base}.'px" border="0" src="'..'" alt="'.$base.'" width="14px" /><br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '<td align="center" valign="middle">&nbsp;...&nbsp;</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs2}->{3}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs2}->{3}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs2}->{3}->{$pos}->{$base},14,1).'<br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '</tr>';
+	$html .= '<tr><td>&nbsp;</td>';
+	foreach my $num (1,0,0,0,5,0,0,0,0,10,0,0,0,0,15,0,0,0,0,20,0,20,0,0,0,0,15,0,0,0,0,10,0,0,0,0,5,0,0,0,1) {
+	    $html .= '<td valign="top" align="center" style="font-size: 10px;margin: 0;">'.($num ? $num : '').'&nbsp;</td>';
+	}
+	$html .= '</tr><tr><td align="left" valign="middle">&nbsp;</td><td align="center" valign="middle" colspan="41" class="pinfo"><b>Position from Sequence Ends</b></td></tr>';
+	$html .= '</table>';
+    }
+    if(exists $data->{freqs} || exists $data->{freqs2}) {
+        $html .= '</div><hr>';
+    }
+
+    #Sequence duplicates
+    if(exists $data->{dubslength} || exists $data->{dubscounts}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Sequence Duplication</span></div>';
+    }
+    my %dubs;
+    if(exists $data->{dubscounts} && keys %{$data->{dubscounts}}) {
+	my $exactonly = $data->{exactonly}||0;
+	foreach my $n (keys %{$data->{dubscounts}}) {
+	    foreach my $s (keys %{$data->{dubscounts}->{$n}}) {
+		$dubs{$s}->{count} += $data->{dubscounts}->{$n}->{$s} * $n;
+		$dubs{$s}->{max} = $n unless(exists $dubs{$s}->{max} && $dubs{$s}->{max} > $n);
+		$dubs{all} += $data->{dubscounts}->{$n}->{$s} * $n;
+	    }
+	}
+	$html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value"># Sequences</td> <td class="info-table-value">Max duplicates</td></tr><tr><td class="info-table-type">Exact duplicates:</td><td class="info-table-value">'.(exists $dubs{0}->{count} ? &addCommas($dubs{0}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{0}->{count}).' %)' : 0).'</td><td class="info-table-value">'.($dubs{0}->{max}||0).'</td></tr><tr><td class="info-table-type">Exact duplicates with reverse complements:</td><td class="info-table-value">'.(exists $dubs{3}->{count} ? &addCommas($dubs{3}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{3}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{3}->{max}||0).'</td></tr>';
+        unless($exactonly) {
+            $html .= '<tr><td class="info-table-type">5\' duplicates</td><td class="info-table-value">'.(exists $dubs{1}->{count} ? &addCommas($dubs{1}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{1}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{1}->{max}||0).'</td></tr><tr><td class="info-table-type">3\' duplicates</td><td class="info-table-value">'.(exists $dubs{2}->{count} ? &addCommas($dubs{2}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{2}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{2}->{max}||0).'</td></tr><tr><td class="info-table-type">5\'/3\' duplicates with reverse complements</td><td class="info-table-value">'.(exists $dubs{4}->{count} ? &addCommas($dubs{4}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{4}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{4}->{max}||0).'</td></tr>';
+        }
+        $html .= '<tr><td class="info-table-type">Total:</td><td class="info-table-value">'.(exists $dubs{all} ? &addCommas($dubs{all}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{all}).' %)' : 0).'</td><td class="info-table-value">-</td></tr></tbody></table>';
+    }
+    if(exists $dubs{all} && $dubs{all}) {
+        if(exists $data->{dubslength} && keys %{$data->{dubslength}}) {
+            $surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubslength},5,1),'Sequence duplication level','Read Length in bp','Number of duplicates','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+        if(exists $data->{dubscounts} && keys %{$data->{dubscounts}}) {
+            $surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubscounts},5,1,100),'Sequence duplication level','Number of duplicates','Number of sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{dubslength});
+            $html .= &insert_image($png);
+            my %dubsmax;
+            my $count = 1;
+            foreach my $n (sort {$b <=> $a} keys %{$data->{dubscounts}}) {
+                foreach my $s (keys %{$data->{dubscounts}->{$n}}) {
+                    foreach my $i (1..$data->{dubscounts}->{$n}->{$s}) {
+                        $dubsmax{$count++}->{$s} = $n;
+                        last unless($count <= 100);
+                    }
+                    last unless($count <= 100);
+                }
+                last unless($count <= 100);
+            }
+            $surface = &createStackBarPlot(&convertOdToStackBinMatrix(\%dubsmax,5,1,100),'Sequence duplication level','Sequence','Number of duplicates','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{dubslength});
+            $html .= &insert_image($png);
+        }
+    }
+    if(exists $data->{dubslength} || exists $data->{dubscounts}) {
+	$html .= '</div><hr>';
+    }
+
+    #Sequence complexity
+    if(exists $data->{compldust} || exists $data->{complentropy}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Sequence Complexity</span></div>';
+	if(exists $data->{complvals}) {
+	    my $complseq;
+	    foreach my $d (keys %{$data->{complvals}}) {
+		foreach my $m ('minseq','maxseq') {
+		    $complseq = $data->{complvals}->{$d}->{$m};
+		    $complseq = substr($complseq,0,797).'...' if(length($complseq) > 800);
+		    $complseq =~ s/(.{60})/$1\<br \/\>/g;
+		    $data->{complvals}->{$d}->{$m} = $complseq;
+		}
+	    }
+	}
+	$html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">Value</td><td class="info-table-value">Sequence</td></tr><tr><td class="info-table-type">Minimum DUST score:</td><td class="info-table-value">'.(exists $data->{complvals}->{dust}->{minval} ? $data->{complvals}->{dust}->{minval} : '-').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{dust}->{minseq} ? $data->{complvals}->{dust}->{minseq} : '').'</td></tr><tr><td class="info-table-type">Maximum DUST score:</td><td class="info-table-value">'.(exists $data->{complvals}->{dust}->{maxval} ? $data->{complvals}->{dust}->{maxval} : '').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{dust}->{maxseq} ? $data->{complvals}->{dust}->{maxseq} : '').'</td></tr><tr><td class="info-table-type">Minimum Entropy value:</td><td class="info-table-value">'.(exists $data->{complvals}->{entropy}->{minval} ? $data->{complvals}->{entropy}->{minval} : '').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{entropy}->{minseq} ? $data->{complvals}->{entropy}->{minseq} : '').'</td></tr><tr><td class="info-table-type">Maximum Entropy value:</td><td class="info-table-value">'.(exists $data->{complvals}->{entropy}->{maxval} ? $data->{complvals}->{entropy}->{maxval} : '').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{entropy}->{maxseq} ? $data->{complvals}->{entropy}->{maxseq} : '').'</td></tr> </tbody></table><br />';
+    }
+    if(exists $data->{compldust}) {
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{compldust},0),undef,'Sequence complexity distribution','Mean sequence complexity (DUST scores)','Number of sequences','',1);
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{complentropy}) {
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{complentropy},0),undef,'Sequence complexity distribution','Mean sequence complexity (Entropy values)','Number of sequences','',1);
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= '<br /><br />' if(exists $data->{compldust});
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{compldust} || exists $data->{complentropy}) {
+	$html .= '</div><hr>';
+    }
+
+    #Dinucleotide odd ratio PCA - microbial/viral
+    if(exists $data->{dinucodds} && keys %{$data->{dinucodds}}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Dinucleotide Odds Ratios</span></div>';
+	$html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">&nbsp;</td>';
+	foreach my $d (map {join("/",(m/../g ))} sort keys %{$data->{dinucodds}}) {
+	    $html .= '<td class="info-table-value">'.$d.'</td>';
+	}
+	$html .= '</tr><tr><td class="info-table-type">Odds ratio</td>';
+	foreach my $d (map {sprintf("%.4f",$data->{dinucodds}->{$_})} sort keys %{$data->{dinucodds}}) {
+	    $html .= '<td class="info-table-value">'.$d.'</td>';
+	}
+	$html .= '</tr></tbody></table><br />';
+	my @new = map {$data->{dinucodds}->{$_}} sort keys %{$data->{dinucodds}};
+        $surface = &createOddsRatioPlot($data->{dinucodds},'Odds ratios','Dinucleotide','Odds ratio','');
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= &insert_image($png);
+	#$surface = &createPCAPlot(&convertToPCAValues(\@new,'m'),'PCA','1st Principal Component Score','2nd Principal Component Score','');
+	#$png = '';
+	#$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	#$html .= '<br /><br />';
+	#$html .= &insert_image($png);
+	#$surface = &createPCAPlot(&convertToPCAValues(\@new,'v'),'PCA','1st Principal Component Score','2nd Principal Component Score','');
+	#$png = '';
+	#$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	#$html .= '<br /><br />';
+	#$html .= &insert_image($png);
+	$html .= '</div>';
+    }
+
+    $html .= '</div>';
+    $html .= &footer();
+
+    #write html to file
+    $file = &getFileName('.html');
+    open(FH, ">$file") or &printError("Can't open file ".$file.": $!");
+    print FH $html;
+    close(FH);
+    &printLog("Done with HTML data");
+}
+
+sub insert_image {
+  my ($data, $height, $width, $noencode) = @_;
+  my $content .= '<img border="0" '.($height ? 'height="'.$height.'"' : '').($width ? 'width="'.$width.'"' : '').' src="'.($noencode ? "data:image/png;base64,".$data : &inline_image($data)).'" />'."\n";
+  return $content;
+}
+
+sub inline_image {
+    return "data:image/png;base64,".MIME::Base64::encode_base64($_[0]);
+}
+
+sub convertIntToString {
+    my $int = shift;
+    $int =~ s/(.{2})/chr(hex($1))/eg;
+    return $int;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/prinseq-graphs.pl	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,2665 @@
+#!/usr/bin/perl
+
+#===============================================================================
+#   Author: Robert SCHMIEDER, Computational Science Research Center @ SDSU, CA
+#
+#   File: prinseq-graphs
+#   Date: 2012-12-22
+#   Version: 0.6 graphs
+#
+#   Usage:
+#      prinseq-graphs [options]
+#
+#      Try 'prinseq-graphs -h' for more information.
+#
+#    Purpose: PRINSEQ will help you to preprocess your genomic or metagenomic
+#             sequence data in FASTA or FASTQ format. The graphs version allows
+#             users of the lite version to generate graphs similar to the web
+#             version.
+#
+#    Bugs: Please use http://sourceforge.net/tracker/?group_id=315449
+#
+#===============================================================================
+
+use strict;
+use warnings;
+
+use Getopt::Long;
+use Pod::Usage;
+use File::Temp qw(tempfile); #for output files
+use Fcntl qw(:flock SEEK_END); #for log file
+use Cwd;
+use JSON;
+use Cairo;
+use Statistics::PCA;
+use MIME::Base64;
+use File::Basename;
+use Data::Dumper; ###
+
+$| = 1; # Do not buffer output
+
+my $PI = 4 * atan2(1, 1);
+my $LOG62 = log(62);
+my $DINUCODDS_VIR = [
+                        [qw(1.086940308	0.98976932	1.034167044	0.880024041	1.070421277	0.990687084	0.890945575	1.069957074	0.92465631	0.803973303)],
+                        [qw(1.101064857	0.986812783	1.038299155	0.896162618	1.081652847	0.976365237	0.867445186	1.06727283	0.94688543	0.768007295)],
+                        [qw(1.071548411	0.912204166	1.196914981	0.80628184	1.294201511	1.148517794	0.269295791	1.033948026	0.895951033	0.623192149)],
+                        [qw(1.090253719	0.907428629	1.203991784	0.786359294	1.281499107	1.145421568	0.235974709	1.033437274	0.899580091	0.631699771)],
+                        [qw(1.075864745	1.003413074	1.01872902	0.897841689	0.980373171	1.05854979	0.934262259	1.052477953	0.88145851	0.889239724)],
+                        [qw(1.101890467	1.030028291	1.019912674	0.84191395	1.0015174	1.069546264	0.900151602	0.996269395	0.889195343	0.904039022)],
+                        [qw(1.152417359	0.855028574	0.91164793	1.017415486	1.114163672	1.128353311	0.846355573	0.916745489	1.206820475	0.811014651)],
+                        [qw(1.142454218	0.8635465	0.923406967	1.026242747	1.134445058	1.131747833	0.79793368	0.920767641	1.179468556	0.799770057)],
+                        [qw(1.124462747	0.873556143	0.945627041	1.013755408	1.159866153	1.096259526	0.757315047	0.972924919	1.105562567	0.772731886)],
+                        [qw(1.143826972	0.866968779	0.995740249	0.945859278	1.109590621	1.089305083	0.76048874	0.971561388	1.157101408	0.792923027)],
+                        [qw(1.131900141	0.82776996	0.996204924	0.999433455	1.024692372	1.071176333	0.921026216	1.088936699	1.054010776	0.773498892)],
+                        [qw(1.042180476	0.930180412	1.019242897	0.98909997	1.006666828	1.046708539	0.959492164	1.011183418	1.055168776	0.937433818)],
+                        [qw(1.086515695	0.985345815	0.930914307	0.969581792	1.043010232	1.087463712	0.939482285	0.990551965	0.954752469	0.893972874)],
+                        [qw(1.096657826	0.950117614	0.936195529	0.965619788	1.114975275	1.077011195	0.843153131	0.989128406	1.043790912	0.840634731)],
+                        [qw(1.158030995	0.935307365	0.874812261	1.056236525	1.117171274	0.937484692	1.057442372	0.970079538	1.174848738	0.725071711)],
+                        [qw(1.15591506	0.93000227	0.883538923	1.0567652	1.095730954	0.944489906	1.074229471	0.983993745	1.156051409	0.726688465)],
+                        [qw(1.205726473	0.924439339	1.049457756	0.805718412	0.975472778	1.07581991	0.726992211	1.075025787	0.8704929	0.726672843)],
+                        [qw(1.188544681	0.95239611	1.049066985	0.790031334	1.038632598	1.056749787	0.665197397	1.057566244	0.862429061	0.708982398)],
+                        [qw(1.063631482	0.925593715	1.014869316	0.944904401	1.119690731	1.325971834	0.273781451	0.943347677	1.06438014	0.920825904)],
+                        [qw(1.077560287	0.911888545	1.044147857	0.927758054	1.058535939	1.296838544	0.421514996	0.945722451	1.128317986	0.926419928)],
+                        [qw(1.163753415	0.989905668	0.893599328	0.955641844	1.176047687	0.941559156	0.950641089	0.959741692	1.100815282	0.72491925)],
+                        [qw(1.139253929	0.946297517	0.922096125	1.024801537	1.205206793	0.968818717	0.915801342	0.971626058	1.107569276	0.627623404)]
+                     ];
+my $DINUCODDS_MIC = [
+                        [qw(1.13127323	0.853587195	0.911041047	1.104520778	1.065586428	1.021434164	0.999734139	1.063684014	1.078035184	0.733596552)],
+                        [qw(1.173267344	0.840539337	0.919534602	1.068050141	1.062394214	1.051999071	0.96770576	1.035511729	1.095600433	0.72328141)],
+                        [qw(1.172939786	0.84567902	0.911836259	1.106288994	1.05351787	1.026143368	1.002308358	1.066319771	1.094918797	0.710733535)],
+                        [qw(1.073527689	0.850290918	0.978455025	1.080882178	1.111174765	1.010754115	0.895668707	1.072980666	1.079304608	0.754057386)],
+                        [qw(1.08807747	0.837444678	0.95824965	1.097310298	1.118897971	1.030863881	0.886827263	1.072349394	1.07406322	0.733440096)],
+                        [qw(1.071685485	0.861055813	0.966566865	1.090268118	1.112945761	1.012538936	0.909535491	1.063745603	1.071156598	0.755770377)],
+                        [qw(1.142698587	0.867936867	1.000612099	0.977934257	1.111801746	1.018318601	0.788556794	0.987763594	1.184649653	0.784776176)],
+                        [qw(1.134560074	0.876651844	0.998190253	0.995723123	1.128448077	1.014172324	0.781776188	0.971020602	1.182411449	0.786449476)],
+                        [qw(1.180029632	0.787899325	1.01316945	0.932268406	1.077837263	1.211699678	0.612128817	1.033036699	1.157314398	0.74940288)],
+                        [qw(1.160925546	0.788308899	1.003702496	0.965371236	1.076051693	1.188304271	0.641536444	1.070331188	1.124067192	0.740126813)],
+                        [qw(1.173873006	0.790118011	1.014718833	0.937979878	1.07453725	1.207167373	0.622279064	1.046150047	1.145627707	0.742212886)],
+                        [qw(1.128383111	0.870541389	0.987269741	0.98353238	1.115643879	1.040107028	0.774505865	1.010896432	1.164757274	0.775254395)],
+                        [qw(1.15297511	0.853883985	0.956393231	1.000027661	1.139915472	1.01355294	0.838843622	1.015553125	1.216219741	0.70447264)],
+                        [qw(1.148264236	0.852123859	0.974568293	0.985455546	1.13192373	1.015879393	0.828987111	1.016820786	1.216647853	0.71634006)],
+                        [qw(1.12933788	0.831777975	1.005434367	0.991081409	1.126146895	1.07421504	0.69343913	1.054032466	1.14809591	0.728541157)],
+                        [qw(1.124157235	0.828112691	1.022348424	0.983822386	1.143028487	1.081830005	0.672594435	1.05685982	1.149537403	0.684432106)],
+                        [qw(1.128029586	0.841853305	1.00983936	0.967179139	1.122524003	1.094555807	0.659238308	1.061578854	1.1243601	0.740148171)],
+                        [qw(1.093521636	0.855071052	0.929160818	1.203773691	1.178257185	0.881341255	1.078305505	1.051988532	1.169143967	0.555057308)],
+                        [qw(1.073737278	0.877396537	0.968017446	1.124155374	1.166244435	0.909044208	0.999147578	1.071098934	1.120156138	0.607444953)],
+                        [qw(1.092150184	0.863407008	0.927040387	1.185387013	1.171670826	0.882276859	1.083058605	1.048379554	1.168635365	0.580337997)]
+                    ];
+my $DATA_VIR = [
+                    [2,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [3,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [42,2,'Human (nasal)',[127/255, 127/255, 255/255,1]],
+                    [43,2,'Human (nasal)',[127/255, 127/255, 255/255,1]],
+                    [45,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [49,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [52,3,'Human (sputum)',[127/255, 127/255, 255/255,1]],
+                    [54,3,'Human (sputum)',[127/255, 127/255, 255/255,1]],
+                    [55,4,'Human (sputum, CF)',[127/255, 127/255, 255/255,1]],
+                    [57,4,'Human (sputum, CF)',[127/255, 127/255, 255/255,1]],
+                    [88,5,'Freshwater (Hot spring)',[127/255, 127/255, 255/255,1]],
+                    [89,5,'Freshwater (Hot spring)',[127/255, 127/255, 255/255,1]],
+                    [98,6,'Freshwater (Antartic lake)',[127/255, 127/255, 255/255,1]],
+                    [99,6,'Freshwater (Antartic lake)',[127/255, 127/255, 255/255,1]],
+                    [100,7,'Freshwater (reclaimed)',[127/255, 127/255, 255/255,1]],
+                    [102,7,'Freshwater (reclaimed)',[127/255, 127/255, 255/255,1]],
+                    [153,8,'Mouse (brain tissue)',[127/255, 127/255, 255/255,1]],
+                    [154,8,'Mouse (brain tissue)',[127/255, 127/255, 255/255,1]],
+                    [202,9,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+                    [206,9,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+                    [209,10,'Mosquito',[127/255, 127/255, 255/255,1]],
+                    [211,10,'Mosquito',[127/255, 127/255, 255/255,1]],
+		    ['U',0,'User input',[255/255, 127/255, 127/255,1]]
+                ];
+my $DATA_MIC = [
+                    [17,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [20,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [22,1,'Human (fecal)',[127/255, 127/255, 255/255,1]],
+                    [63,2,'Mouse (fecal)',[127/255, 127/255, 255/255,1]],
+                    [65,2,'Mouse (fecal)',[127/255, 127/255, 255/255,1]],
+                    [68,2,'Mouse (fecal)',[127/255, 127/255, 255/255,1]],
+                    [93,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [95,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [109,4,'Marine (open ocean)',[127/255, 127/255, 255/255,1]],
+                    [110,4,'Marine (open ocean)',[127/255, 127/255, 255/255,1]],
+                    [111,4,'Marine (open ocean)',[127/255, 127/255, 255/255,1]],
+                    [120,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [124,5,'Marine (estuary)',[127/255, 127/255, 255/255,1]],
+                    [125,5,'Marine (estuary)',[127/255, 127/255, 255/255,1]],
+                    [134,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [146,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [148,3,'Marine (coastal)',[127/255, 127/255, 255/255,1]],
+                    [201,6,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+                    [203,7,'Fish (slime)',[127/255, 127/255, 255/255,1]],
+                    [205,6,'Fish (gut)',[127/255, 127/255, 255/255,1]],
+		    ['U',0,'User input',[255/255, 127/255, 127/255,1]]
+                ];
+my $BASE64_BASES = {A => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC',
+		    C => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC',
+		    G => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=',
+		    T => 'iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==',
+		    N => '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
+SUVORK5CYII='
+		    };
+my $MMCHART_B2 = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC';
+my $FREQCHART_L = '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';
+
+my $CSS_STYLE = '
+html, body, div, span, p, img {
+    margin: 0;
+    padding: 0;
+    border: 0;
+    outline: 0;
+    font-size: 100%;
+    vertical-align: baseline;
+    background: transparent;
+}
+
+html, body {
+    font-family: Arial, Verdana;
+    color: #40454b;
+    font-size: 12px;
+    text-align: center;
+}
+
+img {
+    padding: 0px; margin: 0px; border: none;
+}
+
+.info-panel {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    width: 740px;
+    text-align: left;
+}
+
+.info-header {
+    padding-top: 20px;
+    padding-top: 10px;
+}
+
+.info-header-title {
+    color: #126499;
+    text-decoration: none;
+    font-family: sans-serif;
+    font-weight: bold;
+    font-size: 16px;
+    vertical-align: baseline;
+    margin-right: 20px;
+    margin-bottom: 25px;
+    margin-top: 15px;
+}
+
+.info-content {
+    padding: 2px;
+    font-family: "lucida grande",sans-serif,arial;
+    margin-top: 15px;
+    margin-bottom: 15px;
+}
+
+.info-table-type {
+    min-width: 70px;
+    padding: 4px;
+    vertical-align: top;
+}
+
+.info-table-value {
+    font-weight: bold;
+    padding-top: 4px;
+    padding-left: 10px;
+    padding-right: 10px;
+    vertical-align: top;
+}
+
+hr {
+    background-color: #E0E0E0;
+    border: medium none;
+    color: #E0E0E0;
+    height: 1px;
+    outline: medium none;
+}
+
+.sequencetext {
+    font-family: courier, "courier new";
+    font-weight: normal;
+}
+';
+
+my $VERSION = '0.6';
+my $WHAT = 'graphs';
+
+my $man = 0;
+my $help = 0;
+my %params = ('help' => \$help, 'h' => \$help, 'man' => \$man);
+GetOptions( \%params,
+            'help|h',
+            'man',
+            'verbose',
+            'version' => sub { print "PRINSEQ-$WHAT $VERSION\n"; exit; },
+            'i=s',
+	    'o=s',
+	    'png_all',
+	    'html_all',
+            'log:s',
+            'web:s'
+            ) or pod2usage(2);
+pod2usage(1) if $help;
+pod2usage(-exitstatus => 0, -verbose => 2) if $man;
+
+=head1 NAME
+
+PRINSEQ - PReprocessing and INformation of SEQuence data
+
+=head1 VERSION
+
+PRINSEQ-graphs 0.6
+
+=head1 SYNOPSIS
+
+perl prinseq-graphs.pl [-h] [-help] [-version] [-man] [-verbose] [-i input_graph_data_file] [-png_all] [-html_all] [-log file]
+
+=head1 DESCRIPTION
+
+PRINSEQ will help you to preprocess your genomic or metagenomic sequence data in FASTA (and QUAL) or FASTQ format. The graphs version allows users of the lite version to generate graphs similar to the web version.
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<-help> | B<-h>
+
+Print the help message; ignore other arguments.
+
+=item B<-man>
+
+Print the full documentation; ignore other arguments.
+
+=item B<-version>
+
+Print program version; ignore other arguments.
+
+=item B<-verbose>
+
+Prints status and info messages during processing.
+
+=item B<***** INPUT OPTIONS *****>
+
+=item B<-i> <file>
+
+Input file containing the graph data generated by the lite version.
+
+=item B<***** OUTPUT OPTIONS *****>
+
+=item B<-o> <string>
+
+By default, the output files are created in the same directory as the input file with an additional "_prinseq_graphs_XXXX" in their name (where XXXX is replaced by random characters to prevent overwriting previous files). To change the output filename and location, specify the filename using this option. The file extension will be added automatically.
+
+=item B<-png_all>
+
+Use this option to generate PNG files with the graphs.
+
+=item B<-html_all>
+
+Use this option to generate a HTML file with the graphs and tables.
+
+=item B<-log> <file>
+
+Log file to keep track of parameters, errors, etc. The log file name is optional. If no file name is given, the log file name will be "inputname.log". If the log file already exists, new content will be added to the file.
+
+=back
+
+=head1 AUTHOR
+
+Robert SCHMIEDER, C<< <rschmieder_at_gmail_dot_com> >>
+
+=head1 BUGS
+
+If you find a bug please email me at C<< <rschmieder_at_gmail_dot_com> >> or use http://sourceforge.net/tracker/?group_id=315449 so that I can make PRINSEQ better.
+
+=head1 COPYRIGHT
+
+Copyright (C) 2011-2012  Robert SCHMIEDER
+
+=head1 LICENSE
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+#
+################################################################################
+## DATA AND PARAMETER CHECKING
+################################################################################
+#
+
+my ($file1,$command,@dataread);
+
+#Check if input file exists and check if file format is correct
+if(exists $params{i}) {
+    $command .= ' -i '.$params{i};
+    $file1 = $params{i};
+    if($params{i} eq 'stdin') {
+        my $format = &checkInputFormat();
+        unless($format eq 'gd') {
+            &printError('input data for -i is in '.uc($format).' format not in graph data format');
+        }
+    } elsif(-e $params{i}) {
+        #check for file format
+        my $format = &checkFileFormat($file1);
+        unless($format eq 'gd') {
+            &printError('input file for -i is in '.uc($format).' format not in graph data format');
+        }
+    } else {
+        &printError("could not find input file \"".$params{i}."\"");
+    }
+} else {
+    &printError("you did not specify an input file containing the graph data");
+}
+
+#check output file name prefix
+if(exists $params{o}) {
+    $command .= ' -o '.$params{o};
+}
+
+#check for output format
+unless(exists $params{png_all} || exists $params{html_all}) {
+    &printError("No output format specified. Use -png_all and/or -html_all to generate graphs.");
+}
+if(exists $params{png_all}) {
+    $command .= ' -png_all';
+}
+if(exists $params{html_all}) {
+    $command .= ' -html_all';
+}
+if(exists $params{web}) {
+    $command .= ' -web'.($params{web} ? ' '.$params{web} : '');
+}
+
+#add remaining to log command
+if(exists $params{log}) {
+    $command .= ' -log'.($params{log} ? ' '.$params{log} : '');
+
+    unless($params{log}) {
+	$params{log} = join("__",$file1||'nonamegiven').'.log';
+    }
+    $params{log} = cwd().'/'.$params{log} unless($params{log} =~ /^\//);
+    &printLog("Executing PRINSEQ with command: \"perl prinseq-".$WHAT.".pl".$command."\"");
+}
+
+#
+################################################################################
+## DATA PROCESSING
+################################################################################
+#
+
+my $filename = $file1;
+while($filename =~ /[\w\d]+\.[\w\d]+$/) {
+    $filename =~ s/\.[\w\d]+$//;
+    last if($filename =~ /\/[^\.]+$/);
+}
+
+if(exists $params{png_all}) {
+    my $graphs = &generateGraphs($params{i},$params{o});
+    if(exists $params{web} && $params{web} ne 'nozip') {
+        #png files
+        if(scalar(@$graphs)) {
+            system("zip -j -r ".dirname($params{o})."/png_graphs.zip ".dirname($params{o}).' -i \*.png') == 0 or &printError("Cannot generate graphs ZIP file");
+        }
+    }
+}
+if(exists $params{html_all}) {
+    &generateHtml($params{i},$params{o});
+}
+
+&printWeb("STATUS: done");
+
+##
+#################################################################################
+### MISC FUNCTIONS
+#################################################################################
+##
+
+sub printError {
+    my $msg = shift;
+    print STDERR "\nERROR: ".$msg.".\n\nTry \'perl prinseq-".$WHAT.".pl -h\' for more information.\nExit program.\n";
+    &printLog("ERROR: ".$msg.". Exit program.\n");
+    exit(0);
+}
+
+sub printWarning {
+    my $msg = shift;
+    print STDERR "WARNING: ".$msg.".\n";
+    &printLog("WARNING: ".$msg.".\n");
+}
+
+sub printWeb {
+    my $msg = shift;
+    if(exists $params{web}) {
+        print STDERR "\n".&getTime()."$msg\n";
+    }
+}
+
+sub getTime {
+    return sprintf("[%02d/%02d/%04d %02d:%02d:%02d] ",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+}
+
+sub printLog {
+    my $msg = shift;
+    if(exists $params{log}) {
+        my $time = sprintf("%02d/%02d/%04d %02d:%02d:%02d",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+        open(FH, ">>", $params{log}) or die "ERROR: Can't open file ".$params{log}.": $! \n";
+        flock(FH, LOCK_EX) or die "ERROR: Cannot lock file ".$params{log}.": $! \n";
+        print FH "[prinseq-".$WHAT."-$VERSION] [$time] $msg\n";
+        flock(FH, LOCK_UN) or die "ERROR: cannot unlock ".$params{log}.": $! \n";
+        close(FH);
+    }
+}
+
+sub addCommas {
+    my $num = shift;
+    return unless(defined $num);
+    return $num if($num < 1000);
+    $num = scalar reverse $num;
+    $num =~ s/(\d{3})/$1\,/g;
+    $num =~ s/\,$//;
+    $num = scalar reverse $num;
+    return $num;
+}
+
+sub checkFileFormat {
+    my $file = shift;
+
+    my ($format,$count,$id,$fasta,$fastq,$qual,$gd,$aa);
+    $count = 3;
+    $fasta = $fastq = $qual = $gd = $aa = 0;
+    $format = 'unknown';
+
+    open(FILE,"perl -p -e 's/\r/\n/g;s/\n\n/\n/g' < $file |") or die "ERROR: Could not open file $file: $! \n";
+    while (<FILE>) {
+#        chomp();
+ #       next unless(length($_));
+        if($count-- == 0) {
+            last;
+        } elsif(!$fasta && /^\>\S+\s*/) {
+            $fasta = 1;
+            $qual = 1;
+        } elsif($fasta == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fasta = 2;
+        } elsif($qual == 1 && /^\s*\d+/) {
+            $qual = 2;
+        } elsif(!$fastq && /^\@(\S+)\s*/) {
+            $id = $1;
+            $fastq = 1;
+        } elsif($fastq == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fastq = 2;
+        } elsif($fastq == 2 && /^\+(\S*)\s*/) {
+            $fastq = 3 if($id eq $1 || /^\+\s*$/);
+        } elsif(!$gd && /^\{\"numseqs\"\:/) {
+	    $gd = 1;
+	}
+    }
+    close(FILE);
+    if($fasta == 2) {
+        $format = 'fasta';
+    } elsif($qual == 2) {
+        $format = 'qual';
+    } elsif($fastq == 3) {
+        $format = 'fastq';
+    } elsif($gd == 1) {
+	$format = 'gd';
+    }
+
+    return $format;
+}
+
+sub checkInputFormat {
+    my ($format,$count,$id,$fasta,$fastq,$qual,$gd,$aa);
+    $count = 3;
+    $fasta = $fastq = $qual = $gd = $aa = 0;
+    $format = 'unknown';
+
+    while (<STDIN>) {
+        push(@dataread,$_);
+#        chomp();
+ #       next unless(length($_));
+        if($count-- == 0) {
+            last;
+        } elsif(!$fasta && /^\>\S+\s*/) {
+            $fasta = 1;
+            $qual = 1;
+        } elsif($fasta == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fasta = 2;
+        } elsif($qual == 1 && /^\s*\d+/) {
+            $qual = 2;
+        } elsif(!$fastq && /^\@(\S+)\s*/) {
+            $id = $1;
+            $fastq = 1;
+        } elsif($fastq == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/))) {
+            $fastq = 2;
+        } elsif($fastq == 2 && /^\+(\S*)\s*/) {
+            $fastq = 3 if($id eq $1 || /^\+\s*$/);
+        } elsif(!$gd && /^\{\"numseqs\"\:/) {
+	    $gd = 1;
+	}
+    }
+
+    if($fasta == 2) {
+        $format = 'fasta';
+    } elsif($qual == 2) {
+        $format = 'qual';
+    } elsif($fastq == 3) {
+        $format = 'fastq';
+    } elsif($gd == 1) {
+	$format = 'gd';
+    }
+
+    return $format;
+}
+
+sub readGdFile {
+    my $file = shift;
+    my $data;
+
+    open(DATA,"<$file") or &printError("Could not open file $file: $!");
+    while(<DATA>) {
+	next if(/^\#/);
+        chomp();
+	if(length($_)) {
+	    $data = from_json($_);
+	}
+    }
+    close(DATA);
+
+    return $data;
+}
+
+sub getFileName {
+    my $ext = shift;
+    my ($file,$fh);
+    if(exists $params{o}) {
+	$file = $params{o}.$ext;
+	open(OUT,">$file") or &printError('cannot open output file');
+	close(OUT);
+    } else {
+	$fh = File::Temp->new( TEMPLATE => $filename.'_prinseq_graphs_XXXX',
+			       SUFFIX => $ext,
+			       UNLINK => 0);
+	$file = $fh->filename;
+	$fh->close();
+    }
+    return $file;
+}
+
+sub generateGraphs {
+    my ($in,$out) = @_;
+    my ($file,$data,$surface,@graphs);
+    $data = &readGdFile($in);
+
+    #length plot
+    if(exists $data->{counts}->{length}) {
+	$file = &getFileName('_ld.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{length},1),$data->{stats}->{length},'Length Distribution','Read Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{counts2} && exists $data->{counts2}->{length}) {
+	$file = &getFileName('_ld-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{length},1),$data->{stats2}->{length},'Length Distribution','Read Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #tail plot
+    if(exists $data->{tail}) {
+	$file = &getFileName('_td5.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+	$file = &getFileName('_td3.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{tail2}) {
+	$file = &getFileName('_td5-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+	$file = &getFileName('_td3-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Ns plot
+    if(exists $data->{counts}->{ns}) {
+	$file = &getFileName('_ns.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{counts2} && exists $data->{counts2}->{ns}) {
+	$file = &getFileName('_ns-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #GC content plot
+    if(exists $data->{counts}->{gc}) {
+	$file = &getFileName('_gc.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{gc},0),$data->{stats}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{counts2} && exists $data->{counts2}->{gc}) {
+	$file = &getFileName('_gc-2.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{gc},0),$data->{stats2}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Sequence complexity plot - dust
+    if(exists $data->{compldust}) {
+	$file = &getFileName('_cd.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{compldust},0),undef,'Sequence complexity distribution','Mean sequence complexity (DUST scores)','Number of sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Sequence complexity plot - entropy
+    if(exists $data->{complentropy}) {
+	$file = &getFileName('_ce.png');
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{complentropy},0),undef,'Sequence complexity distribution','Mean sequence complexity (Entropy values)','Number of sequences',$file,1);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Dinucleotide odd ratio PCA plot - microbial/viral
+    #Odds ratio plot
+    if(exists $data->{dinucodds}) {
+	my @new = map {$data->{dinucodds}->{$_}} sort keys %{$data->{dinucodds}};
+	$file = &getFileName('_pm.png');
+	$surface = &createPCAPlot(&convertToPCAValues(\@new,'m'),'PCA','1st Principal Component Score','2nd Principal Component Score',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+	$file = &getFileName('_pv.png');
+	$surface = &createPCAPlot(&convertToPCAValues(\@new,'v'),'PCA','1st Principal Component Score','2nd Principal Component Score',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+	$file = &getFileName('_or.png');
+	$surface = &createOddsRatioPlot($data->{dinucodds},'Odds ratios','Dinucleotide','Odds ratio',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Qual plot
+    if(exists $data->{quals}) {
+	$file = &getFileName('_qd.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{quals},4),'Base Quality Distribution','Read position in %','Quality score',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{quals2}) {
+	$file = &getFileName('_qd-2.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{quals2},4),'Base Quality Distribution','Read position in %','Quality score',$file);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Qualbin plot
+    if(exists $data->{qualsbin}) {
+	$file = &getFileName('_qd2.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin},4),'Base Quality Distribution','Read position in bp','Quality score',$file,0,'bp',$data->{binval});
+       $surface->write_to_png($file);
+       push(@graphs,$file);
+    }
+    if(exists $data->{qualsbin2}) {
+	$file = &getFileName('_qd2-2.png');
+	$surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin2},4),'Base Quality Distribution','Read position in bp','Quality score',$file,0,'bp',$data->{binval});
+       $surface->write_to_png($file);
+       push(@graphs,$file);
+    }
+
+    #Qualmean plot
+    if(exists $data->{qualsmean}) {
+	$file = &getFileName('_qd3.png');
+	$surface = &createBarPlot(&convertToBarValues($data->{qualsmean},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{qualsmean2}) {
+	$file = &getFileName('_qd3-2.png');
+	$surface = &createBarPlot(&convertToBarValues($data->{qualsmean2},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    #Sequence duplicate plots
+    if(exists $data->{dubscounts}) {
+	$file = &getFileName('_df.png');
+	$surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubscounts},5,1,100),'Sequence duplication level','Number of duplicates','Number of sequences',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{dubslength}) {
+	$file = &getFileName('_dl.png');
+	$surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubslength},5,1),'Sequence duplication level','Read Length in bp','Number of duplicates',$file,0,' bp');
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+    if(exists $data->{dubscounts}) {
+	my %dubsmax;
+	my $count = 1;
+	foreach my $n (sort {$b <=> $a} keys %{$data->{dubscounts}}) {
+	    foreach my $s (keys %{$data->{dubscounts}->{$n}}) {
+		foreach my $i (1..$data->{dubscounts}->{$n}->{$s}) {
+		    $dubsmax{$count++}->{$s} = $n;
+		    last unless($count <= 100);
+		}
+		last unless($count <= 100);
+	    }
+	    last unless($count <= 100);
+	}
+	$file = &getFileName('_dm.png');
+	$surface = &createStackBarPlot(&convertOdToStackBinMatrix(\%dubsmax,5,1,100),'Sequence duplication level','Sequence','Number of duplicates',$file,0);
+	$surface->write_to_png($file);
+        push(@graphs,$file);
+    }
+
+    return \@graphs;
+}
+
+sub convertOdToBinMatrix {
+    my ($data,$min,$max,$nonice) = @_;
+
+    my ($num,$ymax,$xmax,$xmin,$step,%vals,$tmp,@matrix,$bin,$tmpbin);
+
+    #make nice xmax value
+    if(defined $max) {
+	$xmax = $max;
+    } else {
+	$xmax = (sort {$b <=> $a} keys %$data)[0];
+    }
+    $bin = &getBinVal($xmax);
+    $xmax = $bin*100;
+    $xmin = (defined $min ? $min : 0);
+
+    #get data to bin and find y axis max value
+    $ymax = 0;
+    $tmp = 0;
+    $tmpbin = $bin;
+    foreach my $i ($xmin..$xmax) {
+	if(exists $data->{$i}) {
+	    $tmp += $data->{$i};
+	}
+	if(--$tmpbin <= 0) {
+	    $tmpbin = $bin;
+	    $ymax = &max($ymax,$tmp);
+	    push(@matrix,$tmp);
+	    $tmp = 0;
+	}
+    }
+
+    #make nice ymax value
+    unless($nonice) {
+	$ymax = sprintf("%d",($ymax/4)+1)*4 if($ymax % 4);
+#        $step = ($ymax <= 10 ? 10 : ($ymax < 40 ? 40 : ($ymax < 100 ? 100 : ($ymax < 1000 ? 100 : 100))));
+#        $ymax = sprintf("%d",($ymax/$step)+1)*$step if($ymax % $step);
+    }
+
+    return (\@matrix,$xmax,$ymax);
+}
+
+sub getBinVal {
+    my $val = shift;
+    my $step;
+    if(!$val || $val <= 100) {
+	return 1;
+    } elsif($val < 10000) {
+	return int($val/100)+($val % 100 ? 1 : 0);
+    } elsif($val < 100000) {
+	return 1000;
+    } else {
+	$step = 1000000;
+	my $xmax = ($val % $step ? sprintf("%d",($val/$step+1))*$step : $val);
+	return ($xmax/100);
+    }
+}
+
+sub max {
+    my ($a,$b) = @_;
+    return ($a < $b ? $b : $a);
+}
+
+sub min {
+    my ($a,$b) = @_;
+    return ($a > $b ? $b : $a);
+}
+
+sub createAnnotBarPlot {
+    my ($matrix,$xmax,$ymax,$annot,$title,$xlab,$ylab,$file,$zero,$add) = @_;
+
+    my $bin = 1;
+    if($xmax > 100) {
+	$bin = $xmax / 100;
+	$xmax = 100;
+    }
+
+    my @barcol = (127/255, 127/255, 255/255, 1); #b2b2ff
+    my @meancol = (255/255, 127/255, 127/255, 1); #ffb2b2
+    my @stdcol = (178/255, 178/255, 255/255, 0.8); #7f7fff
+    my @std1col = (0, 0, 0, 0.04); #ff7f7f
+    my @std2col = (0, 0, 0, 0.03); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol = (1, 1, 1, 0.9);
+    my @background = (0.95, 0.95, 0.95, 1);
+    my @tickcol = (0, 0, 0, 0.8);
+    my @labelcol = (0, 0, 0, 1);
+
+    #create new image
+    my $size   = 6;
+    my $offset = 20;
+    my $left   = 40;
+    my $bottom = 15;
+    my $top = 20;
+    my $height = 200;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$top+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(@background);
+    $cr->fill;
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(@tickcol);
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+	} else {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+1);
+	}
+    }
+    $cr->stroke;
+
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset);
+    $cr->line_to($left+$offset-3, $top+$offset);
+    $cr->move_to($left+$offset, $top+$offset+$height-1);
+    $cr->line_to($left+$offset-3, $top+$offset+$height-1);
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(@tickcol);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%10) == 0 && $i > 1 && $i < $xmax) {
+	    $extents = $cr->text_extents($i*$bin);
+	    $cr->move_to($left+$offset+int($size/2+1)+$size*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+	    $cr->show_text($i*$bin);
+	}
+    }
+    #y-axis
+    $extents = $cr->text_extents(&addCommas($ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2);
+    $cr->show_text(&addCommas($ymax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    $cr->set_source_rgba(@labelcol);
+    $extents = $cr->text_extents($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab.($bin>1 ? ' (per bin)' : ''));
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset+10);
+    $cr->show_text($ylab.($bin>1 ? ' (per bin)' : ''));
+
+    $cr->restore;
+
+    #draw annotations
+    if($annot) {
+	$cr->set_antialias('none');
+	my ($std1l,$std2l,$std1r,$std2r);
+	#std boxes
+	$std1l = int($annot->{mean})-int($annot->{std});
+	$std2l = int($annot->{mean})-2*int($annot->{std});
+	$std1r = int($annot->{mean})+int($annot->{std});
+	$std2r = int($annot->{mean})+2*int($annot->{std});
+        unless($std1l == $std1r) {
+            if($std1l < 0) {
+                $std1l = 0;
+            } else {
+                $std1l = int($std1l/$bin);
+            }
+            if($std2l < 0) {
+                $std2l = 0;
+            } else {
+                $std2l = int($std2l/$bin);
+            }
+            if($std1r/$bin > 100) {
+                $std1r = 100;
+            } else {
+                $std1r = int($std1r/$bin);
+            }
+            if($std2r/$bin > 100) {
+                $std2r = 100;
+            } else {
+                $std2r = int($std2r/$bin);
+            }
+            $cr->rectangle($left+$offset+$std2l*$size+2, $top+$offset, ($std2r-$std2l)*$size, $height);
+            $cr->set_source_rgba(@std2col);
+            $cr->fill;
+            $cr->rectangle($left+$offset+$std1l*$size+2, $top+$offset, ($std1r-$std1l)*$size, $height);
+            $cr->set_source_rgba(@std1col);
+            $cr->fill;
+            #mean line
+            $cr->set_source_rgba(@meancol);
+            $cr->move_to($left+$offset+int(int($annot->{mean})/$bin)*$size+2, $top+$offset-5);
+            $cr->line_to($left+$offset+int(int($annot->{mean})/$bin)*$size+2, $top+$offset+$height);
+            $cr->stroke;
+            #std lines
+            $cr->set_source_rgba(@stdcol);
+            if($std1l > 0) {
+                $cr->move_to($left+$offset+$std1l*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std1l*$size+2, $top+$offset+$height);
+            }
+            if($std2l > 0) {
+                $cr->move_to($left+$offset+$std2l*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std2l*$size+2, $top+$offset+$height);
+            }
+            if($std1r < 100) {
+                $cr->move_to($left+$offset+$std1r*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std1r*$size+2, $top+$offset+$height);
+            }
+            if($std2r < 100) {
+                $cr->move_to($left+$offset+$std2r*$size+2, $top+$offset-5);
+                $cr->line_to($left+$offset+$std2r*$size+2, $top+$offset+$height);
+            }
+            $cr->stroke;
+            #labels
+            $cr->set_antialias('default');
+            $cr->set_source_rgba(@tickcol);
+            $extents = $cr->text_extents('M');
+            $cr->move_to($left+$offset+int(int($annot->{mean})/$bin)*$size+2-$extents->{width}/2, $top+$offset-10);
+            $cr->show_text('M');
+            if($std1l > 0) {
+                $extents = $cr->text_extents('1SD');
+                $cr->move_to($left+$offset+$std1l*$size-$extents->{width}/2+2, $top+$offset-10);
+                $cr->show_text('1SD');
+            }
+            if($std2l > 0) {
+                $extents = $cr->text_extents('2SD');
+                $cr->move_to($left+$offset+$std2l*$size-$extents->{width}/2+3, $top+$offset-10);
+                $cr->show_text('2SD');
+            }
+            if($std1r < 100) {
+                $extents = $cr->text_extents('1SD');
+                $cr->move_to($left+$offset+$std1r*$size-$extents->{width}/2+2, $top+$offset-10);
+                $cr->show_text('1SD');
+            }
+            if($std2r < 100) {
+                $extents = $cr->text_extents('2SD');
+                $cr->move_to($left+$offset+$std2r*$size-$extents->{width}/2+3, $top+$offset-10);
+                $cr->show_text('2SD');
+            }
+        }
+    }
+
+    #draw boxes
+    $cr->set_antialias('none');
+    $cr->set_source_rgba(@barcol);
+    foreach my $pos (0..$xmax-($zero ? 0 : 1)) {
+        next unless($matrix->[$pos]);
+        my $tmp = $matrix->[$pos] / $ymax;
+	#unique
+        if($tmp) {
+            $cr->rectangle($left+$offset+$pos*$size, $top+$offset+$height, $size-1, -$tmp*$height);
+            $cr->fill;
+        }
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub convertToPCAValues {
+    my ($new,$type) = @_;
+
+    my @data = ($type eq 'v' ? @$DINUCODDS_VIR : @$DINUCODDS_MIC);
+
+    push(@data,$new);
+
+    my $pca = Statistics::PCA->new;
+
+    #suppress output from PCA module
+    my $output = '';
+    open(TOOUTPUT, '>', \$output) or &printError("Can't open TOOUTPUT: $!");
+    select TOOUTPUT;
+
+    $pca->load_data({format => 'table', data => \@data});
+    $pca->pca();
+
+    my @variances = $pca->results('proportion');
+    my @list = $pca->results('transformed');
+
+    #end suppress output from PCA module
+    select STDOUT;
+    close(TOOUTPUT);
+
+    my ($xmin,$xmax,$ymin,$ymax);
+    $xmax = $ymax = -100;
+    $xmin = $ymin = 100;
+
+    #get min/max values for PC1
+    foreach my $v (@{$list[0]}) {
+        $xmax = &max($xmax,$v);
+        $xmin = &min($xmin,$v);
+    }
+    #get min/max values for PC2
+    foreach my $v (@{$list[1]}) {
+        $ymax = &max($ymax,$v);
+        $ymin = &min($ymin,$v);
+    }
+
+    return ([$list[0],$list[1]],sprintf("%d",$variances[0]*100),sprintf("%d",$variances[1]*100),$xmin,$xmax,$ymin,$ymax,$type);
+}
+
+sub createPCAPlot {
+    my ($data,$var1,$var2,$xmin,$xmax,$ymin,$ymax,$type,$title,$xlab,$ylab,$file) = @_;
+
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = 5;
+    my $offset = 20;
+    my $left   = 25;
+    my $bottom = 15;
+    my $top = ($type eq 'v' ? 35 : 20);
+    my $height = 500;
+    my $space = 10;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+$height+2*$space,$top+$bottom+$offset*2+$height+2*$space); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+$height+2*$space,$top+$bottom+$offset*2+$height+2*$space);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face('sans-serif', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    my ($dx, $dy);
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, $height+2*$space, $height+2*$space);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #get infos
+    my $num = scalar(@{$data->[0]})-1;
+    my $xrange = ($xmax-$xmin);
+    my $yrange = ($ymax-$ymin);
+    my $data_info = ($type eq 'v' ? $DATA_VIR : $DATA_MIC);
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->move_to($left+$offset+$space, $top+$offset+$height+2*$space);
+    $cr->line_to($left+$offset+$space, $top+$offset+$height+2*$space+3);
+    $cr->move_to($left+$offset+$space+$height, $top+$offset+$height+2*$space);
+    $cr->line_to($left+$offset+$space+$height, $top+$offset+$height+2*$space+3);
+    $cr->move_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset+$height+2*$space);
+    $cr->line_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset+$height+2*$space+3);
+    $cr->stroke;
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset+$space);
+    $cr->line_to($left+$offset-3, $top+$offset+$space);
+    $cr->move_to($left+$offset, $top+$offset+$height+$space);
+    $cr->line_to($left+$offset-3, $top+$offset+$height+$space);
+    $cr->move_to($left+$offset, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->line_to($left+$offset-3, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol1);
+    $cr->move_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset);
+    $cr->line_to($left+$offset+$space+int(abs($xmin)/$xrange*$height), $top+$offset+$height+2*$space);
+    $cr->stroke;
+    $cr->move_to($left+$offset, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->line_to($left+$offset+2*$space+$height, $top+$offset+$space+int(abs($ymax)/$yrange*$height));
+    $cr->stroke;
+
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    $extents = $cr->text_extents(sprintf("%.2f",$xmin));
+    $cr->move_to($left+$offset+$space-$extents->{width}/2-1, $top+$offset+$height+2*$space+$fontheight+2);
+    $cr->show_text(sprintf("%.2f",$xmin));
+    $extents = $cr->text_extents(sprintf("%.2f",$xmax));
+    $cr->move_to($left+$offset+$space+$height-$extents->{width}/2-1, $top+$offset+$height+2*$space+$fontheight+2);
+    $cr->show_text(sprintf("%.2f",$xmax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset+$space+int(abs($xmin)/$xrange*$height)-$extents->{width}/2, $top+$offset+$height+2*$space+$fontheight+2);
+    $cr->show_text(0);
+    #y-axis
+    $extents = $cr->text_extents(sprintf("%.2f",$ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$space+$fontheight/2-2);
+    $cr->show_text(sprintf("%.2f",$ymax));
+    $extents = $cr->text_extents(sprintf("%.2f",$ymin));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$height+$space+$fontheight/2-2);
+    $cr->show_text(sprintf("%.2f",$ymin));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$space+int(abs($ymax)/$yrange*$height)+$fontheight/2-2);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #add type
+    $cr->set_source_rgba(0, 0, 0, 0.5);
+    $extents = $cr->text_extents(uc($type));
+    $cr->arc($offset/2+$extents->{width}/2, $offset-5, 10, 0, 2*$PI);
+    $cr->fill;
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->move_to($offset/2-($type eq 'm' ? 1 : 0), $offset);
+    $cr->show_text(uc($type));
+
+    #axis labels
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents($xlab.'  ('.$var1.'%)');
+    $cr->move_to($left+$offset+$height/2-$extents->{width}/2+$space, $top+$offset+$height+$fontheight+15+2*$space);
+    $cr->show_text($xlab.'  ('.$var1.'%)');
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab.'  ('.$var2.'%)');
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2)+$space,$offset);
+    $cr->show_text($ylab.'  ('.$var2.'%)');
+
+    $cr->restore;
+
+    #draw dots
+    $cr->set_antialias('default');
+    $cr->set_font_size (10);
+    foreach my $i (0..$num) {
+        $cr->set_source_rgba(@{$data_info->[$i]->[3]});
+        $cr->arc(($left+$offset+$space+int(($data->[0]->[$i]+abs($xmin))/$xrange*$height)), ($space+$top+$offset+int(($data->[1]->[$i]+abs($ymin))/$yrange*$height)), $size, 0, 2*$PI);
+        $cr->fill;
+    }
+    $cr->set_source_rgba(0, 0, 0, 1);
+    foreach my $i (0..$num) {
+        $extents = $cr->text_extents($data_info->[$i]->[1]);
+	$cr->move_to(($left+$offset+$space+int(($data->[0]->[$i]+abs($xmin))/$xrange*$height))+$size+1, ($space+$top+$offset+int(($data->[1]->[$i]+abs($ymin))/$yrange*$height))+$size*2);
+	$cr->show_text($data_info->[$i]->[1]);
+    }
+
+    #draw legend
+    my %labels;
+    foreach  my $i (0..$num) {
+	$labels{$data_info->[$i]->[1]} = $data_info->[$i]->[2];
+    }
+    $cr->set_font_size(10);
+    $fontheight = $font_extents->{height};
+    $cr->set_source_rgba(0, 0, 0, 1);
+    my $x = $left+$offset+$space;
+    my $y = int($offset/2);
+    foreach my $n (sort {$a <=> $b} keys %labels) {
+	if($x+$cr->text_extents($n.' - '.$labels{$n})->{width}+15 >= $left+$offset+$space+$height) {
+	    $x = $left+$offset+$space;
+	    $y += $fontheight;
+	}
+	$cr->move_to($x,$y);
+	$cr->show_text($n.' - '.$labels{$n});
+	$x += $cr->text_extents($n.' - '.$labels{$n})->{width}+15;
+
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub createOddsRatioPlot {
+    my ($data,$title,$xlab,$ylab,$file) = @_;
+
+    my @yvalues = (0.5,0.78,1.00,1.23,1.5);
+
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = 40;
+    my $offset = 20;
+    my $left   = 35;
+    my $right = 90;
+    my $bottom = 20;
+    my $top = 0;
+    my $height = 100;
+    my $width = $size*10;
+    my $space = 20;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+$width+$right,$top+$bottom+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+$width+$right,$top+$bottom+$offset*2+$height);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    my ($dx, $dy);
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, $width, $height);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #right side marks
+    $cr->set_source_rgba(255/255, 127/255, 127/255, 0.6);
+    $cr->rectangle($left+$offset+$width+8, $top+$offset, 3, 0.77/2*$height);
+    $cr->fill;
+    $cr->rectangle($left+$offset+$width+8, $top+$offset+$height-0.78/2*$height, 3, 0.78/2*$height);
+    $cr->fill;
+
+    #get infos
+    my $num = scalar(keys %$data)-1;
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    foreach my $i (0..$num) {
+	$cr->move_to($left+$offset+$size/2+$i*$size, $top+$offset+$height);
+	$cr->line_to($left+$offset+$size/2+$i*$size, $top+$offset+$height+3);
+    }
+    $cr->stroke;
+    #y-axis
+    foreach my $i (@yvalues) {
+	$cr->move_to($left+$offset, $top+$offset+$height-$i/2*$height);
+	$cr->line_to($left+$offset-3, $top+$offset+$height-$i/2*$height);
+    }
+    $cr->stroke;
+
+    #helplines
+    #x-axis
+    $cr->set_source_rgba(@helplinecol1);
+    foreach my $i (0..$num) {
+	$cr->move_to($left+$offset+$size/2+$i*$size, $top+$offset);
+	$cr->line_to($left+$offset+$size/2+$i*$size, $top+$offset+$height);
+    }
+    $cr->stroke;
+    #yaxis
+    foreach my $i (@yvalues) {
+	$cr->set_source_rgba(0, 0, 0, ($i == 0.5 || $i == 1.00 || $i == 1.50 ? 0.1 : 0.3));
+	$cr->move_to($left+$offset, $top+$offset+$height-$i/2*$height);
+	$cr->line_to($left+$offset+$width, $top+$offset+$height-$i/2*$height);
+	$cr->stroke;
+    }
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    my $xcur = 0;
+    foreach my $dn (map {join("/",(m/../g ))} sort keys %$data) {
+	$extents = $cr->text_extents($dn);
+	$cr->move_to($left+$offset+$size/2-$extents->{width}/2-1+$size*$xcur++, $top+$offset+$height+$fontheight+2);
+	$cr->show_text($dn);
+    }
+    #y-axis
+    foreach my $i (@yvalues) {
+	$cr->set_source_rgba(0, 0, 0, ($i == 0.5 || $i == 1.00 || $i == 1.50 ? 0.5 : 0.8));
+	$extents = $cr->text_extents(sprintf("%.2f",$i));
+	$cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$height-$i/2*$height+$fontheight/2-2);
+	$cr->show_text(sprintf("%.2f",$i));
+    }
+
+    #label on right side
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents('Over-represented');
+    $cr->move_to($left+$offset+$width+15, $top+$offset+$height-1.6/2*$height+$fontheight/2-2);
+    $cr->show_text('Over-represented');
+    $extents = $cr->text_extents('Under-represented');
+    $cr->move_to($left+$offset+$width+15, $top+$offset+$height-0.4/2*$height+$fontheight/2-2);
+    $cr->show_text('Under-represented');
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents($xlab);
+    $cr->move_to($left+$offset+$width/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab);
+    #y-axis
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab);
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset);
+    $cr->show_text($ylab);
+
+    $cr->restore;
+
+    #draw dots
+    $cr->set_antialias('default');
+    $xcur = 0;
+    foreach my $dn (sort keys %$data) {
+	if($data->{$dn} > 1.23 || $data->{$dn} < 0.78) {
+	    $cr->set_source_rgba(255/255, 127/255, 127/255, 1);
+	} else {
+	    $cr->set_source_rgba(127/255, 127/255, 255/255, 1);
+	}
+        $cr->arc($left+$offset+$size/2+$size*$xcur++, $top+$offset+$height-$data->{$dn}/2*$height, 5, 0, 2*$PI);
+        $cr->fill;
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub convertToBoxValues {
+    my ($data,$niceval) = @_;
+    my ($xmax,$ymax,@matrix);
+    $xmax = $ymax = 0;
+    foreach my $i (sort {$a <=> $b} keys %$data) {
+	$xmax++;
+	push(@matrix,[$i,$data->{$i}->{min},$data->{$i}->{p25},$data->{$i}->{median},$data->{$i}->{p75},$data->{$i}->{max}]);
+	$ymax = &max($ymax,$data->{$i}->{max});
+    }
+
+    if($niceval) {
+        $ymax = sprintf("%d",($ymax/$niceval)+1)*$niceval if($ymax % $niceval);
+    }
+
+    return (\@matrix,$xmax,$ymax);
+}
+
+sub createBoxPlot {
+    my ($matrix,$xmax,$ymax,$title,$xlab,$ylab,$file,$zero,$add,$bin) = @_;
+    $bin = ($bin ? $bin : 1);
+    $zero = 0 unless($zero);
+    $add = '' unless(defined $add);
+    if($xmax != 100) {
+	$xmax = 100;
+    }
+    $ymax = 1 unless($ymax);
+#    die Dumper $matrix;
+
+
+    my @col0 = (178/255, 178/255, 255/255); #b2b2ff
+    my @col1 = (255/255, 178/255, 178/255); #ffb2b2
+    my @col3 = (127/255, 127/255, 255/255); #7f7fff
+    my @col4 = (255/255, 127/255, 127/255); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @linecol0 = (@col3, 1);
+    my @linecol1 = (@col4, 1);
+    my @boxcol = (@col3, 1);
+    my @whiscol = (@col0, 0.9);
+    my @medcol = (0,0,0, 0.5);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = 6;
+    my $offset = 20;
+    my $left   = 25;
+    my $bottom = 25;
+    my $top = 5;
+    my $height = 300;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+#    $cr->set_font_size (30);
+
+    $cr->save;
+
+    #set up work space
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #draw legend
+    $cr->set_font_size(10);
+#    $font_extents = $cr->font_extents;
+    my $x = $left+$offset+$size*50;
+    foreach my $v ([\@whiscol,'Min/Max value'],[\@boxcol,'25th to 75th percentile'],[\@medcol,'Median']) {
+	$cr->set_antialias('none');
+	$cr->set_source_rgba(@{$v->[0]});
+	$cr->rectangle($x, $top+5, 10, 10);
+	$cr->fill;
+	$x += 15;
+	$cr->set_antialias('default');
+	$cr->move_to($x,$top+5+9);
+	$cr->set_source_rgba(0, 0, 0, 0.8);
+	$cr->show_text($v->[1]);
+	$x += $cr->text_extents($v->[1])->{width}+15;
+    }
+
+    $cr->set_antialias('none');
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+#    $cr->move_to($left+$offset+int($size/2+1), $top+$offset+$height);
+#    $cr->line_to($left+$offset+int($size/2+1), $top+$offset+$height+3);
+#    $cr->move_to($left+$offset+int($size/2+1), $top+$offset+$height+$space);
+#    $cr->line_to($left+$offset+int($size/2+1), $top+$offset+$height+$space-3);
+    foreach my $i (1..9) {
+        $cr->move_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	$cr->line_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+#	$cr->move_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset);
+#	$cr->line_to($left+$offset+int($size/2)+$size*10*$i-($zero ? 0 : $size)-1, $top+$offset-3);
+    }
+    $cr->stroke;
+    #y-axis
+    foreach my $j (0..4) {
+	$cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+	$cr->line_to($left+$offset-3, $top+$offset+$height*$j/4-($j ? 1 : 0));
+#	$cr->move_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+#	$cr->line_to($left+$offset+($xmax+$zero)*$size+3, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol1);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+#    $extents = $cr->text_extents(1);
+#    $cr->move_to($left+$offset+int($size/2+1)-$extents->{width}, $top+$offset+$height+$fontheight+2);
+#    $cr->show_text(1);
+    foreach my $i (1..9) {
+        $extents = $cr->text_extents($i*10*$bin);
+	$cr->move_to($left+$offset+int($size/2+1)+$size*10*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+        $cr->show_text($i*10*$bin);
+    }
+    #y-axis
+    foreach my $j (0..4) {
+	$extents = $cr->text_extents(&addCommas($ymax*$j/4));
+	$cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height*(4-$j)/4);
+	$cr->show_text(&addCommas($ymax*$j/4));
+    }
+
+    $cr->save;
+
+    #axis labels
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    $extents = $cr->text_extents($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab);
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset);
+    $cr->show_text($ylab);
+
+    $cr->restore;
+
+    #draw boxes
+    my $factor = $height/$ymax;
+    $cr->set_antialias('none');
+    foreach my $v (@$matrix) {
+	#wiskers
+	$cr->set_source_rgba(@whiscol);
+	if($v->[1] != $v->[2]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+1, $top+$offset+$height-$v->[1]*$factor-1);
+	    $cr->line_to($left+$offset+$size*$v->[0]+$size-2, $top+$offset+$height-$v->[1]*$factor-1);
+	    $cr->stroke;
+	}
+	if($v->[4] != $v->[5]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+1, $top+$offset+$height-$v->[5]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+$size-2, $top+$offset+$height-$v->[5]*$factor);
+	    $cr->stroke;
+	}
+	$cr->save;
+	$cr->set_dash(1,4,3);
+	if($v->[1] != $v->[2]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[2]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[1]*$factor);
+	    $cr->stroke;
+	}
+	if($v->[4] != $v->[5]) {
+	    $cr->move_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[5]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+int($size/2)-1, $top+$offset+$height-$v->[4]*$factor-1);
+	    $cr->stroke;
+	}
+	$cr->restore;
+	#box
+	if(($v->[2] != $v->[3]) || ($v->[4] != $v->[3])) {
+	    $cr->set_source_rgba(@whiscol);
+	    $cr->rectangle($left+$offset+$size*$v->[0], $top+$offset+$height-$v->[2]*$factor, $size-1, -($v->[4]-$v->[2])*$factor);
+	    $cr->fill;
+	    $cr->stroke;
+	    $cr->set_source_rgba(@boxcol);
+	    $cr->rectangle($left+$offset+$size*$v->[0], $top+$offset+$height-$v->[2]*$factor, $size-2, -($v->[4]-$v->[2])*$factor);
+	    $cr->stroke;
+	} else {
+	    $cr->set_source_rgba(@boxcol);
+	    $cr->move_to($left+$offset+$size*$v->[0], $top+$offset+$height-$v->[3]*$factor);
+	    $cr->line_to($left+$offset+$size*$v->[0]+$size-1, $top+$offset+$height-$v->[3]*$factor);
+	    $cr->stroke;
+	}
+	#median
+	$cr->set_source_rgba(@medcol);
+	$cr->move_to($left+$offset+$size*$v->[0]+1, $top+$offset+$height-$v->[3]*$factor);
+	$cr->line_to($left+$offset+$size*$v->[0]+$size-2, $top+$offset+$height-$v->[3]*$factor);
+	$cr->stroke;
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub convertToBarValues {
+    my ($data,$niceval,$start,$max) = @_;
+    my ($xmax,$ymax,@matrix,$tmp);
+    $xmax = $ymax = 0;
+
+    #get xmax value
+    if($max) {
+	$xmax = $max;
+    } else {
+	foreach my $q (keys %$data) {
+	    $xmax = &max($xmax,$q);
+	}
+    }
+    if($niceval) {
+        $xmax = sprintf("%d",($xmax/$niceval)+1)*$niceval if($xmax % $niceval);
+    }
+
+    #get matrix values
+    foreach my $q ($start..$xmax) {
+	$tmp = (exists $data->{$q} ? $data->{$q} : 0);
+	$ymax = &max($ymax,$tmp);
+	push(@matrix,$tmp);
+    }
+
+    $ymax = sprintf("%d",($ymax/4)+1)*4 if($ymax % 4);
+
+    return (\@matrix,$xmax,$ymax);
+}
+
+sub createBarPlot {
+    my ($matrix,$xmax,$ymax,$title,$xlab,$ylab,$file,$zero) = @_;
+
+    my @col0 = (178/255, 178/255, 255/255); #b2b2ff
+    my @col1 = (255/255, 178/255, 178/255); #ffb2b2
+    my @col3 = (127/255, 127/255, 255/255); #7f7fff
+    my @col4 = (255/255, 127/255, 127/255); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @linecol0 = (@col3, 1);
+    my @linecol1 = (@col4, 1);
+    my @barcol0 = (@col3, 1);
+    my @barcol1 = (@col4, 1);
+    my @helplinecol1 = (1,1,1, 0.9);
+    my @helplinecol2 = (1,1,1, 0.5);
+
+    #create new image
+    my $size   = ($xmax <= 50 ? 10 : ($xmax <= 100 ? 6 : 3));
+    my $offset = 20;
+    my $left   = 25;
+    my $bottom = 15;
+    my $top = 0;
+    my $height = 200;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+#    $cr->set_font_size (30);
+
+    $cr->save;
+
+    #set up work space
+    my ($dx, $dy);
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(0.95, 0.95, 0.95, 1);
+    $cr->fill;
+
+    #draw ticks
+    #x-axis
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+	} else {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+1);
+	}
+    }
+    $cr->stroke;
+
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset);
+    $cr->line_to($left+$offset-3, $top+$offset);
+    $cr->move_to($left+$offset, $top+$offset+$height-1);
+    $cr->line_to($left+$offset-3, $top+$offset+$height-1);
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol1);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(0, 0, 0, 0.8);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $extents = $cr->text_extents($i);
+	    $cr->move_to($left+$offset+int($size/2+1)+$size*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+	    $cr->show_text($i);
+	}
+    }
+    #y-axis
+    $extents = $cr->text_extents(&addCommas($ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2);
+    $cr->show_text(&addCommas($ymax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size (14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    $cr->set_source_rgba(0, 0, 0, 1);
+    $extents = $cr->text_extents($xlab);
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab);
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab);
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2),$offset);
+    $cr->show_text($ylab);
+
+    $cr->restore;
+
+    #draw boxes
+    $cr->set_antialias('none');
+    foreach my $pos (0..$xmax-($zero ? 0 : 1)) {
+        next unless($matrix->[$pos+($zero ? 0 : 1)]);
+        my $tmp = $matrix->[$pos+($zero ? 0 : 1)] / $ymax;
+	#unique
+        if($tmp) {
+            $cr->set_source_rgba(@barcol0);
+            $cr->rectangle($left+$offset+($pos+($zero ? 0 : 1))*$size, $top+$offset+$height, $size-1, -$tmp*$height);
+            $cr->fill;
+        }
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub convertOdToStackBinMatrix {
+    my ($data,$stacks,$min,$max,$nonice) = @_;
+
+    my ($num,$ymax,$xmax,$xmin,$step,%vals,%sums,$sum,@matrix,$bin,$tmpbin);
+
+    #make nice xmax value
+    if(defined $max) {
+	$xmax = $max;
+    } else {
+	$xmax = (sort {$b <=> $a} keys %$data)[0];
+    }
+    $bin = &getBinVal($xmax);
+    $xmax = $bin*100;
+    $xmin = (defined $min ? $min : 0);
+
+    #get data to bin and find y axis max value
+    $ymax = 0;
+    foreach my $s (0..$stacks-1) {
+	$sums{$s} = 0;
+    }
+    $sum = 0;
+    $tmpbin = $bin;
+    foreach my $i ($xmin..$xmax) {
+	foreach my $s (0..$stacks-1) {
+	    next unless(exists $data->{$i}->{$s});
+	    $sums{$s} += $data->{$i}->{$s};
+	    $sum += $data->{$i}->{$s};
+	}
+	if(--$tmpbin <= 0) {
+	    $tmpbin = $bin;
+	    $ymax = &max($ymax,$sum);
+	    $sum = 0;
+	    foreach my $s (0..$stacks-1) {
+		push(@{$matrix[$s]},$sums{$s});
+		$sums{$s} = 0;
+	    }
+	}
+    }
+
+    #make nice ymax value
+    unless($nonice) {
+	$ymax = sprintf("%d",($ymax/4)+1)*4 if($ymax % 4);
+#        $step = ($ymax <= 10 ? 10 : ($ymax < 40 ? 40 : ($ymax < 100 ? 100 : ($ymax < 1000 ? 100 : 100))));
+#        $ymax = sprintf("%d",($ymax/$step)+1)*$step if($ymax % $step);
+    }
+
+    return (\@matrix,$xmax,$ymax,$stacks);
+}
+
+sub createStackBarPlot {
+    my ($matrix,$xmax,$ymax,$stacks,$title,$xlab,$ylab,$file,$zero,$add) = @_;
+
+    my $bin = 1;
+    if($xmax > 100) {
+	$bin = $xmax / 100;
+	$xmax = 100;
+    }
+
+    my @legend = ('Exact dupl.','5\' dupl.','3\' dupl.','Rev. compl. exact dupl.','Rev. compl. 5\'/3\' dupl.');
+    my @cols = ([69/255, 114/255, 167/255, 1],
+		[137/255, 1165/255, 78/255, 1],
+		[170/255, 70/255, 67/255, 1],
+		[147/255, 169/255, 207/255, 1],
+		[51/255, 102/255, 102/255, 1]);
+    my @barcol = (127/255, 127/255, 255/255, 1); #b2b2ff
+    my @meancol = (255/255, 127/255, 127/255, 1); #ffb2b2
+    my @stdcol = (178/255, 178/255, 255/255, 0.8); #7f7fff
+    my @std1col = (0, 0, 0, 0.02); #ff7f7f
+    my @std2col = (0, 0, 0, 0.02); #ff7f7f
+    my @linecol = (0, 0, 0, 0.4);
+    my @helplinecol = (1, 1, 1, 0.9);
+    my @background = (0.95, 0.95, 0.95, 1);
+    my @tickcol = (0, 0, 0, 0.8);
+    my @labelcol = (0, 0, 0, 1);
+
+    #create new image
+    my $size   = 6;
+    my $offset = 20;
+    my $left   = 40;
+    my $bottom = 15;
+    my $top = 20;
+    my $height = 200;
+    my $surface = Cairo::ImageSurface->create('argb32', $left+$offset*2+($xmax+$zero)*$size,$bottom+$top+$offset*2+$height); #format, width, height
+    my $cr = Cairo::Context->create($surface);
+
+    my ($font_extents,$extents,$fontheight,$fontdescent);
+
+    #background
+    $cr->rectangle(0, 0, $left+$offset*2+($xmax+$zero)*$size,$bottom+$offset*2+2*200+20);
+    $cr->set_source_rgba(1, 1, 1, 1);
+    $cr->fill;
+
+    #fonts
+    $cr->select_font_face ('sans', 'normal', 'normal');
+
+    $cr->save;
+
+    #set up work space
+    $cr->set_antialias('none');
+    $cr->set_line_width(1);
+
+    #background for plot
+    $cr->rectangle($left+$offset, $top+$offset, ($xmax+$zero)*$size-1, $height);
+    $cr->set_source_rgba(@background);
+    $cr->fill;
+
+    #draw legend
+    $cr->set_font_size(10);
+#    $font_extents = $cr->font_extents;
+    my $x = $left+$offset+$size*100-5;
+    foreach my $i (reverse (0..scalar(@legend)-1)) {
+	$cr->set_antialias('default');
+	$x -= $cr->text_extents($legend[$i])->{width};
+	$cr->move_to($x,$top+5+9);
+	$cr->set_source_rgba(@tickcol);
+	$cr->show_text($legend[$i]);
+	$x -= 15;
+	$cr->set_antialias('none');
+	$cr->set_source_rgba(@{$cols[$i]});
+	$cr->rectangle($x, $top+5, 10, 10);
+	$cr->fill;
+	$x -= 15;
+    }
+
+    #draw ticks
+    $cr->set_antialias('none');
+    #x-axis
+    $cr->set_source_rgba(@tickcol);
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%5) == 0 && $i > 1 && $i < $xmax) {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+3);
+	} else {
+	    $cr->move_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height);
+	    $cr->line_to($left+$offset+int($size/2)+$size*$i-($zero ? 0 : $size)-1, $top+$offset+$height+1);
+	}
+    }
+    $cr->stroke;
+
+    #y-axis
+    $cr->move_to($left+$offset, $top+$offset);
+    $cr->line_to($left+$offset-3, $top+$offset);
+    $cr->move_to($left+$offset, $top+$offset+$height-1);
+    $cr->line_to($left+$offset-3, $top+$offset+$height-1);
+    $cr->stroke;
+
+    #helplines
+    $cr->set_source_rgba(@helplinecol);
+    foreach my $j (1..3) {
+        $cr->move_to($left+$offset, $top+$offset+$height*$j/4-($j ? 1 : 0));
+        $cr->line_to($left+$offset+($xmax+$zero)*$size, $top+$offset+$height*$j/4-($j ? 1 : 0));
+    }
+    $cr->stroke;
+
+    $cr->set_antialias('default');
+
+    #tick labels
+    $cr->set_source_rgba(@tickcol);
+    $cr->set_font_size(10);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+    #x-axis
+    foreach my $i (($zero ? 0 : 1)..$xmax) {
+	if(($i%10) == 0 && $i > 1 && $i < $xmax) {
+	    $extents = $cr->text_extents($i*$bin);
+	    $cr->move_to($left+$offset+int($size/2+1)+$size*$i-($zero ? 0 : $size)-$extents->{width}/2-1-($i == 1 ? 1 : 0), $top+$offset+$height+$fontheight+2);
+	    $cr->show_text($i*$bin);
+	}
+    }
+    #y-axis
+    $extents = $cr->text_extents(&addCommas($ymax));
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2);
+    $cr->show_text(&addCommas($ymax));
+    $extents = $cr->text_extents(0);
+    $cr->move_to($left+$offset-5-$extents->{width}, $top+$offset+$fontheight/2-2+$height);
+    $cr->show_text(0);
+
+    $cr->save;
+
+    #labels
+    $cr->set_font_size(14);
+    $font_extents = $cr->font_extents;
+    $fontheight = $font_extents->{height};
+
+    #axis labels
+    $cr->set_source_rgba(@labelcol);
+    $extents = $cr->text_extents($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->move_to($left+$offset+($xmax+$zero)*$size/2-$extents->{width}/2, $top+$offset+$height+$fontheight+15);
+    $cr->show_text($xlab.($bin>1 ? ' (Bin size: '.$bin.($add ? $add.')' : '') : ''));
+    $cr->rotate($PI * 3 / 2);
+    $extents = $cr->text_extents($ylab.($bin>1 ? ' (per bin)' : ''));
+    $cr->move_to(-($top+$offset+$height/2+$extents->{width}/2+($bin>1 ? 12 : 0)),$offset+10);
+    $cr->show_text($ylab.($bin>1 ? ' (per bin)' : ''));
+
+    $cr->restore;
+
+    #draw boxes
+    $cr->set_antialias('none');
+    foreach my $pos (0..$xmax-($zero ? 0 : 1)) {
+	my $tmp = 0;
+	foreach my $s (0..$stacks-1) {
+	    next unless($matrix->[$s]->[$pos]);
+	    my $cur = $matrix->[$s]->[$pos] / $ymax;
+	    $cr->set_source_rgba(@{$cols[$s]});
+	    if($cur) {
+		$cr->rectangle($left+$offset+$pos*$size, $top+$offset+$height-$tmp*$height, $size-1, -$cur*$height);
+		$cr->fill;
+	    }
+	    $tmp += $cur;
+	}
+    }
+
+    #write image
+    $cr->show_page;
+    return $surface;
+}
+
+sub header {
+    return '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PRINSEQ-'.$WHAT.' Report</title>
+<style type="text/css">
+<!--/* <![CDATA[ */
+'.$CSS_STYLE.'
+/* ]]> */-->
+</style>
+</head>
+<body>
+<center>';
+}
+
+sub footer {
+    return '</center></body></html>';
+}
+
+sub generateHtml {
+    my ($in,$out) = @_;
+    my ($file,$data,$surface,$html,$png);
+    $data = &readGdFile($in);
+    my $time = sprintf("%02d/%02d/%04d %02d:%02d:%02d",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+
+    $html .= &header();
+    $html .= '<h2>PRINSEQ-'.$WHAT.' v'.$VERSION.' HTML Report&nbsp;&nbsp;&nbsp;</h2>[Generated: '.$time.']<br /><br />';
+    $html .= '<div class="info-panel">';
+
+    #input info
+    if(exists $data->{numseqs}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Input Information</span></div>';
+        $html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Input file(s):</td><td class="info-table-value">'.($data->{filename1} ? &convertIntToString($data->{filename1}) : '-').($data->{filename2} ? ' and '.&convertIntToString($data->{filename2}) : '').'</td></tr><tr><td class="info-table-type">Input format(s):</td><td class="info-table-value">'.($data->{format1} ? uc($data->{format1}) : '-').($data->{format2} ? ' and '.uc($data->{format2}) : '').'</td></tr>';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            my $singletons1 = ($data->{numseqs}||0)-($data->{pairs}||0);
+            my $singletons2 = ($data->{numseqs2}||0)-($data->{pairs}||0);
+            $html .= '<tr><td class="info-table-type"># Sequences (file 1):</td><td class="info-table-value">'.&addCommas($data->{numseqs}||'-').'</td></tr><tr><td class="info-table-type">Total bases (file 1):</td><td class="info-table-value">'.&addCommas($data->{numbases}||'-').'</td></tr><tr><td class="info-table-type"># Sequences (file 2):</td><td class="info-table-value">'.&addCommas($data->{numseqs2}||'-').'</td></tr><tr><td class="info-table-type">Total bases (file 2):</td><td class="info-table-value">'.&addCommas($data->{numbases2}||'-').'</td></tr><tr><td class="info-table-type"># Pairs:</td><td class="info-table-value">'.&addCommas($data->{pairs}||'-').($data->{pairs} ? '&nbsp;&nbsp;('.sprintf("%.2f",(100*(2*$data->{pairs})/(($data->{numseqs}||0)+($data->{numseqs2}||0)))).'% of sequences)' : '').'</td></tr></tr><tr><td class="info-table-type"># Singletons (file 1):</td><td class="info-table-value">'.&addCommas($singletons1).($singletons1 ? '&nbsp;&nbsp;('.sprintf("%.2f",(100*$singletons1/$data->{numseqs})).'%)' : '').'</td></tr><tr><td class="info-table-type"># Singletons (file 2):</td><td class="info-table-value">'.&addCommas($singletons2).($singletons2 ? '&nbsp;&nbsp;('.sprintf("%.2f",(100*$singletons2/$data->{numseqs2})).'%)' : '').'</td></tr>';
+        } else {
+            $html .= '<tr><td class="info-table-type"># Sequences:</td><td class="info-table-value">'.&addCommas($data->{numseqs}||'-').'</td></tr><tr><td class="info-table-type">Total bases:</td><td class="info-table-value">'.&addCommas($data->{numbases}||'-').'</td></tr>';
+        }
+        $html .= '</tbody></table></div><hr>';
+    }
+
+    #length plot
+    if(exists $data->{counts}->{length} && keys %{$data->{counts}->{length}}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Length Distribution</span></div>';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<div class="info-content"><b>File 1</b><br /><table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type">Mean sequence length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mean} ? sprintf("%.2f",$data->{stats}->{length}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{length}->{std} ? sprintf("%.2f",$data->{stats}->{length}->{std}) : '-').' bp</td></tr><tr><td class="info-table-type">Minimum length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{min} ? &addCommas($data->{stats}->{length}->{min}) : '-').' bp</td></tr> <tr><td class="info-table-type">Maximum length:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{max} ? &addCommas($data->{stats}->{length}->{max}) : '-').' bp</td></tr> <tr><td class="info-table-type">Length range:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{range} ? &addCommas($data->{stats}->{length}->{range}) : '-').' bp</td></tr> <tr><td class="info-table-type">Mode length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mode} ? &addCommas($data->{stats}->{length}->{mode}) : '-').' bp with '.(exists $data->{stats}->{length}->{modeval} ? &addCommas($data->{stats}->{length}->{modeval}) : '-').' sequences</td></tr></tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{length},1),$data->{stats}->{length},'Length Distribution','Read Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+            $html .= '<div class="info-content"><br /><b>File 2</b><br /><table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type">Mean sequence length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{length}->{mean} ? sprintf("%.2f",$data->{stats2}->{length}->{mean}) : '-').' &plusmn; '.(exists $data->{stats2}->{length}->{std} ? sprintf("%.2f",$data->{stats2}->{length}->{std}) : '-').' bp</td></tr><tr><td class="info-table-type">Minimum length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{length}->{min} ? &addCommas($data->{stats2}->{length}->{min}) : '-').' bp</td></tr> <tr><td class="info-table-type">Maximum length:</td><td class="info-table-value">'.(exists $data->{stats2}->{length}->{max} ? &addCommas($data->{stats2}->{length}->{max}) : '-').' bp</td></tr> <tr><td class="info-table-type">Length range:</td><td class="info-table-value">'.(exists $data->{stats2}->{length}->{range} ? &addCommas($data->{stats2}->{length}->{range}) : '-').' bp</td></tr> <tr><td class="info-table-type">Mode length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{length}->{mode} ? &addCommas($data->{stats2}->{length}->{mode}) : '-').' bp with '.(exists $data->{stats2}->{length}->{modeval} ? &addCommas($data->{stats2}->{length}->{modeval}) : '-').' sequences</td></tr></tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{length},1),$data->{stats2}->{length},'Length Distribution','Read Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        } else {
+            $html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type">Mean sequence length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mean} ? sprintf("%.2f",$data->{stats}->{length}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{length}->{std} ? sprintf("%.2f",$data->{stats}->{length}->{std}) : '-').' bp</td></tr><tr><td class="info-table-type">Minimum length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{min} ? &addCommas($data->{stats}->{length}->{min}) : '-').' bp</td></tr> <tr><td class="info-table-type">Maximum length:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{max} ? &addCommas($data->{stats}->{length}->{max}) : '-').' bp</td></tr> <tr><td class="info-table-type">Length range:</td><td class="info-table-value">'.(exists $data->{stats}->{length}->{range} ? &addCommas($data->{stats}->{length}->{range}) : '-').' bp</td></tr> <tr><td class="info-table-type">Mode length:</td> <td class="info-table-value">'.(exists $data->{stats}->{length}->{mode} ? &addCommas($data->{stats}->{length}->{mode}) : '-').' bp with '.(exists $data->{stats}->{length}->{modeval} ? &addCommas($data->{stats}->{length}->{modeval}) : '-').' sequences</td></tr></tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{length},1),$data->{stats}->{length},'Length Distribution','Read Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        }
+        $html .= '<hr>';
+    }
+
+    #GC content
+    if(exists $data->{counts}->{gc} && keys %{$data->{counts}->{gc}}) {
+	$html .= '<div class="info-header"><span class="info-header-title">GC Content Distribution</span></div>';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<div class="info-content"><b>File 1</b><br /><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Mean GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mean} ? sprintf("%.2f",$data->{stats}->{gc}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{gc}->{std} ? sprintf("%.2f",$data->{stats}->{gc}->{std}) : '-').' %</td></tr> <tr><td class="info-table-type">Minimum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{min} ? $data->{stats}->{gc}->{min} : '-').' %</td></tr> <tr><td class="info-table-type">Maximum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{max} ? $data->{stats}->{gc}->{max} : '-').' %</td></tr> <tr><td class="info-table-type">GC content range:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{range} ? $data->{stats}->{gc}->{range} : '-').' %</td></tr> <tr><td class="info-table-type">Mode GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mode} ? $data->{stats}->{gc}->{mode} : '-').' % with '.(exists $data->{stats}->{gc}->{modeval} ? &addCommas($data->{stats}->{gc}->{modeval}) : '-').' sequences</td></tr> </tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{gc},0),$data->{stats}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences','',1);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+            $html .= '<div class="info-content"><br /><b>File 2</b><br /><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Mean GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{mean} ? sprintf("%.2f",$data->{stats2}->{gc}->{mean}) : '-').' &plusmn; '.(exists $data->{stats2}->{gc}->{std} ? sprintf("%.2f",$data->{stats2}->{gc}->{std}) : '-').' %</td></tr> <tr><td class="info-table-type">Minimum GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{min} ? $data->{stats2}->{gc}->{min} : '-').' %</td></tr> <tr><td class="info-table-type">Maximum GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{max} ? $data->{stats2}->{gc}->{max} : '-').' %</td></tr> <tr><td class="info-table-type">GC content range:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{range} ? $data->{stats2}->{gc}->{range} : '-').' %</td></tr> <tr><td class="info-table-type">Mode GC content:</td> <td class="info-table-value">'.(exists $data->{stats2}->{gc}->{mode} ? $data->{stats2}->{gc}->{mode} : '-').' % with '.(exists $data->{stats2}->{gc}->{modeval} ? &addCommas($data->{stats2}->{gc}->{modeval}) : '-').' sequences</td></tr> </tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{gc},0),$data->{stats2}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences','',1);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        } else {
+            $html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Mean GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mean} ? sprintf("%.2f",$data->{stats}->{gc}->{mean}) : '-').' &plusmn; '.(exists $data->{stats}->{gc}->{std} ? sprintf("%.2f",$data->{stats}->{gc}->{std}) : '-').' %</td></tr> <tr><td class="info-table-type">Minimum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{min} ? $data->{stats}->{gc}->{min} : '-').' %</td></tr> <tr><td class="info-table-type">Maximum GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{max} ? $data->{stats}->{gc}->{max} : '-').' %</td></tr> <tr><td class="info-table-type">GC content range:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{range} ? $data->{stats}->{gc}->{range} : '-').' %</td></tr> <tr><td class="info-table-type">Mode GC content:</td> <td class="info-table-value">'.(exists $data->{stats}->{gc}->{mode} ? $data->{stats}->{gc}->{mode} : '-').' % with '.(exists $data->{stats}->{gc}->{modeval} ? &addCommas($data->{stats}->{gc}->{modeval}) : '-').' sequences</td></tr> </tbody></table><br>';
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{gc},0),$data->{stats}->{gc},'GC Content Distribution','GC Content (0-100%)','Number of Sequences','',1);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+            $html .= '</div>';
+        }
+        $html .= '<hr>';
+    }
+
+    #Base quality
+    if(exists $data->{quals} || exists $data->{qualsmean} || exists $data->{qualsbin}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Base Quality Distribution</span></div><div class="info-content">';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+    }
+    if(exists $data->{quals} && keys %{$data->{quals}}) {
+	$surface = &createBoxPlot(&convertToBoxValues($data->{quals},4),'Base Quality Distribution','Read position in %','Quality score','');
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{qualsbin} && keys %{$data->{qualsbin}}) {
+	$surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin},4),'Base Quality Distribution','Read position in bp','Quality score','',0,'bp',$data->{binval});
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+        $html .= '<br /><br />' if(exists $data->{quals});
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{qualsmean} && keys %{$data->{qualsmean}}) {
+	$surface = &createBarPlot(&convertToBarValues($data->{qualsmean},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences','',0);
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= '<br /><br />' if(exists $data->{qualsbin});
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{pairedend} && $data->{pairedend}) {
+        if(exists $data->{quals} || exists $data->{qualsmean} || exists $data->{qualsbin}) {
+            $html .= '<br /><br /><br /><b>File 2</b><br />';
+        }
+        if(exists $data->{quals2} && keys %{$data->{quals2}}) {
+            $surface = &createBoxPlot(&convertToBoxValues($data->{quals2},4),'Base Quality Distribution','Read position in %','Quality score','');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= &insert_image($png);
+        }
+        if(exists $data->{qualsbin2} && keys %{$data->{qualsbin2}}) {
+            $surface = &createBoxPlot(&convertToBoxValues($data->{qualsbin2},4),'Base Quality Distribution','Read position in bp','Quality score','',0,'bp',$data->{binval});
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{quals2});
+            $html .= &insert_image($png);
+        }
+        if(exists $data->{qualsmean2} && keys %{$data->{qualsmean2}}) {
+            $surface = &createBarPlot(&convertToBarValues($data->{qualsmean2},5,1),'Sequence Quality Distribution','Mean of quality scores per sequence','Number of sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{qualsbin2});
+            $html .= &insert_image($png);
+        }
+    }
+    if(exists $data->{quals} || exists $data->{qualsmean} || exists $data->{qualsbin}) {
+	$html .= '</div><hr>';
+    }
+
+    #Ns
+    if((exists $data->{counts}->{ns} && keys %{$data->{counts}->{ns}}) || (exists $data->{counts2} && exists $data->{counts2}->{ns} && keys %{$data->{counts2}->{ns}})) {
+        $html .= '<div class="info-header"><span class="info-header-title">Occurence of N</span></div><div class="info-content">';
+        if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+    }
+    if(exists $data->{counts}->{ns} && keys %{$data->{counts}->{ns}}) {
+	my $nscount = 0;
+	foreach my $n (values %{$data->{counts}->{ns}}) {
+	    $nscount += $n;
+	}	
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Sequences with N:</td> <td class="info-table-value">'.($nscount ? &addCommas($nscount).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$nscount).' %)' : 0).'</td></tr><tr><td class="info-table-type">Max percentage of Ns per sequence:</td> <td class="info-table-value">'.(exists $data->{stats}->{ns}->{max} ? $data->{stats}->{ns}->{max} : 0).' %</td></tr></tbody></table>';
+	if($nscount) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if(exists $data->{pairedend} && $data->{pairedend} && exists $data->{counts2}->{ns} && keys %{$data->{counts2}->{ns}}) {
+        $html .= '<br /><br /><br /><b>File 2</b><br />';
+        my $nscount = 0;
+        foreach my $n (values %{$data->{counts2}->{ns}}) {
+            $nscount += $n;
+        }	
+        $html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Sequences with N:</td> <td class="info-table-value">'.($nscount ? &addCommas($nscount).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs2}*$nscount).' %)' : 0).'</td></tr><tr><td class="info-table-type">Max percentage of Ns per sequence:</td> <td class="info-table-value">'.(exists $data->{stats2}->{ns}->{max} ? $data->{stats2}->{ns}->{max} : 0).' %</td></tr></tbody></table>';
+        if($nscount) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{ns},1),undef,'Percentage of N\'s (> 0%)','Percentage of N\'s per Read (1-100%)','# Sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if((exists $data->{counts}->{ns} && keys %{$data->{counts}->{ns}}) || (exists $data->{counts2} && exists $data->{counts2}->{ns} && keys %{$data->{counts2}->{ns}})) {
+        $html .= '</div><hr>';
+    }
+
+    #tails
+    if(exists $data->{tail} || exists $data->{tail2}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Poly-A/T Tails</span></div><div class="info-content">';
+    }
+    if(exists $data->{tail}) {
+	my $tail5count = 0;
+	foreach my $n (values %{$data->{counts}->{tail5}}) {
+	    $tail5count += $n;
+	}
+	my $tail3count = 0;
+	foreach my $n (values %{$data->{counts}->{tail3}}) {
+	    $tail3count += $n;
+	}
+	if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td> <td class="info-table-value">3\'-end</td></tr> <tr><td class="info-table-type">Sequences with tail:</td><td class="info-table-value">'.($tail5count ? &addCommas($tail5count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$tail5count).' %)' : 0).'</td> <td class="info-table-value">'.($tail3count ? &addCommas($tail3count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$tail3count).' %)' : 0).'</td></tr> <tr><td class="info-table-type">Maximum tail length:</td> <td class="info-table-value">'.(exists $data->{stats}->{tail5}->{max} ? $data->{stats}->{tail5}->{max} : 0).'</td> <td class="info-table-value">'.(exists $data->{stats}->{tail3}->{max} ? $data->{stats}->{tail3}->{max} : 0).'</td></tr></tbody></table>';
+        if($tail5count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+            if($tail3count) {
+                $html .= '<br />';
+            }
+        }
+        if($tail3count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if(exists $data->{pairedend} && $data->{pairedend} && exists $data->{tail2}) {
+        my $tail5count = 0;
+	foreach my $n (values %{$data->{counts2}->{tail5}}) {
+	    $tail5count += $n;
+	}
+	my $tail3count = 0;
+	foreach my $n (values %{$data->{counts2}->{tail3}}) {
+	    $tail3count += $n;
+	}
+        $html .= '<br /><br /><br /><b>File 2</b><br />';
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td> <td class="info-table-value">3\'-end</td></tr> <tr><td class="info-table-type">Sequences with tail:</td><td class="info-table-value">'.($tail5count ? &addCommas($tail5count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs2}*$tail5count).' %)' : 0).'</td> <td class="info-table-value">'.($tail3count ? &addCommas($tail3count).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs2}*$tail3count).' %)' : 0).'</td></tr> <tr><td class="info-table-type">Maximum tail length:</td> <td class="info-table-value">'.(exists $data->{stats2}->{tail5}->{max} ? $data->{stats2}->{tail5}->{max} : 0).'</td> <td class="info-table-value">'.(exists $data->{stats2}->{tail3}->{max} ? $data->{stats2}->{tail3}->{max} : 0).'</td></tr></tbody></table>';
+        if($tail5count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail5},1),undef,'Poly-A/T Tail Distribution (> 4bp)','5\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+            if($tail3count) {
+                $html .= '<br />';
+            }
+        }
+        if($tail3count) {
+            $surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{counts2}->{tail3},1),undef,'Poly-A/T Tail Distribution (> 4bp)','3\' Tail Length in bp','# Sequences','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+    }
+    if(exists $data->{tail} || exists $data->{tail2}) {
+        $html .= '</div><hr>';
+    }
+    
+
+    #tag sequence check
+    if(exists $data->{freqs} || exists $data->{freqs2}) {
+        $html .= '<div class="info-header"><span class="info-header-title">Tag Sequence Check</span></div><div class="info-content">';
+    }
+    if(exists $data->{freqs}) {
+	my $tagmidseq;
+	if(exists $data->{tagmidseq}) {
+	    $tagmidseq = $data->{tagmidseq};
+	    $tagmidseq =~ s/\,/\<br \/\>/g;
+	}
+	if(exists $data->{pairedend} && $data->{pairedend}) {
+            $html .= '<b>File 1</b><br />';
+        }
+	$html .= '<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td><td class="info-table-value">3\'-end</td></tr><tr><td class="info-table-type">Probability of tag sequence:</td><td class="info-table-value">'.(exists $data->{tagprob}->{5} ? $data->{tagprob}->{5}.' %' : '-').'</td><td class="info-table-value">'.(exists $data->{tagprob}->{3} ? $data->{tagprob}->{3}.' %' : '-').'</td></tr><tr><td class="info-table-type">GSMIDs or RLMIDs:</td><td class="info-table-value">'.(exists $data->{tagmidnum} ? ($data->{tagmidnum} == 0 ? 'none' : ($tagmidseq ? $tagmidseq : $data->{tagmidnum})) : '-').'</td><td class="info-table-value">&nbsp;</td></tr></tbody></table><br>';
+	$html .= '<table border="0" cellspacing="0" cellpadding="0"><tr><td>'.&insert_image($FREQCHART_L,undef,undef,1).'</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs}->{5}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs}->{5}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs}->{5}->{$pos}->{$base},14,1).'<br />';
+		    #'<img height="'.$data->{freqs}->{5}->{pos}->{$base}.'px" border="0" src="'..'" alt="'.$base.'" width="14px" /><br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '<td align="center" valign="middle">&nbsp;...&nbsp;</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs}->{3}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs}->{3}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs}->{3}->{$pos}->{$base},14,1).'<br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '</tr>';
+	$html .= '<tr><td>&nbsp;</td>';
+	foreach my $num (1,0,0,0,5,0,0,0,0,10,0,0,0,0,15,0,0,0,0,20,0,20,0,0,0,0,15,0,0,0,0,10,0,0,0,0,5,0,0,0,1) {
+	    $html .= '<td valign="top" align="center" style="font-size: 10px;margin: 0;">'.($num ? $num : '').'&nbsp;</td>';
+	}
+	$html .= '</tr><tr><td align="left" valign="middle">&nbsp;</td><td align="center" valign="middle" colspan="41" class="pinfo"><b>Position from Sequence Ends</b></td></tr>';
+	$html .= '</table>';
+    }
+    if(exists $data->{pairedend} && $data->{pairedend} && exists $data->{freqs2}) {
+        $html .= '<br /><br /><br /><b>File 2</b><br />';
+        $html .= '<table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type"></td><td class="info-table-value">5\'-end</td><td class="info-table-value">3\'-end</td></tr><tr><td class="info-table-type">Probability of tag sequence:</td><td class="info-table-value">'.(exists $data->{tagprob2}->{5} ? $data->{tagprob2}->{5}.' %' : '-').'</td><td class="info-table-value">'.(exists $data->{tagprob2}->{3} ? $data->{tagprob2}->{3}.' %' : '-').'</td></tr></tbody></table><br>';
+	$html .= '<table border="0" cellspacing="0" cellpadding="0"><tr><td>'.&insert_image($FREQCHART_L,undef,undef,1).'</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs2}->{5}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs2}->{5}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs2}->{5}->{$pos}->{$base},14,1).'<br />';
+		    #'<img height="'.$data->{freqs}->{5}->{pos}->{$base}.'px" border="0" src="'..'" alt="'.$base.'" width="14px" /><br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '<td align="center" valign="middle">&nbsp;...&nbsp;</td>';
+	foreach my $pos (sort {$a <=> $b} keys %{$data->{freqs2}->{3}}) {
+	    $html .= '<td valign="bottom" align="center">';
+	    foreach my $base (qw(A C G T N)) {
+		if($data->{freqs2}->{3}->{$pos}->{$base}) {
+		    $html .= &insert_image($BASE64_BASES->{$base},$data->{freqs2}->{3}->{$pos}->{$base},14,1).'<br />';
+		}
+	    }
+	    $html .= &insert_image($MMCHART_B2,6,16,1).'</td>';
+	}
+	$html .= '</tr>';
+	$html .= '<tr><td>&nbsp;</td>';
+	foreach my $num (1,0,0,0,5,0,0,0,0,10,0,0,0,0,15,0,0,0,0,20,0,20,0,0,0,0,15,0,0,0,0,10,0,0,0,0,5,0,0,0,1) {
+	    $html .= '<td valign="top" align="center" style="font-size: 10px;margin: 0;">'.($num ? $num : '').'&nbsp;</td>';
+	}
+	$html .= '</tr><tr><td align="left" valign="middle">&nbsp;</td><td align="center" valign="middle" colspan="41" class="pinfo"><b>Position from Sequence Ends</b></td></tr>';
+	$html .= '</table>';
+    }
+    if(exists $data->{freqs} || exists $data->{freqs2}) {
+        $html .= '</div><hr>';
+    }
+
+    #Sequence duplicates
+    if(exists $data->{dubslength} || exists $data->{dubscounts}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Sequence Duplication</span></div>';
+    }
+    my %dubs;
+    if(exists $data->{dubscounts} && keys %{$data->{dubscounts}}) {
+	my $exactonly = $data->{exactonly}||0;
+	foreach my $n (keys %{$data->{dubscounts}}) {
+	    foreach my $s (keys %{$data->{dubscounts}->{$n}}) {
+		$dubs{$s}->{count} += $data->{dubscounts}->{$n}->{$s} * $n;
+		$dubs{$s}->{max} = $n unless(exists $dubs{$s}->{max} && $dubs{$s}->{max} > $n);
+		$dubs{all} += $data->{dubscounts}->{$n}->{$s} * $n;
+	    }
+	}
+	$html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value"># Sequences</td> <td class="info-table-value">Max duplicates</td></tr><tr><td class="info-table-type">Exact duplicates:</td><td class="info-table-value">'.(exists $dubs{0}->{count} ? &addCommas($dubs{0}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{0}->{count}).' %)' : 0).'</td><td class="info-table-value">'.($dubs{0}->{max}||0).'</td></tr><tr><td class="info-table-type">Exact duplicates with reverse complements:</td><td class="info-table-value">'.(exists $dubs{3}->{count} ? &addCommas($dubs{3}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{3}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{3}->{max}||0).'</td></tr>';
+        unless($exactonly) {
+            $html .= '<tr><td class="info-table-type">5\' duplicates</td><td class="info-table-value">'.(exists $dubs{1}->{count} ? &addCommas($dubs{1}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{1}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{1}->{max}||0).'</td></tr><tr><td class="info-table-type">3\' duplicates</td><td class="info-table-value">'.(exists $dubs{2}->{count} ? &addCommas($dubs{2}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{2}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{2}->{max}||0).'</td></tr><tr><td class="info-table-type">5\'/3\' duplicates with reverse complements</td><td class="info-table-value">'.(exists $dubs{4}->{count} ? &addCommas($dubs{4}->{count}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{4}->{count}).' %)' : 0).'</td> <td class="info-table-value">'.($dubs{4}->{max}||0).'</td></tr>';
+        }
+        $html .= '<tr><td class="info-table-type">Total:</td><td class="info-table-value">'.(exists $dubs{all} ? &addCommas($dubs{all}).' &nbsp;('.sprintf("%.2f",100/$data->{numseqs}*$dubs{all}).' %)' : 0).'</td><td class="info-table-value">-</td></tr></tbody></table>';
+    }
+    if(exists $dubs{all} && $dubs{all}) {
+        if(exists $data->{dubslength} && keys %{$data->{dubslength}}) {
+            $surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubslength},5,1),'Sequence duplication level','Read Length in bp','Number of duplicates','',0,' bp');
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br />'.&insert_image($png);
+        }
+        if(exists $data->{dubscounts} && keys %{$data->{dubscounts}}) {
+            $surface = &createStackBarPlot(&convertOdToStackBinMatrix($data->{dubscounts},5,1,100),'Sequence duplication level','Number of duplicates','Number of sequences','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{dubslength});
+            $html .= &insert_image($png);
+            my %dubsmax;
+            my $count = 1;
+            foreach my $n (sort {$b <=> $a} keys %{$data->{dubscounts}}) {
+                foreach my $s (keys %{$data->{dubscounts}->{$n}}) {
+                    foreach my $i (1..$data->{dubscounts}->{$n}->{$s}) {
+                        $dubsmax{$count++}->{$s} = $n;
+                        last unless($count <= 100);
+                    }
+                    last unless($count <= 100);
+                }
+                last unless($count <= 100);
+            }
+            $surface = &createStackBarPlot(&convertOdToStackBinMatrix(\%dubsmax,5,1,100),'Sequence duplication level','Sequence','Number of duplicates','',0);
+            $png = '';
+            $surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+            $html .= '<br /><br />' if(exists $data->{dubslength});
+            $html .= &insert_image($png);
+        }
+    }
+    if(exists $data->{dubslength} || exists $data->{dubscounts}) {
+	$html .= '</div><hr>';
+    }
+
+    #Sequence complexity
+    if(exists $data->{compldust} || exists $data->{complentropy}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Sequence Complexity</span></div>';
+	if(exists $data->{complvals}) {
+	    my $complseq;
+	    foreach my $d (keys %{$data->{complvals}}) {
+		foreach my $m ('minseq','maxseq') {
+		    $complseq = $data->{complvals}->{$d}->{$m};
+		    $complseq = substr($complseq,0,797).'...' if(length($complseq) > 800);
+		    $complseq =~ s/(.{60})/$1\<br \/\>/g;
+		    $data->{complvals}->{$d}->{$m} = $complseq;
+		}
+	    }
+	}
+	$html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">Value</td><td class="info-table-value">Sequence</td></tr><tr><td class="info-table-type">Minimum DUST score:</td><td class="info-table-value">'.(exists $data->{complvals}->{dust}->{minval} ? $data->{complvals}->{dust}->{minval} : '-').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{dust}->{minseq} ? $data->{complvals}->{dust}->{minseq} : '').'</td></tr><tr><td class="info-table-type">Maximum DUST score:</td><td class="info-table-value">'.(exists $data->{complvals}->{dust}->{maxval} ? $data->{complvals}->{dust}->{maxval} : '').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{dust}->{maxseq} ? $data->{complvals}->{dust}->{maxseq} : '').'</td></tr><tr><td class="info-table-type">Minimum Entropy value:</td><td class="info-table-value">'.(exists $data->{complvals}->{entropy}->{minval} ? $data->{complvals}->{entropy}->{minval} : '').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{entropy}->{minseq} ? $data->{complvals}->{entropy}->{minseq} : '').'</td></tr><tr><td class="info-table-type">Maximum Entropy value:</td><td class="info-table-value">'.(exists $data->{complvals}->{entropy}->{maxval} ? $data->{complvals}->{entropy}->{maxval} : '').'</td><td class="info-table-value sequencetext">'.(exists $data->{complvals}->{entropy}->{maxseq} ? $data->{complvals}->{entropy}->{maxseq} : '').'</td></tr> </tbody></table><br />';
+    }
+    if(exists $data->{compldust}) {
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{compldust},0),undef,'Sequence complexity distribution','Mean sequence complexity (DUST scores)','Number of sequences','',1);
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{complentropy}) {
+	$surface = &createAnnotBarPlot(&convertOdToBinMatrix($data->{complentropy},0),undef,'Sequence complexity distribution','Mean sequence complexity (Entropy values)','Number of sequences','',1);
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= '<br /><br />' if(exists $data->{compldust});
+	$html .= &insert_image($png);
+    }
+    if(exists $data->{compldust} || exists $data->{complentropy}) {
+	$html .= '</div><hr>';
+    }
+
+    #Dinucleotide odd ratio PCA - microbial/viral
+    if(exists $data->{dinucodds} && keys %{$data->{dinucodds}}) {
+	$html .= '<div class="info-header"><span class="info-header-title">Dinucleotide Odds Ratios</span></div>';
+	$html .= '<div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">&nbsp;</td>';
+	foreach my $d (map {join("/",(m/../g ))} sort keys %{$data->{dinucodds}}) {
+	    $html .= '<td class="info-table-value">'.$d.'</td>';
+	}
+	$html .= '</tr><tr><td class="info-table-type">Odds ratio</td>';
+	foreach my $d (map {sprintf("%.4f",$data->{dinucodds}->{$_})} sort keys %{$data->{dinucodds}}) {
+	    $html .= '<td class="info-table-value">'.$d.'</td>';
+	}
+	$html .= '</tr></tbody></table><br />';
+	my @new = map {$data->{dinucodds}->{$_}} sort keys %{$data->{dinucodds}};
+        $surface = &createOddsRatioPlot($data->{dinucodds},'Odds ratios','Dinucleotide','Odds ratio','');
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= &insert_image($png);
+	$surface = &createPCAPlot(&convertToPCAValues(\@new,'m'),'PCA','1st Principal Component Score','2nd Principal Component Score','');
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= '<br /><br />';
+	$html .= &insert_image($png);
+	$surface = &createPCAPlot(&convertToPCAValues(\@new,'v'),'PCA','1st Principal Component Score','2nd Principal Component Score','');
+	$png = '';
+	$surface->write_to_png_stream(sub { my ($closure, $data) = @_; $png .= $data; });
+	$html .= '<br /><br />';
+	$html .= &insert_image($png);
+	$html .= '</div>';
+    }
+
+    $html .= '</div>';
+    $html .= &footer();
+
+    #write html to file
+    $file = &getFileName('.html');
+    open(FH, ">$file") or &printError("Can't open file ".$file.": $!");
+    print FH $html;
+    close(FH);
+    &printLog("Done with HTML data");
+}
+
+sub insert_image {
+  my ($data, $height, $width, $noencode) = @_;
+  my $content .= '<img border="0" '.($height ? 'height="'.$height.'"' : '').($width ? 'width="'.$width.'"' : '').' src="'.($noencode ? "data:image/png;base64,".$data : &inline_image($data)).'" />'."\n";
+  return $content;
+}
+
+sub inline_image {
+    return "data:image/png;base64,".MIME::Base64::encode_base64($_[0]);
+}
+
+sub convertIntToString {
+    my $int = shift;
+    $int =~ s/(.{2})/chr(hex($1))/eg;
+    return $int;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/prinseq-lite.pl	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,4850 @@
+#!/usr/bin/perl
+
+#===============================================================================
+#   Author: Robert SCHMIEDER, Computational Science Research Center @ SDSU, CA
+#
+#   File: prinseq-lite
+#   Date: 2013-03-13
+#   Version: 0.20.3 lite
+#
+#   Usage:
+#      prinseq-lite [options]
+#
+#      Try 'prinseq-lite -h' for more information.
+#
+#    Purpose: PRINSEQ will help you to preprocess your genomic or metagenomic
+#             sequence data in FASTA or FASTQ format. The lite version does not
+#             require any non-core perl modules for processing.
+#
+#    Bugs: Please use http://sourceforge.net/tracker/?group_id=315449
+#
+#===============================================================================
+
+use strict;
+use warnings;
+
+#use Data::Dumper; ###
+use Getopt::Long;
+use Pod::Usage;
+use File::Temp qw(tempfile); #for output files
+use Fcntl qw(:flock SEEK_END); #for log file
+use Digest::MD5 qw(md5_hex); #for dereplication
+use Cwd;
+use List::Util qw(sum min max);
+
+$| = 1; # Do not buffer output
+
+my $WINDOWSIZE = 64;
+my $WINDOWSTEP = 32;
+my $WORDSIZE = 3;
+my @WINDOWSIZEARRAY = (0..61);
+my $LOG62 = log(62);
+my $ONEOVERLOG62 = 1/log(62);
+my $POINTFIVE = 1/2;
+my $LINE_WIDTH = 60;
+my $TRIM_QUAL_WINDOW = 1;
+my $TRIM_QUAL_STEP = 1;
+my $TRIM_QUAL_TYPE = 'min';
+my $TRIM_QUAL_RULE = 'lt';
+my $TAG_LENGTH = 20;
+my %MIDS = (ACGAGTGCGT => 0,
+            ACGCTCGACA => 0,
+            AGACGCACTC => 0,
+            AGCACTGTAG => 0,
+            ATCAGACACG => 0,
+            ATATCGCGAG => 0,
+            CGTGTCTCTA => 0,
+            CTCGCGTGTC => 0,
+            TAGTATCAGC => 0,
+            TCTCTATGCG => 0,
+            TGATACGTCT => 0,
+            TACTGAGCTA => 0,
+            CATAGTAGTG => 0,
+            CGAGAGATAC => 0,
+            ACACGACGACT => 0,
+            ACACGTAGTAT => 0,
+            ACACTACTCGT => 0,
+            ACGACACGTAT => 0,
+            ACGAGTAGACT => 0,
+            ACGCGTCTAGT => 0,
+            ACGTACACACT => 0,
+            ACGTACTGTGT => 0,
+            ACGTAGATCGT => 0,
+            ACTACGTCTCT => 0,
+            ACTATACGAGT => 0,
+            ACTCGCGTCGT => 0);
+my $MIDCHECKLENGTH = 15; #maximum MID length plus possible key length (by default 4 bp for 454)
+my %DN_DI = ('AA' => 0, 'AC' => 0, 'AG' => 0, 'AT' => 0, 'CA' => 0, 'CC' => 0, 'CG' => 0, 'CT' => 0, 'GA' => 0, 'GC' => 0, 'GG' => 0, 'GT' => 0, 'TA' => 0, 'TC' => 0, 'TG' => 0, 'TT' => 0);
+my %GRAPH_OPTIONS = map {$_ => 1} qw(ld gc qd ns pt ts aq de da sc dn);
+my $VERSION = '0.20.3';
+my $WHAT = 'lite';
+
+my $man = 0;
+my $help = 0;
+my %params = ('help' => \$help, 'h' => \$help, 'man' => \$man);
+GetOptions( \%params,
+            'help|h',
+            'man',
+            'verbose',
+            'version' => sub { print "PRINSEQ-$WHAT $VERSION\n"; exit; },
+            'fastq=s',
+            'fasta=s',
+            'fastq2=s',
+            'fasta2=s',
+            'qual=s',
+            'min_len=i',
+            'max_len=i',
+            'range_len=s',
+            'min_gc=i',
+            'max_gc=i',
+            'range_gc=s',
+            'min_qual_score=i',
+            'max_qual_score=i',
+            'min_qual_mean=i',
+            'max_qual_mean=i',
+            'ns_max_p=i',
+            'ns_max_n=i',
+            'noniupac',
+            'seq_num=i',
+            'derep=i',
+            'derep_min=i',
+            'lc_method=s',
+            'lc_threshold=i',
+            'trim_to_len=i',
+            'trim_left=i',
+            'trim_right=i',
+            'trim_left_p=i',
+            'trim_right_p=i',
+            'trim_tail_left=i',
+            'trim_tail_right=i',
+            'trim_ns_left=i',
+            'trim_ns_right=i',
+            'trim_qual_left=i',
+            'trim_qual_right=i',
+            'trim_qual_type=s',
+            'trim_qual_rule=s',
+            'trim_qual_window=i',
+            'trim_qual_step=i',
+            'seq_case=s',
+            'dna_rna=s',
+            'line_width=i',
+            'rm_header',
+            'seq_id=s',
+            'seq_id_mappings:s',
+            'out_format=i',
+            'out_good=s',
+            'out_bad=s',
+            'stats_len',
+            'stats_dinuc',
+            'stats_info',
+            'stats_tag',
+            'stats_dupl',
+            'stats_ns',
+            'stats_assembly',
+            'stats_all',
+            'aa',
+            'log:s',
+            'graph_data:s',
+            'graph_stats=s',
+            'phred64',
+            'qual_noscale',
+            'no_qual_header',
+            'exact_only',
+            'web:s',
+            'filename1=s',
+            'filename2=s',
+            'custom_params=s',
+            'params=s'
+            ) or pod2usage(2);
+pod2usage(1) if $help;
+pod2usage(-exitstatus => 0, -verbose => 2) if $man;
+
+=head1 NAME
+
+PRINSEQ - PReprocessing and INformation of SEQuence data
+
+=head1 VERSION
+
+PRINSEQ-lite 0.20.3
+
+=head1 SYNOPSIS
+
+perl prinseq-lite.pl [-h] [-help] [-version] [-man] [-verbose] [-fastq input_fastq_file] [-fasta input_fasta_file] [-fastq2 input_fastq_file_2] [-fasta2 input_fasta_file_2] [-qual input_quality_file] [-min_len int_value] [-max_len int_value] [-range_len ranges] [-min_gc int_value] [-max_gc int_value] [-range_gc ranges] [-min_qual_score int_value] [-max_qual_score int_value] [-min_qual_mean int_value] [-max_qual_mean int_value] [-ns_max_p int_value] [-ns_max_n int_value] [-noniupac] [-seq_num int_value] [-derep int_value] [-derep_min int_value] [-lc_method method_name] [-lc_threshold int_value] [-trim_to_len int_value] [-trim_left int_value] [-trim_right int_value] [-trim_left_p int_value] [-trim_right_p int_value] [-trim_ns_left int_value] [-trim_ns_right int_value] [-trim_tail_left int_value] [-trim_tail_right int_value] [-trim_qual_left int_value] [-trim_qual_right int_value] [-trim_qual_type type] [-trim_qual_rule rule] [-trim_qual_window int_value] [-trim_qual_step int_value] [-seq_case case] [-dna_rna type] [-line_width int_value] [-rm_header] [-seq_id id_string] [-out_format int_value] [-out_good filename_prefix] [-out_bad filename_prefix] [-phred64] [-stats_info] [-stats_len] [-stats_dinuc] [-stats_tag] [-stats_dupl] [-stats_ns] [-stats_assembly] [-stats_all] [-aa] [-graph_data file] [-graph_stats string] [-qual_noscale] [-no_qual_header] [-exact_only] [-log file] [-custom_params string] [-params file] [-seq_id_mappings file]
+
+=head1 DESCRIPTION
+
+PRINSEQ will help you to preprocess your genomic or metagenomic sequence data in FASTA (and QUAL) or FASTQ format. The lite version does not require any non-core perl modules for processing.
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<-help> | B<-h>
+
+Print the help message; ignore other arguments.
+
+=item B<-man>
+
+Print the full documentation; ignore other arguments.
+
+=item B<-version>
+
+Print program version; ignore other arguments.
+
+=item B<-verbose>
+
+Prints status and info messages during processing.
+
+=item B<***** INPUT OPTIONS *****>
+
+=item B<-fastq> <file>
+
+Input file in FASTQ format that contains the sequence and quality data. Use stdin instead of a file name to read from STDIN (-fasta stdin). This can be useful to process compressed files using Unix pipes.
+
+=item B<-fasta> <file>
+
+Input file in FASTA format that contains the sequence data. Use stdin instead of a file name to read from STDIN (-fastq stdin). This can be useful to process compressed files using Unix pipes.
+
+=item B<-qual> <file>
+
+Input file in QUAL format that contains the quality data.
+
+=item B<-fastq2> <file>
+
+For paired-end data only. Input file in FASTQ format that contains the sequence and quality data. The sequence identifiers for two matching paired-end sequences in separate files can be marked by /1 and /2, or _L and _R, or _left and _right, or must have the exact same identifier in both input files. The input sequences must be sorted by their sequence identifiers. Singletons are allowed in the input files.
+
+=item B<-fasta2> <file>
+
+For paired-end data only. Input file in FASTA format that contains the sequence data. The sequence identifiers for two matching paired-end sequences in separate files can be marked by /1 and /2, or _L and _R, or _left and _right, or must have the exact same identifier in both input files. The input sequences must be sorted by their sequence identifiers. Singletons are allowed in the input files.
+
+=item B<-params> <file>
+
+Input file in text format that contains PRINSEQ parameters. Each parameter should be specified on a new line and arguments should be separated by spaces or tabs. Comments can be specified on lines starting with the # sign. Can be combined with command line parameters. Parameters specified on the command line will overwrite the arguments in the file (if any).
+
+=item B<-si13>
+
+This option was replaced by option -phred64.
+
+=item B<-phred64>
+
+Quality data in FASTQ file is in Phred+64 format (http://en.wikipedia.org/wiki/FASTQ_format#Encoding). Not required for Illumina 1.8+, Sanger, Roche/454, Ion Torrent, PacBio data.
+
+=item B<-aa>
+
+Input is amino acid (protein) sequences instead of nucleic acid (DNA or RNA) sequences. Allowed amino acid characters: ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*- and allowed nucleic acid characters: ACGTURYKMSWBDHVNXacgturykmswbdhvnx-
+
+The following options are ignored for -aa: stats_dinuc,stats_tag,stats_ns,dna_rna
+
+=item B<***** OUTPUT OPTIONS *****>
+
+=item B<-out_format> <integer>
+
+To change the output format, use one of the following options. If not defined, the output format will be the same as the input format.
+
+1 (FASTA only), 2 (FASTA and QUAL), 3 (FASTQ), 4 (FASTQ and FASTA), or 5 (FASTQ, FASTA and QUAL)
+
+=item B<-out_good> <string>
+
+By default, the output files are created in the same directory as the input file containing the sequence data with an additional "_prinseq_good_XXXX" in their name (where XXXX is replaced by random characters to prevent overwriting previous files). To change the output filename and location, specify the filename using this option. The file extension will be added automatically (either .fasta, .qual, or .fastq). For paired-end data, filenames contain additionally "_1", "_1_singletons", "_2", and "_2_singletons" before the file extension. Use "-out_good null" to prevent the program from generating the output file(s) for data passing all filters. Use "-out_good stdout" to write data passing all filters to STDOUT (only for FASTA or FASTQ output files).
+
+Example: use "file_passed" to generate the output file file_passed.fasta in the current directory
+
+=item B<-out_bad> <string>
+
+By default, the output files are created in the same directory as the input file containing the sequence data with an additional "_prinseq_bad_XXXX" in their name (where XXXX is replaced by random characters to prevent overwriting previous files). To change the output filename and location, specify the filename using this option. The file extension will be added automatically (either .fasta, .qual, or .fastq). For paired-end data, filenames contain additionally "_1" and "_2" before the file extension. Use "-out_bad null" to prevent the program from generating the output file(s) for data not passing any filter. Use "-out_bad stdout" to write data not passing any filter to STDOUT (only for FASTA or FASTQ output files).
+
+Example: use "file_filtered" to generate the output file file_filtered.fasta in the current directory
+
+Example: "-out_good stdout -out_bad null" will write data passing filters to STDOUT and data not passing any filter will be ignored
+
+=item B<-log> <file>
+
+Log file to keep track of parameters, errors, etc. The log file name is optional. If no file name is given, the log file name will be "inputname.log". If the log file already exists, new content will be added to the file.
+
+=item B<-graph_data> <file>
+
+File that contains the necessary information to generate the graphs similar to the ones in the web version. The file name is optional. If no file name is given, the file name will be "inputname.gd". If the file already exists, new content will overwrite the file. Use "-out_good null -out_bad null" to prevent generating any additional outputs. (See below for more options related to the graph data.)
+
+The graph data can be used as input for the prinseq-graphs.pl file to generate the PNG graph files or an HTML report file. If you have trouble installing the required prinseq-graphs.pl modules or want to see an output
+example report, upload the graph data file at: http://edwards.sdsu.edu/prinseq/ -> Choose "Get Report"
+
+=item B<-graph_stats> <string>
+
+Use this option to select what statistics should be calculated and included in the graph_data file. This is useful if you e.g. do not need sequence complexity information, which requires a lot of computation. Requires to have graph_data specified. Default is all selected.
+
+Allowed option are (separate multiple by comma with no spaces): ld (Length distribution), gc (GC content distribution), qd (Base quality distribution), ns (Occurence of N), pt (Poly-A/T tails), ts (Tag sequence check), aq (Assembly quality measure), de (Sequence duplication - exact only), da (Sequence duplication - exact + 5'/3'), sc (Sequence complexity), dn (Dinucleotide odds ratios, includes the PCA plots)
+
+Example use: -graph_stats ld,gc,qd,de
+
+=item B<-qual_noscale>
+
+Use this option if all your sequences are shorter than 100bp as they do not require to scale quality data to 100 data points in the graph. By default, quality scores of sequences shorter than 100bp or longer than 100bp are fit to 100 data points. (To retrieve this information and calculate the graph data would otherwise require to parse the data two times or store all the quality data in memory.)
+
+=item B<-no_qual_header>
+
+In order to reduce the file size, this option will generate an empty header line for the quality data in FASTQ files. Instead of +header, only the + sign will be output. The header of the sequence data will be left unchanged. This option applies to FASTQ output files only.
+
+=item B<-exact_only>
+
+Use this option to check for exact (forward and reverse) duplicates only when generating the graph data. This allows to keep the memory requirements low for large input files and is faster. This option will automatically be applied when using -derep options 1 and/or 4 only. Specify option -derep 1 or -derep 4 if you do not want to apply both at the same time.
+
+=item B<-seq_id_mappings> <file>
+
+Text file containing the old and new (specified with -seq_id) identifiers for later reference. This option is useful if e.g. a renamed sequence has to be identified based on the new sequence identifier. The file name is optional. If no file name is given, the file name will be "inputname_prinseq_good.ids" (only good sequences are renamed). If a file with the same name already exists, new content will overwrite the old file. The text file contains one sequence identifier pair per line, separated by tabs (old-tab-new). Requires option -seq_id.
+
+
+=item B<***** FILTER OPTIONS *****>
+
+=item B<-min_len> <integer>
+
+Filter sequence shorter than min_len.
+
+=item B<-max_len> <integer>
+
+Filter sequence longer than max_len.
+
+=item B<-range_len> <string>
+
+Filter sequence by length range. Multiple range values should be separated by comma without spaces.
+
+Example: -range_len 50-100,250-300
+
+=item B<-min_gc> <integer>
+
+Filter sequence with GC content below min_gc.
+
+=item B<-max_gc> <integer>
+
+Filter sequence with GC content above max_gc.
+
+=item B<-range_gc> <string>
+
+Filter sequence by GC content range. Multiple range values should be separated by comma without spaces.
+
+Example: -range_gc 50-60,75-90
+
+=item B<-min_qual_score> <integer>
+
+Filter sequence with at least one quality score below min_qual_score.
+
+=item B<-max_qual_score> <integer>
+
+Filter sequence with at least one quality score above max_qual_score.
+
+=item B<-min_qual_mean> <integer>
+
+Filter sequence with quality score mean below min_qual_mean.
+
+=item B<-max_qual_mean> <integer>
+
+Filter sequence with quality score mean above max_qual_mean.
+
+=item B<-ns_max_p> <integer>
+
+Filter sequence with more than ns_max_p percentage of Ns.
+
+=item B<-ns_max_n> <integer>
+
+Filter sequence with more than ns_max_n Ns.
+
+=item B<-noniupac>
+
+Filter sequence with characters other than A, C, G, T or N.
+
+=item B<-seq_num> <integer>
+
+Only keep the first seq_num number of sequences (that pass all other filters).
+
+=item B<-derep> <integer>
+
+Type of duplicates to filter. Allowed values are 1, 2, 3, 4 and 5. Use integers for multiple selections (e.g. 124 to use type 1, 2 and 4). The order does not matter. Option 2 and 3 will set 1 and option 5 will set 4 as these are subsets of the other option.
+
+1 (exact duplicate), 2 (5' duplicate), 3 (3' duplicate), 4 (reverse complement exact duplicate), 5 (reverse complement 5'/3' duplicate)
+
+=item B<-derep_min> <integer>
+
+This option specifies the number of allowed duplicates. If you want to remove sequence duplicates that occur more than x times, then you would specify x+1 as the -derep_min values. For examples, to remove sequences that occur more than 5 times, you would specify -derep_min 6. This option can only be used in combination with -derep 1 and/or 4 (forward and/or reverse exact duplicates). [default : 2]
+
+=item B<-lc_method> <string>
+
+Method to filter low complexity sequences. The current options are "dust" and "entropy". Use "-lc_method dust" to calculate the complexity using the dust method.
+
+=item B<-lc_threshold> <integer>
+
+The threshold value (between 0 and 100) used to filter sequences by sequence complexity. The dust method uses this as maximum allowed score and the entropy method as minimum allowed value.
+
+=item B<-custom_params> <string>
+
+Can be used to specify additional filters. The current set of possible rules is limited and has to follow the specifications below. The custom parameters have to be specified within quotes (either ' or ").
+
+Please separate parameter values with a space and separate new parameter sets with semicolon (;). Parameters are defined by two values:
+  (1) the pattern (any combination of the letters "ACGTN"),
+  (2) the number of repeats or percentage of occurence
+Percentage values are defined by a number followed by the %-sign (without space).
+If no %-sign is given, it is assumed that the given number specifies the number of repeats of the pattern.
+
+Examples: "AAT 10" (filters out sequences containing AATAATAATAATAATAATAATAATAATAAT anywhere in the sequence), "T 70%" (filters out sequences with more than 70% Ts in the sequence), "A 15" (filters out sequences containing AAAAAAAAAAAAAAA anywhere in the sequence), "AAT 10;T 70%;A 15" (apply all three filters)
+
+=item B<***** TRIM OPTIONS *****>
+
+=item B<-trim_to_len> <integer>
+
+Trim all sequence from the 3'-end to result in sequence with this length.
+
+=item B<-trim_left> <integer>
+
+Trim sequence at the 5'-end by trim_left positions.
+
+=item B<-trim_right> <integer>
+
+Trim sequence at the 3'-end by trim_right positions.
+
+=item B<-trim_left_p> <integer>
+
+Trim sequence at the 5'-end by trim_left_p percentage of read length. The trim length is rounded towards the lower integer (e.g. 143.6 is rounded to 143 positions). Use an integer between 1 and 100 for the percentage value.
+
+=item B<-trim_right_p> <integer>
+
+Trim sequence at the 3'-end by trim_right_p percentage of read length. The trim length is rounded towards the lower integer (e.g. 143.6 is rounded to 143 positions). Use an integer between 1 and 100 for the percentage value.
+
+=item B<-trim_tail_left> <integer>
+
+Trim poly-A/T tail with a minimum length of trim_tail_left at the 5'-end.
+
+=item B<-trim_tail_right> <integer>
+
+Trim poly-A/T tail with a minimum length of trim_tail_right at the 3'-end.
+
+=item B<-trim_ns_left> <integer>
+
+Trim poly-N tail with a minimum length of trim_ns_left at the 5'-end.
+
+=item B<-trim_ns_right> <integer>
+
+Trim poly-N tail with a minimum length of trim_ns_right at the 3'-end.
+
+=item B<-trim_qual_left> <integer>
+
+Trim sequence by quality score from the 5'-end with this threshold score.
+
+=item B<-trim_qual_right> <integer>
+
+Trim sequence by quality score from the 3'-end with this threshold score.
+
+=item B<-trim_qual_type> <string>
+
+Type of quality score calculation to use. Allowed options are min, mean, max and sum. [default: min]
+
+=item B<-trim_qual_rule> <string>
+
+Rule to use to compare quality score to calculated value. Allowed options are lt (less than), gt (greater than) and et (equal to). [default: lt]
+
+=item B<-trim_qual_window> <integer>
+
+The sliding window size used to calculate quality score by type. To stop at the first base that fails the rule defined, use a window size of 1. [default: 1]
+
+=item B<-trim_qual_step> <integer>
+
+Step size used to move the sliding window. To move the window over all quality scores without missing any, the step size should be less or equal to the window size. [default: 1]
+
+=item B<***** REFORMAT OPTIONS *****>
+
+=item B<-seq_case> <string>
+
+Changes sequence character case to upper or lower case. Allowed options are "upper" and "lower". Use this option to remove soft-masking from your sequences.
+
+=item B<-dna_rna> <string>
+
+Convert sequence between DNA and RNA. Allowed options are "dna" (convert from RNA to DNA) and "rna" (convert from DNA to RNA).
+
+=item B<-line_width> <integer>
+
+Sequence characters per line. Use 0 if you want each sequence in a single line. Use 80 for line breaks every 80 characters. Note that this option only applies to FASTA output files, since FASTQ files store sequences without additional line breaks. [default: 60]
+
+=item B<-rm_header>
+
+Remove the sequence header. This includes everything after the sequence identifier (which is kept unchanged).
+
+=item B<-seq_id> <string>
+
+Rename the sequence identifier. A counter is added to each identifier to assure its uniqueness. Use option -seq_id_mappings to generate a file containing the old and new identifiers for later reference.
+
+Example: "mySeq_10" will generate the IDs (in FASTA format) >mySeq_101, >mySeq_102, >mySeq_103, ...
+
+=item B<***** SUMMARY STATISTIC OPTIONS *****>
+
+The summary statistic values are written to STDOUT in the form: "parameter_name statistic_name value" (without the quotes). For example, "stats_info reads 10000" or "stats_len max 500". Only one statistic is written per line and values are separated by tabs.
+
+If you specify any statistic option, no other ouput will be generated. To preprocess data, do not specify a statistics option.
+
+=item B<-stats_info>
+
+Outputs basic information such as number of reads (reads) and total bases (bases).
+
+=item B<-stats_len>
+
+Outputs minimum (min), maximum (max), range (range), mean (mean), standard deviation (stddev), mode (mode) and mode value (modeval), and median (median) for read length.
+
+=item B<-stats_dinuc>
+
+Outputs the dinucleotide odds ratio for AA/TT (aatt), AC/GT (acgt), AG/CT (agct), AT (at), CA/TG (catg), CC/GG (ccgg), CG (cg), GA/TC (gatc), GC (gc) and TA (ta).
+
+=item B<-stats_tag>
+
+Outputs the probability of a tag sequence at the 5'-end (prob5) and 3'-end (prob3) in percentage (0..100). Provides the number of predefined MIDs (midnum) and the MID sequences (midseq, separated by comma, only provided if midnum > 0) that occur in more than 34/100 (approx. 3%) of the reads.
+
+=item B<-stats_dupl>
+
+Outputs the number of exact duplicates (exact), 5' duplicates (5), 3' duplicates (3), exact duplicates with reverse complements (exactrevcom) and 5'/3' duplicates with reverse complements (revcomp), and total number of duplicates (total). The maximum number of duplicates is given under the value name with an additional "maxd" (e.g. exactmaxd or 5maxd).
+
+=item B<-stats_ns>
+
+Outputs the number of reads with ambiguous base N (seqswithn), the maximum number of Ns per read (maxn) and the maximum percentage of Ns per read (maxp). The maxn and maxp value are not necessary from the same sequence.
+
+=item B<-stats_assembly>
+
+Outputs the N50, N90, etc contig sizes. The Nxx contig size is a weighted median that is defined as the length of the smallest contig C in the sorted list of all contigs where the cumulative length from the largest contig to contig C is at least xx% of the total length (sum of contig lengths).
+
+=item B<-stats_all>
+
+Outputs all available summary statistics.
+
+=item B<***** ORDER OF PROCESSING *****>
+
+The available options are processed in the following order:
+
+seq_num, trim_left, trim_right, trim_left_p, trim_right_p, trim_qual_left, trim_qual_right, trim_tail_left, trim_tail_right, trim_ns_left, trim_ns_right, trim_to_len, min_len, max_len, range_len, min_qual_score, max_qual_score, min_qual_mean, max_qual_mean, min_gc, max_gc, range_gc, ns_max_p, ns_max_n, noniupac, lc_method, derep, seq_id, seq_case, dna_rna, out_format
+
+=back
+
+=head1 AUTHOR
+
+Robert SCHMIEDER, C<< <rschmieder_at_gmail_dot_com> >>
+
+=head1 BUGS
+
+If you find a bug please email me at C<< <rschmieder_at_gmail_dot_com> >> or use http://sourceforge.net/tracker/?group_id=315449 so that I can make PRINSEQ better.
+
+=head1 COPYRIGHT
+
+Copyright (C) 2010-2012  Robert SCHMIEDER
+
+=head1 LICENSE
+
+This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+#
+################################################################################
+## DATA AND PARAMETER CHECKING
+################################################################################
+#
+
+my ($file1,$file2,$command,@dataread,$aa,%filtercount,$slashnum,$trimnum1,$trimnum2);
+
+#check if params file
+if(exists $params{params}) {
+    my $ps = &readParamsFile($params{params});
+    foreach my $p (keys %$ps) {
+        next if(exists $params{$p});
+        $params{$p} = $ps->{$p};
+    }
+}
+
+#check if amino acid or nucleic acid input
+if(exists $params{aa}) {
+    $aa = 1;
+    $command .= ' -aa';
+} else {
+    $aa = 0;
+}
+
+#Check if input file exists and check if file format is correct
+if(exists $params{fasta} && exists $params{fastq}) {
+    &printError('fasta and fastq cannot be used together');
+} elsif(exists $params{fasta}) {
+    $command .= ' -fasta '.$params{fasta};
+    $file1 = $params{fasta};
+    if($params{fasta} eq 'stdin') {
+        if(exists $params{qual} && $params{qual} eq 'stdin') {
+            &printError('input from STDIN is only allowed for either of the input files');
+        } else {
+            my $format = &checkInputFormat();
+            unless($format eq 'fasta') {
+                &printError('input data for -fasta is in '.uc($format).' format not in FASTA format');
+            }
+        }
+    } elsif(-e $params{fasta}) {
+        #check for file format
+        my $format = &checkFileFormat($file1);
+        unless($format eq 'fasta') {
+            &printError('input file for -fasta is in '.uc($format).' format not in FASTA format');
+        }
+    } else {
+        &printError("could not find input file \"".$params{fasta}."\"");
+    }
+} elsif(exists $params{fastq}) {
+    $command .= ' -fastq '.$params{fastq};
+    $file1 = $params{fastq};
+    if($params{fastq} eq 'stdin') {
+        my $format = &checkInputFormat();
+        unless($format eq 'fastq') {
+            &printError('input data for -fastq is in '.uc($format).' format not in FASTQ format');
+        }
+    } elsif(-e $params{fastq}) {
+        #check for file format
+        my $format = &checkFileFormat($file1);
+        unless($format eq 'fastq') {
+            &printError('input file for -fastq is in '.uc($format).' format not in FASTQ format');
+        }
+    } else {
+        &printError("could not find input file \"".$params{fastq}."\"");
+    }
+} else {
+    &printError("you did not specify an input file containing the query sequences");
+}
+if(exists $params{fastq} && exists $params{qual}) {
+    &printError('fastq and qual cannot be used together');
+} elsif(exists $params{qual}) {
+    $command .= ' -qual '.$params{qual};
+    if($params{qual} eq 'stdin') {
+        &printError('QUAL data cannot be read from STDIN');
+    } elsif(-e $params{qual}) {
+        #check for file format
+        my $format = &checkFileFormat($params{qual});
+        unless($format eq 'qual') {
+            &printError('input file for -qual is in '.uc($format).' format not in QUAL format');
+        }
+    } else {
+        &printError("could not find input file \"".$params{qual}."\"");
+    }
+}
+if(exists $params{fasta2} && exists $params{fastq2}) {
+    &printError('fasta2 and fastq2 cannot be used together');
+} elsif(exists $params{fasta2}) {
+    if(!exists $params{fasta}) {
+        &printError('option fasta2 requires option fasta');
+    } elsif($params{fasta} eq $params{fasta2}) {
+        &printError('option fasta and fasta2 cannot be the same input file');
+    } else {
+        $command .= ' -fasta2 '.$params{fasta2};
+        $file2 = $params{fasta2};
+        if($params{fasta} eq 'stdin' || $params{fasta2} eq 'stdin') {
+            &printError('paired-end data cannot be processed from STDIN');
+        } elsif(-e $params{fasta2}) {
+            #check for file format
+            my $format = &checkFileFormat($file2);
+            unless($format eq 'fasta') {
+                &printError('input file for -fasta2 is in '.uc($format).' format not in FASTA format');
+            }
+        } else {
+            &printError("could not find input file \"".$params{fasta2}."\"");
+        }
+    }
+    ($slashnum,$trimnum1,$trimnum2) = &checkSlashnum($file2);
+} elsif(exists $params{fastq2}) {
+    if(!exists $params{fastq}) {
+        &printError('option fastq2 requires option fastq');
+    } elsif($params{fastq} eq $params{fastq2}) {
+        &printError('option fastq and fastq2 cannot be the same input file');
+    } else {
+        $command .= ' -fastq2 '.$params{fastq2};
+        $file2 = $params{fastq2};
+        if($params{fastq} eq 'stdin' || $params{fastq2} eq 'stdin') {
+            &printError('paired-end data cannot be processed from STDIN');
+        } elsif(-e $params{fastq2}) {
+            #check for file format
+            my $format = &checkFileFormat($file2);
+            unless($format eq 'fastq') {
+                &printError('input file for -fastq2 is in '.uc($format).' format not in FASTQ format');
+            }
+        } else {
+            &printError("could not find input file \"".$params{fastq2}."\"");
+        }
+    }
+    ($slashnum,$trimnum1,$trimnum2) = &checkSlashnum($file2);
+}
+
+
+#check if stats_all
+if(exists $params{stats_all}) {
+    $params{stats_info} = 1;
+    $params{stats_len} = 1;
+    $params{stats_dupl} = 1 unless($file2);
+    $params{stats_dinuc} = 1;
+    $params{stats_tag} = 1;
+    $params{stats_ns} = 1;
+    $params{stats_assembly} = 1;
+    delete($params{stats_all});
+}
+if($aa) {
+    delete($params{stats_dinuc});
+    delete($params{stats_tag});
+    delete($params{stats_ns});
+}
+if($file2) {
+    delete($params{stats_dupl});
+    delete($params{stats_assembly});
+}
+
+#check if anything todo
+unless( exists $params{min_len} ||
+        exists $params{max_len} ||
+        exists $params{range_len} ||
+        exists $params{min_gc} ||
+        exists $params{max_gc} ||
+        exists $params{range_gc} ||
+        exists $params{min_qual_score} ||
+        exists $params{max_qual_score} ||
+        exists $params{min_qual_mean} ||
+        exists $params{max_qual_mean} ||
+        exists $params{ns_max_p} ||
+        exists $params{ns_max_n} ||
+        exists $params{noniupac} ||
+        exists $params{seq_num} ||
+        exists $params{derep} ||
+        exists $params{lc_method} ||
+        exists $params{lc_threshold} ||
+        exists $params{trim_to_len} ||
+        exists $params{trim_left} ||
+        exists $params{trim_right} ||
+        exists $params{trim_left_p} ||
+        exists $params{trim_right_p} ||
+        exists $params{trim_tail_left} ||
+        exists $params{trim_tail_right} ||
+        exists $params{trim_ns_left} ||
+        exists $params{trim_ns_right} ||
+        exists $params{trim_qual_left} ||
+        exists $params{trim_qual_right} ||
+        exists $params{trim_qual_type} ||
+        exists $params{trim_qual_rule} ||
+        exists $params{trim_qual_window} ||
+        exists $params{trim_qual_step} ||
+        exists $params{seq_case} ||
+        exists $params{dna_rna} ||
+        exists $params{exact_only} ||
+        exists $params{line_width} ||
+        exists $params{rm_header} ||
+        exists $params{seq_id} ||
+        exists $params{out_format} ||
+        exists $params{stats_info} ||
+        exists $params{stats_len} ||
+        exists $params{stats_dinuc} ||
+        exists $params{stats_tag} ||
+        exists $params{stats_dupl} ||
+        exists $params{stats_ns} ||
+        exists $params{stats_assembly} ||
+        exists $params{phred64} ||
+        exists $params{no_qual_header} ||
+        exists $params{graph_data} ||
+        exists $params{custom_params}
+        ) {
+    &printError('nothing to do with input data');
+}
+#prevent out of files for stats
+if(exists $params{stats_info} || exists $params{stats_len} || exists $params{stats_dinuc} || exists $params{stats_tag} || exists $params{stats_dupl} || exists $params{stats_ns} || exists $params{stats_assembly}) {
+    $params{out_good} = 'null';
+    $params{out_bad} = 'null';
+    $params{stats} = 1;
+} elsif(exists $params{out_good} && $params{out_good} eq 'null' && exists $params{out_bad} && $params{out_bad} eq 'null' && !exists $params{graph_data}) {
+    &printError('no output selected (both set to null)');
+}
+
+#check if FASTQ file is given for option phred64
+if(exists $params{phred64}) {
+    $command .= ' -phred64';
+    unless(exists $params{fastq}) {
+        &printError('option -phred64 can only be used for FASTQ input files');
+    }
+}
+
+#check if output format is possible
+if(exists $params{out_format}) {
+    $command .= ' -out_format '.$params{out_format};
+    if($params{out_format} =~ /\D/) {
+        &printError('output format option has to be an integer value');
+    } elsif($params{out_format} == 2 || $params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5) {
+        unless(exists $params{fastq} || exists $params{qual}) {
+            &printError('cannot use this output format option without providing quality data as input');
+        }
+        if(exists $params{fastq2} && ($params{out_format} == 2 || $params{out_format} == 4 || $params{out_format} == 5)) {
+            &printError('cannot use this output format option for paired-end input data. Only values 1 and 3 are allowed');
+        }
+    } elsif($params{out_format} != 1) {
+        &printError('output format option not available');
+    }
+} else {
+    if(exists $params{fastq}) {
+        $params{out_format} = 3;
+    } elsif(exists $params{fasta} && exists $params{qual}) {
+        $params{out_format} = 2;
+    } else {
+        $params{out_format} = 1;
+    }
+}
+if(exists $params{no_qual_header} && $params{out_format} != 3) {
+    &printError('the option -no_qual_header can only be used for FASTQ outputs');
+}
+
+#check if output names are different
+if(exists $params{out_good} && exists $params{out_bad} && $params{out_good} eq $params{out_bad} && $params{out_good} ne 'null' && $params{out_good} ne 'stdout') {
+    &printError('the output names for -out_good and -out_bad have to be different');
+}
+#check if output can be written to standard output
+if(($params{out_format} == 2 || $params{out_format} == 4 || $params{out_format} == 5) && ((exists $params{out_good} && $params{out_good} eq 'stdout') || (exists $params{out_bad} && $params{out_bad} eq 'stdout'))) {
+    &printError('the output cannot be written to STDOUT for multiple output files. This option can only be used for FASTA only (-out_format 1) or FASTQ output (-out_format 3)');
+}
+
+#check dereplication option
+#1 - exact dub, 2 - prefix, 3 - suffix, 4 - revcomp exact, 5 - revcomp prefix/suffix
+my $derep = 0;
+my %dereptypes;
+my $derepmin = 2;
+if(exists $params{derep}) {
+    $command .= ' -derep '.$params{derep};
+    if($params{derep} < 0 || $params{derep} > 54321) {
+        &printError('invalid option for dereplication');
+    } else {
+        my @tmp = split('',$params{derep});
+        foreach(@tmp) {
+            if($_ < 1 || $_ > 5) {
+                &printError('invalid option '.$_.'for dereplication');
+            } else {
+                $derep = 1;
+                $dereptypes{($_-1)} = 0;
+            }
+        }
+    }
+}
+if(!exists $dereptypes{0} && (exists $dereptypes{1} || exists $dereptypes{2})) {
+    $dereptypes{0} = 0;
+}
+if(!exists $dereptypes{3} && exists $dereptypes{4}) {
+    $dereptypes{3} = 0;
+}
+my $exactonly = 0;
+if(exists $params{exact_only}) {
+    $command .= ' -exact_only';
+    if(exists $dereptypes{1} || exists $dereptypes{2} || exists $dereptypes{4}) {
+        &printError('option -exact_only can only be used with -derep options 1 and/or 4');
+    }
+    if(!exists $params{graph_data}) {
+        &printError('option -exact_only requires option -graph_data');
+    }
+    if(!exists $params{derep}) {
+        $dereptypes{0} = 1;
+        $dereptypes{3} = 1;
+    }
+    $exactonly = 1;
+} elsif((exists $dereptypes{0} || exists $dereptypes{3}) && !exists $dereptypes{1} && !exists $dereptypes{2} && !exists $dereptypes{4}) {
+    $command .= ' -exact_only';
+    $exactonly = 1;
+    $params{exact_only} = 1;
+}
+if(exists $params{derep_min}) {
+    $command .= ' -derep_min '.$params{derep_min};
+    if($params{derep_min} < 2) {
+        &printError('invalid option '.$params{derep_min}.'for derep_min. The values has to be greater than 1');
+    } elsif(exists $dereptypes{1} || exists $dereptypes{2} || exists $dereptypes{4}) {
+        &printError('option -derep_min can only be used with -derep options 1 and/or 4');
+    } else {
+        $derepmin = $params{derep_min};
+    }
+}
+
+#check for low complexity method
+my $complval;
+if(exists $params{lc_method}) {
+    $command .= ' -lc_method '.$params{lc_method};
+    unless($params{lc_method} eq 'dust' || $params{lc_method} eq 'entropy') {
+        &printError('invalid low complexity method');
+    }
+    unless(exists $params{lc_threshold}) {
+        &printError('the low complexity method requires a threshold value specified by -lc_threshold');
+    }
+    $command .= ' -lc_threshold '.$params{lc_threshold};
+    $complval = $params{lc_threshold};
+}
+if(exists $params{lc_threshold} && !exists $params{lc_method}) {
+    &printError('the low complexity threshold requires a method specified by -lc_method');
+}
+
+#check for quality trimming
+my $trimscore;
+if(exists $params{trim_qual_left} || exists $params{trim_qual_right}) {
+    $command .= ' -trim_qual_right '.$params{trim_qual_right} if(exists $params{trim_qual_right});
+    $command .= ' -trim_qual_left '.$params{trim_qual_left} if(exists $params{trim_qual_left});
+    if(exists $params{trim_qual_type}) {
+        unless($params{trim_qual_type} eq 'min' || $params{trim_qual_type} eq 'mean' || $params{trim_qual_type} eq 'max' || $params{trim_qual_type} eq 'sum') {
+            &printError('invalid value for trim_qual_type');
+        }
+    } else {
+        $params{trim_qual_type} = $TRIM_QUAL_TYPE;
+    }
+    $command .= ' -trim_qual_type '.$params{trim_qual_type};
+    if(exists $params{trim_qual_rule}) {
+        unless($params{trim_qual_rule} eq 'lt' || $params{trim_qual_rule} eq 'gt' || $params{trim_qual_rule} eq 'et') {
+            &printError('invalid value for trim_qual_rule');
+        }
+    } else {
+        $params{trim_qual_rule} = $TRIM_QUAL_RULE;
+    }
+    $command .= ' -trim_qual_rule '.$params{trim_qual_rule};
+    unless(exists $params{trim_qual_window}) {
+        $params{trim_qual_window} = $TRIM_QUAL_WINDOW;
+    }
+    $command .= ' -trim_qual_window '.$params{trim_qual_window};
+    unless(exists $params{trim_qual_step}) {
+        $params{trim_qual_step} = $TRIM_QUAL_STEP;
+    }
+    $command .= ' -trim_qual_step '.$params{trim_qual_step};
+    $trimscore = 1;
+}
+
+#check sequence case
+if(exists $params{seq_case}) {
+    $command .= ' -seq_case '.$params{seq_case};
+    unless($params{seq_case} eq 'upper' || $params{seq_case} eq 'lower') {
+        &printError('invalid sequence case option');
+    }
+}
+
+#check for dna/rna
+if(exists $params{dna_rna}) {
+    $command .= ' -dna_rna '.$params{dna_rna};
+    unless($params{dna_rna} eq 'dna' || $params{dna_rna} eq 'rna') {
+        &printError('invalid option for -dna_rna');
+    }
+    if($aa) {
+        &printError('option -dna_rna cannot be used with option -aa');
+    }
+}
+
+#set remaining parameters
+my $linelen;
+if($params{out_format} == 3) {
+    $linelen = 0;
+} elsif(exists $params{line_width}) {
+    $linelen = $params{line_width};
+    $command .= ' -line_width '.$params{line_width};
+} else {
+    $linelen = $LINE_WIDTH;
+}
+
+if(exists $params{seq_id}) {
+    $command .= ' -seq_id '.$params{seq_id};
+    #remove spaces, ">" and quotes from sequence ids
+    $params{seq_id} =~ s/[\s\>\"\'\`]//g;
+} elsif(exists $params{seq_id_mappings}) {
+    &printError('option -seq_id_mappings requires option -seq_id');
+}
+if(exists $params{seq_id_mappings}) {
+    $command .= ' -seq_id_mappings'.($params{seq_id_mappings} ? ' '.$params{seq_id_mappings} : '');
+}
+
+my ($repAleft,$repTleft,$repAright,$repTright,$repNleft,$repNright);
+if(exists $params{trim_tail_left}) {
+    $command .= ' -trim_tail_left '.$params{trim_tail_left};
+    $repAleft = 'A'x$params{trim_tail_left};
+    $repAleft = qr/^$repAleft/;
+    $repTleft = 'T'x$params{trim_tail_left};
+    $repTleft = qr/^$repTleft/;
+}
+if(exists $params{trim_tail_right}) {
+    $command .= ' -trim_tail_right '.$params{trim_tail_right};
+    $repAright = 'A'x$params{trim_tail_right};
+    $repAright = qr/$repAright$/;
+    $repTright = 'T'x$params{trim_tail_right};
+    $repTright = qr/$repTright$/;
+}
+if(exists $params{trim_ns_left}) {
+    $command .= ' -trim_ns_left '.$params{trim_ns_left};
+    $repNleft = 'N'x$params{trim_ns_left};
+    $repNleft = qr/^$repNleft/;
+}
+if(exists $params{trim_ns_right}) {
+    $command .= ' -trim_ns_right '.$params{trim_ns_right};
+    $repNright = 'N'x$params{trim_ns_right};
+    $repNright = qr/$repNright$/;
+}
+
+#graph data file
+if(exists $params{graph_data}) {
+    if(exists $params{stats}) {
+        &printError("The graph data cannot be generated at the same time as the statistics");
+    }
+    $command .= ' -graph_data'.($params{graph_data} ? ' '.$params{graph_data} : '');
+    unless($params{graph_data}) {
+        $params{graph_data} = join("__",$file1||'nonamegiven').'.gd';
+    }
+    $params{graph_data} = cwd().'/'.$params{graph_data} unless($params{graph_data} =~ /^\//);
+}
+my $scale = 1;
+if(exists $params{qual_noscale}) {
+    $command .= ' -qual_noscale';
+    $scale = 0;
+}
+#graph data selection
+if(exists $params{graph_stats} && !exists $params{graph_data}) {
+    &printError('option -graph_stats requires option -graph_data');
+}
+my %webstats = %GRAPH_OPTIONS;
+my %graphstats = %GRAPH_OPTIONS;
+if(exists $params{graph_stats}) {
+    $command .= ' -graph_stats'.($params{graph_stats} ? ' '.$params{graph_stats} : '');
+    if($params{graph_stats}) {
+        #set all zeroto reset default selection
+        foreach my $s (keys %graphstats) {
+            $graphstats{$s} = 0;
+            $webstats{$s} = 0;
+        }
+        my @tmp = split(',',$params{graph_stats});
+        foreach my $s (@tmp) {
+            if(exists $graphstats{$s}) {
+                $graphstats{$s} = 1;
+            } else {
+                &printError('unknown option "'.$s.'" for -graph_stats');
+            }
+        }
+    } else {
+        &printError('please specify at least one option for -graph_stats');
+    }
+}
+if(exists $params{graph_stats} && exists $params{web}) {
+    &printError('option -graph_stats cannot be used in combination with -web');
+}
+#web output
+my $webnoprocess = 0;
+if(exists $params{web}) {
+    $command .= ' -web'.($params{web} ? ' '.$params{web} : '');
+    if($params{web}) {
+        unless($params{web} eq 'process') {
+            $webnoprocess = 1;
+            foreach my $s (keys %webstats) {
+                $webstats{$s} = 0;
+                $graphstats{$s} = 0;
+            }
+            my @tmp = split(',',$params{web});
+            foreach my $s (@tmp) {
+                $webstats{$s} = 1;
+            }
+        }
+    }
+}
+if(exists $params{graph_stats} && $graphstats{da}) {
+    if($exactonly) {
+        &printError('"-exact_only" and "-graph_stats da" cannot be specified at the same time');
+    } else {
+        $graphstats{de} = 0;
+    }
+}
+#do not calculate all duplicates for paired-end data (at least for now)
+if($file2) {
+    if(exists $webstats{da}) {
+        $webstats{da} = 0;
+    }
+    if(exists $graphstats{da}) {
+        $graphstats{da} = 0;
+    }
+}
+if($webstats{da}) {
+    $webstats{de} = 0;
+}
+if($graphstats{da}) {
+    $graphstats{de} = 0;
+}
+if((exists $params{graph_data} && $graphstats{de}) || (exists $params{web} && $webstats{de})) {
+    $exactonly = 1;
+}
+
+#custom params
+my @cps = ();
+if(exists $params{custom_params}) {
+    $command .= ' -custom_params "'.$params{custom_params}.'"';
+    my ($repeats,@tmp,$bases);
+    foreach my $rule (split(/\s*\;\s*/,$params{custom_params})) {
+	$repeats = 1;
+	@tmp = split(/\s+/,$rule);
+	next unless(scalar(@tmp) == 2);
+	$bases = ($tmp[0] =~ tr/ACGTN//);
+	next if($bases < length($tmp[0]));
+	if(index($tmp[1],'%') != -1) {
+	    $tmp[1] =~ s/\%//g;
+	    $repeats = 0;
+	}
+	next unless($tmp[1] =~ m/^\d+$/o);
+	push(@cps,[$repeats,$tmp[0],$tmp[1]]);
+    }
+}
+
+#add remaining to log command
+if(exists $params{log} || exists $params{graph_data}) {
+    if(exists $params{log}) {
+        $command .= ' -log'.($params{log} ? ' '.$params{log} : '');
+    }
+    if(exists $params{min_len}) {
+        $command .= ' -min_len '.$params{min_len};
+    }
+    if(exists $params{max_len}) {
+        $command .= ' -max_len '.$params{max_len};
+    }
+    if(exists $params{range_len}) {
+        $command .= ' -range_len '.$params{range_len};
+    }
+    if(exists $params{min_gc}) {
+        $command .= ' -min_gc '.$params{min_gc};
+    }
+    if(exists $params{max_gc}) {
+        $command .= ' -max_gc '.$params{max_gc};
+    }
+    if(exists $params{range_gc}) {
+        $command .= ' -range_gc '.$params{range_gc};
+    }
+    if(exists $params{min_qual_score}) {
+        $command .= ' -min_qual_score '.$params{min_qual_score};
+    }
+    if(exists $params{max_qual_score}) {
+        $command .= ' -max_qual_score '.$params{max_qual_score};
+    }
+    if(exists $params{min_qual_mean}) {
+        $command .= ' -min_qual_mean '.$params{min_qual_mean};
+    }
+    if(exists $params{max_qual_mean}) {
+        $command .= ' -max_qual_mean '.$params{max_qual_mean};
+    }
+    if(exists $params{ns_max_p}) {
+        $command .= ' -ns_max_p '.$params{ns_max_p};
+    }
+    if(exists $params{ns_max_n}) {
+        $command .= ' -ns_max_n '.$params{ns_max_n};
+    }
+    if(exists $params{noniupac}) {
+        $command .= ' -noniupac';
+    }
+    if(exists $params{seq_num}) {
+        $command .= ' -seq_num '.$params{seq_num};
+    }
+    if(exists $params{trim_to_len}) {
+        $command .= ' -trim_to_len '.$params{trim_to_len};
+    }
+    if(exists $params{trim_left}) {
+        $command .= ' -trim_left '.$params{trim_left};
+    }
+    if(exists $params{trim_right}) {
+        $command .= ' -trim_right '.$params{trim_right};
+    }
+    if(exists $params{trim_left_p}) {
+        $command .= ' -trim_left_p '.$params{trim_left_p};
+    }
+    if(exists $params{trim_right_p}) {
+        $command .= ' -trim_right_p '.$params{trim_right_p};
+    }
+    if(exists $params{rm_header}) {
+        $command .= ' -rm_header';
+    }
+    if(exists $params{stats_len}) {
+        $command .= ' -stats_len';
+    }
+    if(exists $params{stats_dinuc}) {
+        $command .= ' -stats_dinuc';
+    }
+    if(exists $params{stats_info}) {
+        $command .= ' -stats_info';
+    }
+    if(exists $params{stats_tag}) {
+        $command .= ' -stats_tag';
+    }
+    if(exists $params{stats_dupl}) {
+        $command .= ' -stats_dupl';
+    }
+    if(exists $params{stats_ns}) {
+        $command .= ' -stats_ns';
+    }
+    if(exists $params{stats_assembly}) {
+        $command .= ' -stats_assembly';
+    }
+    if(exists $params{verbose}) {
+        $command .= ' -verbose';
+    }
+    if(exists $params{out_good}) {
+        $command .= ' -out_good '.$params{out_good};
+    }
+    if(exists $params{out_bad}) {
+        $command .= ' -out_bad '.$params{out_bad};
+    }
+    if(exists $params{no_qual_header}) {
+        $command .= ' -no_qual_header';
+    }
+
+    if(exists $params{log}) {
+        unless($params{log}) {
+            $params{log} = join("__",$file1||'nonamegiven').'.log';
+        }
+        $params{log} = cwd().'/'.$params{log} unless($params{log} =~ /^\//);
+        if(exists $params{web}) {
+            &printLog("Executing PRINSEQ using params file");
+        } else {
+            &printLog("Executing PRINSEQ with command: \"perl prinseq-".$WHAT.".pl".$command."\"");
+        }
+    }
+}
+
+#
+################################################################################
+## DATA PROCESSING
+################################################################################
+#
+
+#order of processing:
+#seq_num, trim_left, trim_right, trim_left_p, trim_right_p, trim_qual_left, trim_qual_right, trim_tail_left, trim_tail_right, trim_ns_left, trim_ns_right, trim_to_len, min_len, max_len, range_len, min_qual_score, max_qual_score, min_qual_mean, max_qual_mean, min_gc, max_gc, range_gc, ns_max_p, ns_max_n, noniupac, lc_method, derep, seq_id, seq_case, dna_rna, out_format
+
+my $filename = $file1;
+while($filename =~ /[\w\d]+\.[\w\d]+$/) {
+    $filename =~ s/\.[\w\d]+$//;
+    last if($filename =~ /\/[^\.]+$/);
+}
+my $filename2;
+if($file2) {
+    $filename2 = $file2;
+    while($filename2 =~ /[\w\d]+\.[\w\d]+$/) {
+        $filename2 =~ s/\.[\w\d]+$//;
+        last if($filename2 =~ /\/[^\.]+$/);
+    }
+}
+
+#create filehandles for the output data
+my ($fhgood,$fhgood2,$fhgood3,$fh2good,$fh2good2,$fhbad,$fhbad2,$fhbad3,$fh2bad,$fhmappings);
+my ($filenamegood,$filenamegood2,$filenamegood3,$filename2good,$filename2good2,$filenamebad,$filenamebad2,$filenamebad3,$filename2bad,$filenamemappings);
+my ($nogood,$nobad,$stdoutgood,$stdoutbad,$mappings);
+$nogood = $nobad = $stdoutgood = $stdoutbad = $mappings = 0;
+if(exists $params{out_good}) {
+    if($params{out_good} eq 'null') {
+        $nogood = 1;
+    } elsif($params{out_good} eq 'stdout') {
+        $stdoutgood = 1;
+    } else {
+        if($filename2) {
+            #first input file outputs
+            open($fhgood,">".$params{out_good}.'_1.fast'.($params{out_format} == 3 ? 'q' : 'a')) or &printError('cannot open output file');
+            $filenamegood = $params{out_good}.'_1.fast'.($params{out_format} == 3 ? 'q' : 'a');
+            open($fhgood2,">".$params{out_good}.'_1_singletons.fast'.($params{out_format} == 3 ? 'q' : 'a')) or &printError('cannot open output file');
+            $filenamegood2 = $params{out_good}.'_1_singletons.fast'.($params{out_format} == 3 ? 'q' : 'a');
+            #second input file outputs
+            open($fh2good,">".$params{out_good}.'_2.fast'.($params{out_format} == 3 ? 'q' : 'a')) or &printError('cannot open output file');
+            $filename2good = $params{out_good}.'_2.fast'.($params{out_format} == 3 ? 'q' : 'a');
+            open($fh2good2,">".$params{out_good}.'_2_singletons.fast'.($params{out_format} == 3 ? 'q' : 'a')) or &printError('cannot open output file');
+            $filename2good2 = $params{out_good}.'_2_singletons.fast'.($params{out_format} == 3 ? 'q' : 'a');
+        } else {
+            open($fhgood,">".$params{out_good}.'.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a')) or &printError('cannot open output file');
+            $filenamegood = $params{out_good}.'.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a');
+        }
+    }
+} else {
+    if($filename2) {
+        $fhgood = File::Temp->new( TEMPLATE => $filename.'_prinseq_good_XXXX',
+                                   SUFFIX => '.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a'),
+                                   UNLINK => 0);
+        $filenamegood = $fhgood->filename;
+        $fhgood2 = File::Temp->new( TEMPLATE => $filename.'_prinseq_good_singletons_XXXX',
+                                    SUFFIX => '.fast'.($params{out_format} == 3 ? 'q' : 'a'),
+                                    UNLINK => 0);
+        $filenamegood2 = $fhgood2->filename;
+        $fh2good = File::Temp->new( TEMPLATE => $filename2.'_prinseq_good_XXXX',
+                                   SUFFIX => '.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a'),
+                                   UNLINK => 0);
+        $filename2good = $fh2good->filename;
+        $fh2good2 = File::Temp->new( TEMPLATE => $filename2.'_prinseq_good_singletons_XXXX',
+                                    SUFFIX => '.fast'.($params{out_format} == 3 ? 'q' : 'a'),
+                                    UNLINK => 0);
+        $filename2good2 = $fh2good2->filename;
+    } else {
+        $fhgood = File::Temp->new( TEMPLATE => $filename.'_prinseq_good_XXXX',
+                                   SUFFIX => '.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a'),
+                                   UNLINK => 0);
+        $filenamegood = $fhgood->filename;
+    }
+}
+if(exists $params{out_bad}) {
+    if($params{out_bad} eq 'null') {
+        $nobad = 1;
+    } elsif($params{out_bad} eq 'stdout') {
+        $stdoutbad = 1;
+    } else {
+        if($filename2) {
+            open($fhbad,">".$params{out_bad}.'_1.fast'.($params{out_format} == 3 ? 'q' : 'a')) or &printError('cannot open output file');
+            $filenamebad = $params{out_bad}.'_1.fast'.($params{out_format} == 3 ? 'q' : 'a');
+            open($fh2bad,">".$params{out_bad}.'_2.fast'.($params{out_format} == 3 ? 'q' : 'a')) or &printError('cannot open output file');
+            $filename2bad = $params{out_bad}.'_2.fast'.($params{out_format} == 3 ? 'q' : 'a');
+        } else {
+            open($fhbad,">".$params{out_bad}.'.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a')) or &printError('cannot open output file');
+            $filenamebad = $params{out_bad}.'.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a');
+        }
+    }
+} else {
+    $fhbad = File::Temp->new( TEMPLATE => $filename.'_prinseq_bad_XXXX',
+                              SUFFIX => '.fast'.(($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5 ) ? 'q' : 'a'),
+                              UNLINK => 0);
+    $filenamebad = $fhbad->filename;
+    if($filename2) {
+        $fh2bad = File::Temp->new( TEMPLATE => $filename2.'_prinseq_bad_XXXX',
+                                   SUFFIX => '.fast'.($params{out_format} ? 'q' : 'a'),
+                                   UNLINK => 0);
+        $filename2bad = $fh2bad->filename;
+    }
+}
+if($params{out_format} == 2 || $params{out_format} == 5) {
+    if(exists $params{out_good}) {
+        unless($nogood) {
+            open($fhgood2,">".$params{out_good}.'.qual') or &printError('cannot open output file');
+            $filenamegood2 = $params{out_good}.'.qual';
+        }
+    } else {
+        $fhgood2 = File::Temp->new( TEMPLATE => $filename.'_prinseq_good_XXXX',
+                                    SUFFIX => '.qual',
+                                    UNLINK => 0);
+        $filenamegood2 = $fhgood2->filename;
+    }
+    if(exists $params{out_bad}) {
+        unless($nobad) {
+            open($fhbad2,">".$params{out_bad}.'.qual') or &printError('cannot open output file');
+            $filenamebad2 = $params{out_bad}.'.qual';
+        }
+    } else {
+        $fhbad2 = File::Temp->new( TEMPLATE => $filename.'_prinseq_bad_XXXX',
+                                   SUFFIX => '.qual',
+                                   UNLINK => 0);
+        $filenamebad2 = $fhbad2->filename;
+    }
+}
+if($params{out_format} == 4 || $params{out_format} == 5) {
+    if(exists $params{out_good}) {
+        unless($nogood) {
+            open($fhgood3,">".$params{out_good}.'.fasta') or &printError('cannot open output file');
+            $filenamegood3 = $params{out_good}.'.fasta';
+        }
+    } else {
+        $fhgood3 = File::Temp->new( TEMPLATE => $filename.'_prinseq_good_XXXX',
+                                    SUFFIX => '.fasta',
+                                    UNLINK => 0);
+        $filenamegood3 = $fhgood3->filename;
+    }
+    if(exists $params{out_bad}) {
+        unless($nobad) {
+            open($fhbad3,">".$params{out_bad}.'.fasta') or &printError('cannot open output file');
+            $filenamebad3 = $params{out_bad}.'.fasta';
+        }
+    } else {
+        $fhbad3 = File::Temp->new( TEMPLATE => $filename.'_prinseq_bad_XXXX',
+                                   SUFFIX => '.fasta',
+                                   UNLINK => 0);
+        $filenamebad3 = $fhbad3->filename;
+    }
+}
+if(exists $params{seq_id_mappings}) {
+    $mappings = 1;
+    if($params{seq_id_mappings}) {
+        open($fhmappings,">".$params{seq_id_mappings}) or &printError('cannot open output file');
+        $filenamemappings = $params{seq_id_mappings};
+    } else {
+        open($fhmappings,">".$filename.'_prinseq_good.ids') or &printError('cannot open output file');
+        $filenamemappings = $filename.'_prinseq_good.ids';
+    }
+}
+
+my $numlines = 0;
+$webnoprocess = 1 if(!$webnoprocess && exists $params{graph_data} && !exists $params{web} && $nogood && $nobad);
+my ($progress,$counter,$part);
+$progress = 0;
+$counter = $part = 1;
+if(exists $params{verbose}) {
+    print STDERR "Estimate size of input data for status report (this might take a while for large files)\n";
+    $numlines = ($file1 eq 'stdin' ? 1 : &getLineNumber($file1));
+    $numlines += &getLineNumber($file2) if($file2);
+    print STDERR "\tdone\n";
+}
+if(exists $params{web}) {
+    &printWeb("STATUS: Estimate size of input data for status report (this might take a while for large files)");
+    $numlines = &getLineNumber($file1) unless($numlines);
+    $numlines += &getLineNumber($file2) if($file2)
+}
+#for progress bar
+if($numlines) {
+    $part = int($numlines/100);
+}
+
+#parse input data
+print STDERR "Parse and process input data\n" if(exists $params{verbose});
+print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+if(exists $params{web}) {
+    &printWeb("STATUS: Parsing and processing input data");
+    &printWeb("STATUS: process-status $progress");
+    &printLog("Parsing and processing input data");
+} else {
+    &printLog("Parsing and processing input data: \"".$file1."\"".(exists $params{qual} ? " and \"".$params{qual}."\"" : "").($file2 ? " and \"".$file2."\"" : ""));
+}
+my $numseqs = 0;
+my $numseqs2 = 0;
+my $pairs = 0;
+my $goodcount = 0;
+my $badcount = 0;
+my $badcount2 = 0;
+my ($tsvfile,$seqid,$header,$seq,$qual,$count,$numbases,$numbases2,$length,$seqgd);
+$count = 0;
+$qual = '';
+$seq = '';
+#stats data
+my (%stats,%kmers,%odds,%counts,%graphdata,%kmers2,%counts2,%graphdata2,$md5,$md5r,%md5s,%md5sg,$ucseq,$maxlength);
+$maxlength = 0;
+#parse data
+my $seqcount = 0;
+my $seqcount1 = 0; #singleton file 1
+my $seqcount2 = 0; #singleton file 2
+my $seqbases = 0;
+my $seqbases1 = 0; #singleton file 1
+my $seqbases2 = 0; #singleton file 2
+my $badbases = 0;
+my $badbases2 = 0;
+my (@seqs,@seqsP,@printtmp,$line); #seqs for stats and graph data, seqsP for preprocessing sequences - all used for duplicate checking/removal
+
+if($file2) {
+    open(FILE,"perl -pe 's/\r\n|\r/\n/g' < $file1 |") or &printError("Could not open file $file1: $!");
+    open(FILE2,"perl -pe 's/\r\n|\r/\n/g' < $file2 |") or &printError("Could not open file $file2: $!");
+} else {
+    if($file1 eq 'stdin') {
+        *FILE = *STDIN;
+    } else {
+        open(FILE,"perl -pe 's/\r\n|\r/\n/g' < $file1 |") or &printError("Could not open file $file1: $!");
+    }
+    if(exists $params{qual}) {
+        if($params{qual} eq 'stdin') {
+            &printError('QUAL data cannot be read from STDIN');
+        } else {
+            open(FILE2,"perl -pe 's/\r\n|\r/\n/g' < ".$params{qual}." |") or &printError("Could not open file ".$params{qual}.": $!");
+        }
+    }
+}
+
+my $exists_stats = (exists $params{stats} ? 1 : 0);
+my $exists_graphdata = (exists $params{graph_data} ? 1 : 0);
+
+if($file2) {
+    my ($seqid2,$seq2,$header2,$qual2,$length2,%tmpids,@tmpdata1,@tmpdata2,$tmpindex,$tmpentry,$skip1,$skip2,$tmpid,$tmpid2);
+    $skip1 = $skip2 = 0;
+    if(exists $params{fastq}) {
+        while(1) {
+            ($seq,$seqid,$qual,$header,$tmpid)      = &readEntryFastq(*FILE,$skip1--,$trimnum1);
+            ($seq2,$seqid2,$qual2,$header2,$tmpid2) = &readEntryFastq(*FILE2,$skip2--,$trimnum2);
+            last unless($seq || $seq2);
+            #check if both have same id; if not, store in tmpdata
+            if(defined $tmpid && defined $tmpid2 && $tmpid eq $tmpid2) { #same ids
+                &processEntryPairedEnd(length($seq),$seq,$seqid,$header,$qual,length($seq2),$seq2,$seqid2,$header2,$qual2);
+                if(keys %tmpids) { #empty tmpdata
+                    %tmpids = ();
+                    while(@tmpdata1) {
+                        &processEntryPairedEnd(@{(shift(@tmpdata1))}[0..4]);
+                    }
+                    while(@tmpdata2) {
+                        &processEntryPairedEnd(undef,undef,undef,undef,undef,@{(shift(@tmpdata2))}[0..4]);
+                    }
+                }
+                $skip1 = $skip2 = 0;
+            } elsif(defined $tmpid && exists $tmpids{$tmpid}) {
+                while(@tmpdata1) {
+                    $tmpentry = shift(@tmpdata1);
+                    &processEntryPairedEnd(@$tmpentry[0..4]);
+                    delete($tmpids{$tmpentry->[5]});
+                }
+                $tmpindex = $tmpids{$tmpid};
+                while($tmpindex-- > 0) {
+                    $tmpentry = shift(@tmpdata2);
+                    &processEntryPairedEnd(undef,undef,undef,undef,undef,@$tmpentry[0..4]);
+                    delete($tmpids{$tmpentry->[5]});
+                }
+                #correct indices
+                $tmpindex = $tmpids{$tmpid}+1;
+                foreach my $k (keys %tmpids) {
+                    $tmpids{$k} -= $tmpindex;
+                }
+                &processEntryPairedEnd(length($seq),$seq,$seqid,$header,$qual,@{(shift(@tmpdata2))}[0..4]);
+                delete($tmpids{$tmpid});
+                if(defined $seqid2) {
+                    $tmpids{$tmpid2} = scalar(@tmpdata2);
+                    push(@tmpdata2,[length($seq2),$seq2,$seqid2,$header2,$qual2,$tmpid2]);
+                }
+                #equal out tmpdata1 and tmpdata2
+                unless(scalar(@tmpdata1) == scalar(@tmpdata2)) {
+                    $skip1 = 0;
+                    $skip2 = scalar(@tmpdata2);
+                }
+            } elsif(defined $seqid2 && exists $tmpids{$tmpid2}) {
+                while(@tmpdata2) {
+                    $tmpentry = shift(@tmpdata2);
+                    &processEntryPairedEnd(undef,undef,undef,undef,undef,@$tmpentry[0..4]);
+                    delete($tmpids{$tmpentry->[5]});
+                }
+                $tmpindex = $tmpids{$tmpid2};
+                while($tmpindex-- > 0) {
+                    $tmpentry = shift(@tmpdata1);
+                    &processEntryPairedEnd(@$tmpentry[0..4]);
+                    delete($tmpids{$tmpentry->[5]});
+                }
+                #correct indices
+                $tmpindex = $tmpids{$tmpid2}+1;
+                foreach my $k (keys %tmpids) {
+                    $tmpids{$k} -= $tmpindex;
+                }
+                &processEntryPairedEnd(@{(shift(@tmpdata1))}[0..4],length($seq2),$seq2,$seqid2,$header2,$qual2);
+                delete($tmpids{$tmpid2});
+                if(defined $seqid) {
+                    $tmpids{$tmpid} = scalar(@tmpdata1);
+                    push(@tmpdata1,[length($seq),$seq,$seqid,$header,$qual,$tmpid]);
+                }
+                #equal out tmpdata1 and tmpdata2
+                unless(scalar(@tmpdata1) == scalar(@tmpdata2)) {
+                    $skip1 = scalar(@tmpdata1);
+                    $skip2 = 0;
+                }
+            } else { #store in tmpdata
+                if(defined $seqid) {
+                    $tmpids{$tmpid} = scalar(@tmpdata1);
+                    push(@tmpdata1,[length($seq),$seq,$seqid,$header,$qual,$tmpid]);
+                }
+                if(defined $seqid2) {
+                    $tmpids{$tmpid2} = scalar(@tmpdata2);
+                    push(@tmpdata2,[length($seq2),$seq2,$seqid2,$header2,$qual2,$tmpid2]);
+                }
+            }
+            #progress bar stuff
+            if($counter > $part) {
+                $counter = 1;
+                $progress++;
+                $progress = 99 if($progress > 99);
+                print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+                &printWeb("STATUS: process-status $progress");
+            }
+        }
+        #process remaining in tmpdata
+        while(@tmpdata1) {
+            $tmpentry = shift(@tmpdata1);
+            &processEntryPairedEnd(@$tmpentry[0..4]);
+            delete($tmpids{$tmpentry->[5]});
+        }
+        while(@tmpdata2) {
+            $tmpentry = shift(@tmpdata2);
+            &processEntryPairedEnd(undef,undef,undef,undef,undef,@$tmpentry[0..4]);
+            delete($tmpids{$tmpentry->[5]});
+        }
+    } else { #format is FASTA
+        my ($nextid,$nextheader,$nextid2,$nextheader2);
+        while(1) {
+            ($seq,$seqid,$header,$tmpid,$nextid,$nextheader)        = &readEntryFasta(*FILE,$skip1--,$trimnum1,$nextid,$nextheader);
+            ($seq2,$seqid2,$header2,$tmpid2,$nextid2,$nextheader2)  = &readEntryFasta(*FILE2,$skip2--,$trimnum2,$nextid2,$nextheader2);
+            last unless($seq || $seq2);
+            #check if both have same id; if not, store in tmpdata
+            if(defined $tmpid && defined $tmpid2 && $tmpid eq $tmpid2) { #same ids
+                &processEntryPairedEnd(length($seq),$seq,$seqid,$header,undef,length($seq2),$seq2,$seqid2,$header2,undef);
+                if(keys %tmpids) { #empty tmpdata
+                    %tmpids = ();
+                    while(@tmpdata1) {
+                        &processEntryPairedEnd(@{(shift(@tmpdata1))}[0..3]);
+                    }
+                    while(@tmpdata2) {
+                        &processEntryPairedEnd(undef,undef,undef,undef,undef,@{(shift(@tmpdata2))}[0..3]);
+                    }
+                }
+                $skip1 = $skip2 = 0;
+            } elsif(defined $tmpid && exists $tmpids{$tmpid}) {
+                while(@tmpdata1) {
+                    $tmpentry = shift(@tmpdata1);
+                    &processEntryPairedEnd(@$tmpentry[0..3]);
+                    delete($tmpids{$tmpentry->[4]});
+                }
+                $tmpindex = $tmpids{$tmpid};
+                while($tmpindex-- > 0) {
+                    $tmpentry = shift(@tmpdata2);
+                    &processEntryPairedEnd(undef,undef,undef,undef,undef,@$tmpentry[0..3]);
+                    delete($tmpids{$tmpentry->[4]});
+                }
+                #correct indices
+                $tmpindex = $tmpids{$tmpid}+1;
+                foreach my $k (keys %tmpids) {
+                    $tmpids{$k} -= $tmpindex;
+                }
+                &processEntryPairedEnd(length($seq),$seq,$seqid,$header,undef,@{(shift(@tmpdata2))}[0..3]);
+                delete($tmpids{$tmpid});
+                if(defined $seqid2) {
+                    $tmpids{$tmpid2} = scalar(@tmpdata2);
+                    push(@tmpdata2,[length($seq2),$seq2,$seqid2,$header2,$tmpid2]);
+                }
+                #equal out tmpdata1 and tmpdata2
+                unless(scalar(@tmpdata1) == scalar(@tmpdata2)) {
+                    $skip1 = 0;
+                    $skip2 = scalar(@tmpdata2);
+                }
+            } elsif(defined $seqid2 && exists $tmpids{$tmpid2}) {
+                while(@tmpdata2) {
+                    $tmpentry = shift(@tmpdata2);
+                    &processEntryPairedEnd(undef,undef,undef,undef,undef,@$tmpentry[0..3]);
+                    delete($tmpids{$tmpentry->[4]});
+                }
+                $tmpindex = $tmpids{$tmpid2};
+                while($tmpindex-- > 0) {
+                    $tmpentry = shift(@tmpdata1);
+                    &processEntryPairedEnd(@$tmpentry[0..3]);
+                    delete($tmpids{$tmpentry->[4]});
+                }
+                #correct indices
+                $tmpindex = $tmpids{$tmpid2}+1;
+                foreach my $k (keys %tmpids) {
+                    $tmpids{$k} -= $tmpindex;
+                }
+                &processEntryPairedEnd(@{(shift(@tmpdata1))}[0..3],undef,length($seq2),$seq2,$seqid2,$header2);
+                delete($tmpids{$tmpid2});
+                if(defined $seqid) {
+                    $tmpids{$tmpid} = scalar(@tmpdata1);
+                    push(@tmpdata1,[$length,$seq,$seqid,$header,$tmpid]);
+                }
+                #equal out tmpdata1 and tmpdata2
+                unless(scalar(@tmpdata1) == scalar(@tmpdata2)) {
+                    $skip1 = scalar(@tmpdata1);
+                    $skip2 = 0;
+                }
+            } else { #store in tmpdata
+                if(defined $seqid) {
+                    $tmpids{$tmpid} = scalar(@tmpdata1);
+                    push(@tmpdata1,[$length,$seq,$seqid,$header,$tmpid]);
+                }
+                if(defined $seqid2) {
+                    $tmpids{$tmpid2} = scalar(@tmpdata2);
+                    push(@tmpdata2,[length($seq2),$seq2,$seqid2,$header2,$tmpid2]);
+                }
+            }
+            #progress bar stuff
+            if($counter > $part) {
+                $counter = 1;
+                $progress++;
+                $progress = 99 if($progress > 99);
+                print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+                &printWeb("STATUS: process-status $progress");
+            }
+        }
+        #process remaining in tmpdata
+        while(@tmpdata1) {
+            $tmpentry = shift(@tmpdata1);
+            &processEntryPairedEnd(@$tmpentry[0..3]);
+            delete($tmpids{$tmpentry->[4]});
+        }
+        while(@tmpdata2) {
+            $tmpentry = shift(@tmpdata2);
+            &processEntryPairedEnd(undef,undef,undef,undef,undef,@$tmpentry[0..3]);
+            delete($tmpids{$tmpentry->[4]});
+        }
+    }
+} else {
+    if(exists $params{fastq}) {
+        foreach(@dataread) { #only used for stdin inputs
+            chomp();
+            if($count == 0 && /^\@(\S+)\s*(.*)$/o) {
+                $length = length($seq);
+                if($length) {
+                    &processEntry($length,$seq,$seqid,$qual,$header);
+                }
+                $seqid = $1;
+                $header = $2 || '';
+                $seq = '';
+                $qual = '';
+            } elsif($count == 1) {
+                $seq = $_;
+            } elsif($count == 3) {
+                $qual = $_;
+                $count = -1;
+            }
+            $count++;
+        }
+        while(<FILE>) {
+            chomp();
+            if($count == 0 && /^\@(\S+)\s*(.*)$/o) {
+                $length = length($seq);
+                if($length) {
+                    &processEntry($length,$seq,$seqid,$qual,$header);
+                }
+                $seqid = $1;
+                $header = $2 || '';
+                $seq = '';
+                $qual = '';
+            } elsif($count == 1) {
+                $seq = $_;
+            } elsif($count == 3) {
+                $qual = $_;
+                $count = -1;
+            }
+            $count++;
+            #progress bar stuff
+            $counter++;
+            if($counter > $part) {
+                $counter = 1;
+                $progress++;
+                $progress = 99 if($progress > 99);
+                print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+                &printWeb("STATUS: process-status $progress");
+            }
+        }
+        #add last one
+        $length = length($seq);
+        if($length) {
+            &processEntry($length,$seq,$seqid,$qual,$header);
+        }
+    } elsif(exists $params{fasta}) {
+        foreach(@dataread) { #only used for stdin inputs
+            chomp();
+            if(/^>(\S+)\s*(.*)$/o) {
+                $length = length($seq);
+                if($length) {
+                    #get qual data if provided
+                    if(exists $params{qual}) {
+                        while(<FILE2>) {
+                            chomp();
+                            last if(/^>/ && $qual);
+                            next if(/^>/);
+                            $qual .= $_.' ';
+                        }
+                        $qual = &convertQualNumsToAsciiString($qual);
+                    }
+                    &processEntry($length,$seq,$seqid,$qual,$header);
+                    $qual = '';
+                }
+                $seqid = $1;
+                $header = $2 || '';
+                $seq = '';
+            } else {
+                $seq .= $_;
+            }
+        }
+        while(<FILE>) {
+            chomp();
+            if(/^>(\S+)\s*(.*)$/o) {
+                $length = length($seq);
+                if($length) {
+                    #get qual data if provided
+                    if(exists $params{qual}) {
+                        while(<FILE2>) {
+                            chomp();
+                            last if(/^>/ && $qual);
+                            next if(/^>/);
+                            $qual .= $_.' ';
+                        }
+                        $qual = &convertQualNumsToAsciiString($qual);
+                    }
+                    &processEntry($length,$seq,$seqid,$qual,$header);
+                    $qual = '';
+                }
+                $seqid = $1;
+                $header = $2 || '';
+                $seq = '';
+            } else {
+                $seq .= $_;
+            }
+            #progress bar stuff
+            $counter++;
+            if($counter > $part) {
+                $counter = 1;
+                $progress++;
+                $progress = 99 if($progress > 99);
+                print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+                &printWeb("STATUS: process-status $progress");
+            }
+        }
+        #add last one
+        $length = length($seq);
+        if($length) {
+            #get qual data if provided
+            if(exists $params{qual}) {
+                while(<FILE2>) {
+                    chomp();
+                    last if(/^>/ && $qual);
+                    next if(/^>/);
+                    $qual .= $_.' ';
+                }
+                $qual = &convertQualNumsToAsciiString($qual);
+            }
+            &processEntry($length,$seq,$seqid,$qual,$header);
+            $qual = '';
+        }
+    }
+}
+
+print STDERR "\r\tdone          \n" if(exists $params{verbose});
+&printWeb("STATUS: process-status 100");
+&printWeb("Done parsing and processing input data");
+&printLog("Done parsing and processing input data");
+
+if($derep && !exists $params{stats} && !$exactonly && !$webnoprocess) {
+    &printLog("Remove duplicates");
+    &derepSeqs();
+    &printLog("Done removing duplicates");
+}
+
+close(FILE);
+close(FILE2) if(exists $params{qual} || $file2);
+
+print STDERR "Clean up empty files\n" if(exists $params{verbose} && !exists $params{stats});
+#close filehandles
+unless($nogood || $stdoutgood) {
+    close($fhgood);
+    if($file2) {
+        close($fhgood2);
+        close($fh2good);
+        close($fh2good2);
+    }
+}
+unless($nobad || $stdoutbad) {
+    close($fhbad);
+    if($file2) {
+        close($fh2bad);
+    }
+}
+if($params{out_format} == 2 || $params{out_format} == 5) {
+    close($fhgood2) unless($nogood || $stdoutgood);
+    close($fhbad2) unless($nobad || $stdoutbad);
+}
+if($params{out_format} == 4 || $params{out_format} == 5) {
+    close($fhgood3) unless($nogood || $stdoutgood);
+    close($fhbad3) unless($nobad || $stdoutbad);
+}
+if(exists $params{seq_id_mappings}) {
+    close($fhmappings);
+}
+#remove empty files
+if($seqcount == 0 && !$nogood && !$stdoutgood) {
+    unlink($filenamegood);
+    if($params{out_format} == 2 || $params{out_format} == 5) {
+        unlink($filenamegood2);
+    }
+    if($params{out_format} == 4 || $params{out_format} == 5) {
+        unlink($filenamegood3);
+    }
+    unlink($fhmappings);
+}
+if($badcount == 0 && !$nobad && !$stdoutbad) {
+    unlink($filenamebad);
+    if($params{out_format} == 2 || $params{out_format} == 5) {
+        unlink($filenamebad2);
+    }
+    if($params{out_format} == 4 || $params{out_format} == 5) {
+        unlink($filenamebad3);
+    }
+}
+if($file2) {
+    foreach my $f ($filenamegood2,$filename2good,$filename2good2,$filename2bad) {
+        if(defined $f && -e $f && &getLineNumber($f) == 0) {
+            unlink($f);
+        }
+    }
+}
+print STDERR "\tdone\n" if(exists $params{verbose} && !exists $params{stats});
+
+#print processing stats
+if((exists $params{verbose} || !$webnoprocess) && !exists $params{stats}) {
+    print STDERR "Input and filter stats:\n";
+    if($file2) {
+        print STDERR "\tInput sequences (file 1): ".&addCommas($numseqs)."\n";
+        print STDERR "\tInput bases (file 1): ".&addCommas($numbases)."\n";
+        print STDERR "\tInput mean length (file 1): ".sprintf("%.2f",$numbases/$numseqs)."\n" if($numseqs);
+        print STDERR "\tInput sequences (file 2): ".&addCommas($numseqs2)."\n";
+        print STDERR "\tInput bases (file 2): ".&addCommas($numbases2)."\n";
+        print STDERR "\tInput mean length (file 2): ".sprintf("%.2f",$numbases2/$numseqs2)."\n" if($numseqs2);
+        print STDERR "\tGood sequences (pairs): ".&addCommas($seqcount)."\n" if($numseqs);
+        print STDERR "\tGood bases (pairs): ".&addCommas($seqbases)."\n" if($seqcount);
+        print STDERR "\tGood mean length (pairs): ".sprintf("%.2f",$seqbases/$seqcount)."\n" if($seqcount);
+        print STDERR "\tGood sequences (singletons file 1): ".&addCommas($seqcount1)." (".sprintf("%.2f",(100*$seqcount1/$numseqs))."%)\n" if($numseqs);
+        print STDERR "\tGood bases (singletons file 1): ".&addCommas($seqbases1)."\n" if($seqcount1);
+        print STDERR "\tGood mean length (singletons file 1): ".sprintf("%.2f",$seqbases1/$seqcount1)."\n" if($seqcount1);
+        print STDERR "\tGood sequences (singletons file 2): ".&addCommas($seqcount2)." (".sprintf("%.2f",(100*$seqcount2/$numseqs2))."%)\n" if($numseqs2);
+        print STDERR "\tGood bases (singletons file 2): ".&addCommas($seqbases2)."\n" if($seqcount2);
+        print STDERR "\tGood mean length (singletons file 2): ".sprintf("%.2f",$seqbases2/$seqcount2)."\n" if($seqcount2);
+        print STDERR "\tBad sequences (file 1): ".&addCommas($badcount)." (".sprintf("%.2f",(100*$badcount/$numseqs))."%)\n" if($numseqs);
+        print STDERR "\tBad bases (file 1): ".&addCommas($badbases)."\n" if($badcount);
+        print STDERR "\tBad mean length (file 1): ".sprintf("%.2f",$badbases/$badcount)."\n" if($badcount);
+        print STDERR "\tBad sequences (file 2): ".&addCommas($badcount2)." (".sprintf("%.2f",(100*$badcount2/$numseqs2))."%)\n" if($numseqs2);
+        print STDERR "\tBad bases (file 2): ".&addCommas($badbases2)."\n" if($badcount2);
+        print STDERR "\tBad mean length (file 2): ".sprintf("%.2f",$badbases2/$badcount2)."\n" if($badcount2);
+    } else {
+        print STDERR "\tInput sequences: ".&addCommas($numseqs)."\n";
+        print STDERR "\tInput bases: ".&addCommas($numbases)."\n";
+        print STDERR "\tInput mean length: ".sprintf("%.2f",$numbases/$numseqs)."\n" if($numseqs);
+        print STDERR "\tGood sequences: ".&addCommas($seqcount)." (".sprintf("%.2f",(100*$seqcount/$numseqs))."%)\n" if($numseqs);
+        print STDERR "\tGood bases: ".&addCommas($seqbases)."\n" if($seqcount);
+        print STDERR "\tGood mean length: ".sprintf("%.2f",$seqbases/$seqcount)."\n" if($seqcount);
+        print STDERR "\tBad sequences: ".&addCommas($badcount)." (".sprintf("%.2f",(100*$badcount/$numseqs))."%)\n" if($numseqs);
+        print STDERR "\tBad bases: ".&addCommas($badbases)."\n" if($badcount);
+        print STDERR "\tBad mean length: ".sprintf("%.2f",$badbases/$badcount)."\n" if($badcount);
+    }
+    my $tmp = &getFiltercounts();
+    if($tmp) {
+        print STDERR "\tSequences filtered by specified parameters:\n";
+        if(scalar(@$tmp)) {
+            print STDERR "\t$_\n" foreach(@$tmp);
+        } else {
+            print STDERR "\tnone\n";
+        }
+    }
+    if(exists $params{log}) {
+        if($file2) {
+            &printLog("Input sequences (file 1): ".&addCommas($numseqs));
+            &printLog("Input bases (file 1): ".&addCommas($numbases));
+            &printLog("Input mean length (file 1): ".sprintf("%.2f",$numbases/$numseqs)) if($numseqs);
+            &printLog("Input sequences (file 2): ".&addCommas($numseqs2));
+            &printLog("Input bases (file 2): ".&addCommas($numbases2));
+            &printLog("Input mean length (file 2): ".sprintf("%.2f",$numbases2/$numseqs2)) if($numseqs2);
+            &printLog("Good sequences (pairs): ".&addCommas($seqcount)) if($numseqs);
+            &printLog("Good bases (pairs): ".&addCommas($seqbases)) if($seqcount);
+            &printLog("Good mean length (pairs): ".sprintf("%.2f",$seqbases/$seqcount)) if($seqcount);
+            &printLog("Good sequences (singletons file 1): ".&addCommas($seqcount1)." (".sprintf("%.2f",(100*$seqcount1/$numseqs))."%)") if($numseqs);
+            &printLog("Good bases (singletons file 1): ".&addCommas($seqbases1)) if($seqcount1);
+            &printLog("Good mean length (singletons file 1): ".sprintf("%.2f",$seqbases1/$seqcount1)) if($seqcount1);
+            &printLog("Good sequences (singletons file 2): ".&addCommas($seqcount2)." (".sprintf("%.2f",(100*$seqcount2/$numseqs2))."%)") if($numseqs2);
+            &printLog("Good bases (singletons file 2): ".&addCommas($seqbases2)) if($seqcount2);
+            &printLog("Good mean length (singletons file 2): ".sprintf("%.2f",$seqbases2/$seqcount2)) if($seqcount2);
+            &printLog("Bad sequences (file 1): ".&addCommas($badcount)." (".sprintf("%.2f",(100*$badcount/$numseqs))."%)") if($numseqs);
+            &printLog("Bad bases (file 1): ".&addCommas($badbases)) if($badcount);
+            &printLog("Bad mean length (file 1): ".sprintf("%.2f",$badbases/$badcount)) if($badcount);
+            &printLog("Bad sequences (file 2): ".&addCommas($badcount2)." (".sprintf("%.2f",(100*$badcount2/$numseqs2))."%)") if($numseqs2);
+            &printLog("Bad bases (file 2): ".&addCommas($badbases2)) if($badcount2);
+            &printLog("Bad mean length (file 2): ".sprintf("%.2f",$badbases2/$badcount2)) if($badcount2);
+        } else {
+            &printLog("Input sequences: ".&addCommas($numseqs));
+            &printLog("Input bases: ".&addCommas($numbases));
+            &printLog("Input mean length: ".sprintf("%.2f",$numbases/$numseqs)) if($numseqs);
+            &printLog("Good sequences: ".&addCommas($seqcount)." (".sprintf("%.2f",(100*$seqcount/$numseqs))."%)") if($numseqs);
+            &printLog("Good bases: ".&addCommas($seqbases)) if($seqcount);
+            &printLog("Good mean length: ".sprintf("%.2f",$seqbases/$seqcount)) if($seqcount);
+            &printLog("Bad sequences: ".&addCommas($badcount)." (".sprintf("%.2f",(100*$badcount/$numseqs))."%)") if($numseqs);
+            &printLog("Bad bases: ".&addCommas($badbases)) if($badcount);
+            &printLog("Bad mean length: ".sprintf("%.2f",$badbases/$badcount)) if($badcount);
+        }
+        if($tmp) {
+            &printLog("Sequences filtered by specified parameters:");
+            if(scalar(@$tmp)) {
+                &printLog($_) foreach(@$tmp);
+            } else {
+                &printLog("none");
+            }
+
+        }
+    }
+}
+
+#print summary stats
+if(exists $params{stats}) {
+    if(exists $params{stats_info}) {
+        $stats{stats_info}->{reads} = $numseqs;
+        $stats{stats_info}->{bases} = $numbases;
+        if($file2) {
+            $stats{stats_info2}->{reads} = $numseqs2;
+            $stats{stats_info2}->{bases} = $numbases2;
+        }
+    }
+    if(exists $params{stats_len}) {
+        $stats{stats_len} = &generateStats($counts{length});
+        $stats{stats_len2} = &generateStats($counts2{length}) if($file2);
+    }
+    if(exists $params{stats_dinuc}) {
+        foreach my $i (keys %odds) {
+	    $stats{stats_dinuc}->{lc($i)} = sprintf("%.9f",$odds{$i}/($numseqs+$numseqs2));
+	}
+    }
+    if(exists $params{stats_tag}) {
+        #calculate frequency of 5-mers
+        my $kmersum = &getTagFrequency(\%kmers);
+        #check for frequency of MID tags
+        my $midsum = 0;
+        my $midcount = 0;
+        my @midseqs;
+        foreach my $mid (keys %MIDS) {
+            $midsum += $MIDS{$mid};
+            if($MIDS{$mid} > $numseqs/34) { #in more than 34/100 (approx. 3%) as this is estimated average error for MIDs
+                $midcount++;
+                push(@midseqs,$mid);
+            }
+        }
+        $stats{stats_tag}->{midnum} = $midcount;
+        if($midcount) {
+            $stats{stats_tag}->{midseq} = join(",",@midseqs);
+        }
+        if($midsum > $kmersum->{5}) {
+            $kmersum->{5} = $midsum;
+        }
+        foreach my $kmer (keys %$kmersum) {
+            $stats{stats_tag}->{'prob'.$kmer} = sprintf("%d",(100/$numseqs*$kmersum->{$kmer}));
+	}
+        if($file2) {
+            my $kmersum2 = &getTagFrequency(\%kmers2);
+            foreach my $kmer (keys %$kmersum2) {
+                $stats{stats_tag2}->{'prob'.$kmer} = sprintf("%d",(100/$numseqs2*$kmersum2->{$kmer}));
+            }
+        }
+    }
+    if(exists $params{stats_assembly}) {
+        #calculate N50, N90, etc
+        #sort in decreasing order
+	my @sortvals = sort {$b <=> $a} keys %{$counts{length}};
+	#calculate nx values
+	my $n50 = $numbases*0.5;
+	my $n75 = $numbases*0.75;
+	my $n90 = $numbases*0.9;
+	my $n95 = $numbases*0.95;
+	my $curlen = 0;
+	foreach my $len (@sortvals) {
+	    foreach my $i (1..$counts{length}->{$len}) {
+		$curlen += $len;
+		if($curlen >= $n50 && !exists $stats{stats_assembly}->{N50}) {
+		    $stats{stats_assembly}->{N50} = $len;
+		} elsif($curlen >= $n75 && !exists $stats{stats_assembly}->{N75}) {
+		    $stats{stats_assembly}->{N75} = $len;
+		} elsif($curlen >= $n90 && !exists $stats{stats_assembly}->{N90}) {
+		    $stats{stats_assembly}->{N90} = $len;
+		} elsif($curlen >= $n95 && !exists $stats{stats_assembly}->{N95}) {
+		    $stats{stats_assembly}->{N95} = $len;
+		}
+	    }
+	}
+        foreach my $i (50,75,90,95) {
+            unless(exists $stats{stats_assembly}->{'N'.$i}) {
+                $stats{stats_assembly}->{'N'.$i} = '-';
+            }
+        }
+    }
+    if(exists $params{stats_dupl}) {
+        #empty vars before n-plicate check
+        %counts = %kmers = %odds = ();
+        #0 - exact dub, 1 - prefix, 2 - suffix, 3 - revcomp exact, 4 - revcomp prefix/suffix
+        my %types = (0 => 'exact', 1 => '5', 2 => '3', 3 => 'exactrevcomp', 4 => 'revcomp');
+        my ($dupls,undef,undef) = &checkForDupl(\@seqs,\%types,$numseqs);
+        #set zero counts
+        foreach my $s (keys %types) {
+            $stats{stats_dupl}->{$types{$s}} = 0;
+            $stats{stats_dupl}->{$types{$s}.'maxd'} = 0;
+        }
+        foreach my $n (keys %$dupls) {
+	    foreach my $s (keys %{$dupls->{$n}}) {
+		$stats{stats_dupl}->{$types{$s}} += $dupls->{$n}->{$s} * $n;
+		$stats{stats_dupl}->{$types{$s}.'maxd'} = $n unless($stats{stats_dupl}->{$types{$s}.'maxd'} > $n);
+		$stats{stats_dupl}->{total} += $dupls->{$n}->{$s} * $n;
+	    }
+	}
+    }
+    foreach my $type (sort keys %stats) {
+        foreach my $value (sort keys %{$stats{$type}}) {
+            print STDOUT join("\t",$type,$value,(defined $stats{$type}->{$value} ? $stats{$type}->{$value} : '-'))."\n";
+        }
+    }
+}
+
+if(exists $params{graph_data}) {
+    &printLog("Generate graph data");
+    print STDERR "Generate graph data\n" if(exists $params{verbose});
+    &printWeb("Start generating statistics from data");
+    #get qual stats
+    my $binval = &getBinVal($maxlength);
+    if($graphdata{quals} || $graphdata{quala}) {
+        &printWeb("Generating statistics from quality data");
+        if($graphdata{quals}) {
+            $graphdata{quals} = &generateStatsType($graphdata{quals});
+        }
+        if($graphdata{quala}) {
+            #calculate bin values
+            my $tmppos;
+            foreach my $pos (keys %{$graphdata{quala}}) {
+                $tmppos = int(($pos-1)/$binval);
+                foreach my $val (keys %{$graphdata{quala}->{$pos}}) {
+                    $graphdata{qualsbin}->{$tmppos}->{$val} += $graphdata{quala}->{$pos}->{$val};
+                }
+            }
+            $graphdata{qualsbin} = &generateStatsType($graphdata{qualsbin});
+        }
+    }
+    if($file2 && ($graphdata2{quals} || $graphdata2{quala})) {
+        $graphdata{qualsmean2} = $graphdata2{qualsmean};
+        if($graphdata2{quals}) {
+            $graphdata{quals2} = &generateStatsType($graphdata2{quals});
+        }
+        if($graphdata2{quala}) {
+            #calculate bin values
+            my $tmppos;
+            foreach my $pos (keys %{$graphdata2{quala}}) {
+                $tmppos = int(($pos-1)/$binval);
+                foreach my $val (keys %{$graphdata2{quala}->{$pos}}) {
+                    $graphdata{qualsbin2}->{$tmppos}->{$val} += $graphdata2{quala}->{$pos}->{$val};
+                }
+            }
+            $graphdata{qualsbin2} = &generateStatsType($graphdata{qualsbin2});
+        }
+    }
+    #get length stats
+    if($graphdata{counts}) {
+        &printWeb("Generating statistics from basic counts");
+        $graphdata{stats} = &generateStatsType($graphdata{counts});
+    }
+    if($file2 && $graphdata2{counts}) {
+        $graphdata{counts2} = $graphdata2{counts};
+        $graphdata{stats2} = &generateStatsType($graphdata2{counts});
+    }
+    #check for ns
+    if(($webstats{ns} || $graphstats{ns}) && scalar(keys %{$graphdata{counts}->{ns}}) == 0) {
+        $graphdata{counts}->{ns}->{0} = 0;
+    }
+    if($file2 && ($webstats{ns} || $graphstats{ns}) && scalar(keys %{$graphdata{counts2}->{ns}}) == 0) {
+        $graphdata{counts2}->{ns}->{0} = 0;
+    }
+    #add base frequencies
+    foreach my $site (keys %{$graphdata{freqs}}) {
+	foreach my $i (0..$TAG_LENGTH-1) {
+	    foreach my $base ('A','C','G','T','N') {
+		if(exists $graphdata{freqs}->{$site}->{$i}->{$base}) {
+		    $graphdata{freqs}->{$site}->{$i}->{$base} = int($graphdata{freqs}->{$site}->{$i}->{$base}*100/$numseqs);
+		} else {
+		    $graphdata{freqs}->{$site}->{$i}->{$base} = 0;
+		}
+	    }
+	}
+    }
+    if($file2) {
+        foreach my $site (keys %{$graphdata2{freqs}}) {
+            foreach my $i (0..$TAG_LENGTH-1) {
+                foreach my $base ('A','C','G','T','N') {
+                    if(exists $graphdata2{freqs}->{$site}->{$i}->{$base}) {
+                        $graphdata{freqs2}->{$site}->{$i}->{$base} = int($graphdata2{freqs}->{$site}->{$i}->{$base}*100/$numseqs2);
+                    } else {
+                        $graphdata{freqs2}->{$site}->{$i}->{$base} = 0;
+                    }
+                }
+            }
+        }
+    }
+    #calculate possibility for tag sequences
+    if(scalar(keys %{$graphdata{kmers}})) {
+        &printWeb("Generating statistics for tag sequences");
+	my %prob;
+	#calculate frequency of 5-mers
+        my $kmersum = &getTagFrequency($graphdata{kmers},$numseqs);
+        #check for frequency of MID tags
+        my $midsum = 0;
+        my $midcount = 0;
+        my @midseqs;
+        foreach my $mid (keys %{$graphdata{mids}}) {
+            $midsum += $graphdata{mids}->{$mid};
+            if($graphdata{mids}->{$mid} > $numseqs/34) { #in more than 34/100 (approx. 3%) as this is estimated average error for MIDs
+                $midcount++;
+                push(@midseqs,$mid);
+            }
+        }
+        if($midcount) {
+            $graphdata{tagmidseq} = join(",",@midseqs);
+        }
+	$graphdata{tagmidnum} = $midcount;
+        if($midsum > $kmersum->{5}) {
+            $kmersum->{5} = $midsum;
+        }
+        foreach my $kmer (keys %$kmersum) {
+            $prob{$kmer} = sprintf("%d",(100/$numseqs*$kmersum->{$kmer}));
+	}
+        $graphdata{tagprob} = \%prob;
+        delete($graphdata{kmers});
+    }
+    if($file2 && scalar(keys %{$graphdata2{kmers}})) {
+	my %prob;
+	#calculate frequency of 5-mers
+        my $kmersum = &getTagFrequency($graphdata2{kmers},$numseqs2);
+        foreach my $kmer (keys %$kmersum) {
+            $prob{$kmer} = sprintf("%d",(100/$numseqs2*$kmersum->{$kmer}));
+	}
+        $graphdata{tagprob2} = \%prob;
+        delete($graphdata2{kmers});
+    }
+    #add dinucleotide odd ratios
+    if(($webstats{dn} || $graphstats{dn}) && scalar(keys %{$graphdata{dinucodds}})) {
+        &printWeb("Generating statistics from dinucleotide counts");
+	foreach my $i (keys %{$graphdata{dinucodds}}) {
+	    $graphdata{dinucodds}->{$i} = sprintf("%.9f",$graphdata{dinucodds}->{$i}/($numseqs+$numseqs2));
+	}
+    }
+    #check for n-plicates (for paired-end data, not separated by input file)
+    if($webstats{de} || $webstats{da} || $graphstats{de} || $graphstats{da}) {
+        &printWeb("Generating statistics from duplicate counts");
+        if($webstats{de} || $graphstats{de}) {
+            foreach my $m (keys %md5sg) {
+                if(exists $md5sg{$m}->{0} && $md5sg{$m}->{0} > 0) {
+                    $graphdata{dubscounts}->{$md5sg{$m}->{0}}->{0}++;
+                }
+                if(exists $md5sg{$m}->{3} && $md5sg{$m}->{3} > 0) {
+                    $graphdata{dubscounts}->{$md5sg{$m}->{3}}->{3}++;
+                }
+            }
+        } else {
+            my %types = (0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0);
+            ($graphdata{dubscounts},$graphdata{dubslength},undef) = &checkForDupl(\@seqs,\%types,$numseqs); #0 - exact dub, 1 - prefix, 2 - suffix, 3 - revcomp exact, 4 - revcomp prefix/suffix
+        }
+    }
+
+    #generate JSON string without the need of the JSON module
+    my $str = '';
+    $str .= '{"numseqs":'.$numseqs.',"numbases":'.$numbases.',"pairedend":'.($file2 ? 1 : 0).($file2 ? ',"numseqs2":'.$numseqs2.',"numbases2":'.$numbases2.',"pairs":'.$pairs : '').',"maxlength":'.$maxlength.',"binval":'.$binval.',"exactonly":'.$exactonly.',"tagmidnum":'.($graphdata{tagmidnum}||0).',"scale":'.$scale.',"filename1":"'.(exists $params{filename1} ? $params{filename1} : &convertStringToInt(&getFileName($file1))).'","format1":"'.(exists $params{fasta} ? 'fasta' : 'fastq').'"'.(exists $params{qual} ? ',"filename2":"'.(exists $params{filename2} ? $params{filename2} : &convertStringToInt(&getFileName($params{qual}))).'","format2":"qual"' : '').($file2 ? ',"filename2":"'.(exists $params{filename2} ? $params{filename2} : &convertStringToInt(&getFileName($file2))).'"' : '');
+    foreach my $s (qw(counts counts2 stats stats2 quals quals2 qualsbin qualsbin2 complvals dubscounts dubslength)) {
+        next unless exists($graphdata{$s});
+        $str .= ',"'.$s.'":{';
+        foreach my $t (sort keys %{$graphdata{$s}}) {
+            $str .= '"'.$t.'":{';
+            while (my ($k,$v) = each(%{$graphdata{$s}->{$t}})) {
+                if($v =~ /^\d+$/) {
+                    $str .= '"'.$k.'":'.$v.',';
+                } else {
+                    $str .= '"'.$k.'":"'.$v.'",';
+                }
+            }
+            $str =~ s/\,$//;
+            $str .= '},';
+        }
+        $str =~ s/\,$//;
+        $str .= '}';
+    }
+    foreach my $s (qw(qualsmean qualsmean2 tagprob tagprob2 compldust complentropy dinucodds)) {
+        next unless exists($graphdata{$s});
+        $str .= ',"'.$s.'":{';
+        while (my ($k,$v) = each(%{$graphdata{$s}})) {
+            if($v =~ /^\d+$/) {
+                $str .= '"'.$k.'":'.$v.',';
+            } else {
+                $str .= '"'.$k.'":"'.$v.'",';
+            }
+        }
+        $str =~ s/\,$//;
+        $str .= '}';
+    }
+    $str .= ',"tail":'.(exists $graphdata{counts}->{tail5} || exists $graphdata{counts}->{tail3} ? 1 : 0);
+    $str .= ',"tail2":'.(exists $graphdata2{counts}->{tail5} || exists $graphdata2{counts}->{tail3} ? 1 : 0) if($file2);
+    if($webstats{ts} || $graphstats{ts}) {
+        $str .= ',"freqs":{';
+        foreach my $i (keys %{$graphdata{freqs}}) { # 5, 3
+            $str .= '"'.$i.'":{';
+            foreach my $pos (keys %{$graphdata{freqs}->{$i}}) {
+                $str .= '"'.$pos.'":{';
+                while (my ($base,$v) = each(%{$graphdata{freqs}->{$i}->{$pos}})) {
+                    $str .= '"'.$base.'":'.$v.',';
+                }
+                $str =~ s/\,$//;
+                $str .= '},';
+            }
+            $str =~ s/\,$//;
+            $str .= '},';
+        }
+        $str =~ s/\,$//;
+        $str .= '}';
+        if($file2) {
+            $str .= ',"freqs2":{';
+            foreach my $i (keys %{$graphdata{freqs2}}) { # 5, 3
+                $str .= '"'.$i.'":{';
+                foreach my $pos (keys %{$graphdata{freqs2}->{$i}}) {
+                    $str .= '"'.$pos.'":{';
+                    while (my ($base,$v) = each(%{$graphdata{freqs2}->{$i}->{$pos}})) {
+                        $str .= '"'.$base.'":'.$v.',';
+                    }
+                    $str =~ s/\,$//;
+                    $str .= '},';
+                }
+                $str =~ s/\,$//;
+                $str .= '},';
+            }
+            $str =~ s/\,$//;
+            $str .= '}';
+        }
+    }
+    foreach my $s (qw(tagmidseq)) {
+        next unless exists($graphdata{$s});
+        $str .= ',"'.$s.'":"'.$graphdata{$s}.'"';
+    }
+
+    $str =~ s/\,$//;
+    $str .= '}';
+
+    #write data to file
+    my $time = sprintf("%02d/%02d/%04d %02d:%02d:%02d",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+    open(FH, ">", $params{graph_data}) or &printError("Cannot open file ".$params{graph_data}.": $!");
+    flock(FH, LOCK_EX) or &printError("Cannot lock file ".$params{graph_data}.": $!");
+    print FH "#Graph data\n";
+    print FH "#[prinseq-".$WHAT."-$VERSION] [$time] Command: \"perl prinseq-".$WHAT.".pl".$command."\"\n" unless(exists $params{web});
+    print FH $str;
+    flock(FH, LOCK_UN) or &printError("Cannot unlock ".$params{graph_data}.": $!");
+    close(FH);
+    &printLog("Done with graph data");
+    print STDERR "\tdone\n" if(exists $params{verbose});
+}
+
+&printWeb("STATUS: done");
+
+##
+#################################################################################
+### MISC FUNCTIONS
+#################################################################################
+##
+
+sub printError {
+    my $msg = shift;
+    print STDERR "\nERROR: ".$msg.".\n\nTry \'perl prinseq-".$WHAT.".pl -h\' for more information.\nExit program.\n";
+    &printLog("ERROR: ".$msg.". Exit program.\n");
+    exit(0);
+}
+
+sub printWarning {
+    my $msg = shift;
+    print STDERR "WARNING: ".$msg.".\n";
+    &printLog("WARNING: ".$msg.".\n");
+}
+
+sub printWeb {
+    my $msg = shift;
+    if(exists $params{web}) {
+        print STDERR &getTime()."$msg\n";
+    }
+}
+
+sub getTime {
+    return sprintf("[%02d/%02d/%04d %02d:%02d:%02d] ",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+}
+
+sub printLog {
+    my $msg = shift;
+    if(exists $params{log}) {
+        my $time = sprintf("%02d/%02d/%04d %02d:%02d:%02d",sub {($_[4]+1,$_[3],$_[5]+1900,$_[2],$_[1],$_[0])}->(localtime));
+        open(FH, ">>", $params{log}) or &printError("Cannot open file ".$params{log}.": $!");
+        flock(FH, LOCK_EX) or &printError("Cannot lock file ".$params{log}.": $!");
+        print FH "[prinseq-".$WHAT."-$VERSION] [$time] $msg\n";
+        flock(FH, LOCK_UN) or &printError("Cannot unlock ".$params{log}.": $!");
+        close(FH);
+    }
+}
+
+sub addCommas {
+    my $num = shift;
+    return unless(defined $num);
+    return $num if($num < 1000);
+    $num = scalar reverse $num;
+    $num =~ s/(\d{3})/$1\,/g;
+    $num =~ s/\,$//;
+    $num = scalar reverse $num;
+    return $num;
+}
+
+sub getLineNumber {
+    my $file = shift;
+    my $lines = 0;
+    open(FILE,"perl -pe 's/\r\n|\r/\n/g' < $file |") or &printError("Could not open file $file: $!");
+    $lines += tr/\n/\n/ while sysread(FILE, $_, 2 ** 16);
+    close(FILE);
+    return $lines;
+}
+
+sub readParamsFile {
+    my $file = shift;
+    my @args;
+    my %parameters = ();
+    open(FILE,"perl -pe 's/\r\n|\r/\n/g' < $file |") or &printError("Could not open file $file: $!");
+    while(<FILE>) {
+        next if(/^\#/);
+        chomp();
+        @args = split(/\s+/);
+        if(@args) {
+            $args[0] =~ s/^\-//;
+            $parameters{$args[0]} = (defined $args[1] ? join(" ",@args[1..scalar(@args)-1]) : '');
+        }
+    }
+    close(FILE);
+    return \%parameters;
+}
+
+sub checkFileFormat {
+    my $file = shift;
+
+    my ($format,$count,$id,$fasta,$fastq,$qual);
+    $count = 3;
+    $fasta = $fastq = $qual = 0;
+    $format = 'unknown';
+
+    open(FILE,"perl -pe 's/\r\n|\r/\n/g' < $file |") or &printError("Could not open file $file: $!");
+    while (<FILE>) {
+#        chomp();
+ #       next unless(length($_));
+        if($count-- == 0) {
+            last;
+        } elsif(!$fasta && /^\>\S+\s*/o) {
+            $fasta = 1;
+            $qual = 1;
+        } elsif($fasta == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/o) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/o))) {
+            $fasta = 2;
+        } elsif($qual == 1 && /^\s*\d+/o) {
+            $qual = 2;
+        } elsif(!$fastq && /^\@(\S+)\s*/o) {
+            $id = $1;
+            $fastq = 1;
+        } elsif($fastq == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/o) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/o))) {
+            $fastq = 2;
+        } elsif($fastq == 2 && /^\+(\S*)\s*/o) {
+            $fastq = 3 if($id eq $1 || /^\+\s*$/o);
+        }
+    }
+    close(FILE);
+    if($fasta == 2) {
+        $format = 'fasta';
+    } elsif($qual == 2) {
+        $format = 'qual';
+    } elsif($fastq == 3) {
+        $format = 'fastq';
+    }
+
+    return $format;
+}
+
+sub checkSlashnum {
+    my $file = shift;
+    open(FILE,"perl -pe 's/\r\n|\r/\n/g' < $file |") or &printError("Could not open file $file: $!");
+    while(<FILE>) {
+        chomp();
+        next unless(length($_));
+        if(/^\S+\/[12]\s*/ || /^\S+\_[LR]\s*/) {
+            close(FILE);
+            return (1,2,2);
+        } elsif(/^\S+\_left\s*/) {
+            close(FILE);
+            return (1,6,5);
+        } elsif(/^\S+\_right\s*/) {
+            close(FILE);
+            return (1,5,6);
+        } else {
+            close(FILE);
+            return 0;
+        }
+    }
+    return 0;
+}
+
+sub checkInputFormat {
+    my ($format,$count,$id,$fasta,$fastq,$qual);
+    $count = 3;
+    $fasta = $fastq = $qual = 0;
+    $format = 'unknown';
+
+    while (<STDIN>) {
+        push(@dataread,$_);
+#        chomp();
+ #       next unless(length($_));
+        if($count-- == 0) {
+            last;
+        } elsif(!$fasta && /^\>\S+\s*/o) {
+            $fasta = 1;
+            $qual = 1;
+        } elsif($fasta == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/o) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/o))) {
+            $fasta = 2;
+        } elsif($qual == 1 && /^\s*\d+/) {
+            $qual = 2;
+        } elsif(!$fastq && /^\@(\S+)\s*/) {
+            $id = $1;
+            $fastq = 1;
+        } elsif($fastq == 1 && (($aa && /^[ABCDEFGHIKLMNOPQRSTUVWYZXabcdefghiklmmopqrstuvwyzx*-]+/o) || (!$aa && /^[ACGTURYKMSWBDHVNXacgturykmswbdhvnx-]+/o))) {
+            $fastq = 2;
+        } elsif($fastq == 2 && /^\+(\S*)\s*/o) {
+            $fastq = 3 if($id eq $1 || /^\+\s*$/o);
+        }
+    }
+
+    if($fasta == 2) {
+        $format = 'fasta';
+    } elsif($qual == 2) {
+        $format = 'qual';
+    } elsif($fastq == 3) {
+        $format = 'fastq';
+    }
+
+    return $format;
+}
+
+sub getArrayMean {
+    return @_ ? sum(@_) / @_ : 0;
+}
+
+sub convertQualNumsToAscii {
+    my $qual = shift;
+    my @ascii;
+    $qual =~ s/^\s+//;
+    $qual =~ s/\s+$//;
+    my @nums = split(/\s+/,$qual);
+    foreach(@nums) {
+	push(@ascii,chr(($_ <= 93 ? $_ : 93) + 33));
+    }
+    return \@ascii;
+}
+
+sub convertQualNumsToAsciiString {
+    my $qual = shift;
+    my $ascii;
+    $qual =~ s/^\s+//;
+    $qual =~ s/\s+$//;
+    my @nums = split(/\s+/,$qual);
+    foreach(@nums) {
+	$ascii .= chr(($_ <= 93 ? $_ : 93) + 33);
+    }
+    return $ascii;
+}
+
+sub convertQualAsciiToNums {
+    my $qual = shift;
+    my @nums;
+    my @ascii = split(//,$qual);
+    foreach(@ascii) {
+	push(@nums,(ord($_) - 33));
+    }
+    return \@nums;
+}
+
+sub convertQualAsciiToNumsPhred64 {
+    my $qual = shift;
+    my @nums;
+    my $tmp;
+    my $err = 0;
+    my @ascii = split('',$qual);
+    foreach(@ascii) {
+        $tmp = (ord($_) - 64);
+        if($tmp < 0) {
+	    $err = 1;
+	    last;
+	}
+	push(@nums,$tmp);
+    }
+    return (\@nums,$err);
+}
+
+sub convertQualArrayToString {
+    my ($nums,$linelen) = @_;
+    $linelen = 80 unless($linelen);
+    my $str;
+    my $count = 1;
+    foreach my $n (@$nums) {
+        $str .= ($n < 10 ? ' '.$n : $n).' ';
+        if(++$count > $linelen) {
+            $count = 1;
+            $str =~ s/\s$//;
+            $str .= "\n";
+        }
+    }
+    $str =~ s/[\s\n]$//;
+    return $str;
+}
+
+sub checkRange {
+    my ($range,$val) = @_;
+    my @ranges = split(/\,/,$range);
+    foreach my $r (@ranges) {
+	my @tmp = split(/\-/,$r);
+	return 0 if($val < $tmp[0] || $val > $tmp[1]);
+    }
+    return 1;
+}
+
+sub getFiltercounts {
+    my @order = qw(seq_num trim_left trim_right trim_left_p trim_right_p trim_qual_left trim_qual_right trim_tail_left trim_tail_right trim_ns_left trim_ns_right zero_length min_len max_len range_len min_qual_score max_qual_score min_qual_mean max_qual_mean min_gc max_gc range_gc ns_max_p ns_max_n noniupac custom_params lc_method derep);
+    my @counts;
+    foreach my $p (@order) {
+        if(exists $filtercount{$p}) {
+            push(@counts,$p.': '.$filtercount{$p});
+        }
+    }
+    return \@counts;
+}
+
+sub readEntryFastq {
+    my ($fh,$skip,$trimnum) = @_;
+    if($skip > 0) {
+        return 1;
+    }
+    my ($seq,$seqid,$qual,$header,$line,$tmpid);
+    if(defined($line = <$fh>)) {
+        $line =~ /^\@(\S+)\s*(.*)$/o;
+        $seqid = $1;
+        $header = $2 || '';
+        $seq = readline($fh);
+        chomp($seq);
+        readline($fh);
+        $qual = readline($fh);
+        chomp($qual);
+        #progress bar stuff
+        $counter += 4;
+    }
+    if($slashnum) {
+        $tmpid = substr($seqid, 0, -$trimnum)
+    } else {
+        $tmpid = $seqid;
+    }
+    return ($seq,$seqid,$qual,$header,$tmpid);
+}
+
+sub readEntryFasta {
+    my ($fh,$skip,$trimnum,$nextid,$nextheader) = @_;
+    if($skip > 0) {
+        return (1,undef,undef,undef,$nextid,$nextheader);
+    }
+    my ($seq,$seqid,$header,$line,$tmpid);
+    $seq = '';
+    if($nextid) {
+        $seqid = $nextid;
+        $header = $nextheader;
+    }
+    while(<$fh>) {
+        chomp();
+        if(/^>(\S+)\s*(.*)$/o) {
+            if($seq) {
+                $nextid = $1;
+                $nextheader = $2 || '';
+                last;
+            }
+            $seqid = $1;
+            $header = $2 || '';
+        } else {
+            $seq .= $_;
+        }
+    }
+    if($slashnum) {
+        $tmpid = substr($seqid, 0, -$trimnum)
+    } else {
+        $tmpid = $seqid;
+    }
+    return ($seq,$seqid,$header,$tmpid,$nextid,$nextheader);
+}
+
+sub processEntry {
+    my ($length,$seq,$seqid,$qual,$header) = @_;
+    #check that sequence and quality are same length
+    if(defined $qual && length($qual) && $length != length($qual)) {
+        &printError("The number of bases and quality scores are not the same for sequence \"$seqid\"");
+    }
+    #remove anything non-alphabetic from sequences
+    $seq =~ tr/a-zA-Z//cd;
+    $numseqs++;
+    $numbases += $length;
+    #process entry
+    if($exists_stats) { #calc summary stats
+        $seq = uc($seq);
+        &calcSeqStats($seq,$length,\%stats,\%kmers,\%odds,\%counts);
+        if(exists $params{stats_dupl}) {
+            push(@seqs,[$seq,$numseqs,$length]);
+        }
+    } else { #process data
+        &processData($seqid,$seq,$qual,$header) unless($webnoprocess);
+        #get graph data
+        if($exists_graphdata) {
+            $ucseq = uc($seq);
+            &getSeqStats(\%graphdata,$ucseq,$length);
+            if($qual) {
+                &getQualStats(\%graphdata,$qual,$length);
+            }
+            if($webstats{de} || $graphstats{de}) {
+                $md5 = md5_hex($ucseq);
+                if(exists $md5sg{$md5}) { #forward duplicate
+                    $graphdata{dubslength}->{$length}->{0}++;
+                    $md5sg{$md5}->{0}++;
+                } else {
+                    $md5r = md5_hex(&revcompuc($ucseq));
+                    if(exists $md5sg{$md5r}) { #reverse duplicate
+                        $graphdata{dubslength}->{$length}->{3}++;
+                        $md5sg{$md5}->{3}++;
+                    }
+                    unless(exists $md5sg{$md5}) {
+                        $md5sg{$md5} = {0 => 0, 3 => 0};
+                    }
+                }
+            } elsif($webstats{da} || $graphstats{da}) {
+                push(@seqs,[$ucseq,$numseqs,$length]);
+            }
+        }
+    }
+}
+
+sub processEntryPairedEnd {
+    my ($length,$seq,$seqid,$header,$qual,$length2,$seq2,$seqid2,$header2,$qual2) = @_;
+    my ($tmpseq1,$tmpseq2,$tmpgood1,$tmpgood2,$tmpbegin1,$tmpend1,$tmpbegin2,$tmpend2);
+    $tmpgood1 = $tmpgood2 = 0;
+    if($length) {
+        #check that sequence and quality are same length
+        if(defined $qual && $length != length($qual)) {
+            &printError("The number of bases and quality scores are not the same for sequence \"$seqid\"");
+        }
+        #remove anything non-alphabetic from sequences
+        $seq =~ tr/a-zA-Z//cd;
+        $numseqs++;
+        $numbases += $length;
+        #process entry
+        if($exists_stats) { #calc summary stats
+            $seq = uc($seq);
+            &calcSeqStats($seq,$length,\%stats,\%kmers,\%odds,\%counts);
+        } else { #process data
+            ($tmpseq1,$tmpgood1,$tmpbegin1,$tmpend1) = &processData($seqid,$seq,$qual,$header) unless($webnoprocess);
+            #get graph data
+            if($exists_graphdata) {
+                $ucseq = uc($seq);
+                &getSeqStats(\%graphdata,$ucseq,$length);
+                if($qual) {
+                    &getQualStats(\%graphdata,$qual,$length);
+                }
+                if($length2) {
+                    $pairs++;
+                }
+                if($webstats{de} || $graphstats{de}) {
+                    if($length2) { #both
+                        $md5 = md5_hex($ucseq.'0'.uc($seq2));
+                        if(exists $md5sg{$md5}) { #forward duplicate
+                            $md5sg{$md5}->{0}++;
+                            $graphdata{dubslength}->{($length+$length2)}->{0}++;
+                        } else {
+                            $md5sg{$md5}->{0} = 0;
+                        }
+                        $md5 = md5_hex($ucseq);
+                        unless(exists $md5sg{$md5}) {
+                            $md5sg{$md5}->{0} = 0;
+                        }
+                    } else { #only seq, no seq2
+                        $md5 = md5_hex($ucseq);
+                        if(exists $md5sg{$md5}) { #forward duplicate
+                            $md5sg{$md5}->{0}++;
+                            $graphdata{dubslength}->{$length}->{0}++;
+                        } else {
+                            $md5sg{$md5}->{0} = 0;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    if($length2) {
+        if(defined $qual2 && $length2 != length($qual2)) {
+            &printError("The number of bases and quality scores are not the same for sequence \"$seqid2\"");
+        }
+        #remove anything non-alphabetic from sequences
+        $seq2 =~ tr/a-zA-Z//cd;
+        $numseqs2++;
+        $numbases2 += $length2;
+        #process entry
+        if($exists_stats) { #calc summary stats
+            $seq2 = uc($seq2);
+            &calcSeqStats($seq2,$length2,\%stats,\%kmers2,\%odds,\%counts2,1); #last one used to calculate stats for second input file
+        } else { #process data
+            ($tmpseq2,$tmpgood2,$tmpbegin2,$tmpend2) = &processData($seqid2,$seq2,$qual2,$header2) unless($webnoprocess);
+            #get graph data
+            if($exists_graphdata) {
+                $ucseq = uc($seq2);
+                &getSeqStats(\%graphdata2,$ucseq,$length2);
+                if($qual2) {
+                    &getQualStats(\%graphdata2,$qual2,$length2);
+                }
+                if($webstats{de} || $graphstats{de}) {
+                    #only seq2, no seq
+                    $md5 = md5_hex($ucseq);
+                    unless($length) {
+                        if(exists $md5sg{$md5}) { #forward duplicate
+                            $md5sg{$md5}->{0}++;
+                            $graphdata{dubslength}->{$length2}->{0}++;
+                        } else {
+                            $md5sg{$md5}->{0} = 0;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    return if($exists_stats || $webnoprocess);
+
+    #check for duplicates
+    if($derep) {
+        if($tmpgood1 && $tmpgood2) {
+            $md5 = md5_hex($tmpseq1.'0'.$tmpseq2);
+            if(exists $md5s{$md5}) { #forward duplicate
+                $md5s{$md5}++;
+                if($derepmin <= $md5s{$md5}+1) {
+                    $tmpgood1 = $tmpgood2 = 0;
+                    $filtercount{derep}++;
+                }
+            } else {
+                $md5s{$md5} = 0;
+            }
+            $md5 = md5_hex($tmpseq1);
+            unless(exists $md5s{$md5}) {
+                $md5s{$md5} = 0;
+            }
+            $md5 = md5_hex($tmpseq2);
+            unless(exists $md5s{$md5}) {
+                $md5s{$md5} = 0;
+            }
+        } elsif($tmpgood1) {
+            $md5 = md5_hex($tmpseq1);
+            if(exists $md5s{$md5}) { #forward duplicate
+                $md5s{$md5}++;
+                if($derepmin <= $md5s{$md5}+1) {
+                    $tmpgood1 = 0;
+                    $filtercount{derep}++;
+                }
+            } else {
+                $md5s{$md5} = 0;
+            }
+        } elsif($tmpgood2) {
+            $md5 = md5_hex($tmpseq2);
+            if(exists $md5s{$md5}) { #forward duplicate
+                $md5s{$md5}++;
+                if($derepmin <= $md5s{$md5}+1) {
+                    $tmpgood2 = 0;
+                    $filtercount{derep}++;
+                }
+            } else {
+                $md5s{$md5} = 0;
+            }
+        }
+    }
+
+    #write to outputs files
+    if($tmpgood1) {
+        if(exists $params{seq_id}) {
+            if($mappings) {
+                print $fhmappings join("\t",$seqid,$params{seq_id}.$seqcount)."\n";
+            }
+            $seqid = $params{seq_id}.$seqcount;
+        }
+        if(exists $params{rm_header}) {
+            $header = undef;
+        }
+        #trim if necessary
+        if($tmpbegin1) {
+            $seq = substr($seq,$tmpbegin1);
+            $qual = substr($qual,$tmpbegin1) if(defined $qual && length($qual));
+        }
+        if($tmpend1) {
+            $length = length($seq);
+            $seq = substr($seq,0,$length-$tmpend1);
+            $qual = substr($qual,0,$length-$tmpend1) if(defined $qual && length($qual));
+        }
+        #change case
+        if(exists $params{seq_case}) {
+            if($params{seq_case} eq 'lower') { #lower case
+                $seq = lc($seq);
+            } elsif($params{seq_case} eq 'upper') { #upper case
+                $seq = uc($seq);
+            }
+        }
+        #convert between DNA and RNA
+        if(exists $params{dna_rna}) {
+            if($params{dna_rna} eq 'dna') { #RNA to DNA
+                $seq =~ tr/Uu/Tt/;
+            } elsif($params{dna_rna} eq 'rna') { #DNA to RNA
+                $seq =~ tr/Tt/Uu/;
+            }
+        }
+    }
+    if($tmpgood2) {
+        if(exists $params{seq_id}) {
+            if($mappings) {
+                print $fhmappings join("\t",$seqid2,$params{seq_id}.$seqcount)."\n";
+            }
+            $seqid2 = $params{seq_id}.$seqcount;
+        }
+        if(exists $params{rm_header}) {
+            $header2 = undef;
+        }
+        #trim if necessary
+        if($tmpbegin2) {
+            $seq2 = substr($seq2,$tmpbegin2);
+            $qual2 = substr($qual2,$tmpbegin2) if(defined $qual2 && length($qual2));
+        }
+        if($tmpend2) {
+            $length2 = length($seq2);
+            $seq2 = substr($seq2,0,$length2-$tmpend2);
+            $qual2 = substr($qual2,0,$length2-$tmpend2) if(defined $qual2 && length($qual2));
+        }
+        #change case
+        if(exists $params{seq_case}) {
+            if($params{seq_case} eq 'lower') { #lower case
+                $seq2 = lc($seq2);
+            } elsif($params{seq_case} eq 'upper') { #upper case
+                $seq2 = uc($seq2);
+            }
+        }
+        #convert between DNA and RNA
+        if(exists $params{dna_rna}) {
+            if($params{dna_rna} eq 'dna') { #RNA to DNA
+                $seq2 =~ tr/Uu/Tt/;
+            } elsif($params{dna_rna} eq 'rna') { #DNA to RNA
+                $seq2 =~ tr/Tt/Uu/;
+            }
+        }
+    }
+    if($tmpgood1 && $tmpgood2) { #pair
+        $seqcount++;
+        $seqbases += $length+$length2;
+        return if($nogood);
+        if($params{out_format} == 3) { # FASTQ
+            &printError("missing quality data for sequence \"$seqid\" or greater number of sequences than available quality scores") unless(defined $qual);
+            &printError("missing quality data for sequence \"$seqid2\" or greater number of sequences than available quality scores") unless(defined $qual2);
+            if($stdoutgood) {
+                print STDOUT '@'.$seqid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+                print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                print STDOUT $qual."\n";
+                print STDOUT '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print STDOUT $seq2."\n";
+                print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                print STDOUT $qual2."\n";
+            } else {
+                print $fhgood '@'.$seqid.($header ? ' '.$header : '')."\n";
+                print $fhgood $seq."\n";
+                print $fhgood '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                print $fhgood $qual."\n";
+                print $fh2good '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print $fh2good $seq2."\n";
+                print $fh2good '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                print $fh2good $qual2."\n";
+            }
+        } else { #FASTA
+            #set line length
+            if($linelen) {
+                $seq =~ s/(.{$linelen})/$1\n/g;
+                $seq =~ s/\n$//;
+                $seq2 =~ s/(.{$linelen})/$1\n/g;
+                $seq2 =~ s/\n$//;
+            }
+            if($stdoutgood) {
+                print STDOUT '>'.$seqid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+                print STDOUT '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print STDOUT $seq2."\n";
+            } else {
+                print $fhgood '>'.$seqid.($header ? ' '.$header : '')."\n";
+                print $fhgood $seq."\n";
+                print $fh2good '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print $fh2good $seq2."\n";
+            }
+        }
+    } elsif($tmpgood1) { #singleton
+        $seqcount1++;
+        $seqbases1 += $length;
+        return if($nogood);
+        if($params{out_format} == 3) { # FASTQ
+            &printError("missing quality data for sequence \"$seqid\" or greater number of sequences than available quality scores") unless(defined $qual);
+            if($stdoutgood) {
+                print STDOUT '@'.$seqid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+                print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                print STDOUT $qual."\n";
+            } else {
+                print $fhgood2 '@'.$seqid.($header ? ' '.$header : '')."\n";
+                print $fhgood2 $seq."\n";
+                print $fhgood2 '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                print $fhgood2 $qual."\n";
+            }
+        } else { #FASTA
+            #set line length
+            if($linelen) {
+                $seq =~ s/(.{$linelen})/$1\n/g;
+                $seq =~ s/\n$//;
+            }
+            if($stdoutgood) {
+                print STDOUT '>'.$seqid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+            } else {
+                print $fhgood2 '>'.$seqid.($header ? ' '.$header : '')."\n";
+                print $fhgood2 $seq."\n";
+            }
+        }
+        if($length2) {
+            $badcount2++;
+            $badbases2 += length($seq2);
+            return if($nobad);
+            #write data
+            if($params{out_format} == 3) { # FASTQ
+                &printError("missing quality data for sequence \"$seqid2\" or greater number of sequences than available quality scores") unless(defined $qual2);
+                if($stdoutbad) {
+                    print STDOUT '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print STDOUT $seq2."\n";
+                    print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                    print STDOUT $qual2."\n";
+                } else {
+                    print $fh2bad '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print $fh2bad $seq2."\n";
+                    print $fh2bad '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                    print $fh2bad $qual2."\n";
+                }
+            } else { #FASTA
+                #set line length
+                if($linelen) {
+                    $seq2 =~ s/(.{$linelen})/$1\n/g;
+                    $seq2 =~ s/\n$//;
+                }
+                if($stdoutbad) {
+                    print STDOUT '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print STDOUT $seq2."\n";
+                } else {
+                    print $fh2bad '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print $fh2bad $seq2."\n";
+                }
+            }
+        }
+    } elsif($tmpgood2) { #singleton
+        $seqcount2++;
+        $seqbases2 += $length2;
+        return if($nogood);
+        if($params{out_format} == 3) { # FASTQ
+            &printError("missing quality data for sequence \"$seqid2\" or greater number of sequences than available quality scores") unless(defined $qual2);
+            if($stdoutgood) {
+                print STDOUT '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print STDOUT $seq2."\n";
+                print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                print STDOUT $qual2."\n";
+            } else {
+                print $fh2good2 '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print $fh2good2 $seq2."\n";
+                print $fh2good2 '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                print $fh2good2 $qual2."\n";
+            }
+        } else { #FASTA
+            #set line length
+            if($linelen) {
+                $seq2 =~ s/(.{$linelen})/$1\n/g;
+                $seq2 =~ s/\n$//;
+            }
+            if($stdoutgood) {
+                print STDOUT '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print STDOUT $seq2."\n";
+            } else {
+                print $fh2good2 '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                print $fh2good2 $seq2."\n";
+            }
+        }
+        if($length) {
+            $badcount++;
+            $badbases += length($seq);
+            return if($nobad);
+            #write data
+            if($params{out_format} == 3) { # FASTQ
+                &printError("missing quality data for sequence \"$seqid\" or greater number of sequences than available quality scores") unless(defined $qual);
+                if($stdoutbad) {
+                    print STDOUT '@'.$seqid.($header ? ' '.$header : '')."\n";
+                    print STDOUT $seq."\n";
+                    print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                    print STDOUT $qual."\n";
+                } else {
+                    print $fhbad '@'.$seqid.($header ? ' '.$header : '')."\n";
+                    print $fhbad $seq."\n";
+                    print $fhbad '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                    print $fhbad $qual."\n";
+                }
+            } else { #FASTA
+                #set line length
+                if($linelen) {
+                    $seq =~ s/(.{$linelen})/$1\n/g;
+                    $seq =~ s/\n$//;
+                }
+                if($stdoutbad) {
+                    print STDOUT '>'.$seqid.($header ? ' '.$header : '')."\n";
+                    print STDOUT $seq."\n";
+                } else {
+                    print $fhbad '>'.$seqid.($header ? ' '.$header : '')."\n";
+                    print $fhbad $seq."\n";
+                }
+            }
+        }
+    } else {
+        if($length) {
+            $badcount++;
+            $badbases += length($seq);
+            return if($nobad);
+            #write data
+            if($params{out_format} == 3) { # FASTQ
+                &printError("missing quality data for sequence \"$seqid\" or greater number of sequences than available quality scores") unless(defined $qual);
+                if($stdoutbad) {
+                    print STDOUT '@'.$seqid.($header ? ' '.$header : '')."\n";
+                    print STDOUT $seq."\n";
+                    print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                    print STDOUT $qual."\n";
+                } else {
+                    print $fhbad '@'.$seqid.($header ? ' '.$header : '')."\n";
+                    print $fhbad $seq."\n";
+                    print $fhbad '+'.(exists $params{no_qual_header} ? '' : $seqid.($header ? ' '.$header : ''))."\n";
+                    print $fhbad $qual."\n";
+                }
+            } else { #FASTA
+                #set line length
+                if($linelen) {
+                    $seq =~ s/(.{$linelen})/$1\n/g;
+                    $seq =~ s/\n$//;
+                }
+                if($stdoutbad) {
+                    print STDOUT '>'.$seqid.($header ? ' '.$header : '')."\n";
+                    print STDOUT $seq."\n";
+                } else {
+                    print $fhbad '>'.$seqid.($header ? ' '.$header : '')."\n";
+                    print $fhbad $seq."\n";
+                }
+            }
+        }
+        if($length2) {
+            $badcount2++;
+            $badbases2 += length($seq2);
+            return if($nobad);
+            #write data
+            if($params{out_format} == 3) { # FASTQ
+                &printError("missing quality data for sequence \"$seqid2\" or greater number of sequences than available quality scores") unless(defined $qual2);
+                if($stdoutbad) {
+                    print STDOUT '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print STDOUT $seq2."\n";
+                    print STDOUT '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                    print STDOUT $qual2."\n";
+                } else {
+                    print $fh2bad '@'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print $fh2bad $seq2."\n";
+                    print $fh2bad '+'.(exists $params{no_qual_header} ? '' : $seqid2.($header2 ? ' '.$header2 : ''))."\n";
+                    print $fh2bad $qual2."\n";
+                }
+            } else { #FASTA
+                #set line length
+                if($linelen) {
+                    $seq2 =~ s/(.{$linelen})/$1\n/g;
+                    $seq2 =~ s/\n$//;
+                }
+                if($stdoutbad) {
+                    print STDOUT '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print STDOUT $seq2."\n";
+                } else {
+                    print $fh2bad '>'.$seqid2.($header2 ? ' '.$header2 : '')."\n";
+                    print $fh2bad $seq2."\n";
+                }
+            }
+        }
+    }
+}
+
+#process sequence (and qual) data
+sub processData {
+    my ($sid,$seq,$qual,$header) = @_;
+    #assume sequence is good ;-)
+    my $good = 1;
+    my $seqn = uc($seq);
+    my $qualn = $qual;
+    my $begin = 0;
+    my $end = 0;
+    my ($length,$bylength,$qualsnums);
+
+    #check for maximum number sequences requested
+    if(exists $params{seq_num} && $params{seq_num} <= $seqcount) {
+        $good = 0;
+        $filtercount{seq_num}++;
+    }
+
+    #trim sequence ends
+    if($good && exists $params{trim_left}) {
+        $begin += $params{trim_left};
+        if($begin >= length($seqn)) {
+            $good = 0;
+            $filtercount{trim_left}++;
+        } else {
+            $seqn = substr($seqn,$begin);
+            $qualn = substr($qualn,$begin) if(defined $qualn && length($qualn));
+        }
+    }
+    if($good && exists $params{trim_right}) {
+        $end += $params{trim_right};
+        $length = length($seqn);
+        if($end >= $length) {
+            $good = 0;
+            $filtercount{trim_right}++;
+        } else {
+            $seqn = substr($seqn,0,$length-$end);
+            $qualn = substr($qualn,0,$length-$end) if(defined $qualn && length($qualn));
+        }
+    }
+    if($good && exists $params{trim_left_p}) {
+        $length = length($seqn);
+        my $begintmp = int($params{trim_left_p}/100*$length);
+        if($begintmp >= $length) {
+            $good = 0;
+            $filtercount{trim_left_p}++;
+        } else {
+            $seqn = substr($seqn,$begintmp);
+            $qualn = substr($qualn,$begintmp) if(defined $qualn && length($qualn));
+            $begin += $begintmp;
+        }
+    }
+    if($good && exists $params{trim_right_p}) {
+        $length = length($seqn);
+        my $endtmp = int($params{trim_right_p}/100*$length);
+        if($endtmp >= $length) {
+            $good = 0;
+            $filtercount{trim_right_p}++;
+        } else {
+            $seqn = substr($seqn,0,$length-$endtmp);
+            $qualn = substr($qualn,0,$length-$endtmp) if(defined $qualn && length($qualn));
+            $end += $endtmp;
+        }
+    }
+
+    #check for quality scores
+    if($good && defined $qualn && $trimscore) {
+        my ($err);
+        if(exists $params{phred64}) { #scale data to Phred scale if necessary
+            ($qualsnums,$err) = &convertQualAsciiToNumsPhred64($qualn);
+            if($err) {
+                &printError("The sequence quality scores are not in Phred+64 format");
+            }
+        } else {
+            $qualsnums = &convertQualAsciiToNums($qualn);
+        }
+        $length = length($qualn);
+        my $i = 0;
+        my $begintmp = 0;
+        my $endtmp = 0;
+        my ($window,$val);
+        #left
+        if(exists $params{trim_qual_left}) {
+            while($i < $length) {
+                #calculate maximum window
+                $window = ($i+$params{trim_qual_window} <= $length ? $params{trim_qual_window} : ($length-$i));
+                #calculate value used to compare with given value
+                if($window == 1) {
+                    $val = $qualsnums->[$i];
+                } elsif($params{trim_qual_type} eq 'min') {
+                    $val = min(@$qualsnums[$i..($i+$window-1)]);
+                } elsif($params{trim_qual_type} eq 'max') {
+                    $val = max(@$qualsnums[$i..($i+$window-1)]);
+                } elsif($params{trim_qual_type} eq 'mean') {
+                    $val = &getArrayMean(@$qualsnums[$i..($i+$window-1)]);
+                } elsif($params{trim_qual_type} eq 'sum') {
+                    last if($window < $params{trim_qual_window});
+                    $val = sum(@$qualsnums[$i..($i+$window-1)]);
+                } else {
+                    last;
+                }
+                #compare values
+                if(($params{trim_qual_rule} eq 'lt' && $val < $params{trim_qual_left}) || ($params{trim_qual_rule} eq 'gt' && $val > $params{trim_qual_left}) || ($params{trim_qual_rule} eq 'et' && $val == $params{trim_qual_left})) {
+                    $begintmp += $params{trim_qual_step};
+                    $i += $params{trim_qual_step};
+                } else {
+                    last;
+                }
+            }
+            if($begintmp >= $length) {
+                $good = 0;
+                $filtercount{trim_qual_left}++;
+            } elsif($begintmp > 0) {
+                $seqn = substr($seqn,$begintmp);
+                $qualn = substr($qualn,$begintmp);
+                $begin += $begintmp;
+            }
+        }
+        #right
+        if($good && exists $params{trim_qual_right}) {
+            $length -= $begintmp;
+            my @quals = reverse(@$qualsnums);
+            $i = 0;
+            while($i < $length) {
+                #calculate maximum window
+                $window = ($i+$params{trim_qual_window} <= $length ? $params{trim_qual_window} : ($length-$i));
+                #calculate value used to compare with given value
+                if($window == 1) {
+                    $val = $quals[$i];
+                } elsif($params{trim_qual_type} eq 'min') {
+                    $val = min(@quals[$i..($i+$window-1)]);
+                } elsif($params{trim_qual_type} eq 'max') {
+                    $val = max(@quals[$i..($i+$window-1)]);
+                } elsif($params{trim_qual_type} eq 'mean') {
+                    $val = &getArrayMean(@quals[$i..($i+$window-1)]);
+                } elsif($params{trim_qual_type} eq 'sum') {
+                    last if($window < $params{trim_qual_window});
+                    $val = sum(@quals[$i..($i+$window-1)]);
+                } else {
+                    last;
+                }
+                #compare values
+                if(($params{trim_qual_rule} eq 'lt' && $val < $params{trim_qual_right}) || ($params{trim_qual_rule} eq 'gt' && $val > $params{trim_qual_right}) || ($params{trim_qual_rule} eq 'et' && $val == $params{trim_qual_right})) {
+                    $endtmp += $params{trim_qual_step};
+                    $i += $params{trim_qual_step};
+                } else {
+                    last;
+                }
+            }
+            if($endtmp >= $length) {
+                $good = 0;
+                $filtercount{trim_qual_right}++;
+            } elsif($endtmp > 0) {
+                $seqn = substr($seqn,0,$length-$endtmp);
+                $qualn = substr($qualn,0,$length-$endtmp);
+                $end += $endtmp;
+            }
+        }
+    }
+
+    #check for tails with min trimtails char repeats
+    if($good && exists $params{trim_tail_left}) {
+        $length = length($seqn);
+        my $begintmp = 0;
+        if($seqn =~ $repAleft || $seqn =~ $repTleft) {
+            my @tmp = split('',$seqn);
+            my $tmpchar = $tmp[0]; #A or T
+            $begintmp += $params{trim_tail_left};
+            foreach ($params{trim_tail_left}..$length-1) {
+                last unless($tmp[$_] eq $tmpchar || $tmp[$_] eq 'N');
+                $begintmp++;
+            }
+            if($begintmp >= $length) {
+                $good = 0;
+                $filtercount{trim_tail_left}++;
+            } else {
+                $seqn = substr($seqn,$begintmp);
+                $qualn = substr($qualn,$begintmp) if(defined $qualn && length($qualn));
+                $length = length($seqn);
+                $begin += $begintmp;
+            }
+        }
+    }
+    if($good && exists $params{trim_tail_right}) {
+        $length = length($seqn);
+        my $endtmp = 0;
+        if($seqn =~ $repAright || $seqn =~ $repTright) {
+            my @tmp = split('',$seqn);
+            my $tmpchar = $tmp[$length-1]; #A or T
+            $endtmp += $params{trim_tail_right};
+            foreach (reverse 0..$length-$params{trim_tail_right}-1) {
+                last unless($tmp[$_] eq $tmpchar || $tmp[$_] eq 'N');
+                $endtmp++;
+            }
+            if($endtmp >= $length) {
+                $good = 0;
+                $filtercount{trim_tail_right}++;
+            } else {
+                $seqn = substr($seqn,0,$length-$endtmp);
+                $qualn = substr($qualn,0,$length-$endtmp) if(defined $qualn && length($qualn));
+                $end += $endtmp;
+            }
+        }
+    }
+    if($good && exists $params{trim_ns_left}) {
+        $length = length($seqn);
+        my $begintmp = 0;
+        if($seqn =~ $repNleft) {
+            my @tmp = split('',$seqn);
+            $begintmp += $params{trim_ns_left};
+            foreach ($params{trim_ns_left}..$length-1) {
+                last unless($tmp[$_] eq 'N');
+                $begintmp++;
+            }
+            if($begintmp >= $length) {
+                $good = 0;
+                $filtercount{trim_ns_left}++;
+            } else {
+                $seqn = substr($seqn,$begintmp);
+                $qualn = substr($qualn,$begintmp) if(defined $qualn && length($qualn));
+                $length = length($seqn);
+                $begin += $begintmp;
+            }
+        }
+    }
+    if($good && exists $params{trim_ns_right}) {
+        $length = length($seqn);
+        my $endtmp = 0;
+        if($seqn =~ $repNright) {
+            my @tmp = split('',$seqn);
+            $endtmp += $params{trim_ns_right};
+            foreach (reverse 0..$length-$params{trim_ns_right}-1) {
+                last unless($tmp[$_] eq 'N');
+                $endtmp++;
+            }
+            if($endtmp >= $length) {
+                $good = 0;
+                $filtercount{trim_ns_right}++;
+            } else {
+                $seqn = substr($seqn,0,$length-$endtmp);
+                $qualn = substr($qualn,0,$length-$endtmp) if(defined $qualn && length($qualn));
+                $end += $endtmp;
+            }
+        }
+    }
+
+    #check if trim to certain length
+    $length = length($seqn);
+    if($good && exists $params{trim_to_len} && $length > $params{trim_to_len}) {
+        $seqn = substr($seqn,0,$params{trim_to_len});
+        $qualn = substr($qualn,0,$params{trim_to_len}) if(defined $qualn && length($qualn));
+        $end += ($length-$params{trim_to_len});
+    }
+
+    #check for sequence length
+    $length = length($seqn);
+    $bylength = ($length ? 100/$length : 0);
+    if($bylength == 0) {
+        $good = 0;
+        $filtercount{zero_length}++;
+    }
+    if($good && exists $params{min_len} && $length < $params{min_len}) {
+        $good = 0;
+        $filtercount{min_len}++;
+    }
+    if($good && exists $params{max_len} && $length > $params{max_len}) {
+        $good = 0;
+        $filtercount{max_len}++;
+    }
+    if($good && exists $params{range_len} && !&checkRange($params{range_len},$length)) {
+        $good = 0;
+        $filtercount{range_len}++;
+    }
+
+    #check for quality scores
+    if($good && defined $qualn && (exists $params{min_qual_score} || exists $params{max_qual_score} || exists $params{min_qual_mean} || exists $params{max_qual_mean})) {
+        my ($err);
+        if($qualsnums) {
+            if($begin > 0) {
+                shift(@$qualsnums) foreach(1..$begin);
+            }
+            if($end > 0) {
+                pop(@$qualsnums) foreach(1..$end);
+            }
+        } else {
+            if(exists $params{phred64}) { #scale data to Phred scale if necessary
+                ($qualsnums,$err) = &convertQualAsciiToNumsPhred64($qualn);
+                if($err) {
+                    &printError("The sequence quality scores are not in Phred+64 format");
+                }
+            } else {
+                $qualsnums = &convertQualAsciiToNums($qualn);
+            }
+        }
+        if($good && exists $params{min_qual_score} && min(@$qualsnums) < $params{min_qual_score}) {
+            $good = 0;
+            $filtercount{min_qual_score}++;
+        }
+        if($good && exists $params{max_qual_score} && max(@$qualsnums) < $params{max_qual_score}) {
+            $good = 0;
+            $filtercount{max_qual_score}++;
+        }
+        if($good && exists $params{min_qual_mean} && &getArrayMean(@$qualsnums) < $params{min_qual_mean}) {
+            $good = 0;
+            $filtercount{min_qual_mean}++;
+        }
+        if($good && exists $params{max_qual_mean} && &getArrayMean(@$qualsnums) < $params{max_qual_mean}) {
+            $good = 0;
+            $filtercount{max_qual_mean}++;
+        }
+    }
+
+    #check for GC content
+    if($good && (exists $params{min_gc} || exists $params{max_gc} || exists $params{range_gc})) {
+        my $gc = ($seqn =~ tr/GC//);
+        $gc = sprintf("%d",$gc*$bylength);
+        if(exists $params{min_gc} && $gc < $params{min_gc}) {
+            $good = 0;
+            $filtercount{min_gc}++;
+        }
+        if($good && exists $params{max_gc} && $gc > $params{max_gc}) {
+            $good = 0;
+            $filtercount{max_gc}++;
+        }
+        if($good && exists $params{range_gc} && !&checkRange($params{range_gc},$gc)) {
+            $good = 0;
+            $filtercount{range_gc}++;
+        }
+    }
+
+    #check for N's in sequence
+    if($good && (exists $params{ns_max_p} || exists $params{ns_max_n})) {
+        my $ns = ($seqn =~ tr/N//);
+        if(exists $params{ns_max_p} && ($ns*$bylength) > $params{ns_max_p}) {
+            $good = 0;
+            $filtercount{ns_max_p}++;
+        }
+        if($good && exists $params{ns_max_n} && $ns > $params{ns_max_n}) {
+            $good = 0;
+            $filtercount{ns_max_n}++;
+        }
+    }
+
+    #check for non IUPAC chars in sequence
+    if($good && exists $params{noniupac} && $seqn =~ /[^ACGTN]/o) {
+        $good = 0;
+        $filtercount{noniupac}++;
+    }
+
+    #check for additional filter parameters
+    if($good && @cps) {
+        foreach my $p (@cps) {
+            if($p->[0]) { #repeats
+                if(index($seqn,$p->[1]x$p->[2]) != -1) {
+                    $good = 0;
+                    $filtercount{custom_params}++;
+                    last;
+                }
+            } else { #percentage
+                my $ns = 0;
+                my $v = $p->[1];
+                $ns++ while($seqn =~ /$v/g);
+                if((100*$ns/$length) > $p->[2]) {
+                    $good = 0;
+                    $filtercount{custom_params}++;
+                    last;
+                }
+            }
+        }
+    }
+
+    #check for sequence complexity
+    if($good && defined $complval) {
+        my ($rest,$steps,@vals,$str,$num,$bynum);
+        if($length <= $WINDOWSIZE) {
+            $rest = $length;
+            $steps = 0;
+        } else {
+            $steps = int(($length - $WINDOWSIZE) / $WINDOWSTEP) + 1;
+            $rest = $length - $steps * $WINDOWSTEP;
+            unless($rest > $WINDOWSTEP) {
+                $rest += $WINDOWSTEP;
+                $steps--;
+            }
+        }
+        $num = $WINDOWSIZE-2;
+        $bynum = 1/$num;
+        $num--;
+        my $mean = 0;
+        if($params{lc_method} eq 'dust') {
+            my $dustscore;
+            foreach my $i (0..$steps-1) {
+                $str = substr($seqn,($i * $WINDOWSTEP),$WINDOWSIZE);
+                %counts = ();
+                foreach my $i (@WINDOWSIZEARRAY) {
+                    $counts{substr($str,$i,3)}++;
+                }
+                $dustscore = 0;
+                foreach(values %counts) {
+                    $dustscore += ($_ * ($_ - 1) * $POINTFIVE);
+                }
+                push(@vals,($dustscore * $bynum));
+            }
+            #last step
+            if($rest > 5) {
+                $str = substr($seqn,($steps * $WINDOWSTEP),$rest);
+                %counts = ();
+                $num = $rest-2;
+                foreach my $i (0..($num - 1)) {
+                    $counts{substr($str,$i,3)}++;
+                }
+                $dustscore = 0;
+                foreach(values %counts) {
+                    $dustscore += ($_ * ($_ - 1) * $POINTFIVE);
+                }
+                push(@vals,(($dustscore / ($num-1)) * (($WINDOWSIZE - 2) / $num)));
+            } else {
+                push(@vals,31); #to assign a maximum score based on the scaling factor 100/31
+            }
+            $mean = &getArrayMean(@vals);
+            if(int($mean * 100 / 31) > $complval) {
+                $good = 0;
+                $filtercount{lc_method}++;
+            }
+        } elsif($params{lc_method} eq 'entropy') {
+            my $entropyval;
+            foreach my $i (0..$steps-1) {
+                $str = substr($seqn,($i * $WINDOWSTEP),$WINDOWSIZE);
+                %counts = ();
+                foreach my $i (@WINDOWSIZEARRAY) {
+                    $counts{substr($str,$i,3)}++;
+                }
+                $entropyval = 0;
+                foreach(values %counts) {
+                    $entropyval -= ($_ * $bynum) * log($_ * $bynum);
+                }
+                push(@vals,($entropyval * $ONEOVERLOG62));
+            }
+            #last step
+            if($rest > 5) {
+                $str = substr($seqn,($steps * $WINDOWSTEP),$rest);
+                %counts = ();
+                $num = $rest-2;
+                foreach my $i (0..($num - 1)) {
+                    $counts{substr($str,$i,3)}++;
+                }
+                $entropyval = 0;
+                $bynum = 1/$num;
+                foreach(values %counts) {
+                    $entropyval -= ($_ * $bynum) * log($_ * $bynum);
+                }
+                push(@vals,($entropyval / log($num)));
+            } else {
+                push(@vals,0);
+            }
+            $mean = &getArrayMean(@vals);
+            if(int($mean * 100) < $complval) {
+                $good = 0;
+                $filtercount{lc_method}++;
+            }
+        }
+    }
+
+    #stop here for paired-end reads
+    if($file2) {
+        return ($seqn,$good,$begin,$end);
+    }
+
+    #check for read duplicates
+    if($good && $derep) {
+        if($exactonly) {
+            $md5 = md5_hex($seqn);
+            if(exists $dereptypes{0}) {
+                if(exists $md5s{$md5}) { #forward duplicate
+                    $md5s{$md5}->{0}++;
+                    if($derepmin <= $md5s{$md5}->{0}+1) {
+                        $good = 0;
+                        $filtercount{derep}++;
+                    }
+                }
+            }
+            if($good && exists $dereptypes{3}) {
+                $md5r = md5_hex(&revcompuc($seqn));
+                if(exists $md5s{$md5r}) { #reverse duplicate
+                    $md5s{$md5}->{3}++;
+                    if($derepmin <= $md5s{$md5}->{3}+1) {
+                        $good = 0;
+                        $filtercount{derep}++;
+                    }
+                }
+            }
+            unless(exists $md5s{$md5}) {
+                $md5s{$md5} = {0 => 0, 3 => 0};
+            }
+        } else {
+            push(@seqsP,[$seqn,$goodcount++,$length]);
+            #keep write data for possible duplicates
+            if($params{out_format} == 1) { #FASTA
+                push(@printtmp,[$sid,$header,$seq,$begin,$end,'']);
+            } else { # FASTQ or FASTA+QUAL or FASTQ+FASTA or FASTQ+FASTA+QUAL
+                push(@printtmp,[$sid,$header,$seq,$begin,$end,$qual]);
+            }
+        }
+    }
+
+    if($good && (($derep && $exactonly) || !$derep)) { #passed filters
+        $seqcount++;
+        $seqbases += $length;
+        return if($nogood);
+        #check if change of sequence ID
+        if(exists $params{seq_id}) {
+            if($mappings) {
+                print $fhmappings join("\t",$sid,$params{seq_id}.$seqcount)."\n";
+            }
+            $sid = $params{seq_id}.$seqcount;
+        }
+        if(exists $params{rm_header}) {
+            $header = undef;
+        }
+        #trim if necessary
+        if($begin) {
+            $seq = substr($seq,$begin);
+            $qual = substr($qual,$begin) if(defined $qual && length($qual));
+        }
+        if($end) {
+            $length = length($seq);
+            $seq = substr($seq,0,$length-$end);
+            $qual = substr($qual,0,$length-$end) if(defined $qual && length($qual));
+        }
+        #change case
+        if(exists $params{seq_case}) {
+            if($params{seq_case} eq 'lower') { #lower case
+                $seq = lc($seq);
+            } elsif($params{seq_case} eq 'upper') { #upper case
+                $seq = uc($seq);
+            }
+        }
+        #convert between DNA and RNA
+        if(exists $params{dna_rna}) {
+            if($params{dna_rna} eq 'dna') { #RNA to DNA
+                $seq =~ tr/Uu/Tt/;
+            } elsif($params{dna_rna} eq 'rna') { #DNA to RNA
+                $seq =~ tr/Tt/Uu/;
+            }
+        }
+        #write data
+        if($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5) { # FASTQ
+            &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+            if($stdoutgood) {
+                print STDOUT '@'.$sid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+                print STDOUT '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                print STDOUT $qual."\n";
+            } else {
+                print $fhgood '@'.$sid.($header ? ' '.$header : '')."\n";
+                print $fhgood $seq."\n";
+                print $fhgood '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                print $fhgood $qual."\n";
+            }
+        }
+        if($params{out_format} == 1 || $params{out_format} == 2 || $params{out_format} == 4 || $params{out_format} == 5) { #FASTA
+            #set line length
+            if($linelen) {
+                $seq =~ s/(.{$linelen})/$1\n/g;
+                $seq =~ s/\n$//;
+            }
+            if($stdoutgood) {
+                print STDOUT '>'.$sid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+            } elsif($params{out_format} == 1 || $params{out_format} == 2) {
+                print $fhgood '>'.$sid.($header ? ' '.$header : '')."\n";
+                print $fhgood $seq."\n";
+            } else {
+                print $fhgood3 '>'.$sid.($header ? ' '.$header : '')."\n";
+                print $fhgood3 $seq."\n";
+            }
+        }
+        if($params{out_format} == 2 || $params{out_format} == 5) { #QUAL
+            &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+            print $fhgood2 '>'.$sid.($header ? ' '.$header : '')."\n";
+            print $fhgood2 &convertQualArrayToString(&convertQualAsciiToNums($qual),$linelen)."\n";
+        }
+    } elsif($good && $derep && !$exactonly) {
+        #do nothing as sequences will be used for duplicate check
+    } else { #filtered out
+        $badcount++;
+        $badbases += length($seq);
+        return if($nobad);
+        #write data
+        if($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5) { # FASTQ
+            &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+            if($stdoutbad) {
+                print STDOUT '@'.$sid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+                print STDOUT '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                print STDOUT $qual."\n";
+            } else {
+                print $fhbad '@'.$sid.($header ? ' '.$header : '')."\n";
+                print $fhbad $seq."\n";
+                print $fhbad '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                print $fhbad $qual."\n";
+            }
+        }
+        if($params{out_format} == 1 || $params{out_format} == 2 || $params{out_format} == 4 || $params{out_format} == 5) { #FASTA
+            #set line length
+            if($linelen) {
+                $seq =~ s/(.{$linelen})/$1\n/g;
+                $seq =~ s/\n$//;
+            }
+            if($stdoutbad) {
+                print STDOUT '>'.$sid.($header ? ' '.$header : '')."\n";
+                print STDOUT $seq."\n";
+            } elsif($params{out_format} == 1 || $params{out_format} == 2) {
+                print $fhbad '>'.$sid.($header ? ' '.$header : '')."\n";
+                print $fhbad $seq."\n";
+            } else {
+                print $fhbad3 '>'.$sid.($header ? ' '.$header : '')."\n";
+                print $fhbad3 $seq."\n";
+            }
+        }
+        if($params{out_format} == 2 || $params{out_format} == 5) { #QUAL
+            &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+            print $fhbad2 '>'.$sid.($header ? ' '.$header : '')."\n";
+            print $fhbad2 &convertQualArrayToString(&convertQualAsciiToNums($qual),$linelen)."\n";
+        }
+    }
+}
+
+#dereplicate sequences
+sub derepSeqs {
+    my $numseqs = scalar(@seqsP);
+    if($derep && $numseqs) {
+        my ($sid,$seq,$qual,$header,$begin,$end);
+        my ($dcounts,undef,$dupls) = &checkForDupl(\@seqsP,\%dereptypes,$numseqs);
+
+        print STDERR "Write results to output file(s)\n" if(exists $params{verbose});
+        #for progress bar
+        my $progress = 0;
+        my $counter = 1;
+        my $part = int($numseqs/100);
+        print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+
+        foreach my $i (0..$numseqs-1) {
+            #progress bar stuff
+	    $counter++;
+	    if($counter > $part) {
+		$counter = 1;
+		$progress++;
+		$progress = 99 if($progress > 99);
+		print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+	    }
+            #get data
+            $sid = $printtmp[$i]->[0];
+            $seq = $printtmp[$i]->[2];
+            $qual = $printtmp[$i]->[5];
+            $header = $printtmp[$i]->[1];
+            $begin = $printtmp[$i]->[3];
+            $end = $printtmp[$i]->[4];
+            #write data
+            if(exists $dupls->{$i} || (exists $params{seq_num} && $params{seq_num} <= $seqcount)) { #bad
+                $filtercount{derep}++;
+                $badcount++;
+                $badbases += length($seq);
+                next if($nobad);
+                #write data
+                if($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5) { # FASTQ
+                    &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+                    if($stdoutbad) {
+                        print STDOUT '@'.$sid.($header ? ' '.$header : '')."\n";
+                        print STDOUT $seq."\n";
+                        print STDOUT '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                        print STDOUT $qual."\n";
+                    } else {
+                        print $fhbad '@'.$sid.($header ? ' '.$header : '')."\n";
+                        print $fhbad $seq."\n";
+                        print $fhbad '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                        print $fhbad $qual."\n";
+                    }
+                }
+                if($params{out_format} == 1 || $params{out_format} == 2 || $params{out_format} == 4 || $params{out_format} == 5) { #FASTA
+                    #set line length
+                    if($linelen) {
+                        $seq =~ s/(.{$linelen})/$1\n/g;
+                        $seq =~ s/\n$//;
+                    }
+                    if($stdoutbad) {
+                        print STDOUT '>'.$sid.($header ? ' '.$header : '')."\n";
+                        print STDOUT $seq."\n";
+                    } elsif($params{out_format} == 1 || $params{out_format} == 2) {
+                        print $fhbad '>'.$sid.($header ? ' '.$header : '')."\n";
+                        print $fhbad $seq."\n";
+                    } else {
+                        print $fhbad3 '>'.$sid.($header ? ' '.$header : '')."\n";
+                        print $fhbad3 $seq."\n";
+                    }
+                }
+                if($params{out_format} == 2 || $params{out_format} == 5) { #QUAL
+                    &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+                    print $fhbad2 '>'.$sid.($header ? ' '.$header : '')."\n";
+                    print $fhbad2 &convertQualArrayToString(&convertQualAsciiToNums($qual),$linelen)."\n";
+                }
+            } else { #good
+                $seqcount++;
+                $seqbases += (length($seq)-$begin-$end);
+                next if($nogood);
+                #check if change of sequence ID
+                if(exists $params{seq_id}) {
+                    if($mappings) {
+                        print $fhmappings join("\t",$sid,$params{seq_id}.$seqcount)."\n";
+                    }
+                    $sid = $params{seq_id}.$seqcount;
+                }
+                if(exists $params{rm_header}) {
+                    $header = undef;
+                }
+                #trim if necessary
+                if($begin) {
+                    $seq = substr($seq,$begin);
+                    $qual = substr($qual,$begin) if(defined $qual && length($qual));
+                }
+                if($end) {
+                    $length = length($seq);
+                    $seq = substr($seq,0,$length-$end);
+                    $qual = substr($qual,0,$length-$end) if(defined $qual && length($qual));
+                }
+                #change case
+                if(exists $params{seq_case}) {
+                    if($params{seq_case} eq 'lower') { #lower case
+                        $seq = lc($seq);
+                    } elsif($params{seq_case} eq 'upper') { #upper case
+                        $seq = uc($seq);
+                    }
+                }
+                #convert between DNA and RNA
+                if(exists $params{dna_rna}) {
+                    if($params{dna_rna} eq 'dna') { #RNA to DNA
+                        $seq =~ tr/Uu/Tt/;
+                    } elsif($params{dna_rna} eq 'rna') { #DNA to RNA
+                        $seq =~ tr/Tt/Uu/;
+                    }
+                }
+                #write data
+                if($params{out_format} == 3 || $params{out_format} == 4 || $params{out_format} == 5) { # FASTQ
+                    &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+                    if($stdoutgood) {
+                        print STDOUT '@'.$sid.($header ? ' '.$header : '')."\n";
+                        print STDOUT $seq."\n";
+                        print STDOUT '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                        print STDOUT $qual."\n";
+                    } else {
+                        print $fhgood '@'.$sid.($header ? ' '.$header : '')."\n";
+                        print $fhgood $seq."\n";
+                        print $fhgood '+'.(exists $params{no_qual_header} ? '' : $sid.($header ? ' '.$header : ''))."\n";
+                        print $fhgood $qual."\n";
+                    }
+                }
+                if($params{out_format} == 1 || $params{out_format} == 2 || $params{out_format} == 4 || $params{out_format} == 5) { #FASTA
+                    #set line length
+                    if($linelen) {
+                        $seq =~ s/(.{$linelen})/$1\n/g;
+                        $seq =~ s/\n$//;
+                    }
+                    if($stdoutgood) {
+                        print STDOUT '>'.$sid.($header ? ' '.$header : '')."\n";
+                        print STDOUT $seq."\n";
+                    } elsif($params{out_format} == 1 || $params{out_format} == 2) {
+                        print $fhgood '>'.$sid.($header ? ' '.$header : '')."\n";
+                        print $fhgood $seq."\n";
+                    } else {
+                        print $fhgood3 '>'.$sid.($header ? ' '.$header : '')."\n";
+                        print $fhgood3 $seq."\n";
+                    }
+                }
+                if($params{out_format} == 2 || $params{out_format} == 5) { #QUAL
+                    &printError("missing quality data for sequence \"$sid\" or greater number of sequences than available quality scores") unless(defined $qual);
+                    print $fhgood2 '>'.$sid.($header ? ' '.$header : '')."\n";
+                    print $fhgood2 &convertQualArrayToString(&convertQualAsciiToNums($qual),$linelen)."\n";
+                }
+            }
+        }
+        print STDERR "\r\tdone               \n" if(exists $params{verbose});
+    }
+}
+
+#calculate summary statistics from sequences
+sub calcSeqStats {
+    my ($seq,$length,$stats,$kmers,$odds,$counts,$pair) = @_;
+
+    #length related: min, max, range, mean, stddev, mode
+    if(exists $params{stats_len} || exists $params{stats_assembly}) {
+        $counts->{length}->{$length}++;
+    }
+
+    #dinucleotide odds ratio related: aatt, acgt, agct, at, catg, ccgg, cg, gatc, gc, ta
+    if(exists $params{stats_dinuc}) {
+        &dinucOdds($seq,$length,$odds);
+    }
+
+    #tag related: probability of 5' and 3' tag sequence based on kmer counts
+    if(exists $params{stats_tag}) {
+        #get kmers
+        if($length >= 5) {
+            #get 5' and 3' ends
+            my $str5 = substr($seq,0,5);
+            my $str3 = substr($seq,$length-5);
+            unless($str5 eq 'AAAAA' || $str5 eq 'TTTTT' || $str5 eq 'CCCCC' || $str5 eq 'GGGGG' || $str5 eq 'NNNNN') {
+                $kmers->{5}->{$str5}++;
+            }
+            unless($str3 eq 'AAAAA' || $str3 eq 'TTTTT' || $str3 eq 'CCCCC' || $str3 eq 'GGGGG' || $str3 eq 'NNNNN') {
+                $kmers->{3}->{$str3}++;
+            }
+        }
+        #check for MID tags
+        if($length >= $MIDCHECKLENGTH) {
+            my $str5 = substr($seq,0,$MIDCHECKLENGTH);
+            foreach my $mid (keys %MIDS) {
+                if(index($str5,$mid) != -1) {
+                    $MIDS{$mid}++;
+                    last;
+                }
+            }
+        }
+    }
+
+    #ambiguous base N related: seqswithn, maxp
+    if(exists $params{stats_ns}) {
+        my $bylength = 100/$length;
+        my $ns = ($seq =~ tr/N//);
+        if($pair) {
+            $stats->{stats_ns2}->{seqswithn}++ if($ns > 0);
+            $stats->{stats_ns2}->{maxn} = $ns if($ns > ($stats->{stats_ns2}->{maxn}||0));
+            $ns = ($ns > 0 && $ns*$bylength < 1 ? 1 : sprintf("%d",$ns*$bylength));
+            $stats->{stats_ns2}->{maxp} = $ns if($ns > ($stats->{stats_ns2}->{maxp}||0));
+        } else {
+            $stats->{stats_ns}->{seqswithn}++ if($ns > 0);
+            $stats->{stats_ns}->{maxn} = $ns if($ns > ($stats->{stats_ns}->{maxn}||0));
+            $ns = ($ns > 0 && $ns*$bylength < 1 ? 1 : sprintf("%d",$ns*$bylength));
+            $stats->{stats_ns}->{maxp} = $ns if($ns > ($stats->{stats_ns}->{maxp}||0));
+        }
+    }
+}
+
+#dinucleotide odds ratio calculation
+sub dinucOdds {
+    my ($seq,$length,$odds) = @_;
+    my ($mononum,$dinum,$i,$x,$y);
+    my %di = %DN_DI;
+    my (%mono,$lengthtmp);
+    my @tmp = split(/N+/,$seq);
+    foreach(@tmp) {
+        $lengthtmp = length($_)-1;
+	next unless($lengthtmp > 0);
+	$mono{AT} += ($_ =~ tr/AT//);
+	$mono{GC} += ($_ =~ tr/GC//);
+        $i = 0;
+        while($i < $lengthtmp) {
+            $di{substr($_,$i++,2)}++;
+        }
+    }
+    $dinum = sum(values %di);
+
+    if($dinum) {
+        $mononum = sum(values %mono);
+	my $factor = 2 * $mononum * $mononum / $dinum;
+	my $AT = $mono{AT};
+	my $GC = $mono{GC};
+	if($AT) {
+	    my $AT2 = $factor / ($AT * $AT);
+	    $odds->{'AATT'} += ($di{'AA'} + $di{'TT'}) * $AT2;
+	    $odds->{'AT'}   +=          2 * $di{'AT'}  * $AT2;
+	    $odds->{'TA'}   +=          2 * $di{'TA'}  * $AT2;
+	    if($GC) {
+		my $ATGC = $factor / ($AT * $GC);
+		$odds->{'ACGT'} += ($di{'AC'} + $di{'GT'}) * $ATGC;
+		$odds->{'AGCT'} += ($di{'AG'} + $di{'CT'}) * $ATGC;
+		$odds->{'CATG'} += ($di{'CA'} + $di{'TG'}) * $ATGC;
+		$odds->{'GATC'} += ($di{'GA'} + $di{'TC'}) * $ATGC;
+		my $GC2 = $factor / ($GC * $GC);
+		$odds->{'CCGG'} += ($di{'CC'} + $di{'GG'}) * $GC2;
+		$odds->{'CG'}   +=          2 * $di{'CG'}  * $GC2;
+		$odds->{'GC'}   +=          2 * $di{'GC'}  * $GC2;
+	    }
+	} elsif($GC) {
+	    my $GC2 = $factor / ($GC * $GC);
+	    $odds->{'CCGG'} += ($di{'CC'} + $di{'GG'}) * $GC2;
+	    $odds->{'CG'}   +=          2 * $di{'CG'}  * $GC2;
+	    $odds->{'GC'}   +=          2 * $di{'GC'}  * $GC2;
+	}
+    }
+}
+
+#calculate basic stats from an hash of number->count values
+sub generateStats {
+    my $counts = shift;
+    my ($min,$max,$modeval,$mode,$mean,$count,$std,$x,$c,@vals,$num,$median,%stats);
+
+    #min, max, mode and modeval
+    $min = -1;
+    $max = $modeval = $mean = $count = $std = $num = 0;
+    while (($x, $c) = each(%$counts)) {
+        if($min == -1) {
+            $min = $x;
+        } elsif($min > $x) {
+            $min = $x;
+        }
+        if($max < $x) {
+            $max = $x;
+        }
+        if($modeval < $c) {
+            $modeval = $c;
+            $mode = $x;
+        }
+        $mean += $x*$c;
+        $count += $c;
+        foreach(1..$c) {
+            push(@vals,$x);
+            $num++;
+        }
+    }
+
+    #mean and stddev
+    $mean /= $count;
+    while (($x, $c) = each(%$counts)) {
+        $std += $c*(($x-$mean)**2);
+    }
+
+    #median
+    if($num == 1) {
+        $median = $vals[0];
+    } elsif($num == 2) {
+        $median = ($vals[0]+$vals[1])/2;
+    } else {
+        @vals = sort {$a <=> $b} @vals;
+        if($num % 2) {
+            $median = $vals[($num-1)/2];
+        } else {
+            $median = ($vals[$num/2]+$vals[$num/2-1])/2;
+        }
+    }
+
+    #save stats
+    $stats{min} = $min;
+    $stats{max} = $max;
+    $stats{range} = $max-$min+1;
+    $stats{modeval} = $modeval;
+    $stats{mode} = $mode;
+    $stats{mean} = sprintf("%.2f",$mean);
+    $stats{stddev} = sprintf("%.2f",($std/$count)**(1/2));
+    $stats{median} = $median;
+
+    return \%stats;
+}
+
+sub generateStatsType {
+    my $counts = shift;
+    my (%stats,$min,$max,$modeval,$mode,$mean,$std,$x,$c,@vals,$num,$median,$p25,$p75,$numq,$i,$j,$median1,$median2,$p251,$p252,$p751,$p752);
+
+    foreach my $kind (keys %$counts) {
+	@vals = ();
+	$min = -1;
+	$max = $modeval = $mean = $std = $num = 0;
+        foreach my $x1 (sort {$a <=> $b} keys %{$counts->{$kind}}) {
+            $c = $counts->{$kind}->{$x1};
+	    if($min == -1) {
+		$min = $x1;
+	    }
+	    if($max < $x1) {
+		$max = $x1;
+	    }
+	    if($modeval < $c) {
+		$modeval = $c;
+		$mode = $x1;
+	    }
+	    $mean += $x1*$c;
+	    $num += $c;
+            push(@vals,[$c,$x1]); #count, values
+	}
+
+	$mean /= $num;
+	while (($x, $c) = each(%{$counts->{$kind}})) {
+	    $std += $c*(($x-$mean)**2);
+	}
+
+	if($num == 1) {
+            $median = $p25 = $p75 = $vals[0]->[1];
+	} elsif($num == 2) {
+            if($vals[0]->[0] == 1) { #two different numbers
+                $p25 = $vals[0]->[1];
+                $p75 = $vals[1]->[1];
+                $median = ($vals[0]->[1]+$vals[1]->[1])/2;
+            } else {
+                $p25 = $p75 = $median = $vals[0]->[1]; #both same
+            }
+	} elsif($num > 2) {
+	    if($num % 2) {
+                $i = 0;
+                $j = 0;
+                while($i <= ($num-1)/2) {
+                    $median = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+		$numq = ($num+1)/2;
+	    } else {
+                $i = 0;
+                $j = 0;
+                while($i <= ($num/2-1)) {
+                    $median1 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+                $median2 = $median1;
+                while($i <= ($num/2)) {
+                    $median2 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+                $median = ($median1 + $median2)/2;
+		$numq = $num/2;
+	    }
+	    if($numq % 2) {
+                $i = 0;
+                $j = 0;
+                while($i <= (($numq-1)/2)) {
+                    $p25 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+                $p75 = $p25;
+                while($i <= ($num-($numq-1)/2-1)) {
+                    $p75 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+	    } else {
+                $i = 0;
+                $j = 0;
+                while($i <= ($numq/2-1)) {
+                    $p251 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+                $p252 = $p251;
+                while($i <= ($numq/2)) {
+                    $p252 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+                $p751 = $p252;
+                while($i <= ($num-$numq/2-1)) {
+                    $p751 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+                $p752 = $p751;
+                while($i <= ($num-$numq/2)) {
+                    $p752 = $vals[$j]->[1];
+                    $i += $vals[$j]->[0];
+                    $j++;
+                }
+                $p25 = ($p251 + $p252) / 2;
+                $p75 = ($p751 + $p752) / 2;
+	    }
+	} else {
+            $median = $p25 = $p75 = 0;
+        }
+
+	$stats{$kind}->{min} = $min;
+	$stats{$kind}->{max} = $max;
+	$stats{$kind}->{range} = $max-$min+1;
+	$stats{$kind}->{modeval} = $modeval;
+	$stats{$kind}->{mode} = $mode;
+	$stats{$kind}->{mean} = sprintf("%.2f",$mean);
+	$stats{$kind}->{std} = sprintf("%.2f",($std/$num)**(1/2));
+	$stats{$kind}->{median} = int($median);
+	$stats{$kind}->{p25} = int($p25);
+	$stats{$kind}->{p75} = int($p75);
+    }
+
+    return \%stats;
+}
+
+#requires seqs array with [upper-case seq, array index, length] for each entry
+sub checkForDupl {
+    #requires seqs array with [upper-case seq, array index, length] for each entry
+    my ($seqs,$types,$numseqs) = @_;
+    my (@sort,$num,%dupls,$pretype,$precount,%counts,%lens);
+    #precount = number duplicates for the same sequence
+
+    print STDERR "Check for duplicates\n" if(exists $params{verbose});
+
+    #for progress bar
+    my $progress = 1;
+    my $counter = 1;
+    my $part = int($numseqs*4/100);
+    print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+    &printWeb("STATUS: duplicate-status $progress");
+
+    #exact duplicates and prefix duplicates
+    if(exists $types->{0} || exists $types->{1} || exists $types->{2}) {
+	$precount = 0;
+	$pretype = -1;
+        @sort = sort {$a->[0] cmp $b->[0]} @$seqs;
+        foreach my $i (0..$numseqs-2) {
+            if(exists $types->{0} && $sort[$i]->[2] == $sort[$i+1]->[2] && $sort[$i]->[0] eq $sort[$i+1]->[0]) {
+                $dupls{$sort[$i]->[1]} = 0;
+                $lens{$sort[$i]->[2]}->{0}++;
+		if($pretype == 0) {
+		    $precount++;
+		} else {
+		    if($pretype == 1 && $precount) {
+			$counts{$precount}->{$pretype}++;
+		    }
+		    $pretype = 0;
+		    $precount = 1;
+		}
+            } elsif(exists $types->{1} && $sort[$i]->[2] < $sort[$i+1]->[2] && $sort[$i]->[0] eq substr($sort[$i+1]->[0],0,$sort[$i]->[2])) {
+                $dupls{$sort[$i]->[1]} = 1;
+                $lens{$sort[$i]->[2]}->{1}++;
+		if($pretype == 1) {
+		    $precount++;
+		} else {
+		    if($pretype == 0 && $precount) {
+			$counts{$precount}->{$pretype}++;
+		    }
+		    $pretype = 1;
+		    $precount = 1;
+		}
+            } else {
+		if($precount) {
+		    $counts{$precount}->{$pretype}++;
+		    $precount = 0;
+		}
+		$pretype = -1;
+	    }
+            $sort[$i] = undef;
+	    #progress bar stuff
+	    $counter++;
+	    if($counter > $part) {
+		$counter = 1;
+		$progress++;
+		$progress = 99 if($progress > 99);
+		print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+                &printWeb("STATUS: duplicate-status $progress");
+	    }
+        }
+	if($precount) {
+	    $counts{$precount}->{$pretype}++;
+	}
+    }
+    #suffix duplicates
+    if(exists $types->{2}) {
+        $num = 0;
+        @sort = ();
+        foreach(@$seqs) {
+            next if(exists $dupls{$_->[1]});
+            push(@sort,[(scalar reverse $_->[0]),$_->[1],$_->[2]]);
+            $num++;
+        }
+	if($num > 1) {
+	    $precount = 0;
+	    $pretype = -1;
+	    @sort = sort {$a->[0] cmp $b->[0]} @sort;
+	    foreach my $i (0..$num-2) {
+		if($sort[$i]->[2] < $sort[$i+1]->[2] && $sort[$i]->[0] eq substr($sort[$i+1]->[0],0,$sort[$i]->[2])) {
+		    $dupls{$sort[$i]->[1]} = 2;
+                    $lens{$sort[$i]->[2]}->{2}++;
+		    if($pretype == 2) {
+			$precount++;
+		    } else {
+			$pretype = 2;
+			$precount = 1;
+		    }
+		} else {
+		    if($precount) {
+			$counts{$precount}->{$pretype}++;
+			$precount = 0;
+		    }
+		    $pretype = -1;
+		}
+		$sort[$i] = undef;
+		#progress bar stuff
+		$counter++;
+		if($counter > $part) {
+		    $counter = 1;
+		    $progress++;
+		    $progress = 99 if($progress > 99);
+		    print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+                    &printWeb("STATUS: duplicate-status $progress");
+		}
+	    }
+	    if($precount) {
+		$counts{$precount}->{$pretype}++;
+	    }
+	}
+    }
+    #reverse complement exact and prefix/suffix duplicates
+    if(exists $types->{3} || exists $types->{4}) {
+        $num = 0;
+        @sort = ();
+        foreach(@$seqs) {
+            if(exists $dupls{$_->[1]}) {
+		$counter++;
+		next;
+	    }
+            push(@sort,[$_->[0],$_->[1],$_->[2],0]);
+            push(@sort,[&revcompuc($_->[0]),$_->[1],$_->[2],1]);
+            $num += 2;
+        }
+	if($num > 1) {
+	    $precount = 0;
+	    $pretype = -1;
+	    @sort = sort {$a->[0] cmp $b->[0]} @sort;
+	    foreach my $i (0..$num-2) {
+		unless($sort[$i]->[3] == $sort[$i+1]->[3] || $sort[$i]->[1] eq $sort[$i+1]->[1] || exists $dupls{$sort[$i]->[1]}) { #don't check if both same (original or revcomp) or already counted as dubs
+		    if(exists $types->{3} && $sort[$i]->[2] == $sort[$i+1]->[2] && $sort[$i]->[0] eq $sort[$i+1]->[0]) {
+			$dupls{$sort[$i]->[1]} = 3;
+                        $lens{$sort[$i]->[2]}->{3}++;
+			if($pretype == 3) {
+			    $precount++;
+			} else {
+			    if($pretype == 4 && $precount) {
+				$counts{$precount}->{$pretype}++;
+			    }
+			    $pretype = 3;
+			    $precount = 1;
+			}
+		    } elsif(exists $types->{4} && $sort[$i]->[2] < $sort[$i+1]->[2] && $sort[$i]->[0] eq substr($sort[$i+1]->[0],0,$sort[$i]->[2])) {
+			$dupls{$sort[$i]->[1]} = 4;
+                        $lens{$sort[$i]->[2]}->{4}++;
+			if($pretype == 4) {
+			    $precount++;
+			} else {
+			    if($pretype == 3 && $precount) {
+				$counts{$precount}->{$pretype}++;
+			    }
+			    $pretype = 4;
+			    $precount = 1;
+			}
+		    } else {
+			if($precount) {
+			    $counts{$precount}->{$pretype}++;
+			    $precount = 0;
+			}
+			$pretype = -1;
+		    }
+		}
+		$sort[$i] = undef;
+		#progress bar stuff
+		$counter++;
+		if($counter > $part) {
+		    $counter = 1;
+		    $progress++;
+		    $progress = 99 if($progress > 99);
+		    print STDERR "\r\tstatus: ".int($progress)." \%" if(exists $params{verbose});
+                    &printWeb("STATUS: duplicate-status $progress");
+		}
+	    }
+	    if($precount) {
+		$counts{$precount}->{$pretype}++;
+	    }
+	}
+    }
+    print STDERR "\r\tdone               \n" if(exists $params{verbose});
+    &printWeb("STATUS: duplicate-status 100");
+    return (\%counts,\%lens,\%dupls);
+}
+
+#get the frequency of possible tags by shifting kmers by max 2 positions when aligned
+sub getTagFrequency {
+    my ($kmers) = @_;
+
+    #find most abundant kmer counts
+    my $percentone = $numseqs/100;
+    my $percentten = $numseqs/10;
+    my %most;
+    foreach my $sp (keys %$kmers) {
+	$most{$sp}->{max} = 0;
+	foreach(keys %{$kmers->{$sp}}) {
+#	    next if($_ eq 'A'x5 || $_ eq 'T'x5 || $_ eq 'C'x5 || $_ eq 'G'x5 || $_ eq 'N'x5);
+	    if($kmers->{$sp}->{$_} >= $percentten) {
+		$most{$sp}->{ten}++;
+	    } elsif($kmers->{$sp}->{$_} >= $percentone) {
+		$most{$sp}->{one}++;
+	    }
+	    #get max count
+	    $most{$sp}->{max} = $kmers->{$sp}->{$_} if($most{$sp}->{max} < $kmers->{$sp}->{$_});
+	}
+    }
+
+    #filter kmers by frequency - threshold of >10% occurrence -> max of 9 different kmers or more if there is non with >10% occurrence
+    my $numseqssub = $numseqs/10;
+    my $onecount = 2;
+    foreach my $sp (keys %$kmers) {
+	foreach(keys %{$kmers->{$sp}}) {
+	    if(exists $most{$sp}->{ten} && $most{$sp}->{ten} > 0) {
+		delete $kmers->{$sp}->{$_} if($kmers->{$sp}->{$_} < $percentten);
+	    } elsif(exists $most{$sp}->{one} && $most{$sp}->{one} > 0) {
+		delete $kmers->{$sp}->{$_} if($kmers->{$sp}->{$_} < $percentone);
+	    } else {
+		delete $kmers->{$sp}->{$_} if($kmers->{$sp}->{$_} != $most{$sp}->{max});
+	    }
+	}
+    }
+
+    my (%kmersum,%kmershift);
+    foreach my $sp (sort {$b <=> $a} keys %$kmers) { #5' before 3'
+	#if more than one kmer in array, test if shifted by max 2 positions
+	my $numkmer = scalar(keys %{$kmers->{$sp}});
+
+	if($numkmer > 1) {
+	    my @matrix;
+	    my @kmersort = sort {$kmers->{$sp}->{$b} <=> $kmers->{$sp}->{$a}} keys %{$kmers->{$sp}};
+	    foreach my $i (0..($numkmer-2)) {
+		foreach my $j (($i+1)..($numkmer-1)) {
+		    $matrix[$i]->[$j-($i+1)] = &align2seqs($kmersort[$j],$kmersort[$i]);
+		}
+	    }
+	    my $countgood = 0;
+	    foreach my $i (0..($numkmer-2)) {
+		unless(@{$matrix[0]->[$i]}) { #not matching
+		    my $count = 0;
+		    foreach my $j (1..($numkmer-2)) {
+			$count++;
+			last if(defined $matrix[$j]->[$i-$j]); #found shift using other kmers
+		    }
+		    if($count < ($numkmer-1) && $i > 0) {
+			my $sum = 0;
+			my $sign;
+			foreach my $j (0..$count) {
+			    next unless(defined $matrix[$j] && defined $matrix[$j]->[$i-1]); #fix: 08/2010
+			    if(defined $sign) {
+				if(($sign < 0 && (defined $matrix[$j]->[$i-1]->[0] && $matrix[$j]->[$i-1]->[0] < 0)) || ($sign > 0 && (defined $matrix[$j]->[$i-1]->[0] && $matrix[$j]->[$i-1]->[0] > 0))) {
+				    $sum += $matrix[$j]->[$i-1]->[0];
+				} elsif(($sign < 0 && (defined $matrix[$j]->[$i-1]->[1] && $matrix[$j]->[$i-1]->[1] < 0)) || $sign > 0 && (defined $matrix[$j]->[$i-1]->[1] && $matrix[$j]->[$i-1]->[1] > 0)) {
+				    $sum += $matrix[$j]->[$i-1]->[1];
+				}
+			    } elsif(defined $matrix[$j]->[$i-1]->[0]) {
+				$sum += $matrix[$j]->[$i-1]->[0];
+			    }
+			    $sign = ((defined $matrix[$j]->[$i-1]->[0] && $matrix[$j]->[$i-1]->[0] < 0) ? -1 : 1);
+			}
+			$matrix[0]->[$i] = [$sum] if(defined $sign); #fix: 08/2010
+		    }
+		}
+		unless(@{$matrix[0]->[$i]}) {
+		    last;
+		} else {
+		    $countgood++;
+		}
+	    }
+	    if($countgood) {
+		my $min;
+		if($sp == 3) { #3' prime end, 5 for 5' end
+		    #find maximum shift to right (pos value)
+		    $min = -100;
+		    foreach my $i (0..($countgood-1)) {
+			$min = ((defined $matrix[0]->[$i]->[0] && $min > $matrix[0]->[$i]->[0]) ? $min : $matrix[0]->[$i]->[0]);
+		    }
+		    if($min > 0) {
+			$min = -$min;
+		    } else {
+			$min = 0;
+		    }
+		} else {
+		    #find maximum shift to left (neg value)
+		    $min = 100;
+		    foreach my $i (0..($countgood-1)) {
+			$min = ((defined $matrix[0]->[$i]->[0] && $min < $matrix[0]->[$i]->[0]) ? $min : $matrix[0]->[$i]->[0]);
+		    }
+		    if($min < 0) {
+			$min = abs($min);
+		    } else {
+			$min = 0;
+		    }
+		}
+#		$kmershift{$sp}->{$kmersort[0]} = $min;
+		$kmersum{$sp} += $kmers->{$sp}->{$kmersort[0]};
+		foreach my $i (0..($countgood-1)) {
+#		    $kmershift{$sp}->{$kmersort[$i+1]} = $matrix[0]->[$i]->[0]+$min;
+		    $kmersum{$sp} += $kmers->{$sp}->{$kmersort[$i+1]};
+		}
+	    } else {
+		my $tmp = (sort {$kmers->{$sp}->{$b} <=> $kmers->{$sp}->{$a}} keys %{$kmers->{$sp}})[0];
+#		$kmershift{$sp}->{$tmp} = 0;
+		$kmersum{$sp} += $kmers->{$sp}->{$tmp};
+	    }
+	} elsif($numkmer == 1) {
+	    my $tmp = (keys %{$kmers->{$sp}})[0];
+#	    $kmershift{$sp}->{$tmp} = 0;
+	    $kmersum{$sp} += $kmers->{$sp}->{$tmp};
+	}
+    }
+
+   return \%kmersum;
+}
+
+sub align2seqs {
+    my ($seq1,$seq2) = @_;
+    my @shift;
+
+    #get number of shifted positions
+    if(substr($seq1,0,4) eq substr($seq2,1,4)) { #shift right by 1
+	push(@shift,1);
+    } elsif(substr($seq1,0,3) eq substr($seq2,2,3)) { #shift right by 2
+	push(@shift,2);
+    }
+    if(substr($seq1,1,4) eq substr($seq2,0,4)) { #shift left by 1
+	push(@shift,-1);
+    } elsif(substr($seq1,2,3) eq substr($seq2,0,3)) { #shift left by 2
+	push(@shift,-2);
+    }
+
+    return \@shift;
+}
+
+sub revcompuc {
+    my $seq = shift;
+    $seq = scalar reverse $seq;
+    $seq =~ tr/GATC/CTAG/;
+    return $seq;
+}
+
+sub compuc {
+    my $seq = shift;
+    $seq =~ tr/GATC/CTAG/;
+    return $seq;
+}
+
+#get data for graphs
+sub getSeqStats {
+    my ($graphdata,$seqgd,$length) = @_;
+    if($length > $maxlength) {
+        $maxlength = $length;
+    }
+    my ($gc,$ns,$begin,$end,$str5,$str3,$bylength,$tmp);
+    $begin = $end = $gc = $ns = 0;
+    #get length
+    $bylength = 100/$length;
+    #get 5' and 3' ends
+    if($webstats{pt} || $webstats{ts} || $graphstats{pt} || $graphstats{ts}) {
+        $str5 = substr($seqgd,0,5);
+        $str3 = substr($seqgd,$length-5);
+    }
+    #GC content
+    if($webstats{gc} || $graphstats{gc}) {
+        $gc = ($seqgd =~ tr/GC//);
+        $gc = sprintf("%d",$gc*$bylength);
+    }
+
+    #N's
+    if($webstats{ns} || $graphstats{ns}) {
+        $ns = ($seqgd =~ tr/N//);
+        $ns = ($ns > 0 && $ns*$bylength < 1 ? 1 : sprintf("%d",$ns*$bylength));
+    }
+
+    #tail stuff with min 5 char repeats
+    if($webstats{pt} || $graphstats{pt}) {
+        #at sequence 5'-end
+        if($str5 eq 'AAAAA' || $str5 eq 'TTTTT') {
+            my $tmpchar = substr($str5,0,1); #A or T
+            $begin = 5;
+            foreach(5..$length-1) {
+                $tmp = substr($seqgd,$_,1);
+                last unless($tmp eq $tmpchar || $tmp eq 'N');
+                $begin++;
+            }
+        }
+        #at sequence 3'-end
+        if($str3 eq 'AAAAA' || $str3 eq 'TTTTT') {
+            my $tmpchar = substr($str3,0,1); #A or T
+            $end = 5;
+            foreach (reverse 0..$length-6) {
+                $tmp = substr($seqgd,$_,1);
+                last unless($tmp eq $tmpchar || $tmp eq 'N');
+                $end++;
+            }
+        }
+    }
+
+    #get base frequencies
+    if($webstats{ts} || $graphstats{ts}) {
+        if($length >= $TAG_LENGTH) {
+            foreach my $i (0..$TAG_LENGTH-1) {
+                $graphdata->{freqs}->{5}->{$i}->{substr($seqgd,$i,1)}++;
+                $graphdata->{freqs}->{3}->{$i}->{substr($seqgd,$length-$TAG_LENGTH+$i,1)}++;
+            }
+        }
+        #get kmers
+        if($length >= 5) {
+            unless($begin > 0 || $str5 eq 'CCCCC' || $str5 eq 'GGGGG' || $str5 eq 'NNNNN') {
+                $graphdata->{kmers}->{5}->{$str5}++;
+            }
+            unless($end > 0 || $str3 eq 'CCCCC' || $str3 eq 'GGGGG' || $str3 eq 'NNNNN') {
+                $graphdata->{kmers}->{3}->{$str3}++;
+            }
+        }
+        #check for MID tags
+        if($length >= $MIDCHECKLENGTH) {
+            $str5 = substr($seqgd,0,$MIDCHECKLENGTH);
+            foreach my $mid (keys %MIDS) {
+                if(index($str5,$mid) != -1) {
+                    $graphdata->{mids}->{$mid}++;
+                    last;
+                }
+            }
+        }
+    }
+
+    #calculate sequence complexity
+    if($webstats{sc} || $graphstats{sc}) {
+        my ($rest,$steps,@dust,@entropy,$mean,$str,%counts,$num,$dustscore,$entropyval,$bynum);
+        if($length <= $WINDOWSIZE) {
+            $rest = $length;
+            $steps = 0;
+        } else {
+            $steps = int(($length - $WINDOWSIZE) / $WINDOWSTEP) + 1;
+            $rest = $length - $steps * $WINDOWSTEP;
+            unless($rest > $WINDOWSTEP) {
+                $rest += $WINDOWSTEP;
+                $steps--;
+            }
+        }
+        #dust and entropy
+        $num = $WINDOWSIZE-2;
+        $bynum = 1/$num;
+        $num--;
+        foreach my $i (0..$steps-1) {
+            $str = substr($seqgd,($i * $WINDOWSTEP),$WINDOWSIZE);
+            %counts = ();
+            foreach my $i (@WINDOWSIZEARRAY) {
+                $counts{substr($str,$i,3)}++;
+            }
+            #dust and entropy
+            $dustscore = $entropyval = 0;
+            foreach(values %counts) {
+                $dustscore += ($_ * ($_ - 1) * $POINTFIVE);
+                $entropyval -= ($_ * $bynum) * log($_ * $bynum);
+            }
+            push(@dust,($dustscore * $bynum));
+            push(@entropy,($entropyval * $ONEOVERLOG62));
+        }
+        #last step
+        if($rest > 5) {
+            $str = substr($seqgd,($steps * $WINDOWSTEP),$rest);
+            %counts = ();
+            $num = $rest-2;
+            foreach my $i (0..($num - 1)) {
+                $counts{substr($str,$i,3)}++;
+            }
+            $dustscore = $entropyval = 0;
+            $bynum = 1/$num;
+            foreach(values %counts) {
+                $dustscore += ($_ * ($_ - 1) * $POINTFIVE);
+                $entropyval -= ($_ * $bynum) * log($_ * $bynum);
+            }
+            push(@dust,(($dustscore / ($num-1)) * (($WINDOWSIZE - 2) / $num)));
+            push(@entropy,($entropyval / log($num)));
+        } else {
+            push(@dust,31); #to assign a maximum score based on the scaling factor 100/31
+            push(@entropy,0);
+        }
+
+        $mean = &getArrayMean(@dust);
+        $mean = int($mean * 100 / 31); #scale to 100
+        $graphdata{compldust}->{$mean}++;
+        if(!exists $graphdata{complvals}->{dust}->{minval} || $graphdata{complvals}->{dust}->{minval} > $mean) {
+            $graphdata{complvals}->{dust}->{minval} = $mean;
+            $graphdata{complvals}->{dust}->{minseq} = $seqgd;
+        }
+        if(!exists $graphdata{complvals}->{dust}->{maxval} || $graphdata{complvals}->{dust}->{maxval} < $mean) {
+            $graphdata{complvals}->{dust}->{maxval} = $mean;
+            $graphdata{complvals}->{dust}->{maxseq} = $seqgd;
+        }
+        $mean = &getArrayMean(@entropy);
+        $mean = int($mean * 100); #scale to 100
+        $graphdata{complentropy}->{$mean}++;
+        if(!exists $graphdata{complvals}->{entropy}->{minval} || $graphdata{complvals}->{entropy}->{minval} > $mean) {
+            $graphdata{complvals}->{entropy}->{minval} = $mean;
+            $graphdata{complvals}->{entropy}->{minseq} = $seqgd;
+        }
+        if(!exists $graphdata{complvals}->{entropy}->{maxval} || $graphdata{complvals}->{entropy}->{maxval} < $mean) {
+            $graphdata{complvals}->{entropy}->{maxval} = $mean;
+            $graphdata{complvals}->{entropy}->{maxseq} = $seqgd;
+        }
+    }
+
+    #calculate dinucleotide odd ratios
+    if($webstats{dn} || $graphstats{dn}) {
+        &dinucOdds($seqgd,$length,\%{$graphdata{dinucodds}});
+    }
+
+    #store counts
+    if($webstats{ld} || $webstats{ld} || $graphstats{ld} || $graphstats{ld}) {
+        $graphdata->{counts}->{length}->{$length}++;
+    }
+    if($begin) {
+	$graphdata->{counts}->{tail5}->{$begin}++;
+    }
+    if($end) {
+	$graphdata->{counts}->{tail3}->{$end}++;
+    }
+    if($webstats{gc} || $graphstats{gc}) {
+        $graphdata->{counts}->{gc}->{$gc}++;
+    }
+    if($ns) {
+	$graphdata->{counts}->{ns}->{$ns}++;
+    }
+
+    return 1;
+}
+
+sub getQualStats {
+    my ($graphdata,$qual,$length) = @_;
+
+    #check if quality values are available
+    return 0 unless($qual && ($webstats{qd} || $graphstats{qd}));
+
+    #calculate decimal values of quals
+    my ($vals,$err);
+    if(exists $params{phred64}) { #scale data to Phred scale if necessary
+        ($vals,$err) = &convertQualAsciiToNumsPhred64($qual);
+        if($err) {
+            &printError("The sequence quality scores are not in Phred+64 format");
+        }
+    } else {
+        $vals = &convertQualAsciiToNums($qual);
+    }
+
+    #mean quality score
+    $graphdata->{qualsmean}->{int(&getArrayMean(@$vals))}++;
+
+    my ($factor,$tmp,$count,$xmax,$bin,$tmpbin,$step);
+
+    if($scale == 1) { #relative
+	#qual
+	if($length == 100) {
+	    foreach my $i (0..99) {
+		$graphdata->{quals}->{$i}->{$vals->[$i]}++;
+	    }
+	} elsif($length < 100) { #stretch
+	    $factor = 100/$length;
+	    foreach my $i (0..$length-1) {
+		$tmp = $vals->[$i];
+		foreach my $j (int($i*$factor)..int(($i+1)*$factor)-1) {
+		    $graphdata->{quals}->{$j}->{$tmp}++;
+		}
+	    }
+	} elsif($length > 100) { #shrink
+	    $factor = $length/100;
+	    foreach my $i (0..99) {
+		$tmp = $count = 0;
+		foreach my $j (int($i*$factor)..int(($i+1)*$factor)-1) {
+		    $tmp += $vals->[$j];
+		    $count++;
+		}
+		$graphdata->{quals}->{$i}->{int($tmp/$count)}++;
+	    }
+            #my $piece = int($length/100);
+            #my $bypiece = 1/($piece+1);
+            #my $start = 0;
+            #my $end = 0;
+            #my $rest = ($length % 100) - 1;
+            #foreach my $i (0..$rest) {
+            #    $end += $piece;
+            #    $tmp = 0;
+            #    foreach my $j ($start..$end) {
+            #        $tmp += $vals->[$j];
+            #    }
+            #    $graphdata{quals}->{$i}->{int($tmp * $bypiece)}++;
+            #    $start = ++$end;
+            #}
+            #$rest++;
+            #$piece--;
+            #$bypiece = 1/($piece+1);
+            #foreach my $i ($rest..99) {
+            #    $end += $piece;
+            #    $tmp = 0;
+            #    foreach my $j ($start..$end) {
+            #        $tmp += $vals->[$j];
+            #    }
+            #    $graphdata{quals}->{$i}->{int($tmp * $bypiece)}++;
+            #    $start = ++$end;
+            #}
+	}
+    }
+    #absolute
+    foreach my $i (0..$length-1) {
+        $graphdata->{quala}->{$i}->{$vals->[$i]}++;
+    }
+}
+
+sub getBinVal {
+    my $val = shift;
+    my $step;
+    if(!$val || $val <= 100) {
+	return 1;
+    } elsif($val < 10000) {
+	return int($val/100)+($val % 100 ? 1 : 0);
+    } elsif($val < 100000) {
+	return 1000;
+    } else {
+	$step = 1000000;
+	my $xmax = ($val % $step ? sprintf("%d",($val/$step+1))*$step : $val);
+	return ($xmax/100);
+    }
+}
+
+sub convertStringToInt {
+    my $string = shift;
+    $string =~ s/(.)/sprintf("%x",ord($1))/eg;
+    return $string;
+}
+
+sub getFileName {
+    my $str = shift;
+    $str =~ s/^.*\/([^\/]+)$/$1/;
+    return $str;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/prinseq.xml	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,270 @@
+<tool id="prinseq_trimmer" name="FASTQ trimmer" version="0.1">
+    <description>(prinseq)</description>
+    <version_command interpreter="perl">prinseq-lite.pl --version</version_command>
+    <requirements>
+        <requirement type="package" version="0.20.3">prinseq_perl_dependencies</requirement>
+        <requirement type="set_environment">PRINSEQ_SCRIPT_PATH</requirement>
+    </requirements>
+    <command>
+        #import os
+        temp_graph_file = `mktemp`;
+        
+        perl \$PRINSEQ_SCRIPT_PATH/prinseq-lite.pl
+            #if $seq_type.seq_type_opt == 'single':
+                -fastq $seq_type.input_singles
+                #if $seq_type.input_singles.ext == 'fastqillumina':
+                    -phred64
+                #end if
+            #else:
+                -fastq $seq_type.input_mate1
+                -fastq2 $seq_type.input_mate2
+                #if $seq_type.input_mate1.ext != $seq_type.input_mate2.ext:
+                    #import sys
+                    #silent sys.stderr.write( 'Both pairs from your paired-end library need to be from the same filetype.' )
+                #end if
+                #if $seq_type.input_mate1.ext == 'fastqillumina':
+                    -phred64
+                -endif
+            #end if
+            
+            -out_good 'trimmed_reads'
+            ## we do not use the filter options in prinseq, so we are not interested in reads
+            ## that do not pass the filters
+            -out_bad null
+
+            ## Trim options
+            #if $trim_to_len:
+                -trim_to_len $trim_to_len
+            #end if
+            
+            #if $trim_left:
+                -trim_left $trim_left
+            #end if
+
+            #if $trim_right:
+                -trim_right
+            #end if
+
+            #if $trim_qual_left or $trim_qual_right:
+                -trim_qual_type $trim_qual_type
+                -trim_qual_rule $trim_qual_rule
+                -trim_qual_window $trim_qual_window
+                -trim_qual_step $trim_qual_step
+            #end if
+
+            #if $trim_qual_left:
+                -trim_qual_left $trim_qual_left
+            #end if
+            
+            #if $trim_qual_right:
+                -trim_qual_right $trim_qual_right
+            #end if
+
+
+            -graph_stats #echo ','.join( $graph_stats )#
+
+            ## summary are written to stdout
+            -stats_all
+
+
+            -graph_data $temp_graph_file
+
+            ;
+
+        perl \$PRINSEQ_SCRIPT_PATH/prinseq-graphs-noPCA.pl -i $temp_graph_file -html_all -o #echo os.path.join( $html_file.files_path, 'graphs' )#
+
+            ;
+
+        python \$PRINSEQ_SCRIPT_PATH/create_index.py $html_file.files_path > $html_file
+
+
+    </command>
+    <inputs>
+        <conditional name="seq_type">
+            <param name="seq_type_opt" type="select" label="Is this library paired- or single-end?">
+              <option value="single">Single-end</option>
+              <option value="paired">Paired-end</option>
+            </param>
+            <when value="single">
+                <param name="input_singles" type="data" format="fastqsanger,fastqillumina,fastq,fasta" label="FASTQ/FASTA file" help="FASTQ or FASTA files." />
+            </when>
+            <when value="paired">
+                <param name="input_mate1" type="data" format="fastqsanger,fastqillumina,fastq,fasta" label="FASTQ/FASTA file" help="FASTQ or FASTA files." />
+                <param name="input_mate2" type="data" format="fastqsanger,fastqillumina,fastq,fasta" label="FASTQ/FASTA file" help="FASTQ or FASTA files." />
+            </when>
+        </conditional>
+
+        <param name="trim_to_len" type="integer" value=""
+            label="Trim all sequence from the 3'-end to result in sequence with this length" 
+            help="(-trim_to_len)"/>
+
+        <param name="trim_left" type="integer" value=""
+            label="Trim sequence at the 5'-end by trim_left positions" 
+            help="(-trim_left)"/>
+
+        <param name="trim_right" type="integer" value=""
+            label="Trim sequence at the 3'-end by trim_right positions" 
+            help="(-trim_right)"/>
+
+        <param name="trim_left_p" type="integer" value=""
+            label="Trim sequence at the 5'-end by trim_left_p percentage of read length." 
+            help="The trim length is rounded towards the lower integer (e.g. 143.6 is rounded to 143 positions). Use an integer between 1 and 100 for the percentage value. (-trim_left_p)"/>
+
+        <param name="trim_right_p" type="integer" value=""
+            label="Trim sequence at the 3'-end by trim_right_p percentage of read length" 
+            help="The trim length is rounded towards the lower integer (e.g. 143.6 is rounded to 143 positions). Use an integer between 1 and 100 for the percentage value. (-trim_right_p)"/>
+
+        <param name="trim_tail_left" type="integer" value=""
+            label="Trim poly-A/T tail with a minimum length of trim_tail_left at the 5'-end" 
+            help="(-trim_tail_left)"/>
+
+        <param name="trim_tail_right" type="integer" value=""
+            label="Trim poly-A/T tail with a minimum length of trim_tail_right at the 3'-end" 
+            help="(-trim_tail_right)"/>
+
+        <param name="trim_ns_left" type="integer" value=""
+            label="Trim poly-N tail with a minimum length of trim_ns_left at the 5'-end" 
+            help="(-trim_left)"/>
+
+        <param name="trim_ns_right" type="integer" value=""
+            label="Trim poly-N tail with a minimum length of trim_ns_right at the 3'-end." 
+            help="(-trim_ns_right)"/>
+
+
+        <param name="trim_qual_left" type="integer" value=""
+            label=" Trim sequence by quality score from the 5'-end with this threshold score" 
+            help="(-trim_qual_left)"/>
+
+        <param name="trim_qual_right" type="integer" value=""
+            label="Trim sequence by quality score from the 3'-end with this threshold score" 
+            help="(-trim_qual_right)"/>
+
+        <param name="trim_qual_type" type="select" label="Type of quality score calculation to use">
+            <option value="min" selected="True">min</option>
+            <option value="mean">mean</option>
+            <option value="max">max</option>
+            <option value="sum">sum</option>
+        </param>
+
+        <param name="trim_qual_rule" type="select" label="Rule to use to compare quality score to calculated value.">
+            <option value="gt">greater than quality score</option>
+            <option value="lt" selected="True">less than quality score</option>
+            <option value="et">equal to quality score</option>
+        </param>
+
+        <param name="trim_qual_window" type="integer" value="1"
+            label="The sliding window size used to calculate quality score by type" 
+            help="(-trim_qual_window)"/>
+
+        <param name="trim_qual_step" type="integer" value="1"
+            label="Step size used to move the sliding window" 
+            help="To move the window over all quality scores without missing any, the step size should be less or equal to the window size(-trim_qual_step)"/>
+
+        <param name="graph_stats" type="select" multiple="True" label="Which statistics should be calculated included in the graph_data file">
+            <option value="ld" selected="True">Length distribution</option>
+            <option value="gc" selected="True">GC content distribution</option>
+            <option value="qd" selected="True">Base quality distribution</option>
+            <option value="ns" selected="True">Occurence of N</option>
+            <option value="pt" selected="True">Poly-A/T tails</option>
+            <option value="ts" selected="True">Tag sequence check</option>
+            <option value="as" selected="True">Assembly quality measure</option>
+            <option value="de" selected="True">Sequence duplication - exact only</option>
+            <option value="da" selected="True">Sequence duplication - exact + 5'/3'</option>
+            <option value="sc" selected="True">Sequence complexity</option>
+            <option value="dn" selected="True">Dinucleotide odds ratios, includes the PCA plots</option>
+        </param>
+
+
+        <!-- TODO
+        -log <file>
+            Log file to keep track of parameters, errors, etc. The log file
+            name is optional. If no file name is given, the log file name
+            will be "inputname.log". If the log file already exists, new
+            content will be added to the file.
+        -->
+
+
+    <outputs>
+        <data format="fastq" name="ofile_single" metadata_source="seq_type.input_singles" label="${tool.name} on ${on_string}">
+            <filter>seq_type['seq_type_opt'] == "single"</filter>
+        </data>
+
+        <data format="fastq" name="outfile_r1" label="${tool.name} on ${on_string}">
+            <filter>seq_type['seq_type_opt'] == "paired"</filter>
+            <actions>
+                <conditional name="seq_type.seq_type_opt">
+                  <when value="single">
+                    <action type="format">
+                      <option type="from_param" name="seq_type.input_singles" param_attribute="ext" />
+                    </action>
+                  </when>
+                  <when value="paired">
+                    <action type="format">
+                      <option type="from_param" name="seq_type.input_mate1" param_attribute="ext" />
+                    </action>
+                  </when>
+                </conditional>
+            </actions>
+        </data>
+        <data format="fastq" name="outfile_r2" label="${tool.name} on ${on_string}">
+            <filter>seq_type['seq_type_opt'] == "paired"</filter>
+            <actions>
+                <conditional name="seq_type.seq_type_opt">
+                  <when value="single">
+                    <action type="format">
+                      <option type="from_param" name="seq_type.input_singles" param_attribute="ext" />
+                    </action>
+                  </when>
+                  <when value="paired">
+                    <action type="format">
+                      <option type="from_param" name="seq_type.input_mate1" param_attribute="ext" />
+                    </action>
+                  </when>
+                </conditional>
+            </actions>
+        </data>
+
+        <data format="html" name="html_file" label="${tool.name} on ${on_string} summary" />
+    </outputs>
+    <tests>
+        <test>
+            <!-- grep a FASTA file for sequences with specific motif -->
+            <param name="seq_type.input_singles" value="example1.fastq" />
+            <output name="ofile_single" file="example1_trim_right_10.fastq" />
+            <param name="trim_right" value="10" />
+        </test>
+    </tests>
+    <help>
+
+
+.. class:: warningmark
+
+**TIP** 
+
+-----
+
+**What it does**
+
+
+PRINSEQ is a tool that generates summary statistics of sequence and quality data and that is used to filter, reformat and trim next-generation sequence data.
+
+
+http://prinseq.sourceforge.net/manual.html
+
+
+    ***** ORDER OF PROCESSING *****
+            The available options are processed in the following order:
+
+            seq_num, trim_left, trim_right, trim_left_p, trim_right_p,
+            trim_qual_left, trim_qual_right, trim_tail_left,
+            trim_tail_right, trim_ns_left, trim_ns_right, trim_to_len,
+            min_len, max_len, range_len, min_qual_score, max_qual_score,
+            min_qual_mean, max_qual_mean, min_gc, max_gc, range_gc,
+            ns_max_p, ns_max_n, noniupac, lc_method, derep, seq_id,
+            seq_case, dna_rna, out_format
+
+
+
+
+    </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.rst	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,45 @@
+Galaxy wrapper for statistical hypothesis testing with scipy
+============================================================
+
+This wrapper is copyright 2013 by Björn Grüning.
+
+
+
+
+============
+Installation
+============
+
+
+
+=======
+History
+=======
+
+
+  - v0.1: no release yet
+
+
+
+
+Wrapper Licence (MIT/BSD style)
+===============================
+
+Permission to use, copy, modify, and distribute this software and its
+documentation with or without modifications and for any purpose and
+without fee is hereby granted, provided that any copyright notices
+appear in all copies and that both those copyright notices and this
+permission notice appear in supporting documentation, and that the
+names of the contributors or copyright holders not be used in
+advertising or publicity pertaining to distribution of the software
+without specific prior permission.
+
+THE CONTRIBUTORS AND COPYRIGHT HOLDERS OF THIS SOFTWARE DISCLAIM ALL
+WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT
+OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
+OR PERFORMANCE OF THIS SOFTWARE.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/example1.fasta	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,24 @@
+>seq1 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
+>seq1_dupl1 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
+>seq1_dupl2 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
+>seq1_dupl3 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
+>seq2 length=200
+ACGTGACGTGACGTGGTGTACACAGAGATATATGAGACACACAGATAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTACACAGAGATATATGAGACACACAGATAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTAACCACGT
+>seq3 length=100
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTATAGATTGCGTGCGTACGTGTGTGCATGCG
+>seq3_dupl1 length=100
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTATAGATTGCGTGCGTACGTGTGTGCATGCG
+>seq4 length=50
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTAGAGA
+>seq5 length=100 Ns_begin=10
+NNNNNNNNNNTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGAGAAGAGGCGTGGAGGAGATGACACACCCCGTGTGTTCTC
+>seq6 length=100 Ns_end=10
+TACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAANNNNNNNNNN
+>seq7 length=50
+TACACCAGAGGTGTCTCTGTGTGGGTACACCAGAGGTGTCTCTGTGTGGG
+>seq8 length=50 As=50
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/example1.fastq	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,48 @@
+@seq1 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
++seq1 length=100
+1234123412342134123412341234123412341234123412341234132412341234123412341234123412341234123412341234
+@seq1_dupl1 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
++seq1_dupl1 length=100
+1234123412342134123412341234123412341234123412341234132412341234123412341234123412341234123412341234
+@seq1_dupl2 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
++seq1_dupl2 length=100
+1234123412342134123412341234123412341234123412341234132412341234123412341234123412341234123412341234
+@seq1_dupl3 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
++seq1_dupl3 length=100
+1234123412342134123412341234123412341234123412341234132412341234123412341234123412341234123412341234
+@seq2 length=200
+ACGTGACGTGACGTGGTGTACACAGAGATATATGAGACACACAGATAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTACACAGAGATATATGAGACACACAGATAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTAACCACGT
++seq2 length=200
+++++++++++++++++..............00000000000000000000333333333333333355555555555555555AAAAAAAAAAAAAA999999999999996666666666666666444444444444444442222222222222222222221111111)))))))))))))))>>>>>>>>>>>>>
+@seq3 length=100
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTATAGATTGCGTGCGTACGTGTGTGCATGCG
++seq3 length=100
+FHHFFFFFFDDAA@====AAB===BBBBAAADDDDDDDDAAAADDDDD?????FFFFF??FFFFFFDA@AFFFFFFFFFFFFFFFFCCABA?>9:773..
+@seq3_dupl1 length=100
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTATAGATTGCGTGCGTACGTGTGTGCATGCG
++seq3_dupl1 length=100
+FHHFFFFFFDDAA@====AAB===BBBBAAADDDDDDDDAAAADDDDD?????FFFFF??FFFFFFDA@AFFFFFFFFFFFFFFFFCCABA?>9:773..
+@seq4 length=50
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTAGAGA
++seq4 length=50
+???CCDDBBBBBAA333:ABB=:::AGFFFFFHHHHFFFFFFFF??@FFF
+@seq5 length=100 Ns_begin=10
+NNNNNNNNNNTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGAGAAGAGGCGTGGAGGAGATGACACACCCCGTGTGTTCTC
++seq5 length=100 Ns_begin=10
+!!!!!!!!!!99999999999999AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFF
+@seq6 length=100 Ns_end=10
+TACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAANNNNNNNNNN
++seq6 length=100 Ns_end=10
+FFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAA9999999999999999999995555555!!!!!!!!!!
+@seq7 length=50
+TACACCAGAGGTGTCTCTGTGTGGGTACACCAGAGGTGTCTCTGTGTGGG
++seq7 length=50
+!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>
+@seq8 length=50 As=50
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++seq8 length=50 As=50
+55555555555555555555555555555555555555555555555555
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/example1.gd	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,3 @@
+#Graph data
+#[prinseq-lite-0.20.3] [03/13/2013 12:11:59] Command: "perl prinseq-lite.pl -fastq example/example1.fastq -graph_data example/example1.gd -verbose -out_good null -out_bad null"
+{"numseqs":12,"numbases":1150,"pairedend":0,"maxlength":200,"binval":2,"exactonly":0,"tagmidnum":0,"scale":1,"filename1":"6578616d706c65312e6661737471","format1":"fastq","counts":{"gc":{"50":5,"53":1,"0":1,"49":1,"56":2,"57":2},"length":{"50":3,"200":1,"100":8},"ns":{"10":2},"tail3":{"50":1},"tail5":{"50":1}},"stats":{"gc":{"p25":50,"p75":56,"mode":50,"min":0,"std":"14.83","range":58,"max":57,"modeval":5,"median":50,"mean":"48.17"},"length":{"p25":75,"p75":100,"mode":100,"min":50,"std":"37.96","range":151,"max":200,"modeval":8,"median":100,"mean":"95.83"},"ns":{"p25":10,"p75":10,"mode":10,"min":10,"std":"0.00","range":1,"max":10,"modeval":2,"median":10,"mean":"10.00"},"tail3":{"p25":50,"p75":50,"mode":50,"min":50,"std":"0.00","range":1,"max":50,"modeval":1,"median":50,"mean":"50.00"},"tail5":{"p25":50,"p75":50,"mode":50,"min":50,"std":"0.00","range":1,"max":50,"modeval":1,"median":50,"mean":"50.00"}},"quals":{"0":{"p25":13,"p75":33,"mode":16,"min":0,"std":"12.68","range":38,"max":37,"modeval":4,"median":16,"mean":"19.58"},"1":{"p25":13,"p75":33,"mode":17,"min":0,"std":"13.06","range":40,"max":39,"modeval":4,"median":17,"mean":"20.25"},"10":{"p25":18,"p75":35,"mode":18,"min":7,"std":"9.55","range":31,"max":37,"modeval":4,"median":19,"mean":"23.17"},"11":{"p25":19,"p75":32,"mode":19,"min":7,"std":"8.81","range":31,"max":37,"modeval":4,"median":19,"mean":"23.00"},"12":{"p25":17,"p75":32,"mode":17,"min":7,"std":"9.16","range":31,"max":37,"modeval":4,"median":18,"mean":"22.33"},"13":{"p25":16,"p75":31,"mode":16,"min":7,"std":"9.19","range":31,"max":37,"modeval":4,"median":18,"mean":"21.83"},"14":{"p25":18,"p75":28,"mode":18,"min":7,"std":"8.14","range":31,"max":37,"modeval":4,"median":19,"mean":"21.83"},"15":{"p25":19,"p75":28,"mode":19,"min":7,"std":"7.82","range":31,"max":37,"modeval":4,"median":19,"mean":"22.33"},"16":{"p25":16,"p75":28,"mode":16,"min":9,"std":"8.09","range":29,"max":37,"modeval":4,"median":18,"mean":"21.50"},"17":{"p25":17,"p75":28,"mode":17,"min":9,"std":"7.87","range":29,"max":37,"modeval":4,"median":18,"mean":"21.83"},"18":{"p25":18,"p75":32,"mode":18,"min":9,"std":"8.17","range":28,"max":36,"modeval":4,"median":19,"mean":"22.75"},"19":{"p25":19,"p75":32,"mode":19,"min":9,"std":"7.98","range":28,"max":36,"modeval":4,"median":19,"mean":"23.08"},"2":{"p25":14,"p75":33,"mode":18,"min":0,"std":"12.28","range":40,"max":39,"modeval":4,"median":18,"mean":"21.08"},"20":{"p25":16,"p75":33,"mode":16,"min":9,"std":"8.80","range":28,"max":36,"modeval":4,"median":18,"mean":"22.25"},"21":{"p25":17,"p75":28,"mode":17,"min":9,"std":"7.71","range":28,"max":36,"modeval":4,"median":18,"mean":"21.75"},"22":{"p25":18,"p75":28,"mode":18,"min":10,"std":"7.38","range":27,"max":36,"modeval":4,"median":19,"mean":"22.17"},"23":{"p25":19,"p75":28,"mode":19,"min":10,"std":"7.21","range":27,"max":36,"modeval":4,"median":19,"mean":"22.50"},"24":{"p25":16,"p75":32,"mode":16,"min":8,"std":"9.24","range":29,"max":36,"modeval":4,"median":18,"mean":"22.75"},"25":{"p25":17,"p75":32,"mode":17,"min":8,"std":"8.82","range":29,"max":36,"modeval":4,"median":19,"mean":"23.33"},"26":{"p25":18,"p75":32,"mode":18,"min":8,"std":"8.59","range":29,"max":36,"modeval":5,"median":19,"mean":"23.67"},"27":{"p25":19,"p75":32,"mode":19,"min":8,"std":"8.38","range":29,"max":36,"modeval":4,"median":19,"mean":"24.00"},"28":{"p25":16,"p75":32,"mode":16,"min":4,"std":"9.10","range":33,"max":36,"modeval":4,"median":18,"mean":"21.33"},"29":{"p25":17,"p75":32,"mode":17,"min":4,"std":"8.92","range":33,"max":36,"modeval":4,"median":18,"mean":"21.67"},"3":{"p25":14,"p75":33,"mode":19,"min":0,"std":"11.74","range":38,"max":37,"modeval":4,"median":19,"mean":"21.08"},"30":{"p25":18,"p75":32,"mode":18,"min":4,"std":"8.76","range":33,"max":36,"modeval":6,"median":18,"mean":"22.00"},"31":{"p25":18,"p75":33,"mode":19,"min":4,"std":"9.23","range":33,"max":36,"modeval":4,"median":19,"mean":"22.83"},"32":{"p25":16,"p75":33,"mode":16,"min":4,"std":"9.74","range":33,"max":36,"modeval":4,"median":18,"mean":"21.83"},"33":{"p25":17,"p75":33,"mode":17,"min":4,"std":"9.49","range":33,"max":36,"modeval":4,"median":19,"mean":"22.33"},"34":{"p25":18,"p75":33,"mode":18,"min":10,"std":"8.28","range":27,"max":36,"modeval":4,"median":20,"mean":"23.75"},"35":{"p25":19,"p75":33,"mode":19,"min":10,"std":"8.06","range":27,"max":36,"modeval":4,"median":20,"mean":"24.08"},"36":{"p25":16,"p75":33,"mode":16,"min":10,"std":"9.11","range":27,"max":36,"modeval":4,"median":20,"mean":"23.67"},"37":{"p25":17,"p75":32,"mode":17,"min":10,"std":"8.45","range":26,"max":35,"modeval":4,"median":20,"mean":"23.67"},"38":{"p25":18,"p75":32,"mode":18,"min":8,"std":"8.58","range":28,"max":35,"modeval":4,"median":20,"mean":"23.92"},"39":{"p25":19,"p75":32,"mode":19,"min":8,"std":"7.77","range":26,"max":33,"modeval":4,"median":20,"mean":"23.75"},"4":{"p25":13,"p75":33,"mode":16,"min":0,"std":"12.00","range":38,"max":37,"modeval":4,"median":16,"mean":"20.08"},"40":{"p25":16,"p75":32,"mode":16,"min":7,"std":"8.62","range":27,"max":33,"modeval":4,"median":20,"mean":"22.67"},"41":{"p25":17,"p75":32,"mode":17,"min":7,"std":"8.36","range":27,"max":33,"modeval":4,"median":23,"mean":"23.50"},"42":{"p25":18,"p75":32,"mode":32,"min":4,"std":"8.63","range":29,"max":32,"modeval":5,"median":24,"mean":"23.67"},"43":{"p25":19,"p75":32,"mode":19,"min":4,"std":"8.96","range":32,"max":35,"modeval":4,"median":24,"mean":"24.50"},"44":{"p25":16,"p75":32,"mode":16,"min":4,"std":"9.58","range":32,"max":35,"modeval":4,"median":22,"mean":"23.25"},"45":{"p25":17,"p75":32,"mode":17,"min":4,"std":"9.33","range":32,"max":35,"modeval":4,"median":22,"mean":"23.58"},"46":{"p25":18,"p75":32,"mode":18,"min":4,"std":"9.11","range":32,"max":35,"modeval":4,"median":22,"mean":"23.92"},"47":{"p25":19,"p75":32,"mode":19,"min":4,"std":"8.90","range":32,"max":35,"modeval":4,"median":22,"mean":"24.25"},"48":{"p25":16,"p75":30,"mode":16,"min":4,"std":"8.39","range":29,"max":32,"modeval":4,"median":22,"mean":"22.08"},"49":{"p25":17,"p75":30,"mode":17,"min":4,"std":"8.00","range":29,"max":32,"modeval":4,"median":22,"mean":"22.08"},"5":{"p25":13,"p75":33,"mode":17,"min":0,"std":"11.89","range":38,"max":37,"modeval":4,"median":17,"mean":"20.42"},"50":{"p25":18,"p75":31,"mode":18,"min":8,"std":"7.50","range":25,"max":32,"modeval":4,"median":22,"mean":"23.33"},"51":{"p25":19,"p75":31,"mode":19,"min":8,"std":"7.27","range":25,"max":32,"modeval":4,"median":22,"mean":"23.67"},"52":{"p25":16,"p75":31,"mode":16,"min":13,"std":"8.10","range":26,"max":38,"modeval":4,"median":22,"mean":"23.58"},"53":{"p25":18,"p75":34,"mode":18,"min":13,"std":"8.75","range":26,"max":38,"modeval":4,"median":22,"mean":"25.42"},"54":{"p25":17,"p75":34,"mode":17,"min":16,"std":"8.62","range":22,"max":37,"modeval":4,"median":22,"mean":"25.25"},"55":{"p25":19,"p75":36,"mode":19,"min":16,"std":"8.40","range":22,"max":37,"modeval":4,"median":21,"mean":"26.08"},"56":{"p25":16,"p75":36,"mode":16,"min":9,"std":"10.08","range":29,"max":37,"modeval":4,"median":20,"mean":"24.42"},"57":{"p25":17,"p75":36,"mode":17,"min":9,"std":"9.81","range":29,"max":37,"modeval":4,"median":20,"mean":"24.75"},"58":{"p25":18,"p75":31,"mode":18,"min":9,"std":"8.38","range":29,"max":37,"modeval":4,"median":20,"mean":"23.92"},"59":{"p25":19,"p75":31,"mode":19,"min":9,"std":"8.16","range":29,"max":37,"modeval":4,"median":20,"mean":"24.25"},"6":{"p25":14,"p75":35,"mode":18,"min":0,"std":"11.83","range":38,"max":37,"modeval":4,"median":18,"mean":"21.33"},"60":{"p25":16,"p75":36,"mode":16,"min":9,"std":"10.08","range":29,"max":37,"modeval":4,"median":20,"mean":"24.42"},"61":{"p25":17,"p75":36,"mode":17,"min":9,"std":"9.81","range":29,"max":37,"modeval":4,"median":20,"mean":"24.75"},"62":{"p25":18,"p75":36,"mode":18,"min":12,"std":"8.94","range":26,"max":37,"modeval":4,"median":20,"mean":"24.67"},"63":{"p25":19,"p75":36,"mode":19,"min":12,"std":"8.74","range":26,"max":37,"modeval":4,"median":20,"mean":"24.92"},"64":{"p25":16,"p75":36,"mode":16,"min":10,"std":"10.00","range":30,"max":39,"modeval":4,"median":19,"mean":"23.83"},"65":{"p25":17,"p75":36,"mode":17,"min":10,"std":"9.75","range":30,"max":39,"modeval":4,"median":19,"mean":"24.17"},"66":{"p25":18,"p75":35,"mode":18,"min":9,"std":"9.22","range":31,"max":39,"modeval":4,"median":19,"mean":"24.08"},"67":{"p25":19,"p75":32,"mode":19,"min":9,"std":"8.48","range":31,"max":39,"modeval":5,"median":19,"mean":"23.92"},"68":{"p25":16,"p75":31,"mode":16,"min":6,"std":"9.40","range":34,"max":39,"modeval":4,"median":19,"mean":"22.50"},"69":{"p25":17,"p75":32,"mode":17,"min":6,"std":"9.34","range":34,"max":39,"modeval":4,"median":19,"mean":"23.00"},"7":{"p25":14,"p75":35,"mode":19,"min":0,"std":"11.74","range":38,"max":37,"modeval":4,"median":19,"mean":"21.67"},"70":{"p25":18,"p75":36,"mode":18,"min":6,"std":"10.07","range":34,"max":39,"modeval":4,"median":19,"mean":"24.17"},"71":{"p25":19,"p75":36,"mode":19,"min":6,"std":"9.87","range":34,"max":39,"modeval":5,"median":19,"mean":"24.50"},"72":{"p25":16,"p75":36,"mode":16,"min":8,"std":"10.09","range":30,"max":37,"modeval":4,"median":18,"mean":"23.33"},"73":{"p25":17,"p75":36,"mode":17,"min":8,"std":"9.86","range":30,"max":37,"modeval":5,"median":18,"mean":"23.67"},"74":{"p25":18,"p75":36,"mode":18,"min":8,"std":"9.64","range":30,"max":37,"modeval":4,"median":19,"mean":"24.00"},"75":{"p25":19,"p75":36,"mode":19,"min":8,"std":"9.45","range":30,"max":37,"modeval":4,"median":19,"mean":"24.33"},"76":{"p25":16,"p75":36,"mode":16,"min":9,"std":"9.97","range":29,"max":37,"modeval":4,"median":18,"mean":"23.42"},"77":{"p25":17,"p75":36,"mode":17,"min":9,"std":"9.73","range":29,"max":37,"modeval":5,"median":18,"mean":"23.75"},"78":{"p25":18,"p75":36,"mode":18,"min":9,"std":"9.51","range":29,"max":37,"modeval":4,"median":19,"mean":"24.08"},"79":{"p25":19,"p75":36,"mode":19,"min":9,"std":"9.30","range":29,"max":37,"modeval":4,"median":19,"mean":"24.42"},"8":{"p25":14,"p75":35,"mode":16,"min":0,"std":"12.04","range":38,"max":37,"modeval":4,"median":16,"mean":"20.75"},"80":{"p25":16,"p75":36,"mode":16,"min":16,"std":"9.07","range":22,"max":37,"modeval":4,"median":20,"mean":"24.33"},"81":{"p25":17,"p75":36,"mode":17,"min":17,"std":"8.77","range":21,"max":37,"modeval":5,"median":20,"mean":"24.67"},"82":{"p25":18,"p75":36,"mode":18,"min":16,"std":"8.57","range":22,"max":37,"modeval":4,"median":20,"mean":"24.92"},"83":{"p25":19,"p75":36,"mode":19,"min":16,"std":"8.43","range":22,"max":37,"modeval":4,"median":20,"mean":"24.92"},"84":{"p25":16,"p75":37,"mode":16,"min":16,"std":"9.62","range":22,"max":37,"modeval":5,"median":20,"mean":"25.17"},"85":{"p25":17,"p75":37,"mode":17,"min":16,"std":"9.31","range":22,"max":37,"modeval":4,"median":20,"mean":"25.50"},"86":{"p25":18,"p75":34,"mode":18,"min":8,"std":"9.42","range":30,"max":37,"modeval":4,"median":20,"mean":"24.67"},"87":{"p25":19,"p75":34,"mode":19,"min":8,"std":"9.19","range":30,"max":37,"modeval":4,"median":20,"mean":"25.00"},"88":{"p25":16,"p75":32,"mode":16,"min":8,"std":"9.31","range":30,"max":37,"modeval":4,"median":20,"mean":"23.33"},"89":{"p25":17,"p75":33,"mode":17,"min":8,"std":"9.22","range":30,"max":37,"modeval":4,"median":20,"mean":"23.83"},"9":{"p25":15,"p75":34,"mode":17,"min":0,"std":"11.48","range":38,"max":37,"modeval":4,"median":17,"mean":"20.75"},"90":{"p25":18,"p75":31,"mode":18,"min":0,"std":"10.35","range":38,"max":37,"modeval":4,"median":19,"mean":"21.67"},"91":{"p25":19,"p75":30,"mode":19,"min":0,"std":"9.94","range":38,"max":37,"modeval":4,"median":19,"mean":"21.67"},"92":{"p25":16,"p75":29,"mode":16,"min":0,"std":"10.23","range":38,"max":37,"modeval":4,"median":18,"mean":"20.58"},"93":{"p25":17,"p75":26,"mode":17,"min":0,"std":"8.91","range":38,"max":37,"modeval":4,"median":19,"mean":"20.92"},"94":{"p25":18,"p75":29,"mode":18,"min":0,"std":"9.62","range":38,"max":37,"modeval":4,"median":22,"mean":"22.83"},"95":{"p25":19,"p75":29,"mode":19,"min":0,"std":"9.43","range":38,"max":37,"modeval":4,"median":21,"mean":"22.67"},"96":{"p25":16,"p75":29,"mode":16,"min":0,"std":"9.91","range":38,"max":37,"modeval":4,"median":21,"mean":"21.67"},"97":{"p25":17,"p75":29,"mode":17,"min":0,"std":"9.84","range":38,"max":37,"modeval":4,"median":18,"mean":"21.33"},"98":{"p25":15,"p75":29,"mode":18,"min":0,"std":"10.19","range":38,"max":37,"modeval":4,"median":18,"mean":"20.83"},"99":{"p25":16,"p75":29,"mode":19,"min":0,"std":"10.11","range":38,"max":37,"modeval":4,"median":19,"mean":"21.17"}},"qualsbin":{"0":{"p25":13,"p75":33,"mode":37,"min":0,"std":"12.46","range":40,"max":39,"modeval":5,"median":18,"mean":"20.47"},"1":{"p25":13,"p75":35,"mode":37,"min":0,"std":"12.00","range":38,"max":37,"modeval":6,"median":19,"mean":"21.08"},"10":{"p25":17,"p75":28,"mode":28,"min":4,"std":"8.00","range":33,"max":36,"modeval":5,"median":19,"mean":"20.79"},"11":{"p25":16,"p75":28,"mode":16,"min":4,"std":"8.70","range":33,"max":36,"modeval":4,"median":19,"mean":"21.42"},"12":{"p25":17,"p75":33,"mode":17,"min":8,"std":"9.10","range":31,"max":38,"modeval":4,"median":19,"mean":"23.54"},"13":{"p25":16,"p75":32,"mode":16,"min":9,"std":"9.04","range":29,"max":37,"modeval":5,"median":19,"mean":"23.79"},"14":{"p25":17,"p75":32,"mode":32,"min":9,"std":"9.19","range":29,"max":37,"modeval":6,"median":19,"mean":"23.50"},"15":{"p25":16,"p75":35,"mode":16,"min":10,"std":"9.53","range":30,"max":39,"modeval":4,"median":19,"mean":"24.33"},"16":{"p25":17,"p75":35,"mode":17,"min":6,"std":"10.07","range":34,"max":39,"modeval":4,"median":19,"mean":"24.12"},"17":{"p25":16,"p75":35,"mode":16,"min":6,"std":"10.05","range":34,"max":39,"modeval":4,"median":19,"mean":"24.00"},"18":{"p25":17,"p75":33,"mode":17,"min":8,"std":"9.33","range":30,"max":37,"modeval":4,"median":19,"mean":"23.71"},"19":{"p25":16,"p75":32,"mode":32,"min":9,"std":"8.26","range":29,"max":37,"modeval":8,"median":20,"mean":"23.71"},"2":{"p25":13,"p75":36,"mode":37,"min":0,"std":"12.15","range":38,"max":37,"modeval":6,"median":18,"mean":"21.08"},"20":{"p25":17,"p75":32,"mode":32,"min":15,"std":"7.87","range":23,"max":37,"modeval":8,"median":20,"mean":"24.75"},"21":{"p25":17,"p75":34,"mode":16,"min":15,"std":"8.41","range":23,"max":37,"modeval":4,"median":25,"mean":"25.67"},"22":{"p25":17,"p75":32,"mode":17,"min":15,"std":"7.61","range":21,"max":35,"modeval":4,"median":24,"mean":"24.88"},"23":{"p25":17,"p75":32,"mode":16,"min":15,"std":"7.86","range":23,"max":37,"modeval":4,"median":24,"mean":"25.00"},"24":{"p25":18,"p75":30,"mode":18,"min":15,"std":"7.13","range":23,"max":37,"modeval":5,"median":20,"mean":"24.14"},"25":{"p25":18,"p75":30,"mode":16,"min":16,"std":"6.77","range":17,"max":32,"modeval":4,"median":19,"mean":"23.56"},"26":{"p25":18,"p75":32,"mode":18,"min":17,"std":"8.57","range":21,"max":37,"modeval":6,"median":18,"mean":"25.11"},"27":{"p25":18,"p75":36,"mode":16,"min":16,"std":"9.06","range":22,"max":37,"modeval":4,"median":19,"mean":"25.56"},"28":{"p25":18,"p75":32,"mode":18,"min":17,"std":"8.26","range":21,"max":37,"modeval":6,"median":18,"mean":"24.78"},"29":{"p25":18,"p75":32,"mode":16,"min":16,"std":"8.31","range":22,"max":37,"modeval":4,"median":19,"mean":"24.78"},"3":{"p25":13,"p75":35,"mode":37,"min":0,"std":"11.91","range":38,"max":37,"modeval":6,"median":19,"mean":"21.00"},"30":{"p25":18,"p75":36,"mode":18,"min":17,"std":"8.87","range":21,"max":37,"modeval":6,"median":18,"mean":"25.11"},"31":{"p25":18,"p75":36,"mode":16,"min":16,"std":"8.77","range":22,"max":37,"modeval":4,"median":19,"mean":"24.67"},"32":{"p25":18,"p75":35,"mode":18,"min":17,"std":"8.35","range":21,"max":37,"modeval":5,"median":19,"mean":"24.56"},"33":{"p25":19,"p75":31,"mode":16,"min":16,"std":"7.07","range":21,"max":36,"modeval":4,"median":20,"mean":"23.67"},"34":{"p25":18,"p75":32,"mode":17,"min":17,"std":"7.90","range":21,"max":37,"modeval":4,"median":20,"mean":"24.33"},"35":{"p25":19,"p75":36,"mode":16,"min":16,"std":"8.62","range":22,"max":37,"modeval":4,"median":20,"mean":"24.89"},"36":{"p25":18,"p75":36,"mode":17,"min":17,"std":"8.57","range":21,"max":37,"modeval":4,"median":20,"mean":"24.89"},"37":{"p25":19,"p75":36,"mode":16,"min":16,"std":"8.62","range":22,"max":37,"modeval":4,"median":20,"mean":"24.89"},"38":{"p25":18,"p75":36,"mode":17,"min":17,"std":"8.57","range":21,"max":37,"modeval":4,"median":20,"mean":"24.89"},"39":{"p25":19,"p75":36,"mode":16,"min":16,"std":"8.62","range":22,"max":37,"modeval":4,"median":20,"mean":"24.89"},"4":{"p25":17,"p75":34,"mode":17,"min":0,"std":"10.51","range":38,"max":37,"modeval":4,"median":18,"mean":"21.75"},"40":{"p25":18,"p75":36,"mode":17,"min":17,"std":"8.57","range":21,"max":37,"modeval":4,"median":20,"mean":"24.89"},"41":{"p25":19,"p75":37,"mode":37,"min":16,"std":"8.96","range":22,"max":37,"modeval":5,"median":20,"mean":"25.83"},"42":{"p25":18,"p75":34,"mode":17,"min":17,"std":"8.60","range":21,"max":37,"modeval":4,"median":20,"mean":"25.56"},"43":{"p25":19,"p75":32,"mode":16,"min":16,"std":"8.04","range":22,"max":37,"modeval":4,"median":20,"mean":"25.00"},"44":{"p25":17,"p75":32,"mode":17,"min":0,"std":"9.68","range":38,"max":37,"modeval":4,"median":19,"mean":"23.78"},"45":{"p25":16,"p75":30,"mode":16,"min":0,"std":"10.60","range":38,"max":37,"modeval":4,"median":19,"mean":"22.00"},"46":{"p25":17,"p75":25,"mode":17,"min":0,"std":"9.96","range":38,"max":37,"modeval":4,"median":18,"mean":"20.89"},"47":{"p25":16,"p75":22,"mode":16,"min":0,"std":"9.85","range":38,"max":37,"modeval":4,"median":19,"mean":"20.33"},"48":{"p25":17,"p75":18,"mode":18,"min":0,"std":"9.12","range":38,"max":37,"modeval":6,"median":18,"mean":"18.00"},"49":{"p25":13,"p75":24,"mode":19,"min":0,"std":"8.98","range":38,"max":37,"modeval":4,"median":19,"mean":"18.70"},"5":{"p25":17,"p75":32,"mode":32,"min":8,"std":"8.77","range":30,"max":37,"modeval":5,"median":19,"mean":"22.38"},"50":{"p25":24,"p75":24,"mode":24,"min":24,"std":"0.00","range":1,"max":24,"modeval":2,"median":24,"mean":"24.00"},"51":{"p25":24,"p75":24,"mode":24,"min":24,"std":"0.00","range":1,"max":24,"modeval":2,"median":24,"mean":"24.00"},"52":{"p25":24,"p75":24,"mode":24,"min":24,"std":"0.00","range":1,"max":24,"modeval":2,"median":24,"mean":"24.00"},"53":{"p25":24,"p75":24,"mode":24,"min":24,"std":"0.00","range":1,"max":24,"modeval":2,"median":24,"mean":"24.00"},"54":{"p25":24,"p75":24,"mode":24,"min":24,"std":"0.00","range":1,"max":24,"modeval":2,"median":24,"mean":"24.00"},"55":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"56":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"57":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"58":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"59":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"6":{"p25":16,"p75":28,"mode":18,"min":4,"std":"8.65","range":34,"max":37,"modeval":5,"median":18,"mean":"20.75"},"60":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"61":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"62":{"p25":21,"p75":21,"mode":21,"min":21,"std":"0.00","range":1,"max":21,"modeval":2,"median":21,"mean":"21.00"},"63":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"64":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"65":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"66":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"67":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"68":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"69":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"7":{"p25":16,"p75":26,"mode":16,"min":4,"std":"8.17","range":34,"max":37,"modeval":4,"median":19,"mean":"20.04"},"70":{"p25":19,"p75":19,"mode":19,"min":19,"std":"0.00","range":1,"max":19,"modeval":2,"median":19,"mean":"19.00"},"71":{"p25":17,"p75":19,"mode":17,"min":17,"std":"1.00","range":3,"max":19,"modeval":1,"median":18,"mean":"18.00"},"72":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"73":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"74":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"75":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"76":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"77":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"78":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"79":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"8":{"p25":17,"p75":28,"mode":17,"min":10,"std":"7.72","range":28,"max":37,"modeval":4,"median":19,"mean":"21.83"},"80":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"81":{"p25":17,"p75":17,"mode":17,"min":17,"std":"0.00","range":1,"max":17,"modeval":2,"median":17,"mean":"17.00"},"82":{"p25":16,"p75":16,"mode":16,"min":16,"std":"0.00","range":1,"max":16,"modeval":2,"median":16,"mean":"16.00"},"83":{"p25":16,"p75":16,"mode":16,"min":16,"std":"0.00","range":1,"max":16,"modeval":2,"median":16,"mean":"16.00"},"84":{"p25":16,"p75":16,"mode":16,"min":16,"std":"0.00","range":1,"max":16,"modeval":2,"median":16,"mean":"16.00"},"85":{"p25":8,"p75":16,"mode":8,"min":8,"std":"4.00","range":9,"max":16,"modeval":1,"median":12,"mean":"12.00"},"86":{"p25":8,"p75":8,"mode":8,"min":8,"std":"0.00","range":1,"max":8,"modeval":2,"median":8,"mean":"8.00"},"87":{"p25":8,"p75":8,"mode":8,"min":8,"std":"0.00","range":1,"max":8,"modeval":2,"median":8,"mean":"8.00"},"88":{"p25":8,"p75":8,"mode":8,"min":8,"std":"0.00","range":1,"max":8,"modeval":2,"median":8,"mean":"8.00"},"89":{"p25":8,"p75":8,"mode":8,"min":8,"std":"0.00","range":1,"max":8,"modeval":2,"median":8,"mean":"8.00"},"9":{"p25":16,"p75":32,"mode":16,"min":7,"std":"8.78","range":30,"max":36,"modeval":4,"median":19,"mean":"22.38"},"90":{"p25":8,"p75":8,"mode":8,"min":8,"std":"0.00","range":1,"max":8,"modeval":2,"median":8,"mean":"8.00"},"91":{"p25":8,"p75":8,"mode":8,"min":8,"std":"0.00","range":1,"max":8,"modeval":2,"median":8,"mean":"8.00"},"92":{"p25":8,"p75":8,"mode":8,"min":8,"std":"0.00","range":1,"max":8,"modeval":2,"median":8,"mean":"8.00"},"93":{"p25":29,"p75":29,"mode":29,"min":29,"std":"0.00","range":1,"max":29,"modeval":2,"median":29,"mean":"29.00"},"94":{"p25":29,"p75":29,"mode":29,"min":29,"std":"0.00","range":1,"max":29,"modeval":2,"median":29,"mean":"29.00"},"95":{"p25":29,"p75":29,"mode":29,"min":29,"std":"0.00","range":1,"max":29,"modeval":2,"median":29,"mean":"29.00"},"96":{"p25":29,"p75":29,"mode":29,"min":29,"std":"0.00","range":1,"max":29,"modeval":2,"median":29,"mean":"29.00"},"97":{"p25":29,"p75":29,"mode":29,"min":29,"std":"0.00","range":1,"max":29,"modeval":2,"median":29,"mean":"29.00"},"98":{"p25":29,"p75":29,"mode":29,"min":29,"std":"0.00","range":1,"max":29,"modeval":2,"median":29,"mean":"29.00"},"99":{"p25":29,"p75":29,"mode":29,"min":29,"std":"0.00","range":1,"max":29,"modeval":1,"median":29,"mean":"29.00"}},"complvals":{"dust":{"maxval":100,"minseq":"NNNNNNNNNNTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGAGAAGAGGCGTGGAGGAGATGACACACCCCGTGTGTTCTC","minval":2,"maxseq":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"},"entropy":{"maxval":81,"minseq":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","minval":0,"maxseq":"NNNNNNNNNNTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGAGAAGAGGCGTGGAGGAGATGACACACCCCGTGTGTTCTC"}},"dubscounts":{"1":{"0":1},"3":{"0":1}},"dubslength":{"100":{"0":4}},"qualsmean":{"27":1,"11":1,"32":1,"33":2,"18":1,"29":1,"17":4,"20":1},"tagprob":{"3":33,"5":33},"compldust":{"4":2,"3":2,"23":4,"100":1,"2":1,"5":2},"complentropy":{"81":1,"35":4,"77":1,"0":1,"73":3,"76":2},"dinucodds":{"AATT":"0.395437960","AT":"0.362329006","AGCT":"0.485808170","CATG":"1.073571725","GATC":"0.433830048","CCGG":"0.300572486","CG":"1.916620315","TA":"1.833186173","GC":"0.582918467","ACGT":"2.437785575"},"tail":1,"freqs":{"3":{"11":{"A":8,"T":50,"N":8,"C":16,"G":16},"7":{"A":16,"T":33,"N":0,"C":25,"G":25},"17":{"A":16,"T":0,"N":8,"C":50,"G":25},"2":{"A":8,"T":16,"N":0,"C":33,"G":41},"1":{"A":25,"T":8,"N":0,"C":33,"G":33},"18":{"A":8,"T":8,"N":8,"C":16,"G":58},"0":{"A":41,"T":33,"N":0,"C":16,"G":8},"16":{"A":50,"T":33,"C":0,"N":8,"G":8},"13":{"A":16,"T":8,"N":8,"C":33,"G":33},"6":{"A":16,"T":8,"N":0,"C":25,"G":50},"3":{"A":25,"T":41,"N":0,"C":0,"G":33},"9":{"A":16,"T":8,"N":0,"C":58,"G":16},"12":{"A":50,"T":33,"C":0,"N":8,"G":8},"14":{"A":8,"T":16,"N":8,"C":25,"G":41},"15":{"A":33,"T":41,"N":8,"C":8,"G":8},"8":{"A":50,"T":25,"N":0,"C":8,"G":16},"4":{"A":41,"T":16,"N":0,"C":25,"G":16},"19":{"A":16,"T":41,"N":8,"C":8,"G":25},"10":{"A":8,"T":33,"C":0,"N":8,"G":50},"5":{"A":33,"T":8,"N":0,"C":50,"G":8}},"5":{"11":{"A":16,"T":50,"N":0,"C":33,"G":0},"7":{"A":8,"T":33,"N":8,"C":25,"G":25},"17":{"A":8,"T":41,"N":0,"C":33,"G":16},"2":{"A":8,"T":0,"C":16,"N":8,"G":66},"1":{"A":50,"T":0,"N":8,"C":41,"G":0},"18":{"A":16,"T":8,"N":0,"C":0,"G":75},"0":{"A":50,"T":41,"C":0,"N":8,"G":0},"16":{"A":50,"T":8,"N":0,"C":16,"G":25},"13":{"A":16,"T":50,"N":0,"C":33,"G":0},"6":{"A":25,"T":0,"N":8,"C":8,"G":58},"3":{"A":50,"T":41,"C":0,"N":8,"G":0},"9":{"A":8,"T":25,"N":8,"C":33,"G":25},"12":{"A":41,"T":0,"N":0,"C":8,"G":50},"14":{"A":33,"T":0,"N":0,"C":25,"G":41},"15":{"A":8,"T":50,"N":0,"C":33,"G":8},"8":{"A":58,"T":8,"C":0,"N":8,"G":25},"4":{"A":41,"T":25,"C":16,"N":8,"G":8},"19":{"A":16,"T":75,"N":0,"C":0,"G":8},"10":{"A":16,"T":8,"N":0,"C":0,"G":75},"5":{"A":16,"T":25,"N":8,"C":50,"G":0}}}}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/example1.html	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,7035 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PRINSEQ-graphs Report</title>
+<style type="text/css">
+<!--/* <![CDATA[ */
+
+html, body, div, span, p, img {
+    margin: 0;
+    padding: 0;
+    border: 0;
+    outline: 0;
+    font-size: 100%;
+    vertical-align: baseline;
+    background: transparent;
+}
+
+html, body {
+    font-family: Arial, Verdana;
+    color: #40454b;
+    font-size: 12px;
+    text-align: center;
+}
+
+img {
+    padding: 0px; margin: 0px; border: none;
+}
+
+.info-panel {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    width: 740px;
+    text-align: left;
+}
+
+.info-header {
+    padding-top: 20px;
+    padding-top: 10px;
+}
+
+.info-header-title {
+    color: #126499;
+    text-decoration: none;
+    font-family: sans-serif;
+    font-weight: bold;
+    font-size: 16px;
+    vertical-align: baseline;
+    margin-right: 20px;
+    margin-bottom: 25px;
+    margin-top: 15px;
+}
+
+.info-content {
+    padding: 2px;
+    font-family: "lucida grande",sans-serif,arial;
+    margin-top: 15px;
+    margin-bottom: 15px;
+}
+
+.info-table-type {
+    min-width: 70px;
+    padding: 4px;
+    vertical-align: top;
+}
+
+.info-table-value {
+    font-weight: bold;
+    padding-top: 4px;
+    padding-left: 10px;
+    padding-right: 10px;
+    vertical-align: top;
+}
+
+hr {
+    background-color: #E0E0E0;
+    border: medium none;
+    color: #E0E0E0;
+    height: 1px;
+    outline: medium none;
+}
+
+.sequencetext {
+    font-family: courier, "courier new";
+    font-weight: normal;
+}
+
+/* ]]> */-->
+</style>
+</head>
+<body>
+<center><h2>PRINSEQ-graphs v0.6 HTML Report&nbsp;&nbsp;&nbsp;</h2>[Generated: 03/13/2013 12:12:36]<br /><br /><div class="info-panel"><div class="info-header"><span class="info-header-title">Input Information</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Input file(s):</td><td class="info-table-value">example1.fastq</td></tr><tr><td class="info-table-type">Input format(s):</td><td class="info-table-value">FASTQ</td></tr><tr><td class="info-table-type"># Sequences:</td><td class="info-table-value">12</td></tr><tr><td class="info-table-type">Total bases:</td><td class="info-table-value">1,150</td></tr></tbody></table></div><hr><div class="info-header"><span class="info-header-title">Length Distribution</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"> <tbody><tr><td class="info-table-type">Mean sequence length:</td> <td class="info-table-value">95.83 &plusmn; 37.96 bp</td></tr><tr><td class="info-table-type">Minimum length:</td> <td class="info-table-value">50 bp</td></tr> <tr><td class="info-table-type">Maximum length:</td><td class="info-table-value">200 bp</td></tr> <tr><td class="info-table-type">Length range:</td><td class="info-table-value">151 bp</td></tr> <tr><td class="info-table-type">Mode length:</td> <td class="info-table-value">100 bp with 8 sequences</td></tr></tbody></table><br><img border="0"  src="data:image/png;base64,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
+//79SktL04ABA3zdlRumsLBQjRs31rJlyzRo0CAlJyf7ukuWeuWVVzRmzBitWrVKY8eO1auvvurr
+LsFibL/si+0X26/rQUANcKdOndKECRM0ffr0YocdateurYyMDEnS6dOnVatWLV910Wt2796tw4cP
+q3///urfv7/Onz+v/v37y+12S7LnmOvWravevXtLknr16qWDBw96ptlxvLt27VKvXr0k/TLePXv2
+eKbZcbyXu9IY7Th+tl9svyT7jLeyb7+8jYAawHJzcxUfH6+xY8eqdevWxabZ8alajz32mNasWaOV
+K1dq5cqVcrlcWrlypef8JjuOuXPnztq2bZukX656btSoUbFpdhtvgwYNPOPdunWr6tev75lmx/Fe
+7kpjtNv42X6x/bLbeCv79svbuFF/AFu8eLHefPNNzzk9kvTee+/J6XRWiqdqdenSRV9++aXnZzuO
+OScnRy+88IJ+/PFHBQcH66WXXlLLli0l2XO8+/bt07Rp05Sfn6+QkBBNmjRJsbGxkuwz3nnz5mn1
+6tXKyMhQ7dq11a9fP8XFxUm68hgDdfxljdeu268rrd9L2WX7daXx2nH7daXxVobt141EQAUAAIBf
+4RA/AAAA/AoBFQAAAH6FgAoAAAC/QkAFAACAXyGgAgAAwK8QUAFclw0bNsjhcCg7O9vXXbkuReOo
+yCMIr+V3rFjG1UyZMkVDhw6t8O9Z3bcbMXZv8HY/27dvrw8++MArywLsioAKBLiiL8+i10033aS+
+fftq//79vu6aJP8KId4O0507d9aJEycUFRXlleVZ4aefftLMmTP1H//xH562yz8zVatWVdeuXbVr
+165iv2v1+Hz1/iUkJCg2NlYhISGqVauWfv/73+unn366YfUnTpyoF154QdzlESgbARWwiX379unE
+iRNKTU2V2+3W4MGDfd0l2wsJCVHdunXlcDh83ZUyLVq0SLGxsYqJiSkxregzs337dlWrVq3EZ8bq
+8fnq/duzZ4+Sk5N18OBBrVy5Utu3b9fjjz9+w+r3799fp06d0meffXbDagKBhoAK2ER0dLTq1q2r
+O++8U3/605904MABnT9/vtg8c+fOVatWrRQSEqIGDRroxRdfVGFhoWf6O++8o3bt2ik0NFQ1atTQ
+0KFDi+1tLCgo0Pjx41W7dm1Vq1ZNAwYM0A8//HDdfb9av4r2+K1bt07t27dXaGioOnbsqAMHDnjm
+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
+BznSs8jRmsfbAAAAAElFTkSuQmCC
+" />
+</div><hr><div class="info-header"><span class="info-header-title">GC Content Distribution</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Mean GC content:</td> <td class="info-table-value">48.17 &plusmn; 14.83 %</td></tr> <tr><td class="info-table-type">Minimum GC content:</td> <td class="info-table-value">0 %</td></tr> <tr><td class="info-table-type">Maximum GC content:</td> <td class="info-table-value">57 %</td></tr> <tr><td class="info-table-type">GC content range:</td> <td class="info-table-value">58 %</td></tr> <tr><td class="info-table-type">Mode GC content:</td> <td class="info-table-value">50 % with 5 sequences</td></tr> </tbody></table><br><img border="0"  src="data:image/png;base64,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
+2rVrKycnR5K0fft23z7JyYHoGQAAAH4y4yDdunUzXq/X9/2tt9562f06dOhAO+2000477bTTTnsF
+tPuTo4Lrr371K3PixAljjDHZ2dlm4MCBAe5RSRXxglKXutSlLnWpS13qOpWj5rh27txZa9eulSSt
+WbNGnTt3DnCPAAAA4C8uY4wJdCf85cyZMxo/frxOnTql2rVra8aMGapevXqguwUAAAA/cFRwBQAA
+gHM5aqoAAAAAnMtRy2Hh/yxcuFAZGRnKzs7W1q1bS2xz2h3Gtm/frtmzZ6uoqEhut1vjx49X27Zt
+JTlvrMX+9re/KT09XS6XS5I0atQo3XLLLZKcO2ZJeuaZZ5Senl7iPe3E8Xbu3FkNGzaUJP32t79V
+v379JDlzrMUWLlyo999/X8YYDRw4UPfee68k54559uzZvqUav/nmG+Xm5iozM9OR492wYYPmz58v
+SXK5XBoxYoS6desmyZmv7/79+5WSkqLCwkLVr19fU6ZMUVhYmCRnjrfCBfSjYbAmKyvLnDx50nTp
+0qXUttmzZ5vXXnvNGGPMa6+9ZubOnVvR3fOrAwcOmFOnThljjNmxY4cZMGCAb5vTxlosPz/f9/Wh
+Q4dMr169fN87dcz/+te/zIQJE0q9p5043sv93BrjzLEaY8xbb71lJk+ebIqKiowxxuTm5vq2OXXM
+F1u+fLlJSUkxxjhzvL169TIHDx40xhjz+eefm969e/u2OXG89913n/nwww+NMcb8z//8j3n++ed9
+25w43orGVAGHatWqle9mDJe60h3GglXjxo1Vs2ZNSVLr1q116tQp3zanjbVY8f/eJencuXOqW7eu
+73snjvnChQuaO3euxo4dW2qbE8d7JU4d68qVK/XAAw/I7f7un6TIyEjfNqeO+WLvvvuub4xOHG90
+dLTOnj0r6bsrjjfccINvmxPHe/jwYf3iF7+QJN18880lxuTE8VY0pgpcg650hzEnWLVqle9P5pKz
+x7p8+XItX75c58+f10svveRrd+KYFyxYoHvuucf3H5SLOXG8xhgNGTJE4eHhmjBhgmJiYiQ5c6zS
+d//Qv/POO1q/fr1q1KihiRMnqn79+pKcO+Zix44d07Fjx3y3JHfieJ966ikNHTpULpdLxhgtWrTI
+t82J423cuLHee+89/fKXv9R7772n48eP+7Y5cbwVjSuucIz9+/dryZIlSkxMDHRXKsRvfvMbvfXW
+Wxo9erSefvrpQHfHmr1792rfvn268847A92VCpORkaGlS5fq7rvv1pQpUwLdHeuKiorUoEEDLV++
+XAMGDFBqamqgu1Rh1q1bp/j4eN/VZid65plnNHr0aL399ttKSEjQzJkzA90lqyZNmqSVK1dq0KBB
+OnDggCpVqhToLjmKc39ScEVRUVHKzs6WJOXk5Kh27doB7tFPd+LECU2YMEHTp08vMUXCiWO9VJ8+
+ffTxxx/7vnfamHfu3KlDhw6pf//+6t+/v7755hv1799fXq9XkvPGK0k1atSQJPXu3VsHDx70tTtx
+rJL0s5/9TL169ZIkxcfH69NPP/Vtc+qYi108TUBy5ng/+ugjxcfHS/ru9d21a5dvmxPH26hRI730
+0kv661//qjvvvFM33nijb5sTx1vRCK7XIKfdYSw/P1+JiYlKSEhQbGxsiW1OG2uxY8eO+b7euHGj
+70/JkvPGPGTIEK1du1YZGRnKyMiQx+NRRkaG7wqV08abl5cn8/+X1/7www/VoEED3zanjbVY586d
+tW3bNknfrRJy8T/0Th2zJB06dEjnzp1Tq1atfG1OHG90dLTv9d26davq1avn2+bE8X711VeSvpvy
+88orr6h///6+bU4cb0XjBgQONW/ePK1Zs0bZ2dmKiopS3759NXLkSEnOu8PYkiVL9NJLL/nmxEnS
+G2+8Ibfb7bixFps+fbp27twpY4wiIyNLzIN06piLde3aVZs2bfJ977Txrl27VmlpaZIkj8ejJ598
+Us2aNZPkvLEWO3v2rCZNmqQvv/xSoaGhmjx5suPHLEkvvviijDF69NFHfW1OHO+ePXs0depUXbhw
+QZUrV1ZSUpLi4uIkOXO8b775ppYtW6ZKlSqpW7duGjFihG/pQieOt6IRXAEAABAUmCoAAACAoEBw
+BQAAQFAguAIAACAoEFwBAAAQFAiuAAAACAoEVwBwsClTpui+++4LdDcqTIcOHfTmm28GuhsALCG4
+AgiYr776SpMnT1bbtm0VHh6uKlWqqHHjxnrggQd8C5YX++KLLzR8+HDdeOONqly5surUqaOBAwfq
+f//3f7+3xo993o+xfv16uVwu5eXl+f3YP6bG6dOnNWvWLD355JMl2p999lnFxMSoSpUqat26tVau
+XFnm+g8//LD+67/+S9WrV79iP8py/B/aJz09XY0bN1ZoaKjat29f4v1QUFCg1q1bKz09vdRxJ06c
+qEmTJomVHgFnIrgCCIhjx46pQ4cOev/995WcnKzdu3fr008/1euvv66YmKcSr94AAAe1SURBVJgS
+96s/ePCgOnTooOPHj+uNN97QwYMH9c4776hp06ZKTk6+Yo0f+zynePnllxUXF6cWLVr42ubNm6eU
+lBTNnDlT//73v/Xwww/r3nvv1YYNG8p0zKKiIg0aNEiTJk267PayHP+H9jl58qSGDBmie++9V598
+8oliYmI0aNAg3/NnzZqlRo0a6Ve/+lWp+v3799eJEyf03nvvlWk8AIKMAYAAuOuuu0z37t1NYWHh
+Zbd7vV7f17fffrvp27fvZffLzc29Yo2yPq+goMAkJSWZ6OhoExoaapo1a2YWL15cYv/MzEwjybz7
+7rumffv2pnLlyqZjx45m3759vn0klXpcbO7cuaZZs2YmNDTU1KtXz0yaNKnE+P1R42Lt27c3M2bM
+8H3v9XpNdHS0mTZtWon9Bg8ebPr163fF41xOcV8vPo9lOX5Z9vnwww+NJHP06FFjjDFr1qwxkkx+
+fr45cOCAiYqKMkeOHLli3wYPHmwefPDBco0HQHAguAKocKdPnzZut9usWbPmB/fNyckxLpfLvPvu
+u+WqUZ7nPfrooyYqKsqsWrXKHD582CxatMhUqVLFpKWl+fYpDmqdO3c2W7ZsMZ988om5+eabTY8e
+PXz7pKenG0lm//795j//+Y/5z3/+49s2efJk07x5c7NmzRpz9OhR895775mGDRuaiRMn+q3Gxc6c
+OWNcLpd5//33fW2fffaZkWS2b99eYt9XX33VXHfddT94ni52ueBaluOXZZ+cnBzj8XjMwoULTVFR
+kRk1apRp3ry5McaY+Ph4M2fOnO/t23PPPWcaNWpUrvEACA4EVwAVbuvWrSWuqBW7++67TbVq1XyP
+vLw8889//vOy+/6Qsj4vLy/PhIaGmtdff71E+7hx43xhyZj/C2offPCBr+2vf/2rCQkJMQUFBSX2
+ufQqcH5+vqlatarZvHlzifalS5eamjVr+qXGpf71r38ZSebTTz/1tW3evNlIMseOHSux77p164wk
+c+7cue895sUu14+yHL+sfVi9erVp166dqVu3runevbvJysoyS5YsMR07djTbtm0znTt3NvXr1zf9
++vUzX375ZYljpaenG5fLZS5cuFDm8QAIDsxxBXDV+Mtf/qKdO3dq4cKFys/Pr5AP2Ozbt08FBQXq
+3r17ifbu3btr//79+vbbb0u0x8XF+b6uU6eOCgsLlZ+f/7019uzZo/Pnz6tXr14KDw/3PR588EGd
+Pn1aZ8+e/ck1LlV8zPDw8FLbXC7X9z734j5e7vk/5IeOX5Z9+vXrp48++kjHjx/X+vXrdcMNN2jc
+uHGaN2+eBgwYoP79++vzzz9XRESEHnjggRLPjYiIkDGm1HkFEPxCAt0BANeeJk2ayO12a9euXYqO
+jva1X3/99ZK+Wwng4n1dLpf27t1bYt+y1Pgxz/shbnfp/+//UMD2er2SpLVr1+pnP/tZqe1hYWE/
+ucaligPn119/7atZfH6PHTtWoh/Hjh3Tddddp6pVq0qSdu7cWa5axcpy/LL24VJ/+tOf9Nvf/lYh
+ISH68ssvdd9998ntdmvIkCG6++67VVBQoNDQUEnSmTNn5HK5flToBnB144orgApXs2ZN3XHHHZo+
+fboKCgq+d99atWopPj5ec+bMuez2Ky0LVdbnxcbGKjQ0tNSn6jds2KAWLVqoSpUqPzQcn0qVKkn6
+v6BaLC4uTh6PR0eOHFGTJk1KPS4XVMtb41LFwf3w4cO+tgYNGig6Olrr1q0rse+6devUpUuXEs+9
++FFWZTl+WftwsQ0bNigzM1MpKSkqKiqSJN/75sKFC/J6vSXOx+HDhxUTE+MLsgCcgyuuAALiL3/5
+i7p06aKuXbtq7Nix+vnPf64qVaro6NGjeuWVV+RyuXyBbv78+brlllt011136fHHH1dMTIxycnK0
+cuVK7dixQ2+//fZla5TleREREXr44Yc1duxY1ahRQ23bttW6des0d+5cvfjii+UaU4MGDSRJq1at
+Ur9+/eRyuVS7dm2Fh4dr/PjxGjVqlIqKitStWzcVFBRox44d2r9/v/785z//5BqXql69utq1a6dt
+27YpPj5e0nd/nn/iiSeUlJSkpk2b6qabblJGRoZWrFhR5uWjiq/GHjhwQJKUlZXlq1WW45e3D99+
++62GDx+u+fPnKywsTG3atFGtWrU0a9YsPf7447730cX/wdi2bVupqR8AHCKwU2wBXMtyc3PNk08+
+aVq1amWqVq1qqlSpYho3bmwefPDBUp86P3LkiBk6dKipV6+eCQkJMVFRUWbgwIFmx44d31ujLM8r
+KCgwEydONPXq1fMth7Vo0aISxyn+MFJ2dnaptos/oPTUU0+Z66+/3rjd7lJLVS1cuNC0adPGVK5c
+2VSrVs106tSpRB1/1LjYjBkzTKdOnUq1z5w50zRo0MCEhoaauLg4k56e/n2nsARdZjmuS/tQluOX
+tQ+TJ082gwYNKtH2wQcfmObNm5vQ0FDTuXNnc+DAAd+2b7/91tSoUcOsXbu2zGMCEDxcxnB7EQBw
+olOnTikmJkb//Oc/1bJly0B3p0Kkp6crKSlJn3zySZk+JAYguDDHFQAcqlatWho7dqymTp0a6K5U
+mGnTpmnKlCmEVsChuOIKAACAoMAVVwAAAASF/weuq89m7fnaSQAAAABJRU5ErkJggg==
+" />
+</div><hr><div class="info-header"><span class="info-header-title">Base Quality Distribution</span></div><div class="info-content"><img border="0"  src="data:image/png;base64,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
+qJHuvfdeNW/eXFJwl7nY7t27tXv37tDXHAdxeR9++GGNHDlSSUlJchxH8+fPD00L4vK2bt1ar776
+qvr166dXX31V3377bWhaEJc33jiTCV9s375dS5Ys0fjx4/3uSlwMHTpUL730ksaOHatp06b53Z2Y
+2bp1q7Zt26Ybb7zR767EzcqVK7V06VL9/Oc/15QpU/zuTsydOXNGLVq0UHZ2tm666SY99NBDfncp
+btauXavevXuHzuIG0WOPPaaxY8fqlVde0bhx4/T444/73aWYuv/++/Xiiy9qyJAh+vTTT1WzZk2/
+uxQowd1SAiCo3360Z88eTZo0SVOnTi11q0BQl7ekvn376sMPPwz9HbRl3rx5sz7//HMNHDhQAwcO
+1IkTJzRw4EAVFRVJCt7ySlKjRo0kSTfccIM+++yzUHsQl1WSmjVrpj59+kiSevfurU8++SQ0LajL
+XKzkpXIpmMv7n//8R71795Z09vPdsmVLaFoQl/fiiy/WvHnztGzZMt1444266KKLQtOCuLzxRpJp
+sCB++1FBQYHGjx+vcePGqW3btqWmBXF5pbOX2Iq99dZbocupUvCWOSMjQ6tXr9bKlSu1cuVK1alT
+RytXrgyd+Qna8h46dEjO/5Uafvvtt9WiRYvQtKAta7H09HS9++67ks5Wiyh5UA7qMkvS559/rmPH
+jumqq64KtQVxeS+88MLQ57thwwZdcMEFoWlBXN7Dhw9LOnvbyzPPPKOBAweGpgVxeeONYuw+mzlz
+platWqV9+/YpLS1N/fv31+jRoyUF89uPlixZonnz5oXu4ZKk559/XjVq1Ajk8krS1KlTtXnzZjmO
+o+9///ul7tsL6jIX6969u/71r3+F/g7a8q5evVqLFi2SJNWpU0f33XefLrvsMknBW9ZiR48e1f33
+369du3YpOTlZDz74YOCXWZKefvppOY6jUaNGhdqCuLwfffSR/vSnP6mwsFApKSn64x//qCuvvFJS
+MJf373//u/7617+qZs2a6tGjh+68885QubkgLm+8kWQCAADAc1wuBwAAgOdIMgEAAOA5kkwAAAB4
+jiQTAAAAniPJBAAAgOdIMgEE1rp165SUlKRDhw4Z0Y9IvpbOzbzx6hMARIMkE0DMFCcyxT/f+973
+1LdvX23dutXvrsVVenq6vvnmGzVp0kRS5clv2Xnj1adoLF++XK1bt1ZycrJ+9KMfhYp4S9KpU6fU
+rl07LV++3IvuArAQSSaAmPvoo4/0zTffKCcnR0VFRRo0aJDfXYqrlJQUNWvWLFTk2at549Wniuzd
+u1cZGRkaPHiwPv74Y7Vq1UpDhgwJTZ8+fbouvvhi/eIXv/CqywAsQ5IJIOaaNm2qZs2a6Uc/+pHu
+uecebd++XSdOnCg1z5NPPqk2bdooJSVFF154oR544AGdOXMmNP25555Thw4dVLt2bTVq1EjDhg0r
+dSbw9OnTyszMVFpamurVq6cbb7xRX3/9daX9Kj6j+Nprryk9PV116tRRixYtNHPmzFLznT59Wvfd
+d5+aN2+ulJQUtWnTRgsXLiw1z9y5c3XRRRepVq1auuCCC/TnP/+53PsUX5ru1auXpLPfe158ljfc
+vJG8d/Fr1q5dqx//+MeqXbu2OnXqpO3bt1e57MXv4zbGJ598osLCQt1555265JJLNHLkSO3cuVPH
+jh3TZ599pj//+c/lxhFAgnEAIEZycnIcSc6+ffscx3GcQ4cOOcOHD3fatm1bar4HH3zQadOmjbNq
+1Srnq6++cl599VWnZcuWzr333huaZ/Hixc7rr7/ufPnll866deucq666yhk2bFho+tixY52mTZs6
+K1ascL744gtn7ty5TmpqqiPJOXjwYKX9u+SSS0Kvmz9/vlO7dm1n0aJFoflGjRrlpKWlhZ1nx44d
+TlJSkjN16lRn586dznvvveesWLEi7DgsX77ckeRs377d+eabb5xvvvkm7LxVvXfJ16Snpzt5eXnO
+xx9/7FxzzTVOz549I/5s3MbIz8936tSp48ydO9c5c+aMM2bMGKdNmzaO4zhO7969nb/85S9h3xtA
+YiDJBBAzxYlLvXr1nHr16jmSnMsuu8z59NNPQ/MUFBQ45513npObm1vqtUuXLnUaN24cNvaLL77o
+1KtXzykqKnIOHz7spKSkOIsXLy41T2ZmZkRJZtnXTZgwwbn88ssdxzmbGCcnJ1c4T3FS9d577zmS
+nC1btlT6PmUTuor6VXLeSN675GveeOONUNuyZcucWrVqOadOnXLVJzcxXn75ZadDhw7O+eef71x7
+7bXOBx984CxZssTp2LGj8+677zrp6elO8+bNnQEDBji7du2qMAaA4OJyOYCYy8nJ0aZNmzR79mzt
+2LFDW7ZsCU376KOPdPz4cfXp00f169cP/dx+++06cOCAjh49Kklav369evfuraZNm6pBgwa6+eab
+VVBQoKNHj2rbtm0qLCzUtddeW+p9iy9LV6Xs66699lpt27ZNJ0+e1LZt23Tq1KkK59m+fbtOnjyp
+Dh06qFOnTurRo4eGDx+uv/3tb6Uu9Ucrkvcu6corrwz93rRpU50+fVoFBQWu3tNNjAEDBug///mP
+vv32W61bt04//OEPNWHCBM2cOVM33XSTBg4cqJ07d6phw4b6zW9+46ofAOxXy+8OAAi+Vq1aKTU1
+VW3atNH27ds1fvx4DRw4UMnJySoqKpIkrV69Ws2aNSv32rp16+rQoUPq16+fBg0apClTpig1NVV5
+eXm67bbbSiVz0T7EUt2HbGrVqqX169drzZo1Wr16te644w4tXbpUL774YrXiulWjRvnzBo7jxC3G
+H/7wB91yyy2qVauWdu3apWHDhqlGjRrKyMjQz3/+c506dUrJycmu+gPAXpzJBBBXd999t3bt2qW/
+//3vks6eOatTp46+/PJLXXLJJeV+atSooa1bt+rIkSOaMmWKunbtqksvvVR79+4Nxbz88suVkpKi
+N998s9R7rVu3LqI+lX3dW2+9pcsvv1y1a9dW27ZtlZycXG6eN998MzSPJCUnJ+tnP/uZZs6cqblz
+5+qll17S8ePHK3y/mjVrSlIowQ4n0vc2wZtvvqmcnBxlZWWFEv9Tp05JkgoLC1VUVFTl8gIIFs5k
+Aoiriy66SAMHDtSTTz6pm2++WfXr19fEiRM1ZswYnTlzRj169NCpU6e0adMmbd++XQ888IBatmyp
+mjVr6qmnntKoUaO0efNmPfnkk6GYDRs21O9+9ztlZmaqUaNGateunV599VU9++yzEfXpoYceUqNG
+jXT11Vfr1Vdf1YwZM0JPRpeN3b59e61du1YzZszQ008/LUl699139e6776p3796qVauWVq5cqQsu
+uEB16tSp8P1atGghSVqxYoUGDBigpKQkpaamlpsvkvc2wcmTJ3XHHXdo1qxZqlu3rq6++mo1adJE
+06dP1z333KPZs2frJz/5iVFJMYA48PumUADBVfbhkmKvv/66I8l57733Qm1z5851rr76aiclJcWp
+V6+e07lzZ2f+/Pmh6QsXLnR+8IMfOHXq1HGuu+4659lnny318ExhYaEzfvx4p0mTJs55553n9OvX
+z1myZElED/6sWbPG6dKli1O7dm2nefPmzowZM0rNd+rUKefee+91LrjgAic5Odm57LLLSvVt69at
+Tq9evZwGDRo4ycnJTpcuXZwNGzZUOg4PP/yw84Mf/MCpUaOGU3JXXHbeqt47XPzKHi6q6DXRxCj2
+4IMPOkOGDCnV9sYbbzht2rRxkpOTnfT09FIPewFIDEmO4/KGHQAIiHXr1qlXr17at29fhWcSAQDR
+455MAAAAeI4kEwAAAJ7jcjkAAAA8x5lMAAAAeI4kEwAAAJ4jyQQAAIDnSDIBAADgOZJMAAAAeO7/
+A79t5wG6MWoxAAAAAElFTkSuQmCC
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApkAAAFtCAYAAABMRHHAAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE
+QVR4nO3de3QU9d3H8c+GJCAJ2ECCtIpAvQCiQlvAJhSECooo9pFWwAhogdYWAcFuecAb1wJqHn1Q
+sCAXFTw02KIcUAS8ELVJREDBVoSDFRQBIQFREpEAmeePPBly281OMrszs/t+nZNzdn/zm5nvXHb2
+m7l812cYhiEAAADARnFOBwAAAIDoQ5IJAAAA25FkAgAAwHYkmQAAALAdSSYAAABsR5IJAAAA25Fk
+AgAAwHYkmQAAALAdSSYAAABsF+90AAAQzTZuDK3f9deHNw4ENnWqvf0ASZoa4g4Taj8v4kwmALhY
+RkaGxo0bV6ltwoQJysjIMN+PGDEi5OnNmjVLO3bsCGm6TujRo4ej87dq69atyszM1ODBg3X77bdr
+x44d5rCMjAxlZmYqMzNTr776qtm+dOnSStMIdZmrjheqxx9/3Ixj4MCB6t27d1jic6uqy1Px8+Lm
+ZbP7M9qrVy/ztZVjRn1wJhMAXKxBgwY6evSojh07pmbNmunrr7/WV199pcTERLOPleTj3//+tyZN
+mhTSdFG7lJQUzZs3T82aNdMHH3ygadOm6aWXXpJUtu1WrFhRbZxnn322Tl/ydR3vvvvuM1+vXLlS
+u3fvDkt8digtLVVcnL3nv6ouT12T9UgL52c0UuuAM5kA4HI33HCDNv7/dfeNGzfq+irX1iuejenR
+o4eee+45DR8+XLfccov++c9/msP27t2riy++2PwSr226a9eu1fDhwzVkyBDdcccd2rlzpyRp586d
+GjJkiEpKSnTy5En95je/0X/+859K4z711FN68cUXzffPPPOMli9fHnS6VVU9y1TxTMyxY8c0btw4
+DR48WHfccYc++eSTAGsvvC655BI1a9ZMknTVVVfp6NGjQfsvWLBAp06dUmZmpvx+v9keaJsFG+/Q
+oUMaMWKEBg8erJEjR+rQoUO1xrthwwb169fP9viksu315JNPKjMzU0OHDtXBgwfNYcG2V48ePTRv
+3jwNGzZM27Zt07FjxzR+/HgNGjRIQ4YM0datW0OaRk0x1rQ8gc5eumWfqqi2z2iwmA8ePKihQ4cq
+MzNTTz75ZKXxKq6DYJ/HYMeTUJBkAoDL9evXT+vXr5ckvfbaa+rfv3/AvmfPnlWLFi20bNkyzZ49
+W3PnzjWH5eXlVbrUVtt0e/XqpWXLlik7O1tTp07VI488Ikm64oor1LNnTz399NOaO3eubrrpJl1y
+ySWVxr3++uv1xhtvmO/feOMN8wsy0HStyMrK0rBhw7Ry5UpNmzZNs2fPtjwNu61Zs0bdu3c33xuG
+oczMTP3+97/X3r17JUl/+MMf1LBhQ61YsUJZWVmSgm+zcjWN99hjj+lXv/qVVq5cqVtuuUWPPfZY
+0PgOHjyogwcPqkuXLrbHV96vdevWWrFihW677TZzfCn49jp79qwuueQSLV++XF27dtVjjz2mn/70
+p3rxxRf1t7/9TR06dAhpGjXFWNPyBOLGfaq2z2iwmLOysnTbbbdpxYoVat26tUpKSmqcR7DPY6jb
+PhAulwOAy7Vo0UKNGzfW22+/rUaNGumCCy4I2Nfn85nJXMeOHVVQUGAOy8/P15QpU0Ke7r59+zR/
+/nwdO3ZM8fHx+vLLL81hv/vd7zR8+HAlJiZq4sSJ1eJo166djh07poKCAn399ddq0qSJOf1g0w3V
++++/r3379pnvi4uLLU/DTrt379by5cu1aNEis23t2rVKSUnRunXrNGPGjICXKINts2C2b9+uWbNm
+SZJuvPHGamerqtq4caP69OljnskOR3w33HBDjfHUtr2uu+468/XmzZv10EMPmfNOSkqqdRp1XYcV
+uW2fkmr/jAaLuer+8eijj9Y4j2Cfx/quV5JMAPCAm266SdOnT9e9994btF9cXJzi46sf2r///nud
+OHFCaWlpIU/3oYce0rRp09SpUyeVlJSYD4xI0jfffKPvvvtOZ86c0alTp3TeeedVG79Pnz568803
+dfToUTP5qG26VRmGIZ/Pp7Nnz+rs2bNme2lpqZYuXapGjRoFXR+RcPjwYU2ePFmzZ8+utH5TUlIk
+lSVewc7WBtpmdtuwYYMeeOABR+ILtr0aNGhQ6T5Dn89neRrhjtFJwT6jdsQc7PNY3/XK5XIA8IDe
+vXtr2LBh6tOnT53G37p1q3mZNNTpfvfdd2rRooUk6eWXX5ZhGOawmTNn6o9//KNuvPFGPfXUUzXO
+8/rrr9fGjRv15ptvVpp+sOlW1LJlS/P+sI0bN1ZKMrt162Y+YCPJvNwbacXFxZowYYLGjx9vXtaV
+pOPHj5vL9c9//lOtW7c2hyUkJOjUqVOW51V1vM6dO5v3661fv16dOnUKOO5nn32m7777TldeeWXY
+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
+JzRjxgylp6frsssu05EjR8xptm/fXomJiXr77bcrzSsnJyekmKqO984776h9+/Zq2LChOnTooISE
+hGp93n77bbOPJCUkJOjmm2/WvHnztHDhQq1evVonT56scX7lSVB58hFIqPN2WrD1V5d+knTppZfK
+5/Pp888/DymGuLg4nThxQmfOnLEYfWBWtumRI0f0X//1X7r33ns1aNCgSsNC2cdDVVpaquHDh2vP
+nj3asGGDmjZtWmM/O7fJ559/rrZt2yohISHkOIFYwJlMwGUuvvhiDRgwQE8++aRuv/12JScna9Kk
+SRo7dqzOnj2rnj176vTp09q2bZt2796thx9+WG3atFGDBg301FNPafTo0dq+fbuefPJJc5pNmzbV
+73//e/n9fqWkpOiqq67S66+/rueeey6kmKZPn66UlBRdffXVev311zV37lzzKduq0+7UqZM2btyo
+uXPn6q9//ask6f3339f777+vPn36KD4+XmvXrtWFF16oRo0a1Ti/1q1bS5LWrFmjm266ST6fzzwr
+V1Eo83aDYOuvLv0kqUmTJurcubO5Xqs6cuSIzpw5o9LSUn366aeaOnWq+vbta1vibXWblj/xfc89
+9+irr74y21u2bBnSPl4+z+HDh+u9994LeMn897//vXJycrRu3TqdPn3anNcFF1xQ6aykndvk/fff
+r3ZZHYB4uhxwUqCHI958801DkrFlyxazbeHChcbVV19tJCYmGklJSUa3bt2MRYsWmcOXLFli/PCH
+PzQaNWpkXHfddcZzzz1X6eGZkpISY8KECUbz5s2N8847z7jxxhuN5cuXh/Tgz4YNG4xrrrnGaNiw
+odGqVStj7ty5lfqdPn3auP/++40LL7zQSEhIMC6//PJKse3cudPo3bu30aRJEyMhIcG45pprjM2b
+NwddDzNnzjR++MMfGnFxcUbFQ1XVvrXNO9D0gz1cVNM49ZlGbesv1H5VzZkzx+jWrVuN0yr/8/l8
+xgUXXGCMGjXKOHr0qG3LZ3WbVoyp4l9Fte3joTxdHmg+5ctg9zY5deqUkZKSYqxfvz5gTECs8hkG
+P1MAoGY5OTnq3bu3CgoKajyTCHvUdT0fPXpUbdu21XvvvacrrrgijBHGnlC3yapVq/TAAw/ok08+
+cXXhfsAJ3JMJAB7VvHlz+f1+/eUvf3E6lJg1a9YszZgxgwQTqAH3ZAKAh5XfrwhnbNu2zekQANfi
+cjkAAABsx+VyAAAA2I4kEwAAALYjyQQAAIDtSDIBAABgO5JMAAAA2O7/AFLuW7gtRtZ5AAAAAElF
+TkSuQmCC
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ8AAAD/CAYAAAAuYdt6AAAABmJLR0QA/wD/AP+gvaeTAAAfI0lE
+QVR4nO3dfVAU9+E/8PcBB8ehiDwZHzBYlQchkYmKHROjQBIVY9pkbFqtJlp1jEIQHKuomVQg40N0
+YoxYH0B8IAWrQ01ETUwTH4jVWnUaJaI2CSpO4sPhQBQk4eE+3z/y437CHdztsexxe+/XDDOwd+y+
+93bx7T5rhBACRERECnJzdAAiInI9LB8iIlIcy4eIiBTH8iEiIsWxfIiISHEsHyIiUhzLh4iIFMfy
+ISIixbF8iIhIcSwfIiJSHMuHiIgUx/IhIiLFsXyIiEhxLB8iIlIcy4eIiBTX5crn3XffxciRIx0d
+g4iIOlGXKp///ve/qK6uhqenp6OjEBFRJ+oy5VNfX48NGzZg0aJFjo5CRESdzMPRAZpt2bIFr7zy
+Cvz9/S2+Pnz4cNP3586dUyoWERF1gi5RPmVlZbhy5QpSUlLafM+jhVNTU6NELCKL1q3rZvU9ixZx
+HSX16NbN+jovVZfY7fbVV1+hvLwckyZNwqRJk/DTTz9h0qRJMBqNjo5GRESdQCOEEI4O0dro0aPx
+5Zdftvk6t3zIkbjlQ65GtVs+RETkWrpk+bS31UNERM6vS5YPERGpG8uHiIgUx/IhIiLFsXyIiEhx
+LB8iIlIcy4eIiBTH8iEiIsWxfIiISHEsHyIiUhzLh4iIFMfyISIixbF8iIhIcSwfIiJSHMuHiIgU
+x/IhIiLFsXyIiEhxLB8iIlKcLOVTV1cHIYQcoyIiIhcguXzWr1+PgwcPAgCamprw8ssvQ6/Xo3//
+/jh//rzsAYmISH0kl8/atWvRt29fAEBRURFKSkqwb98+xMXF4c0335Q9IBERqY+H1F+4c+cOAgIC
+AADFxcWYOnUqJk+ejJiYGERFRckekIiI1Efylk+fPn1QUFCAixcvori4GOPGjQMANDY2wtvbW/aA
+RESkPpLLJz09HcuWLcPQoUMRERGB8ePHAwA+//xzDB8+XPaARESkPpJ3uyUlJSExMRH37t1DTEwM
+PDx+GUVsbCwSEhJkD0hEROojuXwAYMCAARgwYABqamqg1+vh5uaG2NhYubMREZFKSd7t1tjYiOXL
+lyMgIADdu3dHeXk5ACAzMxO5ubmyByQiIvWRXD4ZGRkoLCxEdnY2dDqdaXhYWBjy8vJkDUdEROok
+uXzy8vKQk5ODKVOmwN3d3TR82LBhKC0tlTUcERGpk+TyMRgMCA8PNxuu1WpRX18vSygiIlI3yeUT
+GhqKsrIys+ElJSWIiIiQJRQREamb5PJJSkpCamoqTp8+DQC4ffs2CgoKkJaWhuTkZNkDEhGR+kg+
+1TolJQVVVVVISEhAXV0dRo8eDZ1Oh/T0dMyZM6czMhIRkcpohJ3PQnj48CEuXboEo9GIqKgodOvW
+Te5sbaqpqVFsWkStrVtnfV1ftIjrKKlHZ/z7btdFpgCg1+sxYsQIObMQEZGLkHzMJzMzE7t37zYb
+vnPnTrzzzjuyhCIiInWTXD5btmzBkCFDzIZHRkZiy5YtsoQiIiJ1s+s6n169epkN7927N+7cuSNL
+KCIiUjfJ5RMSEoJTp06ZDT916hRCQkJkCUVEROom+YSDOXPmYP78+airq0N8fDwA4OjRo1i4cCEW
+L14se0AiIlIfyeWzZMkS3Lt3D3PnzjXdTsfLywsLFixg+RARkU3svs7nwYMHuHz5MgBgyJAhvM6H
+XAav8yFX06Wu8/H29kZ4eDiEEGhsbER1dTUAwM/PT7ZwRESkTpJPOLhy5QrGjh0Lb29v+Pn5oWfP
+ni2+iIiIrJG85TNt2jRotVr87W9/Q3BwcGdkssrHx8ch0yWyFddRovZJLp/S0lJcvHjR4jN9lFJb
+W+uwaRMB1vd/cx0lNemMYz6Sd7tFR0ebju8QERHZQ3L5rFq1CgsXLsSxY8dw9+5dVFZWtvgiIiKy
+RvJut3HjxgGA6QLT1uw8c5uIiFyI5PI5duxYZ+QgIiIXIrl8xo4d2wkxiIjIlUg+5vOompoaGI1G
+ubIQEZGLkFw+jY2NWL58OQICAtC9e3eUl5cD+OUhc7m5ubIHJCIi9ZFcPhkZGSgsLER2djZ0Op1p
+eFhYGPLy8mQNR0RE6iS5fPLy8pCTk4MpU6bA3d3dNHzYsGEoLS2VNRwREamTXU8ytXR3A61Wa3rE
+AhERUXskl09oaCjKysrMhpeUlCAiIkKWUEREpG6SyycpKQmpqak4ffo0AOD27dsoKChAWloakpOT
+ZQ9IRETqI/k6n5SUFFRVVSEhIQF1dXUYPXo0dDod0tPTMWfOnM7ISEREKmP3k0wfPnyIS5cuwWg0
+Iioqik8yJZfBJ5mSq+kSTzJ99I7WgwcPBgA+yZSIiCSRXD7WnlbKG4sSEZE1Hb6xqNFoxNdff40N
+GzZgxYoVcuUiIiIVk+XGovHx8Rg0aBDef/99TJ8+XY5cRESkYh26seijIiMj8eWXX8o1OiIiUjHJ
+Wz6WnlZqMBiQmZmJkJAQWUIREZG6SS6foKCgNocXFhZ2OBAREalfh0840Gg08PX1RXR0NLRarWzB
+iIhIvSSXT0xMjMXhtbW1ZsN4zQ8REVki+3U+j+I1P0REZInk8snPz8fChQsxY8YM02nXx44dw86d
+O7F+/Xr069dP7oxERKQyksunoKAAK1euxOzZs03DEhMTMXjwYOzduxcHDhyQNSAREamP5Ot8jh8/
+jhdeeMFs+Pjx4/HFF1/IEoqIiNRNcvno9XqLj8u+cOEC9Hq9LKGIiEjdJJfPa6+9hlmzZuHDDz/E
+zZs3UVFRgfz8fMyePRuvv/56Z2QkIiKVkXzMZ82aNWhoaMCsWbNQX18PAPD09MQbb7yB1atXyx6Q
+iIjUx+6Hyd2/fx9XrlwBAERERMDX11fWYO3hw+TIkfgwOXI1XeJhcs18fX0xZMgQ6PV6uLnJdn9S
+IiJyAZJbo7GxEcuXL0dAQAC6d++O8vJyAEBmZiZyc3NlD0hEROojuXwyMjJQWFiI7Oxs6HQ60/Cw
+sDDk5eXJGo6IiNRJcvnk5eUhJycHU6ZMgbu7u2n4sGHDLJ6CTURE1Jrk8jEYDAgPDzcbrtVqTWe/
+ERERtUdy+YSGhqKsrMxseElJCSIiImQJRURE6ia5fJKSkpCamorTp08DAG7fvo2CggKkpaUhOTlZ
+9oBERKQ+kk+1TklJQVVVFRISElBXV4fRo0dDp9MhPT0dc+bM6YyMRESkMnZfZPrw4UNcunQJRqMR
+UVFRnXIRUlt4kSk5Ei8yJVfTpS4y1ev1GDFiBACgrq4OQghoNBrZghERkXpJPuazfv16HDx4EADQ
+1NSEl19+GXq9Hv3798f58+dlD0hEROojuXzWrl2Lvn37AgCKiopQUlKCffv2IS4uDm+++absAYmI
+SH0k73a7c+cOAgICAADFxcWYOnUqJk+ejJiYGERFRckekIiI1Efylk+fPn1QUFCAixcvori4GOPG
+jQPwyz3fvL29ZQ9IRETqI7l80tPTsWzZMgwdOhQREREYP348AODzzz/H8OHDZQ9IRETqI3m3W1JS
+EhITE3Hv3j3ExMTAw+OXUcTGxiIhIUH2gEREpD52nWo9YMAADBgwoMWw2NhYWQIREZH62X2djyP5
++Pg4OgJRu7iOErXPKcuntrbW0RHIpVm/2pvrKKlJl7rDARERKU8tt3ey6Ww3jUaD27dvm31PRERk
+D5vKx83NDXbef5SIiMiMTbvdQkJCUFxcjN/97ncAgPv370On01l8r5+fn3zpiIhIlWwqnyVLlmDe
+vHmYO3cuAFh8jHYzbiEREZE1NpXPvHnzMGnSJJSXl2PMmDEoKiqCv79/Z2cjIiKVsvlst379+qFf
+v37csiEiog6TfG+3R/3888/4+eef5cpCREQuwq7y2bFjByIiIqDT6aDT6RAZGYldu3bJnY2IiFRK
+8kWmubm5SE5OxoIFCzBmzBgAwIkTJzB37lwYjUbMnDlT9pBERKQukstn7dq12LRpE2bNmmUalpiY
+iMGDB2PNmjUsHyIiskrybrdr167h+eefNxv+wgsv4Nq1a7KEIiIidZNcPsHBwbhw4YLZ8AsXLqBX
+r16yhCIiInWTXD6vv/46Zs+ejfz8fFRUVKCiogL5+fmYPXs2ZsyY0QkRiYhIbSQf88nIyEB1dTVm
+zZqFhoYGAIBWq8Ubb7yBt99+W/aARESkPpLLx8PDA5s2bcLKlStx5coVAEBkZCR8fX1lD0dEROpk
+9/N8evTogZEjR8qZhYiIXESH7nBARERkD5YPEREpTlL5NDQ04ODBg6isrOysPERE5AIklY+Hhwde
+eeUV1NbWdlYeIiJyAZLKR6PR4IknnsD169c7KQ4REbkCycd8srKykJqaioMHD+KHH35AZWVliy8i
+IiJrJJ9qPXHiRADApEmTLL7Oh80REZE1ksvn2LFjnZGDiIhciOTyGTt2bCfEICIiV9Kh63xqampg
+NBrlykJERC5Ccvk0NjZi+fLlCAgIQPfu3VFeXg4AyMzMRG5uruwBiYhIfSSXT0ZGBgoLC5GdnQ2d
+TmcaHhYWhry8PFnDERGROkkun7y8POTk5GDKlClwd3c3DR82bBhKS0tlDUdEROokuXwMBgPCw8PN
+hmu1WtTX18sSioiI1E1y+YSGhqKsrMxseElJCSIiImQJRURE6ia5fJKSkpCamorTp08DAG7fvo2C
+ggKkpaUhOTlZ9oBERKQ+kq/zSUlJQVVVFRISElBXV4fRo0dDp9MhPT0dc+bM6YyMRESkMpLLR6PR
+YMWKFVi8eDEuXboEo9GIqKgodOvWrTPyERGRCtn9GG29Xo8nn3wSAODl5SVbICIiUj+77nCwfft2
+REZGQqfTQafTITIyEjt27JA7GxERqZTk8vnggw+QnJyM3/zmNzh06BAOHTqEl156CfPmzUN2dnZn
+ZCQiIpWRvNtt3bp12LRpE/70pz+ZhiUmJmLw4MHIysriGW9ERGSV5C2fu3fv4rnnnjMb/sILL+DO
+nTuyhCIiInWTXD4xMTEWb6Nz4cIFPPXUU7KEIiIidbNpt9ujj8fOzMxEcnIyqqqqMGbMGAghcOLE
+CWRmZmLz5s2dFpSIiNTDpvIJCgoyGzZ9+nSzYc8//zwfo01ERFbZVD58dDYREcnJpvLho7OJiEhO
+dt/hoKmpCTU1NWa72fz8/DocioiI1E3y2W7/+9//kJCQAJ1OBz8/P/Ts2bPFFxERkTWSt3ymTp0K
+b29vFBYWIjAwsDMyERGRykkun9LSUpSWliIsLKwz8tjEx8fHYdMmsgXXUXIkZ1j/JJdPdHQ0qqur
+OyOLzWprax06fXJ11h8fwnWUOo/y619nPDJHcvls2rQJS5YsQWZmJqKiouDm1vKwEU84cD3r1llf
+MRctqlEgSdci9+fCz9kytXzOrrZ8JZdPYGAgHjx4gGeffdbi67zIlIiIrLH7hIN9+/bxhAMiIrKL
+5PK5ePEiLl686NATDoiIyLlJvs5nyJAhqKqq6owsRETkIiSXz8qVK5GWloZjx47h7t27qKysbPFF
+RERkjeTdbhMmTAAAxMfHW3ydJxwQEZE1ksuHd7gmIqKOklw+vMM1ERF1lOTysXZ3A15kSkRE1kgu
+H2t3ruYxHyIisqbDx3yMRiO+/vprbNiwAStWrJArFxERqZgsx3zi4+MxaNAgvP/++5g+fbocuYiI
+SMUkX+fTlsjISHz55ZdyjY6IiFRM8paPpQtJDQYDMjMzERISIksoIiJSN8nlExQU1ObwwsLCDgci
+IiL16/AJBxqNBr6+voiOjoZWq5UtGBERqZfN5dN8fU9MTIzF15ufnMfrfIiIyBqby8fa9T3NeJ0P
+ERFZY3P5tHVPNyEE9u/fj5ycHOj1etmCERGRetlcPq2v7xFC4KOPPkJGRgYqKiqwbNkyLFiwQO58
+RESkQpJPOGhdOmlpaViwYAF8fX07Ix8REamQzeUjhMDHH3+MjIwM3LhxA6mpqUhNTWXpEBGRZDaX
+z1NPPYUrV65gzpw5KCoqgq+vL+rr680uOg0MDJQ9JBERqYvN5fPVV18BADZu3IiNGze2+T6e7UZE
+RNZ0+Gw3IiIiqew+242IiMhest3VmoiIyFYsHyIiUhzLh4iIFMfyISIixbF8iIhIcSwfIiJSHMuH
+iIgUx/IhIiLFsXyIiEhxLB8iIlIcy4eIiBTH8iEiIsWxfIiISHEsHyIiUhzLh4iIFMfyISIixbF8
+iIhIcSwfIiJSHMuHiIgU5+HoAK09ePAAS5cuRWVlJYKCgrB69Wr4+Pg4OhYREcmoy2355ObmIjY2
+Fnv27MGIESOwfft2R0ciIiKZdbnyOXXqFMaPHw8ASExMxMmTJwEAw4cPN30REZFz63K73e7evYug
+oCAAQGBgICorKwEA586dM72npqbGIdmIiEgmoot59tlnhdFoNP0cFxfX7vuHDRtm03j5Pr6P7+P7
++D553icHjRBCOLoAHzV58mT89a9/RXBwMCorKzF//nzs3bvX0bHsNnz48BZbbc6K89G1cD66FrXM
+h5K63DGfUaNG4dNPPwUAHD58GKNGjXJwIiIikluX2/K5f/8+0tPTce/ePQQGBmL16tXo3r27o2MR
+EZGMulz5EBGR+nW53W5ERKR+Xe5UazUaNWoUQkNDAQB//OMfMXHiRMcGstHWrVtRXFwMg8GAM2fO
+tHjN2e5E0d68OMPyOXfuHN577z00NTXBzc0N6enpGDp0KADnWxbtzYszLItme/fuRVFRETQaDQDg
+zTffxNNPPw3A+ZaJQyh2Xp0Le+aZZxwdwS6lpaXi7t27FvO/9957YteuXUIIIXbt2iU2bNigdDxJ
+2psXZ1g+3377rbh3754QQojz58+Ll19+2fSasy2L9ubFGZZFs9raWtP35eXl4vnnnzf97GzLxBG4
+243aFB0dbbrgt7W27kTRVbU3L85g4MCB8Pf3BwA88cQTuHfvnuk1Z1sW7c2LM9Hr9abvHz58iF69
+epl+drZl4gjc7aYAIQSmTp2Kbt26YenSpRgwYICjI3VYW3eicEbOtnwOHDhg2r0DOPeyaD0vzrYs
+9uzZgz179qCurg7btm0zDXfmZaIUbvkooLi4GAUFBfjtb3+LrKwsR8ehVpxp+Vy9ehX5+flIS0tz
+dJQOszQvzrQsAOAPf/gDPvroI6SkpGDNmjWOjuNUWD4K6NmzJwBg3Lhx+O677xycRh5BQUEwGAwA
+gMrKSgQGBjo4kf2cZfncuXMHS5cuxapVq1rsQnTGZdHWvDjLsmht/Pjx+Prrr00/O+MyURrLp5NV
+V1dD/L9LqU6ePInHH3/cwYnkoZY7UTjL8qmtrUVaWhpSU1MRGRnZ4jVnWxZtzYuzLItmP/zwg+n7
+kpKSFrsInW2ZOAIvMu1kn376KfLy8gAAOp0Ob731FsLCwhycyjbZ2dk4fPgwDAYDgoKCkJiYiOTk
+ZADOdyeKtubFWZZPfn4+tm3bhpCQENOwDz/8EG5ubk63LNqal88++8wplkWzVatW4auvvoIQAn5+
+fi2OUTnbMnEElg8RESmOu92IiEhxLB8iIlIcy4eIiBTH8iEiIsWxfIiISHEsH+qQbdu2YcCAAXB3
+dzfd3dcRjh8/Do1GY7qNSeufiahrYfkorPkfRV9fXzx8+LDFa5cvX4ZGo4FGo0F1dbWDEtru+++/
+x7x587BkyRLcvHkTt27dcnQkk1GjRuHWrVsICAgA8P8/d2f4XIlcAcvHQfz8/LBv374Ww7Zv347+
+/fs7KJF03333HYxGI37/+9+jT58+eOyxxxwdycTT0xOPPfaYQ7fG5NTY2OjoCJI5Y2ZSDsvHQWbM
+mGG6mhsAGhoakJ+fjxkzZpi994MPPkB4eDg8PT3Rr18/vP3222hqajK9vmvXLsTExMDLyws9e/bE
+tGnTWvwPv/l//Z999hmGDRsGLy8vjBgxAlevXm0zX2NjI9566y2EhITA09MT4eHh2L59e4v3jBkz
+BgDg7+9v2mJra1yLFi1CUFAQfHx88NJLL+HDDz80bYlY2kXWekvF2jy21nqccXFxAH65d9ijWTMz
+MxEdHW32+08//TRSUlIsjnvr1q3o378/PDw80LdvX6xfv970mtFoxLvvvotBgwbB09MTffr0QWZm
+pqTPtTn7J598gtjYWHh6eppu1WJtXWgvW1uf0eeff45Ro0ZBp9Ph8ccfR3Z2ttl7rU23vcy2fna2
+TEeOdUnK/LT3N2NtWdsyHZfmoOcIuaxjx44JAOLq1atCp9OJb7/9VgghxD/+8Q/xq1/9Shw9elQA
+EFVVVUIIIf7yl7+I8PBwcfjwYXHz5k3xz3/+U4SGhoply5aZxrl7927xxRdfiIqKCnH8+HERHR0t
+pk2bZjbNUaNGidOnT4vLly+LX//612Ls2LFt5pw/f74ICgoSBw4cEDdu3BA5OTnCy8tL5OXlmd5T
+VFRkmpdbt26JW7duWRxXSkqKCA4ONo1r69atIjAw0DSfzfkMBoNZ5ubPwdZ5bB5H65/bynrz5k3h
+7u4uzpw5YxrXlStXBABx4cIFs3m5du2a0Gg0YtWqVeL69evi7Nmz4sCBA6bXFy9eLHr27CkKCwtF
+RUWFOHv2rNi5c6ekz7U5e0xMjDh+/Li4fv26MBgMVtcFa9laa57OoEGD2s1jyzrYVmYpn50t05Fj
+XZIyP+39zVhb1rZMx5WxfBT26B/Hq6++aloRJ06cKLKyslr8odTW1gpvb29x6tSpFuMoKCgQ/v7+
+bU5j//79wsfHRxiNxhbTPHr0qOk9f//734WHh4doaGgw+/3q6mqh1WrF7t27WwxfvHixCA8PN5uX
+5j9qS3788Ufh6elpNq5FixZJ+gfD1nlsq3zaG9/EiRPF3LlzW8zn8OHDLU737NmzbRbT/fv3hZeX
+l9ixY4fF35X6uT76D7Mt60J72Sxpno6lPBERETZPt63MrbWXz5bpyLEuSZ2ftv5mrC1re/92XQnL
+R2GP/nEcOXJE9OvXT1RUVAhPT09x8+bNFn8o//nPfwQA4ePj0+JLp9MJAOLBgwdCCCFOnjwpEhIS
+RFBQkOjWrZvp9fv377eY5p07d8xyVFdXm2X897//LQCIGzdutBh+6NAhAUD89NNPLcbRXvmcOXOm
+3XHZWj62zqM95fPRRx+JHj16iIcPH4rGxkbRu3dvsXnzZovz09DQIEaMGCF69Oghpk2bJvbu3Ssa
+GxvbnVd7P9fvv//e9B5b1oX2slnSPJ328ti6DlrKLOWzs2U6cqxLUuenrb8Za8va1um4Mj7J1IGe
+e+45uLm54bXXXkN8fDz69euHb7/91vS60WgE8MudsS0dzNfr9aiursaECRPwyiuvICsrC4GBgTh9
++jRef/11s33Lbm7mh/iEQveVbe/Av6XXmucdgKR5tMfEiROh1+tRVFSEHj164Mcff8TUqVMtvtfD
+wwP/+te/cOTIEXz66aeYO3cuCgoKsH///g7naM3T09P0vS3rgpubm13Z2ls2tky3rcyttffZSZlO
+R9YlqfNj79+M1Om4IpaPA7m5uWHGjBnIzMw0O/MNAKKioqDT6VBRUYFnnnnG4jjKysrw4MEDZGVl
+mW5R//HHH3coV2RkJLRaLU6cOIHp06ebhp84cQIRERHw8vKyeVwRERHw9PTEiRMnMG3aNNPw48eP
+m7739fUF0PKhW48+mEuOeXR3dwfQ8h+iZh4eHqYTQHr06IHJkyebMlmi1Wrx4osv4sUXX8SYMWPw
+6quvoq6uDpGRkfDy8sLRo0ctnjjSkc/VlnWhvWze3t5t/k7rZVNSUmLKY+t0bdVWPlumI8e6JNf8
+WFvWcn9uquToTS9X03q3QH19vTAYDKKpqanF6827h1asWCH8/f3F7t27xfXr18U333wj9uzZIzIy
+MoQQQnz//ffC3d1d/PnPfxbXrl0T+/fvFyEhIS3GYc8xlaSkJBEcHCyKi4tFRUWFyM3NbfPAeHu7
+3YQQIjk5WfTq1UscPHhQ3LhxQ+Tm5oqgoCDT7/78888iMDBQTJ06VVy7dk188sknYuDAgabX7ZnH
+1j/fuHFDABA7duwQd+/eNTsY/t133wk3Nzfh4eEhTpw40ea8nDlzRmzcuFFcvnxZfPPNN2L69Omi
+b9++pmNPixcvFv7+/mLPnj0WD0JL+VxbZ7S2LljL1lrzdAYPHiwOHjwoKioqxPbt24VOpxO5ubk2
+T7e9zFI+O1um09F1qSPz03p9t7asbZmOK2P5KMzaH6mlf9C3bt0qnnzySeHp6Sl8fHxEbGysyMnJ
+Mb2+fft20bt3b6HT6URCQoLYuXNnh8unoaFBLFu2TPTt21dotVoRFhbWYpq2jKNZfX29SEtLEwEB
+AcLb21tMmDBB5Ofnt/jdI0eOiIEDBwovLy8RHx8vdu/e3eJ1qfNoaZ7feecd0bt3b+Hm5iYs/b8r
+Li5ODB48uN15KSsrE3FxcaJ79+5Cq9WKkSNHtjhTrqmpSaxcuVKEhoYKd3d30bdvX5GVlWXX52pp
+HWlvXbCWrbXm6Rw5ckSMHDlSeHl5iZCQELFhwwZJ07WW2dbPzpbpyLEu2Ts/rdd3a8valum4Mj5M
+jhzi+PHjiIuLQ1VVFfz8/BwdB8Avu3VmzpyJJUuWODqKIpqXgcFgMO2ickZdcV0i63jMh1yewWDA
+vn37UFFRgZkzZzo6DpFLYPmQywsODkZgYCA2b96M4OBgR8chcgnc7UZERIr7P7YCQu3zDBJ/AAAA
+AElFTkSuQmCC
+" />
+</div><hr><div class="info-header"><span class="info-header-title">Occurence of N</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">Sequences with N:</td> <td class="info-table-value">2 &nbsp;(16.67 %)</td></tr><tr><td class="info-table-type">Max percentage of Ns per sequence:</td> <td class="info-table-value">10 %</td></tr></tbody></table><br /><img border="0"  src="data:image/png;base64,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
+gAFq1qxZkWVOG2uh/fv3e/68fPlyzyVgyXlj7tmzpxYsWKCUlBSlpKQoODhYKSkpnjNOThtvRkaG
+zP+bhvqbb75Rw4YNPcucNtZCcXFxWrVqlaTfZ+U4/Re6U8csSTt27NCJEyfUokULT5sTx9ugQQPP
+8f3uu+9Uv359zzInjve3336T9PutOu+8847i4+M9y5w43orGRP0+btKkSZo/f77S09NVq1Yt3Xzz
+zXryySclOe/NWrNmzdLUqVM996xJ0vvvvy8/Pz/HjbXQmDFjtG7dOhljFB4eXuQ+RaeOuVD79u31
+9ddfez47bbwLFizQjBkzJEnBwcH65z//qSZNmkhy3lgLZWZmasSIEdq3b5/cbreeffZZx49Zkt56
+6y0ZY/TEE0942pw43k2bNumFF15QTk6OAgMDNXz4cMXGxkpy5ng//vhjzZ49W/7+/urQoYP69Onj
+mRLQieOtaARUAAAA2AqX+AEAAGArBFQAAADYCgEVAAAAtkJABQAAgK0QUAEAAGArBFQAOMPUqVPV
+qFEj+fv7e6aNQcVYunSpXC6XMjIySl1n1KhR6tWrVwX2qnK1bt1aH3/8cWV3A6hQBFTAZgp/QRf+
+1KhRQz179vS8lcRXlCVo2NG+ffv0+OOP6+mnn9bevXv1yy+/lLhe4fguv/xynT5b35njLvzsK+/i
+PvP7V716dXXt2lWbN2+u7K5Jkn799VeNGzdO//znP4u0P/LII7r66qsVFhZW7u9dWbZ95ZVX1KhR
+IwUFBenSSy/V3Llzy71OcnKyGjduLLfbrSuuuMIzqb0k5ebm6tJLL1VycnKx/Q4bNkwjRowQs0Li
+z4SACtjUpk2b9Msvv2j+/PnasGGD7rvvvvPeZ15enhd65mzbt29XQUGBunfvrnr16umCCy446/pp
+aWn69NNPK6h33nW270Ph9y81NVUFBQW64447KrBnpXv77bcVGxurmJiYIu35+fnq3r27RowYUe59
+nmvbSZMmKTExUS+//LJ++uknPfLII7r77ru1bNmyMq9z6NAh9ezZU3fffbe2bNmiRo0aqXv37p7t
+x40bp4suukh33nlnsfrx8fE6ePCgFi1aVO6xAT7LALCV1NRUI8mkp6d72j788EPj7+9vcnJyPG0T
+J040TZo0MW6329SvX9+MGDHC5OXlFdvP/PnzTdu2bY3b7TYpKSkmPz/fvPjii6Zx48bG7XabunXr
+msTExCJ9KOu+v/zyS3PFFVeYwMBA06ZNG5OWluZZR1Kxn0IzZ840l112mQkMDDTh4eHmnnvuMUeP
+HvUsP3XqlBkwYICpWbOmCQkJMbfddptJSkoykoqsd65+nik3N9cMHz7cNGjQwLjdbtOkSRMzffr0
+Iuucrd8lHae+ffuaVq1amYKCgiLthf0883hOnjzZREVFGX9/f1OvXj0zfvz4UvtbuO2iRYvM1Vdf
+bYKCgsyFF15oXn/99WLr/tHvQ2k1T//+LViwwEgy2dnZ5ap5ruOcm5trBg0a5DnO8fHxZtasWcWO
+8+muuOIKM3bs2HP+nZW2/dmUtG1BQYFp0KCBGT16dJF1e/ToYbp161bmdb755hsjyezdu9cYY8z8
++fONJJOVlWW2bdtmatWqZfbs2VNq33r06GEefPDBco8J8FUEVMBmSgoIn376qXG5XObkyZPGGGOe
+ffZZ07RpUzN//nyzd+9es2jRIhMdHW2GDRtWbD+tWrUyS5cuNbt27TLp6elmyJAhJiIiwsyePdvs
+2bPHfP/992bmzJme7cqz77i4OLNy5UqzZcsW065dO3Pdddd51klOTjaSzNatW80vv/xifvnlF8+y
+9957zyxevNjs2bPHLF261LRo0cL06tXLs/yxxx4zdevWNZ9//rnZvXu3efvtt02dOnWKhIey9PNM
+TzzxhKlVq5aZN2+e2b17t5k2bZoJCgoyM2bMKFO/SzpO27ZtMxEREWbu3LlF2ksKqDt37jQul8uM
+GTPG7Nq1y3z//fdm3rx5pfa3cNuLL774rH0+n+9DaTULl2VkZJh7773XNGvWrMh6Zal5ruPcr18/
+U7t2bc/YpkyZYmrWrFlqwDx27JhxuVxm8eLF5/w781ZA3blzp5FkVq9eXWTdmTNnmurVq5d5ncOH
+D5vg4GAzZcoUk5+fb/r27WuaNm1qjDGmc+fO5tVXXz1r3yZMmGAuuuiico8J8FUEVMBmzgwI6enp
+pmPHjqZdu3bGGGOysrJMlSpVzIoVK4psl5SUZGrUqFFsP6cHoGPHjpmgoCDzzjvvlFi7vPtesmSJ
+p+2DDz4wAQEBJjc3t8g6ZQkKc+fONVWrVjUFBQXmt99+M26328yePbvIOkOHDvXsr6z9PF1GRoZx
+u93mvffeK9I+ZMgQT1AoT79PP06JiYmes6hn2/777783ksz69evPuu8za5TU55iYGGPM+X0fzlaz
+atWqpmrVqkaSadKkidm2bZtnnT/y929M8eMcGBhYbGyDBw8u9e/vhx9+MJLMzz//fM7+eyugrlix
+wkgy+/fvL7LuwoULjSRz4sSJMq1jjDGfffaZadWqlalTp47p2LGj2bhxo5k1a5Zp06aNWbVqlYmL
+izNRUVGmW7duZt++fUX2lZycbFwuV5GrKICTcQ8qYFPR0dEKDQ1V7dq1lZWVpXfffVfS7/cGZmdn
+q0uXLgoNDfX8PPjgg/r111+VmZlZZD+tW7f2/HnLli06deqUrr/++hJrlnffsbGxnj/Xrl1beXl5
+ysrKOufYvv32W3Xu3Fm1a9dWWFiYevTooaysLGVmZmrLli3Kzc3VNddcU2Sb9u3b/+F+Sr/fK5qb
+m6uOHTsWae/YsaO2bt2qU6dOnbPfpenfv792796tTz755KzrtWrVSm3btlWHDh1077336qOPPlJ+
+fv45919Sn9PS0nTq1Knz+j6cTWpqqtasWaM333xTO3fu1Pr16z3LylrzbMc5LS1NOTk5xcbWqVOn
+UvtUuN/Q0NAyjeF0p/fzj2xfltkczrVOt27dtHbtWh04cEBLly5VvXr1NGTIEE2aNEm333674uPj
+tWvXLlWrVk0PPPBAkW2rVasmY0yJ323AiQIquwMASpaamqoaNWooPDxckZGRnvaCggJJ0oIFC0p8
+gCckJKTI58DAwDLXLO++/fyK/x/XnONJ44yMDN1000264447NGrUKNWsWVMrV67UfffdVySsnfnL
+/vTP5e2n1apXr66EhASNHDlS48ePL3W9gIAAffvtt/ryyy+1YMECPfroo0pKSirxifDTnS34WPV9
+aNSokWrWrKmmTZtq69atSkhIUHx8vNxud5lq/tHjfDaFwfL48ePnfHjtTOvWrSvX+oXq1q0rSdq/
+f3+Rmvv371f16tVVpUqVMq1Tkqeeekr33HOPAgICtG/fPvXq1Ut+fn7q2bOnbrvtNuXm5srtdkuS
+jh07JpfL9YfCNeCLCKiATRUGhDPFxsYqODhYe/bs0bXXXluufTZr1kxBQUFasmSJ7r//fq/u+0z+
+/v6S/n+AKrR582YdP35co0aNUlRUlCQVeQo+JiZGbrdb3377bZGnnL/++uvz6mezZs3kdru1bNky
+3XvvvZ72ZcuWKSYmRkFBQeUf5Gn69++vCRMmnPMsqtvt1i233KJbbrlFHTt21N13363s7OxSQ0xh
+H0+f93P58uWePnvzmJVm4MCBmjRpkj7++GP16NGjTDXLcpwDAwOLjW3p0tELo5IAAAQLSURBVKWl
+9uPiiy+Wy+XS7t27dckll5RrDBdffHG51i/UsGFDNWjQQAsXLtQVV1zhaV+4cKFn7GVZ50zLli1T
+amqqfvzxR/3444+Sfp9qSpJycnJUUFBQ5N/O7t271ahRI09gBZyOgAr4mNDQUA0dOlR9+/ZVfn6+
+OnTooNzcXK1Zs0Zbt27Vv/71r1K3DQsLU//+/TVo0CBVqVJFcXFxOnjwoDZt2qT77rvvvPZ9poYN
+G0qS5s2bp27dusnlcqlmzZqKjo6Wv7+/Xn/9dT3xxBNat26dXnvtNc921atX10MPPaSBAweqWrVq
+atGihZYsWaJ33nlHkjxnkcrbz2rVqumRRx7R4MGDFRERocsuu0wLFy7UxIkT9dZbb5V5XKWpVq2a
+EhISNHr06FLXWbVqlVatWqXOnTsrICBAKSkpql+/voKDg8+675EjRyoiIkItW7bUokWLNHHiRE2a
+NEnS+X0fyurCCy9UfHy8XnvtNfXo0aNMNc91nM88HpdeeqkWLVqkmTNnltqPsLAwtWrVyvN3eLrC
+M6Tbtm2TJG3cuNGz/rmcbVuXy6Wnn35aw4cP1yWXXKK2bdsqJSVFH330kWfap7Ksc7pTp07p0Ucf
+1RtvvKGQkBC1bNlSkZGRGjdunAYNGqQ333xT1157bZH/NK1atarY7RCAo1X2TbAAiirpKf6STJky
+xbRs2dIEBgaaqlWrmiuvvNJMmzbtnPvJz883o0ePNtHR0cbf39/Ur1/fjBo16rz3XdIDJs8//7yp
+W7eu8fPzKzJd09tvv23q1q1rgoODzQ033GBmzpxZZNtTp06Z/v37mxo1apiQkBBzyy23mHfeecdI
+8sxkUJZ+nik3N9cMGzbM1K9f3zPN1Jnr/5GHpAr99ttvJiIiotTtN2/ebDp16mTCwsKM2+02V111
+lfnuu+/OWePLL780V111lQkKCjJRUVFm4sSJxdb9o9+HsozLGGMWL15sJJnvv/++zDXPdZxzcnJM
+QkKCiYyMNFWqVDE33XTTOaeZGjt2rLnyyiuLtauE6cHK+iuuLNu+/PLLpmHDhsbtdpvY2FiTnJxc
+bD9lWceY32dA6N69e5G2JUuWmKZNmxq3223i4uKKPJR26tQpExERYRYsWFCm8QBO4DKGV1MAsL/R
+o0dr6tSp2rVrV2V3pcIsXbpUnTp1Unp6eom3e/wZHTlyRI0aNdJ///tfNW/evLK7UyGSk5M1fPhw
+bdmyhVfv4k+Dp/gB2M769ev1/vvva/v27dq1a5emT5+u0aNH6/HHH6/srqGSRUZGavDgwXrhhRcq
+uysVZvTo0Ro1ahThFH8qnEEFYDvr169X7969PdNiRUdHq3fv3nrqqadKnDnAqTiDCuDPioAKAAAA
+W/k/yMrYZ8wYBhAAAAAASUVORK5CYII=
+" />
+</div><hr><div class="info-header"><span class="info-header-title">Poly-A/T Tails</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5'-end</td> <td class="info-table-value">3'-end</td></tr> <tr><td class="info-table-type">Sequences with tail:</td><td class="info-table-value">1 &nbsp;(8.33 %)</td> <td class="info-table-value">1 &nbsp;(8.33 %)</td></tr> <tr><td class="info-table-type">Maximum tail length:</td> <td class="info-table-value">50</td> <td class="info-table-value">50</td></tr></tbody></table><br /><img border="0"  src="data:image/png;base64,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
+acyYMerfv78kb/589+7dq/T0dFVWVqpz586aPn26IiIiJHmz30bXpLdo4bLt3LnTOn78uPWrX/2q
+zra5c+daS5cutSzLspYuXWplZmY29vQctW/fPuvkyZOWZVnW1q1braFDh9rbvNZrjZKSEvvrwsJC
+a9CgQfZ7r/a8bds2a9KkSXV+T3ux3/r+3FqWN3u1LMt66623rKlTp1pVVVWWZVnWqVOn7G1e7fls
+K1assNLT0y3L8ma/gwYNsvbv329ZlmUdPHjQGjx4sL3Ni/0OGzbM+uyzzyzLsqwNGzZY8+bNs7d5
+sd/Gxin+ANe7d2/74QTnOt+TtQJVt27d1Lp1a0nSL37xC508edLe5rVea9T8b1ySSktLdeWVV9rv
+vdhzRUWFMjMzNXHixDrbvNjv+Xi111WrVumRRx5RUNCP//RERUXZ27za89n++9//2j16sd9OnTrZ
+D8M5ffq0OnbsaG/zYr//+9//dNNNN0mSbr755lo9ebHfxsYpfg8735O1vOCdd96xT3VL3u51xYoV
+WrFihcrKyrRo0SJ73Is9L1iwQPfee6/9H5GzebFfy7L00EMPqWXLlpo0aZKuvvpqSd7sVfrxH/T3
+339fH3/8saKjo/Xkk0+qc+fOkrzbc40jR47oyJEj9iO3vdjvM888oxEjRsjn88myLC1evNje5sV+
+u3Xrpg8++EB33nmnPvjgAx09etTe5sV+GxtHUBFw9u7dq2XLlik1NbWpp9Iofv/73+utt95SSkqK
+Zs2a1dTTcc2ePXtUUFCge+65p6mn0mhycnK0fPly/eY3v9H06dObejquq6qqUteuXbVixQoNHTpU
+GRkZTT2lRrN27Vrdcccd9tFjL5o9e7ZSUlL03nvvafz48XruueeaekqumjJlilatWqUHHnhA+/bt
+U3BwcFNPyVO8+ycFatu2rfx+vyTpxIkTatOmTRPP6PIdO3ZMkyZN0owZM2pd2uDFXs81ZMgQ7dq1
+y37vtZ7z8vJUWFio5ORkJScnq7y8XMnJyaqurpbkvX4lKTo6WpI0ePBg7d+/3x73Yq+S1L59ew0a
+NEiSdMcdd+irr76yt3m15xpnn96XvNnv9u3bdccdd0j68ee7Y8cOe5sX+73mmmu0aNEivfHGG7rn
+nnvUpUsXe5sX+21sBFQP89qTtUpKSpSamqrx48erZ8+etbZ5rdcaR44csb/Ozc21TwFL3uv5oYce
+0po1a5STk6OcnByFh4crJyfHPuLktX6Liopk/d8y1J999pm6du1qb/NarzUSExP1+eefS/pxVY6z
+/0H3as+SVFhYqNLSUvXu3dse82K/nTp1sn++mzdv1lVXXWVv82K/3333naQfL9V55ZVXlJycbG/z
+Yr+NjYX6A9z8+fO1evVq+f1+tW3bVnfddZfGjh0ryXtP1lq2bJkWLVpkX7MmSa+//rqCgoI812uN
+GTNmKC8vT5ZlKSoqqtZ1il7tuUZSUpI+/fRT+73X+l2zZo2ysrIkSeHh4XrqqafUvXt3Sd7rtUZx
+cbGmTJmib775RqGhoZo6darne5akf/zjH7IsS6NHj7bHvNjv7t279be//U0VFRVq1qyZJk+erPj4
+eEne7Pc///mPsrOzFRwcrP79+2vMmDH2koBe7LexEVABAABgFE7xAwAAwCgEVAAAABiFgAoAAACj
+EFABAABgFAIqAAAAjEJABYB6fPzxx/L5fPYjCs99H6gupQ8nevfKrx+AxkFABWCUmiBz7mvFihV1
+PlNf2Knve899XYzExER9++23iomJadC8TQhgNXMpKipyZH8N/bUAgMsV0tQTAID67N69W61bt7bf
+R0VFXdT3ffvtt/bXGzdu1H333ae9e/eqVatWDarfrFkztW/fvkHf41X8WgBobBxBBWCkdu3aqX37
+9vYrPDz8or7v7O+pCbjn7kuSli5dqr59+yosLEzR0dEaNmxYrSOObhwRnTdvnnr06KFmzZqpU6dO
+evrpp1VVVVWn5tq1a5WQkKCwsDDdcMMN2rt3r/2ZiooKpaamqm3btmrRooWGDh2q7OzsWkdMBw4c
+KEmKjo4+71Hjbdu2nbfGuc53ucOF5nk+eXl5SkxMVHh4uLp27ar58+fXW2vdunUX/BwAbyOgAjBS
+QkKCWrdurX79+tmPBHVSUFCQ5s6dq3379umtt97Sjh07NG7cOMfr1Jg2bZr+/ve/68UXX1RhYaFe
+ffVVLVu2TE8//XSdz6anp+vll1/Wjh07FBISolGjRtnbHn30Ub3xxhtaunSpvvjiCyUnJys1NbXW
+969cuVKStHfvXn377be1jipfTI2LdSn7+Mtf/qJJkybpyy+/1JQpUzRx4kS98sorl/w5AB5lAYBB
+CgoKrIULF1rbt2+3duzYYc2YMcNq1qyZNWfOnAbva/369ZYk69SpUz/52VWrVlktWrSwqqura32v
+3++v9/35atW3vaSkxGrevLm1cePGWuPLly+3WrduXWcfH330kT32xhtvWCEhIdaZM2es7777zgoN
+DbWys7Nr7SctLa1Wnxfq+6dqXExvl7OP1157rdb4E088YcXFxTX4cwC8jWtQARilR48e6tGjh/2+
+T58+OnPmjGbNmqXHHnvMsTobNmzQ1KlTlZ+fr7KyMlVWVqq8vFzFxcWKjIx0rI704/W0ZWVlGjRo
+UK3xqqoqu2bLli3t8fj4ePvrdu3aqbKyUiUlJSooKNCZM2d066231tpPUlKSZs6c2aA5na/GFVdc
+4eo+fv3rX9d5P3v2bP3www8KCwtr8OcAeBOn+AEY76abbpLf71dpaakj+ysqKtKdd96pTp066e23
+39a2bdu0cOFCSap1TahTqqurJUlr1qxRXl6e/dq5c6e++uorRURE1Pp8UFDdv5oty7K/Pvea0otd
+maAhNdzax8XO9VJ6AuAdBFQAxtu+fbtat25dJ8hdqj179uj06dOaPn26brnlFl133XU6fvy4I/uu
+T3x8vMLDw3Xo0CFde+21dV71Bb36xMXFKTQ0VBs2bKg1/umnn9Z6HxwcLOn/B2OTfPLJJ7Xe5+bm
+Ki4urs5R0Yv9HABv4hQ/AKPMmTNHvXr1Uq9evVRdXa3Vq1crPT1dkydPdqxGbGysgoOD9dJLL2n0
+6NHKy8vTvHnzHNn3rl276iyJ1adPH6WlpWncuHGqqqpS//79debMGW3dulV79+6t90ap+lxxxRUa
+Pny4JkyYoFatWql379766KOP7JuHao46du3aVZL0zjvv6O6775bP51ObNm0c6e9yZWRkKDo6Wn36
+9NEHH3ygzMzMeu/Qv9jPAfAmAioAo3z33XcaO3asvv76awUFBSkuLk7PP//8Jd1lfj4dO3bUokWL
+9NRTT+mll17SrbfequnTp+vhhx++7H3XLPF0ttOnT2vq1Knq0KGD5syZoxEjRig0NFTx8fEaOXJk
+g/afmZmpsLAwDRs2TOXl5brttts0Y8YMPfLII/ZSXF26dNEzzzyjJ598UsOHD1d1dXWDT9+7Zf78
++Xr66aeVl5endu3aadasWRo+fPglfw6AN/ksU/7WAgBckmeffVaLFi3SwYMHm3oql+3jjz/WwIED
+5ff7jTnqC6DxcQQVAALIjh07tHPnTt1yyy0KDg7WunXr9Oyzz2rKlClNPTUAcAwBFQACTGZmpkaN
+GqUffvhBsbGxmjJlih5//PGmnhYAOIZT/AAAADDK/wPJN6T2HKU/VQAAAABJRU5ErkJggg==
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,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
+aPjw4ercubMkd/589+3bp+TkZJWUlKhp06aaOHGiQkJCJLmz32pXo7do4abt2LHDOnXqlPWLX/yi
+0rZp06ZZ8+fPtyzLsubPn2+lpqZW9/RsdeDAAevMmTOWZVnWF198YfXt29e7zW29lsvPz/d+nZ2d
+bXXv3t373q09f/nll9bYsWMr/Z52Y79V/bm1LHf2almWtXTpUuvll1+2SktLLcuyrLNnz3q3ubXn
+iy1atMhKTk62LMud/Xbv3t06ePCgZVmWdfjwYatHjx7ebW7sd9CgQdb69esty7KsDRs2WDNnzvRu
+c2O/1Y1T/D6ubdu23ocTXOpyT9byVS1atFC9evUkST//+c915swZ7za39Vqu/H/jklRQUKBbb73V
++96NPRcXFys1NVVjxoyptM2N/V6OW3tdsmSJnnzySfn5/fhPT1hYmHebW3u+2P/+9z9vj27st0mT
+Jt6H4Zw7d06NGjXybnNjv0eOHNH9998vSerUqVOFntzYb3XjFL+LXe7JWm6wbNky76luyd29Llq0
+SIsWLVJhYaHmzJnjHXdjz7Nnz1a/fv28/xG5mBv7tSxLAwcOVN26dTV27FjdfvvtktzZq/TjP+if
+fPKJ1q5dq/DwcL3wwgtq2rSpJPf2XO748eM6fvy495Hbbuz3lVde0ZAhQ+TxeGRZlubOnevd5sZ+
+W7RooZUrV6pXr15auXKlTpw44d3mxn6rG0dQ4XP27dunBQsWKDExsaanUi1++9vfaunSpUpISNCU
+KVNqejqO2b17t/bu3atHHnmkpqdSbTIyMrRw4UL96le/0sSJE2t6Oo4rLS1V8+bNtWjRIvXt21cp
+KSk1PaVqs2LFCnXr1s179NiNpk6dqoSEBH300UcaNWqUXnvttZqekqPGjx+vJUuW6LHHHtOBAwfk
+7+9f01NyFff+SYEaNGignJwcSdLp06dVv379Gp7RzTt58qTGjh2rSZMmVbi0wY29Xqpnz57auXOn
+973bes7KylJ2drbi4+MVHx+voqIixcfHq6ysTJL7+pWk8PBwSVKPHj108OBB77gbe5Wk2267Td27
+d5ckdevWTV999ZV3m1t7Lnfx6X3Jnf1u3bpV3bp1k/Tjz3fbtm3ebW7s94477tCcOXP0/vvv65FH
+HlGzZs2829zYb3UjoLqY256slZ+fr8TERI0aNUqtW7eusM1tvZY7fvy49+vMzEzvKWDJfT0PHDhQ
+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
+AAAASUVORK5CYII=
+" />
+</div><hr><div class="info-header"><span class="info-header-title">Tag Sequence Check</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">5'-end</td><td class="info-table-value">3'-end</td></tr><tr><td class="info-table-type">Probability of tag sequence:</td><td class="info-table-value">33 %</td><td class="info-table-value">33 %</td></tr><tr><td class="info-table-type">GSMIDs or RLMIDs:</td><td class="info-table-value">none</td><td class="info-table-value">&nbsp;</td></tr></tbody></table><br><table border="0" cellspacing="0" cellpadding="0"><tr><td><img border="0"  src="data:image/png;base64,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" />
+</td><td valign="bottom" align="center"><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="66"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAACXBIWXMAAAsTAAALEwEAmpwYAAAK
+T2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AU
+kSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXX
+Pues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgAB
+eNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAt
+AGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3
+AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dX
+Lh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+
+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk
+5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd
+0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA
+4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzA
+BhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/ph
+CJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5
+h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+
+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM
+WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQ
+AkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+Io
+UspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdp
+r+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZ
+D5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61Mb
+U2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY
+/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllir
+SKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79u
+p+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6Vh
+lWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1
+mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lO
+k06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7Ry
+FDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3I
+veRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+B
+Z7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/
+0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p
+DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5q
+PNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIs
+OpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5
+hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQ
+rAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9
+rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1d
+T1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aX
+Dm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7
+vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3S
+PVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKa
+RptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO
+32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21
+e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfV
+P1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i
+/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8
+IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq
+YAAAOpgAABdvkl/FRgAAAh1JREFUeNrsmk1xwzAQRr8RgYRBwqBhkDJoGbQMagZ1GbgMVAYNA5dB
+wsBm4CBwL9Wx0Uwk7593Z3z0SHmRn3fXi3me8d8FoAUw33kdQB/9PXu9xWCeZ4QFN9zBSCwJ6Qig
+cUj5aAFsHdLt2Fh47ALBGi8AHh2ScYlTQXrQLPFAuJZaiVNC2gCIDikfTxolHhjWjA4pH7s/Pzmk
+TDQA9g7JUCYeGNdWI/HAvH50SEYkHgTs4V26xIOQfUSHlI8jgGeHlI9OagEsCdIOQtspQdh+REo8
+CPzjokNSKPGlIJ0qnKatdUgdgJ/CArhdw+NW+qZ6A888ASmkM4DPCifSvLhbANdCib9ahzRV+JHs
+mThFCvCtXeJUeVLpaWKVOBWkAcCH1kycMuPuAIwF97PNE1BCqiHxlkPi1LVbX1iysHyK4ihwm8Lc
+iXwojAPSUOE0dNYhJbdctEics5/UVAC9tQ6pB/BVKPFoHVINiZPME3BDmirUZdE6pPSmKimAF58n
+kPIhoKlw/946pDPKupiLZuKSPim1FSR+sA6pRgG8sQ4JKO9iYg2QAAGNfw2QBpR3Mc1DSrnT6JCW
+l7h5SKkAPjmk5QvgVUAaIGAeQDqklImPDkl47qQFUo+yLuYqILFKXBOkCUzTJZogpUz84pAESlwj
+pDPKZzHNQ0q509Uh5SXeOKR8RBB1MTVDIpO4dkgDCLqY2iGl3Gl0SMwS/x0AsYSfWCRqIfIAAAAA
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="58"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="58"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="75"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="75"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="75"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td align="center" valign="middle">&nbsp;...&nbsp;</td><td valign="bottom" align="center"><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="58"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAACXBIWXMAAAsTAAALEwEAmpwYAAAK
+T2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AU
+kSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXX
+Pues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgAB
+eNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAt
+AGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3
+AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dX
+Lh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+
+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk
+5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd
+0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA
+4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzA
+BhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/ph
+CJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5
+h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+
+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM
+WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQ
+AkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+Io
+UspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdp
+r+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZ
+D5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61Mb
+U2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY
+/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllir
+SKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79u
+p+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6Vh
+lWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1
+mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lO
+k06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7Ry
+FDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3I
+veRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+B
+Z7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/
+0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p
+DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5q
+PNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIs
+OpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5
+hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQ
+rAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9
+rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1d
+T1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aX
+Dm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7
+vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3S
+PVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKa
+RptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO
+32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21
+e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfV
+P1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i
+/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8
+IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq
+YAAAOpgAABdvkl/FRgAAAh1JREFUeNrsmk1xwzAQRr8RgYRBwqBhkDJoGbQMagZ1GbgMVAYNA5dB
+wsBm4CBwL9Wx0Uwk7593Z3z0SHmRn3fXi3me8d8FoAUw33kdQB/9PXu9xWCeZ4QFN9zBSCwJ6Qig
+cUj5aAFsHdLt2Fh47ALBGi8AHh2ScYlTQXrQLPFAuJZaiVNC2gCIDikfTxolHhjWjA4pH7s/Pzmk
+TDQA9g7JUCYeGNdWI/HAvH50SEYkHgTs4V26xIOQfUSHlI8jgGeHlI9OagEsCdIOQtspQdh+REo8
+CPzjokNSKPGlIJ0qnKatdUgdgJ/CArhdw+NW+qZ6A888ASmkM4DPCifSvLhbANdCib9ahzRV+JHs
+mThFCvCtXeJUeVLpaWKVOBWkAcCH1kycMuPuAIwF97PNE1BCqiHxlkPi1LVbX1iysHyK4ihwm8Lc
+iXwojAPSUOE0dNYhJbdctEics5/UVAC9tQ6pB/BVKPFoHVINiZPME3BDmirUZdE6pPSmKimAF58n
+kPIhoKlw/946pDPKupiLZuKSPim1FSR+sA6pRgG8sQ4JKO9iYg2QAAGNfw2QBpR3Mc1DSrnT6JCW
+l7h5SKkAPjmk5QvgVUAaIGAeQDqklImPDkl47qQFUo+yLuYqILFKXBOkCUzTJZogpUz84pAESlwj
+pDPKZzHNQ0q509Uh5SXeOKR8RBB1MTVDIpO4dkgDCLqY2iGl3Gl0SMwS/x0AsYSfWCRqIfIAAAAA
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="33"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="50"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="58"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td><td valign="bottom" align="center"><img border="0" height="16"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAAzVJREFUeNrsnMFxo0AQRWe7fJcyMBnYGawyMIe9a0JQJtbefDPOAB33
+JmdgZyBlsIpgl9lCLkwJA/N7uhu0XTXlkstI8Oh+agbG355+/XDC8VaNu8htf1ZjI73DJPx59wCg
+EN4phDQkNAsWGqCkIeUM7zFrSL7OBDS+VyObMyQrZWsSUlZnACfw5dwgcZ/5BZPfTEHyEwCvColL
+2O24q/uuWUDKJ1TGKpCCsB8Sn4Dl1CGlbvxEBD51SCIlR4lL4VYAUnKB08SzSCSbUkFKLWxRgdMM
+sii5wK1BOlksuRSQVoCwA9wjIPDVVCAhWVTWw1SZc0MK8lxHblvUP7fA569TCJyMZFET0qEa75ay
+iRtSrDwDlLfG663CPohAQoRdtF4jXrrlFjgZKbU2lN/VeLFSclyQlkAzt6s95BiziVXgXJByFz/7
+WH7x+6OFbOKCFCvL0wUffeUqFYFzQELu7/eVFAKJTeCkmEVDIARXvWqXHAoJEXbwzZ4BZJ/AM21I
+iLCLESV50swmMlxqzZ6pnCqkDBD2a0dvlErguRYkiSw6x16zZyKlDy4FwDbjARE4AYBihf1Se0YS
+EnRSaSJZpNozxUAKaRv7QNYR/KZSEXgMpI1CFjUhifdMMZBypUzgAB0lcIoAFDv72J6ijY0tuL1P
+DckrZ5GrQSM90yYlpMxh9/cfq/GHaSBPq4xeVUBCWWQt/kMaEKNWFQyFJPVAlmRsuCF5N7/wnJCW
+TvaBLKkYLHC60iwadWzEWbtzFXgfpNUMhT06CeiKS23wMVKPsNdXAKlX4HTlWTToWG8SQdoxXK3H
+zA7E3r0JAr/vmqXogoSu3w87vFeA9AwK3I8pN+Rr/6gAKAQ669m5qoA6hJ0r7mxsoE/Hda4qoA6i
+CzDttaJI0TMRc6mFKdqDIqS9w2YtLy4LowTC1o4tdzYR83VaaQASu8Dpwh/ERuzta+441H0am8Cp
+1TwuJp5FSQROTB32yRgk9Om4TwI/Q8oc9g9XCmcv2LKJmIRtERL6LfexqoAYSo3r9nUKgb+D7+HP
+kFBhW8wi1p6JHL4KujQMCRX4v1UFARJyu2infBky5KIXPYn+rwADAOL8qKxS08x7AAAAAElFTkSu
+QmCC" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA7BJREFUeNrsnM1xqzAQxxUNDfBKwCWQCt7g+7vgEkgJ5pRDTnYJpgRz
+eXeYVBBKCCU8SvAzM6sZxuMPaXclQaydYYKTGPBv/7tagdYvp9NJTO3Px6dwZPl5S2A/hdf3rD9v
+1eT1nvuC/r7/vvr7SLizDGAUEzgmNr5nN3mt9ksAWNu6cNuQYoCyhX0bpmANoK4K9tlMWrrw0euH
+8/YPPkTsQKkxnIv9nNKSZ79BQb5sy3kNkjnnfMMFzsFiUHNDVZVk9FyDTMguBowvGDS8QTpejDpz
+tARAZT4gNRr1zZyswYCSrk84Azuahp58MkAqoR9NkjkG0m7BgG5V76yQcgtD/B6mFqvz9nJlW8Pf
+uacdha6zI0P6B6YLbGH6UGv+b3tRbnCNpgdwDpuSOEr9cU61AXXUBOX9YlJWolOVS4MwyxnUs2L6
+cAr2G1MhzAKJKu8K1DMw55UKYFHVlFMhYe//KKuZPH7v+CXxGCyQsNZbBjTNUzURUoyFlFEmhhAK
+g3BjVDUVWEg5MV90DgvEy3vgppZi66ScGAKurTJMDxXAvXuPPMLGqUYy7T1A6mBLHxSlRg6MMPLT
+hOTLWnBuNVELKS9GD5I2ttDzCalkSOJaiTsmKKkVP8wks4qE4xHNKyRKhd0HSCHcyCPb4LDC9g4p
+DqFmL9yGZ4EUkrbhBDeYBSWJoKQAKViAFCAFSLOERKl1kqCkoKSgJFMl9QGSPUijpQHSE6rppypJ
+tU5Y7Qig3IL1vZ5ydNJ403BcdzSuZBt71Rp4ncxJSbFHSNmN36melxMAK6iQhgWrSWf9wu6KylBL
+byiQCo+hliIcqlTmFFLmaZSjOKfCQFIrNLDmuqUrIULqsHO3muhVl+UAxSl3F3lIDQlSHhMZ9XAQ
+w9tKqOlAUs2/lBA4OAgz6jlIkDjUlFsEpTqOqGsXeiokqppUfmqYQy+BY1Lz3sPPJg0O1DPkDXSL
+5xV1fjEAanVKHZM7kxtG72ObCjN4L9eAoLUQ36SVqwNFcdQ/GWzTUL6V+7aTn5zhqh0dpl/DUYLE
+ueZm6lshhHDbEd4Lg8WnmAcBG7H8dZFGqQMDSfWa9QsG1NmGpOS6XiAoVC+vJMb164JCr8TWe9SH
+kwOAqmcO6I1SEEvGON/MEI5KC5QWL9bH3KOaVjNSVQXXQ15XLi14TrW0+1r03kIKYGtrlRYvdM0h
+dUPlvMI5WQeTyIFXW/Cqeu5VMIPpheUuTZdfobifjDTTXvxYcz5YXsBxtrD+vwADADoA0kx0ZQr1
+AAAAAElFTkSuQmCC" />
+<br /><img border="0" height="25"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAA6lJREFUeNrsnN2RqjAUgANjA9wS3CefsQQsAUtgS8AStAQsQUuQEuR5
+nzYlSAkumTnZy/UKJpyTEANn5syqs0L8cn4hIbjf70zI19eaWZS40aT1Pm80Uvhe1ei59b6Ez8hl
+tbr+vl5YhpLCa8xx4h54RqCZhCQsI9OwEkYEr2700OgRXqMlNARn3+gN/kbMrrTPXzS6dA2SHFzO
+3BBhyd8wrtEhJTAYV+A8Sg7ji8eCJGbpQmHWhkWM7wrJwxqkCODk7L3kpDvmBWJW3sF6+qyfQRY0
+YknvDqgNKjUByRdAUgqVYK4DKQJ/9gWQ/E0FJSQl6gNExIVdo9tGgw5dw/8cDJw/fhXIA8UGN8cW
+ZA9ybPVaQ4vEjHDSapgI/qzBDRXjEBUgAeaj0U8EIAl5Dcepidwux7hbQTRTG3ApTmyRa6LOP+3q
+M0OFLybIk1fwQ0pmRjhMQEVgTdkQSHsCQBti6+mzVE5gTVqQMmS6l4BqZkckKGymi3UhYQa8tQio
+7Xo7gisaSpASZHrdWXCxvrqLI61JqcFNkW52HLmSPmrG0yOA5ezfGw2dxaSI8t9s+GXXjcFMppOp
+bj21WgWhoHMyX90tSRCAuAOAZEws4XecdS6LPJOFik9qmq0rsqE6UEic1VyCxExBWiJcrRoh5Y8C
+CeNqJfNUKCFVU4GEaUP4DGm2JDQkb63oEVKEyGz1lCCxGZJaMemKiKL2PpJeuiDNme0NLck7SNFU
+INUzJLOQ2AzptSxnSLO7kaTyyGdQVJC8drmQsJOPpwJpDt4KkDCXYBPisYmbCgFSuSl3qxHuFk3B
+krDWlE0FEiZ4p1OBdEZmuHgKkDjSmrIpQMJaU2Yg0zkJCXtPfz8FSDUSVOwTqL4rk9gtCvnI2Y6s
+6e6DRLEg6zRSfBLnvNqAJOST4BwXyxZVMOLtZq8gcUazMOtkIUaJrHozUYKo3C2hWm6cgwtQu5/c
+qV2Y6h1VINUMv4C8nfUuoBnyOALOHSzU6GWaQOOBLntmZue2XDLMe4rYpHWVwcbu8XK1uv4uTNXZ
+zb1j/z+thkJS1xtj3Tu4W+bxYq22JWEgyZ1APoPaPhbSQ9YCSFC+rbYVE//xLC4OXTAhQR08ASTi
+7bqr1AkJDr59YziiUP7zarIplt6cu8zUcTjKu8Gp1idxsCjXg/qB/d1yrzxO6pVuJcyQS6VCBWEh
+GNpiBYYfoSiLz/0IYM6gg/rO9qbAwOJzJmVrgd0l3pdEGFXGbUP6EWAA2LwDwtC8jpAAAAAASUVO
+RK5CYII=" />
+<br /><img border="0" height="41"width="14" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAALRJREFUeNrs09ENQDAUQFHEXlhAYgJWMJnEBLqBUWxQFkCC/si5yftq
+mzYnaR5jzM4KXXu++J9CNc311YYi022QIEGCBAkSJEiCBCll5c16k+DO4Zj+4dnxmPXj92xvkZYE
+SPWLs2uiN/lukCBBggQJkiBBggQJEiRIggQJEiRIkCBBEiRIkCBBggRJkCBBggQJEiRICCBBggQJ
+EiRIggQJEiRIkCAJEiRIkCBBggRJ1+0CDAAzsw5U48snWgAAAABJRU5ErkJggg==" />
+<br /><img border="0" height="8"width="14" src="data:image/png;base64,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
+SUVORK5CYII=" />
+<br /><img border="0" height="6"width="16" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
+bWFnZVJlYWR5ccllPAAAABdJREFUeNpiYGBg+M/w//9/BmwEQIABANxBD/HRDNRSAAAAAElFTkSu
+QmCC" />
+</td></tr><tr><td>&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">1&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">5&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">10&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">15&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">20&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">20&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">15&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">10&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">5&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">&nbsp;</td><td valign="top" align="center" style="font-size: 10px;margin: 0;">1&nbsp;</td></tr><tr><td align="left" valign="middle">&nbsp;</td><td align="center" valign="middle" colspan="41" class="pinfo"><b>Position from Sequence Ends</b></td></tr></table></div><hr><div class="info-header"><span class="info-header-title">Sequence Duplication</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value"># Sequences</td> <td class="info-table-value">Max duplicates</td></tr><tr><td class="info-table-type">Exact duplicates:</td><td class="info-table-value">4 &nbsp;(33.33 %)</td><td class="info-table-value">3</td></tr><tr><td class="info-table-type">Exact duplicates with reverse complements:</td><td class="info-table-value">0</td> <td class="info-table-value">0</td></tr><tr><td class="info-table-type">5' duplicates</td><td class="info-table-value">0</td> <td class="info-table-value">0</td></tr><tr><td class="info-table-type">3' duplicates</td><td class="info-table-value">0</td> <td class="info-table-value">0</td></tr><tr><td class="info-table-type">5'/3' duplicates with reverse complements</td><td class="info-table-value">0</td> <td class="info-table-value">0</td></tr><tr><td class="info-table-type">Total:</td><td class="info-table-value">4 &nbsp;(33.33 %)</td><td class="info-table-value">-</td></tr></tbody></table><br /><img border="0"  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqgAAAETCAYAAAD6XfR3AAAABmJLR0QA/wD/AP+gvaeTAAAgAElE
+QVR4nO3deViVdf7/8dcBQQQlUHAbSaxUUDMuMytm3HLJZbByxo00K3XUJBWzcskUdCyXbNwq960B
+rfzqhDTmEm7p2NiM5JI2jaaVG6iYoIDC/fvDH2dAIFHPDefcPB/XxXVxPvd97vfnc3vO4eW9fI7N
+MAxDAAAAgJNwK+sOAAAAAPkRUAEAAOBUCKgAAABwKgRUAAAAOBUCKgAAAJwKARUAAABOhYAKAAAA
+p0JABQAAgFMhoAIAAMCpEFABAADgVAioAAAAcCoEVAAAADgVAioAAACcCgEVAAAAToWACgAAAKdC
+QAUAAIBTIaACAADAqRBQAQAA4FQIqAAAAHAqBFQAAAA4FQIqAAAAnAoBFQAAAE6FgAoAAACnQkAF
+AACAU6lQ1h2AdXR8ZXWJ1tv0Tm+Te2I90/VUidZ7TX8zuSfO4eMn25dovR6fbzG5J85h3kf7S7Re
+VM8wk3sCK2s+eHCJ1tu3YIHJPUF5wBFUOI3w8HBFRkbafxYtWuTwGkuXLi3xum3atLnrei1btrzr
+bThC/n2bmJhoby9p/6y0LyTpo48+Uq9evdS7d2/17t1bX375pX1Zedwnea+PXr166dlnn9WBAwfK
+uksO5yz7WuJzqLy/zkr6eTx16lQlJyeX288rjqDCabi7uysuLs7UGsuWLdOLL75oag1nVBr71pX8
+/ve/V8+ePSVJx48f1+DBg7Vp06Yy7lXZyf/6+Oqrr/TWW2/xejERn0Pl+3VW0s/jgwcPasyYMapf
+v365/LwioMKpHT58WLGxsVq5cqVycnLUr18/TZs2Tffff78SEhL08ccfKzs7W+7u7ho/frwaNWok
+Sbpw4YJiY2N16tQpubm5afTo0dq3b5+ysrIUGRmp2rVra+bMmQVqnTp1Sq+99ppyc3P12GOPFVjW
+smVL7dy50/64TZs22rZtm31Zjx499I9//ENubm6aPn26ateube6OcZCqVasW2W71feHt7W3//cqV
+K6pRo4b9cXndJ3maN2+uU6dO2R9fuHBBkyZN0tmzZ1WhQgW98cYbCg0N1dy5c1WjRg37H86FCxeq
+UqVK6tevX7HbLup92bx5c50+fVrjx49XRkaGKleurClTpqhWrVqSbuy/F154Qdu3b1daWppeeeUV
+fffdd9q1a5cuXLigV1991X5k5273dXFj5XPI8crz66w4+T97jh8/rnvvvVdubm7l9vOKU/xwGjk5
+OQVO8ScmJqpRo0Zq1aqV3nvvPc2ePVtdu3bV/fffL+nGm2rlypVavXq1Jk2apGnTptm3NWPGDDVr
+1kwfffSR4uPjFRoaqiFDhqhixYqKi4sr9EdBkmbOnKkePXooLi5OdevWVXZ2don7XbduXcXFxalH
+jx5FbrusGYahyMhI/elPf9Lx48ft7X/7W9HXrFp5X+RZvXq1nn76aY0aNUpTpkyxt5fnfSJJX3zx
+herVq2d/PHPmTPXr109r1qxRTEyM3nrrLUlSx44dtWXL/67x3bJlizp27Pir2y7qfZnX/tRTT2nN
+mjXq1q2bZsyYYX9OTk6OqlevrhUrVmjatGkaN26cgoKCtHz5ck2fPl1z5swpsO7d7OvixsrnkOOV
+59dZST6Pd+/erfDwcPvj8vh5RUCF08g77ZH307VrV0nSoEGDtHfvXn377bfq37+/ff0ffvhBQ4YM
+Uc+ePTVx4sQCb/S9e/fqj3/8oyTJZrPJx8fnlvX379+vJ598UpLUuXNn2Wy2Evc9//OSk5NL/LzS
+kpCQoLi4OD399NOaPHnyLde38r7I07t3b61fv17Dhw8vECqKY+V9kvefw65du2rChAl69dVX7cu+
++uorvfvuu4qMjNSbb76pS5cuSZIaNmyoCxcuKCUlRd99952qVKlS4MhOUYp7X968b/PvI5vNZl8W
+EhKi3NxcdejQwf44JSWlQI272dfFjVXic8gReJ3dUJLP4z179ujxxx+3Py6Pn1ec4ofTu3Tpkq5c
+uaLr168rKytLlSpVkiRNmDBBMTExeuihh5Sdna22bdvan3M7b8aSMgxDNptNOTk5ysnJcfj2zeTv
+7y/pxgdPST7cbsWV98XNOnXqVO73Sd5/DnNzczV37lwtXrxYs2bNkiTl5uZq6dKl8vLyKvS89u3b
+a+vWrTp//rz9j9qvuZP3pZubmzw8POyPPT095eZmzrGVXxsrn0N3j9fZDbf6PM7MzNTly5cVGBhY
+aFl5+rziCCqc3pQpUzR06FB17txZc+fOtbdfuXJF1atXlyStW7dOhmHYlz366KP65JNPJN14I2Zk
+ZEiSPDw8lJWVVWSdsLAw+4Xnn3/+eYHt1axZU4cPH5Ykbdq0qdAbOv/zwsKcayqftLQ0+1h27dql
+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
+kTqAQlK5AAAAAElFTkSuQmCC
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqgAAAETCAYAAAD6XfR3AAAABmJLR0QA/wD/AP+gvaeTAAAgAElE
+QVR4nO3deVwUV7738W+DQIviiOISFTVjIiBm5EazDPdqXKPG0Um8cSMxZtExiSvRcVCzCDoxah4d
+l3sTRXGbARPH0UhMXOMSo9GYO64EvYlbMm64oLIEhK7nDx/6EQFB0wXdxef9evF60aeq63fOsbv4
+WafOKZthGIYAAAAAN+FV0RUAAAAAbkWCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3
+QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdC
+ggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KC
+CgAAALdCggoAAAC3UqWiKwDreHLMijLtt/H/9De5JtYzXb8v037j9InJNXEPK7t2LtN+fTZsNrkm
+7mHex/vLtN/wvhEm1wRW1mbo0DLtt2/+fJNrgsqAK6hwG5GRkYqKinL+xMfHuzxGQkJCmfdt3779
+L47Xtm3bX3wMV7i1b9etW+csL2v9rNQXkvTxxx+rX79+6t+/v/r376+vvvrKua0y9knB56Nfv356
+7rnndOjQoYquksu5S19LnIcq++esrOfjd999VwcOHKi05yuuoMJteHt7KzEx0dQYixcv1ssvv2xq
+DHdUHn3rSX73u9+pb9++kqQTJ05o6NCh2rhxYwXXquLc+vnYu3evpk6dyufFRJyHKvfnrKzn48OH
+DysmJkYPPvhgpTxfkaDCraWkpCguLk7Lli1Tfn6+Bg4cqGnTpqlZs2ZKTk7WypUrlZubK29vb02c
+OFEtWrSQJF2+fFlxcXE6c+aMvLy8NHbsWO3bt085OTmKiopSgwYN9P777xeKdebMGY0bN04Oh0OP
+P/54oW1t27bVl19+6Xzdvn17bdu2zbmtT58++vrrr+Xl5aXp06erQYMG5naMi9SqVavYcqv3hb+/
+v/P3rKws1atXz/m6svZJgTZt2ujMmTPO15cvX9akSZN0/vx5ValSRW+++abCwsI0d+5c1atXz/mH
+c8GCBapataoGDhxY4rGL+162adNGZ8+e1cSJE5WZmanq1atrypQpuu+++yTd7L+XXnpJ27dvV3p6
+usaMGaNjx45p586dunz5sv74xz86r+z80r4uqa2ch1yvMn/OSnLruefEiRNq3LixvLy8Ku35iiF+
+uI38/PxCQ/zr1q1TixYt1K5dO/33f/+3Zs+erR49eqhZs2aSbn6pli1bphUrVmjSpEmaNm2a81gz
+ZszQww8/rI8//lhJSUkKCwvTq6++Kj8/PyUmJhb5oyBJ77//vvr06aPExEQ1adJEubm5Za53kyZN
+lJiYqD59+hR77IpmGIaioqL0hz/8QSdOnHCWf/JJ8fesWrkvCqxYsUJPP/203njjDU2ZMsVZXpn7
+RJK++OIL3X///c7X77//vgYOHKiPPvpIsbGxmjp1qiTpySef1ObN//8e382bN+vJJ5+847GL+14W
+lP/+97/XRx99pF69emnGjBnO9+Tn56tu3bpaunSppk2bpgkTJig4OFhLlizR9OnTNWfOnEL7/pK+
+LqmtnIdcrzJ/zspyPt61a5ciIyOdryvj+YoEFW6jYNij4KdHjx6SpCFDhmjPnj367rvvNGjQIOf+
+J0+e1Kuvvqq+ffvqnXfeKfRF37Nnj5599llJks1mU7Vq1UqNv3//fnXt2lWS1L17d9lstjLX/db3
+HThwoMzvKy/JyclKTEzU008/rcmTJ5e6v5X7okD//v21Zs0ajRw5slBSURIr90nBfw579Oiht956
+S3/84x+d2/bu3atZs2YpKipKb7/9tq5evSpJCgkJ0eXLl5WWlqZjx44pICCg0JWd4pT0vby9b2/t
+I5vN5twWGhoqh8OhLl26OF+npaUVivFL+rqktkqch1yBz9lNZTkf7969W7/97W+dryvj+Yohfri9
+q1evKisrS3l5ecrJyVHVqlUlSW+99ZZiY2PVqlUr5ebmqkOHDs733M2XsawMw5DNZlN+fr7y8/Nd
+fnwzBQYGSrp54inLya00ntwXt+vWrVul75OC/xw6HA7NnTtXCxcu1MyZMyVJDodDCQkJstvtRd7X
+uXNnbdmyRZcuXXL+UbuTe/leenl5ycfHx/na19dXXl7mXFu5U1s5D/1yfM5uKu18/PPPP+v69euq
+U6dOkW2V6XzFFVS4vSlTpui1115T9+7dNXfuXGd5VlaW6tatK0lavXq1DMNwbnvsscf097//XdLN
+L2JmZqYkycfHRzk5OcXGiYiIcN54vmHDhkLHq1+/vlJSUiRJGzduLPKFvvV9ERHutZRPenq6sy07
+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
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqgAAAETCAYAAAD6XfR3AAAABmJLR0QA/wD/AP+gvaeTAAAgAElE
+QVR4nO3de1xVVf7/8fcBuYjIgEKaSVpmiprxKKfm6zevKXkJK2e8RJlddNSRENIpzTQBu3j5Wd4q
+b3jri2hjOaEzahe8ZaNjk+QlbSYtaxwRFDRQRGH//vDL+UJAkp0F52xfz8eDx+OctfbZn7U2Z28+
+7L322g7LsiwBAAAAbsKrthsAAAAAlEWCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3
+QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdC
+ggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KCCgAAALdCggoAAAC3QoIKAAAAt0KC
+CgAAALdCggoAAAC3Uqe2GwD7iBqbVq3lNv+/wYZbYj/T9UC1lntWfzbcEvfwzn09qrXcgE0fGm6J
+e5i3Zm+1losdGGm4JbCzDiNGVGu5PQsWGG4JrgWcQYXb6Nixo2JiYpw/ixYtcnmMlJSUai/btWvX
+XxyvU6dOv3gdrlB2227YsMFZXt322WlbSNKaNWs0aNAgDR48WIMHD9Ynn3zirLsWt0np92PQoEF6
+5JFHtG/fvtpuksu5y7aWOA5d69+z6h6PX375ZWVmZl6zxyvOoMJteHt7KzU11WiMpUuX6sknnzQa
+wx3VxLb1JPfff78GDhwoSTp69KhGjBihzZs313Krak/Z78fu3bv1yiuv8H0xiOPQtf09q+7xeP/+
+/Ro/frxatmx5TR6vSFDh1g4ePKikpCStWLFCxcXFGjJkiKZNm6YWLVooPT1d77zzjoqKiuTt7a2J
+EyeqTZs2kqTTp08rKSlJx48fl5eXl8aNG6c9e/bowoULiomJUZMmTTRz5sxysY4fP65nn31WJSUl
++s1vflOurlOnTtq+fbvzfdeuXbVlyxZn3YABA/S3v/1NXl5emj59upo0aWJ2w7hIgwYNKi23+7YI
+CAhwvj537pwaNWrkfH+tbpNSHTp00PHjx53vT58+rSlTpigrK0t16tTRCy+8oIiICM2dO1eNGjVy
+/uFcuHCh6tatqyFDhlS57sr2yw4dOug///mPJk6cqIKCAgUGBmrq1Km6/vrrJV3efk888YS2bt2q
+vLw8jR07Vl999ZV27Nih06dP649//KPzzM4v3dZV9ZXjkOtdy9+zqpQ99hw9elQ33nijvLy8rtnj
+FZf44TaKi4vLXeLfsGGD2rRpo86dO+uNN97Q7Nmz1bdvX7Vo0ULS5Z1qxYoVSktL05QpUzRt2jTn
+umbMmKE77rhDa9as0apVqxQREaGRI0fKz89PqampFf4oSNLMmTM1YMAApaamqlmzZioqKqp2u5s1
+a6bU1FQNGDCg0nXXNsuyFBMTo9///vc6evSos/zPf658zKqdt0WptLQ0Pfjgg3rmmWc0depUZ/m1
+vE0k6eOPP9ZNN93kfD9z5kwNGTJEq1evVmJiol555RVJUlRUlD788P/G+H744YeKior6yXVXtl+W
+lj/wwANavXq1+vXrpxkzZjg/U1xcrOuuu07Lly/XtGnT9Pzzzys8PFzLli3T9OnTNWfOnHLL/pJt
+XVVfOQ653rX8PavO8Xjnzp3q2LGj8/21eLwiQYXbKL3sUfrTt29fSdLw4cO1a9cuffnllxo6dKhz
++W+++UYjR47UwIED9eKLL5bb0Xft2qXf/e53kiSHw6F69epdMf7evXt13333SZJ69+4th8NR7baX
+/VxmZma1P1dT0tPTlZqaqgcffFDJyclXXN7O26LU4MGDtW7dOsXFxZVLKqpi521S+s9h3759NWnS
+JP3xj3901u3evVuvvfaaYmJiNHnyZJ05c0aS1KpVK50+fVrZ2dn66quvVL9+/XJndipT1X75421b
+dhs5HA5nXevWrVVSUqKePXs632dnZ5eL8Uu2dVV9lTgOuQLfs8uqczz+9NNP9V//9V/O99fi8YpL
+/HB7Z86c0blz53Tp0iVduHBBdevWlSRNmjRJiYmJuv3221VUVKRu3bo5P/NzdsbqsixLDodDxcXF
+Ki4udvn6TQoJCZF0+cBTnYPblXjytvixXr16XfPbpPSfw5KSEs2dO1eLFy/WrFmzJEklJSVKSUmR
+v79/hc/16NFDH330kU6dOuX8o/ZTrma/9PLyko+Pj/O9r6+vvLzMnFv5qb5yHPrl+J5ddqXjcWFh
+oX744QeFhYVVqLuWjlecQYXbmzp1qkaNGqXevXtr7ty5zvJz587puuuukyS99957sizLWXf33Xfr
+T3/6k6TLO2JBQYEkycfHRxcuXKg0TmRkpHPg+aZNm8qtr3Hjxjp48KAkafPmzRV26LKfi4x0r6l8
+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
+p2vt2rXlvtN27G/Hjh3VvHlzSdIjjzyivn37SrJnX0stWLBAH330kSzL0oABAzRw4EBJ9u3zrFmz
+nFMdFhYWKjc3VxkZGbbs79atWzV//nxJksPh0OjRo9W5c2dJ9vz9Hj58WImJibp06ZLCw8OVnJys
+gIAASfbsb42r1Vu08Ivt27fPOnnypHXPPfdUqJs1a5a1fPlyy7Isa/ny5dbs2bNrunku9a9//cs6
+deqUZVmW9dlnn1kPPfSQs85ufS1VUFDgfH3kyBGrZ8+ezvd27fM//vEPa8KECRW+03bsb2X7rWXZ
+s6+WZVnr1q2zXnzxRau4uNiyLMvKzc111tm1z2WlpaVZiYmJlmXZs789e/a0vv76a8uyLOubb76x
+7rvvPmedHfv76KOPWjt27LAsy7I++eQTa86cOc46O/a3pnGJ38O1a9fO+XCCH6vqyVqeqkWLFmrQ
+oIEk6bbbbtOpU6ecdXbra6nS/8Yl6dy5c2rUqJHzvR37XFRUpNmzZ2vcuHEV6uzY36rYta/vvfee
+nnjiCXl5Xf7TExwc7Kyza5/L2rRpk7OPduxv06ZNlZ+fL+nyGcQmTZo46+zY32+//VZ33323JOk3
+v/lNuT7Zsb81jUv8NlbVk7Xs4P3333de6pbs3de0tDSlpaXp/PnzWrhwobPcjn1+66231L9/f+c/
+ImXZsb+WZSkmJkaBgYGaMGGCbrrpJkn27Kt0+Q/6X//6V23ZskUhISF6/vnnFR4eLsm+fS51/Phx
+HT9+3PnIbTv2d+rUqRo2bJgcDocsy9KiRYucdXbsb4sWLfTBBx+od+/e+uCDD3TixAlnnR37W9M4
+gwqPc/jwYa1cuVIJCQm13ZQaMXjwYK1bt05xcXGaNm1abTfHmIMHD+rQoUPq169fbTelxqSnpys1
+NVUPPvigkpOTa7s5xhUXF6tZs2ZKS0vTQw89pKSkpNpuUo3ZvHmzevTo4Tx7bEfTp09XXFycNmzY
+oPj4eM2YMaO2m2TUpEmT9N5772nQoEH617/+JW9v79pukq3Yd0+BwsLClJ2dLUnKyclRaGhoLbfo
+l8vKytKECRP0yiuvlBvaYMe+/livXr20f/9+53u79Xnv3r06cuSIoqOjFR0drcLCQkVHR6ukpESS
+/forSSEhIZKk++67T19//bWz3I59laTGjRurZ8+ekqQePXron//8p7POrn0uVfbyvmTP/n7++efq
+0aOHpMu/38zMTGedHft78803a+HChVq9erX69eunG2+80Vlnx/7WNBJUG41LhzkAAAY3SURBVLPb
+k7UKCgqUkJCg+Ph4RURElKuzW19LHT9+3Pl627ZtzkvAkv36HBMTo40bNyo9PV3p6eny9/dXenq6
+84yT3fqbl5cn63+nod6xY4eaNWvmrLNbX0t17NhRu3fvlnR5Vo6yf9Dt2mdJOnLkiM6dO6d27do5
+y+zY36ZNmzp/v7t27dINN9zgrLNjf8+cOSPp8lCdpUuXKjo62llnx/7WNCbq93Dz5s3TX/7yF2Vn
+ZyssLEx9+vRRbGysJPs9WWvlypVauHChc8yaJL399tvy8vKyXV9LvfLKK9q7d68sy1JwcHC5cYp2
+7XOpTp06afv27c73duvvxo0blZKSIkny9/fXCy+8oFtvvVWS/fpaKj8/X5MmTdK///1v+fj46MUX
+X7R9nyXpzTfflGVZ+sMf/uAss2N/Dxw4oJdeeklFRUXy9fXVxIkT1bZtW0n27O+f/vQnrVq1St7e
+3urcubNGjx7tnBLQjv2taSSoAAAAcCtc4gcAAIBbIUEFAACAWyFBBQAAgFshQQUAAIBbIUEFAACA
+WyFBBQAAgFshQQWAH/n66681cOBAhYWFqU6dOgoNDVWXLl2cE28DAMyqU9sNAAB3UlhYqK5du+q2
+227T+vXr1bRpU2VnZ2vbtm3Kzc2t7eYBwDWBM6gAUMbevXv1/fff64033tDdd9+tG264QZGRkYqL
+i9PDDz9cbtk5c+aoVatW8vX1VdOmTTV58mQVFxc76y9duqRx48YpLCxM9erVU79+/fT222/L4XAo
+Ly9PW7ZskcPhUE5OjvMzpWV5eXnVjlP6mc2bN+vOO++Un5+ffv3rX+vw4cPOZUpKSjR9+nTdcsst
+8vX1VZMmTZSUlPSz+gMANYUEFQDKuP766+VwOLR69WpdunSpyuWmTJmiN954Q6+//rqOHDmiZcuW
+aeXKlZo8ebJzmbFjx2rlypVKSUnRl19+qfvvv18JCQk/qz3ViVMqMTFR8+fPV2ZmpurUqaORI0c6
+6yZMmKBXX31VU6dO1ddff633339fzZo1u6o4AGCcBQAoZ/bs2VZAQIAVGBho3XPPPdbYsWOtv//9
+7876goICq27dutbOnTvLfS41NdVq0KCBZVmWdebMGcvX19dasWJFuWXGjRtnSbJyc3OtjIwMS5KV
+nZ3trC8ty83NrVacsp/5+OOPnWWrV6+26tSpY128eNE6e/as5efnZy1durTS/lY3DgDUFMagAsCP
+xMXF6YknntC2bdv0+eefa+vWrZo1a5ZmzZql+Ph4HThwQOfPn1fPnj3Lfa64uFiFhYXKz8/XoUOH
+VFRUpC5dupRbplu3bpo5c2a12lGdOIGBgc7ytm3bOl9fd911unTpkgoKCnT48GFduHBB3bt3d0kc
+ADCNBBUAKlG/fn317dtXffv21QsvvKDk5GRNmjRJcXFxKikpkSRt3LhRjRs3rvDZgIAA52uHw1Fl
+jMrqStdd9nV14kiSl1fFUVuWZVUZ/2rjAIBpJKgAUA3t27dXQUGBLl68qLZt28rf31/Hjh3TPffc
+U+nyrVu3lq+vr7Zu3apHH33UWb5lyxbn66CgIElSTk6OQkNDJUn79+931lcnTnVERETIz89PH3/8
+sR5//PEK9a6KAwCuQoIKAGV88sknmjdvngYMGKD27dvLz89PX3zxhZ577jn17t1bfn5+8vPz0/jx
+4/X000+ruLhYnTt31sWLF/XZZ5/p8OHDmjx5soKCgvT73/9e48aNU0hIiG677TZ98MEHWrZsmTNW
+27ZtFRoaquTkZL300ks6dOiQ5syZ46wPDAy8YpzqqF+/vsaMGaOxY8eqbt266tixo7KysnTgwAEN
+HTrUZXEAwGVqexAsALiT48ePWyNHjrQiIiIsPz8/y8fHx7rpppus+Ph468yZM+WWXbBggdW+fXvL
+19fXqlevnnXXXXdZixYtctYXFRVZCQkJVsOGDa26detavXv3tlauXOm8CcqyLGvTpk1WixYtLD8/
+P6t79+7WihUrytVXJ86VbrayLMsqLi62Xn75Zat58+aWt7e3dcMNN1jJyck/qz8AUFMcllWNAUoA
+AJfYsmWLunXrptzcXAUHB9d2cwDALTEPKgAAANwKCSoAAADcCpf4AQAA4Fb+PxBIwxXSTjyiAAAA
+AElFTkSuQmCC
+" />
+</div><hr><div class="info-header"><span class="info-header-title">Sequence Complexity</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type"></td><td class="info-table-value">Value</td><td class="info-table-value">Sequence</td></tr><tr><td class="info-table-type">Minimum DUST score:</td><td class="info-table-value">2</td><td class="info-table-value sequencetext">NNNNNNNNNNTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTG<br />AGAAGAGGCGTGGAGGAGATGACACACCCCGTGTGTTCTC</td></tr><tr><td class="info-table-type">Maximum DUST score:</td><td class="info-table-value">100</td><td class="info-table-value sequencetext">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td></tr><tr><td class="info-table-type">Minimum Entropy value:</td><td class="info-table-value">0</td><td class="info-table-value sequencetext">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td></tr><tr><td class="info-table-type">Maximum Entropy value:</td><td class="info-table-value">81</td><td class="info-table-value sequencetext">NNNNNNNNNNTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTG<br />AGAAGAGGCGTGGAGGAGATGACACACCCCGTGTGTTCTC</td></tr> </tbody></table><br /><img border="0"  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAq4AAAETCAYAAAD3Q4QwAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE
+QVR4nO3deVTV9b7/8ddm3CIiKFgOpOYAiBkrp5blrDkd7dSp7tFrZTe9lgNqudIcKqBM05XH0mPm
+kGVXrQ7XjlhppiiVpmXHIU1vZQ73OIEHBxAH5PP7ox/7ioBA8gH31+djLdaCz3fzeX8+e39Z++XX
+z/58XcYYIwAAAOAG51PZAwAAAABKg+AKAAAAr0BwBQAAgFcguAIAAMArEFwBAADgFQiuAAAA8AoE
+VwAAAHgFgisAAAC8AsEVAAAAXoHgCgAAAK9AcAUAAIBXILgCAADAKxBcAQAA4BUIrgAAAPAKBFcA
+AAB4BYIrAAAAvALBFQAAAF6B4AoAAACvQHAFAACAVyC4AgAAwCsQXAEAAOAVCK4AAADwCgRXAAAA
+eAWCKwAAALwCwRUAAABegeAKAAAAr0BwBQAAgFcguAIAAMArEFwBAADgFQiuAAAA8AoEVwAAAHgF
+gisAAAC8AsEVAAAAXoHgCgAAAK9AcAUAAIBXcFRwfe2119S2bdvKHgYAAAAscExw/cc//qFTp04p
+ICCgsocCAAAACxwRXC9evKhZs2Zp7NixlT0UAAAAWOJX2QMoD2+99ZYefPBB1ahRo8jjrVq18nz/
+3XffVdSwAAAAUI68Prju2bNHe/fuVXx8fLGPuTKsZmVlVcSw4OVmzAgu1DZ2LOcOAAClFRxc+L30
+enn9UoHt27dr//796tu3r/r27avz58+rb9++ysvLq+yhAQAAoBy5jDGmsgdRntq3b68vv/yy2ONc
+cUVpcMUVAIDrwxVXAAAA3LQcF1yvdbUVAAAA3stxwRUAAADORHAFAACAVyC4AgAAwCsQXAEAAOAV
+CK4AAADwCgRXAAAAeAWCKwAAALwCwRUAAABegeAKAAAAr0BwBQAAgFcguAIAAMArEFwBAADgFQiu
+AAAA8AoEVwAAAHgFgisAAAC8AsEVAAAAXoHgCgAAAK9QocE1JydHxpiKLAkAAACHsBZcZ86cqVWr
+VkmSLl++rAceeEBBQUG67bbbtG3bNltlAQAA4FDWguv06dNVt25dSVJycrLS0tL00UcfqXPnzho5
+cqStsgAAAHAoP1sdHz9+XDVr1pQkpaSkaMCAAXrooYcUFxen2NhYW2UBAADgUNauuNapU0dLly7V
+zp07lZKSoh49ekiScnNzVaVKFVtlAQAA4FDWguv48eM1YcIE3XnnnYqOjlbPnj0lSV988YVatWpl
+qywAAAAcytpSgeHDh6t37946efKk4uLi5Of3W6k2bdqoa9eutsoCAADAoawFV0lq2LChGjZsqKys
+LAUFBcnHx0dt2rSxWRIAAAAOZW2pQG5uriZOnKiaNWuqWrVq2r9/vyQpMTFRCxYssFUWAAAADmUt
+uCYkJGjZsmWaPXu23G63p71p06ZatGiRrbIAAABwKGvBddGiRZo/f7769+8vX19fT3vLli21a9cu
+W2UBAADgUNaCa3p6uqKiogq1+/v76+LFi7bKAgAAwKGsBdcGDRpoz549hdrT0tIUHR1tqywAAAAc
+ylpwHT58uEaPHq3NmzdLko4dO6alS5dqzJgxGjFihK2yAAAAcChr22HFx8crMzNTXbt2VU5Ojtq3
+by+3263x48dryJAhtsoCAADAoVzGGGOzwLlz57R7927l5eUpNjZWwcHBNsuVKCsrq1LrwzvMmFH4
+PB07lnMHAIDSspH5rN6AQJKCgoLUunVr22UAAADgcNbWuCYmJuq9994r1L548WK9/PLLtsoCAADA
+oawF17feekvNmjUr1B4TE6O33nrLVlkAAAA4lNV9XG+55ZZC7bVr19bx48dtlQUAAIBDWQuukZGR
+2rRpU6H2TZs2KTIy0lZZAAAAOJS1D2cNGTJEw4YNU05Ojrp06SJJWr9+vZ555hk999xztsoCAADA
+oawF13HjxunkyZMaOnSo5xavgYGBGjVqFMEVAAAAZWZ9H9ezZ8/qxx9/lCQ1a9aMfVzhFdjHFQCA
+6+OV+7hWqVJFUVFRMsYoNzdXp06dkiSFhobaLg0AAAAHsfbhrL1796pTp06qUqWKQkNDFRYWVuAL
+AAAAKAtrV1wHDhwof39//dd//Zdq1aplq0yZVa1atbKHAC/FuQMAQOWyFlx37dqlnTt3KioqylaJ
+3yU7O7uyhwCvUHhdDucOAAClZ2ONq7WlAs2bN/esZwUAAACul7Xg+uqrr+qZZ55RamqqTpw4oYyM
+jAJfAAAAQFlYWyrQo0cPSfLcfOBqlnfhAgAAgMNYC66pqam2ugYAAMBNyFpw7dSpk62uAQAAcBOy
+tsb1SllZWcrLy6uIUgAAAHAoa8E1NzdXEydOVM2aNVWtWjXt379fkpSYmKgFCxbYKgsAAACHshZc
+ExIStGzZMs2ePVtut9vT3rRpUy1atMhWWQAAADiUteC6aNEizZ8/X/3795evr6+nvWXLltq1a5et
+sgAAAHAoa8E1PT29yLtm+fv76+LFi7bKAgAAwKGsBdcGDRpoz549hdrT0tIUHR1tqywAAAAcylpw
+HT58uEaPHq3NmzdLko4dO6alS5dqzJgxGjFihK2yAAAAcChr+7jGx8crMzNTXbt2VU5Ojtq3by+3
+263x48dryJAhtsoCAADAoVzG8r1Xz507p927dysvL0+xsbEKDg62Wa5EWVlZlVof3mHGjMLn6dix
+nDsAAJSWjcxn7YrrqVOnPN83adJE0m97u+a3h4aG2ioNAAAAB7IWXMPCwq553PKFXgAAADiMteCa
+mppa4Oe8vDz98MMPmjVrll566SVbZQEAAOBQ1oJrp06dCrV16dJFjRs31l/+8hc9+uijtkoDAADA
+gaxth1WcmJgYffnllxVdFgAAAF7O2hXXjIyMQm3p6elKTExUZGSkrbIAAABwKGvBNSIiotj2ZcuW
+2SoLAAAAh6qwD2e5XC6FhISoefPm8vf3t1UWAAAADmUtuMbFxRXZnp2dXaiNPV0BAABQkkrbx/VK
+7OkKAACAklgLrkuWLNEzzzyjQYMGebbGSk1N1eLFizVz5kzVq1fPVmkAAAA4kLXgunTpUk2ZMkWD
+Bw/2tPXu3VtNmjTRhx9+qJUrV9oqDQAAAAeyto/rhg0bdN999xVq79mzp9atW2erLAAAABzKWnAN
+CgrSrl27CrXv2LFDQUFBtsoCAADAoawF18cee0xPPvmk3n//fR0+fFiHDh3SkiVLNHjwYD3++OO2
+ygIAAMChrK1xnTZtmi5duqQnn3xSFy9elCQFBAToqaee0tSpU22VBQAAgEO5jOW9qM6cOaO9e/dK
+kqKjoxUSEmKzXImysrIqtT68w4wZwYXaxo7l3AEAoLSCgwu/l14va1dc84WEhKhZs2YKCgqSj4+1
+lQkAAABwOGtJMjc3VxMnTlTNmjVVrVo17d+/X5KUmJioBQsW2CoLAAAAh7IWXBMSErRs2TLNnj1b
+brfb0960aVMtWrTIVlkAAAA4lLXgumjRIs2fP1/9+/eXr6+vp71ly5ZFbpMFAAAAXIu14Jqenq6o
+qKhC7f7+/p5dBgAAAIDSshZcGzRooD179hRqT0tLU3R0tK2yAAAAcChrwXX48OEaPXq0Nm/eLEk6
+duyYli5dqjFjxmjEiBG2ygIAAMChrG2HFR8fr8zMTHXt2lU5OTlq37693G63xo8fryFDhtgqCwAA
+AIeyfgOCc+fOaffu3crLy1NsbKyVzWjLghsQoDS4AQEAANfHK29AEBQUpNatW0uScnJyZIyRy+Wy
+XRYAAAAOY22N68yZM7Vq1SpJ0uXLl/XAAw8oKChIt912m7Zt22arLAAAABzKWnCdPn266tatK0lK
+Tk5WWlqaPvroI3Xu3FkjR460VRYAAAAOZW2pwPHjx1WzZk1JUkpKigYMGKCHHnpIcXFxio2NtVUW
+AAAADmXtimudOnW0dOlS7dy5UykpKerRo4ckKTc3V1WqVLFVFgAAAA5lLbiOHz9eEyZM0J133qno
+6Gj17NlTkvTFF1+oVatWtsoCAADAoawtFRg+fLh69+6tkydPKi4uTn5+v5Vq06aNunbtaqssAAAA
+HMrqdlgNGzZUw4YNC7S1adPGZkkAAAA4lPV9XG80VatWrewhwEtx7gAAULluuuCanZ1d2UOAVyh8
+tw/OHQAASs8r75zlVMXdErSs7QAAACidct1VwOVy6dixY4W+BwAAAK5XuQZXHx8fGWPKs0sAAABA
+UjkvFYiMjFRKSooefvhhSdKZM2fkdruLfGxoaGh5lgYAAIDDlWtwHTdunJ5++mkNHTpUkhQVFVXs
+Y7kyCwAAgLIo1+D69NNPq2/fvtq/f786duyo5ORk1ahRozxLAAAA4CZV7rsK1KtXT/Xq1eOKKgAA
+AMpVuX44qzgXLlzQhQsXKqIUAAAAHMpqcH3nnXcUHR0tt9stt9utmJgYvfvuuzZLAgAAwKGs3YBg
+wYIFGjFihEaNGqWOHTtKkjZu3KihQ4cqLy9PTzzxhK3SAAAAcCBrwXX69OmaM2eOnnzySU9b7969
+1aRJE02bNo3gCgAAgDKxtlTg119/Vffu3Qu133ffffr1119tlQUAAIBDWQuutWrV0o4dOwq179ix
+Q7fccoutsgAAAHAoa8H18ccf1+DBg7VkyRIdOnRIhw4d0pIlSzR48GANGjTIVlkAAAA4lLU1rgkJ
+CTp16pSefPJJXbp0SZLk7++vp556Si+88IKtsgAAAHAoa8HVz89Pc+bM0ZQpU7R3715JUkxMjEJC
+QmyVBAAAgINZC675qlevrrZt29ouAwAAAIerkDtnAQAAANeL4AoAAACvYCW4Xrp0SatWrVJGRoaN
+7gEAAHATshJc/fz89OCDDyo7O9tG9wAAALgJWQmuLpdLd9xxhw4cOGCjewAAANyErK1xTUpK0ujR
+o7Vq1SodOXJEGRkZBb4AAACAsrC2HVafPn0kSX379i3yuDHGVmkAAAA4kLXgmpqaaqtrAAAA3ISs
+BddOnTrZ6hoAAAA3oQrZxzUrK0t5eXkVUQoAAAAOZS245ubmauLEiapZs6aqVaum/fv3S5ISExO1
+YMECW2UBAADgUNaCa0JCgpYtW6bZs2fL7XZ72ps2bapFixbZKgsAAACHshZcFy1apPnz56t///7y
+9fX1tLds2VK7du2yVRYAAAAOZS24pqenKyoqqlC7v7+/Ll68aKssAAAAHMpacG3QoIH27NlTqD0t
+LU3R0dG2ygIAAMChrAXX4cOHa/To0dq8ebMk6dixY1q6dKnGjBmjESNG2CoLAAAAh7K2j2t8fLwy
+MzPVtWtX5eTkqH379nK73Ro/fryGDBliqywAAAAcylpwdblceumll/Tcc89p9+7dysvLU2xsrIKD
+g22VBAAAgINZC675goKC1KJFC0lSYGCg7XIAAABwKKt3zlq4cKFiYmLkdrvldrsVExOjd955x2ZJ
+AAAAOJS14PrGG29oxIgRuv/++/XJJ5/ok08+Ub9+/fT0009r9uzZtsoCAADAoawtFZgxY4bmzJmj
+//iP//C09e7dW02aNFFSUhI7CwAAAKBMrF1xPXHihLp161ao/b777tPx48dtlQUAAIBDWQuucXFx
+Rd7adceOHbrrrrtslQUAAIBDletSgYyMDM/3iYmJGjFihDIzM9WxY0cZY7Rx40YlJiZq7ty55VkW
+AAAAN4FyDa4RERGF2h599NFCbd27d5cxpjxLAwAAwOHKNbimpqaWZ3cAAACAR7kG106dOpVndwAA
+AICH9TtnXb58WVlZWYWWBoSGhtouDQAAAAextqvA//zP/6hr165yu90KDQ1VWFhYgS8AAACgLKxd
+cR0wYICqVKmiZcuWKTw83FYZAAAA3CSsBdddu3Zp165datq0qa0Sv0vVqlUrvO+ytuPGxOsFAEDl
+shZcmzdvrlOnTtnq/nfLzs4up56Ci+m7rO24MfF6AQBwPYKDC7+XXi9rwXXOnDkaN26cEhMTFRsb
+Kx+fgstpveXDWTNmFH7Sx47NqoSRAAAA3JiKyksvvVT+dawF1/DwcJ09e1YdOnQo8jg3IAAAAEBZ
+WP9w1kcffcSHswAAAHDdrAXXnTt3aufOnTfch7MAAADgnazt49qsWTNlZmba6h4AAAA3GWvBdcqU
+KRozZoxSU1N14sQJZWRkFPgCAAAAysLaUoFevXpJkrp06VLkcT6cBQAAgLKwFlxTU1NtdQ0AAICb
+kLXg2qlTJ1tdAwAA4CZkLbiWdNcsb7kBAQAAAG4M1oJrWFjYNY+zxhUAAABlUWFrXPPy8vTDDz9o
+1qxZesnGPcAAAADgaBW6xrVLly5q3Lix/vKXv+jRRx+1VRoAAAAOZG0f1+LExMToyy+/rOiyAAAA
+8HLWrrgWdZOB9PR0JSYmKjIy0lZZAAAAOJS14BoREVFs+7Jly2yVBQAAgENV2IezXC6XQkJC1Lx5
+c/n7+9sqCwAAAIcq9+Cav39rXFxckcezs7MlsY8rAAAAyqbcg2tJ+7fmYx9XAAAAlEW5B9erlwjk
+M8ZoxYoVmj9/voKCgsq7LAAAAByu3IPr1fu3GmP08ccfKyEhQYcOHdKECRM0atSo8i4LAAAAh7P2
+4ayrA+uYMWM0atQohYSE2CoJAAAAByv34GqM0d///nclJCTo4MGDGj16tEaPHk1gBQAAwHUp9+B6
+1113ae/evRoyZIiSk5MVEhKiixcvFrohQXh4eHmXBgAAgIOVe3Ddvn27JOnNN9/Um2++Wezj2FUA
+AAAAZVFhuwoAAAAA18P6rgIAAABAefCp7AEAAAAApUFwBQAAgFcguAIAAMArEFwBAADgFQiuAAAA
+8AoEVwAAAHgFgisAAAC8AsEVAAAAXoHgCgAAAK9AcAUAAIBXILgCAADAKxBcAQAA4BUIrgAAAPAK
+BFcAAAB4BYIrAAAAvALBFQAAAF6B4AoAAACvQHAFAACAVyC4AgAAwCv4VfYAytPZs2f1/PPPKyMj
+QxEREZo6daqqVq1a2cMCAABAOXDUFdcFCxaoTZs2Wr58uVq3bq2FCxdW9pAAAABQThwVXDdt2qSe
+PXtKknr37q2vvvpKktSqVSvPFwAAALyTo5YKnDhxQhEREZKk8PBwZWRkSJK+++47z2OysrIqZWwA
+AAC4TsZBOnToYPLy8jw/d+7cucjHtWzZknbaaaeddtppp532CmgvT44Krn/605/M8ePHjTHGpKen
+m4cffriSR1RQRbyg1KUudalLXepSl7pO5ag1ru3atdPq1aslSZ9++qnatWtXySMCAABAeXEZY0xl
+D6K8nDlzRuPHj9fJkycVHh6uqVOnqlq1apU9LAAAAJQDRwVXAAAAOJejlgoAAADAuRy1HRb+z7x5
+85SSkqL09HRt2bKlwDGn3WHsu+++0+uvv67Lly/Lx8dH48eP15133inJeXPN9+GHHyo5OVkul0uS
+NHLkSN1zzz2SnDtnSXrttdeUnJxc4Jx24nzbtWunBg0aSJL+/d//XX369JHkzLnmmzdvntatWydj
+jB5++GE98sgjkpw759dff92zVeP58+eVmZmp1NRUR85348aNmjNnjiTJ5XJp+PDh6tChgyRnvr77
+9u1TQkKCcnNzFRkZqaSkJAUFBUly5nwrXKV+NAzW7Nq1y5w4ccLce++9hY69/vrr5t133zXGGPPu
+u++aWbNmVfTwytXPP/9sTp48aYwxZtu2beaBBx7wHHPaXPNlZ2d7vt+/f7/p3r2752enzvn77783
+zz//fKFz2onzLerv1hhnztUYYz7++GPz4osvmsuXLxtjjMnMzPQcc+qcr7R8+XKTkJBgjHHmfLt3
+725++eUXY4wxBw4cMD169PAcc+J8Bw4caL766itjjDFff/21eeONNzzHnDjfisZSAYdq3ry552YM
+VyvuDmPeqlGjRqpRo4Yk6Y477tDJkyc9x5w213z5/3qXpHPnzumWW27x/OzEOV+8eFGzZs3S2LFj
+Cx1z4nyL49S5rlixQk888YR8fH57SwoNDfUcc+qcr7RmzRrPHJ0433r16nlu/nP27FnVqVPHc8yJ
+8z148KDatm0rSbr77rsLzMmJ861oLBW4CRV3hzEnWLlypee/zCVnz3X58uVavny5cnJy9Pbbb3va
+nTjnt956Sw8++KDnHyhXcuJ8jTEaMGCAgoOD9fzzz6thw4aSnDlX6bc3+s8++0wbNmxQWFiYJkyY
+oMjISEnOnXO+I0eO6MiRI55bkjtxvi+//LIGDx4sl8slY4zmz5/vOebE+TZq1Ehr165Vr169tHbt
+Wh07dsxzzInzrWhccYVj7Nu3T0uWLNGYMWMqeygV4s9//rM+/vhjxcfHa9q0aZU9HGv27NmjvXv3
+ql+/fpU9lAqTkpKipUuX6o9//KOSkpIqezjWXb58WfXr19fy5cv1wAMPKDExsbKHVGE+//xzdevW
+zXO12Ylee+01xcfH65NPPtHo0aM1ffr0yh6SVZMnT9aKFSv0b//2b/r555/l6+tb2UNyFOf+paBY
+ERERSk9PlyRlZGQoPDy8kkd0/Y4fP67nn39er776aoElEk6c69V69uypH374wfOz0+a8fft27d+/
+X3379lXfvn11/vx59e3bV3l5eZKcN19JCgsLkyT16NFDv/zyi6fdiXOVpFtvvVXdu3eXJHXr1k0/
+/fST55hT55zvymUCkjPn+49//EPdunWT9Nvru2PHDs8xJ8739ttv19tvv60PPvhA/fr102233eY5
+5sT5VjSC603IaXcYy87O1pgxYzR69GjFxMQUOOa0ueY7cuSI5/u0tDTPfyVLzpvzgAEDtHr1aqWk
+pCglJUVut1spKSmeK1ROm++pU6dk/v/22l999ZXq16/vOea0ueZr166dtm7dKum3XUKufKN36pwl
+af/+/Tp37pyaN2/uaXPifOvVq+d5fbds2aK6det6jjlxvqdPn5b025Kfd955R3379vUcc+J8Kxo3
+IHCo2bNn69NPP1V6eroiIiLUu3dvjRgxQpLz7jC2ZMkSvf322541cZL0/vvvy8fHx3Fzzffqq69q
++/btMsYoNDS0wDpIp845X/v27fXll196fnbafFevXq1FixZJktxutyZNmqSmTZtKct5c82VlZWny
+5Mn65z//KX9/f7344ouOn7MkzZ07V8YYDRs2zNPmxPnu3r1br7zyii5evKiAgABNnDhRsbGxkpw5
+37/97W9atmyZfH191aFDBw0fPtyzdaET51vRCK4AAADwCiwVAAAAgFcguAIAAMArEFwBAADgFQiu
+AAAA8AoEVwAAAHgFgisAOMCGDRvkcrnK9RaSNvq8UlJSkgYOHGilbxTWsmVL/e1vf6vsYQDXheAK
+WJT/xh8SEqJz584VOPbjjz/K5XLJ5XLp1KlTlTRCoHjt2rXT0aNHVbNmTUn/dz6Xx/n6r3/9SzNm
+zNCkSZM8bfn9u1wu+fj4KDQ0VG3atFFSUpLOnj1b6HFXB+qrx/fLL7/okUceUUREhPz8/BQeHq6O
+HTt6NoDPr3WtLyeZMGGCJk+eLHbBhDcjuAIVIDQ0VB999FGBtoULFxa4QxBwowkICNCtt95qJcAt
+XLhQsbGxio6OLnRs9+7dOnLkiLZu3apnnnlGK1as0F133eW5VWZpnD9/Xp06dVJWVpZWrVqlgwcP
+6osvvtCf/vQnZWZmSpKOHj3q+UpOTpYk7du3r0D7jSI3N/e6++jbt6+OHz+utWvXlsOIgMpBcAUq
+wKBBgzx3Q5KkS5cuacmSJRo0aFChx77xxhuKiopSQECA6tWrpxdeeEGXL1/2HH/33XcVFxenwMBA
+hYWFaeDAgQWugOVfdfr888/VsmVLBQYGqnXr1tq3b1+x45s3b55uu+02+fn5qW7dupo5c2aZxpSb
+m6uxY8cqIiJCVatWVb9+/fT+++97rn4VdYWsqKt3JdUpzdzy8vL02muvqXHjxgoICFCdOnWUmJhY
+pvlcraQ+c3NzNWnSJEVGRiogIEBRUVFauHBhgT7yx75mzRq1atVKbrdbd999t3755Rdt2bJFrVu3
+ltvtVuvWrfXTTz8V+r0vvvhC7dq1k9vtVv369TV79uxix1uaeaanp6t27dpKSEjwPH7nzp1yu92e
+f2Rd/bp17txZkhQWFlbgimRiYmKB25bmu+eeexQfH1/k2JYvX67777+/yGO1atXSrbfeqqZNm+rP
+f/6zvv76a/n6+urFF18scc75tm/frv/93//VX//6V7Vt21Z169ZVXFyc4uPj1b9/f0nSrbfe6vmq
+UaNGgdr5X0W51t9LeZ4rn332mdq0aaOAgADPVeKSzt1rjS0gIEA9e/bUBx98UOrnEbjhGADWpKam
+Gklm3759xu12m59//tkYY8x///d/m9tvv92sX7/eSDKZmZnGGGNefPFFExUVZT799FNz+PBhs3bt
+WtOgQQMzYcIET5/vvfeeWbdunTl06JDZsGGDad68uRk4cGChmu3atTObN282P/74o7n77rtNp06d
+ihzjr7/+alwul3n11VfNgQMHzLfffmtWrlzpOV6aMcXHx5tatWqZlStXmoMHD5p58+aZ8PBwz9zy
+x5Senl5onGWZe2nm9txzz5mwsDCzbNkyc+jQIfPtt9+axYsXl2k+Vyupz2HDhpmIiAjP/OfPn28C
+AwPNokWLCo397rvvNps2bTJ79+417dq1My1btjSdOnUy33zzjaeta9euhX6vcePGpeo//zkuzTxX
+r15t/P39zaZNm8y5c+dMs2bNzKBBg4rtMzk52XM+Hz161Bw9etQYY8zhw4eNr6+v2bJli+d39+7d
+aySZHTt2FHo+z5w5Y1wul1m3bl2B9qLOk3wzZ840tWvXvubjrjynDhw4YFwul5k6daq5dOlSof6u
+dvX5WJyS/l7K81yJi4szGzZsMAcOHDDp6eklvqYljS3/ebz99ttLfD6AGxXBFbDoyjfYRx55xPMG
+06dPH5OUlFTgzTI7O9tUqVLFbNq0qUAfS5cuNTVq1Ci2xooVK0zVqlVNXqo/+yoAAAiuSURBVF5e
+gZrr16/3POaDDz4wfn5+Rb6Bf/vtt8UGjNKM6fTp0yYgIMC89957BR4zduzYUgfX0s69pLmdOXPG
+BAYGmnfeeafI5+r3PMcl9Xnq1Cnj7+9faP7PPfeciYqKKjT2K8Pahx9+aCSZtLS0Am1+fn4mNze3
+wO8V1X90dHSh/tPT08s0z1GjRpmGDRuaQYMGmUaNGpmzZ88W2eeVPxcV7vr06WOGDh1aYHytWrUq
+8jn7/vvvjSTz008/FWi/VnD97LPPjCRz4cKFUgVXY4yZNWuWCQoKMsHBwebee+81zz77rPn222+L
+HFNpg+u1/l7K+1y5MnSW5jW91tjyJScnG5fLZS5evHjNeQI3KoIrYNGVb7Br1qwx9erVM4cOHTIB
+AQHm8OHDBd4st27daiSZqlWrFvhyu91GkidQfPXVV6Zr164mIiLCBAcHe46fOXOmQM3jx48XGsep
+U6cKjfHSpUumdevWpnr16mbgwIHmww8/9ISm0oxpy5YtRpI5ePBggX4/+eSTUgfX0s69pLkVN5Z8
+pa1zpZL6/Oabb645//Pnz5c49pMnTxb7WuX/XNr+09PTyzTP8+fPm6ioKOPj42O++eabAjXKElw/
+/vhjU716dXPu3DmTm5trateubebOnVvkc5aWlmYkea7YFlfvSp9++mmZg6sxv4XJVatWmaSkJNOt
+WzfjcrnMzJkzC/Vf2uB6rb+X8j5X/vnPf3oeU5rX9Fpjy7d27VojyfzrX/+65jyBG5VfGVYVALgO
+3bp1k4+Pjx577DF16dJF9erV088//+w5npeXJ0lavXp1kWvrgoKCdOrUKfXq1UsPPvigkpKSFB4e
+rs2bN+vxxx8vtEbTx6fwEnZTxKeJ/fz89PXXX2vNmjVavXq1hg4dqqVLl2rFihWlGlO+a32Ap6hj
++X1f+X1p6kiln1txNUtbx4aixl6a+ZTlA1JlmeeBAwd0+PBhuVwu7d+/X23bti11nSv16dNHQUFB
+Sk5OVvXq1XX69GkNGDCgyMcGBwdLks6ePVvsOtKr/fjjj6pTp44CAgIUEBAgSbpw4UKBx5w/f16S
+FBgY6GmrVq2a+vTpoz59+mjSpElKSkrS5MmTFR8fX+TzXpJr/b2Ut/x5SqV7TX18fEoc25kzZ+Ry
+uTyvAeBtCK5ABfHx8dGgQYOUmJhYaIcBSYqNjZXb7dahQ4d07733FtnHnj17dPbsWSUlJSkyMlKS
+9Pe///26x+bv768//OEP+sMf/qCOHTvqkUceUU5OTqnGFB0drYCAAG3cuLHAnpwbNmzwfB8SEiJJ
+ysjIUHh4uCTphx9+8BwvTZ3SiImJUWBgoNavX1/kB99+T52S+oyJiZG/v782btyoRx991NO+ceNG
+RUdHFwhR1+Pq5zctLa3Y/ks7z0uXLmnAgAHq16+f2rZtq2HDhumee+4pdrcLX19fSQX/0ZHPz8/P
+8yHE6tWr66GHHvK87ldr3LixXC6XDh48qCZNmlxz3pKUk5Ojt99+W3/84x8lSY0aNZLL5dLOnTtV
+t25dz+O2b9+uOnXqqEqVKsX21aJFC2VnZ+vSpUu/+7Up7u/F5rlS2te0uLHlPycHDx5Uw4YN5e/v
+/7vmDlQ2gitQgSZNmqSRI0d6PsF8peDgYI0fP14jR47U5cuX1aFDB126dEnbtm3Tvn379MILL6hB
+gwby9fXVm2++qWHDhmn79u164403rmtMW7du1datW9WtWzf5+fkpJSVFdevWldvtlsvlKnFMISEh
++s///E+NHTtWYWFhuuOOO7R27VotXrzYUyM2Nlbh4eFKSkrSK6+8or179xYYd2nmXhrVqlXTqFGj
+9Oyzz6pKlSpq166djh8/rt27d+vxxx//XXVK6vPq+d955536/PPPNWvWLM2dO/e6XpsrJSYmKiws
+TC1atNDatWs1a9asYncWKO08J0+erPT0dK1bt07Vq1fX6tWr9dhjj2n9+vVFXo2sX7++JGnlypXq
+06ePXC6X5x8ikjR48GBNmzZNPj4+WrduXbFzqVatmuLi4jzn3dVOnDih3NxcnT17Vt9//72mTZum
+y5cv66WXXpIk3XLLLbr//vv17LPPqmrVqrr99tv13Xffafr06Ro1apQk6euvv9bs2bP18MMPq0WL
+FgoMDNTOnTs1btw49erV63eH1pL+XmydK6V5Ta81tivH37Fjx981d+CGUMlLFQBHu9aavSuPX7mu
+bt68eaZFixYmICDAVK1a1bRp08bMnz/fc3zhwoWmdu3axu12m65du5rFixcX6KM0n+C/0p49e0zn
+zp1NtWrVjL+/v2nbtm2BT4eXZkwXL140Y8aMMTVr1jRVqlQxvXr1MkuWLClQc82aNaZRo0YmMDDQ
+dOnSxbz33ntlnntp5nb58mUzZcoU06BBA+Pr62vq1q1rkpKSyjSfq5XU56VLl8yECRNM3bp1jb+/
+v2natGmh/kr7ulzdlv/zmjVrTNu2bU1gYKCJjIw0s2bNKrH/a81zw4YNxs/Pz6Smpnoef/ToURMR
+EWGmTJlSbJ8vv/yyqV27tvHx8TFFvYV07tzZNGnSpNjnMt/UqVNNmzZtipyDJONyuUxISIhp1aqV
+SUhIMKdPny7w2NOnT5uhQ4eaWrVqGT8/P1O/fn2TmJjoWdN55MgR89RTT5mYmBgTGBho/P39TcOG
+Dc3o0aML9VXU816ckv5ebJ0r+a71mpY0tgsXLpiwsDCzevXqa84RuJG5jOEWGgDK34YNG9S5c2dl
+ZmYqNDS0sofjtfKfx/T09AJXN29U0dHReuKJJzRu3LhrPu7kyZNq2LChvvnmGzVr1qyCRndzS05O
+1sSJEz137QO8ETcgAABct/T0dP31r3/VoUOH9MQTT5T4+Jo1a2rs2LF65ZVXKmB0kKQpU6YoKSmJ
+0AqvxhpXAMB1q1WrlsLDwzV37lzVqlWrVL9T2rXLKB/btm2r7CEA142lAgAAAPAK/w/5pT4YTK6I
+dwAAAABJRU5ErkJggg==
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,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
+KSnR1KlTFRUVpYYNG2rIkCF66623PGe9KvqvzIrOilVVpzpjKy0t1fPPP6+2bdsqKChI1157rVJS
+Umo0notVtc6SkhI99thjio6OVlBQkGJiYrRkyZJy6yjr+9q1a9W5c2e53W7deuut+u6777R161Z1
+6dJFbrdbXbp00TfffOP1e5988om6d+8ut9ut66+/XvPmzau0v9UZZ15enlq0aKHk5GTP63ft2iW3
+2+35R9bF+61Pnz6SpIiICM+ZUElKSUkp90jSMrfddpsmTpxYYd9WrFih3//+9xUua9asmZo3b17u
+y9/fv1yfLvUeqKyfF/7+Rx99pK5duyooKEhr1qyp0T681L6o6bZ47bXXdM0113i9/4YNG6YhQ4ZI
+qvqYr6iPl3usXepvQlBQkAYOHKi33367wj4A9c4A+FWysrKMJLNv3z7jdrvNt99+a4wx5n//93/N
+DTfcYDZs2GAkmYKCAmOMMU8++aSJiYkxH374oTl06JBZt26dad26tZkxY4ZnnW+++aZZv369OXjw
+oNm4caPp2LGjGT58uFfN7t27my1btpivv/7a3HrrraZ3794V9vH77783LpfLPPPMM2b//v3miy++
+MKtXr/Ysr06fJk6caJo1a2ZWr15tDhw4YBYuXGgiIyM9YyvrU15enlc/azL26oxt2rRpJiIiwixf
+vtwcPHjQfPHFF2bp0qU1Gs/Fqlrn2LFjTVRUlGf8ixYtMsHBwSYtLc2r77feeqvZvHmzycnJMd27
+dzedOnUyvXv3Np9//rmnLTEx0ev32rZtW631l23j6oxzzZo1JjAw0GzevNmcPn3adOjQwYwYMaLS
+dWZkZHjez4cPHzaHDx82xhhz6NAh4+/vb7Zu3er53ZycHCPJ7Ny502t7njhxwrhcLrN+/fpy7RW9
+Ty5WnfdAZf288PcTEhLMxo0bzf79+01eXl6N9uGl9kVNt8WPP/5ogoKCzEcffeRpO3nypAkJCTFv
+v/22Mab6x3xeXl6tHGtV/U0wxpg5c+aYG264odL9BNQngivwK134IXLvvfd6PhgGDx5sUlNTy32g
+FBUVmQYNGpjNmzeXW0d6erpp0qRJpTVWrVplGjZsaEpLS8vV3LBhg+c1b7/9tgkICDDnzp3z+v0v
+vvii0g/V6vTpp59+MkFBQebNN98s95qpU6dWO7hWd+xVje3EiRMmODjYvP766xVuq1+zjataZ2Fh
+oQkMDPQa/7Rp00xMTIxX3y8Ma++8846RZLKzs8u1BQQEmJKSknK/V9H6Y1UqXJwAAAfRSURBVGNj
+vdafl5dXo3FOmjTJtGnTxowYMcLceOON5uTJkxWu88KfywLQhQYPHmzGjBlTrn+dO3eucJv9/e9/
+N5LMN998U669bP0NGzYs99WyZUuv11zq/X2pfpYtuzCI1XQfVrUvarItjDHmD3/4Q7kgumzZMhMW
+FmaKi4srfH1lx3x1gmt13huX+ptQJiMjw7hcLnP27NlKXwPUF4Ir8Ctd+CGydu1a06pVK3Pw4EET
+FBRkDh06VO4DZdu2bRV+aLvdbiPJEyg+++wzk5iYaKKiokxoaKhn+YkTJ8rVPHr0qFc/CgsLvfp4
+7tw506VLF9O4cWMzfPhw884773hCU3X6tHXrViPJHDhwoNx6P/jgg2oH1+qOvaqxVdaXMtWtc6Gq
+1vn5559fcvxnzpypsu/Hjx+vdF+V/Vzd9efl5dVonGfOnDExMTHGz8/PfP755+Vq1CS4vvvuu6Zx
+48bm9OnTpqSkxLRo0cIsWLCgwm2WnZ1tJJU7E3rh+rdt22a++eYbz1dubq7Xay71/q5OcP3nP//p
+aavpPqzqdTXZFsYYs3LlShMaGmqKioqMMcYMHDjQjBw50rO8usd8dYJrdd4bl/qbUGbdunVGkvnx
+xx8rHRdQXwKqvpgAQFX69esnPz8/3X///erbt69atWqlb7/91rO8tLRUkrRmzRo1b97c6/dDQkJU
+WFioO+64Q3fddZdSU1MVGRmpLVu26IEHHvC6Rs7Pz/vydFPBXcABAQH629/+prVr12rNmjUaM2aM
+0tPTtWrVqmr1qcylbuCpaFnZui/8vjp1pOqPrbKa1a1jQ0V9r854anKDVE3GuX//fh06dEgul0u5
+ubnq1q1btetcaPDgwQoJCVFGRoYaN26sn376ScOGDavwtaGhoZKkkydPVti/Nm3aKDIy8pL1fu17
+oExQUFC1X3uxqvZFTbaF9MvNTv7+/nrvvfeUmJioTz75RGvXrpWkGh3zlfWtpsean59fpX8Typw4
+cUIul8uzL4ErCcEVqAV+fn4aMWKEUlJSvGYYkKT4+Hi53W4dPHhQv/3tbytcx969e3Xy5EmlpqYq
+OjpakvTee+9ddt8CAwP1u9/9Tr/73e/Uq1cv3XvvvSouLq5Wn2JjYxUUFKRNmzaVm5Nz48aNnu/D
+wsIkSfn5+Z5A8tVXX3mWV6dOdcTFxSk4OFgbNmyo8Ma3X1OnqnXGxcUpMDBQmzZt0n333edp37Rp
+k2JjYxUcHPxrh1POxds3Ozu70vVXd5znzp3z3ATUrVs3jR07Vrfddluls12U3SB1YRAqExAQ4LkJ
+sXHjxrr77rs9+/1ibdu2lcvl0oEDB6zMFnCpflakpvuwqn1Rk20hScHBwfrjH/+ov/zlL8rPz1fz
+5s3Vu3dvSTU/5mvrWKvsb0KDBg0kSQcOHFCbNm0UGBhY6TqA+kJwBWrJY489pgkTJqhJkyZey0JD
+QzV9+nRNmDBB58+fV8+ePXXu3Dlt375d+/bt0xNPPKHWrVvL399fr7zyisaOHasdO3bo5Zdfvqw+
+bdu2Tdu2bVO/fv0UEBCgzMxMtWzZUm63Wy6Xq8o+hYWF6b/+6780depURURE6KabbtK6deu0dOlS
+T434+HhFRkYqNTVVTz/9tHJycsr1uzpjr45GjRpp0qRJ+u///m81aNBA3bt319GjR7Vnzx498MAD
+v6pOVeu8ePy33HKLPv74Y82dO1cLFiy4rH1zoZSUFEVEROjmm2/WunXrNHfu3EpnFqjuOB9//HHl
+5eVp/fr1aty4sdasWaP7779fGzZsqPCM5vXXXy9JWr16tQYPHiyXy1XuzOioUaP03HPPyc/PT+vX
+r690LI0aNVJCQoLnfXexY8eOeU1R1aRJk2qfJa2qnxer6T6szr6o7rYoM3z4cN1+++36/vvvNXTo
+UM/2r+kxXxvH2qX+JpTZtm2bevXqVeW4gHpRv1cqAL6rqrukK7oWb+HChebmm282QUFBpmHDhqZr
+165m0aJFnuVLliwxLVq0MG632yQmJpqlS5eWW0d17iq+0N69e02fPn1Mo0aNTGBgoOnWrVu5O6Kr
+06ezZ8+aKVOmmKZNm5oGDRqYO+64wyxbtqxczbVr15obb7zRBAcHm759+5o333yzxmOvztjOnz9v
+Zs+ebVq3bm38/f1Ny5YtTWpqao3Gc7Gq1nnu3DkzY8YM07JlSxMYGGjat2/vtb7q7peL28p+Xrt2
+renWrZsJDg420dHRZu7cuVWu/1Lj3LhxowkICDBZWVme1x8+fNhERUWZ2bNnV7rOp556yrRo0cL4
++fmZij4e+vTpY9q1a1fptizz7LPPmq5du1Y4hoq+yu66r+52rKyflR2TNdmHVe2Lmm4LY355j7Vq
+1arCm6Jqesxf7rFW1d+En3/+2URERJg1a9ZUa2xAXXMZw+MxANTMxo0b1adPHxUUFCg8PLy+u+Oz
+yrZjXl5eldd9XgliY2M1cuRIPfLII5d83fHjx9WmTRt9/vnn6tChQx317vLUdF9Ud1v4moyMDM2c
+OdPz9D/gSsMDCAAAl5SXl6f/+Z//0cGDBzVy5MgqX9+0aVNNnTpVTz/9dB30rm7VdFv4mtmzZys1
+NZXQiisW17gCAC6pWbNmioyM1IIFC9SsWbNq/U51r132Nb9mW/iS7du313cXgEviUgEAAAD4hP8H
+TJ6nMoQjENwAAAAASUVORK5CYII=
+" />
+</div><hr><div class="info-header"><span class="info-header-title">Dinucleotide Odds Ratios</span></div><div class="info-content"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="info-table-type">&nbsp;</td><td class="info-table-value">AA/TT</td><td class="info-table-value">AC/GT</td><td class="info-table-value">AG/CT</td><td class="info-table-value">AT</td><td class="info-table-value">CA/TG</td><td class="info-table-value">CC/GG</td><td class="info-table-value">CG</td><td class="info-table-value">GA/TC</td><td class="info-table-value">GC</td><td class="info-table-value">TA</td></tr><tr><td class="info-table-type">Odds ratio</td><td class="info-table-value">0.3954</td><td class="info-table-value">2.4378</td><td class="info-table-value">0.4858</td><td class="info-table-value">0.3623</td><td class="info-table-value">1.0736</td><td class="info-table-value">0.3006</td><td class="info-table-value">1.9166</td><td class="info-table-value">0.4338</td><td class="info-table-value">0.5829</td><td class="info-table-value">1.8332</td></tr></tbody></table><br /><img border="0"  src="data:image/png;base64,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
+AABJRU5ErkJggg==
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,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
+m+stSQoNLVR0tEMREQWy2TxcIAAAcCIkuUlRkbRmjb8yMkq/5dnZ3srO9lZWVoHi4s7Ji2t7AABU
+C5yS3SQ93V4mIJWUkeGj9HS7GysCAADlISS5SVpaxRftXGkDAADcg5DkJrm5Fb/VrrQBAADuwVkZ
+AADAAiHJTUJDi6qkDQAAcA8mwbhJVFSBsrO9y20THV3g/H7ChAnasGGDvLy8dObMGeXm5urgwYNX
+u0wAAPD/EZLcJDLSoUOHvPX999ZveWRkgSIiHM7HiYmJkqSAgAD97W9/U1pamlvqBAAAvyAkuYnN
+JvXrd06NG/soLc2uY8d++aQzPLxIUVEO3XLLpReT/OijjzRp0iQ3VgsAAGzGGOPpIirrzJkzni7B
+bXJychQbG6vMzEx5e5f/cR0AANezwMDAKu2PidvV3KJFi3T//fcTkAAAcDNCUjW3aNEiDRgwwNNl
+AABw3SEkVWOZmZk6c+aMYmJiPF0KAADXHUJSNfbRRx9p0KBBni4DAIDrEhO3q7mAgADl5+d7ugwA
+AKo9Jm4DAAC4ASEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADA
+AiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJ
+AADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADA
+AiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJ
+AADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADA
+AiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJ
+AADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADAAiEJAADA
+AiEJAADAAiEJAADAAiEJAADAAiEJAADAgo+nC7jeGCOlp/toxw67cnO9JUmhoYWKjnYoIqJANpuH
+CwQAAJIISW5VVCStWeOvjIzSb3t2treys72VlVWguLhz8uL6HgAAHsfp2I3S0+1lAlJJGRk+Sk+3
+u7EiAABwKYQkN0pLq/jCnSttAADA1UdIcqPc3IrfblfaAACAq48zMgAAgAVCkhuFhhZVSRsAAHD1
+EZLcKCqqoMI20dGl2zz//PPq0qWLYmJiNGfOnKtVGgAAuAizhN0oMtKhQ4e89f331m97ZGSBIiIc
+zscLFixQVlaWUlNT5eXlpePHj7urVAAArns2Y4zxdBGVdebMGU+XcNmMkXbt8lFaml3Hjv1yIS88
+vEhRUQ7dckvpxSR79+6thQsXqlGjRh6qFgCAmiMwMLBK+yMkVWONGjXS2LFjtWzZMoWGhuq1115T
+8+bNPV0WAADVUlWHJOYkVWOFhYVq3bq1UlNTNXz4cP3hD3/wdEkAAFw3uJJUjXXu3Fk7duzQhQsX
+VFhYqCZNmujQoUOeLgsAgGqJK0nXkb59++qzzz6TJG3YsEGtWrXycEUAAFw/uJJUjeXl5Wn06NHa
+u3evfH199eabb6p9+/aeLgsAgGqJiduqeSHJGCk93Uc7dtiVm+stSQoNLVR0tEMREaXvaLtYQECA
+8vPz3VQpAAA1V1WHpCpdJ+n06dOaOHGicnNzFRYWpsTERAUEBJRqs23bNs2YMUOFhYXy8vLShAkT
+FB0dLUmaMWOGtm3bJkk6d+6cfvrpJ61fv74qS3S7oiJpzRp/ZWSUfquzs72Vne2trKwCxcWdkxcf
+fAIAUK1U6ZWkmTNnql69eho2bJgWLFigkydPauzYsaXa7N27V8HBwQoJCdG3336radOmadmyZWX6
++vDDD7V7924999xzZfbVpCtJO3fatXatX7lt+vU7r/btHZb7uJIEAIBrqvXE7U2bNumuu+6SJPXv
+318bN24s06ZFixYKCQmRJLVv3/6Sq0ivXbvW2VdNlpZW8cU6V9oAAAD3qtKz87FjxxQWFiZJCg0N
+VW5ubrntV6xYoR49epTZfvjwYR0+fFgxMTHObSW/T0lJqZqC3SA3t+Ic6kobAADgXh67hLF7924t
+XLhQ8+bNK7Pv008/VZ8+feRVYqJO8VwlqWZ93AYAAGqmy76EsXjxYg0ePFiDBw9WTk6OJCksLMz5
+fW5urkJDQy2fe/ToUU2cOFHTp093Xnkq6Vr5qE2SQkOLqqQNAABwr8sOSQMGDFBSUpKSkpKcQSc2
+NlbJycmSpNWrVys2NrbM8/Lz8/Xkk0/qiSeeULt27crs/+9//6uzZ88qMjLyckurVqKiCipsEx1d
+us2LL76oLl26KCYmRrNnz75apQEAgHJU6WSYUaNGKTU1VQMHDtQ333yjkSNHOveNGDFCkrRs2TId
+OHBAb731lvNKVFHR/66krF27Vv369avKsjwqMtKhyMhLB6XIyAJFRPzvzrYFCxbowIEDSk1N1bZt
+2/S73/3OHWUCAICLsJikGxgj7drlo7Q0u44d+yWXhocXKSrKoVtuKb2YZO/evTV37lznnyBhCQAA
+AFzDituqeSGpMho1aqQxY8Zo1apVCg0N1bx581S/fn1PlwUAQLVXrddJwpUrLCxUq1atlJqaquHD
+h5f6yBIAALgPV5Kqmc6dO2vTpk2y2+0qLCzUzTffrIMHD3q6LAAAqj2uJF3j+vbt6/x7dRs2bFDr
+1q09XBEAANcnriRVM3l5eRo5cqSysrLk6+ur+fPnq2XLlp4uCwCAao+J2y6KiYkptUp3TXWtjAMA
+gMvhyfMgH7cBAABYICQBAABYuGY/bgMAALgSXEkCAACwQEgCAACw4OPpAi7X6dOnNXHiROXm5ios
+LEyJiYkKCAgo1Wbbtm2aMWOGCgsL5eXlpQkTJig6OlqStHv3bk2dOlUFBQVq3LixEhISVLt2bU8M
+pVyujBMAgJqmvHN0SbGxsWratKkkaciQIYqPj5fknvN4jZ2TNHPmTNWrV0/Dhg3TggULdPLkSY0d
+O7ZUm7179yo4OFghISH69ttvNW3aNC1btkyS9PDDD2vMmDHq0aOHNm3apO3bt+vxxx/3xFDK5co4
+AQCoaco7R5d022236auvviqz3R3n8Rr7cdumTZt01113SZL69++vjRs3lmnTokULhYSESJLat2+v
+48ePO/dlZWWpa9eukqRu3bpZPr86cGWcAADUNOWdo13hjvN4jQ1Jx44dU1hYmCQpNDRUubm55bZf
+sWKFevTo4XzcokULrVu3TpK0bt06HTly5OoVewUqO04AAGqai8/RJRljNHjwYD366KP68ccfndvd
+cR6vsSGpMnbv3q2FCxfqySefdG6bPHmyli9froEDB2rPnj3y9vb2YIUAAFyfrM7RJa1cuVJJSUm6
+7777lJCQ4NzujvN4jZi4vXjxYn388ceSpFmzZiksLExhYWHKyclReHi4cnNzFRoaavnco0ePauLE
+iZo+fbrziowkNW/eXHPnzpUkHThwQFu3br36A7kMro4TAICa5lLn6JKCg4MlSf369dPLL7/s3O6O
+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
+W7c691d0jFR2/CWPWVfHXJ5vv/3WSDL/+c9/Sm0/fPiw+dWvfmW8vb2NzWYz9957r/OXjAsXLpjG
+jRubu+++2xw+fNgYY0xmZqbp0KGD82qTMcasWrXKdOjQwdx4442mZ8+eZufOnWbhwoUmJibGbNmy
+xcTGxprGjRub+Ph4c+jQoVKvv3TpUmOz2ZxXf4HKYk4SrhkdOnRQ586ddfvtt+vhhx/WRx99pMLC
+wivqs2nTpgoMDFR4eLjy8/P1z3/+s0ybTp06udRXRESE8/vw8HAVFBQoPz9fGRkZOn/+vO64445K
+19ezZ88yjzMzM3X+/HlJ0tdff60+ffooPDxcQUFBGjRokPLz83XmzJlKv9alZGZmyuFwWNaye/du
+Zy3FIiMjnd+HhYVJKv3ehIWFqaCgoEyN5Y21sjVc6meRnp6un3/+Wb/+9a8VGBjo/BoxYoROnDhR
+pqZL9VNZY8eO1ZEjR7Ro0SL169dPO3bsUJcuXfTqq69KUoXHSGXHX/KYreyYrRS3CQwMLLV9+PDh
+Cg0N1ZYtW5SSkqI9e/boueeekyTZ7XZ98sknOnLkiBo0aCB/f3/dddddiouLkyR5e3tLkuLj4/Xv
+f/9bR44cUUpKiho0aKDx48dr9uzZuv/++3XPPfdo3759qlOnjoYPH17q9evUqSNjTJUe77i++Hi6
+AKCq+Pj46Ouvv9batWuVnJys0aNHKykpScuXL7/sPtevX6+QkBDVrVv3kneW+fr6utSXl1fZ30nM
+Fd55U95E7pMnTyouLk4PPPCAEhISFBoaqs2bN+uRRx5xKTy2bNlSNptNu3btUqNGja6ozpKs3gdX
+3puqnLR+qdcrKiqSJCUnJ+umm24q06Z27dou9XM5goKCFB8fr/j4eE2aNEkJCQmaPHmyxo4de1n9
+lafkMVvZMVspDkenT5929pGWlqa1a9fq+++/d4bJqVOnasiQIZo2bZrsdrvat2+vrVu36sSJEzp7
+9qwaNmyoN954Q40aNbrkv6u//OUvGjJkiHx8fHTo0CENHTpUXl5eGjx4sO677z45HA7Z7XZJUl5e
+nmw2W5nwBriKK0m4ptjtdt19992aPXu25syZo48//lg///yzpP/9Zlp8UnBFs2bN1KJFi6t66327
+du3k5+enL774otLP/fLLL0s93rBhg9q2bSs/Pz/t2rVLp0+fVkJCgrp3765WrVrp2LFjLvddr149
+9enTx3k142LFt7a3a9dOdru9TC1ffvmls5aqUN5Yq6qGiIgrkX8VAAAECUlEQVQI+fv7a//+/WrZ
+smWZL6tQdCmXc7yVFBUVpfz8fDkcjgqPkSsZf1WMuThQZ2VlObdduHBB0v/eh+LvCwoKygTJkJAQ
+NWrUSMYYLViwQL/97W8tX+fLL7/U+vXrNXXqVGfQdzgcztcrKioq9X5nZWWpWbNmztAEVBZXklCj
+fPfdd5KkPXv2SJJ27typoKAgdejQQVu2bNGWLVvUp08f+fj4aOXKlWrYsKH8/f0lSTfffLMkacWK
+FYqPj5fNZlNoaKhnBlJCUFCQ/vznP2vcuHGqVauWYmNjdfToUaWnp1e45MALL7yg4OBgRUVFad26
+dZo1a5Zmz54t6ZePCr29vfX666/rscce03fffafXXnutUrW98cYb6tGjh37zm99o3LhxatasmXJz
+c7V8+XJt375dn3zyierUqaNHH31UTz/9tIKDgxUdHa1PP/1Us2bN0ptvvnnZ70tlxlpVNQQGBmrC
+hAl6/PHHVVhYqNtvv10Oh0Pbt2/X7t27nR8VucLV4+3rr7/W7Nmz9dBDDykqKkp+fn5KS0vT//3f
+/ykuLk5+fn7y8/Mr9xi5kvFXxZhL/hvs06ePJKl9+/aqX7++xo8fr7/+9a86e/asXnjhBd1xxx3O
+q0RLlixRSEiIWrdurezsbCUmJur48eOWr3n+/HmNHj1ab7zxhmrXrq2oqCjVq1dPr7zyisaNG6e/
+//3vuvXWW0sFwi1btpT5CBKoFA/OhwIqTRa3VRcfxrt27TK9e/c2QUFBxm63m65du5pvvvmm1POn
+TZtm6tevb7y8vCq9BICrbS41ybpku4sn9RYWFpqXXnrJNG3a1Hh7e5uGDRuahISECvtcu3at6dq1
+q/Hz8zONGzc2s2bNKlXL22+/berXr2/8/f3NnXfeaebPn1/qdV0Z5/79+82oUaNMw4YNjY+PjwkL
+CzMPPfSQ2b59u7ONw+EwzzzzjGnYsKHz9vN58+ZV+H5ZTW6+eJurY63KGubMmWOioqKMr6+vCQgI
+MF26dCnVl6v9uHK8HT582IwZM8a0a9fO+Pn5Gbvdbpo1a2aeeOIJc+rUKWe7io6Ryx2/q2OuSGJi
+ounSpUupbdu3bze33Xab8fPzM4GBgeb+++93TtI25pe7zxo2bGi8vb1NeHi4GTly5CXvApwyZYoZ
+OHBgqW1ffPGFadOmjbHb7SY2Ntbs2bPHue/8+fMmODjYJCcnuzwG4GI2Y1iOFKhpUlJS1Lt3b+Xk
+5FSLq2FX0/U01prs+PHjatasmVJTU3XLLbd4uhwtXbpUzz77rDIyMty+CCuuHcxJAgBcsXr16unp
+p5/Wiy++6OlSJEkvvfSSEhISCEi4IsxJAgBUicrM2bratm/f7ukScA3g4zYAAAAL/w+im6Qv6dEQ
+2AAAAABJRU5ErkJggg==
+" />
+<br /><br /><img border="0"  src="data:image/png;base64,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
+1fU3KHXebV17bJ0/01gsz6WtGEhZKiGEcPbgcWp4fv75Z3zwwQdYuXKls798hugAACAASURBVEOp
+d4899hieeOIJh82542qaUluwpam0E8v6vnLlCtRqNVQqFTZs2IClS5fiu+++k11uUzl/NfH19TU+
+CUsNX5OaAoDsd8stt+D06dOKTibZEF24cAGnTp1q8hduW5pKW7ClKbUTy/reu3cvoqKiEBYWhlmz
+ZhmnKJGjKZ0/alzYk0REREQkgT1JRERERBKYJBERERFJYJJEREREJIFJEhEREZEEJklEREREEpgk
+EREREUlgkkREREQkgUkSERERkQQmSUREREQSmCQRERERSXB3dgC1cenSJWeH0CS0aNECf/31l7PD
+ICIisouPj4+i5bEniYiIiEgCkyQiIiIiCUySiIiIiCQwSSIiIiKS4JIDt60RAsjNdUdWlgcKCtwA
+ABpNJSIjK6DV6qFSOTlAIiIichmKJkmlpaWYPHkyCgoKEBgYiLlz56JFixbVtvvss8+wfv16qP7O
+Wp555hn06tULAPDWW2/ht99+AwCUlZWhqKgIGRkZNX63wQCkpamxf7/5IZ0544YzZ9yQl6dHYmIZ
+mrHvjIiIiOygEkIIpQp7++23ERAQgEceeQQff/wxiouL8eyzz1bb7vLly/D29gYAHD16FGPGjMGW
+LVuqbbdu3Tr88ccfmDJlitlyqSkAcnI8kJ7uaTO+hIRyRERUyDmkJo1TABARkStp0FMAZGZmol+/
+fgCA/v3746effpLcripBAq4lTK1bt5bcLj093VheTbKza+4Us2cbIiIiIkDh2235+fkIDAwEAGg0
+GhQUFFjddu3atVi7di2uXLmCDz/8sNr606dP4/Tp0+jevTsAGP8PAN9//3217QsKas737NmGiIiI
+CHDiwO1hw4Zh2LBhSE1Nxbx58/Duu++ard+yZQv69u2LZn8PIqoapwRwxm0iIiKqf4p2rQQGBuL8
++fMAgIKCAmg0mhr36devH/bu3VttuZxbbQCg0RgU2YaIiIgIUDhJio+Px9dffw0A2Lx5M+Lj4yW3
+O336tPHPP/zwAzp16mS2/siRI7h8+TLCw8Pt/m6dTl/jNpGReuN39urVC3FxcbjllluwY8cOu7+H
+iIiImgZFb7c9/vjjSEpKQmpqKjQaDebOnWtcN2rUKCxfvhwAkJKSgj179kAIAV9fX0ybNs2snPT0
+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
+2cOHD9fWrVuDuSsAANSJJQDgM25MCwBA/XG5DQAAwAIhCXWquDGtJG5MCwC4YBCSUCduTAsAuBAR
+kiCJG9MCAHAuvt2GGnGDWwBAKAn0t9sYSQIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIA
+ALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBA
+SAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIA
+ALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBA
+SAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIA
+ALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBA
+SAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIA
+ALBASAIAALBASAIAALBASAIAALBASAIAALAQ3tQF4PxnjJSbG64dOxxyueySJKezTH37upWY6JHN
+1sQFAgDQCAhJqFV5ubRuXZTy8qoeKoWFdhUW2lVQ4FFaWqnCGJMEADQznNpQq9xcR7WAVFleXrhy
+cx1BrAgAgOAgJKFWOTl1Dzb60gYAgFBDSEKtXK66D5EjRziMAADNT8DObidPntQf//hH/eY3v9H9
+99+vkpKSWts//fTTGjhwYJVte/bs0ZgxYzR69GhNmTJFP/30U6DKQyMqL7epvLypqwAAILACFpJe
+fvllDRgwQG+88YauvvpqLVy4sMa227ZtU1FRkSIiIqpsnzlzpu677z6tWLFCI0eOrLUPBIfTWXf6
+KS8X85IAAM1OwELSpk2bdMstt0iShg4dqo8//tiy3ZkzZ5SZmamHHnqo2nMFBQXe0aVBgwbV2AeC
+JznZ41O7inlJjzzyiFJSUpSSkqJ+/fqpU6dOjVkeAACNJmAzbg8fPqyYmBhJktPplMvlsmw3b948
+jRgxQu3atav2XPfu3bVhwwalpaVpw4YNOnjwoPe5/v37e3/fuHFjoMpGHZKS3NqwIbLOy2kVc5dm
+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
++A/NmTNH8+fP19tvv61Tp05Jkux2u6SfTwq+6Nq1q7p3796oX73v1auXIiMj9f777/v92g8++KDK
+4w8//FA9e/ZUZGSkdu/erZMnTyojI0PXXHONevToocOHD/vcd/v27XXTTTd5RzPOVfHV9l69esnh
+cFSr5YMPPvDWEgi17WugakhMTFRUVJT279+vyy+/vNqPVSiqSX2Ot8qSk5NVUlIit9td5zHSkP0P
+xD5XBOqCggLL51999VWdOXNGEydOrLEPX9pU7FN2drZmzJjhDftut1uSdObMGZWXl1f5zAsKCtS1
+a9c6gxdQE0aSEDK2b98uSdq7d68kaefOnWrdurX69eunzz77TJ999pluuukmhYeHa82aNYqPj1dU
+VJQk6dJLL5UkrV69WsOGDZPNZpPT6WyaHamkdevWevDBBzVlyhS1aNFCKSkpOnTokHJzc+tccuCJ
+J55Q27ZtlZycrA0bNigzM1Nz5syRdPZSod1u1wsvvKB7771X27dv1/PPP+9XbS+++KKuvfZa/frX
+v9aUKVPUtWtXuVwuvfXWW/riiy/097//XRdddJHuvvtuPfTQQ2rbtq369u2rf/zjH8rMzNTcuXPr
+/bn4s6+BqqFVq1Z65JFHdP/996usrEzXX3+93G63vvjiC+3Zs0f//d//7XNfvh5vn3zyiebMmaNR
+o0YpOTlZkZGRysnJ0cMPP6y0tDRFRkYqMjKy1mOkIfsfiH2u/G/wpptuqvKcMUZz587Vr3/9a8XH
+x1u+3pc2knT69GlNnDhRL774olq2bKnk5GS1b99ezzzzjKZMmaL//d//1XXXXVclFH722WfVLkMC
+fmnC+VCAX2TxteqKQ3j37t3mhhtuMK1btzYOh8MMHDjQfPrpp1VeP3PmTBMXF2fCwsL8XgLA1zY1
+TbKu3O7cSb1lZWXmr3/9q7nsssuM3W438fHxJiMjo84+169fbwYOHGgiIyNN586dTWZmZpVaFi5c
+aOLi4kxUVJS58cYbzaJFi6q8ry/7uX//fnPnnXea+Ph4Ex4ebmJiYsyoUaPMF1984W3jdrvNo48+
+auLj471fP3/ppZfq/LysJjefu83XfQ1kDfPnzzfJyckmIiLCREdHmwEDBlTpy9d+fDnefvjhB3PP
+PfeYXr16mcjISONwOEzXrl3NpEmTzI8//uhtV9cxUt/993Wf6zJ79mwzYMCAatuzsrKqTXKvTxtj
+zn7zMD09vcq2999/3yQkJBiHw2FSUlLM3r17vc+dPn3atG3b1mRlZfm8H8C5bMawHCkQSjZu3Kgb
+brhBR44cOS9GwxrThbSvoezo0aPq2rWrtmzZot69ezd1OZLOrtT92GOPKS8vL+gLsaL5YE4SAKBB
+2rdvr4ceekizZs1q6lK8/vrXvyojI4OAhAZhThIAoMH8mbMVDF988UVTl4BmgMttAAAAFv4fuETc
+00HhkB0AAAAASUVORK5CYII=
+" />
+</div></div></center></body></html>
\ No newline at end of file
Binary file tool-data/example1_cd.png has changed
Binary file tool-data/example1_ce.png has changed
Binary file tool-data/example1_df.png has changed
Binary file tool-data/example1_dl.png has changed
Binary file tool-data/example1_dm.png has changed
Binary file tool-data/example1_gc.png has changed
Binary file tool-data/example1_ld.png has changed
Binary file tool-data/example1_ns.png has changed
Binary file tool-data/example1_or.png has changed
Binary file tool-data/example1_pm.png has changed
Binary file tool-data/example1_pv.png has changed
Binary file tool-data/example1_qd.png has changed
Binary file tool-data/example1_qd2.png has changed
Binary file tool-data/example1_qd3.png has changed
Binary file tool-data/example1_td3.png has changed
Binary file tool-data/example1_td5.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/example1_trim_right_10.fastq	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,48 @@
+@seq1 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTAC
++seq1 length=100
+123412341234213412341234123412341234123412341234123413241234123412341234123412341234123412
+@seq1_dupl1 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTAC
++seq1_dupl1 length=100
+123412341234213412341234123412341234123412341234123413241234123412341234123412341234123412
+@seq1_dupl2 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTAC
++seq1_dupl2 length=100
+123412341234213412341234123412341234123412341234123413241234123412341234123412341234123412
+@seq1_dupl3 length=100
+ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTAC
++seq1_dupl3 length=100
+123412341234213412341234123412341234123412341234123413241234123412341234123412341234123412
+@seq2 length=200
+ACGTGACGTGACGTGGTGTACACAGAGATATATGAGACACACAGATAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTACACAGAGATATATGAGACACACAGATAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGT
++seq2 length=200
+++++++++++++++++..............00000000000000000000333333333333333355555555555555555AAAAAAAAAAAAAA999999999999996666666666666666444444444444444442222222222222222222221111111)))))))))))))))>>>
+@seq3 length=100
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTATAGATTGCGTGCGTACGTG
++seq3 length=100
+FHHFFFFFFDDAA@====AAB===BBBBAAADDDDDDDDAAAADDDDD?????FFFFF??FFFFFFDA@AFFFFFFFFFFFFFFFFCCAB
+@seq3_dupl1 length=100
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGCTCTGTGCGTGTACGTGACGTGACGTGGTGTATAGATTGCGTGCGTACGTG
++seq3_dupl1 length=100
+FHHFFFFFFDDAA@====AAB===BBBBAAADDDDDDDDAAAADDDDD?????FFFFF??FFFFFFDA@AFFFFFFFFFFFFFFFFCCAB
+@seq4 length=50
+TAGATTGCGTGCGTACGTGTGTGCATGCGTTGTGCCGCGC
++seq4 length=50
+???CCDDBBBBBAA333:ABB=:::AGFFFFFHHHHFFFF
+@seq5 length=100 Ns_begin=10
+NNNNNNNNNNTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGAGAAGAGGCGTGGAGGAGATGACACACCCC
++seq5 length=100 Ns_begin=10
+!!!!!!!!!!99999999999999AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFF
+@seq6 length=100 Ns_end=10
+TACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAAGTGAGAGTTGTACACCAGAGGTGTCTCTGTGTGGGGCCTGTGTGCCAAAA
++seq6 length=100 Ns_end=10
+FFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAA9999999999999999999995555555
+@seq7 length=50
+TACACCAGAGGTGTCTCTGTGTGGGTACACCAGAGGTGTC
++seq7 length=50
+!''*((((***+))%%%++)(%%%%).1***-+*''))**
+@seq8 length=50 As=50
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++seq8 length=50 As=50
+5555555555555555555555555555555555555555
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/example_readme.txt	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,36 @@
+This file will contain example commands for newly introduced options. (If you want to copy and paste the commands, do not copy the $-sign.)
+For more examples and information, take a look at the Manual (http://prinseq.sourceforge.net/manual.html).
+
+
+(1) Graph data
+==============
+To generate the graphs from the web version or the HTML report, you can use the -graph_data option:
+$ perl prinseq-lite.pl -verbose -fastq example1.fastq -graph_data example1.gd -out_good null -out_bad null
+
+The verbose mode shows the progress and the "-out_good null -out_bad null" prevents PRINSEQ from generating any other output files than the specified test.gd file containing the graphs data.
+
+To generate the graph as PNG files, you can use the prinseq-graphs -png_all option:
+$ perl prinseq-graphs.pl -i example1.gd -png_all -o example1
+
+To generate the HTML report containing all the tables and figures from the web version, you can use the prinseq-graphs -html_all option:
+$ perl prinseq-graphs.pl -i example1.gd -html_all -o example1
+
+
+(2) Consider exact duplicates only
+==================================
+When you process large files, the duplicate removal will require a lot of memory. To reduce the amount of memory required and speed up the process (at the cost of only removing forward and reverse exact duplicates), you can use the option -exact_only when generating the graphs data:
+$ perl prinseq-lite.pl -verbose -fastq example1.fastq -graph_data example1.gd -out_good null -out_bad null -exact_only
+
+Note that for processing the data, if you specify -derep 1, -derep 4, or -derep 14 then the exact_only option will be used automatically.
+
+
+(3) Duplicate threshold and no quality header information
+=========================================================
+Process the data (-fastq example1.fastq) with status report (-verbose), remove exact sequence duplicates (-derep 1) that occur more than 2 times (-derep_min 3) and save the sequences passing the filter in example1_good.fastq (-out_good example1_good) without the quality header (-no_qual_header) and the filtered sequences in example1_bad.fastq (-out_bad example1_bad):
+$ perl prinseq-lite.pl -verbose -fastq example1.fastq -derep 1 -derep_min 3 -out_good example1_good -out_bad example1_bad -no_qual_header
+
+
+(4) Paired-end data
+===================
+Paired-end data is processed similar to single read data. The only difference is that two input files are required (either two FASTA or two FASTQ files). The second file is specified either with "-fasta2 file.fa" or "-fastq2 file.fq".
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Mon Oct 07 15:34:32 2013 -0400
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <set_environment version="1.0">
+        <environment_variable name="PRINSEQ_SCRIPT_PATH" action="set_to">$REPOSITORY_INSTALL_DIR</environment_variable>
+    </set_environment>
+    <package name="prinseq_perl_dependencies" version="0.20.3">
+        <install version="1.0">
+            <actions>
+                <action type="download_by_url">http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.1.0/bowtie2-2.1.0-source.zip</action>
+                <action type="shell_command">perl Makefile.PL PREFIX=$INSTALL_DIR</action>
+                <action type="shell_command">make</action>
+                <action type="shell_command">make install</action>
+
+                <action type="download_by_url">http://search.cpan.org/CPAN/authors/id/M/MA/MAKAMAKA/JSON-2.59.tar.gz</action>
+                <action type="shell_command">perl Makefile.PL PREFIX=$INSTALL_DIR</action>
+                <action type="shell_command">make</action>
+                <action type="shell_command">make install</action>
+
+                <action type="set_environment">
+                    <environment_variable name="PERL5LIB" action="prepend_to">$INSTALL_DIR/lib/perl5/site_perl</environment_variable>
+                </action>
+            </actions>
+        </install>
+        <readme>
+        </readme>
+    </package>
+</tool_dependency>
+
+<!--fisher_exact-->
+