]> granicus.if.org Git - pgbadger/commitdiff
Major update to pgBadger v4.0 v4.0
authorDarold Gilles <gilles@darold.net>
Thu, 31 Oct 2013 07:57:17 +0000 (08:57 +0100)
committerDarold Gilles <gilles@darold.net>
Thu, 31 Oct 2013 07:57:17 +0000 (08:57 +0100)
ChangeLog
README
doc/pgBadger.pod
pgbadger

index a74c11167b2dda9c4773042071ea279f9d49b31b..319b4f0e8e7c4d9cbd828069e20a266ef2b634d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,86 @@
+2013-10-31 - Version 4.0
+
+This major release is the "Say goodbye to the fouine" release. With a full
+rewrite of the reports design, pgBadger has now turn the HTML reports into
+a more intuitive user experience and professional look.
+
+The report is now driven by a dynamic menu with the help of the embedded
+boostrap library. Every main menu correspond to hidden an slide that is
+brought to front when the menu or one of his submenus is activated. There's
+also the embedded font FontAwasome webfont to beautify the report.
+
+Every statistic report now include a key value section that shows you
+immediately some of the relevant informations. Pie charts have also been
+separated from their data tables using two tabs, one for the chart and the
+other one for the data.
+
+Tables reporting hourly statistic have been moved to a multiple tabs report
+following the data. This is used with General (queries, connections, sessions),
+Checkpoints (buffer, files, warnings), Temporary file and Vacuums activities.
+
+There's some new useful informations shown in the key value sections. Peak
+information shows the number and datetime of the highest activity. Here is the
+list of those reports:
+
+       - Queries peak
+       - Read queries peak
+       - Write queries peak
+       - Connections peak
+       - Checkpoints peak
+       - Wal files usage Peak
+       - Checkpoints warnings peak
+       - Temporary file size peak
+       - Temporary file number peak
+
+Reports about Checkpoints and Restartpoints have been merge in a single one.
+This is the same, outside the fact that restartpoints are on a slave cluster,
+so there was no need to separate those informations.
+
+Recent PostgreSQL versions add additional information about checkpoint, the
+number of synced files, the longest sync and the average of sync time per file.
+pgBadger collects and shows these informations in the Checkpoint Activity report.
+
+There's also some new reports:
+
+       - Prepared queries ratio (execute vs prepare)
+       - Prepared over normal queries
+       - Queries (select, insert, update, delete) per user/host/application
+       - Pie charts for tables with the more tuples and pages removed during vacuum.
+
+The vacuum report will now highlight the costly table during a vacuum or
+analyze of a database.
+
+The errors are now highlighted by a different color following the level.
+A LOG level will be green, HINT will be yellow, WARNING orange, ERROR red
+and FATAL dark red.
+
+Some changes in the binary format are not backward compatible and option
+--client have been remove as it was replaced by --dbclient for a long time now.
+
+If you are running a pg_dump or some batch process with very slow queries your
+report analyze will be annoyed by those queries taking too much place in the
+report. Before that release it was a pain to exclude those queries from the
+report. Now you can use the --exclude-time command line option to exclude all
+traces matching the given time regexp from the report. For example, let's say
+you have a pg_dump at 13:00 each day during half an hour, you can use pgbadger
+as follow:
+
+       pgbadger --exclude-time "2013-09-.* 13:.*" postgresql.log 
+
+If your are also running a pg_dump at night, let's say 22:00, you can write it
+as follow:
+
+       pgbadger --exclude-time '2013-09-\d+ 13:[0-3]' --exclude-time '2013-09-\d+ 22:[0-3]' postgresql.log 
+
+or more shortly:
+
+       pgbadger --exclude-time '2013-09-\d+ (13|22):[0-3]' postgresql.log 
+
+Exclude time always require the iso notation yyyy-mm-dd hh:mm:ss, even if log
+format is syslog. This is the same for all time related options. Take care that
+this option has a high cost on the parser performances.
+
+
 2013-09-17 - version 3.6
 
 Still an other version in 3.x branch to fix two major bugs in vacuum and checkpoint
diff --git a/README b/README
index b8f0eed1e5044ad90b20d7c1962223e7f1462064..44cfbdabfa7c64cd3bc34ec04bad190349bf5730 100644 (file)
--- a/README
+++ b/README
@@ -84,6 +84,9 @@ SYNOPSIS
         --disable-autovacuum   : do not generate autovacuum report.
         --charset              : used to set the HTML charset to be used. Default: utf-8.
         --csv-separator        : used to set the CSV field separator, default: ,
+        --exclude-time  regex  : any timestamp matching the given regex will be
+                                 excluded from the report. Example: "2013-04-12 .*"
+                                 You can use this option multiple times.
 
     Examples:
 
@@ -121,29 +124,48 @@ SYNOPSIS
     This supposes that your log file and HTML report are also rotated every
     week.
 
+    If you have a pg_dump at 23:00 and 13:00 each day during half an hour,
+    you can use pgbadger as follow to exclude these periods from the report:
+
+        pgbadger --exclude-time "2013-09-.* (23|13):.*" postgresql.log
+
+    This will help to not have all COPY order on top of slowest queries.
+
 DESCRIPTION
-    pgBadger is a PostgreSQL log analyzer built for speed with fully
+    pgBadger is a PostgreSQL log analyzer build for speed with fully
     detailed reports from your PostgreSQL log file. It's a single and small
-    Perl script that aims to replace and out-perform the old PHP script
-    pgFouine.
+    Perl script that outperform any other PostgreSQL log analyzer.
 
-    By the way, we would like to thank Guillaume Smet for all the work he
-    has done on this really nice tool. We've been using it a long time, it
-    is a really great tool!
-
-    pgBadger is written in pure Perl language. It uses a Javascript library
-    to draw graphs so that you don't need additional Perl modules or any
-    other package to install. Furthermore, this library gives us additional
-    features, such as zooming.
+    It is written in pure Perl language and uses a javascript library
+    (flotr2) to draw graphs so that you don't need to install any additional
+    Perl modules or other packages. Furthermore, this library gives us more
+    features such as zooming. pgBadger also uses the Bootstrap javascript
+    library and the FontAwesome webfont for better design. Everything is
+    embedded.
 
     pgBadger is able to autodetect your log file format (syslog, stderr or
-    csvlog). It is designed to parse huge log files, as well as gzip, zip or
-    bzip2 compressed files. See a complete list of features below.
+    csvlog). It is designed to parse huge log files as well as gzip
+    compressed file. See a complete list of features below.
+
+    All charts are zoomable and can be saved as PNG images.
+
+    You can also limit pgBadger to only report errors or remove any part of
+    the report using command line options.
+
+    pgBadger supports any custom format set into log_line_prefix of your
+    postgresql.conf file provide that you use the %t, %p and %l patterns.
+
+    pgBadger allow parallel processing on a single log file and multiple
+    files through the use of the -j option and the number of CPUs as value.
+
+    If you want to save system performance you can also use log_duration
+    instead of log_min_duration_statement to have reports on duration and
+    number of queries only.
 
 FEATURE
     pgBadger reports everything about your SQL queries:
 
-            Overall statistics.
+            Overall statistics
             The most frequent waiting queries.
             Queries that waited the most.
             Queries generating the most temporary files.
@@ -156,17 +178,15 @@ FEATURE
     The following reports are also available with hourly charts divide by
     periods of five minutes:
 
-            Hourly queries statistics.
-            Hourly temporary file statistics.
-            Hourly checkpoints statistics.
-            Hourly restartpoints statistics.
-            Hourly autovacuum statistics.
-            Hourly autoanalyze statistics.
+            SQL queries statistics.
+            Temporary file statistics.
+            Checkpoints statistics.
+            Autovacuum and autoanalyze statistics.
 
     There's also some pie reports of distribution about:
 
             Locks statistics.
-            Queries by type (select/insert/update/delete).
+            ueries by type (select/insert/update/delete).
             Distribution of queries type per database/application
             Sessions per database/user/client.
             Connections per database/user/client.
@@ -334,8 +354,8 @@ Parallel processing
 INSTALLATION
     Download the tarball from github and unpack the archive as follow:
 
-            tar xzf pgbadger-3.x.tar.gz
-            cd pgbadger-3.x/
+            tar xzf pgbadger-4.x.tar.gz
+            cd pgbadger-4.x/
             perl Makefile.PL
             make && sudo make install
 
@@ -355,8 +375,19 @@ INSTALLATION
     By default INSTALLDIRS is set to site.
 
 AUTHORS
-    pgBadger is an original work from Gilles Darold. It is maintained by the
-    good folk at Dalibo and everyone who wants to contribute.
+    pgBadger is an original work from Gilles Darold.
+
+    The pgBadger logo is an original creation of Damien Clochard.
+
+    The pgBadger v4.x design comes from the "Art is code" company.
+
+    This web site is a work of Gilles Darold.
+
+    pgBadger is maintained by Gilles Darold and the good folks at Dalibo
+    every one who wants to contribute.
+
+    Many people have contributed to pgBadger, they are all quoted in the
+    Changelog file.
 
 LICENSE
     pgBadger is free software distributed under the PostgreSQL Licence.
index 33fe4fe097771a9efa3aefc3177198c7a9b1ee2f..8bc14bb0aa14b51cc367a497c40873339c02b8c3 100644 (file)
@@ -86,6 +86,10 @@ Options:
     --disable-autovacuum   : do not generate autovacuum report.
     --charset              : used to set the HTML charset to be used. Default: utf-8.
     --csv-separator        : used to set the CSV field separator, default: ,
+    --exclude-time  regex  : any timestamp matching the given regex will be
+                             excluded from the report. Example: "2013-04-12 .*"
+                             You can use this option multiple times.
+
 
 Examples:
 
@@ -122,21 +126,36 @@ Generate report every week using incremental behavior:
 
 This supposes that your log file and HTML report are also rotated every week.
 
+If you have a pg_dump at 23:00 and 13:00 each day during half an hour, you can
+use pgbadger as follow to exclude these periods from the report:
+
+    pgbadger --exclude-time "2013-09-.* (23|13):.*" postgresql.log 
+
+This will help to not have all COPY order on top of slowest queries.
+
 =head1 DESCRIPTION
 
-pgBadger is a PostgreSQL log analyzer built for speed with fully detailed reports from your PostgreSQL log file. It's a single and small Perl script that aims to replace and out-perform the old PHP script pgFouine.
+pgBadger is a PostgreSQL log analyzer build for speed with fully detailed reports from your PostgreSQL log file. It's a single and small Perl script that outperform any other PostgreSQL log analyzer.
+
+It is written in pure Perl language and uses a javascript library (flotr2) to draw graphs so that you don't need to install any additional Perl modules or other packages. Furthermore, this library gives us more features such as zooming. pgBadger also uses the Bootstrap javascript library and the FontAwesome webfont for better design. Everything is embedded.
+
+pgBadger is able to autodetect your log file format (syslog, stderr or csvlog). It is designed to parse huge log files as well as gzip compressed file. See a complete list of features below.
 
-By the way, we would like to thank Guillaume Smet for all the work he has done on this really nice tool. We've been using it a long time, it is a really great tool!
+All charts are zoomable and can be saved as PNG images.
 
-pgBadger is written in pure Perl language. It uses a Javascript library to draw graphs so that you don't need additional Perl modules or any other package to install. Furthermore, this library gives us additional features, such as zooming.
+You can also limit pgBadger to only report errors or remove any part of the report using command line options.
 
-pgBadger is able to autodetect your log file format (syslog, stderr or csvlog). It is designed to parse huge log files, as well as gzip, zip or bzip2 compressed files. See a complete list of features below.
+pgBadger supports any custom format set into log_line_prefix of your postgresql.conf file provide that you use the %t, %p and %l patterns.
+
+pgBadger allow parallel processing on a single log file and multiple files through the use of the -j option and the number of CPUs as value.
+
+If you want to save system performance you can also use log_duration instead of log_min_duration_statement to have reports on duration and number of queries only.
 
 =head1 FEATURE
 
 pgBadger reports everything about your SQL queries:
 
-       Overall statistics.
+       Overall statistics
        The most frequent waiting queries.
        Queries that waited the most.
        Queries generating the most temporary files.
@@ -149,17 +168,15 @@ pgBadger reports everything about your SQL queries:
 The following reports are also available with hourly charts divide by periods of
 five minutes:
 
-       Hourly queries statistics.
-       Hourly temporary file statistics.
-       Hourly checkpoints statistics.
-       Hourly restartpoints statistics.
-       Hourly autovacuum statistics.
-       Hourly autoanalyze statistics.
+       SQL queries statistics.
+       Temporary file statistics.
+       Checkpoints statistics.
+       Autovacuum and autoanalyze statistics.
 
 There's also some pie reports of distribution about:
 
        Locks statistics.
-       Queries by type (select/insert/update/delete).
+       ueries by type (select/insert/update/delete).
        Distribution of queries type per database/application
        Sessions per database/user/client.
        Connections per database/user/client.
@@ -318,14 +335,18 @@ with the following template tmp_pgbadgerXXXX.bin so they can be easily identifie
 
 Download the tarball from github and unpack the archive as follow:
 
-       tar xzf pgbadger-3.x.tar.gz
-       cd pgbadger-3.x/
+       tar xzf pgbadger-4.x.tar.gz
+       cd pgbadger-4.x/
        perl Makefile.PL
        make && sudo make install
 
-This will copy the Perl script pgbadger to /usr/local/bin/pgbadger by default and the man page into /usr/local/share/man/man1/pgbadger.1. Those are the default installation directories for 'site' install.
+This will copy the Perl script pgbadger to /usr/local/bin/pgbadger by default and the
+man page into /usr/local/share/man/man1/pgbadger.1. Those are the default installation
+directories for 'site' install.
 
-If you want to install all under /usr/ location, use INSTALLDIRS='perl' as an argument of Makefile.PL. The script will be installed into /usr/bin/pgbadger and the manpage into /usr/share/man/man1/pgbadger.1.
+If you want to install all under /usr/ location, use INSTALLDIRS='perl' as an argument
+of Makefile.PL. The script will be installed into /usr/bin/pgbadger and the manpage
+into /usr/share/man/man1/pgbadger.1.
 
 For example, to install everything just like Debian does, proceed as follows:
 
@@ -335,7 +356,17 @@ By default INSTALLDIRS is set to site.
 
 =head1 AUTHORS
 
-pgBadger is an original work from Gilles Darold. It is maintained by the good folk at Dalibo and everyone who wants to contribute.
+pgBadger is an original work from Gilles Darold.
+
+The pgBadger logo is an original creation of Damien Clochard.
+
+The pgBadger v4.x design comes from the "Art is code" company.
+
+This web site is a work of Gilles Darold.
+
+pgBadger is maintained by Gilles Darold and the good folks at Dalibo every one who wants to contribute.
+
+Many people have contributed to pgBadger, they are all quoted in the Changelog file.
 
 =head1 LICENSE
 
index ab8db11ba2062cd3be721ed659c6197b2598e5ba..a319bf10fd457f84b3509e475236e0b707c3fb31 100755 (executable)
--- a/pgbadger
+++ b/pgbadger
@@ -44,7 +44,7 @@ use IO::Handle;
 use IO::Pipe;
 use Time::HiRes qw/usleep/;
 
-$VERSION = '3.6';
+$VERSION = '4.0';
 
 $SIG{'CHLD'} = 'DEFAULT';
 
@@ -56,6 +56,12 @@ my $interrupt    = 0;
 my $tmp_last_parsed = '';
 my @SQL_ACTION   = ('SELECT', 'INSERT', 'UPDATE', 'DELETE');
 my $graphid      = 1;
+my $NODATA       = '<div class="flotr-graph"><blockquote><b>NO DATASET</b></blockquote></div>';
+
+my $pgbadger_logo =
+        '<img src="data:image/png;base64,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">';
+my $pgbadger_ico =
+        'data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiAAAAAAA////BxQUFH0FBQWyExMT4wQEBM4ODg7DFRUVe/T09AsAAAAAg4ODAAAAAAAAAAAAAAAAAFJSUgAAAAAAKioqcQICAv9aWlr/MjIy/omJif6Li4v+HR0d/ldXV/8DAwP/Ly8veAAAAABZWVkAAAAAAF9fXwAAAAAAKioqvh4eHv/n5+f/qqqq/s3Nzf4FBQX/AAAA/5KSkv+Kior/6urq/h0dHf8uLi7DAAAAAG1tbQAAAAAAJiYmeCEhIf//////6enp/iMjI//t7e3/l5eX/2dnZ//U1NT/S0tL/9XV1f7/////Hx8f/y8vL34AAAAAvb29HAEBAf/s7Oz+3d3d/j09Pf9TU1P/JCQk//z8/P//////oaGh/xsbG/95eXn/+Pj4/unp6f4DAwP/vLy8GiQkJJJjY2P95+fn/1NTU/9ubm7/UFBQ/yEhIf/m5ub//f39/yEhIf8SEhL/h4eH/4yMjP//////YWFh/w4ODn8CAgLLv7+//09PT/68vLz/ZGRk/zQ0NP8sLCz/9/f3/+Hh4f9gYGD/hYWF/0VFRf9nZ2f//v7+/rm5uf4CAgLLCwsL9efn5/9zc3P/dHR0/wUFBf8MDAz/ampq///////9/f3/FBQU/0BAQP88PDz/WFhY//Ly8v/j4+P+AAAA1QAAANyFhYX+5+fn/09PT/8AAAD/AgIC/9jY2P/+/v7//////y4uLv8AAAD/AAAA/5ycnP+Kior/6Ojo/gQEBOkAAADKVVVV/xgYGP8AAAD/AAAA/yAgIP///////v7+//////87Ozv/AAAA/wAAAP8wMDD/OTk5/7+/v/4AAADMJiYmn5mZmf0AAAD+AAAA/wAAAP9BQUH///////7+/v//////KCgo/wAAAP8AAAD/AAAA/5CQkP9ubm7+MjIynzMzMyFFRUX/zc3N/zw8PP4DAwP/BgYG/9bW1v//////mJiY/wAAAP8AAAD/AAAA/wAAAP5gYGD+BAQE/0JCQiMAAAAAIiIishEREf719fX+6Ojo/3Jycv9XV1f/ZGRk/3d3d/+5ubn/WVlZ/2dnZ/7MzMz+xMTE/h4eHrIAAAAATU1NAAAAAAALCwvhSUlJ/v7+/v7////+//////////////////////////+YmJj/QUFB/g8PD+EAAAAAVVVVAAAAAAAAAAAA////AR8fH70GBgb/goKC/tzc3P7////+/////9zc3P6CgoL+BgYG/xsbG7YAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwAAAAAARkZGNBkZGa4ODg73AAAA/wAAAP8NDQ31GhoasWFhYUAAAAAAOzs7AAAAAAAAAAAA/D8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAgAEAAMADAADgBwAA+B8AAA';
 
 ####
 # method used to fork as many child as wanted
@@ -99,7 +105,6 @@ my $ver                     = '';
 my @dbname                  = ();
 my @dbuser                  = ();
 my @dbclient                = ();
-my @dbclient2               = ();
 my @dbappname               = ();
 my @exclude_user            = ();
 my $ident                   = '';
@@ -118,6 +123,7 @@ my $quiet                   = 0;
 my $progress                = 1;
 my $error_only              = 0;
 my @exclude_query           = ();
+my @exclude_time            = ();
 my $exclude_file            = '';
 my @include_query           = ();
 my $include_file            = '';
@@ -133,7 +139,7 @@ my $disable_checkpoint      = 0;
 my $disable_autovacuum      = 0;
 my $avg_minutes             = 5;
 my $last_parsed             = '';
-my $report_title            = 'pgBadger: PostgreSQL log analyzer';
+my $report_title            = 'PostgreSQL log analyzer';
 my $log_line_prefix         = '';
 my $compiled_prefix         = '';
 my $project_url             = 'http://dalibo.github.com/pgbadger/';
@@ -243,14 +249,12 @@ my $result = GetOptions(
        "disable-temporary!"       => \$disable_temporary,
        "disable-checkpoint!"      => \$disable_checkpoint,
        "disable-autovacuum!"      => \$disable_autovacuum,
-       "client=s"                 => \@dbclient2, # Backward compatibility
        "charset=s"                => \$charset,
        "csv-separator=s"          => \$csv_sep_char,
+       "exclude-time=s"           => \@exclude_time,
 );
 die "FATAL: use pgbadger --help\n" if (not $result);
 
-push(@dbclient, @dbclient2); # Backward compatibility
-
 if ($ver) {
        print "pgBadger version $VERSION\n";
        exit 0;
@@ -423,6 +427,13 @@ if ($#exclude_query >= 0) {
        }
 }
 
+# Testing regex syntax
+if ($#exclude_time >= 0) {
+       foreach my $r (@exclude_time) {
+               &check_regex($r, '--exclude-time');
+       }
+}
+
 # Loading included query from file if any
 if ($include_file) {
        open(IN, "$include_file") or die "FATAL: can't read file $include_file: $!\n";
@@ -624,6 +635,7 @@ map {$_ = quotemeta($_)} @BRACKETS;
 
 # Where statistics are stored
 my %overall_stat        = ();
+my %overall_checkpoint  = ();
 my @top_slowest         = ();
 my %normalyzed_info     = ();
 my %error_info          = ();
@@ -634,10 +646,11 @@ my %tempfile_info       = ();
 my %connection_info     = ();
 my %database_info       = ();
 my %application_info    = ();
+my %user_info           = ();
+my %host_info           = ();
 my %session_info        = ();
 my %conn_received       = ();
 my %checkpoint_info     = ();
-my %restartpoint_info   = ();
 my %autovacuum_info     = ();
 my %autoanalyze_info    = ();
 my @graph_values        = ();
@@ -650,6 +663,7 @@ our %saved_last_line    = ();
 my %tsung_session       = ();
 my @top_locked_info     = ();
 my @top_tempfile_info   = ();
+my %drawn_graphs        = ();
 
 my $t0 = Benchmark->new;
 
@@ -664,7 +678,7 @@ if ($last_parsed && -e $last_parsed) {
        }
 }
 $tmp_last_parsed = 'tmp_' . basename($last_parsed) if ($last_parsed);
-       
+
 
 # Main loop reading log files
 my $global_totalsize = 0;
@@ -836,11 +850,7 @@ if ($extension ne 'tsung') {
                if (!$noprettify) {
                        $sql_prettified = SQL::Beautify->new(keywords => \@pg_keywords);
                }
-               if ($error_only) {
-                       &dump_error_as_html();
-               } else {
-                       &dump_as_html();
-               }
+               &dump_as_html();
        }
        $fh->close;
 } else {
@@ -937,9 +947,9 @@ Options:
                              queries to include from the report. One regex per line.
     --disable-error        : do not generate error report.
     --disable-hourly       : do not generate hourly report.
-    --disable-type         : do not generate query type report.
+    --disable-type         : do not generate report of queries by type, database...
     --disable-query        : do not generate query reports (slowest, most
-                             frequent, ...).
+                             frequent, queries by users, by database, ...).
     --disable-session      : do not generate session report.
     --disable-connection   : do not generate connection report.
     --disable-lock         : do not generate lock report.
@@ -948,6 +958,9 @@ Options:
     --disable-autovacuum   : do not generate autovacuum report.
     --charset              : used to set the HTML charset to be used. Default: utf-8.
     --csv-separator        : used to set the CSV field separator, default: ,
+    --exclude-time  regex  : any timestamp matching the given regex will be
+                            excluded from the report. Example: "2013-04-12 .*"
+                             You can use this option multiple times.
 
 Examples:
 
@@ -985,6 +998,12 @@ Generate report every week using incremental behavior:
 
 This supposes that your log file and HTML report are also rotated every week.
 
+If you have a pg_dump at 23:00 and 13:00 each day during half an hour, you can
+use pgbadger as follow to exclude these period from the report:
+
+    pgbadger --exclude-time "2013-09-.* (23|13):.*" postgresql.log 
+
+This will help to not have all COPY order on top of slowest queries.
 };
 
        exit 0;
@@ -994,6 +1013,7 @@ sub init_stats_vars
 {
        # Empty where statistics are stored
        %overall_stat        = ();
+       %overall_checkpoint  = ();
        @top_slowest         = ();
        @top_tempfile_info   = ();
        @top_locked_info     = ();
@@ -1009,7 +1029,6 @@ sub init_stats_vars
        %session_info        = ();
        %conn_received       = ();
        %checkpoint_info     = ();
-       %restartpoint_info   = ();
        %autovacuum_info     = ();
        %autoanalyze_info    = ();
        @graph_values        = ();
@@ -1169,7 +1188,7 @@ sub process_file
                        $prefix_vars{'t_hint'} = $row->[15];
                        $prefix_vars{'t_context'} = $row->[18];
                        $prefix_vars{'t_statement'} = $row->[19];
-                       
+
                        # Check if the log line should be excluded from the report
                        if (&validate_log_line($prefix_vars{'t_pid'})) {
 
@@ -1263,8 +1282,16 @@ sub process_file
 "$prefix_vars{'t_year'}-$prefix_vars{'t_month'}-$prefix_vars{'t_day'} $prefix_vars{'t_hour'}:$prefix_vars{'t_min'}:$prefix_vars{'t_sec'}";
 
                                        # Skip unwanted lines
+                                       if ($#exclude_time >= 0) {
+                                               foreach (@exclude_time) {
+                                                       if ($prefix_vars{'t_timestamp'} =~ /$_/) {
+                                                               return;
+                                                       }
+                                               }
+                                       }
+
                                        next if ($from && ($from gt $prefix_vars{'t_timestamp'}));
-                                       if ($to && ($to lt $prefix_vars{'t_timestamp'})) {
+                                       if ($to   && ($to lt $prefix_vars{'t_timestamp'})) {
                                                if ($tmpoutfile) {
                                                        $pipe->print("$cursize " . ($overall_stat{'queries_number'} - $old_queries_count) . " " . ($overall_stat{'errors_number'} - $old_errors_count) . "\n");
                                                        $old_queries_count = $overall_stat{'queries_number'};
@@ -1296,16 +1323,25 @@ sub process_file
                                        }
 
                                } elsif ($goon && ($line =~ $other_syslog_line)) {
-
                                        $cur_pid = $8;
                                        my $t_query = $10;
                                        $t_query = $11 if ($format eq 'syslog-ng');
                                        $t_query =~ s/#011/\t/g;
                                        next if ($t_query eq "\t");
+
                                        if ($cur_info{$cur_pid}{vacuum} && ($t_query =~ /^\t(pages|tuples|buffer usage|avg read rate|system usage):/)) {
                                                if ($t_query =~ /^\t(pages|tuples): (\d+) removed, (\d+) remain/) {
                                                        $autovacuum_info{tables}{$cur_info{$cur_pid}{vacuum}}{$1}{removed} += $2;
                                                }
+                                               if ($t_query =~ m#^\tsystem usage: CPU .* sec elapsed (.*) sec#) {
+                                                       if ($1 > $autovacuum_info{peak}{system_usage}{elapsed}) {
+                                                               $autovacuum_info{peak}{system_usage}{elapsed} = $1;
+                                                               $autovacuum_info{peak}{system_usage}{table} = $cur_info{$cur_pid}{vacuum};
+                                                               $autovacuum_info{peak}{system_usage}{date} = 
+                                                                       "$cur_info{$cur_pid}{year}-$cur_info{$cur_pid}{month}-$cur_info{$cur_pid}{day} " .
+                                                                       "$cur_info{$cur_pid}{hour}:$cur_info{$cur_pid}{min}:$cur_info{$cur_pid}{sec}";
+                                                       }
+                                               }
                                                next;
                                        } elsif ( $cur_info{$cur_pid}{parameters} && (($t_query =~ /[,\s]*\$(\d+)\s=\s/) || ($t_query =~ /^('[^']*')$/)) ) {
                                                # stores bind parameters if any
@@ -1368,8 +1404,15 @@ sub process_file
                                                $prefix_vars{'t_min'}, $prefix_vars{'t_sec'}) = ($prefix_vars{'t_timestamp'} =~ $time_pattern);
 
                                        # Skip unwanted lines
+                                       if ($#exclude_time >= 0) {
+                                               foreach (@exclude_time) {
+                                                       if ($prefix_vars{'t_timestamp'} =~ /$_/) {
+                                                               return;
+                                                       }
+                                               }
+                                       }
                                        next if ($from && ($from gt $prefix_vars{'t_timestamp'}));
-                                       if ($to && ($to lt $prefix_vars{'t_timestamp'})) {
+                                       if ($to   && ($to lt $prefix_vars{'t_timestamp'})) {
                                                if ($tmpoutfile) {
                                                        $pipe->print("$cursize " . ($overall_stat{'queries_number'} - $old_queries_count) . " " . ($overall_stat{'errors_number'} - $old_errors_count) . "\n");
                                                        $old_queries_count = $overall_stat{'queries_number'};
@@ -1411,6 +1454,15 @@ sub process_file
                                                if ($line =~ /^\t(pages|tuples): (\d+) removed, (\d+) remain/) {
                                                        $autovacuum_info{tables}{$cur_info{$cur_pid}{vacuum}}{$1}{removed} += $2;
                                                }
+                                               if ($line =~ m#^\tsystem usage: CPU .* sec elapsed (.*) sec#) {
+                                                       if ($1 > $autovacuum_info{peak}{system_usage}{elapsed}) {
+                                                               $autovacuum_info{peak}{system_usage}{elapsed} = $1;
+                                                               $autovacuum_info{peak}{system_usage}{table} = $cur_info{$cur_pid}{vacuum};
+                                                               $autovacuum_info{peak}{system_usage}{date} = 
+                                                                       "$cur_info{$cur_pid}{year}-$cur_info{$cur_pid}{month}-$cur_info{$cur_pid}{day} " .
+                                                                       "$cur_info{$cur_pid}{hour}:$cur_info{$cur_pid}{min}:$cur_info{$cur_pid}{sec}";
+                                                       }
+                                               }
                                                next;
                                        } elsif ( $cur_info{$cur_pid}{parameters} && (($line =~ /[,\s]*\$(\d+)\s=\s/) || ($line =~ /^'[^']*'$/)) ) {
                                                # stores bind parameters if any
@@ -1450,7 +1502,7 @@ sub process_file
 
        # Get stats from all pending temporary storage
        foreach my $pid (sort {$cur_info{$a}{date} <=> $cur_info{$b}{date}} keys %cur_info) {
-               # Stores lat queries informations
+               # Stores last queries informations
                &store_queries($pid);
 
        }
@@ -1508,7 +1560,7 @@ sub process_file
                        &logmsg('ERROR', "can't save last parsed line into $tmp_last_parsed, $!");
                }
        }
-       
+
        return $getout;
 }
 
@@ -1614,6 +1666,35 @@ sub comma_numbers
        return scalar reverse $text;
 }
 
+# Format numbers with comma for better reading
+sub pretty_print_size
+{
+       my $val = shift;
+       return 0 if (!$val);
+
+       if ($val >= 1125899906842624) {
+               $val = ($val / 1125899906842624);
+               $val = sprintf("%0.2f", $val) . " PiB";
+       } elsif ($val >= 1099511627776) {
+               $val = ($val / 1099511627776);
+               $val = sprintf("%0.2f", $val) . " TiB";
+       } elsif ($val >= 1073741824) {
+               $val = ($val / 1073741824);
+               $val = sprintf("%0.2f", $val) . " GiB";
+       } elsif ($val >= 1048576) {
+               $val = ($val / 1048576);
+               $val = sprintf("%0.2f", $val) . " MiB";
+       } elsif ($val >= 1024) {
+               $val = ($val / 1024);
+               $val = sprintf("%0.2f", $val) . " KiB";
+       } else {
+               $val = $val . " B";
+       }
+
+       return $val;
+}
+
+
 # Format duration
 sub convert_time
 {
@@ -1632,6 +1713,7 @@ sub convert_time
        $days    = $days < 1    ? '' : $days . 'd';
        $hours   = $hours < 1   ? '' : $hours . 'h';
        $minutes = $minutes < 1 ? '' : $minutes . 'm';
+       $seconds =~ s/\.\d+$// if ($minutes);
        $time    = $days . $hours . $minutes . $seconds . 's';
 
        return $time;
@@ -1711,8 +1793,7 @@ sub set_top_error_sample
 
        # Stop when we have our number of samples
        if (!exists $error_info{$q}{date} || ($#{$error_info{$q}{date}} < $sample)) {
-               if ( ($q =~ /deadlock detected/) || ($statement && !grep(/\Q$statement\E/, @{$error_info{$q}{statement}}))
-                       || ($real_error && !grep(/\Q$real_error\E/, @{$error_info{$q}{error}})) ) {
+               if ( ($q =~ /deadlock detected/) || ($real_error && !grep(/\Q$real_error\E/, @{$error_info{$q}{error}})) ) {
                        push(@{$error_info{$q}{date}},      $date);
                        push(@{$error_info{$q}{detail}},    $detail);
                        push(@{$error_info{$q}{context}},   $context);
@@ -1738,7 +1819,7 @@ sub dump_as_text
                $logfile_str .= ', ..., ' . $log_files[-1];
        }
        print $fh qq{
-$report_title
+pgBadger :: $report_title
 
 - Global information ---------------------------------------------------
 
@@ -1749,9 +1830,9 @@ Log start from $overall_stat{'first_log_ts'} to $overall_stat{'last_log_ts'}
 };
 
        # Overall statistics
-       my $fmt_unique  = &comma_numbers(scalar keys %normalyzed_info) || 0;
-       my $fmt_queries = &comma_numbers($overall_stat{'queries_number'}) || 0;
-       my $fmt_duration = &convert_time($overall_stat{'queries_duration'}) || 0;
+       my $fmt_unique  = &comma_numbers(scalar keys %normalyzed_info);
+       my $fmt_queries = &comma_numbers($overall_stat{'queries_number'});
+       my $fmt_duration = &convert_time($overall_stat{'queries_duration'});
        $overall_stat{'first_query_ts'} ||= '-';
        $overall_stat{'last_query_ts'} ||= '-';
        print $fh qq{
@@ -1764,13 +1845,13 @@ Total query duration: $fmt_duration
 First query: $overall_stat{'first_query_ts'}
 Last query: $overall_stat{'last_query_ts'}
 };
-       foreach (sort {$overall_stat{'query_peak'}{$b} <=> $overall_stat{'query_peak'}{$a}} keys %{$overall_stat{'query_peak'}}) {
-               print $fh "Query peak: ", &comma_numbers($overall_stat{'query_peak'}{$_}), " queries/s at $_";
+       foreach (sort {$overall_stat{'peak'}{$b}{query} <=> $overall_stat{'peak'}{$a}{query}} keys %{$overall_stat{'peak'}}) {
+               print $fh "Query peak: ", &comma_numbers($overall_stat{'peak'}{$_}{query}), " queries/s at $_";
                last;
        }
        if (!$disable_error) {
-               my $fmt_errors = &comma_numbers($overall_stat{'errors_number'}) || 0;
-               my $fmt_unique_error = &comma_numbers(scalar keys %{$overall_stat{'unique_normalized_errors'}}) || 0;
+               my $fmt_errors = &comma_numbers($overall_stat{'errors_number'});
+               my $fmt_unique_error = &comma_numbers(scalar keys %error_info);
                print $fh qq{
 Number of events: $fmt_errors
 Number of unique normalized events: $fmt_unique_error
@@ -1794,6 +1875,10 @@ Average duration of sessions: $avg_session_duration
        }
        if (!$disable_connection && $connection_info{count}) {
                print $fh "Total number of connections: $connection_info{count}\n";
+               foreach (sort {$overall_stat{'peak'}{$b}{connection} <=> $overall_stat{'peak'}{$a}{connection}} keys %{$overall_stat{'peak'}}) {
+                       print $fh "Connection peak: ", &comma_numbers($overall_stat{'peak'}{$_}{connection}), " conn/s at $_";
+                       last;
+               }
        }
        if (scalar keys %database_info > 1) {
                print $fh "Total number of databases: ", scalar keys %database_info, "\n";
@@ -1850,6 +1935,35 @@ Report not supported by text format
                                }
                        }
                }
+
+               # Show request per user statistics
+               if (scalar keys %user_info > 1) {
+                       print $fh "\n- Request per user ------------------------------------------------------\n\n";
+                       print $fh "User     Request type     Count\n";
+                       foreach my $d (sort keys %user_info) {
+                               print $fh "$d - ", &comma_numbers($user_info{$d}{count}), "\n";
+                               foreach my $r (sort keys %{$user_info{$d}}) {
+                                       next if ($r eq 'count');
+                                       print $fh "\t$r ", &comma_numbers($user_info{$d}{$r}), "\n";
+                               }
+                       }
+               }
+
+               # Show request per user statistics
+               if (scalar keys %user_info > 1) {
+                       print $fh "\n- Request per user ------------------------------------------------------\n\n";
+                       print $fh "Host     Request type     Count\n";
+                       foreach my $d (sort keys %user_info) {
+                               print $fh "$d - ", &comma_numbers($user_info{$d}{count}), "\n";
+                               foreach my $r (sort keys %{$user_info{$d}}) {
+                                       next if ($r eq 'count');
+                                       print $fh "\t$r ", &comma_numbers($user_info{$d}{$r}), "\n";
+                               }
+                       }
+               }
+
+
+
        }
 
        if (!$disable_lock && scalar keys %lock_info > 0) {
@@ -2196,7 +2310,7 @@ sub dump_error_as_text
                $logfile_str .= ', ..., ' . $log_files[-1];
        }
        print $fh qq{
-$report_title
+pgBadger :: $report_title
 
 - Global information ---------------------------------------------------
 
@@ -2283,415 +2397,203 @@ sub show_error_as_text
        }
 }
 
-sub get_page_style
-{
-       return qq{<style type="text/css">
-body { background-color: #dedede; font-family: Verdana ;font-size: 14px;font-style: normal;font-weight: normal;text-transform: none;letter-spacing: normal;line-height: 17px;padding: 0px; color: rgb(69,54,37); }
-div, p, th, td { font-size:12px; }
-#content h1 { border-left:8px #0c57a3 solid; color: #0c57a3; font: lighter 30px Arial, Helvetica, sans-serif; margin: 0px; padding: 7px;border-top: 1px solid #CCCCCC;}
-#content h1 a, h1 a:visited { color: #007DFC; text-decoration: none; }
-#content h1 a:hover { color: #888888; text-decoration: none; }
-#content h2 { border-bottom: 1px solid #CCCCCC; color: #0c57a3; font: lighter 18px Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 0px 0px 2px; padding-bottom: 3px; padding-top:7px;}
-#content h2 a, h2 a:visited { color: #007dfc; text-decoration: none; }
-#content h2 a:hover { color: #6f6e6e; text-decoration: none; }
-
-div.menu {background-color:#EFEFEF; margin-bottom:15px; padding:4px; -moz-border-radius:8px; padding-left:10px; color:#8F8F8F; border:1px solid #D8D8D8; text-align: left; width: 1050px; -moz-box-shadow: 3px 3px 5px #000000; -webkit-box-shadow: 3px 3px 5px #000000; -khtml-box-shadow: 3px 3px 5px #000000; -o-box-shadow: 3px 3px 5px #000000; box-shadow: 3px 3px 5px #000000; border-color: #DBDBCC; }
-div.menu a { color: #007dfc; text-decoration: none; }
-div.menu a:hover { color: #6f6e6e; text-decoration: none; }
-div.menu a:visited { color: #007dfc; text-decoration: none; }
-
-div.information {
-       background:#F3F2ED;
-       border:4px double white;
-       padding:0 10px;
-       margin:30px 0 30px 0;
-       border-radius:10px;
-       -moz-border-radius:10px;
-       -webkit-border-radius:10px;
-       box-shadow:3px 3px 6px 2px #A9A9A9;
-       -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-       -webkit-box-shadow:3px 3px 6px #A9A9A9;
-       width: 1035px;
-}
-
-.examplesButton {
-       background:#F3F2ED;
-       border:1px solid black;
-       padding:2px 2px;
-       margin:3px 3px 3px 3px;
-       border-radius:6px;
-       -moz-border-radius:10px;
-       -webkit-border-radius:10px;
-       box-shadow:3px 3px 6px 2px #A9A9A9;
-       -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-       -webkit-box-shadow:3px 3px 6px #A9A9A9;
-}
-
-.dldButton {
-       background:#F3F2ED;
-       border:1px solid black;
-       padding:2px 2px;
-       margin:3px 3px 3px 3px;
-       border-radius:6px;
-       -moz-border-radius:10px;
-       -webkit-border-radius:10px;
-       box-shadow:3px 3px 6px 2px #A9A9A9;
-       -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-       -webkit-box-shadow:3px 3px 6px #A9A9A9;
-}
-
-#content ul { padding-left: 14px; padding-top: 0px; padding-bottom: 0px; margin-bottom: 0px; margin-top: 0px; }
-#content ul li { list-style-type: square; }
-div.reports { padding:4px; }
-
-#content table { border-collapse:collapse;}
-#content table th.left { text-align:left !important; }
-#content table tr.row0 td { background-color: #FFFFFF; border: 0px solid #E7E7E7;}
-#content table tr.row1 td { background-color: #E7E7E7; border: 0px solid #FFFFFF;}
-#content table td.top { vertical-align:top; }
-#content table td.right { text-align:right; }
-#content table td.center { text-align:center; }
-#content table td.relevantInformation { font-weight:bold; }
-#content table td.relevantInformationSmall { font-size: 11px; font-weight:bold; }
-
-table.HourStatsTable {
-       background:#F3F2ED;
-       border:4px double white;
-       padding:0 10px;
-       margin:30px 0 30px 0;
-       /*css3*/
-       border-radius:10px;
-       -moz-border-radius:10px;
-       -webkit-border-radius:10px;
-       box-shadow:3px 3px 6px 2px #A9A9A9;
-       -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-       -webkit-box-shadow:3px 3px 6px #A9A9A9;
-       width: 1065px;
-}
-
-table.HourStatsTable th { background-color: #770818; border:1px solid #FEE3C4; color: white; font-weight: normal;}
-table.SmallTableList {
-        background:#F3F2ED;
-        border:4px double white;
-        padding:0 10px;
-        margin:30px 0 30px 0;
-        /*css3*/
-        border-radius:10px;
-        -moz-border-radius:10px;
-        -webkit-border-radius:10px;
-        box-shadow:3px 3px 6px 2px #A9A9A9;
-        -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-        -webkit-box-shadow:3px 3px 6px #A9A9A9;
-        width: 520px;
-}
-table.SmallTableList th { background-color: #770818; border:1px solid #FEE3C4; color: white; font-weight: normal;}
-
-table.queryList {
-        background:#F3F2ED;
-        border:4px double white;
-        padding:2px 2px;
-        margin:3px 3px 3px 3px;
-        /*css3*/
-        border-radius:6px;
-        -moz-border-radius:10px;
-        -webkit-border-radius:10px;
-        box-shadow:3px 3px 6px 2px #A9A9A9;
-        -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-        -webkit-box-shadow:3px 3px 6px #A9A9A9;
-}
-table.queryList th { background-color: #770818; border:1px solid #FEE3C4; color: white; font-weight: normal;}
-table.queryList td, table.queryList th { padding: 2px;}
-table.queryList div.sql { width: 800px; overflow: auto; }
-table.queryList div.examples { background-color:#E7E7E7; border:1px solid #FFFFFF; -moz-border-radius:10px; padding:6px; margin:5px;}
-table.queryList div.examples div.example0 { padding:2px; }
-table.queryList div.examples div.example1 { background-color:#FFFFFF; padding:2px; border:1px solid #EBF0FC; -moz-border-radius:5px; }
-table.queryList div.error { color: #D53131; font-weight:bold; }
-table.queryList div.errorInformation0 { background-color:#E7E7E7; color: #8D8D8D; font-style:italic; }
-table.queryList div.errorInformation1 { background-color:#FFFFFF; color: #8D8D8D; font-style:italic; }
-table.queryList input { border:1px solid black; background-color:#FFFFFF; padding:1px; font-size:11px; }
-
-div.tooltipLink { position:relative; cursor:pointer; }
-div.tooltipLink span.information { border-bottom:1px dotted gray; z-index:10; }
-div.tooltipLink div.tooltip { display:none; background-color:#EBF0FC; border:1px solid #FFFFFF; -moz-border-radius:10px; padding:6px; width:250px; }
-div.tooltipLink div.tooltip table { background-color:white; width:250px; }
-div.tooltipLink div.tooltip table tr.row0 td { background-color: #FFFFFF; border: 1px solid #EEEEEE; }
-div.tooltipLink div.tooltip table tr.row1 td { background-color: #EEEEEE; border: 1px solid #EEEEEE; }
-div.tooltipLink div.tooltip th { font-size:10px; }
-div.tooltipLink div.tooltip td { font-size:9px; font-weight:normal; padding:1px; }
-div.tooltipLink:hover div.tooltip { display:block; z-index:20; position:absolute; top:1.5em; left:2em; }
-
-div.footer { font: 14px Helvetica, Arial, sans-serif;clear: both; height:30px; color: #dddddd; padding:13px 0px 0 0;margin-left: auto; margin-right: auto;  text-align: center; background-color: #0c57a3; }
-div.footer a strong { color: #eeeeee; font-weight: bold;}
-div.footer a, #footer a:visited { color: #eeeeee; }
-div.footer a:hover { color: #eeeeee; }
-
-div#littleToc { display:none; }
-html>body div#littleToc { display:block; background-color:white; color:black; position:fixed; bottom:10px; right:10px; width:160px; font-size:11px; text-align:left; border:1px dotted #BBBBBB; }
-div#littleToc div#littleTocContent { display:none; padding:2px; }
-div#littleToc:hover { width:205px; }
-div#littleToc:hover div#littleTocContent { display:block; border-right:5px solid #BBBBBB; }
-
-div#littleToc div#littleTocTitle { font-weight:bold; text-align:center;padding:2px; }
-div#littleToc:hover div#littleTocTitle { display:none; }
-
-div#littleToc ul { padding:0px; text-indent:0px; margin:0px; }
-div#littleToc li { font-size:11px; list-style-type:none; padding:0px; text-indent:0px; margin:0px; }
-
-div#littleToc a { color:#000000; padding:2px; margin:2px; display:block; text-decoration:none; border:1px solid #CCCCCC; }
-div#littleToc a:hover { text-decoration:none; background-color:#DDDDDD; }
-
-.sql  {font-family:monospace;}
-.sql .imp {font-weight: bold; color: red;}
-.sql .kw1 {color: #993333; font-weight: bold; text-transform: uppercase;}
-.sql .kw2 {color: #993333; font-style: italic;}
-.sql .kw3 {color: #993333; text-transform: uppercase;}
-.sql .co1 {color: #808080; font-style: italic;}
-.sql .co2 {color: #808080; font-style: italic;}
-.sql .coMULTI {color: #808080; font-style: italic;}
-.sql .es0 {color: #000099; font-weight: bold;}
-.sql .br0 {color: #66cc66;}
-.sql .sy0 {color: #000000;}
-.sql .st0 {color: #ff0000;}
-.sql .nu0 {color: #cc66cc;}
-.sql span.xtra { display:block; }
-
-#queriespersecond_graph, #connectionspersecond_graph, #queriesduration_graph, #checkpointwritebuffers_graph, #checkpointfiles_graph, #restartpointwritebuffers_graph, #temporarydata_graph, #temporaryfile_graph, #autovacuum_graph, #selectqueries_graph, #writequeries_graph {
-       width : 1025px;
-       height: 400px;
-       background:#F3F2ED;
-       border:4px double white;
-       padding:0 10px;
-       margin:30px 0 30px 0;
-       border-radius:10px;
-       -moz-border-radius:10px;
-       -webkit-border-radius:10px;
-       box-shadow:3px 3px 6px 2px #A9A9A9;
-       -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-       -webkit-box-shadow:3px 3px 6px #A9A9A9;
-}
-#queriesbytype_graph, #lockbytype_graph, #databasesessions_graph, #usersessions_graph, #hostsessions_graph, #databaseconnections_graph, #userconnections_graph, #hostconnections_graph, #logstype_graph, #requestsdatabases_graph, #requestsapplications_graph, #autovacuumbytable_graph, #autovacuumtuplesremoved_graph {
-       width : 500px;
-       height: 250px;
-       background:#F3F2ED;
-       border:4px double white;
-       padding:0 10px;
-       margin:30px 0 30px 0;
-       /*css3*/
-       border-radius:10px;
-       -moz-border-radius:10px;
-       -webkit-border-radius:10px;
-       box-shadow:3px 3px 6px 2px #A9A9A9;
-       -moz-box-shadow:3px 3px 6px 2px #A9A9A9;
-       -webkit-box-shadow:3px 3px 6px #A9A9A9;
-}
-
-</style>
-<script type="text/javascript">
-/* <![CDATA[ */
-function toggle(idButton, idDiv, label) {
-       if(document.getElementById(idDiv)) {
-               if(document.getElementById(idDiv).style.display == 'none') {
-                       document.getElementById(idDiv).style.display = 'block';
-                       document.getElementById(idButton).value = 'Hide '+label;
-               } else {
-                       document.getElementById(idDiv).style.display = 'none';
-                       document.getElementById(idButton).value = 'Show '+label;
-               }
-       }
-}
-/* ]]> */
-</script>
-};
-
-}
-
-
 sub html_header
 {
        my $date = localtime(time);
-       my $style = &get_page_style();
-       print $fh qq{<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+       my $global_info = &print_global_information();
+
+       my @jscode = <DATA>;
+
+       print $fh qq{<!DOCTYPE html>
+<html lang="en">
 <head>
-<title>$report_title</title>
+<title>pgBadger :: $report_title</title>
 <meta http-equiv="Content-Type" content="text/html; charset=$charset" />
 <meta name="robots" content="noindex,nofollow">
 <meta http-equiv="Expires" CONTENT="$date">
 <meta http-equiv="Generator" content="pgBadger v$VERSION">
 <meta http-equiv="Date" content="$date">
-$style
-};
-       if (!$nograph) {
-               my @jscode = <DATA>;
-               print $fh <<EOF
+<link rel="shortcut icon" href="$pgbadger_ico" />
 @jscode
-EOF
-       }
-       print $fh qq{
 </head>
 <body>
-<div id="content">
-
-<h1 id="top">$report_title</h1>
-};
-       print $fh qq{
-<div class="menu">
-<a href="#OverallStatsReport">Overall statistics</a> | 
+<nav class="navbar navbar-inverse navbar-fixed-top">
+  <div class="navbar-inner">
+    <div class="container-fluid">
+       <a data-placement="bottom" rel="tooltip" data-original-title="$report_title" href="" id="pgbadger-brand" class="brand">$pgbadger_logo pgBadger</a>
+         <ul class="nav collapse in" id="navigation">
 };
        if (!$error_only) {
-               if (!$disable_hourly && ($overall_stat{'queries_number'} || exists $connection_info{chronos})) {
-                       print $fh qq{<a href="#HourlyStatsReport">Hourly statistics</a> | };
-               }
-               my $totype = 0;
-               foreach my $a (@SQL_ACTION) {
-                       $totype += $overall_stat{$a};
-               }
-               if (!$disable_type && $totype) {
-                       print $fh qq{<a href="#QueriesByTypeReport">Queries by type</a> | };
-                       print $fh qq{<a href="#RequestsDatabaseReport">Queries per database</a> | } if (scalar keys %database_info > 1);
-                       print $fh qq{<a href="#RequestsApplicationReport">Queries per application</a> | } if (scalar keys %application_info > 1);
+               print $fh qq{
+               <li id="menu-overview" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Overview <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#global-stats">Global Stats</a></li>
+};
+               if (!$disable_hourly) {
+                       print $fh qq{
+                               <li><a href="#sql-traffic">SQL Traffic</a></li>
+                               <li><a href="#select-traffic">Select Traffic</a></li>
+                               <li><a href="#write-traffic">Write Traffic</a></li>
+                               <li><a href="#duration-traffic">Queries duration</a></li>
+                               <li><a href="#prepared-queries-ratio">Prepared queries ratio</a></li>
+                               <li><a href="#general-activity">General Activity</a></li>
+};
                }
-               if (!$disable_query && ($#top_locked_info >= 0)) {
+               print $fh qq{
+                       </ul>
+               </li>
+};
+               if (!$disable_connection) {
+                       print $fh qq{
+               <li id="menu-connections" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Connections <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+};
+                       if (!$disable_hourly) {
+                               print $fh qq{
+                               <li><a href="#simultaneous-connections">Simultaneous connections</a></li>
+};
+                       }
                        print $fh qq{
-<a href="#MostFrequentWaitingQueries">Most frequent waiting queries (N)</a> | 
-<a href="#QueriesThatWaitedTheMost">Queries that waited the most</a> | 
+                               <li><a href="#connections-per-database">Connections per database</a></li>
+                               <li><a href="#connections-per-user">Connections per user</a></li>
+                               <li><a href="#connections-per-host">Connections per host</a></li>
+                       </ul>
+               </li>
 };
                }
-               if (!$disable_query && ($#top_tempfile_info >= 0)) {
+               if (!$disable_session) {
                        print $fh qq{
-<a href="#QueriesMostTemporaryFiles">Queries generating the most temporary files (N)</a> | 
-<a href="#QueriesLargestTemporaryFiles">Queries generating the largest temporary files</a> | 
+               <li id="menu-sessions" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Sessions <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#sessions-per-database">Sessions per database</a></li>
+                               <li><a href="#sessions-per-user">Sessions per user</a></li>
+                               <li><a href="#sessions-per-host">Sessions per host</a></li>
+                       </ul>
+               </li>
 };
                }
-               if (!$disable_query && ($#top_slowest >= 0)) {
+               if (!$disable_checkpoint) {
                        print $fh qq{
-<a href="#SlowestQueriesReport">Slowest queries</a> | 
-<a href="#NormalizedQueriesMostTimeReport">Queries that took up the most time (N)</a> | 
-<a href="#NormalizedQueriesSlowestAverageReport">Slowest queries (N)</a> | 
+               <li id="menu-checkpoints" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Checkpoints <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#checkpoints-buffers">Checkpoints buffers</a></li>
+                               <li><a href="#checkpoints-files">Checkpoints files</a></li>
+                               <li><a href="#checkpoint-activity">Checkpoint activity</a></li> 
+                       </ul>
+               </li>
 };
-               } 
-               if (!$disable_query && (scalar keys %normalyzed_info > 0)) {
-                       print $fh "<a href=\"#NormalizedQueriesMostFrequentReport\">Most frequent queries (N)</a> | ";
                }
-               if (!$disable_lock && scalar keys %lock_info > 0) {
-                       print $fh qq{<a href="#LocksByTypeReport">Locks by type</a> | };
+               if (!$disable_temporary) {
+                       print $fh qq{
+               <li id="menu-tempfiles" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Temp Files <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#tempfiles-size">Size of temporary files</a></li>
+                               <li><a href="#tempfiles-number">Number of temporary files</a></li>
+                               <li><a href="#tempfiles-activity">Temporary files activity</a></li>
+                               <li class="divider"></li>
+                               <li><a href="#queries-generating-most-temporary-files">Queries generating the most files (N)</a></li>
+                               <li><a href="#queries-generating-largest-temporary-files">Queries generating the largest files</a></li>
+                       </ul>
+               </li>
+};
                }
-               if (!$disable_session) {
-                       if (exists $session_info{database}) {
-                               print $fh qq{<a href="#SessionsDatabaseReport">Sessions per database</a> | };
-                       }
-                       if (exists $session_info{user}) {
-                               print $fh qq{<a href="#SessionsUserReport">Sessions per user</a> | };
-                       }
-                       if (exists $session_info{host}) {
-                               print $fh qq{<a href="#SessionsHostReport">Sessions per host</a> | };
-                       }
+               if (!$disable_autovacuum) {
+                       print $fh qq{
+               <li id="menu-vacuums" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Vacuums <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#vacuums-count">Vacuums distribution</a></li>
+                               <li><a href="#vacuums-activity">Vacuums activity</a></li>
+                               <li><a href="#analyzes-per-table">Analyzes per Tables</a></li>
+                               <li><a href="#vacuums-per-table">Vacuums per Tables</a></li>
+                               <li><a href="#tuples-removed-per-table">Tuples removed</a></li>
+                               <li><a href="#pages-removed-per-table">Page removed</a></li>
+                       </ul>
+               </li>
+};
                }
-               if (!$disable_connection) {
-                       if (exists $connection_info{database}) {
-                               print $fh qq{<a href="#ConnectionsDatabaseReport">Connections per database</a> | };
-                       }
-                       if (exists $connection_info{user}) {
-                               print $fh qq{<a href="#ConnectionsUserReport">Connections per user</a> | };
-                       }
-                       if (exists $connection_info{host}) {
-                               print $fh qq{<a href="#ConnectionsHostReport">Connections per host</a> | };
+               if (!$disable_lock) {
+                       print $fh qq{
+               <li id="menu-locks" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Locks <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#locks-type">Locks by type</a></li>
+                               <li class="divider"></li>
+                               <li><a href="#queries-most-frequent-waiting">Most frequent waiting queries (N)</a></li>
+                               <li><a href="#queries-that-waited-most">Queries that waited the most</a></li>
+                       </ul>
+               </li>
+};
+       }
+               if (!$disable_query) {
+                       if (!$disable_type) {
+                               print $fh qq{
+               <li id="menu-queries" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Queries <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#queries-by-type">Queries by type</a></li>
+                               <li><a href="#queries-by-database">Queries by database</a></li>
+                               <li><a href="#queries-by-user">Queries by user</a></li>
+                               <li><a href="#queries-by-host">Queries by host</a></li>
+                               <li><a href="#queries-by-application">Queries by application</a></li>
+                       </ul>     
+               </li>
+};
                        }
+                       print $fh qq{
+               <li id="menu-topqueries" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Top <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#slowest-individual-queries">Slowest individual queries</a></li>
+                               <li><a href="#time-consuming-queries">Time Consuming queries (N)</a></li>
+                               <li><a href="#most-frequent-queries">Most frequent queries (N)</a></li>
+                               <li><a href="#normalized-slowest-queries">Normalized slowest queries</a></li>
+                       </ul>
+               </li>
+};
                }
        }
-       if (!$disable_error && (scalar keys %error_info > 0)) {
-               print $fh qq{<a href="#NormalizedErrorsMostFrequentReport">Most frequent events (N)</a> | };
-               print $fh qq{<a href="#LogsTypeReport">Logs per type</a>};
+       if (!$disable_error) {
+               print $fh qq{
+               <li id="menu-events" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Events <span class="caret"></span></a>
+                       <ul class="dropdown-menu">
+                               <li><a href="#log-levels">Log levels</a></li>
+                               <li class="divider"></li>
+                               <li><a href="#most-frequent-errors-events">Most frequent errors/events</a></li>
+                       </ul>        
+               </li>
+};
        }
-       print $fh "</div>\n";
-       print $fh "<p>Normalized reports are marked with a \"(N)\".</p>\n";
+       print $fh qq{
+       </ul>
+       <a class="pull-right btn btn-info" href="#" id="pop-infos" rel="popover" data-html="true" data-placement="bottom" data-original-title="Log Info" data-content="$global_info">
+<i class="icon-info-sign icon-large"></i></a><a id="show-hide-menu" class="btn pull-right" data-toggle="collapse" href="#navigation"><i class="icon-reorder icon-large"></i></a>
+
+    </div>
+  </div>
+</nav>
+
+<div id="top"><br /><br /></div>
+<div class="container" id="main-container">
+
+       <ul id="slides">
+};
 
 }
 
 sub html_footer
 {
        print $fh qq{
-       <p>&nbsp;</p>
-       <div class="footer">
-               Report generated by <a href="$project_url" target="_new">pgBadger</a> $VERSION.
-       </div>
+               </li>
+       </ul> <!-- end of slides -->
+</div> <!-- End of main-container -->
+
+<footer>
+<div class="">
+       <small class="pull-right">Report generated by <a href="$project_url" target="_new">pgBadger $VERSION.</a></small>
 </div>
-};
-       print $fh qq{
-<div id="littleToc">
-       <div id="littleTocContent">
+</footer>
 
-               <ul>
-                       <li><a href="#top">^ Back to top</a></li><li><a href="#OverallStatsReport">Overall statistics</a></li>
-};
-       if (!$error_only) {
-               if (!$disable_hourly && ($overall_stat{'queries_number'} || exists $connection_info{chronos})) {
-                       print $fh qq{<li><a href="#HourlyStatsReport">Hourly statistics</a></li>};
-               }
-               my $totype = 0;
-               foreach my $a (@SQL_ACTION) {
-                       $totype += $overall_stat{$a};0;
-               }
-               if (!$disable_type && $totype) {
-                       print $fh qq{<li><a href="#QueriesByTypeReport">Queries by type</a></li>};
-                       print $fh qq{<li><a href="#RequestsDatabaseReport">Queries per database</a></li>} if (scalar keys %database_info > 1);
-                       print $fh qq{<li><a href="#RequestsApplicationReport">Queries per application</a></li>} if (scalar keys %application_info > 1);
-               }
-               if (!$disable_lock && scalar keys %lock_info > 0) {
-                       print $fh qq{<li><a href="#LocksByTypeReport">Locks by type</a></li>};
-               }
-               if (!$disable_session) {
-                       if (exists $session_info{database}) {
-                               print $fh qq{<li><a href="#SessionsDatabaseReport">Sessions per database</a></li>};
-                       }
-                       if (exists $session_info{user}) {
-                               print $fh qq{<li><a href="#SessionsUserReport">Sessions per user</a></li>};
-                       }
-                       if (exists $session_info{host}) {
-                               print $fh qq{<li><a href="#SessionsHostReport">Sessions per host</a></li>};
-                       }
-               }
-               if (!$disable_connection) {
-                       if (exists $connection_info{database}) {
-                               print $fh qq{<li><a href="#ConnectionsDatabaseReport">Connections per database</a></li>};
-                       }
-                       if (exists $connection_info{user}) {
-                               print $fh qq{<li><a href="#ConnectionsUserReport">Connections per user</a></li>};
-                       }
-                       if (exists $connection_info{host}) {
-                               print $fh qq{<li><a href="#ConnectionsHostReport">Connections per host</a></li>};
-                       }
-               }
-               if (!$disable_query && ($#top_locked_info >= 0)) {
-                       print $fh qq{<li><a href="#MostFrequentWaitingQueries">Most frequent waiting queries (N)</a></li>
-<li><a href="#QueriesThatWaitedTheMost">Queries that waited the most</a></li>};
-               }
-               if (!$disable_query && ($#top_tempfile_info >= 0)) {
-                       print $fh qq{
-<li><a href="#QueriesMostTemporaryFiles">Queries generating the most temporary files (N)</a></li>
-<li><a href="#QueriesLargestTemporaryFiles">Queries generating the largest temporary files</a></li>
-};
-               }
-               if (!$disable_query && ($#top_slowest >= 0)) {
-                       print $fh qq{<li><a href="#SlowestQueriesReport">Slowest queries</a></li>
-<li><a href="#NormalizedQueriesMostTimeReport">Queries that took up the most time (N)</a></li>
-<li><a href="#NormalizedQueriesSlowestAverageReport">Slowest queries (N)</a></li>
-};
-               }
-               if (!$disable_query && (scalar keys %normalyzed_info > 0)) {
-                       print $fh qq{<li><a href="#NormalizedQueriesMostFrequentReport">Most frequent queries (N)</a></li>};
-               }
-       }
-       if (!$disable_error && (scalar keys %error_info > 0)) {
-               print $fh "<li><a href=\"#NormalizedErrorsMostFrequentReport\">Most frequent events (N)</a></li>\n";
-               print $fh qq{<li><a href="#LogsTypeReport">Logs per type</a></li>\n};
-       }
-       print $fh qq{</ul>
-       </div>
-       <div id="littleTocTitle">Table of contents</div>
+<div id="littleToc">
+       <div id="littleTocTitle"><a href="#top">&nbsp;^&nbsp;</a></div>
 </div>
-};
-       print $fh qq{
+
 </body>
 </html>
 };
@@ -2712,15 +2614,13 @@ sub print_global_information
        if ($#log_files > 0) {
                $logfile_str .= ', ..., ' . $log_files[-1];
        }
-       print $fh qq{
-<div class="information">
+       return qq{
 <ul>
 <li>Generated on $curdate</li>
 <li>Log file: $logfile_str</li>
 <li>Parsed $fmt_nlines log entries in $total_time</li>
 <li>Log start from $overall_stat{'first_log_ts'} to $overall_stat{'last_log_ts'}</li>
 </ul>
-</div>
 };
 
 }
@@ -2728,259 +2628,548 @@ sub print_global_information
 sub print_overall_statistics
 {
 
-       my $fmt_unique  = &comma_numbers(scalar keys %normalyzed_info) || 0;
-       my $fmt_queries = &comma_numbers($overall_stat{'queries_number'}) || 0;
-       my $fmt_duration = &convert_time($overall_stat{'queries_duration'}) || 0;
+       my $fmt_unique  = &comma_numbers(scalar keys %normalyzed_info);
+       my $fmt_queries = &comma_numbers($overall_stat{'queries_number'});
+       my $fmt_duration = &convert_time($overall_stat{'queries_duration'});
        $overall_stat{'first_query_ts'} ||= '-';
        $overall_stat{'last_query_ts'} ||= '-';
-       print $fh qq{
-<div class="reports">
-<h2 id="OverallStatsReport">Overall statistics <a href="#top" title="Back to top">^</a></h2>
-<div class="information">
-<table><tr><td valign="top">
-<ul>
-<li>Number of unique normalized queries: $fmt_unique</li>
-<li>Number of queries: $fmt_queries</li>
-<li>Total query duration: $fmt_duration</li>
-<li>First query: $overall_stat{'first_query_ts'}</li>
-<li>Last query: $overall_stat{'last_query_ts'}</li>
-};
-       foreach (sort {$overall_stat{'query_peak'}{$b} <=> $overall_stat{'query_peak'}{$a}} keys %{$overall_stat{'query_peak'}}) {
-               print $fh "<li>Query peak: ", &comma_numbers($overall_stat{'query_peak'}{$_}), " queries/s at $_</li>";
+       my $query_peak = 0;
+       my $query_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{query} <=> $overall_stat{'peak'}{$a}{query}} keys %{$overall_stat{'peak'}}) {
+               $query_peak = &comma_numbers($overall_stat{'peak'}{$_}{query});
+               $query_peak_date = $_;
                last;
        }
-       if (!$disable_error) {
-               my $fmt_errors = &comma_numbers($overall_stat{'errors_number'}) || 0;
-               my $fmt_unique_error = &comma_numbers(scalar keys %{$overall_stat{'unique_normalized_errors'}}) || 0;
-               print $fh qq{
-<li>Number of events: $fmt_errors</li>
-<li>Number of unique normalized events: $fmt_unique_error</li>
-};
-       }
-       if ($autovacuum_info{count}) {
-               print $fh qq{
-<li>Total number of automatic vacuums: $autovacuum_info{count}</li>
-};
-       }
-       if ($autoanalyze_info{count}) {
-               print $fh qq{
-<li>Total number of automatic analyzes: $autoanalyze_info{count}</li>
-};
+       my $fmt_errors = &comma_numbers($overall_stat{'errors_number'});
+       my $fmt_unique_error = &comma_numbers(scalar keys %error_info);
+       my $autovacuum_count = &comma_numbers($autovacuum_info{count});
+       my $autoanalyze_count = &comma_numbers($autoanalyze_info{count});
+       my $tempfile_count = &comma_numbers($tempfile_info{count});
+       my $fmt_temp_maxsise = &comma_numbers($tempfile_info{maxsize});
+       my $fmt_temp_avsize = &comma_numbers(sprintf("%.2f", $tempfile_info{size} / ($tempfile_info{count} || 1)));
+       my $session_count = &comma_numbers($session_info{count});
+       my $avg_session_duration = &convert_time($session_info{duration} / ($session_info{count} || 1));
+       my $tot_session_duration = &convert_time($session_info{duration});
+       my $connection_count = &comma_numbers($connection_info{count});
+       my $connection_peak = 0;
+       my $connection_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{connection} <=> $overall_stat{'peak'}{$a}{connection}} keys %{$overall_stat{'peak'}}) {
+               $connection_peak = &comma_numbers($overall_stat{'peak'}{$_}{connection});
+               $connection_peak_date = $_;
+               last;
        }
+       my $db_count = scalar keys %database_info;
        print $fh qq{
-</ul>
-</td><td valign="top">
-<ul>
-};
-       if ($tempfile_info{count}) {
-               my $fmt_temp_maxsise = &comma_numbers($tempfile_info{maxsize});
-               my $fmt_temp_avsize = &comma_numbers(sprintf("%.2f", $tempfile_info{size} / $tempfile_info{count}));
-               print $fh qq{
-<li>Number of temporary files: $tempfile_info{count}</li>
-<li>Max size of temporary files: $fmt_temp_maxsise</li>
-<li>Average size of temporary files: $fmt_temp_avsize</li>
+           <h1 class="page-header"><i class="icon-eye-open"></i> Overview</h1>
+
+           <div class="row-fluid analysis-item" id="global-stats">
+               <h2 class=""><i class="icon-dashboard"></i> Global Stats</h2>
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#tab-queries" data-toggle="tab"><i class="icon-question-sign"></i> Queries</a></li>
+                                       <li><a href="#tab-events" data-toggle="tab"><i class="icon-bullhorn"></i> Events</a></li>
+                                       <li><a href="#tab-vacuums" data-toggle="tab"><i class="icon-cogs"></i> Vacuums</a></li>
+                                       <li><a href="#tab-tempfiles" data-toggle="tab"><i class="icon-file"></i> Temporary files</a></li>
+                                       <li><a href="#tab-sessions" data-toggle="tab"><i class="icon-off"></i> Sessions</a></li>
+                                       <li><a href="#tab-connections" data-toggle="tab"><i class="icon-external-link-sign"></i> Connections</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="tab-queries">
+                                               <ul>
+                                                       <li class="first"><span class="figure">$fmt_unique</span> <span class="figure-label">Number of unique normalized queries</span></li>
+                                                       <li><span class="figure">$fmt_queries</span> <span class="figure-label">Number of queries</span></li>
+                                                       <li><span class="figure">$fmt_duration</span> <span class="figure-label">Total query duration</span></li>
+                                                       <li><span class="figure">$overall_stat{first_query_ts}</span> <span class="figure-label">First query</span></li>
+                                                       <li><span class="figure">$overall_stat{last_query_ts}</span> <span class="figure-label">Last query</span></li>
+                                                       <li><span class="figure">$query_peak queries/s at $query_peak_date</span> <span class="figure-label">Query peak</span></li>
+                                               </ul>
+                                       </div>
+                                       <div class="tab-pane" id="tab-events">
+                                               <ul>
+                                                       <li class="first"><span class="figure">$fmt_errors</span> <span class="figure-label">Number of events</span></li>
+                                                       <li><span class="figure">$fmt_unique_error</span> <span class="figure-label">Number of unique normalized events</span></li>
+                                               </ul>
+                                       </div>
+                                       <div class="tab-pane" id="tab-vacuums">
+                                               <ul>
+                                                       <li class="first"><span class="figure">$autovacuum_count</span> <span class="figure-label">Total number of automatic vacuums</span></li>
+                                                       <li><span class="figure">$autoanalyze_count</span> <span class="figure-label">Total number of automatic analyzes</span></li>
+                                               </ul>
+                                       </div>
+                                       <div class="tab-pane" id="tab-tempfiles">
+                                               <ul>
+                                                       <li class="first"><span class="figure">$tempfile_count</span> <span class="figure-label">Number temporary file</span></li>
+                                                       <li><span class="figure">$fmt_temp_maxsise</span> <span class="figure-label">Max size of temporary file</span></li>
+                                                       <li><span class="figure">$fmt_temp_avsize</span> <span class="figure-label">Average size of temporary file</span></li>
+                                               </ul>
+                                       </div>
+                                       <div class="tab-pane" id="tab-sessions">
+                                               <ul>
+                                                       <li class="first"><span class="figure">$session_count</span> <span class="figure-label">Total number of sessions</span></li>
+                                                       <li><span class="figure">$tot_session_duration</span> <span class="figure-label">Total duration of sessions</span></li>
+                                                       <li><span class="figure">$avg_session_duration</span> <span class="figure-label">Average duration of sessions</span></li>
+                                               </ul>
+                                       </div>
+                                       <div class="tab-pane" id="tab-connections">
+                                               <ul>
+                                                       <li class="first"><span class="figure">$connection_count</span> <span class="figure-label">Total number of connections</span></li>
+                                                       <li><span class="figure">$connection_peak connections/s at $connection_peak_date</span> <span class="figure-label">Connection peak</span></li>
+                                                       <li><span class="figure">$db_count</span> <span class="figure-label">Total number of databases</span></li>
+                                               </ul>
+                                       </div>
+                               </div> <!-- end div tab-content -->
+                       </div> <!-- end div tabbable -->
+               </div> <!-- end div global-stats -->
 };
-       }
-       if (!$disable_session && $session_info{count}) {
-               my $avg_session_duration = &convert_time($session_info{duration} / $session_info{count});
-               my $tot_session_duration = &convert_time($session_info{duration});
-               print $fh qq{
-<li>Total number of sessions: $session_info{count}</li>
-<li>Total duration of sessions: $tot_session_duration</li>
-<li>Average duration of sessions: $avg_session_duration</li>
+
+}
+
+sub print_general_activity
+{
+       my $queries = '';
+       my $select_queries = '';
+       my $write_queries = '';
+       my $prepared_queries = '';
+       my $connections = '';
+       my $sessions = '';
+       foreach my $d (sort {$a <=> $b} keys %per_minute_info) {
+               my $c = 1;
+               $d =~ /^\d{4}(\d{2})(\d{2})$/;
+               my $zday = "$abbr_month{$1} $2";
+               foreach my $h (sort {$a <=> $b} keys %{$per_minute_info{$d}}) {
+                       my %cur_period_info = ();
+                       my $write_average_duration = 0;
+                       my $write_average_count = 0;
+                       foreach my $m (keys %{$per_minute_info{$d}{$h}}) {
+                               $cur_period_info{count} += ($per_minute_info{$d}{$h}{$m}{query}{count} || 0);
+                               $cur_period_info{duration} += ($per_minute_info{$d}{$h}{$m}{query}{duration} || 0);
+                               $cur_period_info{min} = $per_minute_info{$d}{$h}{$m}{query}{duration} if (!exists $cur_period_info{min} || ($per_minute_info{$d}{$h}{$m}{query}{duration} < $cur_period_info{min}));
+                               $cur_period_info{max} = $per_minute_info{$d}{$h}{$m}{query}{duration} if (!exists $cur_period_info{max} || ($per_minute_info{$d}{$h}{$m}{query}{duration} > $cur_period_info{max}));
+                               foreach my $a (@SQL_ACTION) {
+                                       $cur_period_info{$a}{count} += ($per_minute_info{$d}{$h}{$m}{$a}{count} || 0);
+                                       $cur_period_info{$a}{duration} += ($per_minute_info{$d}{$h}{$m}{$a}{duration} || 0);
+                                       $cur_period_info{usual} += ($per_minute_info{$d}{$h}{$m}{$a}{count} || 0);
+                               }
+                               $cur_period_info{prepare} += ($per_minute_info{$d}{$h}{$m}{prepare} || 0);
+                               $cur_period_info{execute} += ($per_minute_info{$d}{$h}{$m}{execute} || 0);
+                       }
+
+                       $cur_period_info{average} = $cur_period_info{duration} / ($cur_period_info{count} || 1);
+                       $cur_period_info{'SELECT'}{average} = $cur_period_info{'SELECT'}{duration} / ($cur_period_info{'SELECT'}{count} || 1);
+                       $write_average_duration = ($cur_period_info{'INSERT'}{duration} +
+                                       $cur_period_info{'UPDATE'}{duration} +
+                                       $cur_period_info{'DELETE'}{duration});
+                       $write_average_count = ($cur_period_info{'INSERT'}{count} +
+                                       $cur_period_info{'UPDATE'}{count} +
+                                       $cur_period_info{'DELETE'}{count});
+                       $zday = "&nbsp;" if ($c > 1);
+                       $c++;
+
+                       my $count = &comma_numbers($cur_period_info{count});
+                       my $min = &convert_time($cur_period_info{min});
+                       my $max = &convert_time($cur_period_info{max});
+                       my $average = &convert_time($cur_period_info{average});
+                       $queries .= qq{
+                                       <tr>
+                                               <td>$zday</td>
+                                               <td>$h</td>
+                                               <td>$count</td>
+                                               <td>$min</td>
+                                               <td>$max</td>
+                                               <td>$average</td>
+                                       </tr>};
+                       $count = &comma_numbers($cur_period_info{'SELECT'}{count});
+                       $average = &convert_time($cur_period_info{'SELECT'}{average});
+                       $select_queries .= qq{
+                                       <tr>
+                                               <td>$zday</td>
+                                               <td>$h</td>
+                                               <td>$count</td>
+                                               <td>$average</td>
+                                       </tr>};
+                       my $insert_count = &comma_numbers($cur_period_info{'INSERT'}{count});
+                       my $update_count = &comma_numbers($cur_period_info{'UPDATE'}{count});
+                       my $delete_count = &comma_numbers($cur_period_info{'DELETE'}{count});
+                       my $write_average = &convert_time($write_average_duration / ($write_average_count || 1));
+                       $write_queries .= qq{
+                                       <tr>
+                                               <td>$zday</td>
+                                               <td>$h</td>
+                                               <td>$insert_count</td>
+                                               <td>$update_count</td>
+                                               <td>$delete_count</td>
+                                               <td>$write_average</td>
+                                       </tr>};
+                       my $prepare_count = &comma_numbers($cur_period_info{prepare});
+                       my $execute_count = &comma_numbers($cur_period_info{execute});
+                       my $bind_prepare = &comma_numbers(sprintf("%.2f", $cur_period_info{execute}/($cur_period_info{prepare}||1)));
+                       my $prepare_usual = &comma_numbers(sprintf("%.2f", ($cur_period_info{prepare}/($cur_period_info{usual}||1)) * 100)) . "%";
+                       $prepared_queries .= qq{
+                                       <tr>
+                                               <td>$zday</td>
+                                               <td>$h</td>
+                                               <td>$prepare_count</td>
+                                               <td>$execute_count</td>
+                                               <td>$bind_prepare</td>
+                                               <td>$prepare_usual</td>
+                                       </tr>};
+                       $count = &comma_numbers($connection_info{chronos}{"$d"}{"$h"}{count});
+                       $average = &comma_numbers(sprintf("%0.2f", $connection_info{chronos}{"$d"}{"$h"}{count} / 3600));
+                       $connections .= qq{
+                                       <tr>
+                                               <td>$zday</td>
+                                               <td>$h</td>
+                                               <td>$count</td>
+                                               <td>$average/s</td>
+                                       </tr>};
+                       $count = &comma_numbers($session_info{chronos}{"$d"}{"$h"}{count});
+                       $cur_period_info{'session'}{average} =
+                               $session_info{chronos}{"$d"}{"$h"}{duration} / ($session_info{chronos}{"$d"}{"$h"}{count} || 1);
+                       $average = &convert_time($cur_period_info{'session'}{average});
+                       $sessions .= qq{
+                                       <tr>
+                                               <td>$zday</td>
+                                               <td>$h</td>
+                                               <td>$count</td>
+                                               <td>$average</td>
+                                       </tr>};
+               }
+       }
+
+       # Set default values
+       $queries = qq{<tr><td colspan="6">$NODATA</td></tr>} if (!$queries);
+       $select_queries = qq{<tr><td colspan="4">$NODATA</td></tr>} if (!$select_queries);
+       $write_queries = qq{<tr><td colspan="6">$NODATA</td></tr>} if (!$write_queries);
+       $prepared_queries = qq{<tr><td colspan="6">$NODATA</td></tr>} if (!$prepared_queries);
+       $connections = qq{<tr><td colspan="4">$NODATA</td></tr>} if (!$connections);
+       $sessions = qq{<tr><td colspan="4">$NODATA</td></tr>} if (!$sessions);
+
+       print $fh qq{
+<div class="analysis-item row-fluid" id="general-activity">
+       <h2 class=""><i class="icon-calendar"></i> General Activity</h2>
+       <div class="span11 tabbable tabs-left">
+               <ul class="nav nav-tabs">
+                       <li class="active"><a href="#general-activity-queries" data-toggle="tab">Queries</a></li>
+                   <li><a href="#general-activity-select-queries" data-toggle="tab">SELECT Queries</a></li>
+                       <li><a href="#general-activity-write-queries" data-toggle="tab">Write Queries</a></li>
+                       <li><a href="#general-activity-prepared-queries" data-toggle="tab">Prepared Queries</a></li>
+                       <li><a href="#general-activity-connections" data-toggle="tab">Connections</a></li>
+                       <li><a href="#general-activity-sessions" data-toggle="tab">Sessions</a></li>
+               </ul>
+               <div class="tab-content">
+                       <div class="active tab-pane" id="general-activity-queries">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Count</th>
+                                                       <th>Min duration</th>
+                                                       <th>Max duration</th>
+                                                       <th>Avg duration</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$queries
+                                       </tbody>
+                               </table>                                                                                                
+                       </div>
+                       <div class="tab-pane" id="general-activity-select-queries">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Count</th>
+                                                       <th>Average Duration</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$select_queries
+                                       </tbody>
+                               </table>                                                
+                       </div>
+                       <div class="tab-pane" id="general-activity-write-queries">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>INSERT</th>
+                                                       <th>UPDATE</th>
+                                                       <th>DELETE</th>
+                                                       <th>Average Duration</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$write_queries
+                                       </tbody>
+                               </table>        
+                       </div>
+                       <div class="tab-pane" id="general-activity-prepared-queries">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Prepare</th>
+                                                       <th>Bind</th>
+                                                       <th>Bind/Prepare</th>
+                                                       <th>Percentage of prepare</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$prepared_queries
+                                       </tbody>
+                               </table>        
+                       </div>
+                       <div class="tab-pane" id="general-activity-connections">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Count</th>
+                                                       <th>Average / Second</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$connections
+                                       </tbody>
+                               </table>        
+                       </div>
+                       <div class="tab-pane" id="general-activity-sessions">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Count</th>
+                                                       <th>Average Duration</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$sessions
+                                       </tbody>
+                               </table>        
+                       </div>
+               </div> <!-- end of div tab-content -->
+               <span class="pull-right">&uarr; <small><a href="#general-activity" class="">Back to the top of the <em>General Activity</em> table</a></small></span>
+       </div>
+
+</div><!-- end of general activity -->
 };
+
+}
+
+sub print_sql_traffic
+{
+
+       my $bind_vs_prepared = sprintf("%.2f", $overall_stat{'execute'} / ($overall_stat{'prepare'} || 1));
+       my $total_usual_queries = 0;
+       map { $total_usual_queries += $overall_stat{$_}; } @SQL_ACTION;
+       my $prepared_vs_normal = sprintf("%.2f", ($overall_stat{'execute'} / ($total_usual_queries || 1))*100);
+
+       my $query_peak = 0;
+       my $query_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{query} <=> $overall_stat{'peak'}{$a}{query}} keys %{$overall_stat{'peak'}}) {
+               $query_peak = &comma_numbers($overall_stat{'peak'}{$_}{query});
+               $query_peak_date = $_;
+               last;
        }
-       if (!$disable_connection && $connection_info{count}) {
-               print $fh qq{
-<li>Total number of connections: $connection_info{count}</li>
-};
+
+       my $select_peak = 0;
+       my $select_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{select} <=> $overall_stat{'peak'}{$a}{select}} keys %{$overall_stat{'peak'}}) {
+               $select_peak = &comma_numbers($overall_stat{'peak'}{$_}{select});
+               $select_peak_date = $_;
+               last;
        }
-       if (scalar keys %database_info > 1) {
-               my $db_count = scalar keys %database_info;
-               print $fh qq{
-<li>Total number of databases: $db_count</li>
-};
+
+       my $write_peak = 0;
+       my $write_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{write} <=> $overall_stat{'peak'}{$a}{write}} keys %{$overall_stat{'peak'}}) {
+               $write_peak = &comma_numbers($overall_stat{'peak'}{$_}{write});
+               $write_peak_date = $_;
+               last;
        }
+       my $fmt_duration = &convert_time($overall_stat{'queries_duration'});
 
        print $fh qq{
-</ul>
-</td></tr></table>
-</div>
+       <div id="sql-traffic" class="analysis-item row-fluid">
+               <h2 class=""><i class="icon-road"></i> SQL Traffic</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$query_peak queries/s</span> <span class="figure-label">Query Peak</span></li>
+                                       <li><span class="figure">$query_peak_date</span> <span class="figure-label">Date</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <h3 class="">Queries per second ($avg_minutes minutes average)</h3>
+$drawn_graphs{queriespersecond_graph}
+               </div>
+       </div><!-- end of sql-traffic -->
 };
+       delete $drawn_graphs{queriespersecond_graph};
 
-}
+       print $fh qq{
+       <div id="select-traffic" class="analysis-item row-fluid">
+               <h2 class=""><i class="icon-road"></i> SELECT Traffic</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$select_peak queries/s</span> <span class="figure-label">Query Peak</span></li>
+                                       <li><span class="figure">$select_peak_date</span> <span class="figure-label">Date</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <h3 class="">SELECT queries per second ($avg_minutes minutes average)</h3>
+$drawn_graphs{selectqueries_graph}
+               </div>
+       </div><!-- end of select-traffic -->
+};
+       delete $drawn_graphs{selectqueries_graph};
 
-sub print_hourly_reports
-{
-       if ($overall_stat{'queries_number'} || exists $connection_info{chronos}) {
-               print $fh qq{
-<h2 id="HourlyStatsReport">Hourly statistics <a href="#top" title="Back to top">^</a></h2>
+       print $fh qq{
+       <div id="write-traffic" class="analysis-item row-fluid">
+               <h2 class=""><i class="icon-road"></i> INSERT/UPDATE/DELETE Traffic</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$write_peak queries/s</span> <span class="figure-label">Query Peak</span></li>
+                                       <li><span class="figure">$write_peak_date</span> <span class="figure-label">Date</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <h3 class="">Write queries per second ($avg_minutes minutes average)</h3>
+$drawn_graphs{writequeries_graph}
+               </div>
+       </div><!-- end of write-traffic -->
 };
-       }
-       if ($overall_stat{'queries_number'}) {
-               print $fh qq{
-<table class="HourStatsTable">
-       <tr>
-               <th rowspan="2">Day</th>
-               <th rowspan="2">Hour</th>
-               <th colspan="2">Queries</th>
-               <th colspan="2">SELECT queries</th>
-               <th colspan="4">Write queries</th>
-};
-               if (exists $connection_info{chronos}) {
-                       print $fh "             <th colspan=\"2\">Connections</th>\n";
-               }
-               if (exists $session_info{chronos}) {
-                       print $fh "             <th colspan=\"2\">Sessions</th>\n";
-               }
-               print $fh qq{
-       </tr>
-       <tr>
-               <th>Count</th>
-               <th>Min/Max/Avg&nbsp;duration&nbsp;</th>
-               <th>Count</th>
-               <th>Avg&nbsp;duration&nbsp;</th>
-               <th>INSERT</th>
-               <th>UPDATE</th>
-               <th>DELETE</th>
-               <th>Avg&nbsp;duration&nbsp;</th>
+       delete $drawn_graphs{writequeries_graph};
+
+       print $fh qq{
+       <div id="duration-traffic" class="analysis-item row-fluid">
+               <h2 class=""><i class="icon-time"></i> Queries duration</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$fmt_duration</span> <span class="figure-label">Total query duration</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <h3 class="">Average queries duration ($avg_minutes minutes average)</h3>
+$drawn_graphs{durationqueries_graph}
+               </div>
+       </div><!-- end of duration-traffic -->
 };
-               if (exists $connection_info{chronos}) {
-                       print $fh "             <th>Count</th><th>Avg/s</th>\n";
-               }
-               if (exists $session_info{chronos}) {
-                       print $fh "             <th>Count</th><th>Avg&nbsp;duration&nbsp;</th>\n";
-               }
-               print $fh qq{
-       </tr>
+       delete $drawn_graphs{durationqueries_graph};
+
+       print $fh qq{
+       <div id="prepared-queries-ratio" class="analysis-item row-fluid">
+               <h2 class=""><i class="icon-cog"></i> Prepared queries ratio</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$bind_vs_prepared</span> <span class="figure-label">Ratio of bind vs prepare</span></li>
+                                       <li><span class="figure">$prepared_vs_normal %</span> <span class="figure-label">Ratio between prepared and "usual" statements</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <h3 class="">Ratio of bind vs prepare statements ($avg_minutes minutes average)</h3>
+$drawn_graphs{bindpreparequeries_graph}
+               </div>
+       </div><!-- end of prepared-queries-ratio -->
 };
+       delete $drawn_graphs{bindpreparequeries_graph};
 
-               foreach my $d (sort {$a <=> $b} keys %per_minute_info) {
-                       my $c = 1;
-                       $d =~ /^\d{4}(\d{2})(\d{2})$/;
-                       my $zday = "$abbr_month{$1} $2";
-                       foreach my $h (sort {$a <=> $b} keys %{$per_minute_info{$d}}) {
-                               my %cur_period_info = ();
-                               my $write_average_duration = 0;
-                               my $write_average_count = 0;
-                               foreach my $m (keys %{$per_minute_info{$d}{$h}}) {
-                                       $cur_period_info{count} += ($per_minute_info{$d}{$h}{$m}{query}{count} || 0);
-                                       $cur_period_info{duration} += ($per_minute_info{$d}{$h}{$m}{query}{duration} || 0);
-                                       $cur_period_info{min} = $per_minute_info{$d}{$h}{$m}{query}{duration} if (!exists $cur_period_info{min} || ($per_minute_info{$d}{$h}{$m}{query}{duration} < $cur_period_info{min}));
-                                       $cur_period_info{max} = $per_minute_info{$d}{$h}{$m}{query}{duration} if (!exists $cur_period_info{max} || ($per_minute_info{$d}{$h}{$m}{query}{duration} > $cur_period_info{max}));
-                                       foreach my $a (@SQL_ACTION) {
-                                               $cur_period_info{$a}{count} += ($per_minute_info{$d}{$h}{$m}{$a}{count} || 0);
-                                               $cur_period_info{$a}{duration} += ($per_minute_info{$d}{$h}{$m}{$a}{duration} || 0);
-                                       }
-                               }
+}
 
-                               $cur_period_info{average} = $cur_period_info{duration} / ($cur_period_info{count} || 1);
-                               $cur_period_info{'SELECT'}{average} = $cur_period_info{'SELECT'}{duration} / ($cur_period_info{'SELECT'}{count} || 1);
-                               $write_average_duration = ($cur_period_info{'INSERT'}{duration} +
-                                               $cur_period_info{'UPDATE'}{duration} +
-                                               $cur_period_info{'DELETE'}{duration});
-                               $write_average_count = ($cur_period_info{'INSERT'}{count} +
-                                               $cur_period_info{'UPDATE'}{count} +
-                                               $cur_period_info{'DELETE'}{count});
-                               my $colb = $c % 2;
-                               $zday = "&nbsp;" if ($c > 1);
-                               my $write_average = $write_average_duration / ($write_average_count || 1);
-                               print $fh "<tr class=\"row$colb\"><td>$zday</td><td>$h</td><td class=\"right\">",
-                                       &comma_numbers($cur_period_info{count}),  "</td><td class=\"right\">",
-                                       &convert_time($cur_period_info{min}),"/",&convert_time($cur_period_info{max}),"/",&convert_time($cur_period_info{average}), "</td><td class=\"right\">",
-                                       &comma_numbers($cur_period_info{'SELECT'}{count}  || 0), "</td><td class=\"right\">",
-                                       &convert_time($cur_period_info{'SELECT'}{average} || 0), "</td><td class=\"right\">",
-                                       &comma_numbers($cur_period_info{'INSERT'}{count}  || 0), "</td><td class=\"right\">",
-                                       &comma_numbers($cur_period_info{'UPDATE'}{count}  || 0), "</td><td class=\"right\">",
-                                       &comma_numbers($cur_period_info{'DELETE'}{count}  || 0), "</td><td class=\"right\">",
-                                       &convert_time($write_average), "</td>";
-                               if (exists $connection_info{chronos}) {
-                                       print $fh "<td class=\"right\">", &comma_numbers($connection_info{chronos}{"$d"}{"$h"}{count}),
-                                               "</td><td class=\"right\">",
-                                               &comma_numbers(sprintf("%0.2f", $connection_info{chronos}{"$d"}{"$h"}{count} / 3600)), "/s</td>";
-                               }
-                               if (exists $session_info{chronos}) {
-                                       $cur_period_info{'session'}{average} =
-                                               $session_info{chronos}{"$d"}{"$h"}{duration} / ($session_info{chronos}{"$d"}{"$h"}{count} || 1);
-                                       print $fh "<td class=\"right\">", &comma_numbers($session_info{chronos}{"$d"}{"$h"}{count}),
-                                               "</td><td  class=\"right\">", &convert_time($cur_period_info{'session'}{average}), "</td>";
-                               }
-                               print $fh "</tr>\n";
-                               $c++;
-                       }
-               }
+sub compute_query_graphs
+{
+       my %graph_data = ();
+       if ($graph) {
+               foreach my $tm (sort {$a <=> $b} keys %per_minute_info) {
+                       $tm =~ /(\d{4})(\d{2})(\d{2})/;
+                       my $y  = $1 - 1900;
+                       my $mo = $2 - 1;
+                       my $d  = $3;
+                       foreach my $h ("00" .. "23") {
+                               next if (!exists $per_minute_info{$tm}{$h});
+                               my %q_dataavg = ();
+                               my %a_dataavg = ();
+                               my %c_dataavg = ();
+                               my %p_dataavg = ();
+                               foreach my $m ("00" .. "59") {
+                                       next if (!exists $per_minute_info{$tm}{$h}{$m});
 
-               print $fh "</table>\n";
+                                       my $rd = &average_per_minutes($m, $avg_minutes);
 
-               if ($graph) {
-                       my %graph_data = ();
-                       foreach my $tm (sort {$a <=> $b} keys %per_minute_info) {
-                               $tm =~ /(\d{4})(\d{2})(\d{2})/;
-                               my $y  = $1 - 1900;
-                               my $mo = $2 - 1;
-                               my $d  = $3;
-                               foreach my $h ("00" .. "23") {
-                                       next if (!exists $per_minute_info{$tm}{$h});
-                                       my %q_dataavg = ();
-                                       my %a_dataavg = ();
-                                       my %c_dataavg = ();
-                                       foreach my $m ("00" .. "59") {
-                                               next if (!exists $per_minute_info{$tm}{$h}{$m});
-
-                                               my $rd = &average_per_minutes($m, $avg_minutes);
-
-                                               if (exists $per_minute_info{$tm}{$h}{$m}{query}) {
+                                       $p_dataavg{prepare}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{prepare}
+                                               if (exists $per_minute_info{$tm}{$h}{$m}{prepare});
+                                       $p_dataavg{prepare}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{prepare}
+                                               if (exists $per_minute_info{$tm}{$h}{$m}{parse});
+                                       $p_dataavg{execute}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{execute}
+                                               if (exists $per_minute_info{$tm}{$h}{$m}{execute});
 
-                                                       # Average per minute
-                                                       $q_dataavg{count}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{query}{count};
-                                                       if (exists $per_minute_info{$tm}{$h}{$m}{query}{duration}) {
-                                                               $q_dataavg{duration}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{query}{duration};
-                                                       }
+                                       if (exists $per_minute_info{$tm}{$h}{$m}{query}) {
 
-                                                       # Search minimum and maximum during this minute
-                                                       foreach my $s (keys %{$per_minute_info{$tm}{$h}{$m}{query}{second}}) {
-                                                               $q_dataavg{max}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{query}{second}{$s}
-                                                                       if ($per_minute_info{$tm}{$h}{$m}{query}{second}{$s} > $q_dataavg{max}{"$rd"});
-                                                               $q_dataavg{min}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{query}{second}{$s}
-                                                                       if (not exists $q_dataavg{min}{"$rd"}
-                                                                       || ($per_minute_info{$tm}{$h}{$m}{query}{second}{$s} < $q_dataavg{min}{"$rd"}));
-                                                       }
+                                               # Average per minute
+                                               $q_dataavg{count}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{query}{count};
+                                               if (exists $per_minute_info{$tm}{$h}{$m}{query}{duration}) {
+                                                       $q_dataavg{duration}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{query}{duration};
+                                               }
 
-                                                       if (!$disable_query) {
-                                                               foreach my $action (@SQL_ACTION) {
-                                                                       next if (!$per_minute_info{$tm}{$h}{$m}{$action}{count});
-                                                                       $a_dataavg{$action}{count}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{count} || 0);
-                                                                       $a_dataavg{$action}{duration}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{duration} || 0);
-                                                                       if ( ($action ne 'SELECT') && exists $per_minute_info{$tm}{$h}{$m}{$action}{count}) {
-                                                                               $a_dataavg{write}{count}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{count} || 0);
-                                                                               $a_dataavg{write}{duration}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{duration} || 0);
-                                                                       }
-                                                               }
-                                                       }
+                                               # Search minimum and maximum during this minute
+                                               foreach my $s (keys %{$per_minute_info{$tm}{$h}{$m}{query}{second}}) {
+                                                       $q_dataavg{max}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{query}{second}{$s}
+                                                               if ($per_minute_info{$tm}{$h}{$m}{query}{second}{$s} > $q_dataavg{max}{"$rd"});
+                                                       $q_dataavg{min}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{query}{second}{$s}
+                                                               if (not exists $q_dataavg{min}{"$rd"}
+                                                               || ($per_minute_info{$tm}{$h}{$m}{query}{second}{$s} < $q_dataavg{min}{"$rd"}));
                                                }
-                                               if (exists $per_minute_info{$tm}{$h}{$m}{connection}) {
 
-                                                       # Average per minute
-                                                       $c_dataavg{average}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{connection}{count};
-
-                                                       # Search minimum and maximum during this minute
-                                                       foreach my $s (keys %{$per_minute_info{$tm}{$h}{$m}{connection}{second}}) {
-                                                               $c_dataavg{max}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{connection}{second}{$s}
-                                                                       if ($per_minute_info{$tm}{$h}{$m}{connection}{second}{$s} > $c_dataavg{max}{"$rd"});
-                                                               $c_dataavg{min}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{connection}{second}{$s}
-                                                                       if (not exists $c_dataavg{min}{"$rd"}
-                                                                       || ($per_minute_info{$tm}{$h}{$m}{connection}{second}{$s} < $c_dataavg{min}{"$rd"}));
+                                               if (!$disable_query) {
+                                                       foreach my $action (@SQL_ACTION) {
+                                                               next if (!$per_minute_info{$tm}{$h}{$m}{$action}{count});
+                                                               $a_dataavg{$action}{count}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{count} || 0);
+                                                               $a_dataavg{$action}{duration}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{duration} || 0);
+                                                               if ( ($action ne 'SELECT') && exists $per_minute_info{$tm}{$h}{$m}{$action}{count}) {
+                                                                       $a_dataavg{write}{count}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{count} || 0);
+                                                                       $a_dataavg{write}{duration}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{$action}{duration} || 0);
+                                                               }
                                                        }
-                                                       delete $per_minute_info{$tm}{$h}{$m}{connection};
                                                }
                                        }
+                                       if (exists $per_minute_info{$tm}{$h}{$m}{connection}) {
+
+                                               # Average per minute
+                                               $c_dataavg{average}{"$rd"} += $per_minute_info{$tm}{$h}{$m}{connection}{count};
+
+                                               # Search minimum and maximum during this minute
+                                               foreach my $s (keys %{$per_minute_info{$tm}{$h}{$m}{connection}{second}}) {
+                                                       $c_dataavg{max}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{connection}{second}{$s}
+                                                               if ($per_minute_info{$tm}{$h}{$m}{connection}{second}{$s} > $c_dataavg{max}{"$rd"});
+                                                       $c_dataavg{min}{"$rd"} = $per_minute_info{$tm}{$h}{$m}{connection}{second}{$s}
+                                                               if (not exists $c_dataavg{min}{"$rd"}
+                                                               || ($per_minute_info{$tm}{$h}{$m}{connection}{second}{$s} < $c_dataavg{min}{"$rd"}));
+                                               }
+                                               delete $per_minute_info{$tm}{$h}{$m}{connection};
+                                       }
+                               }
 
-                                       foreach my $rd (@avgs) {
-                                               my $t = timegm_nocheck(0, $rd, $h, $d, $mo, $y) * 1000;
+                               foreach my $rd (@avgs) {
+                                       my $t = timegm_nocheck(0, $rd, $h, $d, $mo, $y) * 1000;
 
-                                               next if ($t < $t_min);
-                                               last if ($t > $t_max);
+                                       next if ($t < $t_min);
+                                       last if ($t > $t_max);
 
+                                       if (exists $q_dataavg{count}) {
                                                # Average queries per minute
                                                $graph_data{query2} .= "[$t, " . int(($q_dataavg{count}{"$rd"} || 0) / (60 * $avg_minutes)) . "],";
                                                # Maxi queries per minute
@@ -2989,225 +3178,600 @@ sub print_hourly_reports
                                                $graph_data{query3} .= "[$t, " . ($q_dataavg{min}{"$rd"} || 0) . "],";
                                                # Average duration per minute
                                                $graph_data{query4} .= "[$t, " . sprintf("%.3f", ($q_dataavg{duration}{"$rd"} || 0) / ($q_dataavg{count}{"$rd"} || 1)) . "],";
-                                               if (scalar keys %c_dataavg) { 
-                                                       # Average connections per minute
-                                                       $graph_data{conn2} .= "[$t, " . int(($c_dataavg{average}{"$rd"} || 0) / (60 * $avg_minutes)) . "],";
-                                                       # Maxi connections per minute
-                                                       $graph_data{conn1} .= "[$t, " . ($c_dataavg{max}{"$rd"} || 0) . "],";
-
-                                                       # Mini connections per minute
-                                                       $graph_data{conn3} .= "[$t, " . ($c_dataavg{min}{"$rd"} || 0) . "],";
-                                               }
-                                               if (!$disable_query && (scalar keys %a_dataavg> 0)) { 
-                                                       foreach my $action (@SQL_ACTION) {
-                                                               next if ($select_only && ($action ne 'SELECT'));
-                                                               # Average per minute
-                                                               $graph_data{"$action"} .= "[$t, " . ($a_dataavg{$action}{count}{"$rd"} || 0) . "],";
-                                                               if ($action eq 'SELECT') {
-                                                                       $graph_data{"$action-2"} .= "[$t, " . sprintf("%.3f", ($a_dataavg{$action}{duration}{"$rd"} || 0) / ($a_dataavg{$action}{count}{"$rd"} || 1)) . "]," if ($action eq 'SELECT');
-                                                               } else {
-                                                                       $graph_data{"write"} .= "[$t, " . sprintf("%.3f", ($a_dataavg{write}{duration}{"$rd"} || 0) / ($a_dataavg{write}{count}{"$rd"} || 1)) . "],";
-                                                               }
+                                       }
+                                       if (scalar keys %c_dataavg) { 
+                                               # Average connections per minute
+                                               $graph_data{conn2} .= "[$t, " . int(($c_dataavg{average}{"$rd"} || 0) / (60 * $avg_minutes)) . "],";
+                                               # Maxi connections per minute
+                                               $graph_data{conn1} .= "[$t, " . ($c_dataavg{max}{"$rd"} || 0) . "],";
+
+                                               # Mini connections per minute
+                                               $graph_data{conn3} .= "[$t, " . ($c_dataavg{min}{"$rd"} || 0) . "],";
+                                       }
+                                       if (!$disable_query && (scalar keys %a_dataavg> 0)) { 
+                                               foreach my $action (@SQL_ACTION) {
+                                                       next if ($select_only && ($action ne 'SELECT'));
+                                                       # Average per minute
+                                                       $graph_data{"$action"} .= "[$t, " . ($a_dataavg{$action}{count}{"$rd"} || 0) . "],";
+                                                       if ($action eq 'SELECT') {
+                                                               $graph_data{"$action-2"} .= "[$t, " . sprintf("%.3f", ($a_dataavg{$action}{duration}{"$rd"} || 0) / ($a_dataavg{$action}{count}{"$rd"} || 1)) . "]," if ($action eq 'SELECT');
+                                                       } else {
+                                                               $graph_data{"write"} .= "[$t, " . sprintf("%.3f", ($a_dataavg{write}{duration}{"$rd"} || 0) / ($a_dataavg{write}{count}{"$rd"} || 1)) . "],";
                                                        }
                                                }
                                        }
+                                       if (!$disable_query && (scalar keys %p_dataavg> 0)) { 
+                                               $graph_data{prepare} .= "[$t, " . ($p_dataavg{prepare}{"$rd"} || 0) . "],";
+                                               $graph_data{execute} .= "[$t, " . ($p_dataavg{execute}{"$rd"} || 0) . "],";
+                                               $graph_data{ratio_bind_prepare} .= "[$t, " . sprintf("%.2f", ($p_dataavg{execute}{"$rd"} || 0) / ($p_dataavg{prepare}{"$rd"} || 1)) . "],";
+                                       }
                                }
                        }
-                       foreach (keys %graph_data) {
-                               $graph_data{$_} =~ s/,$//;
-                       }
-                       &flotr2_graph( $graphid++, 'queriespersecond_graph', $graph_data{query1},
-                               $graph_data{query2}, $graph_data{query3}, 'Queries per second (' . $avg_minutes . ' minutes average)',
-                               'Queries per second', 'Maximum', 'Average', 'Minimum'
-                       );
-
-                       if (exists $graph_data{conn1}) {
-                               &flotr2_graph( $graphid++, 'connectionspersecond_graph', $graph_data{conn1},
-                                       $graph_data{conn2}, $graph_data{conn3}, 'Connections per second (' . $avg_minutes . ' minutes average)',
-                                       'Connections per second', 'Maximum', 'Average', 'Minimum'
-                               );
-                       }
-
-                       if (!$disable_query) {
-                               &flotr2_graph( $graphid++, 'selectqueries_graph', $graph_data{"SELECT"}, '', '',
-                                        'SELECT queries (' . $avg_minutes . ' minutes period)',
-                                       'Queries', 'Number of queries', '', ''
-                               ) if ($graph_data{"SELECT"});
-                               # Write queries
-                               if (!$select_only && $graph_data{"write"}) {
-                                       &flotr2_graph(
-                                               $graphid++, 'writequeries_graph', $graph_data{"DELETE"}, $graph_data{"INSERT"}, $graph_data{"UPDATE"}, 'Write queries (' . $avg_minutes . ' minutes period)',
-                                               'Queries', 'DELETE queries', 'INSERT queries', 'UPDATE queries'
-                                       );
-                               }
-                       }
-                       &flotr2_graph(
-                               $graphid++, 'queriesduration_graph', $graph_data{query4}, $graph_data{"SELECT-2"}, $graph_data{write}, 'Average queries duration (' . $avg_minutes . ' minutes average)',
-                               'Duration', 'All queries', 'Select queries', 'Write queries'
-                       );
                }
+               foreach (keys %graph_data) {
+                       $graph_data{$_} =~ s/,$//;
+               }
+       }
+       $drawn_graphs{'queriespersecond_graph'} = &flotr2_graph( $graphid++, 'queriespersecond_graph', $graph_data{query1},
+               $graph_data{query2}, $graph_data{query3}, 'Queries per second (' . $avg_minutes . ' minutes average)',
+               'Queries per second', 'Maximum', 'Average', 'Minimum'
+       );
+
+       $drawn_graphs{'connectionspersecond_graph'} = &flotr2_graph( $graphid++, 'connectionspersecond_graph', $graph_data{conn1},
+               $graph_data{conn2}, $graph_data{conn3}, 'Connections per second (' . $avg_minutes . ' minutes average)',
+               'Connections per second', 'Maximum', 'Average', 'Minimum'
+       );
+
+       $drawn_graphs{'selectqueries_graph'} = &flotr2_graph( $graphid++, 'selectqueries_graph', $graph_data{"SELECT"}, '', '',
+                'SELECT queries (' . $avg_minutes . ' minutes period)',
+               'Queries', 'Number of queries', '', ''
+       );
+       $drawn_graphs{'writequeries_graph'} = &flotr2_graph(
+               $graphid++, 'writequeries_graph', $graph_data{"DELETE"}, $graph_data{"INSERT"}, $graph_data{"UPDATE"}, 'Write queries (' . $avg_minutes . ' minutes period)',
+               'Queries', 'DELETE queries', 'INSERT queries', 'UPDATE queries'
+       );
+       if (!$select_only) {
+               $drawn_graphs{'durationqueries_graph'} = &flotr2_graph(
+                       $graphid++, 'durationqueries_graph', $graph_data{query4}, $graph_data{"SELECT-2"}, $graph_data{write}, 'Average queries duration (' . $avg_minutes . ' minutes average)',
+                       'Duration', 'All queries', 'Select queries', 'Write queries'
+               );
+       } else {
+               $drawn_graphs{'durationqueries_graph'} = &flotr2_graph(
+                       $graphid++, 'durationqueries_graph', $graph_data{query4}, '', '', 'Average queries duration (' . $avg_minutes . ' minutes average)',
+                       'Duration', 'Select queries'
+               );
+       }
+
+       $drawn_graphs{'bindpreparequeries_graph'} = &flotr2_graph(
+               $graphid++, 'bindpreparequeries_graph', $graph_data{prepare}, $graph_data{"execute"}, $graph_data{ratio_bind_prepare}, 'Bind versus prepare statements (' . $avg_minutes . ' minutes average)',
+               'Number of statements', 'Prepare/Parse', 'Execute/Bind', 'Bind vs prepare'
+       );
+
+}
+
+sub print_simultaneous_connection
+{
+
+       my $connection_peak = 0;
+       my $connection_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{connection} <=> $overall_stat{'peak'}{$a}{connection}} keys %{$overall_stat{'peak'}}) {
+               $connection_peak = &comma_numbers($overall_stat{'peak'}{$_}{connection});
+               $connection_peak_date = $_;
+               last;
        }
 
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-external-link-sign"></i> Connections</h1>
+
+       <div id="simultaneous-connections" class="analysis-item row-fluid">
+       <h2 class=""><i class="icon-random"></i> Simultaneous Connections</h2>
+       <div class="span3">
+               <h3 class="">Key values</h3>
+               <div class="well key-figures">
+                       <ul>
+                               <li><span class="figure">$connection_peak connections</span> <span class="figure-label">Connection Peak</span></li>
+                               <li><span class="figure">$connection_peak_date</span> <span class="figure-label">Date</span></li>    
+                       </ul>
+               </div>
+       </div>
+       <div class="span8">
+               <h3 class="">Connections per second ($avg_minutes minutes average)</h3>
+$drawn_graphs{connectionspersecond_graph}
+               </div>
+       </div><!-- end of Simultaneous connections -->
+};
+       delete $drawn_graphs{connectionspersecond_graph};
+
 }
 
-sub print_checkpoint_tempfile_vacuum_reports
+sub print_user_connection
 {
 
-       if (scalar keys %per_minute_info > 0) {
+       my %infos = ();
+       my $total_count = 0;
+       my $c           = 0;
+       my $conn_user_info = '';
+       my @main_user = ('unknown',0);
+       foreach my $u (sort keys %{$connection_info{user}}) {
+               $conn_user_info .= "<tr><td>$u</td><td>" .
+                                  &comma_numbers($connection_info{user}{$u}) . "</td></tr>";
+               $total_count += $connection_info{user}{$u};
+               if ($main_user[1] < $connection_info{user}{$u}) {
+                       $main_user[0] = $u;
+                       $main_user[1] = $connection_info{user}{$u};
+               }
+       }
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %{$connection_info{user}}) {
+                       if ((($connection_info{user}{$d} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $infos{$d} = $connection_info{user}{$d} || 0;
+                       } else {
+                               $infos{"Sum connections < $pie_percentage_limit%"} += $connection_info{user}{$d} || 0;
+                               push(@small, $d);
+                       }
+               }
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum connections < $pie_percentage_limit%"};
+                       delete $infos{"Sum connections < $pie_percentage_limit%"};
+               }
+       }
+       $drawn_graphs{userconnections_graph} = &flotr2_piegraph($graphid++, 'userconnections_graph', 'Connections per user', %infos);
+       $total_count = &comma_numbers($total_count);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="connections-per-user">
+               <h2><i class="icon-user"></i> Connections per user</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_user[0]</span> <span class="figure-label">Main User</span></li>
+                                       <li><span class="figure">$total_count connections</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#connections-per-user-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#connections-per-user-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="connections-per-user-graph">
+                                               $drawn_graphs{userconnections_graph}
+                                       </div>
+                                       <div class="tab-pane" id="connections-per-user-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>User</th>
+                                                                       <th>Count</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $conn_user_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of connections per user -->
+};
+       delete $drawn_graphs{userconnections_graph};
+}
 
-               print $fh qq{<table class="HourStatsTable"><tr><th rowspan="2">Day</th><th rowspan="2">Hour</th>};
-               if ($tempfile_info{count}) {
-                       print $fh qq{<th colspan="2">Temporary files</th>};
+sub print_host_connection
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $c           = 0;
+       my $conn_host_info = '';
+       my @main_host = ('unknown',0);
+       foreach my $h (sort keys %{$connection_info{host}}) {
+               $conn_host_info .= "<tr><td>$h</td><td>" .
+                                   &comma_numbers($connection_info{host}{$h}) . "</td></tr>";
+               $total_count += $connection_info{host}{$h};
+               if ($main_host[1] < $connection_info{host}{$h}) {
+                       $main_host[0] = $h;
+                       $main_host[1] = $connection_info{host}{$h};
                }
-               if ($checkpoint_info{wbuffer}) {
-                       print $fh qq{<th colspan="7">Checkpoints</th>};
+       }
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %{$connection_info{host}}) {
+                       if ((($connection_info{host}{$d} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $infos{$d} = $connection_info{host}{$d} || 0;
+                       } else {
+                               $infos{"Sum connections < $pie_percentage_limit%"} += $connection_info{host}{$d} || 0;
+                               push(@small, $d);
+                       }
+               }
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum connections < $pie_percentage_limit%"};
+                       delete $infos{"Sum connections < $pie_percentage_limit%"};
+               }
+       }
+       $drawn_graphs{hostconnections_graph} = &flotr2_piegraph($graphid++, 'hostconnections_graph', 'Connections per host', %infos);
+       $total_count = &comma_numbers($total_count);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="connections-per-host">
+               <h2><i class="icon-sitemap"></i> Connections per host</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_host[0]</span> <span class="figure-label">Main Host</span></li>
+                                       <li><span class="figure">$total_count connections</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#connections-per-host-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#connections-per-host-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="connections-per-host-graph">
+                                               $drawn_graphs{hostconnections_graph}
+                                       </div>
+                                       <div class="tab-pane" id="connections-per-host-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Host</th>
+                                                                       <th>Count</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $conn_host_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of connections per host -->
+};
+
+       delete $drawn_graphs{hostconnections_graph};
+}
+
+sub print_database_connection
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $conn_database_info = '';
+       my @main_database = ('unknown',0);
+       foreach my $d (sort keys %{$connection_info{database}}) {
+               $conn_database_info .= "<tr><td>$d</td><td>&nbsp;</td><td>" .
+                                        &comma_numbers($connection_info{database}{$d}) . "</td></tr>";
+               $total_count += $connection_info{database}{$d};
+               if ($main_database[1] < $connection_info{database}{$d}) {
+                       $main_database[0] = $d;
+                       $main_database[1] = $connection_info{database}{$d};
                }
-               if ($checkpoint_info{warning}) {
-                       print $fh qq{<th colspan="2">Checkpoint warning</th>};
+               foreach my $u (sort keys %{$connection_info{user}}) {
+                       next if (!exists $connection_info{database_user}{$d}{$u});
+                       $conn_database_info .= "<tr><td>&nbsp;</td><td>$u</td><td>" .
+                               &comma_numbers($connection_info{database_user}{$d}{$u}) . "</td></tr>";
                }
-               if ($restartpoint_info{wbuffer}) {
-                       print $fh qq{<th colspan="4">Restartpoints</th>};
+       }
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %{$connection_info{database}}) {
+                       if ((($connection_info{database}{$d} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $infos{$d} = $connection_info{database}{$d} || 0;
+                       } else {
+                               $infos{"Sum connections < $pie_percentage_limit%"} += $connection_info{database}{$d} || 0;
+                               push(@small, $d);
+                       }
                }
-               if (exists $autovacuum_info{chronos}) {
-                       print $fh "             <th colspan=\"2\">Autovacuum</th>\n";
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum connections < $pie_percentage_limit%"};
+                       delete $infos{"Sum connections < $pie_percentage_limit%"};
                }
-               if ($tempfile_info{count} || $checkpoint_info{wbuffer} || $restartpoint_info{wbuffer}) {
-                       print $fh qq{</tr><tr>};
+       }
+       $drawn_graphs{databaseconnections_graph} = &flotr2_piegraph($graphid++, 'databaseconnections_graph', 'Connections per database', %infos);
+       $total_count = &comma_numbers($total_count);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="connections-per-database">
+               <h2><i class="icon-list-alt"></i> Connections per database</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_database[0]</span> <span class="figure-label">Main Database</span></li>
+                                       <li><span class="figure">$total_count connections</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#connections-per-database-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#connections-per-database-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="connections-per-database-graph">
+                                               $drawn_graphs{databaseconnections_graph}
+                                       </div>
+                                       <div class="tab-pane" id="connections-per-database-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Database</th>
+                                                                       <th>User</th>
+                                                                       <th>Count</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $conn_database_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of connections per database -->
+};
+       delete $drawn_graphs{databaseconnections_graph};
+}
+
+sub print_user_session
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $c           = 0;
+       my $sess_user_info = '';
+       my @main_user = ('unknown',0);
+       foreach my $u (sort keys %{$session_info{user}}) {
+               $sess_user_info .= "<tr><td>$u</td><td>" . &comma_numbers($session_info{user}{$u}{count}) .
+                                  "</td><td>" . &convert_time($session_info{user}{$u}{duration}), "</td><td>" .
+                                  &convert_time($session_info{user}{$u}{duration} / $session_info{user}{$u}{count}) .
+                                  "</td></tr>";
+               $total_count += $session_info{user}{$u}{count};
+               if ($main_user[1] < $session_info{user}{$u}{count}) {
+                       $main_user[0] = $u;
+                       $main_user[1] = $session_info{user}{$u}{count};
                }
-               if ($tempfile_info{count}) {
-                       print $fh qq{<th>Count</th><th>Avg&nbsp;size</th>};
+       }
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %{$session_info{user}}) {
+                       if ((($session_info{user}{$d}{count} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $infos{$d} = $session_info{user}{$d}{count} || 0;
+                       } else {
+                               $infos{"Sum sessions < $pie_percentage_limit%"} += $session_info{user}{$d}{count} || 0;
+                               push(@small, $d);
+                       }
                }
-               if ($checkpoint_info{wbuffer}) {
-                       print $fh
-       qq{<th>Written buffers</th><th>Added</th><th>Removed</th><th>Recycled</th><th>Write time (sec)</th><th>Sync time (sec)</th><th>Total time (sec)</th>};
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum sessions < $pie_percentage_limit%"};
+                       delete $infos{"Sum sessions < $pie_percentage_limit%"};
                }
-               if ($checkpoint_info{warning}) {
-                       print $fh qq{<th>Count</th><th>Avg time (sec)</th>};
+       }
+       $drawn_graphs{usersessions_graph} = &flotr2_piegraph($graphid++, 'usersessions_graph', 'Connections per user', %infos);
+       $sess_user_info = qq{<tr><td colspan="5">$NODATA</td></tr>} if (!$total_count);
+       $total_count = &comma_numbers($total_count);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="sessions-per-user">
+               <h2><i class="icon-user"></i> Sessions per user</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_user[0]</span> <span class="figure-label">Main User</span></li>
+                                       <li><span class="figure">$total_count sessions</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#sessions-per-user-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#sessions-per-user-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="sessions-per-user-graph">
+                                               $drawn_graphs{usersessions_graph}
+                                       </div>
+                                       <div class="tab-pane" id="sessions-per-user-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>User</th>
+                                                                       <th>Count</th>
+                                                                       <th>Total Duration</th>
+                                                                       <th>Average Duration</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $sess_user_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of sessions per user -->
+};
+       delete $drawn_graphs{usersessions_graph};
+}
+
+sub print_host_session
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $c           = 0;
+       my $sess_host_info = '';
+       my @main_host = ('unknown',0);
+       foreach my $h (sort keys %{$session_info{host}}) {
+               $sess_host_info .= "<tr><td>$h</td><td>" . &comma_numbers($session_info{host}{$h}{count}) .
+                                  "</td><td>" . &convert_time($session_info{host}{$h}{duration}) . "</td><td>" .
+                                  &convert_time($session_info{host}{$h}{duration} / $session_info{host}{$h}{count}) .
+                                  "</td></tr>";
+               $total_count += $session_info{host}{$h}{count};
+               if ($main_host[1] < $session_info{host}{$h}{count}) {
+                       $main_host[0] = $h;
+                       $main_host[1] = $session_info{host}{$h}{count};
                }
-               if ($restartpoint_info{wbuffer}) {
-                       print $fh
-       qq{<th>Written buffers</th><th>Write time (sec)</th><th>Sync time (sec)</th><th>Total time (sec)</th>};
+       }
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %{$session_info{host}}) {
+                       if ((($session_info{host}{$d}{count} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $infos{$d} = $session_info{host}{$d}{count} || 0;
+                       } else {
+                               $infos{"Sum sessions < $pie_percentage_limit%"} += $session_info{host}{$d}{count} || 0;
+                               push(@small, $d);
+                       }
                }
-               if (exists $autovacuum_info{chronos}) {
-                       print $fh "             <th>VACUUMs</th><th>ANALYZEs</th>\n";
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum sessions < $pie_percentage_limit%"};
+                       delete $infos{"Sum sessions < $pie_percentage_limit%"};
                }
-               if ($tempfile_info{count} || $checkpoint_info{wbuffer} || $restartpoint_info{wbuffer}) {
-                       print $fh qq{</tr>};
-                       foreach my $d (sort {$a <=> $b} keys %per_minute_info) {
-                               my $c = 1;
-                               $d =~ /^\d{4}(\d{2})(\d{2})$/;
-                               my $zday = "$abbr_month{$1} $2";
-                               foreach my $h (sort {$a <=> $b} keys %{$per_minute_info{$d}}) {
-                                       my $colb = $c % 2;
-                                       $zday = "&nbsp;" if ($c > 1);
-                                       print $fh "<tr class=\"row$colb\"><td>$zday</td><td>$h</td>";
-                                       my %tinf = ();
-                                       my %cinf = ();
-                                       my %rinf = ();
-                                       my %ainf = ();
-                                       foreach my $m (keys %{$per_minute_info{$d}{$h}}) {
+       }
+       $drawn_graphs{hostsessions_graph} = &flotr2_piegraph($graphid++, 'hostsessions_graph', 'Connections per host', %infos);
+       $sess_host_info = qq{<tr><td colspan="4">$NODATA</td></tr>} if (!$total_count);
+       $total_count = &comma_numbers($total_count);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="sessions-per-host">
+               <h2><i class="icon-sitemap"></i> Sessions per host</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_host[0]</span> <span class="figure-label">Main Host</span></li>
+                                       <li><span class="figure">$total_count sessions</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#sessions-per-host-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#sessions-per-host-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="sessions-per-host-graph">
+                                               $drawn_graphs{hostsessions_graph}
+                                       </div>
+                                       <div class="tab-pane" id="sessions-per-host-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Host</th>
+                                                                       <th>Count</th>
+                                                                       <th>Total Duration</th>
+                                                                       <th>Average Duration</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $sess_host_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of sessions per host -->
+};
 
-                                               if (exists $per_minute_info{$d}{$h}{$m}{tempfile}) {
-                                                       $tinf{size} += $per_minute_info{$d}{$h}{$m}{tempfile}{size};
-                                                       $tinf{count} += $per_minute_info{$d}{$h}{$m}{tempfile}{count};
-                                               }
-                                               if (exists $per_minute_info{$d}{$h}{$m}{checkpoint}) {
-                                                       $cinf{wbuffer} += $per_minute_info{$d}{$h}{$m}{checkpoint}{wbuffer};
-                                                       $cinf{file_added} += $per_minute_info{$d}{$h}{$m}{checkpoint}{file_added};
-                                                       $cinf{file_removed} += $per_minute_info{$d}{$h}{$m}{checkpoint}{file_removed};
-                                                       $cinf{file_recycled} += $per_minute_info{$d}{$h}{$m}{checkpoint}{file_recycled};
-                                                       $cinf{write} += $per_minute_info{$d}{$h}{$m}{checkpoint}{write};
-                                                       $cinf{sync} += $per_minute_info{$d}{$h}{$m}{checkpoint}{sync};
-                                                       $cinf{total} += $per_minute_info{$d}{$h}{$m}{checkpoint}{total};
-                                               }
-                                               if (exists $per_minute_info{$d}{$h}{$m}{checkpoint}{warning}) {
-                                                       $cinf{warning} += $per_minute_info{$d}{$h}{$m}{checkpoint}{warning};
-                                                       $cinf{warning_seconds} += $per_minute_info{$d}{$h}{$m}{checkpoint}{warning_seconds};
-                                               }
-                                               if (exists $per_minute_info{$d}{$h}{$m}{restartpoint}) {
-                                                       $rinf{wbuffer} += $per_minute_info{$d}{$h}{$m}{restartpoint}{wbuffer};
-                                                       $rinf{write} += $per_minute_info{$d}{$h}{$m}{restartpoint}{write};
-                                                       $rinf{sync} += $per_minute_info{$d}{$h}{$m}{restartpoint}{sync};
-                                                       $rinf{total} += $per_minute_info{$d}{$h}{$m}{restartpoint}{total};
-                                               }
-                                               if (exists $per_minute_info{$d}{$h}{$m}{autovacuum}{count}) {
-                                                       $ainf{vcount} += $per_minute_info{$d}{$h}{$m}{autovacuum}{count};
-                                               }
-                                               if (exists $per_minute_info{$d}{$h}{$m}{autoanalyze}{count}) {
-                                                       $ainf{acount} += $per_minute_info{$d}{$h}{$m}{autoanalyze}{count};
-                                               }
+       delete $drawn_graphs{hostsessions_graph};
+}
 
-                                       }
-                                       if ($tempfile_info{count}) {
-                                               if (scalar keys %tinf) {
-                                                       my $temp_average = &comma_numbers(sprintf("%.2f", $tinf{size} / $tinf{count}));
-                                                       print $fh "<td class=\"right\">", &comma_numbers($tinf{count}),
-                                                               "</td><td class=\"right\">$temp_average</td>";
-                                               } else {
-                                                       print $fh "<td class=\"right\">0</td><td class=\"right\">0</td>";
-                                               }
-                                       }
-                                       if ($checkpoint_info{wbuffer}) {
-                                               if (scalar keys %cinf) {
-                                                       print $fh "<td class=\"right\">", &comma_numbers($cinf{wbuffer}),
-                                                               "</td><td class=\"right\">", &comma_numbers($cinf{file_added}),
-                                                               "</td><td class=\"right\">", &comma_numbers($cinf{file_removed}),
-                                                               "</td><td class=\"right\">", &comma_numbers($cinf{file_recycled}),
-                                                               "</td><td class=\"right\">", &comma_numbers($cinf{write}),
-                                                               "</td><td class=\"right\">", &comma_numbers($cinf{sync}),
-                                                               "</td><td class=\"right\">", &comma_numbers($cinf{total}),
-                                                               "</td>";
-                                               } else {
-                                                       print $fh
-       "<td class=\"right\">0</td><td class=\"right\">0</td><td class=\"right\">0</td><td class=\"right\">0</td><td class=\"right\">0</td><td class=\"right\">0</td><td class=\"right\">0</td>";
-                                               }
-                                       }
-                                       if ($checkpoint_info{warning}) {
-                                               if (exists $cinf{warning}) {
-                                                       print $fh "<td class=\"right\">", &comma_numbers($cinf{warning}),
-                                                               "</td><td class=\"right\">",
-                                                               &comma_numbers(sprintf( "%.2f", ($cinf{warning_seconds} || 0) / ($cinf{warning} || 1))), "</td>";
-                                               } else {
-                                                       print $fh "<td class=\"right\">0</td><td class=\"right\">0</td>";
-                                               }
-                                       }
-                                       if ($restartpoint_info{wbuffer}) {
-                                               if (scalar keys %rinf) {
-                                                       print $fh "<td class=\"right\">", &comma_numbers($rinf{wbuffer}),
-                                                               "</td><td class=\"right\">", &comma_numbers($rinf{write}),
-                                                               "</td><td class=\"right\">", &comma_numbers($rinf{sync}),
-                                                               "</td><td class=\"right\">", &comma_numbers($rinf{total}),
-                                                               "</td>";
-                                               } else {
-                                                       print $fh "<td class=\"right\">0</td><td class=\"right\">0</td><td class=\"right\">",
-                                                               "</td><td class=\"right\">0</td>";
-                                               }
-                                       }
-                                       if ($autovacuum_info{count} > 0) {
-                                               if (scalar keys %ainf) {
-                                                       print $fh "<td class=\"right\">", &comma_numbers($ainf{vcount}), "</td>";
-                                               } else {
-                                                       print $fh "<td class=\"right\">0</td>";
-                                               }
-                                       }
-                                       if ($autoanalyze_info{count} > 0) {
-                                               if (scalar keys %ainf) {
-                                                       print $fh "<td class=\"right\">", &comma_numbers($ainf{acount}), "</td>";
-                                               } else {
-                                                       print $fh "<td class=\"right\">0</td>";
-                                               }
-                                       }
-                                       print $fh "</tr>\n";
-                                       $c++;
-                               }
+sub print_database_session
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $sess_database_info = '';
+       my @main_database = ('unknown',0);
+       foreach my $d (sort keys %{$session_info{database}}) {
+               $sess_database_info .=  "<tr><td>$d</td><td>" . &comma_numbers($session_info{database}{$d}{count}) .
+                                       "</td><td>" . &convert_time($session_info{database}{$d}{duration}) . "</td><td>" .
+                                       &convert_time($session_info{database}{$d}{duration} / $session_info{database}{$d}{count}) .
+                                       "</td></tr>";
+               $total_count += $session_info{database}{$d}{count};
+               if ($main_database[1] < $session_info{database}{$d}{count}) {
+                       $main_database[0] = $d;
+                       $main_database[1] = $session_info{database}{$d}{count};
+               }
+       }
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %{$session_info{database}}) {
+                       if ((($session_info{database}{$d}{count} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $infos{$d} = $session_info{database}{$d}{count} || 0;
+                       } else {
+                               $infos{"Sum sessions < $pie_percentage_limit%"} += $session_info{database}{$d}{count} || 0;
+                               push(@small, $d);
                        }
-                       print $fh "</table>\n";
+               }
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum sessions < $pie_percentage_limit%"};
+                       delete $infos{"Sum sessions < $pie_percentage_limit%"};
                }
        }
+       $drawn_graphs{databasesessions_graph} = &flotr2_piegraph($graphid++, 'databasesessions_graph', 'Connections per database', %infos);
+       $sess_database_info = qq{<tr><td colspan="5">$NODATA</td></tr>} if (!$total_count);
+
+       $total_count = &comma_numbers($total_count);
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-off"></i> Sessions</h1>
+
+       <div class="analysis-item row-fluid" id="sessions-per-database">
+               <h2><i class="icon-list-alt"></i> Sessions per database</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_database[0]</span> <span class="figure-label">Main Database</span></li>
+                                       <li><span class="figure">$total_count sessions</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#sessions-per-database-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#sessions-per-database-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="sessions-per-database-graph">
+                                               $drawn_graphs{databasesessions_graph}
+                                       </div>
+                                       <div class="tab-pane" id="sessions-per-database-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Database</th>
+                                                                       <th>User</th>
+                                                                       <th>Count</th>
+                                                                       <th>Total Duration</th>
+                                                                       <th>Average Duration</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $sess_database_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of sessions per database -->
+};
+       delete $drawn_graphs{databasesessions_graph};
+}
+
+sub print_checkpoint
+{
 
+       # checkpoint
+       my %graph_data = ();
        if ($graph) {
-               # checkpoint
-               my %graph_data = ();
                foreach my $tm (sort {$a <=> $b} keys %per_minute_info) {
                        $tm =~ /(\d{4})(\d{2})(\d{2})/;
                        my $y  = $1 - 1900;
@@ -3231,23 +3795,6 @@ sub print_checkpoint_tempfile_vacuum_reports
                                                        $chk_dataavg{file_recycled}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{checkpoint}{file_recycled} || 0);
                                                }
                                        }
-                                       if ($restartpoint_info{wbuffer}) {
-                                               if (exists $per_minute_info{$tm}{$h}{$m}{restartpoint}) {
-                                                       $chk_dataavg{rwbuffer}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{restartpoint}{wbuffer} || 0);
-                                               }
-                                       }
-                                       if ($tempfile_info{count}) {
-                                               if (exists $per_minute_info{$tm}{$h}{$m}{tempfile}) {
-                                                       $t_dataavg{size}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{tempfile}{size} || 0);
-                                                       $t_dataavg{count}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{tempfile}{count} || 0);
-                                               }
-                                       }
-                                       if (exists $per_minute_info{$tm}{$h}{$m}{autovacuum}) {
-                                               $v_dataavg{vcount}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{autovacuum}{count} || 0);
-                                       }
-                                       if (exists $per_minute_info{$tm}{$h}{$m}{autoanalyze}) {
-                                               $v_dataavg{acount}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{autoanalyze}{count} || 0);
-                                       }
                                }
 
                                foreach my $rd (@avgs) {
@@ -3256,646 +3803,1458 @@ sub print_checkpoint_tempfile_vacuum_reports
                                        next if ($t < $t_min);
                                        last if ($t > $t_max);
 
-                                       # Average of written buffers
+                                       # Average of written checkpoints buffers and wal files
                                        if (exists $chk_dataavg{wbuffer}) {
                                                $graph_data{wbuffer} .= "[$t, " . ($chk_dataavg{wbuffer}{"$rd"} || 0) . "],";
                                                $graph_data{file_added} .= "[$t, " . ($chk_dataavg{file_added}{"$rd"} || 0) . "],";
                                                $graph_data{file_removed} .= "[$t, " . ($chk_dataavg{file_removed}{"$rd"} || 0) . "],";
                                                $graph_data{file_recycled} .= "[$t, " . ($chk_dataavg{file_recycled}{"$rd"} || 0) . "],";
                                        }
-                                       if (exists $chk_dataavg{rwbuffer}) {
-                                               $graph_data{rwbuffer} .= "[$t, " . ($chk_dataavg{rwbuffer}{"$rd"} || 0) . "],";
-                                       }
-                                       if (exists $t_dataavg{size}) {
-                                               $graph_data{size} .= "[$t, " . ($t_dataavg{size}{"$rd"} || 0) . "],";
-                                               $graph_data{count} .= "[$t, " . ($t_dataavg{count}{"$rd"} || 0) . "],";
-                                       }
-                                       if (exists $v_dataavg{vcount}) {
-                                               $graph_data{vcount} .= "[$t, " . ($v_dataavg{vcount}{"$rd"} || 0) . "],";
-                                       }
-                                       if (exists $v_dataavg{acount}) {
-                                               $graph_data{acount} .= "[$t, " . ($v_dataavg{acount}{"$rd"} || 0) . "],";
-                                       }
-
                                }
                        }
                }
                foreach (keys %graph_data) {
                        $graph_data{$_} =~ s/,$//;
                }
-               if (exists $graph_data{wbuffer}) {
-                       &flotr2_graph(
-                               $graphid++,         'checkpointwritebuffers_graph', $graph_data{wbuffer}, '', '', 'Checkpoint write buffers (' . $avg_minutes . ' minutes period)',
-                               'Buffers', 'Write buffers',                '',  ''
-                       );
-
-                       &flotr2_graph(
-                               $graphid++, 'checkpointfiles_graph', $graph_data{file_added}, $graph_data{file_removed}, $graph_data{file_recycled},
-                               'Checkpoint Wal files usage', 'Number of files', 'Added', 'Removed', 'Recycled'
-                       );
-               }
-               # Restart point
-               if ($restartpoint_info{wbuffer} && $graph_data{rwbuffer}) {
-                       &flotr2_graph(
-                               $graphid++,         'restartpointwritebuffers_graph',  $graph_data{rwbuffer}, '', '', 'Restartpoint write buffers (' . $avg_minutes . ' minutes period)',
-                               'Buffers', 'Write buffers',                '',  ''
-                       );
-               }
-
-               # Temporary file size
-               if (exists $graph_data{size}) {
-                       &flotr2_graph(
-                               $graphid++, 'temporarydata_graph', $graph_data{size}, '', '', 'Size of temporary files (' . $avg_minutes . ' minutes period)',
-                               'Size of files', 'Size of files'
-                       );
-               }
-
-               # Temporary file number
-               if ($tempfile_info{count}) {
-                       &flotr2_graph(
-                               $graphid++, 'temporaryfile_graph', $graph_data{count}, '', '', 'Number of temporary files (' . $avg_minutes . ' minutes period)',
-                               'Number of files', 'Number of files'
-                       );
-               }
-
-
-               # VACUUMs and ANALYZEs
-               if ($autovacuum_info{count} || $autoanalyze_info{count}) {
-                       if (exists $graph_data{vcount} || exists $graph_data{acount}) {
-                               &flotr2_graph(
-                                       $graphid++, 'autovacuum_graph', $graph_data{vcount}, $graph_data{acount}, '', 'Autovacuum actions (' . $avg_minutes . ' minutes period)',
-                                       '', 'VACUUMs', 'ANALYZEs'
-                               );
-                       }
-               }
        }
+       # Checkpoints buffers and files
+       $drawn_graphs{checkpointwritebuffers_graph} = 
+               &flotr2_graph($graphid++, 'checkpointwritebuffers_graph', $graph_data{wbuffer}, '', '',
+                               'Checkpoint write buffers (' . $avg_minutes . ' minutes period)',
+                               'Buffers', 'Write buffers', '',  ''
+               );
+       $drawn_graphs{checkpointfiles_graph} =
+               &flotr2_graph($graphid++, 'checkpointfiles_graph', $graph_data{file_added},
+                       $graph_data{file_removed}, $graph_data{file_recycled}, 'Checkpoint Wal files usage',
+                       'Number of files', 'Added', 'Removed', 'Recycled'
+               );
 
-}
+       my $checkpoint_wbuffer_peak = 0;
+       my $checkpoint_wbuffer_peak_date = '';
+       foreach (sort {$overall_checkpoint{'peak'}{$b}{checkpoint_wbuffer} <=> $overall_checkpoint{'peak'}{$a}{checkpoint_wbuffer}} keys %{$overall_checkpoint{'peak'}}) {
+               $checkpoint_wbuffer_peak = &comma_numbers($overall_checkpoint{'peak'}{$_}{checkpoint_wbuffer});
+               $checkpoint_wbuffer_peak_date = $_;
+               last;
+       }
+       my $walfile_usage_peak = 0;
+       my $walfile_usage_peak_date = '';
+       foreach (sort {$overall_checkpoint{'peak'}{$b}{walfile_usage} <=> $overall_checkpoint{'peak'}{$a}{walfile_usage}} keys %{$overall_checkpoint{'peak'}}) {
+               $walfile_usage_peak = &comma_numbers($overall_checkpoint{'peak'}{$_}{walfile_usage});
+               $walfile_usage_peak_date = $_;
+               last;
+       }
 
-sub print_vacuum_reports
-{
-       # VACUUM stats per table
-       if ($autovacuum_info{count} > 0) {
-               print $fh qq{
-<h2 id="VacuumByTableReport">VACUUMs by table <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Table</th>
-               <th>VACUUMs</th>
-               <th>Index scans</th>
-               <th>Tuples removed</th>
-               <th>Pages removed</th>
-       </tr>
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-pencil"></i> Checkpoints / Restartpoints</h1>
+
+       <div id="checkpoints-buffers" class="analysis-item row-fluid">
+       <h2 class=""><i class="icon-paste"></i> Checkpoints Buffers</h2>
+       <div class="span3">
+               <h3 class="">Key values</h3>
+               <div class="well key-figures">
+                       <ul>
+                               <li><span class="figure">$checkpoint_wbuffer_peak buffers</span> <span class="figure-label">Checkpoint Peak</span></li>
+                               <li><span class="figure">$checkpoint_wbuffer_peak_date</span> <span class="figure-label">Date</span></li>    
+                               <li><span class="figure">$overall_checkpoint{checkpoint_write} seconds</span> <span class="figure-label">Highest write time</span></li>
+                               <li><span class="figure">$overall_checkpoint{checkpoint_sync} seconds</span> <span class="figure-label">Sync time</span></li>
+                       </ul>
+               </div>
+       </div>
+       <div class="span8">
+               <h3 class="">Checkpoint write buffers ($avg_minutes minutes average)</h3>
+$drawn_graphs{checkpointwritebuffers_graph}
+               </div>
+       </div><!-- end of Checkpoints Buffers -->
 };
-               my $total_count   = 0;
-               my $total_idxscan = 0;
-               my $total_tuples = 0;
-               my $total_pages = 0;
-               foreach my $t (sort keys %{$autovacuum_info{tables}}) {
-                       print $fh "<tr class=\"row1\"><td>", $t,
-                           "</td><td class=\"right\">", $autovacuum_info{tables}{$t}{vacuums},
-                               "</td><td class=\"right\">", $autovacuum_info{tables}{$t}{idxscans},
-                               "</td><td class=\"right\">", $autovacuum_info{tables}{$t}{tuples}{removed},
-                               "</td><td class=\"right\">", $autovacuum_info{tables}{$t}{pages}{removed},
-                               "</td></tr>\n";
-                       $total_count   += $autovacuum_info{tables}{$t}{vacuums};
-                       $total_idxscan += $autovacuum_info{tables}{$t}{idxscans};
-                       $total_tuples += $autovacuum_info{tables}{$t}{tuples}{removed};
-                       $total_pages += $autovacuum_info{tables}{$t}{pages}{removed};
-               }
-               print $fh "<tr class=\"row1\"><td><b>Total</b></td><td class=\"right\">", $total_count,
-                       "</td><td class=\"right\">", $total_idxscan,
-                       "</td><td class=\"right\">", $total_tuples,
-                       "</td><td class=\"right\">", $total_pages, "</td></tr>\n";
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %data = ();
-                       foreach my $t (sort keys %{$autovacuum_info{tables}}) {
-                               if ((($autovacuum_info{tables}{$t}{vacuums} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $data{$t} = $autovacuum_info{tables}{$t}{vacuums} || 0;
-                               } else {
-                                       $data{"Others"} += $autovacuum_info{tables}{$t}{vacuums} || 0;
+       delete $drawn_graphs{checkpointwritebuffers_graph};
+
+       print $fh qq{
+       <div id="checkpoints-files" class="analysis-item row-fluid">
+       <h2 class=""><i class="icon-file-alt"></i> Checkpoints Wal files</h2>
+       <div class="span3">
+               <h3 class="">Key values</h3>
+               <div class="well key-figures">
+                       <ul>
+                               <li><span class="figure">$walfile_usage_peak files</span> <span class="figure-label">Wal files usage Peak</span></li>
+                               <li><span class="figure">$walfile_usage_peak_date</span> <span class="figure-label">Date</span></li>
+                       </ul>
+               </div>
+       </div>
+       <div class="span8">
+               <h3 class="">Checkpoint Wal files usage</h3>
+$drawn_graphs{checkpointfiles_graph}
+               </div>
+       </div><!-- end of Checkpoints Files -->
+};
+       delete $drawn_graphs{checkpointfiles_graph};
+
+       my $buffers = '';
+       my $files = '';
+       my $warnings = '';
+       foreach my $d (sort {$a <=> $b} keys %per_minute_info) {
+               $d =~ /^\d{4}(\d{2})(\d{2})$/;
+               my $zday = "$abbr_month{$1} $2";
+               foreach my $h (sort {$a <=> $b} keys %{$per_minute_info{$d}}) {
+                       $buffers .= "<tr><td>$zday</td><td>$h</td>";
+                       $files .= "<tr><td>$zday</td><td>$h</td>";
+                       $warnings .= "<tr><td>$zday</td><td>$h</td>";
+                       $zday = '';
+                       my %cinf = ();
+                       my %rinf = ();
+                       my %cainf = ();
+                       my %rainf = ();
+                       foreach my $m (keys %{$per_minute_info{$d}{$h}}) {
+
+                               if (exists $per_minute_info{$d}{$h}{$m}{checkpoint}) {
+                                       $cinf{wbuffer} += $per_minute_info{$d}{$h}{$m}{checkpoint}{wbuffer};
+                                       $cinf{file_added} += $per_minute_info{$d}{$h}{$m}{checkpoint}{file_added};
+                                       $cinf{file_removed} += $per_minute_info{$d}{$h}{$m}{checkpoint}{file_removed};
+                                       $cinf{file_recycled} += $per_minute_info{$d}{$h}{$m}{checkpoint}{file_recycled};
+                                       $cinf{write} += $per_minute_info{$d}{$h}{$m}{checkpoint}{write};
+                                       $cinf{sync} += $per_minute_info{$d}{$h}{$m}{checkpoint}{sync};
+                                       $cinf{total} += $per_minute_info{$d}{$h}{$m}{checkpoint}{total};
+                                       $cainf{sync_files} += $per_minute_info{$d}{$h}{$m}{checkpoint}{sync_files};
+                                       $cainf{sync_avg} += $per_minute_info{$d}{$h}{$m}{checkpoint}{sync_avg};
+                                       $cainf{sync_longest} = $per_minute_info{$d}{$h}{$m}{checkpoint}{sync_longest}
+                                               if ($per_minute_info{$d}{$h}{$m}{checkpoint}{sync_longest} > $cainf{sync_longest});
                                }
-                       }
-                       &flotr2_piegraph($graphid++, 'autovacuumbytable_graph', 'Autovacuum per table', %data);
-                       %data = ();
-                       if ($total_tuples) {
-                               print $fh "<br />\n";
-                               foreach my $t (sort keys %{$autovacuum_info{tables}}) {
-                                       if ((($autovacuum_info{tables}{$t}{tuples}{removed} * 100) / $total_tuples) > $pie_percentage_limit) {
-                                               $data{$t} = $autovacuum_info{tables}{$t}{tuples}{removed} || 0;
-                                       } else {
-                                               $data{"Others"} += $autovacuum_info{tables}{$t}{tuples}{removed} || 0;
-                                       }
+                               if (exists $per_minute_info{$d}{$h}{$m}{checkpoint}{warning}) {
+                                       $cinf{warning} += $per_minute_info{$d}{$h}{$m}{checkpoint}{warning};
+                                       $cinf{warning_seconds} += $per_minute_info{$d}{$h}{$m}{checkpoint}{warning_seconds};
                                }
-                               &flotr2_piegraph($graphid++, 'autovacuumtuplesremoved_graph', 'Autovacuum tuples removed per table', %data);
+                       }
+                       if (scalar keys %cinf) {
+                               $buffers .= "<td>" . &comma_numbers($cinf{wbuffer}) .
+                                       "</td><td>" . &comma_numbers($cinf{write}) .
+                                       "</td><td>" . &comma_numbers($cinf{sync}) .
+                                       "</td><td>" . &comma_numbers($cinf{total}) .
+                                       "</td></tr>";
+                               $files .= "<td>" . &comma_numbers($cinf{file_added}) .
+                                       "</td><td>" . &comma_numbers($cinf{file_removed}) .
+                                       "</td><td>" . &comma_numbers($cinf{file_recycled}) .
+                                       "<td>" . &comma_numbers($cainf{sync_files}) .
+                                       "</td><td>" . &comma_numbers($cainf{sync_longest}) .
+                                       "</td><td>" . &comma_numbers($cainf{sync_avg}) .
+                                       "</td></tr>";
+                       } else {
+                               $buffers .= "<td>0</td><td>0</td><td>0</td><td>0</td></tr>";
+                               $files .= "<td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>";
+                       }
+                       if (exists $cinf{warning}) {
+                               $warnings .= "<td>" . &comma_numbers($cinf{warning}) . "</td><td>" .
+                                       &comma_numbers(sprintf( "%.2f", ($cinf{warning_seconds} || 0) / ($cinf{warning} || 1))) .
+                                        "</td></tr>";
+                       } else {
+                               $warnings .= "<td>0</td><td>0</td></tr>";
                        }
                }
-               print $fh "</td></tr></table>\n";
-       }
-
-       # ANALYZE stats per table
-       if ($autoanalyze_info{count} > 0) {
-               print $fh qq{
-<h2 id="AnalyzeByTableReport">ANALYZEs by table <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Table</th>
-               <th>ANALYZEs</th>
-       </tr>
-};
-               my $total_count   = 0;
-               my $total_idxscan = 0;
-               foreach my $t (sort keys %{$autoanalyze_info{tables}}) {
-                       print $fh "<tr class=\"row1\"><td>", $t,
-                           "</td><td class=\"right\">", $autoanalyze_info{tables}{$t}{analyzes},
-                               "</td></tr>\n";
-                       $total_count   += $autoanalyze_info{tables}{$t}{analyzes};
-               }
-               print $fh "<tr class=\"row1\"><td><b>Total</b></td><td class=\"right\">", $total_count,
-                       "</td></tr>\n";
-               print $fh "</table></td></tr></table>\n";
        }
-}
 
-sub print_query_type_report
-{
-       my $totala = 0;
-       foreach my $a (@SQL_ACTION) {
-               $totala += $overall_stat{$a};
-       }
-       return if (!$totala);
+       $buffers = qq{<tr><td colspan="6">$NODATA</td></tr>} if (!$buffers);
+       $files = qq{<tr><td colspan="8">$NODATA</td></tr>} if (!$files);
+       $warnings = qq{<tr><td colspan="4">$NODATA</td></tr>} if (!$warnings);
 
        print $fh qq{
-<h2 id="QueriesByTypeReport">Queries by type <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Type</th>
-
-               <th>Count</th>
-               <th>Percentage</th>
-       </tr>
+<div class="analysis-item row-fluid" id="checkpoint-activity">
+       <h2 class=""><i class="icon-calendar"></i> Checkpoints Activity</h2>
+       <div class="span11 tabbable tabs-left">
+               <ul class="nav nav-tabs">
+                       <li class="active"><a href="#checkpoint-activity-buffers" data-toggle="tab">Checkpoints Buffers</a></li>
+                       <li><a href="#checkpoint-activity-files" data-toggle="tab">Checkpoints files</a></li>
+                       <li><a href="#checkpoint-activity-warnings" data-toggle="tab">Checkpoints Warnings</a></li>
+               </ul>
+               <div class="tab-content">
+                       <div class="active tab-pane" id="checkpoint-activity-buffers">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Written&nbsp;buffers</th>
+                                                       <th>Write&nbsp;time</th>
+                                                       <th>Sync&nbsp;time</th>
+                                                       <th>Total&nbsp;time</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$buffers
+                                       </tbody>
+                               </table>                                                                                                
+                       </div>
+                       <div class="tab-pane" id="checkpoint-activity-files">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Added</th>
+                                                       <th>Removed</th>
+                                                       <th>Recycled</th>
+                                                       <th>Synced files</th>
+                                                       <th>Longest sync</th>
+                                                       <th>Average sync</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$files
+                                       </tbody>
+                               </table>                                                
+                       </div>
+                       <div class="tab-pane" id="checkpoint-activity-warnings">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Count</th>
+                                                       <th>Avg time (sec)</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$warnings
+                                       </tbody>
+                               </table>        
+                       </div>        
+               </div> <!-- end of div tab-content -->
+               <span class="pull-right">&uarr; <small><a href="#checkpoint-activity" class="">Back to the top of the <em>Checkpoint Activity</em> table</a></small></span>
+       </div>
+
+</div><!-- end of checkpoint activity -->
 };
-       my $total = $overall_stat{'queries_number'} || 1;
 
-       my $r = 0;
-       foreach my $a (@SQL_ACTION) {
-               print $fh "<tr class=\"row$r\"><td>$a</td><td class=\"right\">", &comma_numbers($overall_stat{$a}),
-                       "</td><td class=\"right\">", sprintf("%0.2f", ($overall_stat{$a} * 100) / $total), "%</td></tr>\n";
-               ($r > 0) ? $r = 0 : $r = 1;
-       }
-       print $fh "<tr class=\"row0\"><td>OTHERS</td><td class=\"right\">", &comma_numbers($total - $totala),
-               "</td><td class=\"right\">", sprintf("%0.2f", (($total - $totala) * 100) / $total), "%</td></tr>\n"
-               if (($total - $totala) > 0);
-       print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
+}
+
+sub print_temporary_file
+{
 
+       # checkpoint
+       my %graph_data = ();
        if ($graph) {
-               my %data = ();
-               foreach my $t (@SQL_ACTION) {
-                       if ((($overall_stat{$t} * 100) / $total) > $pie_percentage_limit) {
-                               $data{$t} = $overall_stat{$t} || 0;
-                       } else {
-                               $data{"Sum types < $pie_percentage_limit%"} += $overall_stat{$t} || 0;
+               foreach my $tm (sort {$a <=> $b} keys %per_minute_info) {
+                       $tm =~ /(\d{4})(\d{2})(\d{2})/;
+                       my $y  = $1 - 1900;
+                       my $mo = $2 - 1;
+                       my $d  = $3;
+                       foreach my $h ("00" .. "23") {
+                               next if (!exists $per_minute_info{$tm}{$h});
+                               my %chk_dataavg = ();
+                               my %t_dataavg = ();
+                               my %v_dataavg = ();
+                               foreach my $m ("00" .. "59") {
+                                       next if (!exists $per_minute_info{$tm}{$h}{$m});
+                                       my $rd = &average_per_minutes($m, $avg_minutes);
+                                       if ($tempfile_info{count}) {
+                                               if (exists $per_minute_info{$tm}{$h}{$m}{tempfile}) {
+                                                       $t_dataavg{size}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{tempfile}{size} || 0);
+                                                       $t_dataavg{count}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{tempfile}{count} || 0);
+                                               }
+                                       }
+                               }
+
+                               foreach my $rd (@avgs) {
+                                       my $t = timegm_nocheck(0, $rd, $h, $d, $mo, $y) * 1000;
+
+                                       next if ($t < $t_min);
+                                       last if ($t > $t_max);
+
+                                       if (exists $t_dataavg{size}) {
+                                               $graph_data{size} .= "[$t, " . ($t_dataavg{size}{"$rd"} || 0) . "],";
+                                               $graph_data{count} .= "[$t, " . ($t_dataavg{count}{"$rd"} || 0) . "],";
+                                       }
+                               }
                        }
                }
-               if (((($total - $totala) * 100) / $total) > $pie_percentage_limit) {
-                       $data{'Others'} = $total - $totala;
-               } else {
-                       $data{"Sum types < $pie_percentage_limit%"} += $total - $totala;
+               foreach (keys %graph_data) {
+                       $graph_data{$_} =~ s/,$//;
                }
-               &flotr2_piegraph($graphid++, 'queriesbytype_graph', 'Type of queries', %data);
        }
-       print $fh "</td></tr></table>\n";
-}
+       # Temporary file size
+       $drawn_graphs{temporarydata_graph} =
+               &flotr2_graph($graphid++, 'temporarydata_graph', $graph_data{size}, '', '',
+                       'Size of temporary files (' . $avg_minutes . ' minutes period)',
+                       'Size of files', 'Size of files'
+               );
+       # Temporary file number
+       $drawn_graphs{temporaryfile_graph} =
+               &flotr2_graph($graphid++, 'temporaryfile_graph', $graph_data{count}, '', '',
+                       'Number of temporary files (' . $avg_minutes . ' minutes period)',
+                       'Number of files', 'Number of files'
+               );
 
-sub print_request_report
-{
-       # Show request per database statistics
-       if (scalar keys %database_info > 1) {
-               print $fh qq{
-<h2 id="RequestsDatabaseReport">Queries per database <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-<tr>
-       <th>Database</th>
-       <th>Request type</th>
-       <th>Count</th>
-</tr>
+       my $tempfile_size_peak = 0;
+       my $tempfile_size_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{tempfile_size} <=> $overall_stat{'peak'}{$a}{tempfile_size}} keys %{$overall_stat{'peak'}}) {
+               $tempfile_size_peak = &pretty_print_size($overall_stat{'peak'}{$_}{tempfile_size});
+               $tempfile_size_peak_date = $_;
+               last;
+       }
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-pencil"></i> Temporary Files</h1>
+
+       <div id="tempfiles-size" class="analysis-item row-fluid">
+       <h2 class=""><i class="icon-resize-full"></i> Size of temporary files</h2>
+       <div class="span3">
+               <h3 class="">Key values</h3>
+               <div class="well key-figures">
+                       <ul>
+                               <li><span class="figure">$tempfile_size_peak</span> <span class="figure-label">Temp Files Peak</span></li>
+                               <li><span class="figure">$tempfile_size_peak_date</span> <span class="figure-label">Date</span></li>
+                       </ul>
+               </div>
+       </div>
+       <div class="span8">
+               <h3 class="">Size of temporary files ($avg_minutes minutes average)</h3>
+$drawn_graphs{temporarydata_graph}
+               </div>
+       </div><!-- end of Size of temporary files -->
 };
-               my $total_count = 0;
-               foreach my $d (sort keys %database_info) {
-                       print $fh "<tr class=\"row1\"><td colspan=\"2\">$d</td><td class=\"right\">",
-                               &comma_numbers($database_info{$d}{count}), "</td></tr>\n";
-                       $total_count += $database_info{$d}{count};
-                       foreach my $r (sort keys %{$database_info{$d}}) {
-                               next if ($r eq 'count');
-                               print $fh "<tr class=\"row0\"><td colspan=\"2\" class=\"right\">$r</td><td class=\"right\">",
-                                       &comma_numbers($database_info{$d}{$r}), "</td></tr>\n";
-                       }
-               }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %database_info) {
-                               if ((($database_info{$d}{count} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $database_info{$d}{count} || 0;
-                               } else {
-                                       $infos{"Sum databases < $pie_percentage_limit%"} += $database_info{$d}{count} || 0;
-                                       push(@small, $d);
+       delete $drawn_graphs{temporarydata_graph};
+
+       my $tempfile_count_peak = 0;
+       my $tempfile_count_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{tempfile_count} <=> $overall_stat{'peak'}{$a}{tempfile_count}} keys %{$overall_stat{'peak'}}) {
+               $tempfile_count_peak = &comma_numbers($overall_stat{'peak'}{$_}{tempfile_count});
+               $tempfile_count_peak_date = $_;
+               last;
+       }
+       print $fh qq{
+       <div id="tempfiles-number" class="analysis-item row-fluid">
+       <h2 class=""><i class="icon-th"></i> Number of temporary files</h2>
+       <div class="span3">
+               <h3 class="">Key values</h3>
+               <div class="well key-figures">
+                       <ul>
+                               <li><span class="figure">$tempfile_count_peak per second</span> <span class="figure-label">Temp Files Peak</span></li>
+                               <li><span class="figure">$tempfile_count_peak_date</span> <span class="figure-label">Date</span></li>
+                       </ul>
+               </div>
+       </div>
+       <div class="span8">
+               <h3 class="">Number of temporary files ($avg_minutes minutes average)</h3>
+$drawn_graphs{temporaryfile_graph}
+               </div>
+       </div><!-- end of Number of temporary files -->
+};
+       delete $drawn_graphs{temporaryfile_graph};
+
+       my $tempfiles_activity = '';
+       foreach my $d (sort {$a <=> $b} keys %per_minute_info) {
+               $d =~ /^\d{4}(\d{2})(\d{2})$/;
+               my $zday = "$abbr_month{$1} $2";
+               foreach my $h (sort {$a <=> $b} keys %{$per_minute_info{$d}}) {
+                       $tempfiles_activity .= "<tr><td>$zday</td><td>$h</td>";
+                       $zday = "";
+                       my %tinf = ();
+                       foreach my $m (keys %{$per_minute_info{$d}{$h}}) {
+                               if (exists $per_minute_info{$d}{$h}{$m}{tempfile}) {
+                                       $tinf{size} += $per_minute_info{$d}{$h}{$m}{tempfile}{size};
+                                       $tinf{count} += $per_minute_info{$d}{$h}{$m}{tempfile}{count};
                                }
                        }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum databases < $pie_percentage_limit%"};
-                               delete $infos{"Sum databases < $pie_percentage_limit%"};
+                       if (scalar keys %tinf) {
+                               my $temp_average = &pretty_print_size(sprintf("%.2f", $tinf{size} / $tinf{count}));
+                               $tempfiles_activity .=  "<td>" . &comma_numbers($tinf{count}) .
+                                                       "</td><td>$temp_average</td>";
+                       } else {
+                               $tempfiles_activity .= "<td>0</td><td>0</td>";
                        }
-                       &flotr2_piegraph($graphid++, 'requestsdatabases_graph', 'Queries per database', %infos);
                }
-               print $fh "</td></tr></table>\n";
        }
 
-       # Show request per application statistics
-       if (scalar keys %application_info > 1) {
-               print $fh qq{
-<h2 id="RequestsApplicationReport">Queries per application <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-<tr>
-       <th>Database</th>
-       <th>Request type</th>
-       <th>Count</th>
-</tr>
+       $tempfiles_activity = qq{<tr><td colspan="4">$NODATA</td></tr>} if (!$tempfiles_activity);
+
+       print $fh qq{
+<div class="analysis-item row-fluid" id="tempfiles-activity">
+       <h2 class=""><i class="icon-calendar"></i> Temporary Files Activity</h2>
+       <div class="span11 tabbable tabs-left">
+               <ul class="nav nav-tabs">
+                       <li class="active"><a href="#tempfiles-activity-count" data-toggle="tab">Temp Files</a></li>
+               </ul>
+               <div class="tab-content">
+                       <div class="active tab-pane" id="tempfiles-activity-count">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>Count</th>
+                                                       <th>Average size</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$tempfiles_activity
+                                       </tbody>
+                               </table>
+                       </div>
+               </div> <!-- end of div tab-content -->
+               <span class="pull-right">&uarr; <small><a href="#tempfiles-activity" class="">Back to the top of the <em>Temporay Files Activity</em> table</a></small></span>
+       </div>
+
+</div><!-- end of tempfile activity -->
 };
-               my $total_count = 0;
-               foreach my $d (sort keys %application_info) {
-                       print $fh "<tr class=\"row1\"><td colspan=\"2\">$d</td><td class=\"right\">",
-                               &comma_numbers($application_info{$d}{count}), "</td></tr>\n";
-                       $total_count += $application_info{$d}{count};
-                       foreach my $r (sort keys %{$application_info{$d}}) {
-                               next if ($r eq 'count');
-                               print $fh "<tr class=\"row0\"><td colspan=\"2\" class=\"right\">$r</td><td class=\"right\">",
-                                       &comma_numbers($application_info{$d}{$r}), "</td></tr>\n";
-                       }
+
+}
+
+sub print_analyze_per_table
+{
+       # ANALYZE stats per table
+       my %infos = ();
+       my $total_count   = 0;
+       my $analyze_info = '';
+       my @main_analyze = ('unknown',0);
+       foreach my $t (sort {$autoanalyze_info{tables}{$b}{analyzes} <=> $autoanalyze_info{tables}{$a}{analyzes}} keys %{$autoanalyze_info{tables}}) {
+               $analyze_info .= "<tr><td>$t</td><td>" . $autoanalyze_info{tables}{$t}{analyzes} .
+                       "</td></tr>";
+               $total_count += $autoanalyze_info{tables}{$t}{analyzes};
+               if ($main_analyze[1] < $autoanalyze_info{tables}{$t}{analyzes}) {
+                       $main_analyze[0] = $t;
+                       $main_analyze[1] = $autoanalyze_info{tables}{$t}{analyzes};
                }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %application_info) {
-                               if ((($application_info{$d}{count} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $application_info{$d}{count} || 0;
-                               } else {
-                                       $infos{"Sum applications < $pie_percentage_limit%"} += $application_info{$d}{count} || 0;
-                                       push(@small, $d);
-                               }
-                       }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum applications < $pie_percentage_limit%"};
-                               delete $infos{"Sum applications < $pie_percentage_limit%"};
+       }
+       $analyze_info .= "<tr><th>Total</th><td>" . &comma_numbers($total_count) . "</td></tr>";
+
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %{$autoanalyze_info{tables}}) {
+                       if ((($autoanalyze_info{tables}{$d}{analyzes} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $infos{$d} = $autoanalyze_info{tables}{$d}{analyzes} || 0;
+                       } else {
+                               $infos{"Sum analyzes < $pie_percentage_limit%"} += $autoanalyze_info{tables}{$d}{analyzes} || 0;
+                               push(@small, $d);
                        }
-                       &flotr2_piegraph($graphid++, 'requestsapplications_graph', 'Queries per application', %infos);
                }
-               print $fh "</td></tr></table>\n";
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum analyzes < $pie_percentage_limit%"};
+                       delete $infos{"Sum analyzes < $pie_percentage_limit%"};
+               }
+       }
+       $drawn_graphs{tableanalyzes_graph} = &flotr2_piegraph($graphid++, 'tableanalyzes_graph', 'Analyzes per tables', %infos);
+       $total_count = &comma_numbers($total_count);
+       my $database = '';
+       if ($main_analyze[0] =~ s/^([^\.]+)\.//) {
+               $database = $1;
        }
+
+       $analyze_info = qq{<tr><td colspan="2">$NODATA</td></tr>} if (!$total_count);
+
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="analyzes-per-table">
+               <h2><i class="icon-table"></i> Analyses per table</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_analyze[0] ($main_analyze[1])</span> <span class="figure-label">Main table analyzed (database $database)</span></li>
+                                       <li><span class="figure">$total_count analyzes</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#analyzes-per-table-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#analyzes-per-table-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="analyzes-per-table-graph">
+                                               $drawn_graphs{tableanalyzes_graph}
+                                       </div>
+                                       <div class="tab-pane" id="analyzes-per-table-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Table</th>
+                                                                       <th>Number of analyzes</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $analyze_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of analyzes per table -->
+};
+       delete $drawn_graphs{tableanalyzes_graph};
+
 }
 
-sub print_locktype_report
+sub print_vacuum
 {
-       if (scalar keys %lock_info > 0) {
-               print $fh qq{
-<h2 id="LocksByTypeReport">Locks by type <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Type</th>
-               <th>Object</th>
-               <th>Count</th>
-               <th>Total Duration</th>
-               <th>Avg&nbsp;duration&nbsp;(s)</th>
-       </tr>
-};
-               my $total_count    = 0;
-               my $total_duration = 0;
-               foreach my $t (sort keys %lock_info) {
-                       print $fh "<tr class=\"row1\"><td colspan=\"2\">$t</td><td class=\"right\">", &comma_numbers($lock_info{$t}{count}),
-                               "</td><td class=\"right\">", &convert_time($lock_info{$t}{duration}), "</td><td class=\"right\">",
-                               &convert_time($lock_info{$t}{duration} / $lock_info{$t}{count}), "</td></tr>\n";
-                       foreach my $o (sort keys %{$lock_info{$t}}) {
-                               next if (($o eq 'count') || ($o eq 'duration') || ($o eq 'chronos'));
-                               print $fh "<tr class=\"row0\"><td  class=\"right\" colspan=\"2\">$o</td><td class=\"right\">",
-                                       &comma_numbers($lock_info{$t}{$o}{count}),   "</td><td class=\"right\">",
-                                       &convert_time($lock_info{$t}{$o}{duration}), "</td><td class=\"right\">",
-                                       &convert_time($lock_info{$t}{$o}{duration} / $lock_info{$t}{$o}{count}), "</td></tr>\n";
+
+       # checkpoint
+       my %graph_data = ();
+       foreach my $tm (sort {$a <=> $b} keys %per_minute_info) {
+               $tm =~ /(\d{4})(\d{2})(\d{2})/;
+               my $y  = $1 - 1900;
+               my $mo = $2 - 1;
+               my $d  = $3;
+               foreach my $h ("00" .. "23") {
+                       next if (!exists $per_minute_info{$tm}{$h});
+                       my %chk_dataavg = ();
+                       my %t_dataavg = ();
+                       my %v_dataavg = ();
+                       foreach my $m ("00" .. "59") {
+                               next if (!exists $per_minute_info{$tm}{$h}{$m});
+
+                               my $rd = &average_per_minutes($m, $avg_minutes);
+
+                               if (exists $per_minute_info{$tm}{$h}{$m}{autovacuum}) {
+                                       $v_dataavg{vcount}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{autovacuum}{count} || 0);
+                               }
+                               if (exists $per_minute_info{$tm}{$h}{$m}{autoanalyze}) {
+                                       $v_dataavg{acount}{"$rd"} += ($per_minute_info{$tm}{$h}{$m}{autoanalyze}{count} || 0);
+                               }
+                       }
+
+                       foreach my $rd (@avgs) {
+                               my $t = timegm_nocheck(0, $rd, $h, $d, $mo, $y) * 1000;
+
+                               next if ($t < $t_min);
+                               last if ($t > $t_max);
+
+                               if (exists $v_dataavg{vcount}) {
+                                       $graph_data{vcount} .= "[$t, " . ($v_dataavg{vcount}{"$rd"} || 0) . "],";
+                               }
+                               if (exists $v_dataavg{acount}) {
+                                       $graph_data{acount} .= "[$t, " . ($v_dataavg{acount}{"$rd"} || 0) . "],";
+                               }
+
                        }
-                       $total_count    += $lock_info{$t}{count};
-                       $total_duration += $lock_info{$t}{duration};
                }
-               print $fh "<tr class=\"row1\"><td colspan=\"2\"><b>Total</b></td><td class=\"right\">", &comma_numbers($total_count),
-                       "</td><td class=\"right\">", &convert_time($total_duration), "</td><td class=\"right\">",
-                       &convert_time($total_duration / ($total_count || 1)), "</td></tr>\n";
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %locktype = ();
-                       my @small    = ();
-                       foreach my $d (sort keys %lock_info) {
-                               if ((($lock_info{$d}{count} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $locktype{$d} = $lock_info{$d}{count} || 0;
-                               } else {
-                                       $locktype{"Sum types < $pie_percentage_limit%"} += $lock_info{$d}{count} || 0;
-                                       push(@small, $d);
+       }
+       foreach (keys %graph_data) {
+               $graph_data{$_} =~ s/,$//;
+       }
+
+       # VACUUMs vs ANALYZEs chart
+       $drawn_graphs{autovacuum_graph} =
+               &flotr2_graph($graphid++, 'autovacuum_graph', $graph_data{vcount}, $graph_data{acount},
+               '', 'Autovacuum actions (' . $avg_minutes . ' minutes period)', '', 'VACUUMs', 'ANALYZEs'
+               );
+
+       my $vacuum_size_peak = 0;
+       my $vacuum_size_peak_date = '';
+       foreach (sort {$overall_stat{'peak'}{$b}{vacuum_size} <=> $overall_stat{'peak'}{$a}{vacuum_size}} keys %{$overall_stat{'peak'}}) {
+               $vacuum_size_peak = &comma_numbers($overall_stat{'peak'}{$_}{vacuum_size});
+               $vacuum_size_peak_date = $_;
+               last;
+       }
+       my $autovacuum_peak_system_usage_db = '';
+       if ($autovacuum_info{peak}{system_usage}{table} =~ s/^([^\.]+)\.//) {
+               $autovacuum_peak_system_usage_db = $1;
+       }
+       my $autoanalyze_peak_system_usage_db = '';
+       if ($autoanalyze_info{peak}{system_usage}{table} =~ s/^([^\.]+)\.//) {
+               $autoanalyze_peak_system_usage_db = $1;
+       }
+       $autovacuum_info{peak}{system_usage}{elapsed} ||= 0;
+       $autoanalyze_info{peak}{system_usage}{elapsed} ||= 0;
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-cogs"></i> Vacuums</h1>
+
+       <div id="vacuums-count" class="analysis-item row-fluid">
+       <h2 class=""><i class="icon-pencil"></i> Vacuums / Analyzes Distribution</h2>
+       <div class="span3">
+               <h3 class="">Key values</h3>
+               <div class="well key-figures">
+                       <ul>
+                               <li><span class="figure">$autovacuum_info{peak}{system_usage}{elapsed} sec</span> <span class="figure-label">More CPU costly vacuum <br />Table $autovacuum_info{peak}{system_usage}{table} <br />Database $autovacuum_peak_system_usage_db</span></li>
+                               <li><span class="figure">$autovacuum_info{peak}{system_usage}{date}</span> <span class="figure-label">Date</span></li>
+                               <li><span class="figure">$autoanalyze_info{peak}{system_usage}{elapsed} sec</span> <span class="figure-label">More CPU costly analyze <br />Table $autoanalyze_info{peak}{system_usage}{table} <br />Database $autovacuum_peak_system_usage_db</span></li>
+                               <li><span class="figure">$autoanalyze_info{peak}{system_usage}{date}</span> <span class="figure-label">Date</span></li>
+                       </ul>
+               </div>
+       </div>
+       <div class="span8">
+               <h3 class="">Autovacuum actions ($avg_minutes minutes average)</h3>
+$drawn_graphs{autovacuum_graph}
+               </div>
+       </div><!-- end of Autovacuum actions -->
+};
+       delete $drawn_graphs{autovacuum_graph};
+
+       # ANALYZE stats per table
+       &print_analyze_per_table();
 
+       # VACUUM stats per table
+       &print_vacuum_per_table();
+
+       # Show tuples and pages removed per table
+       &print_vacuum_tuple_removed;
+       &print_vacuum_page_removed;
+
+       my $vacuum_activity = '';
+       foreach my $d (sort {$a <=> $b} keys %per_minute_info) {
+               my $c = 1;
+               $d =~ /^\d{4}(\d{2})(\d{2})$/;
+               my $zday = "$abbr_month{$1} $2";
+               foreach my $h (sort {$a <=> $b} keys %{$per_minute_info{$d}}) {
+                       $vacuum_activity .= "<tr><td>$zday</td><td>$h</td>";
+                       $zday = "";
+                       my %ainf = ();
+                       foreach my $m (keys %{$per_minute_info{$d}{$h}}) {
+
+                               if (exists $per_minute_info{$d}{$h}{$m}{autovacuum}{count}) {
+                                       $ainf{vcount} += $per_minute_info{$d}{$h}{$m}{autovacuum}{count};
+                               }
+                               if (exists $per_minute_info{$d}{$h}{$m}{autoanalyze}{count}) {
+                                       $ainf{acount} += $per_minute_info{$d}{$h}{$m}{autoanalyze}{count};
                                }
+
                        }
-                       if ($#small == 0) {
-                               $locktype{$small[0]} = $locktype{"Sum types < $pie_percentage_limit%"};
-                               delete $locktype{"Sum types < $pie_percentage_limit%"};
+                       if (scalar keys %ainf) {
+                               $vacuum_activity .= "<td>" . &comma_numbers($ainf{vcount}) . "</td>";
+                       } else {
+                               $vacuum_activity .= "<td>0</td>";
+                       }
+                       if (scalar keys %ainf) {
+                               $vacuum_activity .= "<td>" . &comma_numbers($ainf{acount}) . "</td>";
+                       } else {
+                               $vacuum_activity .= "<td>0</td>";
                        }
-                       &flotr2_piegraph($graphid++, 'lockbytype_graph', 'Type of locks', %locktype);
                }
-               print $fh "</td></tr></table>\n";
        }
+
+       $vacuum_activity = qq{<tr><td colspan="4">$NODATA</td></tr>} if (!$vacuum_activity);
+
+       print $fh qq{
+<div class="analysis-item row-fluid" id="vacuums-activity">
+       <h2 class=""><i class="icon-calendar"></i> Autovacuum Activity</h2>
+       <div class="span11 tabbable tabs-left">
+               <ul class="nav nav-tabs">
+                       <li class="active"><a href="#vacuums-activity-count" data-toggle="tab">Vacuums / Analyzes</a></li>
+               </ul>
+               <div class="tab-content">
+                       <div class="active tab-pane" id="vacuums-activity-count">
+                               <table class="table table-striped table-hover table-condensed">
+                                       <thead>
+                                               <tr>
+                                                       <th>Day</th>
+                                                       <th>Hour</th>
+                                                       <th>VACUUMs</th>
+                                                       <th>ANALYZEs</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>$vacuum_activity
+                                       </tbody>
+                               </table>
+                       </div>
+               </div> <!-- end of div tab-content -->
+               <span class="pull-right">&uarr; <small><a href="#vacuums-activity" class="">Back to the top of the <em>Temporay Files Activity</em> table</a></small></span>
+       </div>
+
+</div><!-- end of vacuum activity -->
+};
+
 }
 
-sub print_session_report
+sub print_vacuum_per_table
 {
-       if (exists $session_info{database}) {
-               print $fh qq{
-<h2 id="SessionsDatabaseReport">Sessions per database <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Database</th>
-               <th>Count</th>
-               <th>Total Duration</th>
-               <th>Avg&nbsp;duration&nbsp;(s)</th>
-       </tr>
+       # VACUUM stats per table
+       my $total_count   = 0;
+       my $total_idxscan = 0;
+       my $vacuum_info   = '';
+       my @main_vacuum   = ('unknown',0);
+       foreach my $t (sort {$autovacuum_info{tables}{$b}{vacuums} <=> $autovacuum_info{tables}{$a}{vacuums}} keys %{$autovacuum_info{tables}}) {
+               $vacuum_info .= "<tr><td>$t</td><td>" . $autovacuum_info{tables}{$t}{vacuums} .
+                       "</td><td>" . $autovacuum_info{tables}{$t}{idxscans} .
+                       "</td></tr>";
+               $total_count += $autovacuum_info{tables}{$t}{vacuums};
+               $total_idxscan += $autovacuum_info{tables}{$t}{idxscans};
+               if ($main_vacuum[1] < $autovacuum_info{tables}{$t}{vacuums}) {
+                       $main_vacuum[0] = $t;
+                       $main_vacuum[1] = $autovacuum_info{tables}{$t}{vacuums};
+               }
+       }
+       $vacuum_info .= "<tr><th>Total</th><td>" . &comma_numbers($total_count) . "</td><td>" . &comma_numbers($total_idxscan) . "</td></tr>";
+
+       my %infos = ();
+       my @small = ();
+       foreach my $d (sort keys %{$autovacuum_info{tables}}) {
+               if ((($autovacuum_info{tables}{$d}{vacuums} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                       $infos{$d} = $autovacuum_info{tables}{$d}{vacuums} || 0;
+               } else {
+                       $infos{"Sum vacuums < $pie_percentage_limit%"} += $autovacuum_info{tables}{$d}{vacuums} || 0;
+                       push(@small, $d);
+               }
+       }
+       if ($#small == 0) {
+               $infos{$small[0]} = $infos{"Sum vacuums < $pie_percentage_limit%"};
+               delete $infos{"Sum vacuums < $pie_percentage_limit%"};
+       }
+       $drawn_graphs{tablevacuums_graph} = &flotr2_piegraph($graphid++, 'tablevacuums_graph', 'Analyzes per tables', %infos);
+       $vacuum_info = qq{<tr><td colspan="3">$NODATA</td></tr>} if (!$total_count);
+       $total_count = &comma_numbers($total_count);
+       my $database = '';
+       if ($main_vacuum[0] =~ s/^([^\.]+)\.//) {
+               $database = $1;
+       }
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="vacuums-per-table">
+               <h2><i class="icon-table"></i> Vacuums per table</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_vacuum[0] ($main_vacuum[1])</span> <span class="figure-label">Main table vacuumed on database $database</span></li>
+                                       <li><span class="figure">$total_count vacuums</span> <span class="figure-label">Total</span></li>    
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#vacuums-per-table-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#vacuums-per-table-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="vacuums-per-table-graph">
+                                               $drawn_graphs{tablevacuums_graph}
+                                       </div>
+                                       <div class="tab-pane" id="vacuums-per-table-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Table</th>
+                                                                       <th>Number of vacuums</th>
+                                                                       <th>Index scans</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $vacuum_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of vacuums per table -->
 };
-               my $total_count = 0;
-               my $c           = 0;
-               foreach my $d (sort keys %{$session_info{database}}) {
-                       my $colb = $c % 2;
-                       print $fh "<tr class=\"row$colb\"><td>$d</td><td class=\"right\">", &comma_numbers($session_info{database}{$d}{count}),
-                               "</td><td class=\"right\">", &convert_time($session_info{database}{$d}{duration}), "</td><td class=\"right\">",
-                               &convert_time($session_info{database}{$d}{duration} / $session_info{database}{$d}{count}), "</td></tr>\n";
-                       $total_count += $session_info{database}{$d}{count};
-                       $c++;
+       delete $drawn_graphs{tablevacuums_graph};
+
+}
+
+sub print_vacuum_tuple_removed
+{
+       # VACUUM stats per table
+       my $total_count   = 0;
+       my $total_idxscan = 0;
+       my $total_tuple = 0;
+       my $total_page = 0;
+       my $vacuum_info   = '';
+       my @main_tuple   = ('unknown',0);
+       foreach my $t (sort {$autovacuum_info{tables}{$b}{tuples}{removed} <=> $autovacuum_info{tables}{$a}{tuples}{removed}} keys %{$autovacuum_info{tables}}) {
+               $vacuum_info .= "<tr><td>$t</td><td>" . $autovacuum_info{tables}{$t}{vacuums} .
+                       "</td><td>" . $autovacuum_info{tables}{$t}{idxscans} .
+                       "</td><td>" . $autovacuum_info{tables}{$t}{tuples}{removed} .
+                       "</td><td>" . $autovacuum_info{tables}{$t}{pages}{removed} .
+                       "</td></tr>";
+               $total_count += $autovacuum_info{tables}{$t}{vacuums};
+               $total_idxscan += $autovacuum_info{tables}{$t}{idxscans};
+               $total_tuple += $autovacuum_info{tables}{$t}{tuples}{removed};
+               $total_page += $autovacuum_info{tables}{$t}{pages}{removed};
+               if ($main_tuple[1] < $autovacuum_info{tables}{$t}{tuples}{removed}) {
+                       $main_tuple[0] = $t;
+                       $main_tuple[1] = $autovacuum_info{tables}{$t}{tuples}{removed};
+               }
+       }
+       $vacuum_info .= "<tr><th>Total</th><td>" . &comma_numbers($total_count) . "</td><td>" . &comma_numbers($total_idxscan) .
+                       "</td><td>" . &comma_numbers($total_tuple) . "</td><td>" . &comma_numbers($total_page) . "</td></tr>";
+
+       my %infos_tuple = ();
+       my @small = ();
+       foreach my $d (sort keys %{$autovacuum_info{tables}}) {
+               if ((($autovacuum_info{tables}{$d}{tuples}{removed} * 100) / ($total_tuple||1)) > $pie_percentage_limit) {
+                       $infos_tuple{$d} = $autovacuum_info{tables}{$d}{tuples}{removed} || 0;
+               } else {
+                       $infos_tuple{"Sum tuples removed < $pie_percentage_limit%"} += $autovacuum_info{tables}{$d}{tuples}{removed} || 0;
+                       push(@small, $d);
                }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %{$session_info{database}}) {
-                               if ((($session_info{database}{$d}{count} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $session_info{database}{$d}{count} || 0;
-                               } else {
-                                       $infos{"Sum sessions < $pie_percentage_limit%"} += $session_info{database}{$d}{count} || 0;
-                                       push(@small, $d);
-                               }
-                       }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum sessions < $pie_percentage_limit%"};
-                               delete $infos{"Sum sessions < $pie_percentage_limit%"};
-                       }
-                       &flotr2_piegraph($graphid++, 'databasesessions_graph', 'Sessions per database', %infos);
+       }
+       if ($#small == 0) {
+               $infos_tuple{$small[0]} = $infos_tuple{"Sum tuples removed < $pie_percentage_limit%"};
+               delete $infos_tuple{"Sum tuples removed < $pie_percentage_limit%"};
+       }
+       $drawn_graphs{tuplevacuums_graph} = &flotr2_piegraph($graphid++, 'tuplevacuums_graph', 'Tuples removed per tables', %infos_tuple);
+       $vacuum_info = qq{<tr><td colspan="5">$NODATA</td></tr>} if (!$total_count);
+       $total_count = &comma_numbers($total_count);
+       my $database = '';
+       if ($main_tuple[0] =~ s/^([^\.]+)\.//) {
+               $database = $1;
+       }
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="tuples-removed-per-table">
+               <h2><i class="icon-table"></i> Tuples removed per table</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_tuple[0] ($main_tuple[1])</span> <span class="figure-label">Main table with removed tuples on database $database</span></li>
+                                       <li><span class="figure">$total_tuple tuples</span> <span class="figure-label">Total removed</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#tuples-removed-per-table-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#tuples-removed-per-table-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="tuples-removed-per-table-graph">
+                                               $drawn_graphs{tuplevacuums_graph}
+                                       </div>
+                                       <div class="tab-pane" id="tuples-removed-per-table-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Table</th>
+                                                                       <th>Number of vacuums</th>
+                                                                       <th>Index scans</th>
+                                                                       <th>Tuples removed</th>
+                                                                       <th>Pages removed</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $vacuum_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of tuples removed per table -->
+};
+       delete $drawn_graphs{tuplevacuums_graph};
+
+}
+
+sub print_vacuum_page_removed
+{
+       # VACUUM stats per table
+       my $total_count   = 0;
+       my $total_idxscan = 0;
+       my $total_tuple = 0;
+       my $total_page = 0;
+       my $vacuum_info   = '';
+       my @main_tuple   = ('unknown',0);
+       my @main_page   = ('unknown',0);
+       foreach my $t (sort {$autovacuum_info{tables}{$b}{pages}{removed} <=> $autovacuum_info{tables}{$a}{pages}{removed}} keys %{$autovacuum_info{tables}}) {
+               $vacuum_info .= "<tr><td>$t</td><td>" . $autovacuum_info{tables}{$t}{vacuums} .
+                       "</td><td>" . $autovacuum_info{tables}{$t}{idxscans} .
+                       "</td><td>" . $autovacuum_info{tables}{$t}{tuples}{removed} .
+                       "</td><td>" . $autovacuum_info{tables}{$t}{pages}{removed} .
+                       "</td></tr>";
+               $total_count += $autovacuum_info{tables}{$t}{vacuums};
+               $total_idxscan += $autovacuum_info{tables}{$t}{idxscans};
+               $total_tuple += $autovacuum_info{tables}{$t}{tuples}{removed};
+               $total_page += $autovacuum_info{tables}{$t}{pages}{removed};
+               if ($main_page[1] < $autovacuum_info{tables}{$t}{pages}{removed}) {
+                       $main_page[0] = $t;
+                       $main_page[1] = $autovacuum_info{tables}{$t}{pages}{removed};
+               }
+       }
+       $vacuum_info .= "<tr><th>Total</th><td>" . &comma_numbers($total_count) . "</td><td>" . &comma_numbers($total_idxscan) .
+                       "</td><td>" . &comma_numbers($total_tuple) . "</td><td>" . &comma_numbers($total_page) . "</td></tr>";
+
+       my %infos_page = ();
+       my @small = ();
+       foreach my $d (sort keys %{$autovacuum_info{tables}}) {
+               if ((($autovacuum_info{tables}{$d}{pages}{removed} * 100) / ($total_page || 1)) > $pie_percentage_limit) {
+                       $infos_page{$d} = $autovacuum_info{tables}{$d}{pages}{removed} || 0;
+               } else {
+                       $infos_page{"Sum pages removed < $pie_percentage_limit%"} += $autovacuum_info{tables}{$d}{pages}{removed} || 0;
+                       push(@small, $d);
                }
-               print $fh "</td></tr></table>\n";
        }
+       if ($#small == 0) {
+               $infos_page{$small[0]} = $infos_page{"Sum pages removed < $pie_percentage_limit%"};
+               delete $infos_page{"Sum pages removed < $pie_percentage_limit%"};
+       }
+       $drawn_graphs{pagevacuums_graph} = &flotr2_piegraph($graphid++, 'pagevacuums_graph', 'Tuples removed per tables', %infos_page);
+       $vacuum_info = qq{<tr><td colspan="5">$NODATA</td></tr>} if (!$total_count);
+       $total_count = &comma_numbers($total_count);
+       my $database = '';
+       if ($main_page[0] =~ s/^([^\.]+)\.//) {
+               $database = $1;
+       }
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="pages-removed-per-table">
+               <h2><i class="icon-table"></i> Pages removed per table</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_page[0] ($main_page[1])</span> <span class="figure-label">Main table with removed pages on database $database</span></li>
+                                       <li><span class="figure">$total_page pages</span> <span class="figure-label">Total removed</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#pages-removed-per-table-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#pages-removed-per-table-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="pages-removed-per-table-graph">
+                                               $drawn_graphs{pagevacuums_graph}
+                                       </div>
+                                       <div class="tab-pane" id="pages-removed-per-table-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Table</th>
+                                                                       <th>Number of vacuums</th>
+                                                                       <th>Index scans</th>
+                                                                       <th>Tuples removed</th>
+                                                                       <th>Pages removed</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $vacuum_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of pages removed per table -->
+};
+       delete $drawn_graphs{pagevacuums_graph};
 
-       # Show session per user statistics
-       if (exists $session_info{user}) {
-               print $fh qq{
-<h2 id="SessionsUserReport">Sessions per user <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>User</th>
-               <th>Count</th>
-               <th>Total Duration</th>
-               <th>Avg&nbsp;duration&nbsp;(s)</th>
-       </tr>
+}
+
+sub print_lock_type
+{
+       my %locktype = ();
+       my $total_count = 0;
+       my $total_duration = 0;
+       my $locktype_info = '';
+       my @main_locktype = ('unknown',0);
+       foreach my $t (sort keys %lock_info) {
+               $locktype_info .= "<tr><td>$t</td><td></td><td>" . &comma_numbers($lock_info{$t}{count}) .
+                                 "</td><td>" . &convert_time($lock_info{$t}{duration}) . "</td><td>" .
+                                 &convert_time($lock_info{$t}{duration} / ($lock_info{$t}{count} || 1)) . "</td></tr>";
+               $total_count += $lock_info{$t}{count};
+               $total_duration += $lock_info{$t}{duration};
+               if ($main_locktype[1] < $lock_info{$t}{count}) {
+                       $main_locktype[0] = $t;
+                       $main_locktype[1] = $lock_info{$t}{count};
+               }
+               foreach my $o (sort keys %{$lock_info{$t}}) {
+                       next if (($o eq 'count') || ($o eq 'duration') || ($o eq 'chronos'));
+                       $locktype_info .= "<tr><td></td><td>$o</td><td>" . &comma_numbers($lock_info{$t}{$o}{count}) .
+                                         "</td><td>" . &convert_time($lock_info{$t}{$o}{duration}) . "</td><td>" .
+                                         &convert_time($lock_info{$t}{$o}{duration} / $lock_info{$t}{$o}{count}) .
+                                         "</td></tr>\n";
+               }
+       }
+       if ($total_count > 0) {
+               $locktype_info .= "<tr><td></td><th>Total</th><td>" . &comma_numbers($total_count) .
+                                 "</td><td>" . &convert_time($total_duration) . "</td><td>" .
+                                 &convert_time($total_duration / ($total_count || 1)) . "</td></tr>";
+       } else {
+               $locktype_info = qq{<tr><td colspan="5">$NODATA</td></tr>};
+       }
+       if ($graph) {
+               my @small    = ();
+               foreach my $d (sort keys %lock_info) {
+                       if ((($lock_info{$d}{count} * 100) / ($total_count||1)) > $pie_percentage_limit) {
+                               $locktype{$d} = $lock_info{$d}{count} || 0;
+                       } else {
+                               $locktype{"Sum lock types < $pie_percentage_limit%"} += $lock_info{$d}{count} || 0;
+                               push(@small, $d);
+
+                       }
+               }
+               if ($#small == 0) {
+                       $locktype{$small[0]} = $locktype{"Sum types < $pie_percentage_limit%"};
+                       delete $locktype{"Sum lock types < $pie_percentage_limit%"};
+               }
+       }
+       $drawn_graphs{lockbytype_graph} = &flotr2_piegraph($graphid++, 'lockbytype_graph', 'Type of locks', %locktype);
+       $total_count = &comma_numbers($total_count);
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-lock"></i> Locks</h1>
+       <div class="analysis-item row-fluid" id="locks-type">
+               <h2><i class="icon-lock"></i> Locks by types</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_locktype[0]</span> <span class="figure-label">Main Lock Type</span></li>
+                                       <li><span class="figure">$total_count locks</span> <span class="figure-label">Total</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#locks-types-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#locks-types-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="locks-types-graph">
+                                               $drawn_graphs{lockbytype_graph}
+                                       </div>
+                                       <div class="tab-pane" id="locks-types-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Type</th>
+                                                                       <th>Object</th>
+                                                                       <th>Count</th>
+                                                                       <th>Total Duration</th>
+                                                                       <th>Average Duration (s)</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $locktype_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of locks by type -->
 };
-               my $total_count = 0;
-               my $c           = 0;
-               foreach my $d (sort keys %{$session_info{user}}) {
-                       my $colb = $c % 2;
-                       $total_count += $session_info{user}{$d}{count};
-                       print $fh "<tr class=\"row$colb\"><td>$d</td><td class=\"right\">", &comma_numbers($session_info{user}{$d}{count}),
-                               "</td><td class=\"right\">", &convert_time($session_info{user}{$d}{duration}), "</td><td class=\"right\">",
-                               &convert_time($session_info{user}{$d}{duration} / $session_info{user}{$d}{count}), "</td></tr>\n";
-                       $c++;
+       delete $drawn_graphs{lockbytype_graph};
+}
+
+sub print_query_type
+{
+
+       my %data = ();
+        my $total_queries = 0;
+        my $total_select = 0;
+        my $total_write = 0;
+        foreach my $a (@SQL_ACTION) {
+                $total_queries += $overall_stat{$a};
+               if ($a eq 'SELECT') {
+                       $total_select += $overall_stat{$a};
+               } elsif ($a ne 'OTHERS') {
+                       $total_write += $overall_stat{$a};
                }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %{$session_info{user}}) {
-                               if ((($session_info{user}{$d}{count} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $session_info{user}{$d}{count} || 0;
-                               } else {
-                                       $infos{"Sum sessions < $pie_percentage_limit%"} += $session_info{user}{$d}{count} || 0;
-                                       push(@small, $d);
-                               }
-                       }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum sessions < $pie_percentage_limit%"};
-                               delete $infos{"Sum sessions < $pie_percentage_limit%"};
+        }
+       my $total = $overall_stat{'queries_number'};
+
+       my $querytype_info = '';
+        foreach my $a (@SQL_ACTION) {
+                $querytype_info .= "<tr><td>$a</td><td>" . &comma_numbers($overall_stat{$a}) .
+                        "</td><td>" . sprintf("%0.2f", ($overall_stat{$a} * 100) / ($total||1)) . "%</td></tr>";
+        }
+       if (($total - $total_queries) > 0) {
+               $querytype_info .= "<tr><td>OTHERS</td><td>" . &comma_numbers($total - $total_queries) .
+                       "</td><td>" . sprintf("%0.2f", (($total - $total_queries) * 100) / ($total||1)) . "%</td></tr>";
+       }
+       $querytype_info = qq{<tr><td colspan="3">$NODATA</td></tr>} if (!$total);
+
+       if ($graph && $total) {
+               foreach my $t (@SQL_ACTION) {
+                       if ((($overall_stat{$t} * 100) / ($total||1)) > $pie_percentage_limit) {
+                               $data{$t} = $overall_stat{$t} || 0;
+                       } else {
+                               $data{"Sum query types < $pie_percentage_limit%"} += $overall_stat{$t} || 0;
                        }
-                       &flotr2_piegraph($graphid++, 'usersessions_graph', 'Sessions per user', %infos);
                }
-               print $fh "</td></tr></table>\n";
+               if (((($total - $total_queries) * 100) / ($total||1)) > $pie_percentage_limit) {
+                       $data{'Others'} = $total - $total_queries;
+               } else {
+                       $data{"Sum query types < $pie_percentage_limit%"} += $total - $total_queries;
+               }
        }
+       $drawn_graphs{queriesbytype_graph} = &flotr2_piegraph($graphid++, 'queriesbytype_graph', 'Type of queries', %data);
 
-       # Show session per host statistics
-       if (exists $session_info{host}) {
-               print $fh qq{
-<h2 id="SessionsHostReport">Sessions per host <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Host</th>
-               <th>Count</th>
-               <th>Total Duration</th>
-               <th>Avg&nbsp;duration&nbsp;(s)</th>
-       </tr>
+       $total_select = &comma_numbers($total_select);
+       $total_write = &comma_numbers($total_write);
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-question-sign"></i> Queries</h1>
+       <div class="analysis-item row-fluid" id="queries-by-type">
+               <h2><i class="icon-question-sign"></i> Queries by type</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$total_select</span> <span class="figure-label">Total read queries</span></li>
+                                       <li><span class="figure">$total_write</span> <span class="figure-label">Total write queries</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#queries-by-type-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#queries-by-type-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="queries-by-type-graph">
+                                               $drawn_graphs{queriesbytype_graph}
+                                       </div>
+                                       <div class="tab-pane" id="queries-by-type-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Type</th>
+                                                                       <th>Count</th>
+                                                                       <th>Percentage</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $querytype_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of queries by type -->
 };
-               my $total_count = 0;
-               my $c           = 0;
-               foreach my $d (sort keys %{$session_info{host}}) {
-                       my $colb = $c % 2;
-                       $total_count += $session_info{host}{$d}{count};
-                       print $fh "<tr class=\"row$colb\"><td>$d</td><td class=\"right\">", &comma_numbers($session_info{host}{$d}{count}),
-                               "</td><td class=\"right\">", &convert_time($session_info{host}{$d}{duration}), "</td><td class=\"right\">",
-                               &convert_time($session_info{host}{$d}{duration} / $session_info{host}{$d}{count}), "</td></tr>\n";
-                       $c++;
-               }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %{$session_info{host}}) {
-                               if ((($session_info{host}{$d}{count} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $session_info{host}{$d}{count} || 0;
-                               } else {
-                                       $infos{"Sum sessions < $pie_percentage_limit%"} += $session_info{host}{$d}{count} || 0;
-                                       push(@small, $d);
-                               }
-                       }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum sessions < $pie_percentage_limit%"};
-                               delete $infos{"Sum sessions < $pie_percentage_limit%"};
+       delete $drawn_graphs{queriesbytype_graph};
+
+}
+
+sub print_query_per_database
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $query_database_info = '';
+       my @main_database = ('unknown', 0);
+       foreach my $d (sort keys %database_info) {
+               $query_database_info .= "<tr><td>$d</td><td>Total</td><td>" .
+                                       &comma_numbers($database_info{$d}{count}) . "</td></tr>";
+               $total_count += $database_info{$d}{count};
+                if ($main_database[1] < $database_info{$d}{count}) {
+                        $main_database[0] = $d;
+                        $main_database[1] = $database_info{$d}{count};
+                }
+               foreach my $r (sort keys %{$database_info{$d}}) {
+                       next if ($r eq 'count');
+                       $query_database_info .= "<tr><td></td><td>$r</td><td>" .
+                                               &comma_numbers($database_info{$d}{$r}) . "</td></tr>";
+               }
+       }
+
+       $query_database_info = qq{<tr><td colspan="3">$NODATA</td></tr>} if (!$total_count);
+
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %database_info) {
+                       if ((($database_info{$d}{count} * 100) / ($total_count || 1)) > $pie_percentage_limit) {
+                               $infos{$d} = $database_info{$d}{count} || 0;
+                       } else {
+                               $infos{"Sum queries per databases < $pie_percentage_limit%"} += $database_info{$d}{count} || 0;
+                               push(@small, $d);
                        }
-                       &flotr2_piegraph($graphid++, 'hostsessions_graph', 'Sessions per host', %infos);
                }
-               print $fh "</td></tr></table>\n";
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum queries per databases < $pie_percentage_limit%"};
+                       delete $infos{"Sum queries per databases < $pie_percentage_limit%"};
+               }
        }
+       $drawn_graphs{queriesbydatabase_graph} = &flotr2_piegraph($graphid++, 'queriesbydatabase_graph', 'Queries per database', %infos);
+
+       $main_database[1] = &comma_numbers($main_database[1]);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="queries-by-database">
+               <h2><i class="icon-question-sign"></i> Queries by database</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_database[0]</span> <span class="figure-label">Main database</span></li>
+                                       <li><span class="figure">$main_database[1]</span> <span class="figure-label">Requests</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#queries-by-database-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#queries-by-database-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="queries-by-database-graph">
+                                               $drawn_graphs{queriesbydatabase_graph}
+                                       </div>
+                                       <div class="tab-pane" id="queries-by-database-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Database</th>
+                                                                       <th>Request type</th>
+                                                                       <th>Count</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $query_database_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of queries by database -->
+};
+       delete $drawn_graphs{queriesbydatabase_graph};
+
+
 }
 
-sub print_connection_report
+sub print_query_per_application
 {
-       if (exists $connection_info{database}) {
-               print $fh qq{
-<h2 id="ConnectionsDatabaseReport">Connections per database <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Database</th>
-               <th>User</th>
-               <th>Count</th>
-       </tr>
-};
-               my $total_count = 0;
-               foreach my $d (sort keys %{$connection_info{database}}) {
-                       print $fh "<tr class=\"row1\"><td colspan=\"2\">$d</td><td class=\"right\">",
-                               &comma_numbers($connection_info{database}{$d}), "</td></tr>\n";
-                       $total_count += $connection_info{database}{$d};
-                       foreach my $u (sort keys %{$connection_info{user}}) {
-                               next if (!exists $connection_info{database_user}{$d}{$u});
-                               print $fh "<tr class=\"row0\"><td colspan=\"2\" class=\"right\">$u</td><td class=\"right\">",
-                                       &comma_numbers($connection_info{database_user}{$d}{$u}), "</td></tr>\n";
+       my %infos = ();
+       my $total_count = 0;
+       my $query_application_info = '';
+       my @main_application = ('unknown', 0);
+       foreach my $d (sort keys %application_info) {
+               $query_application_info .= "<tr><td>$d</td><td>Total</td><td>" .
+                                       &comma_numbers($application_info{$d}{count}) . "</td></tr>";
+               $total_count += $application_info{$d}{count};
+                if ($main_application[1] < $application_info{$d}{count}) {
+                        $main_application[0] = $d;
+                        $main_application[1] = $application_info{$d}{count};
+                }
+               foreach my $r (sort keys %{$application_info{$d}}) {
+                       next if ($r eq 'count');
+                       $query_application_info .= "<tr><td></td><td>$r</td><td>" .
+                                               &comma_numbers($application_info{$d}{$r}) . "</td></tr>";
+               }
+       }
+       $query_application_info = qq{<tr><td colspan="3">$NODATA</td></tr>} if (!$total_count);
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %application_info) {
+                       if ((($application_info{$d}{count} * 100) / ($total_count || 1)) > $pie_percentage_limit) {
+                               $infos{$d} = $application_info{$d}{count} || 0;
+                       } else {
+                               $infos{"Sum queries per applications < $pie_percentage_limit%"} += $application_info{$d}{count} || 0;
+                               push(@small, $d);
                        }
                }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %{$connection_info{database}}) {
-                               if ((($connection_info{database}{$d} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $connection_info{database}{$d} || 0;
-                               } else {
-                                       $infos{"Sum connections < $pie_percentage_limit%"} += $connection_info{database}{$d} || 0;
-                                       push(@small, $d);
-                               }
-                       }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum connections < $pie_percentage_limit%"};
-                               delete $infos{"Sum connections < $pie_percentage_limit%"};
-                       }
-                       &flotr2_piegraph($graphid++, 'databaseconnections_graph', 'Connections per database', %infos);
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum queries per applications < $pie_percentage_limit%"};
+                       delete $infos{"Sum queries per applications < $pie_percentage_limit%"};
                }
-               print $fh "</td></tr></table>\n";
        }
+       $drawn_graphs{queriesbyapplication_graph} = &flotr2_piegraph($graphid++, 'queriesbyapplication_graph', 'Queries per application', %infos);
 
-       # Show connection per user statistics
-       if (exists $connection_info{user}) {
-               print $fh qq{
-<h2 id="ConnectionsUserReport">Connections per user <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>User</th>
-               <th>Count</th>
-       </tr>
+       $main_application[1] = &comma_numbers($main_application[1]);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="queries-by-application">
+               <h2><i class="icon-question-sign"></i> Queries by application</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_application[0]</span> <span class="figure-label">Main application</span></li>
+                                       <li><span class="figure">$main_application[1]</span> <span class="figure-label">Requests</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#queries-by-application-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#queries-by-application-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="queries-by-application-graph">
+                                               $drawn_graphs{queriesbyapplication_graph}
+                                       </div>
+                                       <div class="tab-pane" id="queries-by-application-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Database</th>
+                                                                       <th>Request type</th>
+                                                                       <th>Count</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $query_application_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of queries by application -->
 };
+       delete $drawn_graphs{queriesbyapplication_graph};
 
-               my $total_count = 0;
-               my $c           = 0;
-               foreach my $u (sort keys %{$connection_info{user}}) {
-                       my $colb = $c % 2;
-                       print $fh "<tr class=\"row$colb\"><td>$u</td><td class=\"right\">", &comma_numbers($connection_info{user}{$u}),
-                               "</td></tr>\n";
-                       $total_count += $connection_info{user}{$u};
-                       $c++;
-               }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %{$connection_info{user}}) {
-                               if ((($connection_info{user}{$d} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $connection_info{user}{$d} || 0;
-                               } else {
-                                       $infos{"Sum connections < $pie_percentage_limit%"} += $connection_info{user}{$d} || 0;
-                                       push(@small, $d);
-                               }
-                       }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum connections < $pie_percentage_limit%"};
-                               delete $infos{"Sum connections < $pie_percentage_limit%"};
+}
+
+sub print_query_per_user
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $query_user_info = '';
+       my @main_user = ('unknown', 0);
+       foreach my $d (sort keys %user_info) {
+               $query_user_info .= "<tr><td>$d</td><td>Total</td><td>" .
+                                       &comma_numbers($user_info{$d}{count}) . "</td></tr>";
+               $total_count += $user_info{$d}{count};
+                if ($main_user[1] < $user_info{$d}{count}) {
+                        $main_user[0] = $d;
+                        $main_user[1] = $user_info{$d}{count};
+                }
+               foreach my $r (sort keys %{$user_info{$d}}) {
+                       next if ($r eq 'count');
+                       $query_user_info .= "<tr><td></td><td>$r</td><td>" .
+                                               &comma_numbers($user_info{$d}{$r}) . "</td></tr>";
+               }
+       }
+       $query_user_info = qq{<tr><td colspan="3">$NODATA</td></tr>} if (!$total_count);
+
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %user_info) {
+                       if ((($user_info{$d}{count} * 100) / ($total_count || 1)) > $pie_percentage_limit) {
+                               $infos{$d} = $user_info{$d}{count} || 0;
+                       } else {
+                               $infos{"Sum queries per users < $pie_percentage_limit%"} += $user_info{$d}{count} || 0;
+                               push(@small, $d);
                        }
-                       &flotr2_piegraph($graphid++, 'userconnections_graph', 'Connections per user', %infos);
                }
-               print $fh "</td></tr></table>\n";
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum queries per users < $pie_percentage_limit%"};
+                       delete $infos{"Sum queries per users < $pie_percentage_limit%"};
+               }
        }
+       $drawn_graphs{queriesbyuser_graph} = &flotr2_piegraph($graphid++, 'queriesbyuser_graph', 'Queries per user', %infos);
 
-       # Show connection per host statistics
-       if (exists $connection_info{host}) {
-               print $fh qq{
-<h2 id="ConnectionsHostReport">Connections per host <a href="#top" title="Back to top">^</a></h2>
-<table>
-<tr><td width="500" align="left" valign="top">
-<table class="SmallTableList">
-       <tr>
-               <th>Host</th>
-               <th>Count</th>
-       </tr>
+       $main_user[1] = &comma_numbers($main_user[1]);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="queries-by-user">
+               <h2><i class="icon-question-sign"></i> Queries by user</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_user[0]</span> <span class="figure-label">Main user</span></li>
+                                       <li><span class="figure">$main_user[1]</span> <span class="figure-label">Requests</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#queries-by-user-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#queries-by-user-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="queries-by-user-graph">
+                                               $drawn_graphs{queriesbyuser_graph}
+                                       </div>
+                                       <div class="tab-pane" id="queries-by-user-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>User</th>
+                                                                       <th>Request type</th>
+                                                                       <th>Count</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $query_user_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of queries by user -->
 };
+       delete $drawn_graphs{queriesbyuser_graph};
 
-               my $total_count = 0;
-               my $c           = 0;
-               foreach my $h (sort keys %{$connection_info{host}}) {
-                       my $colb = $c % 2;
-                       print $fh "<tr class=\"row$colb\"><td>$h</td><td class=\"right\">", &comma_numbers($connection_info{host}{$h}),
-                               "</td></tr>\n";
-                       $total_count += $connection_info{host}{$h};
-                       $c++;
-               }
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_count) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %{$connection_info{host}}) {
-                               if ((($connection_info{host}{$d} * 100) / $total_count) > $pie_percentage_limit) {
-                                       $infos{$d} = $connection_info{host}{$d} || 0;
-                               } else {
-                                       $infos{"Sum connections < $pie_percentage_limit%"} += $connection_info{host}{$d} || 0;
-                                       push(@small, $d);
-                               }
-                       }
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum connections < $pie_percentage_limit%"};
-                               delete $infos{"Sum connections < $pie_percentage_limit%"};
+}
+
+sub print_query_per_host
+{
+       my %infos = ();
+       my $total_count = 0;
+       my $query_host_info = '';
+       my @main_host = ('unknown', 0);
+       foreach my $d (sort keys %host_info) {
+               $query_host_info .= "<tr><td>$d</td><td>Total</td><td>" .
+                                       &comma_numbers($host_info{$d}{count}) . "</td></tr>";
+               $total_count += $host_info{$d}{count};
+                if ($main_host[1] < $host_info{$d}{count}) {
+                        $main_host[0] = $d;
+                        $main_host[1] = $host_info{$d}{count};
+                }
+               foreach my $r (sort keys %{$host_info{$d}}) {
+                       next if ($r eq 'count');
+                       $query_host_info .= "<tr><td></td><td>$r</td><td>" .
+                                               &comma_numbers($host_info{$d}{$r}) . "</td></tr>";
+               }
+       }
+       $query_host_info = qq{<tr><td colspan="3">$NODATA</td></tr>} if (!$total_count);
+
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %host_info) {
+                       if ((($host_info{$d}{count} * 100) / ($total_count || 1)) > $pie_percentage_limit) {
+                               $infos{$d} = $host_info{$d}{count} || 0;
+                       } else {
+                               $infos{"Sum queries per hosts < $pie_percentage_limit%"} += $host_info{$d}{count} || 0;
+                               push(@small, $d);
                        }
-                       &flotr2_piegraph($graphid++, 'hostconnections_graph', 'Connections per host', %infos);
                }
-               print $fh "</td></tr></table>\n";
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum queries per hosts < $pie_percentage_limit%"};
+                       delete $infos{"Sum queries per hosts < $pie_percentage_limit%"};
+               }
        }
+       $drawn_graphs{queriesbyhost_graph} = &flotr2_piegraph($graphid++, 'queriesbyhost_graph', 'Queries per host', %infos);
+
+       $main_host[1] = &comma_numbers($main_host[1]);
+       print $fh qq{
+       <div class="analysis-item row-fluid" id="queries-by-host">
+               <h2><i class="icon-question-sign"></i> Queries by host</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$main_host[0]</span> <span class="figure-label">Main host</span></li>
+                                       <li><span class="figure">$main_host[1]</span> <span class="figure-label">Requests</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#queries-by-host-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#queries-by-host-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="queries-by-host-graph">
+                                               $drawn_graphs{queriesbyhost_graph}
+                                       </div>
+                                       <div class="tab-pane" id="queries-by-host-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Host</th>
+                                                                       <th>Request type</th>
+                                                                       <th>Count</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $query_host_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of queries by host -->
+};
+       delete $drawn_graphs{queriesbyhost_graph};
 
 }
 
+
 sub print_lock_queries_report
 {
        my @top_locked_queries;
@@ -3909,81 +5268,143 @@ sub print_lock_queries_report
        # Most frequent waiting queries (N)
        @top_locked_queries = sort {$b->[2] <=> $a->[2]} @top_locked_queries;
        print $fh qq{
-<h2 id="MostFrequentWaitingQueries">Most frequent waiting queries (N)<a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-<tr>
-<th>Rank</th>
-<th>Count</th>
-<th>Total&nbsp;wait&nbsp;time&nbsp;(s)</th>
-<th>Min/Max/Avg&nbsp;duration&nbsp;(s)</th>
-<th>Query</th>
-</tr>
+                <div class="analysis-item row-fluid" id="queries-most-frequent-waiting">
+                        <h2><i class="icon-ban-circle"></i> Most frequent waiting queries (N)</h2>
+                        <div class="span11">
+                                <table class="table table-striped" id="queries-most-frequent-waiting-table">
+                                <thead>
+                                        <tr>
+                                                <th>Rank</th>
+                                                <th>Count</th>
+                                                <th>Total&nbsp;time</th>
+                                                <th>Min&nbsp;time</th>
+                                                <th>Max&nbsp;time</th>
+                                                <th>Avg&nbsp;duration</th>
+                                                <th>Query</th>
+                                        </tr>
+                                </thead>
+                                <tbody>
 };
-       my $idx = 1;
+
+       my $rank = 1;
        for (my $i = 0 ; $i <= $#top_locked_queries ; $i++) {
-               last if ($i > $end_top);
-               my $col = $i % 2;
-               print $fh "<tr class=\"row$col\"><td class=\"center top\">", $i + 1, "</td><td class=\"relevantInformation top center\">",
-               $top_locked_queries[$i]->[1], "</td><td class=\"center top\">", &convert_time($top_locked_queries[$i]->[2]),
-               "</td><td class=\"center top\">", &convert_time($top_locked_queries[$i]->[3]), "/", &convert_time($top_locked_queries[$i]->[4]), "/",
-               &convert_time(($top_locked_queries[$i]->[4] / $top_locked_queries[$i]->[1])),
-               "</td><td><div class=\"sql\" onclick=\"sql_format(this)\">",
-               &highlight_code($top_locked_queries[$i]->[0]), "</div>\n";
+               my $count = &comma_numbers($top_locked_queries[$i]->[1]);
+               my $total_time = &convert_time($top_locked_queries[$i]->[2]);
+               my $min_time = &convert_time($top_locked_queries[$i]->[3]);
+               my $max_time = &convert_time($top_locked_queries[$i]->[4]);
+               my $avg_time = &convert_time($top_locked_queries[$i]->[4] / ($top_locked_queries[$i]->[1] || 1));
+               my $query = &highlight_code($top_locked_queries[$i]->[0]);
                my $k = $top_locked_queries[$i]->[0];
+               my $example = qq{<p><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#queries-most-frequent-waiting-examples-rank-$rank">Examples</button></p>};
+               $example = '' if (scalar keys %{$normalyzed_info{$k}{samples}} <= 1);
+               print $fh qq{
+                       <tr>
+                       <td>$rank</td>
+                       <td>$count</td>
+                       <td>$total_time</td>
+                       <td>$min_time</td>
+                       <td>$max_time</td>
+                       <td>$avg_time</td>
+                       <td id="queries-most-frequent-waiting-examples-details-rank-$rank">
+                               <div class="sql" onclick="sql_format(this)">$query</div>
+                                $example
+                       <!-- Examples collapse -->
+                       <div id="queries-most-frequent-waiting-examples-rank-$rank" class="collapse">
+                               <dl>
+};
                if ($normalyzed_info{$k}{count} > 1) {
-                       print $fh
-"<input type=\"button\" class=\"examplesButton\" id=\"button_QueriesThatWaitedTheMost_$idx\" name=\"button_QueriesThatWaitedTheMost_$idx\" value=\"Show examples\" onclick=\"javascript:toggle('button_QueriesThatWaitedTheMost_$idx', 'examples_QueriesThatWaitedTheMost_$idx', 'examples');\" /><div id=\"examples_QueriesThatWaitedTheMost_$idx\" class=\"examples\" style=\"display:none;\">";
-                       my $j = 0;
                        foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                               my $colb = $j % 2;
-                               my $db = " - database: $normalyzed_info{$k}{samples}{$d}{db}" if ($normalyzed_info{$k}{samples}{$d}{db});
-                               $db .= ", user: $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
-                               $db .= ", remote: $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
-                               $db .= ", app: $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
-                               $db =~ s/^, / - /;
-                               print $fh
-"<div class=\"example$colb\" title=\"$normalyzed_info{$k}{samples}{$d}{date}$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-                                       &convert_time($d), " | ", &highlight_code($normalyzed_info{$k}{samples}{$d}{query}), "</div></div>";
-                               $j++;
+                               $query = &highlight_code($normalyzed_info{$k}{samples}{$d}{query});
+                               my $details = "[ <b>Date:</b> $normalyzed_info{$k}{samples}{$d}{date}";
+                               $details .= " - <b>Duration:</b> " . &convert_time($d) if ($normalyzed_info{$k}{samples}{$d}{duration});
+                               $details .= " - <b>Database:</b> $normalyzed_info{$k}{samples}{$d}{db}" if ($normalyzed_info{$k}{samples}{$d}{db});
+                               $details .= " - <b>User:</b> $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
+                               $details .= " - <b>Remote:</b> $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
+                               $details .= " - <b>Application:</b> $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
+                               $details .= " ]";
+                               print $fh qq{
+                                       <dt><div class="sql" onclick="sql_format(this)">$query</div></dt>
+                                       <dd><pre>$details</pre></dd>
+};
+
                        }
-                       print $fh "</div>";
+                       print $fh qq{
+                                       </dl>
+                                       <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#queries-most-frequent-waiting-examples-rank-$rank">x Hide</button></p>
+                               </div>
+                               <!-- end of example collapse -->
+                       </td>
+               </tr>
+};
                }
-               print $fh "</td></tr>\n";
-               $idx++;
+               $rank++;
+       }
+       if ($#top_locked_queries == -1) {
+               print $fh qq{<tr><td colspan="7">$NODATA</td></tr>};
        }
-       print $fh "</table>\n";
+        print $fh qq{
+               </tbody>
+               </table>
+       </div>
+</div><!-- end of queries-most-frequent-waiting -->
+};
+
        @top_locked_queries = ();
 
        # Queries that waited the most
        @top_locked_info = sort {$b->[1] <=> $a->[1]} @top_locked_info;
        print $fh qq{
-<h2 id="QueriesThatWaitedTheMost">Queries that waited the most<a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-<tr>
-<th>Rank</th>
-<th>Wait&nbsp;time&nbsp;(s)</th>
-<th>Query</th>
-</tr>
+               <div class="analysis-item row-fluid" id="queries-that-waited-most">
+                       <h2><i class="icon-ban-circle"></i> Queries that waited the most</h2>
+                       <div class="span11">
+                               <table class="table table-striped" id="queries-that-waited-most-table">
+                               <thead>
+                                       <tr>
+                                               <th>Rank</th>
+                                               <th>Wait&nbsp;time</th>
+                                               <th>Query</th>
+                                       </tr>
+                               </thead>
+                               <tbody>
 };
+
+       $rank = 1;
        for (my $i = 0 ; $i <= $#top_locked_info ; $i++) {
-               my $col = $i % 2;
-               my $ttl = $top_locked_info[$i]->[1] || '';
-               my $db = " - database: $top_locked_info[$i]->[3]" if ($top_locked_info[$i]->[3]);
-               $db .= ", user: $top_locked_info[$i]->[4]" if ($top_locked_info[$i]->[4]);
-               $db .= ", remote: $top_locked_info[$i]->[5]" if ($top_locked_info[$i]->[5]);
-               $db .= ", app: $top_locked_info[$i]->[6]" if ($top_locked_info[$i]->[6]);
-               $db =~ s/^, / - /;
-               print $fh "<tr class=\"row$col\"><td class=\"center top\">", $i + 1, "</td><td class=\"relevantInformation top center\">",
-               &convert_time($top_locked_info[$i]->[0]),
-               "</td><td title=\"$ttl$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-               &highlight_code($top_locked_info[$i]->[2]), "</div></td></tr>\n";
-       }
-       print $fh "</table>\n";
+               my $query = &highlight_code($top_locked_info[$i]->[2]);
+               my $details = "[ <b>Date:</b> " . ($top_locked_info[$i]->[1] || '');
+               $details .= " - <b>Database</b>: $top_locked_info[$i]->[3]" if ($top_locked_info[$i]->[3]);
+               $details .= " - <b>User:</b> $top_locked_info[$i]->[4]" if ($top_locked_info[$i]->[4]);
+               $details .= " - <b>Remote:</b> $top_locked_info[$i]->[5]" if ($top_locked_info[$i]->[5]);
+               $details .= " - <b>Application:</b> $top_locked_info[$i]->[6]" if ($top_locked_info[$i]->[6]);
+               $details .= " ]";
+               my $time = &convert_time($top_locked_info[$i]->[0]);
+               print $fh qq{
+                               <tr>
+                               <td>$rank</td>
+                               <td>$time</td>
+                               <td id="queries-that-waited-most-examples-details-rank-$rank">
+                                       <div class="sql" onclick="sql_format(this)">$query</div>
+                                       <pre>$details</pre>
+                               </td>
+                               </tr>
+};
+               $rank++;
+       }
+       if ($#top_locked_info == -1) {
+               print $fh qq{<tr><td colspan="3">$NODATA</td></tr>};
+       }
+                print $fh qq{
+               </tbody>
+               </table>
+       </div>
+</div><!-- end of queries-that-waited-most -->
+};
+
 }
 
 sub print_tempfile_report
 {
-       my @top_temporary = ();;
+       my @top_temporary = ();
        foreach my $h (keys %normalyzed_info) {
                if (exists($normalyzed_info{$h}{tempfiles})) {
                        push (@top_temporary, [$h, $normalyzed_info{$h}{tempfiles}{count}, $normalyzed_info{$h}{tempfiles}{size},
@@ -3995,334 +5416,549 @@ sub print_tempfile_report
        if ($#top_temporary >= 0) {
                @top_temporary = sort {$b->[1] <=> $a->[1]} @top_temporary;
                print $fh qq{
-<h2 id="QueriesMostTemporaryFiles">Queries generating the most temporary files (N)<a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-<tr>
-<th>Rank</th>
-<th>Count</th>
-<th>Total&nbsp;size</th>
-<th>Min/Max/Avg&nbsp;size</th>
-<th>Query</th>
-</tr>
+               <div class="analysis-item row-fluid" id="queries-generating-most-temporary-files">
+                       <h2><i class="icon-pencil"></i> Queries generating the most temporary files (N)</h2>
+                       <div class="span11">
+                               <table class="table table-striped" id="queries-generating-most-temporary-files-table">
+                               <thead>
+                                       <tr>
+                                               <th>Rank</th>
+                                               <th>Count</th>
+                                               <th>Total&nbsp;size</th>
+                                               <th>Min&nbsp;size</th>
+                                               <th>Max&nbsp;size</th>
+                                               <th>Avg&nbsp;size</th>
+                                               <th>Query</th>
+                                       </tr>
+                               </thead>
+                               <tbody>
 };
-               my $idx = 1;
+               my $rank = 1;
                for (my $i = 0 ; $i <= $#top_temporary ; $i++) {
-                       last if ($i > $end_top);
-                       my $col = $i % 2;
-                       print $fh "<tr class=\"row$col\"><td class=\"center top\">", $i + 1, "</td><td class=\"relevantInformation top center\">",
-                       $top_temporary[$i]->[1], "</td><td class=\"center top\">", &comma_numbers($top_temporary[$i]->[2]),
-                       "</td><td class=\"center top\">", &comma_numbers($top_temporary[$i]->[3]),
-                       "/", &comma_numbers($top_temporary[$i]->[4]), "/",
-                       &comma_numbers(sprintf("%.2f", $top_temporary[$i]->[2] / $top_temporary[$i]->[1])),
-                       "</td><td><div class=\"sql\" onclick=\"sql_format(this)\">",
-                       &highlight_code($top_temporary[$i]->[0]), "</div>";
+                       my $count = &comma_numbers($top_temporary[$i]->[1]);
+                       my $total_size = &pretty_print_size($top_temporary[$i]->[2]);
+                       my $min_size = &pretty_print_size($top_temporary[$i]->[3]);
+                       my $max_size = &pretty_print_size($top_temporary[$i]->[4]);
+                       my $avg_size = &pretty_print_size($top_temporary[$i]->[2] / ($top_temporary[$i]->[1] || 1));
+                       my $query = &highlight_code($top_temporary[$i]->[0]);
+                       my $example = qq{<p><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#queries-generating-most-temporary-files-examples-rank-$rank">Examples</button></p>};
+                       $example = '' if ($count <= 1);
+                       print $fh qq{
+                               <tr>
+                               <td>$rank</td>
+                               <td>$count</td>
+                               <td>$total_size</td>
+                               <td>$min_size</td>
+                               <td>$max_size</td>
+                               <td>$avg_size</td>
+                               <td id="queries-generating-most-temporary-files-examples-details-rank-$rank">
+                                       <div class="sql" onclick="sql_format(this)">$query</div>
+                                       $example
+                               <!-- Examples collapse -->
+                               <div id="queries-generating-most-temporary-files-examples-rank-$rank" class="collapse">
+                                       <dl>
+};
                        my $k = $top_temporary[$i]->[0];
                        if ($normalyzed_info{$k}{count} > 1) {
-                               print $fh "<input type=\"button\" class=\"examplesButton\" id=\"button_NormalizedQueriesMostFrequentReport_$idx\" name=\"button_NormalizedQueriesMostFrequentReport_$idx\" value=\"Show examples\" onclick=\"javascript:toggle('button_NormalizedQueriesMostFrequentReport_$idx', 'examples_NormalizedQueriesMostFrequentReport_$idx', 'examples');\" /><div id=\"examples_NormalizedQueriesMostFrequentReport_$idx\" class=\"examples\" style=\"display:none;\">";
-                               my $i = 0;
                                foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                                       my $colb = $i % 2;
-                                       my $db = " - database: $normalyzed_info{$k}{samples}{$d}{db}" if ($normalyzed_info{$k}{samples}{$d}{db});
-                                       $db .= ", user: $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
-                                       $db .= ", remote: $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
-                                       $db .= ", app: $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
-                                       $db =~ s/^, / - /;
-                                       print $fh "<div class=\"example$d\" title=\"$normalyzed_info{$k}{samples}{$d}{date}$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-                                             &convert_time($d), " | ", &highlight_code($normalyzed_info{$k}{samples}{$d}{query}), "</div></div>";
-                                       $i++;
+                                       $query = &highlight_code($normalyzed_info{$k}{samples}{$d}{query});
+                                       my $details = "Duration: " . &convert_time($d) . "<br />";
+                                       $details .= "Database: $normalyzed_info{$k}{samples}{$d}{db}<br/>" if ($normalyzed_info{$k}{samples}{$d}{db});
+                                       $details .= "User: $normalyzed_info{$k}{samples}{$d}{user}<br/>" if ($normalyzed_info{$k}{samples}{$d}{user});
+                                       $details .= "Remote: $normalyzed_info{$k}{samples}{$d}{remote}<br/>" if ($normalyzed_info{$k}{samples}{$d}{remote});
+                                       $details .= "Application: $normalyzed_info{$k}{samples}{$d}{app}<br/>" if ($normalyzed_info{$k}{samples}{$d}{app});
+                                       print $fh qq{
+                                               <dt><div class="sql" onclick="sql_format(this)">$query</div></dt>
+                                               <dd><pre>$details</pre></dd>
+};
+
                                }
-                               print $fh "</div>";
+                       print $fh qq{
+                                       </dl>
+                                       <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#queries-generating-most-temporary-files-examples-rank-$rank">x Hide</button></p>
+                               </div>
+                               <!-- end of example collapse -->
+                       </td>
+               </tr>
+};
                        }                             
-                       print $fh "</td></tr>\n";
-                       $idx++;
+                       $rank++;
                }
-               print $fh "</table>\n";
+        print $fh qq{
+               </tbody>
+               </table>
+       </div>
+</div><!-- end of queries-generating-most-temporary-files -->
+};
+
                @top_temporary = ();
        }
+
        # Top queries generating the largest temporary files
        if ($#top_tempfile_info >= 0) {
-               @top_tempfile_info = sort {$b->[1] <=> $a->[1]} @top_tempfile_info;
-
+               @top_tempfile_info = sort {$b->[0] <=> $a->[0]} @top_tempfile_info;
+               my $largest = &comma_numbers($top_temporary[0]->[0]);
                print $fh qq{
-<h2 id="QueriesLargestTemporaryFiles">Queries generating the largest temporary files<a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-<tr>
-<th>Rank</th>
-<th>Size</th>
-<th>Query</th>
-</tr>
+               <div class="analysis-item row-fluid" id="queries-generating-largest-temporary-files">
+                       <h2><i class="icon-pencil"></i> Queries generating the largest temporary files</h2>
+                       <div class="span11">
+                               <table class="table table-striped" id="queries-generating-largest-temporary-files-table">
+                               <thead>
+                                       <tr>
+                                               <th>Rank</th>
+                                               <th>Size</th>
+                                               <th>Query</th>
+                                       </tr>
+                               </thead>
+                               <tbody>
 };
+               my $rank = 1;
                for (my $i = 0 ; $i <= $#top_tempfile_info ; $i++) {
-                       my $col = $i % 2;
-                       my $ttl = $top_tempfile_info[$i]->[1] || '';
-                       my $db = " - database: $top_tempfile_info[$i]->[3]" if ($top_tempfile_info[$i]->[3]);
-                       $db .= ", user: $top_tempfile_info[$i]->[4]" if ($top_tempfile_info[$i]->[4]);
-                       $db .= ", remote: $top_tempfile_info[$i]->[5]" if ($top_tempfile_info[$i]->[5]);
-                       $db .= ", app: $top_tempfile_info[$i]->[6]" if ($top_tempfile_info[$i]->[6]);
-                       $db =~ s/^, / - /;
-                       print $fh "<tr class=\"row$col\"><td class=\"center top\">", $i + 1, "</td><td class=\"relevantInformation top center\">",
-                       &comma_numbers($top_tempfile_info[$i]->[0]),
-                       "</td><td title=\"$ttl$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-                       &highlight_code($top_tempfile_info[$i]->[2]), "</div></td></tr>\n";
+                       my $size = &pretty_print_size($top_tempfile_info[$i]->[0]);
+                       my $details = "[ <b>Date:</b> $top_tempfile_info[$i]->[1]";
+                       $details .= " - <b>Database:</b> $top_tempfile_info[$i]->[3]" if ($top_tempfile_info[$i]->[3]);
+                       $details .= " - <b>User:</b> $top_tempfile_info[$i]->[4]" if ($top_tempfile_info[$i]->[4]);
+                       $details .= " - <b>Remote:</b> $top_tempfile_info[$i]->[5]" if ($top_tempfile_info[$i]->[5]);
+                       $details .= " - <b>Application:</b> $top_tempfile_info[$i]->[6]" if ($top_tempfile_info[$i]->[6]);
+                       $details .= " ]";
+                       my $query = &highlight_code($top_tempfile_info[$i]->[2]);
+                       print $fh qq{
+                               <tr>
+                               <td>$rank</td>
+                               <td>$size</td>
+                               <td id="queries-generating-largest-temporary-files-examples-details-rank-$rank">
+                                       <div class="sql" onclick="sql_format(this)">$query</div>
+                                       <pre>$details</pre>
+                               </td>
+                               </tr>
+};
+                       $rank++;
                }
-               print $fh "</table>\n";
+               print $fh qq{
+               </tbody>
+               </table>
+       </div>
+</div><!-- end of queries-generating-largest-temporary-files -->
+};
                @top_tempfile_info = ();
        }
 
 }
 
-sub print_top_reports
+sub print_slowest_individual_queries
 {
-       if ($#top_slowest >= 0) {
+
+       print $fh qq{
+               <h2><i class="icon-question-sign"></i> Top Queries</h2>
+               <div class="analysis-item row-fluid" id="slowest-individual-queries">
+                       <h2><i class="icon-spinner"></i> Slowest individual query</h2>
+                       <div class="span11">
+                               <table class="table table-striped" id="slowest-individual-queries-table">
+                               <thead>
+                                       <tr>
+                                               <th>Rank</th>
+                                               <th>Duration</th>
+                                               <th>Query</th>
+                                       </tr>
+                               </thead>
+                               <tbody>
+};
+
+       for (my $i = 0 ; $i <= $#top_slowest ; $i++) {
+               my $rank = $i + 1;
+               my $duration = &convert_time($top_slowest[$i]->[0]);
+               my $date = $top_slowest[$i]->[1] || '';
+               my $details = "[ <b>Date:</b> " . ($top_slowest[$i]->[1] || '');
+               $details .= " - <b>Database:</b> $top_slowest[$i]->[3]" if ($top_slowest[$i]->[3]);
+               $details .= " - <b>User:</b> $top_slowest[$i]->[4]" if ($top_slowest[$i]->[4]);
+               $details .= " - <b>Remote:</b> $top_slowest[$i]->[5]" if ($top_slowest[$i]->[5]);
+               $details .= " - <b>Application:</b> $top_slowest[$i]->[6]" if ($top_slowest[$i]->[6]);
+               $details .= " ]";
+               my $query = &highlight_code($top_slowest[$i]->[2]);
                print $fh qq{
-<h2 id="SlowestQueriesReport">Slowest queries <a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-       <tr>
-               <th>Rank</th>
-
-               <th>Duration&nbsp;(s)</th>
-               <th>Query</th>
-       </tr>
+                               <tr>
+                               <td>$rank</td>
+                               <td>$duration</td>
+                               <td id="slowest-individual-queries-examples-rank-$rank">
+                                       <div class="sql" onclick="sql_format(this)">$query</div>
+                                       <pre>$details</pre>
+                               </td>
+                               </tr>
+
+                       };
+       }
+       if ($#top_slowest == -1) {
+               print $fh qq{<tr><td colspan="3">$NODATA</td></tr>};
+       }
+       print $fh qq{
+                       </tbody>
+                       </table>
+               </div>
+       </div><!-- end of slowest-individual-queries -->
 };
-               for (my $i = 0 ; $i <= $#top_slowest ; $i++) {
-                       my $col = $i % 2;
-                       my $ttl = $top_slowest[$i]->[1] || '';
-                       my $db = " - database: $top_slowest[$i]->[3]" if ($top_slowest[$i]->[3]);
-                       $db .= ", user: $top_slowest[$i]->[4]" if ($top_slowest[$i]->[4]);
-                       $db .= ", remote: $top_slowest[$i]->[5]" if ($top_slowest[$i]->[5]);
-                       $db .= ", app: $top_slowest[$i]->[6]" if ($top_slowest[$i]->[6]);
-                       $db =~ s/^, / - /;
-                       print $fh "<tr class=\"row$col\"><td class=\"center top\">", $i + 1, "</td><td class=\"relevantInformation top center\">",
-                               &convert_time($top_slowest[$i]->[0]),
-                               "</td><td title=\"$ttl$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-                               &highlight_code($top_slowest[$i]->[2]), "</div></td></tr>\n";
-               }
-               print $fh "</table>\n";
 
+}
+
+sub print_time_consuming
+{
+       print $fh qq{
+               <div class="analysis-item row-fluid" id="time-consuming-queries">
+                       <h2><i class="icon-time"></i> Time consuming queries</h2>
+                        <div class="span11">
+                                <table class="table table-striped" id="time-consuming-queries-table">
+                                <thead>
+                               <tr>
+                                       <th>Rank</th>
+                                       <th>Total duration</th>
+                                       <th>Times executed</th>
+                                       <th>Min duration</th>
+                                       <th>Max duration</th>
+                                       <th>Avg duration</th>
+                                       <th>Query</th>
+                               </tr>
+                               </thead>
+                               <tbody>
+};
+       my $rank = 1;
+       foreach my $k (sort {$normalyzed_info{$b}{duration} <=> $normalyzed_info{$a}{duration}} keys %normalyzed_info) {
+               next if (!$normalyzed_info{$k}{count});
+               last if ($rank > $top);
+               $normalyzed_info{$k}{average} = $normalyzed_info{$k}{duration} / $normalyzed_info{$k}{count};
+               my $duration = &convert_time($normalyzed_info{$k}{duration});
+               my $count = &comma_numbers($normalyzed_info{$k}{count});
+               my $min = &convert_time($normalyzed_info{$k}{min});
+               my $max = &convert_time($normalyzed_info{$k}{max});
+               my $avg = &convert_time($normalyzed_info{$k}{average});
+               my $query = &highlight_code($k);
                print $fh qq{
-<h2 id="NormalizedQueriesMostTimeReport">Queries that took up the most time (N) <a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-       <tr>
-               <th>Rank</th>
-               <th>Total duration</th>
-               <th>Times executed</th>
-
-               <th>Min/Max/Avg&nbsp;duration&nbsp;(s)</th>
-               <th>Query</th>
-       </tr>
+                               <tr>
+                               <td>$rank</td>
+                               <td>$duration</td>
+                               <td>$count
+                                       <p><a href="#time-consuming-queries-details-rank-$rank" class="btn btn-mini" data-toggle="collapse">Details</a></p>
+                               </td>
+                               <td>$min</td>
+                               <td>$max</td>
+                               <td>$avg</td>
+                               <td id="time-consuming-queries-examples-details-rank-$rank">
+                                       <div class="sql" onclick="sql_format(this)">$query</div>
+                                               <!-- Details collapse -->
+                                           <div id="time-consuming-queries-details-rank-$rank" class="collapse">
+                                               <h3>Times Reported <small>Time consuming queries #$rank</small></h3>
+                                                               <table class="table table-stripped table-condensed">
+                                                                       <thead>
+                                                                               <tr>
+                                                                                       <th>Day</th>
+                                                                                       <th>Hour</th>
+                                                                                       <th>Count</th>
+                                                                                       <th>Duration</th>
+                                                                                       <th>Avg duration</th>
+                                                                               </tr>
+                                                                       </thead>
+                                                                       <tbody>
 };
-               my $idx = 1;
-               foreach my $k (sort {$normalyzed_info{$b}{duration} <=> $normalyzed_info{$a}{duration}} keys %normalyzed_info) {
-                       next if (!$normalyzed_info{$k}{count});
-                       last if ($idx > $top);
-                       my $q = $k;
-                       if ($normalyzed_info{$k}{count} == 1) {
-                               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                                       $q = $normalyzed_info{$k}{samples}{$d}{query};
-                                       last;
-                               }
-                       }
-                       $normalyzed_info{$k}{average} = $normalyzed_info{$k}{duration} / $normalyzed_info{$k}{count};
-                       my $col = $idx % 2;
-                       print $fh "<tr class=\"row$col\"><td class=\"center top\">$idx</td><td class=\"relevantInformation top center\">",
-                               &convert_time($normalyzed_info{$k}{duration}),
-                               "</td><td class=\"top center\"><div class=\"tooltipLink\"><span class=\"information\">",
-                               &comma_numbers($normalyzed_info{$k}{count}),
-"</span><div class=\"tooltip\"><table><tr><th>Day</th><th>Hour</th><th>Count</th><th>Duration</th><th>Avg&nbsp;Duration</th></tr>";
-                       foreach my $d (sort keys %{$normalyzed_info{$k}{chronos}}) {
-                               my $c = 1;
-                               $d =~ /^\d{4}(\d{2})(\d{2})$/;
-                               my $zday = "$abbr_month{$1} $2";
-                               foreach my $h (sort keys %{$normalyzed_info{$k}{chronos}{$d}}) {
-                                       $normalyzed_info{$k}{chronos}{$d}{$h}{average} =
-                                               $normalyzed_info{$k}{chronos}{$d}{$h}{duration} / $normalyzed_info{$k}{chronos}{$d}{$h}{count};
-                                       my $colb = $c % 2;
-                                       $zday = "&nbsp;" if ($c > 1);
-                                       print $fh "<tr class=\"row$colb\"><td>$zday</td><td>$h</td><td>",
-                                               &comma_numbers($normalyzed_info{$k}{chronos}{$d}{$h}{count}),   "</td><td>",
-                                               &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{duration}), "</td><td>",
-                                               &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{average}),  "</td></tr>";
-                                       $c++;
-                               }
+               my $details = '';
+               foreach my $d (sort keys %{$normalyzed_info{$k}{chronos}}) {
+                       $d =~ /^\d{4}(\d{2})(\d{2})$/;
+                       my $zday = "$abbr_month{$1} $2";
+                       foreach my $h (sort keys %{$normalyzed_info{$k}{chronos}{$d}}) {
+                               $normalyzed_info{$k}{chronos}{$d}{$h}{average} =
+                                       $normalyzed_info{$k}{chronos}{$d}{$h}{duration} / ($normalyzed_info{$k}{chronos}{$d}{$h}{count} || 1);
+                               $details .= "<tr><td>$zday</td><td>$h</td><td>" .
+                                       &comma_numbers($normalyzed_info{$k}{chronos}{$d}{$h}{count}) .   "</td><td>" .
+                                       &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{duration}) . "</td><td>" .
+                                       &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{average}) .  "</td></tr>";
+                               $zday = "";
                        }
-                       print $fh "</table></div></div></td>";
-                       print $fh "<td class=\"top center\">", &convert_time($normalyzed_info{$k}{min}),"/", &convert_time($normalyzed_info{$k}{max}),"/", &convert_time($normalyzed_info{$k}{average}),
-                               "</td><td><div class=\"sql\" onclick=\"sql_format(this)\">",
-                               &highlight_code($q), "</div>";
+               }
+               print $fh qq{
+                                                                               $details
+                                                                       </tbody>
+                                                               </table>
+                                                   <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#time-consuming-queries-details-rank-$rank">x Hide</button></p>
+                                               </div><!-- end of details collapse -->
+       <p><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#time-consuming-queries-examples-rank-$rank">Examples</button></p>                                                          
+                                               <!-- Examples collapse -->
+                                               <div id="time-consuming-queries-examples-rank-$rank" class="collapse">
+                                                       <dl>
+};
 
-                       if ($normalyzed_info{$k}{count} > 1) {
-                               print $fh
-"<input type=\"button\" class=\"examplesButton\" id=\"button_NormalizedQueriesMostTimeReport_$idx\" name=\"button_NormalizedQueriesMostTimeReport_$idx\" value=\"Show examples\" onclick=\"javascript:toggle('button_NormalizedQueriesMostTimeReport_$idx', 'examples_NormalizedQueriesMostTimeReport_$idx', 'examples');\" /><div id=\"examples_NormalizedQueriesMostTimeReport_$idx\" class=\"examples\" style=\"display:none;\">";
-                               my $i = 0;
-                               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                                       my $colb = $i % 2;
-                                       my $db = " - database: $normalyzed_info{$k}{samples}{$d}{db}" if ($normalyzed_info{$k}{samples}{$d}{db});
-                                       $db .= ", user: $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
-                                       $db .= ", remote: $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
-                                       $db .= ", app: $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
-                                       $db =~ s/^, / - /;
-                                       print $fh
-"<div class=\"example$colb\" title=\"$normalyzed_info{$k}{samples}{$d}{date}$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-                                               &convert_time($d), " | ", &highlight_code($normalyzed_info{$k}{samples}{$d}{query}), "</div></div>";
-                                       $i++;
-                               }
-                               print $fh "</div>";
-                       }
-                       print $fh "</td></tr>\n";
-                       $idx++;
+               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
+                       my $details = "[ <b>Date:</b> $normalyzed_info{$k}{samples}{$d}{date}";
+                       $details .= " - <b>Duration:</b> " . &convert_time($d);
+                       $details .= " - <b>Database:</b> $normalyzed_info{$k}{samples}{$d}{details}" if ($normalyzed_info{$k}{samples}{$d}{details});
+                       $details .= " - <b>User:</b> $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
+                       $details .= " - <b>Remote:</b> $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
+                       $details .= " - <b>Application:</b> $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
+                       $details .= " ]";
+                       $query = &highlight_code($normalyzed_info{$k}{samples}{$d}{query});
+                       print $fh qq{
+                                                               <dt><div class="sql" onclick="sql_format(this)">$query</div></dt>
+                                                               <dd><pre>$details</pre></dd>
+};
                }
-               print $fh "</table>\n";
+               print $fh qq{
+                                                       </dl>
+                                                       <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#time-consuming-queries-examples-rank-$rank">x Hide</button></p>
+                                               </div>
+                                               <!-- end of details collapse -->
+                                       </td>
+                               </tr>
+};
+               $rank++;
+       }
+
+       if (scalar keys %normalyzed_info == 0) {
+               print $fh qq{<tr><td colspan="7">$NODATA</td></tr>};
        }
+       print $fh qq{
+                       </tbody>
+                       </table>
+               </div>
+       </div><!-- end of time-consuming-queries -->
+};
 
-       if (scalar keys %normalyzed_info > 0) {
+}
 
-               print $fh qq{
-<h2 id="NormalizedQueriesMostFrequentReport">Most frequent queries (N) <a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-       <tr>
-               <th>Rank</th>
-               <th>Times executed</th>
-               <th>Total duration</th>
-               <th>Min/Max/Avg&nbsp;duration&nbsp;(s)</th>
-               <th>Query</th>
-       </tr>
+sub print_most_frequent
+{
+        print $fh qq{
+                <div class="analysis-item row-fluid" id="most-frequent-queries">
+                        <h2><i class="icon-signal"></i> Most frequent queries (N)</h2>
+                        <div class="span11">
+                                <table class="table table-striped" id="most-frequent-queries-table">
+                                <thead>
+                                <tr>
+                                        <th>Rank</th>
+                                        <th>Times executed</th>
+                                        <th>Total duration</th>
+                                        <th>Min duration</th>
+                                        <th>Max duration</th>
+                                        <th>Avg duration</th>
+                                        <th>Query</th>
+                                </tr>
+                                </thead>
+                                <tbody>
 };
-               my $idx = 1;
-               foreach my $k (sort {$normalyzed_info{$b}{count} <=> $normalyzed_info{$a}{count}} keys %normalyzed_info) {
-                       next if (!$normalyzed_info{$k}{count});
-                       last if ($idx > $top);
-                       my $q = $k;
-                       if ($normalyzed_info{$k}{count} == 1) {
-                               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                                       $q = $normalyzed_info{$k}{samples}{$d}{query};
-                                       last;
-                               }
-                       }
-                       my $col = $idx % 2;
-                       print $fh
-"<tr class=\"row$col\"><td class=\"center top\">$idx</td><td class=\"relevantInformation top center\"><div class=\"tooltipLink\"><span class=\"information\">",
-                               &comma_numbers($normalyzed_info{$k}{count}),
-"</span><div class=\"tooltip\"><table><tr><th>Day</th><th>Hour</th><th>Count</th><th>Duration</th><th>Avg&nbsp;Duration</th></tr>";
-                       foreach my $d (sort keys %{$normalyzed_info{$k}{chronos}}) {
-                               my $c = 1;
-                               $d =~ /^\d{4}(\d{2})(\d{2})$/;
-                               my $zday = "$abbr_month{$1} $2";
-                               foreach my $h (sort keys %{$normalyzed_info{$k}{chronos}{$d}}) {
-                                       $normalyzed_info{$k}{chronos}{$d}{$h}{average} =
-                                               $normalyzed_info{$k}{chronos}{$d}{$h}{duration} / $normalyzed_info{$k}{chronos}{$d}{$h}{count};
-                                       my $colb = $c % 2;
-                                       $zday = "&nbsp;" if ($c > 1);
-                                       print $fh "<tr class=\"row$colb\"><td>$zday</td><td>$h</td><td>",
-                                               &comma_numbers($normalyzed_info{$k}{chronos}{$d}{$h}{count}),   "</td><td>",
-                                               &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{duration}), "</td><td>",
-                                               &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{average}),  "</td></tr>";
-                                       $c++;
-                               }
+       my $rank = 1;
+       foreach my $k (sort {$normalyzed_info{$b}{count} <=> $normalyzed_info{$a}{count}} keys %normalyzed_info) {
+               next if (!$normalyzed_info{$k}{count});
+               last if ($rank > $top);
+               $normalyzed_info{$k}{average} = $normalyzed_info{$k}{duration} / $normalyzed_info{$k}{count};
+               my $duration = &convert_time($normalyzed_info{$k}{duration});
+               my $count = &comma_numbers($normalyzed_info{$k}{count});
+               my $min = &convert_time($normalyzed_info{$k}{min});
+               my $max = &convert_time($normalyzed_info{$k}{max});
+               my $avg = &convert_time($normalyzed_info{$k}{average});
+               my $query = &highlight_code($k);
+                print $fh qq{
+                                <tr>
+                                <td>$rank</td>
+                                <td>$count
+                                        <p><a href="#most-frequent-queries-details-rank-$rank" class="btn btn-mini" data-toggle="collapse">Details</a></p>
+                                </td>
+                                <td>$duration</td>
+                                <td>$min</td>
+                                <td>$max</td>
+                                <td>$avg</td>
+                                <td id="most-frequent-queries-examples-details-rank-$rank">
+                                        <div class="sql" onclick="sql_format(this)">$query</div>
+                                                <!-- Details collapse -->
+                                            <div id="most-frequent-queries-details-rank-$rank" class="collapse">
+                                                <h3>Times Reported <small>Time consuming queries #$rank</small></h3>
+                                                                <table class="table table-stripped table-condensed">
+                                                                        <thead>
+                                                                                <tr>
+                                                                                        <th>Day</th>
+                                                                                        <th>Hour</th>
+                                                                                        <th>Count</th>
+                                                                                        <th>Duration</th>
+                                                                                </tr>
+                                                                        </thead>
+                                                                        <tbody>
+};
+                my $details = '';
+               foreach my $d (sort keys %{$normalyzed_info{$k}{chronos}}) {
+                       $d =~ /^\d{4}(\d{2})(\d{2})$/;
+                       my $zday = "$abbr_month{$1} $2";
+                       foreach my $h (sort keys %{$normalyzed_info{$k}{chronos}{$d}}) {
+                               $normalyzed_info{$k}{chronos}{$d}{$h}{average} =
+                                       $normalyzed_info{$k}{chronos}{$d}{$h}{duration} / $normalyzed_info{$k}{chronos}{$d}{$h}{count};
+                               $details .= "<tr><td>$zday</td><td>$h</td><td>" .
+                                       &comma_numbers($normalyzed_info{$k}{chronos}{$d}{$h}{count}) .   "</td><td>" .
+                                       &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{duration}) . "</td><td>" .
+                                       &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{average}) .  "</td></tr>";
+                               $zday = "";
                        }
-                       print $fh "</table></div></div></td>";
-                       print $fh "<td class=\"top center\">", &convert_time($normalyzed_info{$k}{duration}), "</td><td class=\"top center\">",&convert_time($normalyzed_info{$k}{min}),"/",&convert_time($normalyzed_info{$k}{max}),"/",
-                               &convert_time($normalyzed_info{$k}{average}), "</td><td><div class=\"sql\" onclick=\"sql_format(this)\">",
-                               &highlight_code($q), "</div>";
+               }
+                print $fh qq{
+                                                                               $details
+                                                                       </tbody>
+                                                               </table>
+                                                   <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#most-frequent-queries-details-rank-$rank">x Hide</button></p>
+                                               </div><!-- end of details collapse -->
+       <p><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#most-frequent-queries-examples-rank-$rank">Examples</button></p>                                                          
+                                               <!-- Examples collapse -->
+                                               <div id="most-frequent-queries-examples-rank-$rank" class="collapse">
+                                                       <dl>
+};
 
-                       if ($normalyzed_info{$k}{count} > 1) {
-                               print $fh
-"<input type=\"button\" class=\"examplesButton\" id=\"button_NormalizedQueriesMostFrequentReport_$idx\" name=\"button_NormalizedQueriesMostFrequentReport_$idx\" value=\"Show examples\" onclick=\"javascript:toggle('button_NormalizedQueriesMostFrequentReport_$idx', 'examples_NormalizedQueriesMostFrequentReport_$idx', 'examples');\" /><div id=\"examples_NormalizedQueriesMostFrequentReport_$idx\" class=\"examples\" style=\"display:none;\">";
-                               my $i = 0;
-                               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                                       my $colb = $i % 2;
-                                       my $db = " - database: $normalyzed_info{$k}{samples}{$d}{db}" if ($normalyzed_info{$k}{samples}{$d}{db});
-                                       $db .= ", user: $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
-                                       $db .= ", remote: $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
-                                       $db .= ", app: $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
-                                       $db =~ s/^, / - /;
-                                       print $fh
-"<div class=\"example$d\" title=\"$normalyzed_info{$k}{samples}{$d}{date}$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-                                               &convert_time($d), " | ", &highlight_code($normalyzed_info{$k}{samples}{$d}{query}), "</div></div>";
-                                       $i++;
-                               }
-                               print $fh "</div>";
-                       }
-                       print $fh "</td></tr>\n";
-                       $idx++;
+               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
+                       my $details = "[ <b>Date:</b> $normalyzed_info{$k}{samples}{$d}{date}";
+                       $details .= " - <b>Duration:</b> " . &convert_time($d);
+                       $details .= " - <b>Database:</b> $normalyzed_info{$k}{samples}{$d}{details}" if ($normalyzed_info{$k}{samples}{$d}{details});
+                       $details .= " - <b>User:</b> $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
+                       $details .= " - <b>Remote:</b> $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
+                       $details .= " - <b>Application:</b> $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
+                       $details .= " ]";
+                       $query = &highlight_code($normalyzed_info{$k}{samples}{$d}{query});
+                       print $fh qq{
+                                                               <dt><div class="sql" onclick="sql_format(this)">$query</div></dt>
+                                                               <dd><pre>$details</pre></dd>
+};
                }
-               print $fh "</table>\n";
+                print $fh qq{
+                                                       </dl>
+                                                       <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#most-frequent-queries-examples-rank-$rank">x Hide</button></p>
+                                               </div>
+                                               <!-- end of details collapse -->
+                                       </td>
+                               </tr>
+};
+               $rank++;
        }
+       if (scalar keys %normalyzed_info == 0) {
+               print $fh qq{<tr><td colspan="7">$NODATA</td></tr>};
+       }
+        print $fh qq{
+                       </tbody>
+                       </table>
+               </div>
+       </div><!-- end of most-frequent-queries -->
+};
 
-       if ($#top_slowest >= 0) {
-               print $fh qq{
-<h2 id="NormalizedQueriesSlowestAverageReport">Slowest queries (N) <a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-       <tr>
-               <th>Rank</th>
-               <th>Min/Max/Avg&nbsp;duration&nbsp;(s)</th>
-
-               <th>Times executed</th>
-               <th>Total duration</th>
-               <th>Query</th>
-       </tr>
+}
+
+
+sub print_slowest_queries
+{
+       print $fh qq{
+               <div class="analysis-item row-fluid" id="normalized-slowest-queries">
+                       <h2><i class="icon-time"></i> Normalized slowest queries (N)</h2>
+                       <div class="span11">
+                               <table class="table table-striped" id="normalized-slowest-queries-table">
+                               <thead>
+                               <tr>
+                                       <th>Rank</th>
+                                       <th>Min duration</th>
+                                       <th>Max duration</th>
+                                       <th>Avg duration</th>
+                                       <th>Times executed</th>
+                                       <th>Total duration</th>
+                                       <th>Query</th>
+                               </tr>
+                               </thead>
+                               <tbody>
 };
-               my $idx = 1;
-               foreach my $k (sort {$normalyzed_info{$b}{average} <=> $normalyzed_info{$a}{average}} keys %normalyzed_info) {
-                       next if (!$k || !$normalyzed_info{$k}{count});
-                       last if ($idx > $top);
-                       my $q = $k;
-                       if ($normalyzed_info{$k}{count} == 1) {
-                               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                                       $q = $normalyzed_info{$k}{samples}{$d}{query};
-                                       last;
-                               }
-                       }
-                       my $col = $idx % 2;
-                       print $fh "<tr class=\"row$col\"><td class=\"center top\">$idx</td><td class=\"relevantInformationSmall top center\">",
-                               &convert_time($normalyzed_info{$k}{min}), "/",
-                               &convert_time($normalyzed_info{$k}{max}), "/",
-                               &convert_time($normalyzed_info{$k}{average}),
-                               "</td><td class=\"top center\"><div class=\"tooltipLink\"><span class=\"information\">",
-                               &comma_numbers($normalyzed_info{$k}{count}),
-"</span><div class=\"tooltip\"><table><tr><th>Day</th><th>Hour</th><th>Count</th><th>Duration</th><th>Avg&nbsp;Duration</th></tr>";
-                       foreach my $d (sort keys %{$normalyzed_info{$k}{chronos}}) {
-                               my $c = 1;
-                               $d =~ /^\d{4}(\d{2})(\d{2})$/;
-                               my $zday = "$abbr_month{$1} $2";
-                               foreach my $h (sort keys %{$normalyzed_info{$k}{chronos}{$d}}) {
-                                       $normalyzed_info{$k}{chronos}{$d}{$h}{average} =
-                                               $normalyzed_info{$k}{chronos}{$d}{$h}{duration} / $normalyzed_info{$k}{chronos}{$d}{$h}{count};
-                                       my $colb = $c % 2;
-                                       $zday = "&nbsp;" if ($c > 1);
-                                       print $fh "<tr class=\"row$colb\"><td>$zday</td><td>$h</td><td>",
-                                               &comma_numbers($normalyzed_info{$k}{chronos}{$d}{$h}{count}),   "</td><td>",
-                                               &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{duration}), "</td><td>",
-                                               &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{average}),  "</td></tr>";
-                                       $c++;
-                               }
-                       }
-                       print $fh "</table></div></div></td>";
-                       print $fh "<td class=\"top center\">", &convert_time($normalyzed_info{$k}{duration}),
-                               "</td><td><div class=\"sql\" onclick=\"sql_format(this)\">",
-                               &highlight_code($q), "</div>";
-                       if ($normalyzed_info{$k}{count} > 1) {
-                               print $fh
-"<input type=\"button\" class=\"examplesButton\" id=\"button_NormalizedQueriesSlowestAverageReport_$idx\" name=\"button_NormalizedQueriesSlowestAverageReport_$idx\" value=\"Show examples\" onclick=\"javascript:toggle('button_NormalizedQueriesSlowestAverageReport_$idx', 'examples_NormalizedQueriesSlowestAverageReport_$idx', 'examples');\" /><div id=\"examples_NormalizedQueriesSlowestAverageReport_$idx\" class=\"examples\" style=\"display:none;\">";
-                               my $i = 0;
-                               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
-                                       my $colb = $i % 2;
-                                       my $db = " - database: $normalyzed_info{$k}{samples}{$d}{db}" if ($normalyzed_info{$k}{samples}{$d}{db});
-                                       $db .= ", user: $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
-                                       $db .= ", remote: $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
-                                       $db .= ", app: $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
-                                       $db =~ s/^, / - /;
-                                       print $fh
-"<div class=\"example$colb\" title=\"$normalyzed_info{$k}{samples}{$d}{date}$db\"><div class=\"sql\" onclick=\"sql_format(this)\">",
-                                               &convert_time($d), " | ", &highlight_code($normalyzed_info{$k}{samples}{$d}{query}), "</div></div>";
-                                       $i++;
-                               }
-                               print $fh "</div>";
+       my $rank = 1;
+       foreach my $k (sort {$normalyzed_info{$b}{average} <=> $normalyzed_info{$a}{average}} keys %normalyzed_info) {
+               next if (!$k || !$normalyzed_info{$k}{count});
+               last if ($rank > $top);
+                $normalyzed_info{$k}{average} = $normalyzed_info{$k}{duration} / $normalyzed_info{$k}{count};
+                my $duration = &convert_time($normalyzed_info{$k}{duration});
+                my $count = &comma_numbers($normalyzed_info{$k}{count});
+                my $min = &convert_time($normalyzed_info{$k}{min});
+                my $max = &convert_time($normalyzed_info{$k}{max});
+                my $avg = &convert_time($normalyzed_info{$k}{average});
+                my $query = &highlight_code($k);
+                print $fh qq{
+                                <tr>
+                                <td>$rank</td>
+                                <td>$min</td>
+                                <td>$max</td>
+                                <td>$avg</td>
+                                <td>$count
+                                        <p><a href="#normalized-slowest-queries-details-rank-$rank" class="btn btn-mini" data-toggle="collapse">Details</a></p>
+                                </td>
+                                <td>$duration</td>
+                                <td id="normalized-slowest-queries-examples-details-rank-$rank">
+                                        <div class="sql" onclick="sql_format(this)">$query</div>
+                                                <!-- Details collapse -->
+                                            <div id="normalized-slowest-queries-details-rank-$rank" class="collapse">
+                                                <h3>Times Reported <small>Time consuming queries #$rank</small></h3>
+                                                                <table class="table table-stripped table-condensed">
+                                                                        <thead>
+                                                                                <tr>
+                                                                                        <th>Day</th>
+                                                                                        <th>Hour</th>
+                                                                                        <th>Count</th>
+                                                                                        <th>Duration</th>
+                                                                                        <th>Avg duration</th>
+                                                                                </tr>
+                                                                        </thead>
+                                                                        <tbody>
+};
+               my $details = '';
+               foreach my $d (sort keys %{$normalyzed_info{$k}{chronos}}) {
+                       my $c = 1;
+                       $d =~ /^\d{4}(\d{2})(\d{2})$/;
+                       my $zday = "$abbr_month{$1} $2";
+                       foreach my $h (sort keys %{$normalyzed_info{$k}{chronos}{$d}}) {
+                               $normalyzed_info{$k}{chronos}{$d}{$h}{average} =
+                                       $normalyzed_info{$k}{chronos}{$d}{$h}{duration} / $normalyzed_info{$k}{chronos}{$d}{$h}{count};
+                               $details .= "<tr><td>$zday</td><td>$h</td><td>" .
+                                       &comma_numbers($normalyzed_info{$k}{chronos}{$d}{$h}{count}) .   "</td><td>" .
+                                       &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{duration}) . "</td><td>" .
+                                       &convert_time($normalyzed_info{$k}{chronos}{$d}{$h}{average}) .  "</td></tr>";
+                               $zday = "";
                        }
-                       print $fh "</td></tr>\n";
-                       $idx++;
                }
-               print $fh "</table>\n";
+                print $fh qq{
+                                                                               $details
+                                                                       </tbody>
+                                                               </table>
+                                                   <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#normalized-slowest-queries-details-rank-$rank">x Hide</button></p>
+                                               </div><!-- end of details collapse -->
+       <p><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#normalized-slowest-queries-examples-rank-$rank">Examples</button></p>                                                          
+                                               <!-- Examples collapse -->
+                                               <div id="normalized-slowest-queries-examples-rank-$rank" class="collapse">
+                                                       <dl>
+};
+
+               foreach my $d (sort {$b <=> $a} keys %{$normalyzed_info{$k}{samples}}) {
+                       my $details = "[ <b>Date:</b> $normalyzed_info{$k}{samples}{$d}{date}";
+                       $details .= " - <b>Duration:</b> " . &convert_time($d);
+                       $details .= " - <b>Database:</b> $normalyzed_info{$k}{samples}{$d}{details}" if ($normalyzed_info{$k}{samples}{$d}{details});
+                       $details .= " - <b>User:</b> $normalyzed_info{$k}{samples}{$d}{user}" if ($normalyzed_info{$k}{samples}{$d}{user});
+                       $details .= " - <b>Remote:</b> $normalyzed_info{$k}{samples}{$d}{remote}" if ($normalyzed_info{$k}{samples}{$d}{remote});
+                       $details .= " - <b>Application:</b> $normalyzed_info{$k}{samples}{$d}{app}" if ($normalyzed_info{$k}{samples}{$d}{app});
+                       $details .= " ]";
+                       $query = &highlight_code($normalyzed_info{$k}{samples}{$d}{query});
+                       print $fh qq{
+                                                               <dt><div class="sql" onclick="sql_format(this)">$query</div></dt>
+                                                               <dd><pre>$details</pre></dd>
+};
+               }
+                print $fh qq{
+                                                       </dl>
+                                                       <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#normalized-slowest-queries-examples-rank-$rank">x Hide</button></p>
+                                               </div>
+                                               <!-- end of details collapse -->
+                                       </td>
+                               </tr>
+};
+               $rank++;
+       }
+       if (scalar keys %normalyzed_info == 0) {
+               print $fh qq{<tr><td colspan="7">$NODATA</td></tr>};
        }
+        print $fh qq{
+                       </tbody>
+                       </table>
+               </div>
+       </div><!-- end of normalized-slowest-queries -->
+};
+
 }
 
 sub dump_as_html
@@ -4331,115 +5967,180 @@ sub dump_as_html
        # Dump the html header
        &html_header();
 
-       # Global information
-       &print_global_information();
+       if (!$error_only) {
 
-       # Overall statistics
-       &print_overall_statistics();
+               # Overall statistics
+               print $fh qq{
+       <li class="slide active-slide" id="overview-slide">
+};
+               &print_overall_statistics();
+
+               # Set graphs limits
+               $overall_stat{'first_log_ts'} =~ /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
+               $t_min = timegm_nocheck(0, $5, $4, $3, $2 - 1, $1) * 1000;
+               $t_min -= ($avg_minutes * 60000);
+
+               $overall_stat{'last_log_ts'} =~ /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
+               $t_max = timegm_nocheck(59, $5, $4, $3, $2 - 1, $1) * 1000;
+               $t_max += ($avg_minutes * 60000);
+
+               if (!$disable_hourly) {
+                       # Build graphs based on hourly stat
+                       &compute_query_graphs();
+
+                       # Show global SQL traffic
+                       &print_sql_traffic();
+
+                       # Show hourly statistics
+                       &print_general_activity();
+
+               }
+
+               if (!$disable_connection) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="connections-slide">
+};
+
+                       # Draw connections indormation
+                       &print_simultaneous_connection() if (!$disable_hourly);
+
+                       # Show per database/user connections
+                       &print_database_connection() if (exists $connection_info{database});
 
-       # Set graphs limits
-       $overall_stat{'first_log_ts'} =~ /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
-       $t_min = timegm_nocheck(0, $5, $4, $3, $2 - 1, $1) * 1000;
-       $t_min -= ($avg_minutes * 60000);
+                       # Show per user connections
+                       &print_user_connection() if (exists $connection_info{user});
+
+                       # Show per client ip connections
+                       &print_host_connection() if (exists $connection_info{host});
+               }
 
-       $overall_stat{'last_log_ts'} =~ /(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
-       $t_max = timegm_nocheck(59, $5, $4, $3, $2 - 1, $1) * 1000;
-       $t_max += ($avg_minutes * 60000);
 
-       if (!$disable_hourly) {
+               # Show session per database statistics
+               if (!$disable_session) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="sessions-slide">
+};
+                       # Show per database sessions
+                       &print_database_session();
+                       # Show per user sessions
+                       &print_user_session();
+                       # Show per host sessions
+                       &print_host_session();
+               }
 
-               # Start creating hourly reports about queries and connections
-               &print_hourly_reports();
 
                # Display checkpoint and temporary files report
-               if ($tempfile_info{count} || $checkpoint_info{wbuffer} || $restartpoint_info{wbuffer} || $autovacuum_info{chronos} || $autovacuum_info{count}) {
-                       &print_checkpoint_tempfile_vacuum_reports();
+               if (!$disable_checkpoint) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="checkpoints-slide">
+       };
+                       &print_checkpoint();
                }
-       }
-       %per_minute_info = ();
 
-       # Create detailed vacuum reports
-       &print_vacuum_reports();
+               if (!$disable_temporary) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="tempfiles-slide">
+};
+                       # Show temporary files detailed informations
+                       &print_temporary_file();
 
-       # INSERT/DELETE/UPDATE/SELECT repartition
-       &print_query_type_report() if (!$disable_type);
+                       # Show informations about queries generating temporary files
+                       &print_tempfile_report();
+               }
 
-       # Show request per database statistics
-       &print_request_report() if (!$disable_type);
+               if (!$disable_autovacuum) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="vacuums-slide">
+};
+                       # Show vacuums/analyses detailed informations
+                       &print_vacuum();
 
-       # Lock stats per type
-       &print_locktype_report() if (!$disable_lock);
+               }
 
-       # Show session per database statistics
-       &print_session_report() if (!$disable_session);
+               if (!$disable_lock) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="locks-slide">
+};
+                       # Lock stats per type
+                       &print_lock_type();
 
-       # Show connection per database statistics
-       &print_connection_report() if (!$disable_connection);
+                       # Show lock wait detailed informations
+                       &print_lock_queries_report();
+               }
 
-       # Show lock wait detailed informations
-       &print_lock_queries_report() if (!$disable_lock && (scalar keys %lock_info > 0));
+               %per_minute_info = ();
 
-       # Show temporary files detailed informations
-       &print_tempfile_report() if (!$disable_temporary && (scalar keys %tempfile_info > 0));
+               if (!$disable_query) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="queries-slide">
+};
+                       # INSERT/DELETE/UPDATE/SELECT repartition
+                       if (!$disable_type) {
+                               &print_query_type();
 
-       # Show top information
-       &print_top_reports() if (!$disable_query);
+                               # Show requests per database
+                               &print_query_per_database();
 
-       # Show errors report
-       if (!$disable_error) {
-               &show_error_as_html();
-       }
+                               # Show requests per user
+                               &print_query_per_user();
 
-       # Dump the html footer
-       &html_footer();
+                               # Show requests per host
+                               &print_query_per_host();
 
-}
+                               # Show requests per application
+                               &print_query_per_application();
+                       }
 
-sub dump_error_as_html
-{
+                       print $fh qq{
+               </li>
+               <li class="slide" id="topqueries-slide">
+};
+                       # Show top information
+                       &print_slowest_individual_queries();
 
-       # Dump the html header
-       &html_header();
+                       # Show queries that took up the most time
+                       &print_time_consuming();
+
+                       # Show most frequent queries
+                       &print_most_frequent();
+
+                       # Print normalized slowest queries
+                       &print_slowest_queries
+               }
 
-       # Global information
-       my $curdate    = localtime(time);
-       my $fmt_nlines = &comma_numbers($nlines);
-       my $total_time = timestr($td);
-       $total_time =~ s/^([\.0-9]+) wallclock.*/$1/;
-       $total_time = &convert_time($total_time * 1000);
-       my $logfile_str = $log_files[0];
-       if ($#log_files > 0) {
-               $logfile_str .= ', ..., ' . $log_files[-1];
        }
-       print $fh qq{
-<div class="information">
-<ul>
-<li>Generated on $curdate</li>
-<li>Log file: $logfile_str</li>
-<li>Parsed $fmt_nlines log entries in $total_time</li>
-<li>Log start from $overall_stat{'first_log_ts'} to $overall_stat{'last_log_ts'}</li>
-</ul>
-</div>
+
+       # Show errors report
+       if (!$disable_error) {
+
+               if (!$error_only) {
+                       print $fh qq{
+               </li>
+               <li class="slide" id="events-slide">
 };
-       my $fmt_errors = &comma_numbers($overall_stat{'errors_number'}) || 0;
-       my $fmt_unique_error = &comma_numbers(scalar keys %{$overall_stat{'unique_normalized_errors'}}) || 0;
-       print $fh qq{
-<div class="reports">
-<h2 id="OverallStatsReport">Overall statistics <a href="#top" title="Back to top">^</a></h2>
-<div class="information">
-<table><tr><td valign="top">
-<ul>
-<li>Number of events: $fmt_errors</li>
-<li>Number of unique normalized events: $fmt_unique_error</li>
-</ul>
-</td></tr></table>
-</div>
+               } else {
+                       print $fh qq{
+               <li class="slide active-slide" id="events-slide">
 };
+               }
+               # Show log level distribution
+               &print_log_level();
+
+               # Show Most Frequent Errors/Events
+               &show_error_as_html();
+       }
 
-       &show_error_as_html();
 
        # Dump the html footer
        &html_footer();
+
 }
 
 sub escape_html
@@ -4449,54 +6150,15 @@ sub escape_html
        return $_[0];
 }
 
-sub show_error_as_html
+sub print_log_level
 {
+       my %infos = ();
 
-       return if (scalar keys %error_info == 0);
-
-       print $fh qq{
-<h2 id="NormalizedErrorsMostFrequentReport">Most frequent events (N) <a href="#top" title="Back to top">^</a></h2>
-<table class="queryList">
-<tr>
-       <th>Rank</th>
-       <th>Times reported</th>
-       <th>Error</th>
-
-</tr>
-};
-       my $idx = 1;
+       # Some message have seen their log level change during log parsing.
+       # Set the real log level count back
        foreach my $k (sort {$error_info{$b}{count} <=> $error_info{$a}{count}} keys %error_info) {
                next if (!$error_info{$k}{count});
-               last if ($idx > $top);
-               my $col = $idx % 2;
-               print $fh
-"<tr class=\"row$col\"><td class=\"center top\">$idx</td><td class=\"relevantInformation top center\"><div class=\"tooltipLink\"><span class=\"information\">",
-                       &comma_numbers($error_info{$k}{count}), "</span>";
-               print $fh "<div class=\"tooltip\"><table><tr><th>Day</th><th>Hour</th><th>Count</th></tr>";
-               foreach my $d (sort keys %{$error_info{$k}{chronos}}) {
-                       my $c = 1;
-                       $d =~ /^\d{4}(\d{2})(\d{2})$/;
-                       my $zday = "$abbr_month{$1} $2";
-                       foreach my $h (sort keys %{$error_info{$k}{chronos}{$d}}) {
-                               my $colb = $c % 2;
-                               $zday = "&nbsp;" if ($c > 1);
-                               print $fh "<tr class=\"row$colb\"><td>$zday</td><td>$h</td><td>",
-                                       &comma_numbers($error_info{$k}{chronos}{$d}{$h}{count}), "</td></tr>";
-                               $c++;
-                       }
-               }
-               print $fh "</table></div></div></td>\n";
                if ($error_info{$k}{count} > 1) {
-                       my $msg = $k;
-                       $msg =~ s/ERROR:  (parameter "[^"]+" changed to)/LOG:  $1/;
-                       $msg =~ s/ERROR:  (database system was shut down)/LOG:  $1/;
-                       $msg =~ s/ERROR:  (database system was interrupted while in recovery)/LOG:  $1/;
-                       $msg =~ s/ERROR:  (recovery has paused)/LOG:  $1/;
-                       # Escape HTML code in error message
-                       $msg = &escape_html($msg);
-                       print $fh "<td><div class=\"error\">$msg</div>";
-                       print $fh
-"<input type=\"button\" class=\"examplesButton\" id=\"button_NormalizedErrorsMostFrequentReport_$idx\" name=\"button_NormalizedErrorsMostFrequentReport_$idx\" value=\"Show examples\" onclick=\"javascript:toggle('button_NormalizedErrorsMostFrequentReport_$idx', 'examples_NormalizedErrorsMostFrequentReport_$idx', 'examples');\" /><div id=\"examples_NormalizedErrorsMostFrequentReport_$idx\" class=\"examples\" style=\"display:none;\">";
                        for (my $i = 0 ; $i <= $#{$error_info{$k}{date}} ; $i++) {
                                if (   ($error_info{$k}{error}[$i] =~ s/ERROR:  (parameter "[^"]+" changed to)/LOG:  $1/)
                                        || ($error_info{$k}{error}[$i] =~ s/ERROR:  (database system was shut down)/LOG:  $1/)
@@ -4506,22 +6168,7 @@ sub show_error_as_html
                                        $logs_type{ERROR}--;
                                        $logs_type{LOG}++;
                                }
-                               # Escape HTML code in error message
-                               $error_info{$k}{error}[$i] = &escape_html($error_info{$k}{error}[$i]);
-                               $error_info{$k}{statement}[$i] = &escape_html($error_info{$k}{statement}[$i]);
-
-                               my $c = $i % 2;
-                               print $fh "<div class=\"example$c\" title=\"$error_info{$k}{date}[$i]\">$error_info{$k}{error}[$i]</div>\n";
-                               print $fh "<div class=\"errorInformation$c\">Detail: $error_info{$k}{detail}[$i]</div>\n"
-                                       if ($error_info{$k}{detail}[$i]);
-                               print $fh "<div class=\"errorInformation$c\">Context: $error_info{$k}{context}[$i]</div>\n"
-                                       if ($error_info{$k}{context}[$i]);
-                               print $fh "<div class=\"errorInformation$c\">Hint: $error_info{$k}{hint}[$i]</div>\n" if ($error_info{$k}{hint}[$i]);
-                               print $fh "<div class=\"errorInformation$c\">Statement: $error_info{$k}{statement}[$i]</div>\n"
-                                       if ($error_info{$k}{statement}[$i]);
-                               print $fh "<div class=\"errorInformation$c\">Database: $error_info{$k}{db}[$i]</div>\n" if ($error_info{$k}{db}[$i]);
                        }
-                       print $fh "</div>";
                } else {
                        if (   ($error_info{$k}{error}[0] =~ s/ERROR:  (parameter "[^"]+" changed to)/LOG:  $1/)
                                || ($error_info{$k}{error}[0] =~ s/ERROR:  (database system was shut down)/LOG:  $1/)
@@ -4531,74 +6178,235 @@ sub show_error_as_html
                                $logs_type{ERROR}--;
                                $logs_type{LOG}++;
                        }
-                       # Escape HTML code in error message
-                       $error_info{$k}{error}[0] = &escape_html($error_info{$k}{error}[0]);
-                       $error_info{$k}{statement}[0] = &escape_html($error_info{$k}{statement}[0]);
-
-                       print $fh "<td><div class=\"error\" title=\"$error_info{$k}{date}[0]\">$error_info{$k}{error}[0]</div>";
-                       print $fh "<div class=\"errorInformation\">Detail: $error_info{$k}{detail}[0]</div>\n"   if ($error_info{$k}{detail}[0]);
-                       print $fh "<div class=\"errorInformation\">Context: $error_info{$k}{context}[0]</div>\n" if ($error_info{$k}{context}[0]);
-                       print $fh "<div class=\"errorInformation\">Hint: $error_info{$k}{hint}[0]</div>\n"       if ($error_info{$k}{hint}[0]);
-                       print $fh "<div class=\"errorInformation\">Statement: $error_info{$k}{statement}[0]</div>\n"
-                               if ($error_info{$k}{statement}[0]);
-                       print $fh "<div class=\"errorInformation\">Database: $error_info{$k}{db}[0]</div>\n" if ($error_info{$k}{db}[0]);
-               }
-               print $fh "</td></tr>\n";
-               $idx++;
+               }
+       }
+
+       # Show log types
+       my $total_logs = 0;
+       foreach my $d (sort keys %logs_type) {
+               $total_logs += $logs_type{$d};
+       }
+
+       my $logtype_info = '';
+       foreach my $d (sort keys %logs_type) {
+               next if (!$logs_type{$d});
+               $logtype_info .= "<tr><td>$d</td><td>" . &comma_numbers($logs_type{$d}) .
+                       "</td><td>" . sprintf("%0.2f", ($logs_type{$d} * 100) / ($total_logs||1)) . "%</td></tr>";
+       }
+       if ($graph) {
+               my @small = ();
+               foreach my $d (sort keys %logs_type) {
+                       if ((($logs_type{$d} * 100) / ($total_logs || 1)) > $pie_percentage_limit) {
+                               $infos{$d} = $logs_type{$d} || 0;
+                       } else {
+                               $infos{"Sum log types < $pie_percentage_limit%"} += $logs_type{$d} || 0;
+                               push(@small, $d);
+                       }
+               }
+
+               if ($#small == 0) {
+                       $infos{$small[0]} = $infos{"Sum log types < $pie_percentage_limit%"};
+                       delete $infos{"Sum log types < $pie_percentage_limit%"};
+               }
+       }
+       $drawn_graphs{logstype_graph} = &flotr2_piegraph($graphid++, 'logstype_graph', 'Logs per type', %infos);
+       if (!$total_logs) {
+               $logtype_info = qq{<tr><td colspan="7">$NODATA</td></tr>};
        }
-       print $fh "</table>\n";
 
-       if (scalar keys %logs_type > 0) {
+       $total_logs = &comma_numbers($total_logs);
+       print $fh qq{
+       <h1 class="page-header"><i class="icon-bullhorn"></i> Events</h1>
+       <div class="analysis-item row-fluid" id="log-levels">
+               <h2><i class="icon-tags"></i> Log levels</h2>
+               <div class="span3">
+                       <h3 class="">Key values</h3>
+                       <div class="well key-figures">
+                               <ul>
+                                       <li><span class="figure">$total_logs</span> <span class="figure-label">Log entries</span></li>
+                                       <li><span class="figure">$logs_type{ERROR}</span> <span class="figure-label">Number of errors</span></li>
+                               </ul>
+                       </div>
+               </div>
+               <div class="span8">
+                       <div class="tabbable">
+                               <ul class="nav nav-tabs">
+                                       <li class="active"><a href="#log-level-graph" data-toggle="tab">Chart</a></li>
+                                       <li><a href="#log-level-table" data-toggle="tab">Table</a></li>
+                               </ul>
+                               <div class="tab-content">
+                                       <div class="tab-pane active" id="log-level-graph">
+                                               $drawn_graphs{logstype_graph}
+                                       </div>
+                                       <div class="tab-pane" id="log-level-table">
+                                               <table class="table table-striped table-hover">
+                                                       <thead>
+                                                               <tr>
+                                                                       <th>Type</th>
+                                                                       <th>Count</th>
+                                                                       <th>Percentage</th>
+                                                               </tr>
+                                                       </thead>
+                                                       <tbody>
+                                                       $logtype_info
+                                                       </tbody>
+                                               </table>    
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+       </div><!-- end of queries by host -->
+};
+       delete $drawn_graphs{logstype_graph};
 
-               # Show log types
-               print $fh qq{
-       <h2 id="LogsTypeReport">Logs per type <a href="#top" title="Back to top">^</a></h2>
-       <table>
-       <tr><td width="500" align="left" valign="top">
-       <table class="SmallTableList">
-         <tr>
-           <th>Type</th>
-           <th>Count</th>
-           <th>Percentage</th>
-         </tr>
-       };
+}
 
-               my $total_logs = 0;
-               foreach my $d (sort keys %logs_type) {
-                       $total_logs += $logs_type{$d};
-               }
+sub show_error_as_html
+{
 
-               my $c = 0;
+       my $main_error = 0;
+       my $total = 0;
+       foreach my $k (sort {$error_info{$b}{count} <=> $error_info{$a}{count}} keys %error_info) {
+               next if (!$error_info{$k}{count});
+               $main_error = &comma_numbers($error_info{$k}{count}) if (!$main_error);
+               $total += $error_info{$k}{count};
+       }
+       $total = &comma_numbers($total);
 
-               foreach my $d (sort keys %logs_type) {
-                       next if (!$logs_type{$d});
-                       my $colb = $c % 2;
-                       print $fh "<tr class=\"row$colb\"><td>$d</td><td class=\"right\">", &comma_numbers($logs_type{$d}),
-                               "</td><td class=\"right\">", sprintf("%0.2f", ($logs_type{$d} * 100) / $total_logs), "%</td></tr>\n";
-                       $c++;
+       print $fh qq{
+               <div class="analysis-item row-fluid" id="most-frequent-errors-events">
+                       <h2><i class="icon-warning-sign"></i> Most Frequent Errors/Events</h2>
+                       <div class="span3">
+                               <h3 class="">Key values</h3>
+                               <div class="well key-figures">
+                                       <ul>
+                                               <li><span class="figure">$main_error</span> <span class="figure-label">Max number of times the same error was reported</span></li>
+                                               <li><span class="figure">$total</span> <span class="figure-label">Total errors found</span></li>    
+                                       </ul>
+                               </div>            
+                       </div>
+                       <div class="span8">
+                               <table class="table table-striped" id="most-frequent-errors-events-table">
+                               <thead>
+                                       <tr>
+                                               <th>Rank</th>
+                                               <th>Times reported</th>
+                                               <th>Error</th>
+                                       </tr>
+                               </thead>
+                               <tbody>
+};
+       my $rank = 1;
+       foreach my $k (sort {$error_info{$b}{count} <=> $error_info{$a}{count}} keys %error_info) {
+               next if (!$error_info{$k}{count});
+               my $count = &comma_numbers($error_info{$k}{count});
+               my $msg = $k;
+               $msg =~ s/ERROR:  (parameter "[^"]+" changed to)/LOG:  $1/;
+               $msg =~ s/ERROR:  (database system was shut down)/LOG:  $1/;
+               $msg =~ s/ERROR:  (database system was interrupted while in recovery)/LOG:  $1/;
+               $msg =~ s/ERROR:  (recovery has paused)/LOG:  $1/;
+               my $error_level_class = 'text-error';
+               if ($msg =~ /^WARNING: /) {
+                       $error_level_class = 'text-warning';
+               } elsif ($msg =~ /^LOG: /) {
+                       $error_level_class = 'text-success';
+               } elsif ($msg =~ /^HINT: /) {
+                       $error_level_class = 'text-info';
+               } elsif ($msg =~ /^FATAL: /) {
+                       $error_level_class = 'text-fatal';
+               } elsif ($msg =~ /^PANIC: /) {
+                       $error_level_class = 'text-panic';
+               }
+               # Escape HTML code in error message
+               $msg = &escape_html($msg);
+               print $fh qq{
+                               <tr>
+                               <td>$rank</td>
+                               <td>$count
+                                       <p><a href="#most-frequent-errors-events-details-rank-$rank" class="btn btn-mini" data-toggle="collapse">Details</a></p>
+                               </td>
+                               <td id="most-frequent-errors-events-examples-details-rank-$rank">
+                                       <pre><span class="$error_level_class">$msg</span></pre>
+                                               <!-- Details collapse -->
+                                           <div id="most-frequent-errors-events-details-rank-$rank" class="collapse">
+                                               <h3>Times Reported <small>Most Frequent Error / Event #$rank</small></h3>
+                                                               <table class="table table-stripped table-condensed">
+                                                                       <thead>
+                                                                               <tr>
+                                                                                       <th>Day</th>
+                                                                                       <th>Hour</th>
+                                                                                       <th>Count</th>
+                                                                               </tr>
+                                                                       </thead>
+                                                                       <tbody>
+};
+               my $details = '';
+               foreach my $d (sort keys %{$error_info{$k}{chronos}}) {
+                       my $c = 1;
+                       $d =~ /^\d{4}(\d{2})(\d{2})$/;
+                       my $zday = "$abbr_month{$1} $2";
+                       foreach my $h (sort keys %{$error_info{$k}{chronos}{$d}}) {
+                               $details .= "<tr><td>$zday</td><td>$h</td><td>" .
+                                       &comma_numbers($error_info{$k}{chronos}{$d}{$h}{count}) . "</td></tr>";
+                               $zday = "";
+                       }
                }
+               print $fh qq{
+                                                                               $details
+                                                                       </tbody>
+                                                               </table>
+                                                   <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#most-frequent-errors-events-details-rank-$rank">x Hide</button></p>
+                                               </div><!-- end of details collapse -->
+<p><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#most-frequent-errors-events-examples-rank-$rank">Examples</button></p>                                                         
+                                               <!-- Examples collapse -->
+                                               <div id="most-frequent-errors-events-examples-rank-$rank" class="collapse">
+                                                       <dl>
+};
 
-               print $fh "</table></td><td width=\"500\" align=\"center\" valign=\"top\">\n";
-               if ($graph && $total_logs) {
-                       my %infos = ();
-                       my @small = ();
-                       foreach my $d (sort keys %logs_type) {
-                               if ((($logs_type{$d} * 100) / $total_logs) > $pie_percentage_limit) {
-                                       $infos{$d} = $logs_type{$d} || 0;
-                               } else {
-                                       $infos{"Sum log types < $pie_percentage_limit%"} += $logs_type{$d} || 0;
-                                       push(@small, $d);
-                               }
+               for (my $i = 0 ; $i <= $#{$error_info{$k}{date}} ; $i++) {
+                       # Escape HTML code in error message
+                       my $message = &escape_html($error_info{$k}{error}[$i]);
+                       my $details = "Date: " . $error_info{$k}{date}[$i] . "\n";
+                       if ($error_info{$k}{detail}[$i]) {
+                               $details .= "Detail: " . &escape_html($error_info{$k}{detail}[$i]) . "<br/>";
                        }
-
-                       if ($#small == 0) {
-                               $infos{$small[0]} = $infos{"Sum log types < $pie_percentage_limit%"};
-                               delete $infos{"Sum log types < $pie_percentage_limit%"};
+                       if ($error_info{$k}{context}[$i]) {
+                               $details .= "Context: " . &escape_html($error_info{$k}{context}[$i]) . "<br/>";
+                       }
+                       if ($error_info{$k}{hint}[$i]) {
+                               $details .= "Hint: " . &escape_html($error_info{$k}{hint}[$i]) . "<br/>";
                        }
-                       &flotr2_piegraph($graphid++, 'logstype_graph', 'Logs per type', %infos);
+                       if ($error_info{$k}{statement}[$i]) {
+                               $details .= "Statement: " . &escape_html($error_info{$k}{statement}[$i]) . "<br/>";
+                       }
+                       if ($error_info{$k}{db}[$i]) {
+                               $details .= "Database: " . $error_info{$k}{db}[$i] . "<br/>";
+                       }
+                       print $fh qq{
+                                                               <dt><span class="$error_level_class">$message</span></dt>
+                                                               <dd><pre>$details</pre></dd>
+};
                }
-               print $fh "</td></tr></table>\n";
+               print $fh qq{
+                                                       </dl>
+                                                       <p class="pull-right"><button type="button" class="btn btn-mini" data-toggle="collapse" data-target="#most-frequent-errors-events-examples-rank-$rank">x Hide</button></p>
+                                               </div>
+                                               <!-- end of details collapse -->
+                                       </td>
+                               </tr>
+};
+               $rank++;
        }
+       if (scalar keys %error_info == 0) {
+               print $fh qq{<tr><td colspan="7">$NODATA</td></tr>};
+       }
+
+       print $fh qq{
+                       </tbody>
+                       </table>
+               </div>
+       </div><!-- end of most-frequent-errors-events -->
+};
 
 }
 
@@ -4608,13 +6416,15 @@ sub load_stats
        my $fd = shift;
        my %stats = %{ fd_retrieve($fd) };
        my %_overall_stat = %{$stats{overall_stat}};
+       my %_overall_checkpoint = %{$stats{overall_checkpoint}};
        my %_normalyzed_info = %{$stats{normalyzed_info}};
        my %_error_info = %{$stats{error_info}};
        my %_connection_info = %{$stats{connection_info}};
        my %_database_info = %{$stats{database_info}};
        my %_application_info = %{$stats{application_info}};
+       my %_user_info = %{$stats{user_info}};
+       my %_host_info = %{$stats{host_info}};
        my %_checkpoint_info = %{$stats{checkpoint_info}};
-       my %_restartpoint_info = %{$stats{restartpoint_info}};
        my %_session_info = %{$stats{session_info}};
        my %_tempfile_info = %{$stats{tempfile_info}};
        my %_logs_type = %{$stats{logs_type}};
@@ -4664,13 +6474,26 @@ sub load_stats
        $overall_stat{SELECT} += $_overall_stat{SELECT}
                if exists $_overall_stat{SELECT};
 
-       foreach my $k (keys %{$_overall_stat{query_peak}}) {
-               $overall_stat{query_peak}{$k} += $_overall_stat{query_peak}{$k};
+       $overall_checkpoint{checkpoint_warning} += $_overall_checkpoint{checkpoint_warning};
+       $overall_checkpoint{checkpoint_write} = $_overall_checkpoint{checkpoint_write}
+               if ($_overall_checkpoint{checkpoint_write} > $overall_checkpoint{checkpoint_write});
+       $overall_checkpoint{checkpoint_sync} = $_overall_checkpoint{checkpoint_sync}
+               if ($_overall_checkpoint{checkpoint_sync} > $overall_checkpoint{checkpoint_sync});
+       foreach my $k (keys %{$_overall_stat{peak}}) {
+               $overall_stat{peak}{$k}{query} += $_overall_stat{peak}{$k}{query};
+               $overall_stat{peak}{$k}{select} += $_overall_stat{peak}{$k}{select};
+               $overall_stat{peak}{$k}{write} += $_overall_stat{peak}{$k}{write};
+               $overall_stat{peak}{$k}{connection} += $_overall_stat{peak}{$k}{connection};
+               $overall_stat{peak}{$k}{tempfile_size} += $_overall_stat{peak}{$k}{tempfile_size};
+               $overall_stat{peak}{$k}{tempfile_count} += $_overall_stat{peak}{$k}{tempfile_count};
+       }
+       foreach my $k (keys %{$_overall_checkpoint{peak}}) {
+               $overall_checkpoint{peak}{$k}{checkpoint_wbuffer} += $_overall_checkpoint{peak}{$k}{checkpoint_wbuffer};
+               $overall_checkpoint{peak}{$k}{walfile_usage} += $_overall_checkpoint{peak}{$k}{walfile_usage};
        }
 
-       # FIXME == $error_info ??
-       foreach my $k (keys %{$_overall_stat{unique_normalized_errors}}) {
-               $overall_stat{unique_normalized_errors}{$k} += $_overall_stat{unique_normalized_errors}{$k};
+       foreach my $k ('prepare', 'bind','execute') {
+               $overall_stat{$k} += $_overall_stat{$k};
        }
 
 
@@ -4695,6 +6518,23 @@ sub load_stats
                }
        }
 
+       ### user_info ###
+
+       foreach my $u (keys %_user_info) {
+               foreach my $k (keys %{ $_user_info{$u} }) {
+                       $user_info{$u}{$k} += $_user_info{$u}{$k};
+               }
+       }
+
+       ### host_info ###
+
+       foreach my $h (keys %_host_info) {
+               foreach my $k (keys %{ $_host_info{$h} }) {
+                       $host_info{$h}{$k} += $_host_info{$h}{$k};
+               }
+       }
+
+
        ### connection_info ###
 
        foreach my $db (keys %{ $_connection_info{database} }) {
@@ -4799,6 +6639,11 @@ sub load_stats
                                                $per_minute_info{$day}{$hour}{$min}{$action}{duration} += $_per_minute_info{$day}{$hour}{$min}{$action}{duration};
                                        }
                                }
+                               foreach my $k ('prepare', 'bind','execute') {
+                                       if (exists $_per_minute_info{$day}{$hour}{$min}{$k}) {
+                                               $per_minute_info{$day}{$hour}{$min}{$k} += $_per_minute_info{$day}{$hour}{$min}{$k};
+                                       }
+                               }
 
                                $per_minute_info{$day}{$hour}{$min}{tempfile}{count} += $_per_minute_info{$day}{$hour}{$min}{tempfile}{count}
                                                if defined $_per_minute_info{$day}{$hour}{$min}{tempfile}{count};
@@ -4812,12 +6657,13 @@ sub load_stats
                                $per_minute_info{$day}{$hour}{$min}{checkpoint}{total} += $_per_minute_info{$day}{$hour}{$min}{checkpoint}{total};
                                $per_minute_info{$day}{$hour}{$min}{checkpoint}{file_added} += $_per_minute_info{$day}{$hour}{$min}{checkpoint}{file_added};
                                $per_minute_info{$day}{$hour}{$min}{checkpoint}{write} += $_per_minute_info{$day}{$hour}{$min}{checkpoint}{write};
-                               $per_minute_info{$day}{$hour}{$min}{restartpoint}{sync} += $_per_minute_info{$day}{$hour}{$min}{restartpoint}{sync};
-                               $per_minute_info{$day}{$hour}{$min}{restartpoint}{wbuffer} += $_per_minute_info{$day}{$hour}{$min}{restartpoint}{wbuffer};
-                               $per_minute_info{$day}{$hour}{$min}{restartpoint}{total} += $_per_minute_info{$day}{$hour}{$min}{restartpoint}{total};
-                               $per_minute_info{$day}{$hour}{$min}{restartpoint}{write} += $_per_minute_info{$day}{$hour}{$min}{restartpoint}{write};
                                $per_minute_info{$day}{$hour}{$min}{autovacuum}{count} += $_per_minute_info{$day}{$hour}{$min}{autovacuum}{count};
                                $per_minute_info{$day}{$hour}{$min}{autoanalyze}{count} += $_per_minute_info{$day}{$hour}{$min}{autoanalyze}{count};
+
+                               $per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_files} += $_per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_files};
+                               $per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_avg} += $_per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_avg};
+                               $per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_longest} = $_per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_longest}
+                                       if ($_per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_longest} > $per_minute_info{$day}{$hour}{$min}{checkpoint}{sync_longest});
                        }
                }
        }
@@ -4951,24 +6797,24 @@ sub load_stats
        my @tmp_top_slowest = sort {$b->[0] <=> $a->[0]} (@top_slowest, @_top_slowest);
        @top_slowest = ();
        for (my $i = 0; $i <= $#tmp_top_slowest; $i++) {
-               last if ($i == $end_top);
                push(@top_slowest, $tmp_top_slowest[$i]);
+               last if ($i == $end_top);
        }
 
        ### top_locked ###
        my @tmp_top_locked_info = sort {$b->[0] <=> $a->[0]} (@top_locked_info, @_top_locked_info);
        @top_locked_info = ();
        for (my $i = 0; $i <= $#tmp_top_locked_info; $i++) {
-               last if ($i == $end_top);
                push(@top_locked_info, $tmp_top_locked_info[$i]);
+               last if ($i == $end_top);
        }
 
        ### top_tempfile ###
        my @tmp_top_tempfile_info = sort {$b->[0] <=> $a->[0]} (@top_tempfile_info, @_top_tempfile_info);
        @top_tempfile_info = ();
        for (my $i = 0; $i <= $#tmp_top_tempfile_info; $i++) {
-               last if ($i == $end_top);
                push(@top_tempfile_info, $tmp_top_tempfile_info[$i]);
+               last if ($i == $end_top);
        }
 
        ### checkpoint_info ###
@@ -4980,12 +6826,6 @@ sub load_stats
        $checkpoint_info{file_added} += $_checkpoint_info{file_added};
        $checkpoint_info{write} += $_checkpoint_info{write};
 
-       ### restartpoint_info ###
-       $restartpoint_info{sync} += $_restartpoint_info{sync};
-       $restartpoint_info{wbuffer} += $_restartpoint_info{wbuffer};
-       $restartpoint_info{total} += $_restartpoint_info{total};
-       $restartpoint_info{write} += $_restartpoint_info{write};
-
        #### Autovacuum infos ####
 
        $autovacuum_info{count} += $_autovacuum_info{count};
@@ -5001,7 +6841,11 @@ sub load_stats
                $autovacuum_info{tables}{$table}{tuples}{removed} += $_autovacuum_info{tables}{$table}{tuples}{removed};
                $autovacuum_info{tables}{$table}{pages}{removed} += $_autovacuum_info{tables}{$table}{pages}{removed};
        }
-
+       if ($_autovacuum_info{peak}{system_usage}{elapsed} > $autovacuum_info{peak}{system_usage}{elapsed}) {
+               $autovacuum_info{peak}{system_usage}{elapsed} = $_autovacuum_info{peak}{system_usage}{elapsed};
+               $autovacuum_info{peak}{system_usage}{table} = $_autovacuum_info{peak}{system_usage}{table};
+               $autovacuum_info{peak}{system_usage}{date} = $_autovacuum_info{peak}{system_usage}{date};
+       }
        #### Autoanalyze infos ####
 
        $autoanalyze_info{count} += $_autoanalyze_info{count};
@@ -5014,6 +6858,11 @@ sub load_stats
        foreach my $table (keys %{ $_autoanalyze_info{tables} }) {
                $autoanalyze_info{tables}{$table}{analyzes} += $_autoanalyze_info{tables}{$table}{analyzes};
        }
+       if ($_autoanalyze_info{peak}{system_usage}{elapsed} > $autoanalyze_info{peak}{system_usage}{elapsed}) {
+               $autoanalyze_info{peak}{system_usage}{elapsed} = $_autoanalyze_info{peak}{system_usage}{elapsed};
+               $autoanalyze_info{peak}{system_usage}{table} = $_autoanalyze_info{peak}{system_usage}{table};
+               $autoanalyze_info{peak}{system_usage}{date} = $_autoanalyze_info{peak}{system_usage}{date};
+       }
 
        return;
 }
@@ -5024,13 +6873,15 @@ sub dump_as_binary
 
        store_fd({
                'overall_stat' => \%overall_stat,
+               'overall_checkpoint' => \%overall_checkpoint,
                'normalyzed_info' => \%normalyzed_info,
                'error_info' => \%error_info,
                'connection_info' => \%connection_info,
                'database_info' => \%database_info,
                'application_info' => \%application_info,
+               'user_info' => \%user_info,
+               'host_info' => \%host_info,
                'checkpoint_info' => \%checkpoint_info,
-               'restartpoint_info' => \%restartpoint_info,
                'session_info' => \%session_info,
                'tempfile_info' => \%tempfile_info,
                'error_info' => \%error_info,
@@ -5272,6 +7123,8 @@ sub parse_query
        }
 
        my $date_part = "$prefix_vars{'t_year'}$prefix_vars{'t_month'}$prefix_vars{'t_day'}";
+       my $cur_last_log_timestamp = "$prefix_vars{'t_year'}-$prefix_vars{'t_month'}-$prefix_vars{'t_day'} " .
+                                    "$prefix_vars{t_hour}:$prefix_vars{t_min}:$prefix_vars{t_sec}";
 
        # Stores lock activity
        if (($prefix_vars{'t_loglevel'} eq 'LOG') && ($prefix_vars{'t_query'} =~ /acquired ([^\s]+) on ([^\s]+) .* after ([0-9\.]+) ms/))
@@ -5293,7 +7146,6 @@ sub parse_query
                        $cur_lock_info{$t_pid}{dbuser}    = $prefix_vars{'t_dbuser'};
                        $cur_lock_info{$t_pid}{dbclient}  = $prefix_vars{'t_client'};
                        $cur_lock_info{$t_pid}{dbappname} = $prefix_vars{'t_appname'};
-                       $cur_lock_info{$t_pid}{timestamp} = $prefix_vars{'t_timestamp'};
                }
                return;
        }
@@ -5306,7 +7158,6 @@ sub parse_query
                $cur_lock_info{$t_pid}{dbuser}    = $prefix_vars{'t_dbuser'};
                $cur_lock_info{$t_pid}{dbclient}  = $prefix_vars{'t_client'};
                $cur_lock_info{$t_pid}{dbappname} = $prefix_vars{'t_appname'};
-               $cur_lock_info{$t_pid}{timestamp} = $prefix_vars{'t_timestamp'};
                return;
        }
 
@@ -5321,6 +7172,8 @@ sub parse_query
                # Store current temporary file information that will be used later
                # when we will parse the query responsible of the tempfile
                $cur_temp_info{$t_pid}{size} = $1;
+               $overall_stat{'peak'}{$cur_last_log_timestamp}{tempfile_size} += $1;
+               $overall_stat{'peak'}{$cur_last_log_timestamp}{tempfile_count}++;
                if ($format eq 'csv') {
                        $cur_temp_info{$t_pid}{query}     = $prefix_vars{'t_statement'};
                        $cur_temp_info{$t_pid}{timestamp} = $prefix_vars{'t_timestamp'};
@@ -5328,20 +7181,18 @@ sub parse_query
                        $cur_temp_info{$t_pid}{dbuser}    = $prefix_vars{'t_dbuser'};
                        $cur_temp_info{$t_pid}{dbclient}  = $prefix_vars{'t_client'};
                        $cur_temp_info{$t_pid}{dbappname} = $prefix_vars{'t_appname'};
-                       $cur_temp_info{$t_pid}{timestamp} = $prefix_vars{'t_timestamp'};
                }
                return;
        }
 
        # Stores query related to last created temporary file
-       if (($prefix_vars{'t_loglevel'} eq 'STATEMENT') && exists $cur_temp_info{$t_pid}) {
+       if (($prefix_vars{'t_loglevel'} eq 'STATEMENT') && $cur_temp_info{$t_pid}{size}) {
                $cur_temp_info{$t_pid}{query}     = $prefix_vars{'t_query'};
                $cur_temp_info{$t_pid}{timestamp} = $prefix_vars{'t_timestamp'};
                $cur_temp_info{$t_pid}{dbname}    = $prefix_vars{'t_dbname'};
                $cur_temp_info{$t_pid}{dbuser}    = $prefix_vars{'t_dbuser'};
                $cur_temp_info{$t_pid}{dbclient}  = $prefix_vars{'t_client'};
                $cur_temp_info{$t_pid}{dbappname} = $prefix_vars{'t_appname'};
-               $cur_temp_info{$t_pid}{timestamp} = $prefix_vars{'t_timestamp'};
                return;
        }
 
@@ -5366,6 +7217,8 @@ sub parse_query
                        return;
 
                }
+               $overall_stat{'peak'}{$cur_last_log_timestamp}{connection}++;
+
                $connection_info{count}++;
                $connection_info{user}{$usr}++;
                $connection_info{database}{$db}++;
@@ -5440,6 +7293,12 @@ sub parse_query
                $autovacuum_info{chronos}{$date_part}{$prefix_vars{'t_hour'}}{count}++;
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{autovacuum}{count}++;
                $cur_info{$t_pid}{vacuum} = $1;
+               $cur_info{$t_pid}{year}   = $prefix_vars{'t_year'};
+               $cur_info{$t_pid}{month}  = $prefix_vars{'t_month'};
+               $cur_info{$t_pid}{day}    = $prefix_vars{'t_day'};
+               $cur_info{$t_pid}{hour}   = $prefix_vars{'t_hour'};
+               $cur_info{$t_pid}{min}    = $prefix_vars{'t_min'};
+               $cur_info{$t_pid}{sec}    = $prefix_vars{'t_sec'};
                return;
        }
 
@@ -5452,31 +7311,41 @@ sub parse_query
           )
        {
                return if ($disable_autovacuum);
+               my $table = $1;
                $autoanalyze_info{count}++;
-               $autoanalyze_info{tables}{$1}{analyzes} += 1;
+               $autoanalyze_info{tables}{$table}{analyzes} += 1;
                $autoanalyze_info{chronos}{$date_part}{$prefix_vars{'t_hour'}}{count}++;
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{autoanalyze}{count}++;
+               if ($prefix_vars{'t_query'} =~ m#system usage: CPU .* sec elapsed (.*) sec#) {
+                       if ($1 > $autoanalyze_info{peak}{system_usage}{elapsed}) {
+                               $autoanalyze_info{peak}{system_usage}{elapsed} = $1;
+                               $autoanalyze_info{peak}{system_usage}{table} = $table;
+                               $autoanalyze_info{peak}{system_usage}{date} = $cur_last_log_timestamp;
+                       }
+               }
        }
 
-       # Store checkpoint information
+       # Store checkpoint or restartpoint information
        if (
                ($prefix_vars{'t_loglevel'} eq 'LOG')
                && ($prefix_vars{'t_query'} =~
-/checkpoint complete: wrote (\d+) buffers \(([^\)]+)\); (\d+) transaction log file\(s\) added, (\d+) removed, (\d+) recycled; write=([0-9\.]+) s, sync=([0-9\.]+) s, total=([0-9\.]+) s/
+/point complete: wrote (\d+) buffers \(([^\)]+)\); (\d+) transaction log file\(s\) added, (\d+) removed, (\d+) recycled; write=([0-9\.]+) s, sync=([0-9\.]+) s, total=([0-9\.]+) s/
                   )
           )
        {
+               # Example: LOG:  checkpoint complete: wrote 175 buffers (5.7%); 0 transaction log file(s) added, 1 removed, 2 recycled; write=17.437 s, sync=0.722 s, total=18.259 s; sync files=2, longest=0.708 s, average=0.361 s
                return if ($disable_checkpoint);
+
                $checkpoint_info{wbuffer} += $1;
 
                #$checkpoint_info{percent_wbuffer} += $2;
                $checkpoint_info{file_added}    += $3;
                $checkpoint_info{file_removed}  += $4;
                $checkpoint_info{file_recycled} += $5;
+               $overall_checkpoint{'peak'}{$cur_last_log_timestamp}{walfile_usage} += ($3 + $5);
                $checkpoint_info{write}         += $6;
                $checkpoint_info{sync}          += $7;
                $checkpoint_info{total}         += $8;
-
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{wbuffer} += $1;
                #$per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{percent_wbuffer} += $2;
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{file_added}    += $3;
@@ -5485,6 +7354,19 @@ sub parse_query
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{write}         += $6;
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{sync}          += $7;
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{total}         += $8;
+
+               $overall_checkpoint{'peak'}{$cur_last_log_timestamp}{checkpoint_wbuffer} += $1;
+               if ($6 > $overall_checkpoint{checkpoint_write}) {
+                       $overall_checkpoint{checkpoint_write} = $6;
+                       $overall_checkpoint{checkpoint_sync} = $7;
+               }
+
+               if ($prefix_vars{'t_query'} =~ /sync files=(\d+), longest=([0-9\.]+) s, average=([0-9\.]+) s/) {
+                       $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{sync_files} += $1;
+                       $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{sync_longest} = $2
+                               if ($2 > $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{sync_longest});
+                       $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{sync_avg} += $3;
+               }
                return;
        }
 
@@ -5497,10 +7379,11 @@ sub parse_query
                $checkpoint_info{warning_seconds} += $1;
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{warning}++;
                $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{warning_seconds} += $1;
+               $overall_checkpoint{checkpoint_warning}++;
                return;
        }
 
-       # Store restartpoint information
+       # Store old restartpoint information
        if (
                ($prefix_vars{'t_loglevel'} eq 'LOG')
                && ($prefix_vars{'t_query'} =~
@@ -5508,20 +7391,27 @@ sub parse_query
                   )
           )
        {
+               # Example: LOG:  restartpoint complete: wrote 1568 buffers (0.3%); write=146.237 s, sync=0.251 s, total=146.489 s
                return if ($disable_checkpoint);
-               $restartpoint_info{wbuffer} += $1;
 
-               #$restartpoint_info{percent_wbuffer} += $2;
-               $restartpoint_info{write}         += $3;
-               $restartpoint_info{sync}          += $4;
-               $restartpoint_info{total}         += $5;
+               $checkpoint_info{wbuffer} += $1;
+
+               #$checkpoint_info{percent_wbuffer} += $2;
+               $checkpoint_info{write}         += $6;
+               $checkpoint_info{sync}          += $7;
+               $checkpoint_info{total}         += $8;
+               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{wbuffer} += $1;
+               #$per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{percent_wbuffer} += $2;
+               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{write}         += $6;
+               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{sync}          += $7;
+               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{checkpoint}{total}         += $8;
 
-               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{restartpoint}{wbuffer} += $1;
+               $overall_checkpoint{'peak'}{$cur_last_log_timestamp}{checkpoint_wbuffer} += $1;
+               if ($6 > $overall_checkpoint{checkpoint_write}) {
+                       $overall_checkpoint{checkpoint_write} = $6;
+                       $overall_checkpoint{checkpoint_sync} = $7;
+               }
 
-               #$per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{restartpoint}{percent_wbuffer} += $2;
-               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{restartpoint}{write}         += $3;
-               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{restartpoint}{sync}          += $4;
-               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{restartpoint}{total}         += $5;
                return;
        }
 
@@ -5584,20 +7474,36 @@ sub parse_query
        if ($prefix_vars{'t_query'} =~ s/duration: ([0-9\.]+) ms  (query|statement): //is) {
                $prefix_vars{'t_duration'} = $1;
                $t_action   = $2;
+               if (($t_action eq 'statement') && $prefix_vars{'t_query'} =~ /^(PREPARE|EXECUTE)\b/i) {
+                       $overall_stat{lc($1)}++;
+                       $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{lc($1)}++;
+               }
        # Log line with duration and statement from prepared queries
        } elsif ($prefix_vars{'t_query'} =~ s/duration: ([0-9\.]+) ms  (prepare|parse|bind|execute from fetch|execute)\s+[^:]+:\s//is)
        {
                $prefix_vars{'t_duration'} = $1;
-               $t_action   = $2;
+               $t_action = $2;
+               $t_action =~ s/ from fetch//;
+               $t_action = 'prepare' if ($t_action eq 'parse');
+               $overall_stat{$t_action}++;
+               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{$t_action}++;
                # Skipping parse and bind logs
                return if ($t_action !~ /query|statement|execute/);
        # Log line without duration at all
        } elsif ($prefix_vars{'t_query'} =~ s/(query|statement): //is) {
                $t_action = $1;
+               if (($t_action eq 'statement') && $prefix_vars{'t_query'} =~ /^(PREPARE|EXECUTE)\b/i) {
+                       $overall_stat{lc($1)}++;
+                       $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{lc($1)}++;
+               }
        # Log line without duration at all from prepared queries
        } elsif ($prefix_vars{'t_query'} =~ s/(prepare|parse|bind|execute from fetch|execute)\s+[^:]+:\s//is)
        {
                $t_action = $1;
+               $t_action =~ s/ from fetch//;
+               $t_action = 'prepare' if ($t_action eq 'parse');
+               $overall_stat{$t_action}++;
+               $per_minute_info{$date_part}{$prefix_vars{'t_hour'}}{$prefix_vars{'t_min'}}{$t_action}++;
                # Skipping parse and bind logs
                return if ($t_action !~ /query|statement|execute/);
        # Log line that would not be parse
@@ -5701,7 +7607,7 @@ sub store_tsung_session
 
 sub store_queries
 {
-       my $t_pid = shift;
+       my $t_pid  = shift;
 
        # Remove comments if required
        if ($remove_comment) {
@@ -5712,6 +7618,7 @@ sub store_queries
        &store_temporary_and_lock_infos($t_pid);
 
        return if (!exists $cur_info{$t_pid});
+       return if (!$cur_info{$t_pid}{year});
 
        # Cleanup and normalize the current query
        $cur_info{$t_pid}{query} =~ s/^[\t\s\r\n]+//s;
@@ -5784,7 +7691,6 @@ sub store_queries
 
                # Stores total and normalized error count
                $overall_stat{'errors_number'}++;
-               $overall_stat{'unique_normalized_errors'}{"$normalized_error"}++;
                $error_info{$normalized_error}{count}++;
 
                # Stores normalized error count per time
@@ -5813,7 +7719,7 @@ sub store_queries
                if (!$overall_stat{'last_query_ts'} || ($overall_stat{'last_query_ts'} lt $cur_last_log_timestamp)) {
                        $overall_stat{'last_query_ts'} = $cur_last_log_timestamp;
                }
-               $overall_stat{'query_peak'}{$cur_last_log_timestamp}++;
+               $overall_stat{'peak'}{$cur_last_log_timestamp}{query}++;
 
                if ($graph) {
                        $per_minute_info{"$cur_day_str"}{"$cur_hour_str"}{$cur_info{$t_pid}{min}}{query}{count}++;
@@ -5831,11 +7737,23 @@ sub store_queries
                # Counter per database and application name
                if ($cur_info{$t_pid}{dbname}) {
                        $database_info{$cur_info{$t_pid}{dbname}}{count}++;
+               } else {
+                       $database_info{'unknown'}{count}++;
                }
                if ($cur_info{$t_pid}{dbappname}) {
                        $application_info{$cur_info{$t_pid}{dbappname}}{count}++;
                } else {
-                       $application_info{others}{count}++;
+                       $application_info{'unknown'}{count}++;
+               }
+               if ($cur_info{$t_pid}{dbuser}) {
+                       $user_info{$cur_info{$t_pid}{dbuser}}{count}++;
+               } else {
+                       $user_info{'unknown'}{count}++;
+               }
+               if ($cur_info{$t_pid}{dbclient}) {
+                       $host_info{$cur_info{$t_pid}{dbclient}}{count}++;
+               } else {
+                       $host_info{'unknown'}{count}++;
                }
 
                if ($cur_info{$t_pid}{query}) {
@@ -5849,15 +7767,32 @@ sub store_queries
                                if ($normalized =~ $act) {
                                        my $action = uc($1);
                                        $overall_stat{$action}++;
+                                       if ($action eq 'SELECT') {
+                                               $overall_stat{'peak'}{$cur_last_log_timestamp}{select}++;
+                                       } else {
+                                               $overall_stat{'peak'}{$cur_last_log_timestamp}{write}++;
+                                       }
                                        $per_minute_info{"$cur_day_str"}{"$cur_hour_str"}{$cur_info{$t_pid}{min}}{$action}{count}++;
                                        $per_minute_info{"$cur_day_str"}{"$cur_hour_str"}{$cur_info{$t_pid}{min}}{$action}{duration} += $cur_info{$t_pid}{duration} if ($cur_info{$t_pid}{duration});
                                        if ($cur_info{$t_pid}{dbname}) {
                                                $database_info{$cur_info{$t_pid}{dbname}}{$action}++;
+                                       } else {
+                                               $database_info{'unknown'}{$action}++;
                                        }
                                        if ($cur_info{$t_pid}{dbappname}) {
                                                $application_info{$cur_info{$t_pid}{dbappname}}{$action}++;
                                        } else {
-                                               $application_info{others}{$action}++;
+                                               $application_info{'unknown'}{$action}++;
+                                       }
+                                       if ($cur_info{$t_pid}{dbuser}) {
+                                               $user_info{$cur_info{$t_pid}{dbuser}}{count}++;
+                                       } else {
+                                               $user_info{'unknown'}{count}++;
+                                       }
+                                       if ($cur_info{$t_pid}{dbclient}) {
+                                               $host_info{$cur_info{$t_pid}{dbclient}}{count}++;
+                                       } else {
+                                               $host_info{'unknown'}{count}++;
                                        }
                                        last;
                                }
@@ -5901,7 +7836,7 @@ sub store_temporary_and_lock_infos
        return if (!$t_pid);
 
        # Store normalized query temp file size if required
-       if (exists $cur_temp_info{$t_pid} && ($cur_temp_info{$t_pid}{query} ne '') ) {
+       if (exists $cur_temp_info{$t_pid} && ($cur_temp_info{$t_pid}{query} ne '') && $cur_temp_info{$t_pid}{size}) {
 
                # Add a semi-colon at end of the query
                $cur_temp_info{$t_pid}{query} .= ';' if (substr($cur_temp_info{$t_pid}{query}, -1, 1) ne ';');
@@ -5921,11 +7856,10 @@ sub store_temporary_and_lock_infos
                }
                &set_top_tempfile_info($cur_temp_info{$t_pid}{query}, $cur_temp_info{$t_pid}{size}, $cur_temp_info{$t_pid}{timestamp}, $cur_temp_info{$t_pid}{dbname}, $cur_temp_info{$t_pid}{dbuser}, $cur_temp_info{$t_pid}{dbclient}, $cur_temp_info{$t_pid}{dbappname});
                delete $cur_temp_info{$t_pid};
-               #delete $cur_info{$t_pid};
        }
 
        # Store normalized query that waited the most if required
-       if (exists $cur_lock_info{$t_pid} && ($cur_lock_info{$t_pid}{query} ne '')) {
+       if (exists $cur_lock_info{$t_pid} && ($cur_lock_info{$t_pid}{query} ne '') && $cur_lock_info{$t_pid}{wait}) {
 
                # Add a semi-colon at end of the query
                $cur_lock_info{$t_pid}{query} .= ';' if (substr($cur_lock_info{$t_pid}{query}, -1, 1) ne ';');
@@ -5944,7 +7878,6 @@ sub store_temporary_and_lock_infos
                }
                &set_top_locked_info($cur_lock_info{$t_pid}{query}, $cur_lock_info{$t_pid}{wait}, $cur_lock_info{$t_pid}{timestamp}, $cur_lock_info{$t_pid}{dbname}, $cur_lock_info{$t_pid}{dbuser}, $cur_lock_info{$t_pid}{dbclient}, $cur_lock_info{$t_pid}{dbappname});
                delete $cur_lock_info{$t_pid};
-               #delete $cur_info{$t_pid};
        }
 
 }
@@ -6106,19 +8039,24 @@ sub flotr2_graph
 {
        my ($buttonid, $divid, $data1, $data2, $data3, $title, $ytitle, $legend1, $legend2, $legend3, $ytitle2, $data4, $legend4) = @_;
 
+       if (!$data1) {
+               return qq{
+<div id="$divid" class="flotr-graph"><blockquote><b>NO DATASET</b></blockquote></div>
+};
+       }
        $data1 = "var d1 = [$data1];" if ($data1);
        $data2 = "var d2 = [$data2];" if ($data2);
        $data3 = "var d3 = [$data3];" if ($data3);
        $data4 = "var d4 = [$data4];" if ($data4);
 
-       $legend1 = "{ data: d1, label: \"$legend1\", mouse:{track:true}},"          if ($legend1);
-       $legend2 = "{ data: d2, label: \"$legend2\", mouse:{track:true}},"          if ($legend2);
-       $legend3 = "{ data: d3, label: \"$legend3\", mouse:{track:true}},"          if ($legend3);
-       $legend4 = "{ data: d4, label: \"$legend4\",yaxis: 2}," if ($legend4);
+       $legend1 = "{ data: d1, label: \"$legend1\", color: \"#6e9dc9\", mouse:{track:true}}," if ($legend1);
+       $legend2 = "{ data: d2, label: \"$legend2\", color: \"#f4ab3a\", mouse:{track:true}}," if ($legend2);
+       $legend3 = "{ data: d3, label: \"$legend3\", color: \"#ac7fa8\", mouse:{track:true}}," if ($legend3);
+       $legend4 = "{ data: d4, label: \"$legend4\", color: \"#8dbd0f\",yaxis: 2},"            if ($legend4);
 
        my $yaxis2 = '';
        if ($ytitle2) {
-               $yaxis2 = "y2axis: { mode: \"normal\", title: \"$ytitle2\", min: 0, color: \"#4DA74D\" },";
+               $yaxis2 = "y2axis: { mode: \"normal\", title: \"$ytitle2\", min: 0, color: \"#8dbd0f\" },";
        }
 
        my $type = '';
@@ -6128,15 +8066,15 @@ sub flotr2_graph
                $type = 'duration';
        }
 
-       print $fh <<EOF;
-<div id="$divid"></div>
+       return <<EOF;
+<div id="$divid" class="flotr-graph"></div>
 <script type="text/javascript">
 /* <![CDATA[ */
 (function mouse_zoom(container) {
 
-document.writeln('<table align="center"><tr><td><input type="button" class="dldButton" value="To Image" id="toimage$buttonid" onclick="return false;" />'+
-       '<input type="button" class="dldButton" value="Download" id="download$buttonid" onclick="return false;" />' +
-       '<input type="button" class="dldButton" value="Reset" id="reset$buttonid" onclick="return false;" /></td></tr><tr><td>&nbsp;</td></tr></table>'
+document.writeln('<div class="pull-right btn-group"><input type="button" class="btn" value="To Image" id="toimage$buttonid" onclick="return false;">'+
+       '<input type="button" class="btn" value="Download" id="download$buttonid" onclick="return false;">' +
+       '<input type="button" class="btn" value="Reset" id="reset$buttonid" onclick="return false;"></div>'
        );
     $data1
     $data2
@@ -6161,10 +8099,10 @@ document.writeln('<table align="center"><tr><td><input type="button" class="dldB
             mode: "x",
             fps: 30
         },
-        title: "$title",
+       //title: "$title",
         legend: {
             position: "nw",
-            backgroundColor: "#D2E8FF",
+            backgroundColor: "#eee",
            backgroundOpacity: 0.4
         },
        mouse: {
@@ -6243,31 +8181,40 @@ sub flotr2_piegraph
 {
        my ($buttonid, $divid, $title, %data) = @_;
 
+       if (scalar keys %data == 0) {
+               return qq{
+<div id="$divid" class="flotr-graph"><blockquote><b>NO DATASET</b></blockquote></div>
+};
+
+       }
+       my @colors = ("#6e9dc9", "#f4ab3a", "#ac7fa8", "#8dbd0f");
        my @datadef = ();
        my @contdef = ();
        my $i       = 1;
        foreach my $k (sort keys %data) {
                push(@datadef, "var d$i = [ [0,$data{$k}] ];\n");
-               push(@contdef, "{ data: d$i, label: \"$k\" },\n");
+               my $color = '';
+               $color = ", color: \"$colors[$i-1]\"" if (($i-1) <= $#colors);
+               push(@contdef, "{ data: d$i, label: \"$k\"$color },\n");
                $i++;
        }
-       print $fh <<EOF;
-<div id="$divid"></div>
+
+       return <<EOF;
+<div id="$divid" class="flotr-graph"></div>
 <script type="text/javascript">
 /* <![CDATA[ */
 (function basic_pie(container) {
 
-
-document.writeln('<input type="button" class="dldButton" value="To Image" id="toimage$buttonid" onclick="return false;">'+
-       '<input type="button" class="dldButton" value="Download" id="download$buttonid" onclick="return false;">' +
-       '<input type="button" class="dldButton" value="Reset" id="reset$buttonid" onclick="return false;">'
+document.writeln('<div class="btn-group pull-right"><input type="button" class="btn" value="To Image" id="toimage$buttonid" onclick="return false;">'+
+       '<input type="button" class="btn" value="Download" id="download$buttonid" onclick="return false;">' +
+       '<input type="button" class="btn" value="Reset" id="reset$buttonid" onclick="return false;"></div>'
        );
 
     @datadef
     var graph = Flotr.draw(container, [
     @contdef
     ], {
-        title: "$title",
+        //title: "$title",
         HtmlText: false,
         grid: {
             verticalLines: false,
@@ -6291,6 +8238,7 @@ document.writeln('<input type="button" class="dldButton" value="To Image" id="to
             relative: true
         },
         legend: {
+            show: false,
             position: "sw",
             backgroundColor: "#D2E8FF",
            backgroundOpacity: 0.4
@@ -6918,6 +8866,32 @@ sub split_logfile
 
 __DATA__
 
+<style>
+
+div#littleToc { display:none; }
+html>body div#littleToc { display:block; background-color:white; color:black; position:fixed; bottom:10px; right:10px; width:50px; font-size:11px; text-align:left; border:0px; }
+div#littleToc div#littleTocTitle { font-weight:bold; text-align:center;padding:2px; }
+div#littleToc ul { padding:0px; text-indent:0px; margin:0px; }
+div#littleToc li { font-size:11px; list-style-type:none; padding:0px; text-indent:0px; margin:0px; }
+div#littleToc a { color:#000000; padding:2px; margin:2px; display:block; text-decoration:none; border:1px solid #CCCCCC; }
+div#littleToc a:hover { text-decoration:none; background-color:#DDDDDD; }
+
+.flotr-graph { color: #ac1316; }
+.sql  {font-family:monospace;}
+.sql .imp {font-weight: bold; color: red;}
+.sql .kw1 {color: #993333; font-weight: bold; text-transform: uppercase;}
+.sql .kw2 {color: #993333; font-style: italic;}
+.sql .kw3 {color: #993333; text-transform: uppercase;}
+.sql .co1 {color: #808080; font-style: italic;}
+.sql .co2 {color: #808080; font-style: italic;}
+.sql .coMULTI {color: #808080; font-style: italic;}
+.sql .es0 {color: #000099; font-weight: bold;}
+.sql .br0 {color: #66cc66;}
+.sql .sy0 {color: #000000;}
+.sql .st0 {color: #ff0000;}
+.sql .nu0 {color: #cc66cc;}
+.sql span.xtra { display:block; }
+</style>
 <script type="text/javascript">
 /* <![CDATA[ */
 function sql_format (obj)
@@ -7020,3 +8994,1212 @@ function pieTracker(obj)
 /* ]]> */
 </script>
 
+<script>
+/* pgbadger-4 code addon */
+</script>
+   <meta name="viewport" content="user-scalable=no, initial-scale = 1, minimum-scale = 1, maximum-scale = 1, width=device-width">
+   <style type="text/css">
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
+.clearfix:after{clear:both;}
+.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
+article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
+audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
+audio:not([controls]){display:none;}
+html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:hover,a:active{outline:0;}
+sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
+sup{top:-0.5em;}
+sub{bottom:-0.25em;}
+img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
+#map_canvas img,.google-maps img{max-width:none;}
+button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
+button,input{*overflow:visible;line-height:normal;}
+button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
+label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;}
+input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
+input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
+textarea{overflow:auto;vertical-align:top;}
+@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:0.5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;}}body{margin:0;font-family:Verdana,sans-serif;font-size:12px;line-height:20px;color:#333333;background-color:#ffffff;}
+a{color:#2e8aa5;text-decoration:none;}
+a:hover,a:focus{color:#1d5869;text-decoration:underline;}
+.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
+.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
+.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
+.row:after{clear:both;}
+[class*="span"]{float:left;min-height:1px;margin-left:20px;}
+.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.span12{width:940px;}
+.span11{width:860px;}
+.span10{width:780px;}
+.span9{width:700px;}
+.span8{width:620px;}
+.span7{width:540px;}
+.span6{width:460px;}
+.span5{width:380px;}
+.span4{width:300px;}
+.span3{width:220px;}
+.span2{width:140px;}
+.span1{width:60px;}
+.offset12{margin-left:980px;}
+.offset11{margin-left:900px;}
+.offset10{margin-left:820px;}
+.offset9{margin-left:740px;}
+.offset8{margin-left:660px;}
+.offset7{margin-left:580px;}
+.offset6{margin-left:500px;}
+.offset5{margin-left:420px;}
+.offset4{margin-left:340px;}
+.offset3{margin-left:260px;}
+.offset2{margin-left:180px;}
+.offset1{margin-left:100px;}
+.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
+.row-fluid:after{clear:both;}
+.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
+.row-fluid [class*="span"]:first-child{margin-left:0;}
+.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
+.row-fluid .span12{width:100%;*width:99.94680851063829%;}
+.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
+.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
+.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
+.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
+.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
+.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
+.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
+.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
+.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
+.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
+.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
+.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
+.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
+.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
+.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
+.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
+.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
+.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
+.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
+.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
+.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
+.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
+.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
+.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
+.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
+.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
+.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
+.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
+.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
+.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
+.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
+.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
+.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
+.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
+.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
+[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
+[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
+.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
+.container:after{clear:both;}
+.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
+.container-fluid:after{clear:both;}
+p{margin:0 0 10px;}
+.lead{margin-bottom:20px;font-size:18px;font-weight:200;line-height:30px;}
+small{font-size:85%;}
+strong{font-weight:bold;}
+em{font-style:italic;}
+cite{font-style:normal;}
+.muted{color:#999999;}
+a.muted:hover,a.muted:focus{color:#808080;}
+.text-panic{color:#000000; font-weight: bold};
+a.text-panic:hover,a.text-panic:focus{color:#000000;}
+.text-fatal{color:#7c0208;}
+a.text-fatal:hover,a.text-fatal:focus{color:#444444;}
+.text-warning{color:#c09853;}
+a.text-warning:hover,a.text-warning:focus{color:#a47e3c;}
+.text-error{color:#b94a48;}
+a.text-error:hover,a.text-error:focus{color:#953b39;}
+.text-info{color:#3a87ad;}
+a.text-info:hover,a.text-info:focus{color:#2d6987;}
+.text-success{color:#468847;}
+a.text-success:hover,a.text-success:focus{color:#356635;}
+.text-left{text-align:left;}
+.text-right{text-align:right;}
+.text-center{text-align:center;}
+h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;}
+h1,h2,h3{line-height:40px;}
+h1{font-size:33px;}
+h2{font-size:27px;}
+h3{font-size:21px;}
+h4{font-size:15px;}
+h5{font-size:12px;}
+h6{font-size:10.2px;}
+h1 small{font-size:21px;}
+h2 small{font-size:15px;}
+h3 small{font-size:12px;}
+h4 small{font-size:12px;}
+.page-header{padding-bottom:9px;margin:50px 0 30px;border-bottom:1px solid #eeeeee;}
+ul,ol{padding:0;margin:0 0 10px 25px;}
+ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
+li{line-height:20px;}
+ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
+ul.inline,ol.inline{margin-left:0;list-style:none;}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px;}
+dl{margin-bottom:20px;}
+dt,dd{line-height:20px;}
+dt{font-weight:bold;}
+dd{margin-left:10px;}
+.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
+.dl-horizontal:after{clear:both;}
+.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.dl-horizontal dd{margin-left:180px;}
+hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
+abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
+abbr.initialism{font-size:90%;text-transform:uppercase;}
+blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:15px;font-weight:300;line-height:1.25;}
+blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
+blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
+blockquote.pull-right small:before{content:'';}
+blockquote.pull-right small:after{content:'\00A0 \2014';}
+q:before,q:after,blockquote:before,blockquote:after{content:"";}
+address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}
+code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:10px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;}
+pre{display:block;padding:9.5px;margin:0 0 10px;font-size:11px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
+pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;}
+.pre-scrollable{max-height:340px;overflow-y:scroll;}
+.label,.badge{display:inline-block;padding:2px 4px;font-size:10.152px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;}
+.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
+.label:empty,.badge:empty{display:none;}
+a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
+.label-important,.badge-important{background-color:#b94a48;}
+.label-important[href],.badge-important[href]{background-color:#953b39;}
+.label-warning,.badge-warning{background-color:#ea8157;}
+.label-warning[href],.badge-warning[href]{background-color:#e45f2a;}
+.label-success,.badge-success{background-color:#468847;}
+.label-success[href],.badge-success[href]{background-color:#356635;}
+.label-info,.badge-info{background-color:#3a87ad;}
+.label-info[href],.badge-info[href]{background-color:#2d6987;}
+.label-inverse,.badge-inverse{background-color:#333333;}
+.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;}
+.btn .label,.btn .badge{position:relative;top:-1px;}
+.btn-mini .label,.btn-mini .badge{top:0;}
+table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
+.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd;}
+.table th{font-weight:bold;}
+.table thead th{vertical-align:bottom;}
+.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
+.table tbody+tbody{border-top:2px solid #5f5555;}
+.table .table{background-color:#ffffff;}
+.table-condensed th,.table-condensed td{padding:4px 5px;}
+.table-bordered{border:1px solid #5f5555;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #5f5555;}
+.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
+.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
+.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
+.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;}
+.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;}
+.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
+.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
+.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:transparent;}
+.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5;}
+table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;}
+.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}
+.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;}
+.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}
+.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;}
+.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}
+.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;}
+.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}
+.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;}
+.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}
+.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;}
+.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}
+.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;}
+.table tbody tr.success>td{background-color:#dff0d8;}
+.table tbody tr.error>td{background-color:#f2dede;}
+.table tbody tr.warning>td{background-color:#fcf8e3;}
+.table tbody tr.info>td{background-color:#d9edf7;}
+.table-hover tbody tr.success:hover>td{background-color:#d0e9c6;}
+.table-hover tbody tr.error:hover>td{background-color:#ebcccc;}
+.table-hover tbody tr.warning:hover>td{background-color:#faf2cc;}
+.table-hover tbody tr.info:hover>td{background-color:#c4e3f3;}
+form{margin:0 0 20px;}
+fieldset{padding:0;margin:0;border:0;}
+legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:18px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;}
+label,input,button,select,textarea{font-size:12px;font-weight:normal;line-height:20px;}
+input,button,select,textarea{font-family:Verdana,sans-serif;}
+label{display:block;margin-bottom:5px;}
+select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:12px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;}
+input,textarea,.uneditable-input{width:206px;}
+textarea{height:auto;}
+textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
+input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;}
+input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;}
+select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}
+select{width:220px;border:1px solid #cccccc;background-color:#ffffff;}
+select[multiple],select[size]{height:auto;}
+select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
+.uneditable-input{overflow:hidden;white-space:nowrap;}
+.uneditable-textarea{width:auto;height:auto;}
+input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
+input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
+input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
+.radio,.checkbox{min-height:20px;padding-left:20px;}
+.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;}
+.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
+.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
+.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
+.input-mini{width:60px;}
+.input-small{width:90px;}
+.input-medium{width:150px;}
+.input-large{width:210px;}
+.input-xlarge{width:270px;}
+.input-xxlarge{width:530px;}
+input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
+.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;}
+input,textarea,.uneditable-input{margin-left:0;}
+.controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
+input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
+input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
+input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
+input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
+input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
+input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
+input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
+input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
+input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
+input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
+input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
+input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
+.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
+.controls-row:after{clear:both;}
+.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;}
+.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;}
+input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;}
+input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
+.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
+.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
+.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
+.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
+.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
+.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
+.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
+.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
+.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
+.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
+.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
+.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
+.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
+.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
+.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
+.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
+input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
+.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
+.form-actions:after{clear:both;}
+.help-block,.help-inline{color:#595959;}
+.help-block{display:block;margin-bottom:10px;}
+.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
+.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:12px;}
+.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;}
+.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:12px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;}
+.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.input-append .active,.input-prepend .active{background-color:#67f5ab;border-color:#0cb75e;}
+.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
+.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;}
+.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-prepend.input-append .btn-group:first-child{margin-left:0;}
+input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
+.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
+.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
+.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
+.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
+.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;}
+.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
+.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;}
+.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
+.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
+.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
+.control-group{margin-bottom:10px;}
+legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;}
+.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
+.form-horizontal .control-group:after{clear:both;}
+.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;}
+.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;}
+.form-horizontal .help-block{margin-bottom:0;}
+.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;}
+.form-horizontal .form-actions{padding-left:180px;}
+.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:12px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
+.btn:active,.btn.active{background-color:#cccccc \9;}
+.btn:first-child{*margin-left:0;}
+.btn:hover,.btn:focus{color:#333333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
+.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+.btn-large{padding:11px 19px;font-size:15px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;}
+.btn-small{padding:2px 10px;font-size:10.2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;}
+.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;}
+.btn-mini{padding:0 6px;font-size:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
+.btn-block+.btn-block{margin-top:5px;}
+input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
+.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
+.btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#2e7aa5;background-image:-moz-linear-gradient(top, #2e8aa5, #2e62a5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#2e8aa5), to(#2e62a5));background-image:-webkit-linear-gradient(top, #2e8aa5, #2e62a5);background-image:-o-linear-gradient(top, #2e8aa5, #2e62a5);background-image:linear-gradient(to bottom, #2e8aa5, #2e62a5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2e8aa5', endColorstr='#ff2e62a5', GradientType=0);border-color:#2e62a5 #2e62a5 #1d3f69;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2e62a5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#2e62a5;*background-color:#285691;}
+.btn-primary:active,.btn-primary.active{background-color:#234b7d \9;}
+.btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#efa080;background-image:-moz-linear-gradient(top, #f3b49b, #ea8157);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f3b49b), to(#ea8157));background-image:-webkit-linear-gradient(top, #f3b49b, #ea8157);background-image:-o-linear-gradient(top, #f3b49b, #ea8157);background-image:linear-gradient(to bottom, #f3b49b, #ea8157);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff3b49b', endColorstr='#ffea8157', GradientType=0);border-color:#ea8157 #ea8157 #d9521b;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#ea8157;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#ea8157;*background-color:#e77040;}
+.btn-warning:active,.btn-warning.active{background-color:#e45f2a \9;}
+.btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
+.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
+.btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
+.btn-success:active,.btn-success.active{background-color:#408140 \9;}
+.btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
+.btn-info:active,.btn-info.active{background-color:#24748c \9;}
+.btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
+.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
+button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
+button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
+button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
+button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
+.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+.btn-link{border-color:transparent;cursor:pointer;color:#2e8aa5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-link:hover,.btn-link:focus{color:#1d5869;text-decoration:underline;background-color:transparent;}
+.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333333;text-decoration:none;}
+[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px;}
+.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png");}
+.icon-glass{background-position:0 0;}
+.icon-music{background-position:-24px 0;}
+.icon-search{background-position:-48px 0;}
+.icon-envelope{background-position:-72px 0;}
+.icon-heart{background-position:-96px 0;}
+.icon-star{background-position:-120px 0;}
+.icon-star-empty{background-position:-144px 0;}
+.icon-user{background-position:-168px 0;}
+.icon-film{background-position:-192px 0;}
+.icon-th-large{background-position:-216px 0;}
+.icon-th{background-position:-240px 0;}
+.icon-th-list{background-position:-264px 0;}
+.icon-ok{background-position:-288px 0;}
+.icon-remove{background-position:-312px 0;}
+.icon-zoom-in{background-position:-336px 0;}
+.icon-zoom-out{background-position:-360px 0;}
+.icon-off{background-position:-384px 0;}
+.icon-signal{background-position:-408px 0;}
+.icon-cog{background-position:-432px 0;}
+.icon-trash{background-position:-456px 0;}
+.icon-home{background-position:0 -24px;}
+.icon-file{background-position:-24px -24px;}
+.icon-time{background-position:-48px -24px;}
+.icon-road{background-position:-72px -24px;}
+.icon-download-alt{background-position:-96px -24px;}
+.icon-download{background-position:-120px -24px;}
+.icon-upload{background-position:-144px -24px;}
+.icon-inbox{background-position:-168px -24px;}
+.icon-play-circle{background-position:-192px -24px;}
+.icon-repeat{background-position:-216px -24px;}
+.icon-refresh{background-position:-240px -24px;}
+.icon-list-alt{background-position:-264px -24px;}
+.icon-lock{background-position:-287px -24px;}
+.icon-flag{background-position:-312px -24px;}
+.icon-headphones{background-position:-336px -24px;}
+.icon-volume-off{background-position:-360px -24px;}
+.icon-volume-down{background-position:-384px -24px;}
+.icon-volume-up{background-position:-408px -24px;}
+.icon-qrcode{background-position:-432px -24px;}
+.icon-barcode{background-position:-456px -24px;}
+.icon-tag{background-position:0 -48px;}
+.icon-tags{background-position:-25px -48px;}
+.icon-book{background-position:-48px -48px;}
+.icon-bookmark{background-position:-72px -48px;}
+.icon-print{background-position:-96px -48px;}
+.icon-camera{background-position:-120px -48px;}
+.icon-font{background-position:-144px -48px;}
+.icon-bold{background-position:-167px -48px;}
+.icon-italic{background-position:-192px -48px;}
+.icon-text-height{background-position:-216px -48px;}
+.icon-text-width{background-position:-240px -48px;}
+.icon-align-left{background-position:-264px -48px;}
+.icon-align-center{background-position:-288px -48px;}
+.icon-align-right{background-position:-312px -48px;}
+.icon-align-justify{background-position:-336px -48px;}
+.icon-list{background-position:-360px -48px;}
+.icon-indent-left{background-position:-384px -48px;}
+.icon-indent-right{background-position:-408px -48px;}
+.icon-facetime-video{background-position:-432px -48px;}
+.icon-picture{background-position:-456px -48px;}
+.icon-pencil{background-position:0 -72px;}
+.icon-map-marker{background-position:-24px -72px;}
+.icon-adjust{background-position:-48px -72px;}
+.icon-tint{background-position:-72px -72px;}
+.icon-edit{background-position:-96px -72px;}
+.icon-share{background-position:-120px -72px;}
+.icon-check{background-position:-144px -72px;}
+.icon-move{background-position:-168px -72px;}
+.icon-step-backward{background-position:-192px -72px;}
+.icon-fast-backward{background-position:-216px -72px;}
+.icon-backward{background-position:-240px -72px;}
+.icon-play{background-position:-264px -72px;}
+.icon-pause{background-position:-288px -72px;}
+.icon-stop{background-position:-312px -72px;}
+.icon-forward{background-position:-336px -72px;}
+.icon-fast-forward{background-position:-360px -72px;}
+.icon-step-forward{background-position:-384px -72px;}
+.icon-eject{background-position:-408px -72px;}
+.icon-chevron-left{background-position:-432px -72px;}
+.icon-chevron-right{background-position:-456px -72px;}
+.icon-plus-sign{background-position:0 -96px;}
+.icon-minus-sign{background-position:-24px -96px;}
+.icon-remove-sign{background-position:-48px -96px;}
+.icon-ok-sign{background-position:-72px -96px;}
+.icon-question-sign{background-position:-96px -96px;}
+.icon-info-sign{background-position:-120px -96px;}
+.icon-screenshot{background-position:-144px -96px;}
+.icon-remove-circle{background-position:-168px -96px;}
+.icon-ok-circle{background-position:-192px -96px;}
+.icon-ban-circle{background-position:-216px -96px;}
+.icon-arrow-left{background-position:-240px -96px;}
+.icon-arrow-right{background-position:-264px -96px;}
+.icon-arrow-up{background-position:-289px -96px;}
+.icon-arrow-down{background-position:-312px -96px;}
+.icon-share-alt{background-position:-336px -96px;}
+.icon-resize-full{background-position:-360px -96px;}
+.icon-resize-small{background-position:-384px -96px;}
+.icon-plus{background-position:-408px -96px;}
+.icon-minus{background-position:-433px -96px;}
+.icon-asterisk{background-position:-456px -96px;}
+.icon-exclamation-sign{background-position:0 -120px;}
+.icon-gift{background-position:-24px -120px;}
+.icon-leaf{background-position:-48px -120px;}
+.icon-fire{background-position:-72px -120px;}
+.icon-eye-open{background-position:-96px -120px;}
+.icon-eye-close{background-position:-120px -120px;}
+.icon-warning-sign{background-position:-144px -120px;}
+.icon-plane{background-position:-168px -120px;}
+.icon-calendar{background-position:-192px -120px;}
+.icon-random{background-position:-216px -120px;width:16px;}
+.icon-comment{background-position:-240px -120px;}
+.icon-magnet{background-position:-264px -120px;}
+.icon-chevron-up{background-position:-288px -120px;}
+.icon-chevron-down{background-position:-313px -119px;}
+.icon-retweet{background-position:-336px -120px;}
+.icon-shopping-cart{background-position:-360px -120px;}
+.icon-folder-close{background-position:-384px -120px;width:16px;}
+.icon-folder-open{background-position:-408px -120px;width:16px;}
+.icon-resize-vertical{background-position:-432px -119px;}
+.icon-resize-horizontal{background-position:-456px -118px;}
+.icon-hdd{background-position:0 -144px;}
+.icon-bullhorn{background-position:-24px -144px;}
+.icon-bell{background-position:-48px -144px;}
+.icon-certificate{background-position:-72px -144px;}
+.icon-thumbs-up{background-position:-96px -144px;}
+.icon-thumbs-down{background-position:-120px -144px;}
+.icon-hand-right{background-position:-144px -144px;}
+.icon-hand-left{background-position:-168px -144px;}
+.icon-hand-up{background-position:-192px -144px;}
+.icon-hand-down{background-position:-216px -144px;}
+.icon-circle-arrow-right{background-position:-240px -144px;}
+.icon-circle-arrow-left{background-position:-264px -144px;}
+.icon-circle-arrow-up{background-position:-288px -144px;}
+.icon-circle-arrow-down{background-position:-312px -144px;}
+.icon-globe{background-position:-336px -144px;}
+.icon-wrench{background-position:-360px -144px;}
+.icon-tasks{background-position:-384px -144px;}
+.icon-filter{background-position:-408px -144px;}
+.icon-briefcase{background-position:-432px -144px;}
+.icon-fullscreen{background-position:-456px -144px;}
+.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;}
+.btn-group+.btn-group{margin-left:5px;}
+.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;}
+.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-group>.btn+.btn{margin-left:-1px;}
+.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:12px;}
+.btn-group>.btn-mini{font-size:9px;}
+.btn-group>.btn-small{font-size:10.2px;}
+.btn-group>.btn-large{font-size:15px;}
+.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
+.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
+.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
+.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
+.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;}
+.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;}
+.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;}
+.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;}
+.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
+.btn-group.open .btn-primary.dropdown-toggle{background-color:#2e62a5;}
+.btn-group.open .btn-warning.dropdown-toggle{background-color:#ea8157;}
+.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
+.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
+.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
+.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
+.btn .caret{margin-top:8px;margin-left:0;}
+.btn-large .caret{margin-top:6px;}
+.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;}
+.btn-mini .caret,.btn-small .caret{margin-top:8px;}
+.dropup .btn-large .caret{border-bottom-width:5px;}
+.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.btn-group-vertical{display:inline-block;*display:inline;*zoom:1;}
+.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;}
+.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}
+.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
+.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;}
+.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
+.nav{margin-left:0;margin-bottom:20px;list-style:none;}
+.nav>li>a{display:block;}
+.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
+.nav>li>a>img{max-width:none;}
+.nav>.pull-right{float:right;}
+.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
+.nav li+.nav-header{margin-top:9px;}
+.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
+.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
+.nav-list>li>a{padding:3px 15px;}
+.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#2e8aa5;}
+.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}
+.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
+.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
+.nav-tabs:after,.nav-pills:after{clear:both;}
+.nav-tabs>li,.nav-pills>li{float:left;}
+.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
+.nav-tabs{border-bottom:1px solid #ddd;}
+.nav-tabs>li{margin-bottom:-1px;}
+.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #dddddd;}
+.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
+.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
+.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#ffffff;background-color:#2e8aa5;}
+.nav-stacked>li{float:none;}
+.nav-stacked>li>a{margin-right:0;}
+.nav-tabs.nav-stacked{border-bottom:0;}
+.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
+.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;}
+.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
+.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
+.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
+.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.nav .dropdown-toggle .caret{border-top-color:#2e8aa5;border-bottom-color:#2e8aa5;margin-top:6px;}
+.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#1d5869;border-bottom-color:#1d5869;}
+.nav-tabs .dropdown-toggle .caret{margin-top:8px;}
+.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;}
+.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
+.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;}
+.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#ffffff;background-color:#999999;border-color:#999999;}
+.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
+.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999999;}
+.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
+.tabbable:after{clear:both;}
+.tab-content{overflow:auto;}
+.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
+.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
+.tab-content>.active,.pill-content>.active{display:block;}
+.tabs-below>.nav-tabs{border-top:1px solid #ddd;}
+.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
+.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;}
+.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;}
+.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
+.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
+.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
+.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
+.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
+.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
+.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
+.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
+.nav>.disabled>a{color:#999999;}
+.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;}
+.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}
+.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
+.navbar-inner:after{clear:both;}
+.navbar .container{width:auto;}
+.nav-collapse.collapse{height:auto;overflow:visible;}
+.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;}
+.navbar-text{margin-bottom:0;line-height:40px;color:#777777;}
+.navbar-link{color:#777777;}.navbar-link:hover,.navbar-link:focus{color:#333333;}
+.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;}
+.navbar .btn,.navbar .btn-group{margin-top:5px;}
+.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;}
+.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
+.navbar-form:after{clear:both;}
+.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
+.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;}
+.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
+.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
+.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:Verdana,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
+.navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
+.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
+.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}
+.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.navbar-fixed-top{top:0;}
+.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);}
+.navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);}
+.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
+.navbar .nav.pull-right{float:right;margin-right:0;}
+.navbar .nav>li{float:left;}
+.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;}
+.navbar .nav .dropdown-toggle .caret{margin-top:8px;}
+.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;}
+.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);}
+.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
+.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
+.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
+.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
+.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
+.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
+.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
+.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
+.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
+.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;}
+.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;}
+.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
+.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;}
+.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;}
+.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
+.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;}
+.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#ffffff;}
+.navbar-inverse .brand{color:#999999;}
+.navbar-inverse .navbar-text{color:#999999;}
+.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;}
+.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;}
+.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#ffffff;}
+.navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;}
+.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;}
+.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;}
+.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
+.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
+.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
+.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
+.navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
+.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#12576B \9;}
+.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}.breadcrumb>li>.divider{padding:0 5px;color:#ccc;}
+.breadcrumb>.active{color:#999999;}
+.pagination{margin:20px 0;}
+.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
+.pagination ul>li{display:inline;}
+.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;}
+.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;}
+.pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;}
+.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999999;background-color:transparent;cursor:default;}
+.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.pagination-centered{text-align:center;}
+.pagination-right{text-align:right;}
+.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:15px;}
+.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
+.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
+.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;}
+.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;}
+.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:10.2px;}
+.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:9px;}
+.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;}
+.pager:after{clear:both;}
+.pager li{display:inline;}
+.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
+.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5;}
+.pager .next>a,.pager .next>span{float:right;}
+.pager .previous>a,.pager .previous>span{float:left;}
+.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#fff;cursor:default;}
+.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
+.thumbnails:after{clear:both;}
+.row-fluid .thumbnails{margin-left:0;}
+.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;}
+.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
+a.thumbnail:hover,a.thumbnail:focus{border-color:#2e8aa5;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
+.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;}
+.thumbnail .caption{padding:9px;color:#555555;}
+.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.alert,.alert h4{color:#c09853;}
+.alert h4{margin:0;}
+.alert .close{position:relative;top:-2px;right:-21px;line-height:20px;}
+.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}
+.alert-success h4{color:#468847;}
+.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}
+.alert-danger h4,.alert-error h4{color:#b94a48;}
+.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}
+.alert-info h4{color:#3a87ad;}
+.alert-block{padding-top:14px;padding-bottom:14px;}
+.alert-block>p,.alert-block>ul{margin-bottom:0;}
+.alert-block p+p{margin-top:5px;}
+@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
+.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);}
+.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
+.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
+.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);}
+.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);}
+.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);}
+.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-warning .bar,.progress .bar-warning{background-color:#efa080;background-image:-moz-linear-gradient(top, #f3b49b, #ea8157);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f3b49b), to(#ea8157));background-image:-webkit-linear-gradient(top, #f3b49b, #ea8157);background-image:-o-linear-gradient(top, #f3b49b, #ea8157);background-image:linear-gradient(to bottom, #f3b49b, #ea8157);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff3b49b', endColorstr='#ffea8157', GradientType=0);}
+.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#f3b49b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
+.hero-unit li{line-height:30px;}
+.media,.media-body{overflow:hidden;*overflow:visible;zoom:1;}
+.media,.media .media{margin-top:15px;}
+.media:first-child{margin-top:0;}
+.media-object{display:block;}
+.media-heading{margin:0 0 5px;}
+.media>.pull-left{margin-right:10px;}
+.media>.pull-right{margin-left:10px;}
+.media-list{margin-left:0;list-style:none;}
+.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
+.tooltip.top{margin-top:-3px;padding:5px 0;}
+.tooltip.right{margin-left:3px;padding:0 5px;}
+.tooltip.bottom{margin-top:3px;padding:5px 0;}
+.tooltip.left{margin-left:-3px;padding:0 5px;}
+.tooltip-inner{max-width:200px;padding:8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
+.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
+.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
+.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
+.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
+.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:500px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
+.popover.right{margin-left:10px;}
+.popover.bottom{margin-top:10px;}
+.popover.left{margin-left:-10px;}
+.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}.popover-title:empty{display:none;}
+.popover-content{padding:9px 14px;}
+.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
+.popover .arrow{border-width:11px;}
+.popover .arrow:after{border-width:10px;content:"";}
+.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
+.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
+.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
+.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
+.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
+.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
+.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
+.modal.fade.in{top:10%;}
+.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
+.modal-header h3{margin:0;line-height:30px;}
+.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}
+.modal-form{margin-bottom:0;}
+.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
+.modal-footer:after{clear:both;}
+.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
+.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
+.modal-footer .btn-block+.btn-block{margin-left:0;}
+.dropup,.dropdown{position:relative;}
+.dropdown-toggle{*margin-bottom:-3px;}
+.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
+.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
+.dropdown .caret{margin-top:8px;margin-left:2px;}
+.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
+.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
+.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#5f5555;white-space:nowrap;}
+.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#ffffff;background-color:#5a5050;background-image:-moz-linear-gradient(top, #5f5555, #524949);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5f5555), to(#524949));background-image:-webkit-linear-gradient(top, #5f5555, #524949);background-image:-o-linear-gradient(top, #5f5555, #524949);background-image:linear-gradient(to bottom, #5f5555, #524949);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5f5555', endColorstr='#ff524949', GradientType=0);}
+.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2c839d;background-image:-moz-linear-gradient(top, #2e8aa5, #287991);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#2e8aa5), to(#287991));background-image:-webkit-linear-gradient(top, #2e8aa5, #287991);background-image:-o-linear-gradient(top, #2e8aa5, #287991);background-image:linear-gradient(to bottom, #2e8aa5, #287991);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2e8aa5', endColorstr='#ff287991', GradientType=0);}
+.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
+.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;}
+.open{*z-index:1000;}.open>.dropdown-menu{display:block;}
+.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
+.pull-right>.dropdown-menu{right:0;left:auto;}
+.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
+.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
+.dropdown-submenu{position:relative;}
+.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
+.dropdown-submenu:hover>.dropdown-menu{display:block;}
+.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
+.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
+.dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
+.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
+.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
+.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.accordion{margin-bottom:20px;}
+.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.accordion-heading{border-bottom:0;}
+.accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
+.accordion-toggle{cursor:pointer;}
+.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
+.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
+.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
+button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
+.pull-right{float:right;}
+.pull-left{float:left;}
+.hide{display:none;}
+.show{display:block;}
+.invisible{visibility:hidden;}
+.affix{position:fixed;}
+.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
+.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
+@-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;}
+.visible-phone{display:none !important;}
+.visible-tablet{display:none !important;}
+.hidden-desktop{display:none !important;}
+.visible-desktop{display:inherit !important;}
+@media (min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important ;} .visible-tablet{display:inherit !important;} .hidden-tablet{display:none !important;}}@media (max-width:767px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important;} .visible-phone{display:inherit !important;} .hidden-phone{display:none !important;}}.visible-print{display:none !important;}
+@media print{.visible-print{display:inherit !important;} .hidden-print{display:none !important;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} .thumbnails>li{float:none;margin-left:0;} [class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .row-fluid [class*="offset"]:first-child{margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} .controls-row [class*="span"]+[class*="span"]{margin-left:0;} .modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}.modal.fade{top:-100px;} .modal.fade.in{top:20px;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:20px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} .media-object{margin-right:0;margin-left:0;} .modal{top:10px;left:10px;right:10px;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top,.navbar-fixed-bottom{position:static;} .navbar-fixed-top{margin-bottom:20px;} .navbar-fixed-bottom{margin-top:20px;} .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .nav-collapse{clear:both;} .nav-collapse .nav{float:none;margin:0 0 10px;} .nav-collapse .nav>li{float:none;} .nav-collapse .nav>li>a{margin-bottom:2px;} .nav-collapse .nav>.divider-vertical{display:none;} .nav-collapse .nav .nav-header{color:#777777;text-shadow:none;} .nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} .nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999999;} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111111;} .nav-collapse.in .btn-group{margin-top:5px;padding:0;} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .nav-collapse .open>.dropdown-menu{display:block;} .nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} .nav-collapse .dropdown-menu .divider{display:none;} .nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} .nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);} .navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111111;border-bottom-color:#111111;} .navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;} .nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} .navbar .btn-navbar{display:block;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}
+/*!
+ * Bootstrap Responsive v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:979px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
+/*!
+ *  Font Awesome 3.1.0
+ *  the iconic font designed for Bootstrap
+ *  -------------------------------------------------------
+ *  The full suite of pictographic icons, examples, and documentation
+ *  can be found at: http://fontawesome.io
+ *
+ *  License
+ *  -------------------------------------------------------
+ *  - The Font Awesome font is licensed under the SIL Open Font License v1.1 -
+ *    http://scripts.sil.org/OFL
+ *  - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
+ *    http://opensource.org/licenses/mit-license.html
+ *  - Font Awesome documentation licensed under CC BY 3.0 License -
+ *    http://creativecommons.org/licenses/by/3.0/
+ *  - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
+ *    "Font Awesome by Dave Gandy - http://fontawesome.io"
+
+ *  Contact
+ *  -------------------------------------------------------
+ *  Email: dave@fontawesome.io
+ *  Twitter: http://twitter.com/fortaweso_me
+ *  Work: Lead Product Designer @ http://kyruus.com
+ */
+
+
+    @font-face{font-family:'FontAwesome';
+       src:url('font/fontawesome-webfont.eot?v=3.1.0');
+     src:url("data:font/opentype;charset=utf-8;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAsAAwAKAAIDgABwAcAAAAaAAHYFgAAABAAAXwcAAAAHAAAABwAAAAcAAAAHAAAABYAAAAcAAAAHAABdBgAAAAaAAAAHAAAABwAAAAaAAAAGgAAABYAAAAeAAAAGgAAABwAAAAcAAAAHAAB5BYAAbgaAAAAGgAAABgAAAAcAAAAGAAAABYAAAAaAABoFAAAABgAAAAeAADIGgAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABwAAAASAAAAHAABABoAAAAMAAAAEgAAABoAAAAWAAAAHAAAABgAAAAeAAAAGgP//BQAAAAaAAAAHgAAABoAAAAWAAAAEAAAABwAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAeAAAAGAAAABAAAAAYAAAAEAAAABwAAAAaAAAAGgAAABwAAAAQAAAAHAAAABoAAegWAAAAGAAAABgAAAAaAAAAHAAAABAAAAAYC//8EgAA1BIAAdQYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAABABgAAAAaAADUGgAA1BwAAAAYAAAAGAAANBgAAAAYAAAAHAAAABYAAAAcAAAAHAAAABwAAAAWAAAAGgAAABwAAAAcAAAAGAAAABoAANQaAADUHgAAABoAAAAaAAAAHgAAAAwAAQAcAAAAHgAAABgAAAAYAAAAHAAAABwAAAAeAAAAHAAAABgAAAAYAAAADgAAABwAAAAaAAAAGAAAABIAAAAcAAAAGAAAABoAAAAYAAAAGgAAABgAAAAWAAAAFgAAABQAAAAYAAAAGgAAsAwAAAAYAAAAGgAAAB4AAAAWAAAAGAAAABwAAAAaAAAAGAP//BwAAAAcAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABoAAFQcAAAAFgAAABwAAAAYAAAAHAAAABwAAAAcAAAAHgAAABoAAEAeAAAAGgABmBwAAAAcAAAAFgAAEBgAAAAYAAAAGAAAABwAAAAcAAA8HAAAABgAAAAaAAAAGgAAbBwAAQAYAAAAGAAAABgAAAAaAAAAHgAAABAAAAAQAAAACgABAAoAAAAaAAAAEAAAABAAAAAQAAAAHAAAABgAAAAYAAAAHAAAoBwAAAAcAAAAHAAAAA4AAAAcAAAAGgAAABwAAAAQAAAAHAAAAB4AAAAeAAAAFgAAABYAAAAcAAAAGgAAAB4AAAAWAAAAFAAAABYAAAAWAAAAHgABABwAAAAeAAAAGgABABgAAAAYAAAAEAAAtBAAADQSAAE0EgABNAoAALQKAAA0EgABNBIAATQeAAAAHgAAABIAAAAMAAAAGAAAABoAAAAaAAAAGIAAABgAAAAcAAAAGgAAABoAAAAeAAAAEgAAABIAAAAYAAAAGAAAABgAAAAeAAAAHgAAABwAAQAcAAEAGgAANB4AALQcAAAAGgAAABYAAAAaAAAAEAAAABoAAAAKAAAACgABiBgAABQYAAAUHgAAABoAAAASAAAAFgAANBQAAAAaAAAAFgAAABoAAIAcAAAAGAAAABgAAAAYAAAAGAAAABYAAAAcAAAwHAAAABIAAAAYAAAAFgAAAAYAAAAYAAAAGAAAABwAANQYAAAAFgAAABAAAAAQAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAQAAAAEAAAABAAALQOCAAAEAwAABoAAHAcAAAAFAAA4BQAAAAUAAAAGgAAfBoAAHwcAAB8HAAAfBgAAHwYAAB8GgAAABoAAAAYAAAAGAAAbBYAAAAYAAAAHAAAABwAAQAWAAAAGAAAABgAAAAYAAAAFgAAABgAAAAQAAE4GAAAAAwAAAAMAAAAHAABABwAAAAWAAAAGgAAABYAAAAYAAAYGAAAABgAAAAaA//8GAAAABQAAAAQAAAAGAAAABwAAKgYAAAAHAABABoAAIAeA//8HAAAAB4AAAAcAAAAAAAAAAAMAAAAAAAD/egBaAAAAAAAAAAAAAAAAAAAAAAAAAAABAAQCAAEBAQxGb250QXdlc29tZQABAQFE+BAA+YUB+YYC+YYD+BkE+0cMA+UMBIr7lRwHgRwGAQUeoABVgDb/i4seoABVgDb/i4sMBxwghQ8cIKcRrh0AANUuEgFsAgABAAYACwARABkAHgAiACwAMAA0ADwAPgBFAEcATQBUAFwAXwBlAGgAbQBxAHkAfQCBAI0AlQCbAKAAqwCxALgAwADEAMgA0gDcAOcA8AD2AP0BAAEEAQgBEAEVARsBHwEjASkBNAE+AUgBVAFfAWwBcAF7AYcBlQGcAaIBrAGyAbYBugG/AcQByAHVAeIB6gHuAfMB9wH+AgoCFgIbAicCNAI9AkcCUgJZAmYCbwJ5AoYCjwKZAqMCrgK2AsACyQLUAuAC8AL0AvgC/AMEAw0DGQMeAyYDLAMzAzkDQwNPA1YDYwNvA3oDiQOaA6MDrwO8A8gDywPPA9cD5APzA/wEBwQOBBsEIgQvBDUEOwRGBFAEVQRaBGUEcwR9BIQEjASSBJgEowSmBKkEsQS1BMAEygTTBNoE4wT0BQYFFQUmBSsFMQU2BTwFRQVPBVcFXwVoBW0FcQV2BXwFfwWDBY0FkQWbBaIFpAWmBbMFvAXBBcYFywXUBeIF8gX9BgIGDAYUBh4GKQYwBjQGPQZEBlAGWAZcBmEGagZ1BoEGhQaMBpQGmQajBqsGuQbFBswG1wbfBucG7QbxBv4HBgcOBxcHHQcoBywHMgc2B0cHWQdoB3kHgweOB5YHoAenB60Hswe/B8sH1QfgB+cH7QfyB/wIDAgbCCUIMQg2CDsIPghFCE0IVQhjCGsIbwh4CIcIlQiZCKIIqAisCLcIwgjLCM8I2wjlCPMI+QkHCRgJHgkkCTUJRwlWCWcJbAlwCXYJgAmICZsJrAmwCbkJvwnNCdgJ4AnqCfQJ/QoBCgsKEgoaCiYKKgotCjAKMwo2CjkKPAo/CkIKRgpPCl8KYwp1CosKmAqpCq0KsQq9CsQKyArRCt0K5ArxCvoLAAsDCwcLFQsbCyYLNQtCC1ELYQtmC20LdAt5C4ALhQuPC5ULmwufC6ULqAusC7MLtgu4C70LwwvHC8sLzwvoC/NnbGFzc211c2ljc2VhcmNoZW52ZWxvcGVoZWFydHN0YXJzdGFyX2VtcHR5dXNlcmZpbG10aF9sYXJnZXRodGhfbGlzdG9rcmVtb3Zlem9vbV9pbnpvb21fb3V0b2Zmc2lnbmFsY29ndHJhc2hob21lZmlsZV9hbHR0aW1lcm9hZGRvd25sb2FkX2FsdGRvd25sb2FkdXBsb2FkaW5ib3hwbGF5X2NpcmNsZXJlcGVhdHJlZnJlc2hsaXN0X2FsdGxvY2tmbGFnaGVhZHBob25lc3ZvbHVtZV9vZmZ2b2x1bWVfZG93bnZvbHVtZV91cHFyY29kZWJhcmNvZGV0YWd0YWdzYm9va2Jvb2ttYXJrcHJpbnRjYW1lcmFmb250Ym9sZGl0YWxpY3RleHRfaGVpZ2h0dGV4dF93aWR0aGFsaWduX2xlZnRhbGlnbl9jZW50ZXJhbGlnbl9yaWdodGFsaWduX2p1c3RpZnlsaXN0aW5kZW50X2xlZnRpbmRlbnRfcmlnaHRmYWNldGltZV92aWRlb3BpY3R1cmVwZW5jaWxtYXBfbWFya2VyYWRqdXN0dGludGVkaXRzaGFyZWNoZWNrbW92ZXN0ZXBfYmFja3dhcmRmYXN0X2JhY2t3YXJkYmFja3dhcmRwbGF5cGF1c2VzdG9wZm9yd2FyZGZhc3RfZm9yd2FyZHN0ZXBfZm9yd2FyZGVqZWN0Y2hldnJvbl9sZWZ0Y2hldnJvbl9yaWdodHBsdXNfc2lnbm1pbnVzX3NpZ25yZW1vdmVfc2lnbm9rX3NpZ25xdWVzdGlvbl9zaWduaW5mb19zaWduc2NyZWVuc2hvdHJlbW92ZV9jaXJjbGVva19jaXJjbGViYW5fY2lyY2xlYXJyb3dfbGVmdGFycm93X3JpZ2h0YXJyb3dfdXBhcnJvd19kb3duc2hhcmVfYWx0cmVzaXplX2Z1bGxyZXNpemVfc21hbGxleGNsYW1hdGlvbl9zaWduZ2lmdGxlYWZmaXJlZXllX29wZW5leWVfY2xvc2V3YXJuaW5nX3NpZ25wbGFuZWNhbGVuZGFycmFuZG9tY29tbWVudG1hZ25ldGNoZXZyb25fdXBjaGV2cm9uX2Rvd25yZXR3ZWV0c2hvcHBpbmdfY2FydGZvbGRlcl9jbG9zZWZvbGRlcl9vcGVucmVzaXplX3ZlcnRpY2FscmVzaXplX2hvcml6b250YWxiYXJfY2hhcnR0d2l0dGVyX3NpZ25mYWNlYm9va19zaWduY2FtZXJhX3JldHJva2V5Y29nc2NvbW1lbnRzdGh1bWJzX3VwX2FsdHRodW1ic19kb3duX2FsdHN0YXJfaGFsZmhlYXJ0X2VtcHR5c2lnbm91dGxpbmtlZGluX3NpZ25wdXNocGluZXh0ZXJuYWxfbGlua3NpZ25pbnRyb3BoeWdpdGh1Yl9zaWdudXBsb2FkX2FsdGxlbW9ucGhvbmVjaGVja19lbXB0eWJvb2ttYXJrX2VtcHR5cGhvbmVfc2lnbnR3aXR0ZXJmYWNlYm9va2dpdGh1YnVubG9ja2NyZWRpdF9jYXJkcnNzaGRkYnVsbGhvcm5iZWxsY2VydGlmaWNhdGVoYW5kX3JpZ2h0aGFuZF9sZWZ0aGFuZF91cGhhbmRfZG93bmNpcmNsZV9hcnJvd19sZWZ0Y2lyY2xlX2Fycm93X3JpZ2h0Y2lyY2xlX2Fycm93X3VwY2lyY2xlX2Fycm93X2Rvd25nbG9iZXdyZW5jaHRhc2tzZmlsdGVyYnJpZWZjYXNlZnVsbHNjcmVlbm5vdGVxdWFsaW5maW5pdHlsZXNzZXF1YWxncm91cGxpbmtjbG91ZGJlYWtlcmN1dGNvcHlwYXBlcl9jbGlwc2F2ZXNpZ25fYmxhbmtyZW9yZGVydWxvbHN0cmlrZXRocm91Z2h1bmRlcmxpbmV0YWJsZW1hZ2ljdHJ1Y2twaW50ZXJlc3RwaW50ZXJlc3Rfc2lnbmdvb2dsZV9wbHVzX3NpZ25nb29nbGVfcGx1c21vbmV5Y2FyZXRfZG93bmNhcmV0X3VwY2FyZXRfbGVmdGNhcmV0X3JpZ2h0Y29sdW1uc3NvcnRzb3J0X2Rvd25zb3J0X3VwZW52ZWxvcGVfYWx0bGlua2VkaW51bmRvbGVnYWxkYXNoYm9hcmRjb21tZW50X2FsdGNvbW1lbnRzX2FsdGJvbHRzaXRlbWFwdW1icmVsbGFwYXN0ZWxpZ2h0X2J1bGJleGNoYW5nZWNsb3VkX2Rvd25sb2FkY2xvdWRfdXBsb2FkdXNlcl9tZHN0ZXRob3Njb3Blc3VpdGNhc2ViZWxsX2FsdGNvZmZlZWZvb2RmaWxlX3RleHRfYWx0YnVpbGRpbmdob3NwaXRhbGFtYnVsYW5jZW1lZGtpdGZpZ2h0ZXJfamV0YmVlcmhfc2lnbmYwZmVkb3VibGVfYW5nbGVfbGVmdGRvdWJsZV9hbmdsZV9yaWdodGRvdWJsZV9hbmdsZV91cGRvdWJsZV9hbmdsZV9kb3duYW5nbGVfbGVmdGFuZ2xlX3JpZ2h0YW5nbGVfdXBhbmdsZV9kb3duZGVza3RvcGxhcHRvcHRhYmxldG1vYmlsZV9waG9uZWNpcmNsZV9ibGFua3F1b3RlX2xlZnRxdW90ZV9yaWdodHNwaW5uZXJjaXJjbGVyZXBseWdpdGh1Yl9hbHRmb2xkZXJfY2xvc2VfYWx0Zm9sZGVyX29wZW5fYWx0ZXhwYW5kX2FsdGNvbGxhcHNlX2FsdHNtaWxlZnJvd25tZWhnYW1lcGFka2V5Ym9hcmRmbGFnX2FsdGZsYWdfY2hlY2tlcmVkdGVybWluYWxjb2RlcmVwbHlfYWxsc3Rhcl9oYWxmX2VtcHR5bG9jYXRpb25fYXJyb3djcm9wY29kZV9mb3JrdW5saW5rXzI3OWV4Y2xhbWF0aW9uc3VwZXJzY3JpcHRzdWJzY3JpcHRfMjgzcHV6emxlX3BpZWNlbWljcm9waG9uZW1pY3JvcGhvbmVfb2Zmc2hpZWxkY2FsZW5kYXJfZW1wdHlmaXJlX2V4dGluZ3Vpc2hlcnJvY2tldG1heGNkbmNoZXZyb25fc2lnbl9sZWZ0Y2hldnJvbl9zaWduX3JpZ2h0Y2hldnJvbl9zaWduX3VwY2hldnJvbl9zaWduX2Rvd25odG1sNWNzczNhbmNob3J1bmxvY2tfYWx0YnVsbHNleWVlbGxpcHNpc19ob3Jpem9udGFsZWxsaXBzaXNfdmVydGljYWxfMzAzcGxheV9zaWdudGlja2V0bWludXNfc2lnbl9hbHRjaGVja19taW51c2xldmVsX3VwbGV2ZWxfZG93bmNoZWNrX3NpZ25lZGl0X3NpZ25fMzEyc2hhcmVfc2lnbmNvbXBhc3Njb2xsYXBzZWNvbGxhcHNlX3RvcF8zMTdldXJnYnB1c2RpbnJqcHljbnlrcndidGNmaWxlZmlsZV90ZXh0c29ydF9ieV9hbHBoYWJldF8zMjlzb3J0X2J5X2F0dHJpYnV0ZXNzb3J0X2J5X2F0dHJpYnV0ZXNfYWx0c29ydF9ieV9vcmRlcnNvcnRfYnlfb3JkZXJfYWx0XzMzNF8zMzV5b3V0dWJlX3NpZ255b3V0dWJleGluZ3hpbmdfc2lnbnlvdXR1YmVfcGxheWRyb3Bib3hzdGFja2V4Y2hhbmdlaW5zdGFncmFtZmxpY2tyYWRuZjE3MWJpdGJ1Y2tldF9zaWdudHVtYmxydHVtYmxyX3NpZ25sb25nX2Fycm93X2Rvd25sb25nX2Fycm93X3VwbG9uZ19hcnJvd19sZWZ0bG9uZ19hcnJvd19yaWdodGFwcGxld2luZG93c2FuZHJvaWRsaW51eGRyaWJibGVza3lwZWZvdXJzcXVhcmV0cmVsbG9mZW1hbGVtYWxlZ2l0dGlwc3VuXzM2NmFyY2hpdmVidWd2a3dlaWJvcmVucmVuXzM3Ml8zNzNf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") format("truetype");
+
+
+       font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}a [class^="icon-"],a [class*=" icon-"],a [class^="icon-"]:before,a [class*=" icon-"]:before{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.2857142857142858em;text-align:center}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.5714285714285714em}ul.icons-ul{list-style-type:none;text-indent:-0.7142857142857143em;margin-left:2.142857142857143em}ul.icons-ul>li .icon-li{width:.7142857142857143em;display:inline-block;text-align:center}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eee}.icon-light{color:#fff}.icon-dark{color:#333}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical:before{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-repeat:before,.icon-rotate-right:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-share-alt:before,.icon-mail-forward:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope-alt:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-undo:before,.icon-rotate-left:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-reply:before,.icon-mail-reply:before{content:"\f112"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}
+       /*Art is code*/
+       body {
+         background-color:#cdd5da;
+         background: -webkit-linear-gradient( bottom, #cdd5da, #e8e7e7); 
+         background: -moz-linear-gradient( bottom, #cdd5da, #e8e7e7); 
+         background: -ms-linear-gradient( bottom, #cdd5da, #e8e7e7); 
+         background: -o-linear-gradient( bottom, #cdd5da, #e8e7e7); 
+         background: linear-gradient( to bottom, #cdd5da, #e8e7e7);
+       }
+
+       ul.nav li.dropdown:hover ul.dropdown-menu{
+    display: block;    
+       }
+
+       ul.nav li.dropdown ul.dropdown-menu{
+               margin: 0;
+       }
+
+       .navbar-inner {
+               border-radius:0;
+       }
+
+       #pgbadger-brand {
+               font-size: 1.1em;
+               font-weight: bold;
+       }
+
+       .popover-content, .popover-title {
+               color:#333;
+       }
+
+       h3.popover-title {
+               font-weight: bold;
+               font-size: 1.1em;
+       }
+
+       ul#slides li {
+               list-style-type: none;
+       }
+
+       h1 {
+               font-size: 2em;
+       }
+
+       h2 {
+               font-size: 1.6em;
+       }
+
+       h3, h3 small {
+               font-size: 1.1em;
+               text-transform: uppercase;
+               letter-spacing: .1em;
+       }
+
+       h3 small {
+               font-size: 1em;
+       }
+
+       .analysis-item {
+               background: #fff;
+               margin: 2em 0;
+               padding: 2em 0;
+       }
+
+       .analysis-item h2 {
+               margin: 1em 0 .5em 1em;
+
+       }
+
+       h3 {
+               margin: 0;
+               padding: 0;
+               color: #5f5555;
+       }
+
+       h1.page-header {
+               margin: 1em 0 1em 0;
+               padding: 0;
+               color: #5f5555;
+               border-bottom: none;
+       }
+
+       h2 {
+               color:#5f5555;
+       }
+
+       .nav-pills, .nav-tabs {
+               margin: 0 1em;
+       }
+
+       footer {
+               margin-top: 60px;
+       }
+
+       .span8 .tabbable {
+               margin-top: 1em;
+       }
+
+       #global-stats .tab-content {
+               margin: 2em 0 3em 0;
+       }
+
+       #global-stats .tab-content li {
+               display: block;
+               width:14%; /*160/960*/
+               float:left;
+               margin-left: 3%;
+       }
+
+       #global-stats .tab-content li.first {
+               margin-left: 0;
+       }
+
+       .well {
+               background: #f9f9f9;
+               border-radius: 0;
+       }
+
+       .key-figures ul {
+               margin: 0;
+               padding: 0;
+       }
+
+       .key-figures li {
+               list-style-type: none;
+               margin-bottom: 2em;
+       }
+
+       .figure {
+               font-weight: bold;
+               font-size: 1.4em;
+               color:#2e8aa5;
+       }
+
+       .figure-label {
+               display: block;
+               color: #666;
+       }
+
+       .navbar-inverse .navbar-inner {
+               background: #5f5555;
+               border: none;
+       }
+
+       .navbar-inverse .brand, .navbar-inverse .nav > li > a   {
+               color:#eee;
+       }
+
+       #queriespersecond_graph, #connectionspersecond_graph, #selectqueries_graph, #writequeries_graph, #durationqueries_graph, #checkpointwritebuffers_graph, #checkpointfiles_graph, #temporarydata_graph, #temporaryfile_graph, #autovacuum_graph, #bindpreparequeries_graph {
+       width : 100%;
+       height: 400px;
+}
+
+       #queriesbytype_graph, #lockbytype_graph, #databasesessions_graph, #usersessions_graph, #hostsessions_graph, #databaseconnections_graph, #userconnections_graph, #hostconnections_graph, #logstype_graph, #tableanalyzes_graph, #tablevacuums_graph, #tuplevacuums_graph, #pagevacuums_graph, #queriesbydatabase_graph, #queriesbyapplication_graph, #queriesbyuser_graph, #queriesbyhost_graph {
+       width : 100%;
+       height: 320px;
+}
+/*
+               #show-hide-menu {
+                       position: absolute;
+                       left: -9999px;
+               }
+       */
+       @media (min-width:969px) {
+               #show-hide-menu {
+                       position: absolute;
+                       left: -9999px;
+               }
+
+               .navbar ul.collapse {
+                       overflow: visible;
+               }
+       }
+
+       @media (max-width:968px) {
+               #show-hide-menu {
+                       position: inherit;
+               }
+
+               #global-stats .tab-content li {
+                       display: block;
+                       width:auto; /*160/960*/
+                       float:none;
+                       margin-left: 0;
+                       margin-bottom: 1em;
+               }
+
+               ul#slides {
+                       margin: 0;
+                       padding: 0;
+               }
+
+               ul#slides li div div {
+                       padding:0 1.5em;
+               }
+
+
+               #queriespersecond_graph, #connectionspersecond_graph, #selectqueries_graph, #writequeries_graph, #durationqueries_graph, #checkpointwritebuffers_graph, #checkpointfiles_graph, #temporarydata_graph, #temporaryfile_graph, #autovacuum_graph, #bindpreparequeries_graph {
+                       width : 94.5%;
+               }
+
+               #queriesbytype_graph, #lockbytype_graph, #databasesessions_graph, #usersessions_graph, #hostsessions_graph, #databaseconnections_graph, #userconnections_graph, #hostconnections_graph, #logstype_graph, #tableanalyzes_graph, #tablevacuums_graph, #tuplevacuums_graph, #pagevacuums_graph, #queriesbydatabase_graph, #queriesbyapplication_graph, #queriesbyuser_graph, #queriesbyhost_graph {
+                       width : 94.5%;
+               }
+
+               .key-figures ul {
+                       margin-top: 1.5em;
+               }
+
+               .navbar .nav {
+                       margin: 0 3em 2em 3em;
+               }
+
+               .navbar .nav > li {
+                       float: none;
+               }
+
+               .navbar ul.collapse:hover {
+                       overflow: visible;
+               }
+       }
+
+
+   </style>
+    <script type="text/javascript">/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
+    </script>
+    <script type="text/javascript">/*!
+     * Bootstrap.js by @fat & @mdo
+     * Copyright 2012 Twitter, Inc.
+     * http://www.apache.org/licenses/LICENSE-2.0.txt
+     */
+    !function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",r),s.toggleClass("open")),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!t)return;i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e.fn[this.type].defaults,r={},i;this._options&&e.each(this._options,function(e,t){n[e]!=t&&(r[e]=t)},this),i=e(t.currentTarget)[this.type](r).data(this.type);if(!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(o,s),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n=this.tip(),r=n[0].offsetWidth,i=n[0].offsetHeight,s,o,u,a;n.offset(e).addClass(t).addClass("in"),s=n[0].offsetWidth,o=n[0].offsetHeight,t=="top"&&o!=i&&(e.top=e.top+i-o,a=!0),t=="bottom"||t=="top"?(u=0,e.left<0&&(u=e.left*-2,e.left=0,n.offset(e),s=n[0].offsetWidth,o=n[0].offsetHeight),this.replaceArrow(u-r+s,s,"left")):this.replaceArrow(o-i,o,"top"),a&&n.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content"),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
+    </script>
+
+    <script type="text/javascript">
+!function(){var r=null;
+(function(){function X(e){function j(){try{J.doScroll("left")}catch(e){P(j,50);return}w("poll")}function w(j){if(!(j.type=="readystatechange"&&x.readyState!="complete")&&((j.type=="load"?n:x)[z](i+j.type,w,!1),!m&&(m=!0)))e.call(n,j.type||j)}var Y=x.addEventListener,m=!1,C=!0,t=Y?"addEventListener":"attachEvent",z=Y?"removeEventListener":"detachEvent",i=Y?"":"on";if(x.readyState=="complete")e.call(n,"lazy");else{if(x.createEventObject&&J.doScroll){try{C=!n.frameElement}catch(A){}C&&j()}x[t](i+"DOMContentLoaded",
+w,!1);x[t](i+"readystatechange",w,!1);n[t](i+"load",w,!1)}}function Q(){S&&X(function(){var e=K.length;$(e?function(){for(var j=0;j<e;++j)(function(e){P(function(){n.exports[K[e]].apply(n,arguments)},0)})(j)}:void 0)})}for(var n=window,P=n.setTimeout,x=document,J=x.documentElement,L=x.head||x.getElementsByTagName("head")[0]||J,z="",A=x.scripts,m=A.length;--m>=0;){var M=A[m],T=M.src.match(/^[^#?]*\/run_prettify\.js(\?[^#]*)?(?:#.*)?$/);if(T){z=T[1]||"";M.parentNode.removeChild(M);break}}var S=!0,D=
+[],N=[],K=[];z.replace(/[&?]([^&=]+)=([^&]+)/g,function(e,j,w){w=decodeURIComponent(w);j=decodeURIComponent(j);j=="autorun"?S=!/^[0fn]/i.test(w):j=="lang"?D.push(w):j=="skin"?N.push(w):j=="callback"&&K.push(w)});m=0;for(z=D.length;m<z;++m)(function(){var e=x.createElement("script");e.onload=e.onerror=e.onreadystatechange=function(){if(e&&(!e.readyState||/loaded|complete/.test(e.readyState)))e.onerror=e.onload=e.onreadystatechange=r,--R,R||P(Q,0),e.parentNode&&e.parentNode.removeChild(e),e=r};e.type=
+"text/javascript";e.src="https://google-code-prettify.googlecode.com/svn/loader/lang-"+encodeURIComponent(D[m])+".js";L.insertBefore(e,L.firstChild)})(D[m]);for(var R=D.length,A=[],m=0,z=N.length;m<z;++m)A.push("https://google-code-prettify.googlecode.com/svn/loader/skins/"+encodeURIComponent(N[m])+".css");A.push("https://google-code-prettify.googlecode.com/svn/loader/prettify.css");(function(e){function j(m){if(m!==w){var n=x.createElement("link");n.rel="stylesheet";n.type="text/css";if(m+1<w)n.error=
+n.onerror=function(){j(m+1)};n.href=e[m];L.appendChild(n)}}var w=e.length;j(0)})(A);var $=function(){window.PR_SHOULD_USE_CONTINUATION=!0;var e;(function(){function j(a){function d(f){var b=f.charCodeAt(0);if(b!==92)return b;var a=f.charAt(1);return(b=i[a])?b:"0"<=a&&a<="7"?parseInt(f.substring(1),8):a==="u"||a==="x"?parseInt(f.substring(2),16):f.charCodeAt(1)}function h(f){if(f<32)return(f<16?"\\x0":"\\x")+f.toString(16);f=String.fromCharCode(f);return f==="\\"||f==="-"||f==="]"||f==="^"?"\\"+f:
+f}function b(f){var b=f.substring(1,f.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),f=[],a=b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,g=b.length;a<g;++a){var k=b[a];if(/\\[bdsw]/i.test(k))c.push(k);else{var k=d(k),o;a+2<g&&"-"===b[a+1]?(o=d(b[a+2]),a+=2):o=k;f.push([k,o]);o<65||k>122||(o<65||k>90||f.push([Math.max(65,k)|32,Math.min(o,90)|32]),o<97||k>122||f.push([Math.max(97,k)&-33,Math.min(o,122)&-33]))}}f.sort(function(f,a){return f[0]-
+a[0]||a[1]-f[1]});b=[];g=[];for(a=0;a<f.length;++a)k=f[a],k[0]<=g[1]+1?g[1]=Math.max(g[1],k[1]):b.push(g=k);for(a=0;a<b.length;++a)k=b[a],c.push(h(k[0])),k[1]>k[0]&&(k[1]+1>k[0]&&c.push("-"),c.push(h(k[1])));c.push("]");return c.join("")}function e(f){for(var a=f.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],g=0,k=0;g<c;++g){var o=a[g];o==="("?++k:"\\"===o.charAt(0)&&(o=+o.substring(1))&&(o<=k?d[o]=-1:a[g]=h(o))}for(g=
+1;g<d.length;++g)-1===d[g]&&(d[g]=++j);for(k=g=0;g<c;++g)o=a[g],o==="("?(++k,d[k]||(a[g]="(?:")):"\\"===o.charAt(0)&&(o=+o.substring(1))&&o<=k&&(a[g]="\\"+d[o]);for(g=0;g<c;++g)"^"===a[g]&&"^"!==a[g+1]&&(a[g]="");if(f.ignoreCase&&F)for(g=0;g<c;++g)o=a[g],f=o.charAt(0),o.length>=2&&f==="["?a[g]=b(o):f!=="\\"&&(a[g]=o.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var j=0,F=!1,l=!1,I=0,c=a.length;I<c;++I){var p=a[I];if(p.ignoreCase)l=
+!0;else if(/[a-z]/i.test(p.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){F=!0;l=!1;break}}for(var i={b:8,t:9,n:10,v:11,f:12,r:13},q=[],I=0,c=a.length;I<c;++I){p=a[I];if(p.global||p.multiline)throw Error(""+p);q.push("(?:"+e(p)+")")}return RegExp(q.join("|"),l?"gi":"g")}function m(a,d){function h(a){var c=a.nodeType;if(c==1){if(!b.test(a.className)){for(c=a.firstChild;c;c=c.nextSibling)h(c);c=a.nodeName.toLowerCase();if("br"===c||"li"===c)e[l]="\n",F[l<<1]=j++,F[l++<<1|1]=a}}else if(c==
+3||c==4)c=a.nodeValue,c.length&&(c=d?c.replace(/\r\n?/g,"\n"):c.replace(/[\t\n\r ]+/g," "),e[l]=c,F[l<<1]=j,j+=c.length,F[l++<<1|1]=a)}var b=/(?:^|\s)nocode(?:\s|$)/,e=[],j=0,F=[],l=0;h(a);return{a:e.join("").replace(/\n$/,""),d:F}}function n(a,d,h,b){d&&(a={a:d,e:a},h(a),b.push.apply(b,a.g))}function x(a){for(var d=void 0,h=a.firstChild;h;h=h.nextSibling)var b=h.nodeType,d=b===1?d?a:h:b===3?S.test(h.nodeValue)?a:d:d;return d===a?void 0:d}function C(a,d){function h(a){for(var l=a.e,j=[l,"pln"],c=
+0,p=a.a.match(e)||[],m={},q=0,f=p.length;q<f;++q){var B=p[q],y=m[B],u=void 0,g;if(typeof y==="string")g=!1;else{var k=b[B.charAt(0)];if(k)u=B.match(k[1]),y=k[0];else{for(g=0;g<i;++g)if(k=d[g],u=B.match(k[1])){y=k[0];break}u||(y="pln")}if((g=y.length>=5&&"lang-"===y.substring(0,5))&&!(u&&typeof u[1]==="string"))g=!1,y="src";g||(m[B]=y)}k=c;c+=B.length;if(g){g=u[1];var o=B.indexOf(g),H=o+g.length;u[2]&&(H=B.length-u[2].length,o=H-g.length);y=y.substring(5);n(l+k,B.substring(0,o),h,j);n(l+k+o,g,A(y,
+g),j);n(l+k+H,B.substring(H),h,j)}else j.push(l+k,y)}a.g=j}var b={},e;(function(){for(var h=a.concat(d),l=[],i={},c=0,p=h.length;c<p;++c){var m=h[c],q=m[3];if(q)for(var f=q.length;--f>=0;)b[q.charAt(f)]=m;m=m[1];q=""+m;i.hasOwnProperty(q)||(l.push(m),i[q]=r)}l.push(/[\S\s]/);e=j(l)})();var i=d.length;return h}function t(a){var d=[],h=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,
+r,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,r,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,r,"\"'"]);a.verbatimStrings&&h.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,r]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,r,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,
+r,"#"]),h.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,r])):d.push(["com",/^#[^\n\r]*/,r,"#"]));a.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,r]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,r]));if(b=a.regexLiterals){var e=(b=b>1?"":"\n\r")?".":"[\\S\\s]";h.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+
+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+e+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+e+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&h.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&h.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),r]);d.push(["pln",/^\s+/,r," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");h.push(["lit",/^@[$_a-z][\w$@]*/i,r],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,r],["pln",/^[$_a-z][\w$@]*/i,r],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,
+r,"0123456789"],["pln",/^\\[\S\s]?/,r],["pun",RegExp(b),r]);return C(d,h)}function z(a,d,h){function b(a){var c=a.nodeType;if(c==1&&!j.test(a.className))if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&h){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(l.createTextNode(d),a.nextSibling),e(a),c||a.parentNode.removeChild(a)}}
+function e(a){function b(a,c){var d=c?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),h=a.nextSibling;f.appendChild(d);for(var e=h;e;e=h)h=e.nextSibling,f.appendChild(e)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var j=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,l=a.ownerDocument,i=l.createElement("li");a.firstChild;)i.appendChild(a.firstChild);for(var c=[i],p=0;p<c.length;++p)b(c[p]);d===(d|0)&&c[0].setAttribute("value",
+d);var n=l.createElement("ol");n.className="linenums";for(var d=Math.max(0,d-1|0)||0,p=0,q=c.length;p<q;++p)i=c[p],i.className="L"+(p+d)%10,i.firstChild||i.appendChild(l.createTextNode("\u00a0")),n.appendChild(i);a.appendChild(n)}function i(a,d){for(var h=d.length;--h>=0;){var b=d[h];U.hasOwnProperty(b)?V.console&&console.warn("cannot override language handler %s",b):U[b]=a}}function A(a,d){if(!a||!U.hasOwnProperty(a))a=/^\s*</.test(d)?"default-markup":"default-code";return U[a]}function D(a){var d=
+a.h;try{var h=m(a.c,a.i),b=h.a;a.a=b;a.d=h.d;a.e=0;A(d,b)(a);var e=/\bMSIE\s(\d+)/.exec(navigator.userAgent),e=e&&+e[1]<=8,d=/\n/g,i=a.a,j=i.length,h=0,l=a.d,n=l.length,b=0,c=a.g,p=c.length,t=0;c[p]=j;var q,f;for(f=q=0;f<p;)c[f]!==c[f+2]?(c[q++]=c[f++],c[q++]=c[f++]):f+=2;p=q;for(f=q=0;f<p;){for(var x=c[f],y=c[f+1],u=f+2;u+2<=p&&c[u+1]===y;)u+=2;c[q++]=x;c[q++]=y;f=u}c.length=q;var g=a.c,k;if(g)k=g.style.display,g.style.display="none";try{for(;b<n;){var o=l[b+2]||j,H=c[t+2]||j,u=Math.min(o,H),E=l[b+
+1],W;if(E.nodeType!==1&&(W=i.substring(h,u))){e&&(W=W.replace(d,"\r"));E.nodeValue=W;var Z=E.ownerDocument,s=Z.createElement("span");s.className=c[t+1];var z=E.parentNode;z.replaceChild(s,E);s.appendChild(E);h<o&&(l[b+1]=E=Z.createTextNode(i.substring(u,o)),z.insertBefore(E,s.nextSibling))}h=u;h>=o&&(b+=2);h>=H&&(t+=2)}}finally{if(g)g.style.display=k}}catch(v){V.console&&console.log(v&&v.stack||v)}}var V=window,G=["break,continue,do,else,for,if,return,while"],O=[[G,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],J=[O,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],K=[O,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],
+L=[K,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],O=[O,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],M=[G,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+N=[G,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],R=[G,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],G=[G,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],Q=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
+S=/\S/,T=t({keywords:[J,L,O,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",M,N,G],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),U={};i(T,["default-code"]);i(C([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
+/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);i(C([["pln",/^\s+/,r," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,r,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],
+["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);i(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);i(t({keywords:J,hashComments:!0,cStyleComments:!0,types:Q}),["c","cc","cpp","cxx","cyc","m"]);i(t({keywords:"null,true,false"}),["json"]);i(t({keywords:L,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:Q}),
+["cs"]);i(t({keywords:K,cStyleComments:!0}),["java"]);i(t({keywords:G,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);i(t({keywords:M,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);i(t({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);i(t({keywords:N,
+hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);i(t({keywords:O,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);i(t({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);i(t({keywords:R,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]);
+i(C([],[["str",/^[\S\s]+/]]),["regex"]);var X=V.PR={createSimpleLexer:C,registerLangHandler:i,sourceDecorator:t,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:function(a,d,e){var b=document.createElement("div");b.innerHTML="<pre>"+a+"</pre>";b=b.firstChild;e&&z(b,e,!0);D({h:d,j:e,c:b,i:1});return b.innerHTML},
+prettyPrint:e=e=function(a,d){function e(){for(var b=V.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;p<j.length&&c.now()<b;p++){for(var d=j[p],m=k,l=d;l=l.previousSibling;){var n=l.nodeType,s=(n===7||n===8)&&l.nodeValue;if(s?!/^\??prettify\b/.test(s):n!==3||/\S/.test(l.nodeValue))break;if(s){m={};s.replace(/\b(\w+)=([\w%+\-.:]+)/g,function(a,b,c){m[b]=c});break}}l=d.className;if((m!==k||f.test(l))&&!w.test(l)){n=!1;for(s=d.parentNode;s;s=s.parentNode)if(g.test(s.tagName)&&s.className&&f.test(s.className)){n=
+!0;break}if(!n){d.className+=" prettyprinted";n=m.lang;if(!n){var n=l.match(q),A;if(!n&&(A=x(d))&&u.test(A.tagName))n=A.className.match(q);n&&(n=n[1])}if(y.test(d.tagName))s=1;else var s=d.currentStyle,v=i.defaultView,s=(s=s?s.whiteSpace:v&&v.getComputedStyle?v.getComputedStyle(d,r).getPropertyValue("white-space"):0)&&"pre"===s.substring(0,3);v=m.linenums;if(!(v=v==="true"||+v))v=(v=l.match(/\blinenums\b(?::(\d+))?/))?v[1]&&v[1].length?+v[1]:!0:!1;v&&z(d,v,s);t={h:n,c:d,j:v,i:s};D(t)}}}p<j.length?
+P(e,250):"function"===typeof a&&a()}for(var b=d||document.body,i=b.ownerDocument||document,b=[b.getElementsByTagName("pre"),b.getElementsByTagName("code"),b.getElementsByTagName("xmp")],j=[],m=0;m<b.length;++m)for(var l=0,n=b[m].length;l<n;++l)j.push(b[m][l]);var b=r,c=Date;c.now||(c={now:function(){return+new Date}});var p=0,t,q=/\blang(?:uage)?-([\w.]+)(?!\S)/,f=/\bprettyprint\b/,w=/\bprettyprinted\b/,y=/pre|xmp/i,u=/^code$/i,g=/^(?:pre|code|xmp)$/i,k={};e()}};typeof define==="function"&&define.amd&&
+define("google-code-prettify",[],function(){return X})})();return e}();R||P(Q,0)})();}()
+
+    </script>
+    <script type="text/javascript">
+
+       jQuery(function (){
+               jQuery('#pgbadger-brand').tooltip();
+
+               jQuery("#pop-infos").popover('hide');
+               jQuery('.slide').hide();
+               jQuery('.active-slide').show();
+
+               jQuery('.navbar li.dropdown').click(function() {
+                       var id = jQuery(this).attr("id");
+                       id = id.substring(5);
+                       var slideId = '#'+id+'-slide';
+                       var currentSlide = jQuery('#main-container .active-slide').attr("id");
+                       currentSlide = '#'+currentSlide;
+
+                       if(slideId != currentSlide) {
+                               jQuery('#main-container li.slide').removeClass('active-slide').hide();
+                               jQuery(slideId).addClass("active-slide").fadeIn();
+                       }
+               });
+
+               jQuery('.navbar li ul li').click(function() {
+                       var liId = jQuery(this).parent().parent().attr("id");
+                       var id = liId.substring(5);
+                       var slideId = '#'+id+'-slide';
+                       jQuery('#main-container li.slide').removeClass('active-slide').hide();
+                       jQuery(slideId).addClass("active-slide").fadeIn();
+               });
+       });
+    </script>
+