[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 16-Oct-2005 13:52:01 Branch: HEAD Handle: 2005101612520100 Modified files: openpkg-tools/cmd bf-ui.pl Log: add numeric grand total statistic information to matrix output Summary: RevisionChanges Path 1.24+37 -0 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.23 -r1.24 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl14 Oct 2005 15:09:34 - 1.23 +++ openpkg-tools/cmd/bf-ui.pl16 Oct 2005 11:52:01 - 1.24 @@ -1122,6 +1122,7 @@ my $html; my ($sth, $sthpackages, $rv); my $processing = {}; +my $grandtotal = {}; my $show_rowtotal_green = $cgi-param(pm_rowtotal_green); my $show_rowtotal_red = $cgi-param(pm_rowtotal_red); @@ -1244,6 +1245,10 @@ print STDOUT $html; $html = ''; +$grandtotal-{$class}-{green} = 0; +$grandtotal-{$class}-{red} = 0; +$grandtotal-{$class}-{blue} = 0; + my @packages; $rv = $sthpackages-execute($class); if (not $rv) { @@ -1325,6 +1330,7 @@ } $line .= nbsp;nbsp;a href=\$myurl?page=statussubmit=statusvs_package=$package\$package/a\n; if ($rowtotal eq green) { +$grandtotal-{$class}-{green}++; if ($show_rowtotal_green eq yes) { $html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; $html .= img src=\$myurl?page=gifname=icon-ok\ class=\green\ alt=\green\ border=\0\; @@ -1333,6 +1339,7 @@ } } elsif ($rowtotal eq red) { +$grandtotal-{$class}-{red}++; if ($show_rowtotal_red eq yes) { $html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; $html .= img src=\$myurl?page=gifname=icon-x\ class=\red\ alt=\red\ border=\0\; @@ -1341,6 +1348,7 @@ } } else { +$grandtotal-{$class}-{blue}++; if ($show_rowtotal_blue eq yes) { $html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; $html .= img src=\$myurl?page=gifname=icon-dot\ class=\blue\ alt=\blue\ border=\0\; @@ -1353,6 +1361,35 @@ $html = ''; } $html .= /pre\n; + +$grandtotal-{$class}-{count} = $grandtotal-{$class}-{green} + + $grandtotal-{$class}-{red} + + $grandtotal-{$class}-{blue}; +$html .= sprintf(Class b%s/b has %d packages, $class, $grandtotal-{$class}-{count}); +if ($grandtotal-{$class}-{count} == $grandtotal-{$class}-{green}) { +$html .= and is iready for release/i; +} +else { +if($grandtotal-{$class}-{green} 0) { +$html .= sprintf( %d*%s, + $grandtotal-{$class}-{green}, + img src=\$myurl?page=gifname=icon-ok\ class=\green\ alt=\green\ border=\0\ +); +}; +if($grandtotal-{$class}-{red} 0) { +$html .= sprintf( %d*%s, + $grandtotal-{$class}-{red}, + img src=\$myurl?page=gifname=icon-x\ class=\red\ alt=\red\ border=\0\, +); +}; +if($grandtotal-{$class}-{blue} 0) { +$html .= sprintf( %d*%s, + $grandtotal-{$class}-{blue}, + img src=\$myurl?page=gifname=icon-dot\ class=\blue\ alt=\blue\ border=\0\ +); +}; +}; +$html .= \n; print STDOUT $html; $html = ''; } @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 14-Oct-2005 17:09:35 Branch: HEAD Handle: 2005101416093400 Modified files: openpkg-tools/cmd bf-ui.pl Log: allow user to select which of the three possible rowtotals green, red and blue he wants to see in the matrix view Summary: RevisionChanges Path 1.23+44 -6 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.22 -r1.23 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl10 Oct 2005 21:07:18 - 1.22 +++ openpkg-tools/cmd/bf-ui.pl14 Oct 2005 15:09:34 - 1.23 @@ -918,6 +918,28 @@ $html .= $cgi-start_form(); $html .= $cgi-submit('page','matrix'); $html .= $cgi-hidden(-name='page', -value = matrix); +$html .= nbsp;shownbsp;rowtotal; +$html .= nbsp;nbsp;nbsp;img src=\$myurl?page=gifname=icon-ok\ class=\green\ alt=\green\ border=\0\; +$html .= $cgi-checkbox_group( +-name = pm_rowtotal_green, +-values = [ yes ], +-labels = { yes = }, +-defaults = [ yes ] +) . \n; +$html .= nbsp;nbsp;nbsp;img src=\$myurl?page=gifname=icon-x\ class=\red\ alt=\red\ border=\0\; +$html .= $cgi-checkbox_group( +-name = pm_rowtotal_red, +-values = [ yes ], +-labels = { yes = }, +-defaults = [ yes ] +) . \n; +$html .= nbsp;nbsp;nbsp;img src=\$myurl?page=gifname=icon-dot\ class=\blue\ alt=\blue\ border=\0\; +$html .= $cgi-checkbox_group( +-name = pm_rowtotal_blue, +-values = [ yes ], +-labels = { yes = }, +-defaults = [ yes ] +) . \n; $html .= $cgi-end_form; return $html; } @@ -1101,6 +1123,10 @@ my ($sth, $sthpackages, $rv); my $processing = {}; +my $show_rowtotal_green = $cgi-param(pm_rowtotal_green); +my $show_rowtotal_red = $cgi-param(pm_rowtotal_red); +my $show_rowtotal_blue = $cgi-param(pm_rowtotal_blue); + $rv = $dbh-selectall_hashref(SELECT * FROM processing;, pr_inst_host); if (not $rv) { die ERROR:$0: SQLite error: .$dbh-errstr.\n; @@ -1298,18 +1324,30 @@ $line .= $l . $m . $r; } $line .= nbsp;nbsp;a href=\$myurl?page=statussubmit=statusvs_package=$package\$package/a\n; -$html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; if ($rowtotal eq green) { -$html .= img src=\$myurl?page=gifname=icon-ok\ class=\green\ alt=\green\ border=\0\; +if ($show_rowtotal_green eq yes) { +$html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; +$html .= img src=\$myurl?page=gifname=icon-ok\ class=\green\ alt=\green\ border=\0\; +$html .= /a]nbsp;nbsp;; +$html .= $line; +} } elsif ($rowtotal eq red) { -$html .= img src=\$myurl?page=gifname=icon-x\ class=\red\ alt=\red\ border=\0\; +if ($show_rowtotal_red eq yes) { +$html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; +$html .= img src=\$myurl?page=gifname=icon-x\ class=\red\ alt=\red\ border=\0\; +$html .= /a]nbsp;nbsp;; +$html .= $line; +} } else { -$html .= img src=\$myurl?page=gifname=icon-dot\ class=\blue\ alt=\blue\ border=\0\; +if ($show_rowtotal_blue eq yes) { +$html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; +$html .= img src=\$myurl?page=gifname=icon-dot\ class=\blue\ alt=\blue\ border=\0\; +$html .= /a]nbsp;nbsp;; +$html .= $line; +} } -$html .= /a]nbsp;nbsp;; -$html .= $line; } print STDOUT $html; $html = ''; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 10-Oct-2005 23:06:08 Branch: HEAD Handle: 2005101022060800 Modified files: openpkg-tools/cmd bf-ui.pl Log: compute useful rowtotal in matrix for EVAL and JUNK packages Summary: RevisionChanges Path 1.21+6 -0 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.20 -r1.21 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl27 Sep 2005 13:30:13 - 1.20 +++ openpkg-tools/cmd/bf-ui.pl10 Oct 2005 21:06:08 - 1.21 @@ -1253,6 +1253,8 @@ $rowtotal = green if ($class eq CORE and $support = 2 and $support = 4); $rowtotal = green if ($class eq BASE and $support == 3); $rowtotal = green if ($class eq PLUS and $support == 3); +$rowtotal = green if ($class eq EVAL); +$rowtotal = green if ($class eq JUNK); } } elsif ($color eq red) { @@ -1260,6 +1262,8 @@ $rowtotal = red if ($class eq CORE and $support = 2 and $support = 4); $rowtotal = red if ($class eq BASE and $support == 3); $rowtotal = red if ($class eq PLUS and $support == 3); +$rowtotal = red if ($class eq EVAL); +$rowtotal = red if ($class eq JUNK); } else { $line .= $limg src=\$myurl?page=gifname=icon-dot\ class=\$color\ alt=\$color\ border=\0\$r; @@ -1267,6 +1271,8 @@ $rowtotal = blue if ($class eq CORE and $support = 2 and $support = 4); $rowtotal = blue if ($class eq BASE and $support == 3); $rowtotal = blue if ($class eq PLUS and $support == 3); +$rowtotal = blue if ($class eq EVAL); +$rowtotal = blue if ($class eq JUNK); } } } @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 10-Oct-2005 23:07:19 Branch: HEAD Handle: 2005101022071800 Modified files: openpkg-tools/cmd bf-ui.pl Log: overlay color for currently processed packages in matrix Summary: RevisionChanges Path 1.22+24 -3 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.21 -r1.22 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl10 Oct 2005 21:06:08 - 1.21 +++ openpkg-tools/cmd/bf-ui.pl10 Oct 2005 21:07:18 - 1.22 @@ -1099,6 +1099,19 @@ { my $html; my ($sth, $sthpackages, $rv); +my $processing = {}; + +$rv = $dbh-selectall_hashref(SELECT * FROM processing;, pr_inst_host); +if (not $rv) { +die ERROR:$0: SQLite error: .$dbh-errstr.\n; +} +for my $i (sort keys %{$rv}) { + my ($name, $version, $release) = (%{$rv}-{$i}-{pr_package_name}, %{$rv}-{$i}-{pr_package_version}, %{$rv}-{$i}-{pr_package_release}); + my ($host, $arch, $os, $tag) = (%{$rv}-{$i}-{pr_inst_host}, %{$rv}-{$i}-{pr_inst_arch}, %{$rv}-{$i}-{pr_inst_os}, %{$rv}-{$i}-{pr_inst_tag}); + my $inst = $host . - . $arch . - . $os; + my $package = $name . - . $version . - . $release; + $processing-{$inst} = $package; +} my @classes; $rv = $dbh-selectall_arrayref(SELECT DISTINCT cl_package_class . @@ -1246,9 +1259,10 @@ # color my $color = $row-{$inst}; my $l = a href=\$myurl?page=suminst=$inst-openpkgpackage=$package\; +my $m = ; my $r = /a; if ($color eq green) { -$line .= $limg src=\$myurl?page=gifname=icon-ok\ class=\green\ alt=\green\ border=\0\$r; +$m = img src=\$myurl?page=gifname=icon-ok\ class=\green\ alt=\green\ border=\0\; if (not defined $rowtotal or $rowtotal eq green) { $rowtotal = green if ($class eq CORE and $support = 2 and $support = 4); $rowtotal = green if ($class eq BASE and $support == 3); @@ -1258,7 +1272,7 @@ } } elsif ($color eq red) { -$line .= $limg src=\$myurl?page=gifname=icon-x\ class=\red\ alt=\red\ border=\0\$r; +$m = img src=\$myurl?page=gifname=icon-x\ class=\red\ alt=\red\ border=\0\; $rowtotal = red if ($class eq CORE and $support = 2 and $support = 4); $rowtotal = red if ($class eq BASE and $support == 3); $rowtotal = red if ($class eq PLUS and $support == 3); @@ -1266,7 +1280,7 @@ $rowtotal = red if ($class eq JUNK); } else { -$line .= $limg src=\$myurl?page=gifname=icon-dot\ class=\$color\ alt=\$color\ border=\0\$r; +$m = img src=\$myurl?page=gifname=icon-dot\ class=\$color\ alt=\$color\ border=\0\; if (not defined $rowtotal or $rowtotal eq green or $rowtotal eq blue) { $rowtotal = blue if ($class eq CORE and $support = 2 and $support = 4); $rowtotal = blue if ($class eq BASE and $support == 3); @@ -1275,6 +1289,13 @@ $rowtotal = blue if ($class eq JUNK); } } + +# overlay color for currently processed packages +if ($processing-{$inst} eq $package) { +$m = img src=\$myurl?page=gifname=icon-dia\ class=\dia\ alt=\dia\ border=\0\; +} + +$line .= $l . $m . $r; } $line .= nbsp;nbsp;a href=\$myurl?page=statussubmit=statusvs_package=$package\$package/a\n; $html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 27-Sep-2005 14:38:31 Branch: HEAD Handle: 2005092713383000 Modified files: openpkg-tools/cmd bf-ui.pl Log: cleanup printlog function Summary: RevisionChanges Path 1.17+17 -17 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.16 -r1.17 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl22 Sep 2005 11:42:33 - 1.16 +++ openpkg-tools/cmd/bf-ui.pl27 Sep 2005 12:38:30 - 1.17 @@ -899,29 +899,29 @@ sub printlog() { -my ($logfile, $mode) = @_; +my ($relfile, $mode) = @_; my $html; -if ($logfile =~ m|\.\.| or $logfile =~ m |^/|) { -die PANIC:$0: Intruder detected; -} -if ( -f $shared/log/$logfile and -r $shared/log/$logfile and -s $shared/log/$logfile ) { -my $file; -my $io = new IO::File $shared/log/$logfile or die unable to read logfile \$logfile\; -$file .= $_ while ($io); +die PANIC:$0: Intruder detected - file if ($relfile =~ m|\.\.| or $relfile =~ m |^/|); + +my $absfile = $shared/log/$relfile; +if ( -f $absfile and -r $absfile and -s $absfile ) { +my $data; +my $io = new IO::File $absfile or die unable to read log \$relfile\; +$data .= $_ while ($io); $io-close(); -$file =~ s||amp;|sg; -$file =~ s||lt;|sg; -$file =~ s||gt;|sg; -$file =~ s;^(Executing\((%|--).+?\):.*?)$;b$1/b;mg; -$file =~ s|^(\+[^\n]*)$|font color=#99$1/font|mg; -$file =~ s;^(.*warn.*)$;font color=#66b$1/b/font;mgi; -$file =~ s;^(.*(error|abort|fail|fatal|bad|illegal|invalid|usage|denied).*)$;font color=#ccb$1/b/font;mgi; -$html .= pre\n$file\n/pre\n; +$data =~ s||amp;|sg; +$data =~ s||lt;|sg; +$data =~ s||gt;|sg; +$data =~ s;^(Executing\((%|--).+?\):.*?)$;b$1/b;mg; +$data =~ s|^(\+[^\n]*)$|font color=#99$1/font|mg; +$data =~ s;^(.*warn.*)$;font color=#66b$1/b/font;mgi; +$data =~ s;^(.*(error|abort|fail|fatal|bad|illegal|invalid|usage|denied).*)$;font color=#ccb$1/b/font;mgi; +$html .= pre\n$data\n/pre\n; } else { -$html .= Sorry, the logfile \$logfile\ does not exist\n; +$html .= Sorry, the log \$relfile\ does not exist\n; } print STDOUT $html; } @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 27-Sep-2005 14:39:15 Branch: HEAD Handle: 2005092713391500 Modified files: openpkg-tools/cmd bf-ui.pl Log: default to openpkg tag Summary: RevisionChanges Path 1.18+11 -8 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.17 -r1.18 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl27 Sep 2005 12:38:30 - 1.17 +++ openpkg-tools/cmd/bf-ui.pl27 Sep 2005 12:39:15 - 1.18 @@ -1018,6 +1018,9 @@ my ($host, $arch, $os, $tag); if ($inst =~ m|^(.+)-([^-]+)-([^-]+)-([^-]+)$|) { ($host, $arch, $os, $tag) = ($1, $2, $3, $4); +} +elsif ($inst =~ m|^(.+)-([^-]+)-([^-]+)$|) { +($host, $arch, $os, $tag) = ($1, $2, $3, openpkg); }; return ($host, $arch, $os, $tag); } @@ -1173,7 +1176,7 @@ $lastsupport = undef; $line = ; foreach my $inst (@insts) { -my ($host, $arch, $os, $tag) = splitinst($inst . -openpkg); # bsd1-ix86-freebsd5.3-openpkg +my ($host, $arch, $os, $tag) = splitinst($inst); # bsd1-ix86-freebsd5.3-openpkg my $logfile = $inst/$package.log.$host.$arch-$os-$tag; # support @@ -1233,18 +1236,18 @@ sub viewstatus() { -my ($host, $arch, $os, $tag); # bsd1-ix86-freebsd5.3-openpkg -my ($name, $version, $release); # perl-5.8.6-20050111 -my ($color, $class);# red, CORE +my ($inst, $host, $arch, $os, $tag); # bsd1-ix86-freebsd5.3-openpkg, inst = host-arch-os-tag +my ($package, $name, $version, $release); # perl-5.8.6-20050111, package = name-version-release +my ($color, $class); # red, CORE my ($select, @args, $sth, $rv); my $html; -my $inst = $cgi-param(vs_inst); -$inst .= -openpkg if ($inst ne ); -($host, $arch, $os, $tag) = splitinst($inst); -($name, $version, $release) = splitpackage($cgi-param(vs_package)); +$inst = $cgi-param(vs_inst); +$package = $cgi-param(vs_package); $color = $cgi-param(vs_color); $class = $cgi-param(vs_class); +($host, $arch, $os, $tag) = splitinst($inst); +($name, $version, $release) = splitpackage($package); $select = ''; @args = (); @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 22-Sep-2005 13:42:33 Branch: HEAD Handle: 2005092212423300 Modified files: openpkg-tools/cmd bf-ui.pl Log: buildfarm matrix three (instead of two) state total row status for every package Summary: RevisionChanges Path 1.16+20 -10 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.15 -r1.16 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl24 Mar 2005 11:21:11 - 1.15 +++ openpkg-tools/cmd/bf-ui.pl22 Sep 2005 11:42:33 - 1.16 @@ -1168,8 +1168,8 @@ for my $i (@{$rv}) { $row-{$i-[0] . - . $i-[1] . - . $i-[2]} = $i-[3]; } -my ($goodrow, $lastsupport, $line); -$goodrow = 1; +my ($rowtotal, $lastsupport, $line); +$rowtotal = undef; $lastsupport = undef; $line = ; foreach my $inst (@insts) { @@ -1187,28 +1187,38 @@ my $r = /a; if ($color eq green) { $line .= $limg src=\$myurl?page=gifname=icon-ok\ alt=\green\ border=\0\$r; +if (not defined $rowtotal or $rowtotal eq green) { +$rowtotal = green if ($class eq CORE and $support = 2 and $support = 4); +$rowtotal = green if ($class eq BASE and $support == 3); +$rowtotal = green if ($class eq PLUS and $support == 3); +} } elsif ($color eq red) { $line .= $limg src=\$myurl?page=gifname=icon-x\ alt=\red\ border=\0\$r; -$goodrow = 0 if ($class eq CORE and $support = 2 and $support = 4); -$goodrow = 0 if ($class eq BASE and $support == 3); -$goodrow = 0 if ($class eq PLUS and $support == 3); +$rowtotal = red if ($class eq CORE and $support = 2 and $support = 4); +$rowtotal = red if ($class eq BASE and $support == 3); +$rowtotal = red if ($class eq PLUS and $support == 3); } else { $line .= $limg src=\$myurl?page=gifname=icon-dot\ alt=\$color\ border=\0\$r; -$goodrow = 0 if ($class eq CORE and $support = 2 and $support = 4); -$goodrow = 0 if ($class eq BASE and $support == 3); -$goodrow = 0 if ($class eq PLUS and $support == 3); +if (not defined $rowtotal or $rowtotal eq green or $rowtotal eq blue) { +$rowtotal = blue if ($class eq CORE and $support = 2 and $support = 4); +$rowtotal = blue if ($class eq BASE and $support == 3); +$rowtotal = blue if ($class eq PLUS and $support == 3); +} } } $line .= nbsp;a href=\$myurl?page=statussubmit=statusvs_package=$package\$package/a\n; $html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\; -if ($goodrow) { +if ($rowtotal eq green) { $html .= img src=\$myurl?page=gifname=icon-ok\ alt=\green\ border=\0\; } -else { +elsif ($rowtotal eq red) { $html .= img src=\$myurl?page=gifname=icon-x\ alt=\red\ border=\0\; } +else { +$html .= img src=\$myurl?page=gifname=icon-dot\ alt=\blue\ border=\0\; +} $html .= /a]nbsp;; $html .= $line; } @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Ralf S. Engelschall Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 24-Feb-2005 11:20:28 Branch: HEAD Handle: 2005022410202700 Modified files: openpkg-tools/cmd bf-ui.pl Log: reduce size of matrix output from 5.6MB to 3.8MB Summary: RevisionChanges Path 1.14+1 -1 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.13 -r1.14 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl18 Feb 2005 22:59:53 - 1.13 +++ openpkg-tools/cmd/bf-ui.pl24 Feb 2005 10:20:27 - 1.14 @@ -145,7 +145,7 @@ # create objects my $cgi = new CGI; -my $myurl = $cgi-url(); +my $myurl = $cgi-url(-relative = 1); my $dbh = dbinit($dbfile); ## @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 18-Feb-2005 23:59:53 Branch: HEAD Handle: 2005021822595300 Modified files: openpkg-tools/cmd bf-ui.pl Log: remove embedded code in favor of recently published CGI::GuruMeditation Summary: RevisionChanges Path 1.13+1 -92 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.12 -r1.13 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl15 Feb 2005 13:44:50 - 1.12 +++ openpkg-tools/cmd/bf-ui.pl18 Feb 2005 22:59:53 - 1.13 @@ -36,6 +36,7 @@ use DBI; use DBD::SQLite; use MIME::Base64; +use CGI::GuruMeditation; # configure optional debugging $Data::Dumper::Purity = 1; @@ -1375,98 +1376,6 @@ return $dbh; } -# internal handling of fatal errors -BEGIN { -$SIG{__DIE__} = sub { -my ($msg) = @_; -my $hint = ''; -if ($msg =~ m|line\s+(\d+)|) { -my $line = $1; -my $io = new IO::File $0; -my @code = $io-getlines(); -$io-close(); -my $i = -1; -$hint = join(, map { s/^/sprintf(%d: , $line+$i++)/se; $_; } @code[$line-2..$line]); -} -print STDOUT -Content-Type: text/html; charset=ISO-8859-1\n . -\n . -html\n . - head\n . -titleGURU MEDITATION/title\n . -style type=\text/css\\n . - HTML {\n . - width: 100%;\n . - height: auto;\n . - }\n . - BODY {\n . - background: #cc;\n . - margin: 0 0 0 0;\n . - padding:0 0 0 0;\n . - }\n . - DIV.canvas {\n . - background: #00;\n . - border: 20px solid #00;\n . - }\n . - DIV.error1 {\n . - border-top: 4px solid #cc;\n . - border-left: 4px solid #cc;\n . - border-right:4px solid #cc;\n . - border-bottom: 4px solid #cc;\n . - padding: 10px 10px 10px 10px;\n . - font-family: sans-serif, helvetica, arial;\n . - background: #00;\n . - color: #cc;\n . - }\n . - DIV.error2 {\n . - border-top: 4px solid #00;\n . - border-left: 4px solid #00;\n . - border-right:4px solid #00;\n . - border-bottom: 4px solid #00;\n . - padding: 10px 10px 10px 10px;\n . - font-family: sans-serif, helvetica, arial;\n . - background: #00;\n . - color: #cc;\n . - }\n . - SPAN.title {\n . - font-size: 200%;\n . - font-weight: bold;\n . - }\n . - TT.text {\n . - font-weight: bold;\n . - }\n . -/style\n . -script language=\JavaScript\\n . -var count = 0;\n . -function blinker() {\n . -var obj = document.getElementById('error');\n . -if (count++ % 2 == 0) {\n . -obj.className = 'error1';\n . -}\n . -else {\n . -obj.className = 'error2';\n . -}\n . -setTimeout('blinker()', 1000);\n . -}\n . -/script\n . - /head\n . - body onLoad=\setTimeout('blinker()', 1);\\n . -div class=\canvas\\n . - div id=\error\ class=\error1\\n . -span class=\title\GURU MEDITATION/span\n . -p\n . -tt class=\text\\n . -
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 15-Feb-2005 14:44:50 Branch: HEAD Handle: 2005021513445000 Modified files: openpkg-tools/cmd bf-ui.pl Log: visualize support table to track importance grace of instances Summary: RevisionChanges Path 1.12+56 -5 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.11 -r1.12 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl11 Feb 2005 09:11:40 - 1.11 +++ openpkg-tools/cmd/bf-ui.pl15 Feb 2005 13:44:50 - 1.12 @@ -1069,6 +1069,25 @@ push @classes, $c; } +my $supportpri = { +deprecated = 1, +obsoleted = 2, +supported = 3, +tentative = 4, +forecasted = 5 +}; +$rv = $dbh-selectall_hashref(SELECT su_inst_host, su_support FROM support;, su_inst_host); +if (not $rv) { +die ERROR:$0: SQLite error: .$dbh-errstr.\n; +} + +my $hostsupport = {}; +foreach my $i (keys %{$rv}) { +my $s = %{$rv}-{$i}-{su_support}; +my $p = $supportpri-{$s} || 6; +$hostsupport-{$i} = $p; +} + my @insts; $rv = $dbh-selectall_arrayref(SELECT DISTINCT st_inst_host, st_inst_arch, st_inst_os . FROM status . @@ -1076,7 +1095,15 @@ if (not $rv) { die ERROR:$0: SQLite error: .$dbh-errstr.\n; } -foreach my $i (@{$rv}) { + +sub bysupport { +my $supporta = $hostsupport-{$a-[0]} || 7; +my $supportb = $hostsupport-{$b-[0]} || 7; +if ($supporta == $supportb) { return $a = $b } +return $supporta-$supportb; +} + +foreach my $i (sort bysupport @{$rv}) { push @insts, @{$i}-[0] . - . @{$i}-[1] . - . @{$i}-[2]; } @@ -1141,25 +1168,49 @@ for my $i (@{$rv}) { $row-{$i-[0] . - . $i-[1] . - . $i-[2]} = $i-[3]; } +my ($goodrow, $lastsupport, $line); +$goodrow = 1; +$lastsupport = undef; +$line = ; foreach my $inst (@insts) { my ($host, $arch, $os, $tag) = splitinst($inst . -openpkg); # bsd1-ix86-freebsd5.3-openpkg my $logfile = $inst/$package.log.$host.$arch-$os-$tag; +# support +my $support = $hostsupport-{$host}; +$line .= if (defined $lastsupport and $lastsupport != $support); +$lastsupport = $support; + # color my $color = $row-{$inst}; my $l = a href=\$myurl?page=logmode=tailfile=$logfile\; my $r = /a; if ($color eq green) { -$html .= $limg src=\$myurl?page=gifname=icon-ok\ alt=\green\ border=\0\$r; +$line .= $limg src=\$myurl?page=gifname=icon-ok\ alt=\green\ border=\0\$r; } elsif ($color eq red) { -$html .= $limg src=\$myurl?page=gifname=icon-x\ alt=\red\ border=\0\$r; +$line .= $limg src=\$myurl?page=gifname=icon-x\ alt=\red\ border=\0\$r; +$goodrow = 0 if ($class eq CORE and $support = 2 and $support = 4); +$goodrow = 0 if ($class eq BASE and $support == 3); +$goodrow = 0 if ($class eq PLUS and $support == 3); } else { -$html .= $limg src=\$myurl?page=gifname=icon-dot\ alt=\$color\ border=\0\$r; +$line .= $limg src=\$myurl?page=gifname=icon-dot\ alt=\$color\ border=\0\$r; +$goodrow = 0 if ($class eq CORE and $support = 2 and $support = 4); +$goodrow = 0 if ($class eq BASE and $support == 3); +$goodrow = 0 if ($class eq PLUS and $support == 3); } } -$html .= nbsp;a href=\$myurl?page=statussubmit=statusvs_package=$package\$package/a\n; +$line .= nbsp;a href=\$myurl?page=statussubmit=statusvs_package=$package\$package/a\n; +$html .= [a href=\$myurl?page=statussubmit=statusvs_package=$package\;
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 11-Feb-2005 10:11:40 Branch: HEAD Handle: 2005021109114000 Modified files: openpkg-tools/cmd bf-ui.pl Log: change default status query to empty (match all) Summary: RevisionChanges Path 1.11+2 -2 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.10 -r1.11 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl4 Feb 2005 09:41:15 - 1.10 +++ openpkg-tools/cmd/bf-ui.pl11 Feb 2005 09:11:40 - 1.11 @@ -875,12 +875,12 @@ $html .= $cgi-popup_menu( -name = vs_color, -value= [EMAIL PROTECTED], --default = red, +-default = , ) . \n; $html .= $cgi-popup_menu( -name = vs_class, -value= [EMAIL PROTECTED], --default = CORE, +-default = , ) . \n; $html .= $cgi-hidden(-name='page', -value = status); $html .= $cgi-end_form; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 02-Feb-2005 10:35:23 Branch: HEAD Handle: 2005020209352300 Modified files: openpkg-tools/cmd bf-ui.pl Log: allow interleaved output generation and printing. This is especially useful for the matrix function and removes ugly special cases from embedded objects (css, gif, jpg) Summary: RevisionChanges Path 1.9 +156 -134 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.8 -r1.9 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl1 Feb 2005 14:30:45 - 1.8 +++ openpkg-tools/cmd/bf-ui.pl2 Feb 2005 09:35:23 - 1.9 @@ -146,101 +146,150 @@ my $cgi = new CGI; my $myurl = $cgi-url(); my $dbh = dbinit($dbfile); -my $html = new String::Divert; -$html-overload(1); - -## -## Generate Canvas -## - -# generate outer canvas -$html .= table class=\bf\\n; -$html .= ; $html-fold(bf); -$html .= /table\n; ## ## Generate View Part ## -$html bf; if($cgi-param(page) eq css) { -$html .= cssexit(); +my $out; +$out = ''; +$out .= viewhttp('text/html', '+10s'); +$out .= viewcss(); +print STDOUT $out; } elsif ($cgi-param(page) eq jpg) { -$html .= jpgexit($cgi-param(name)); +my $out; +$out = ''; +$out .= viewhttp('image/jpg', '+600s'); +$out .= viewjpg($cgi-param(name)); +print STDOUT $out; } elsif ($cgi-param(page) eq gif) { -$html .= gifexit($cgi-param(name)); +my $out; +$out = ''; +$out .= viewhttp('image/gif', '+600s'); +$out .= viewgif($cgi-param(name)); +print STDOUT $out; } elsif ($cgi-param(page) eq processing) { -$html .= viewmain(); -$html .= viewprocessingform(); -$html .= viewprocessing(); +my $out; +$out = ''; +$out .= viewhttp(undef, undef, $cgi-param(vp_autorefresh)); +$out .= viewhtmlhead(); +$out .= viewmainform(); +$out .= viewprocessingform(); +$out .= viewstatusform(); +$out .= viewmatrixform(); +$out .= hr; +print STDOUT $out; +$out = ''; +$out .= viewprocessing(); +$out .= viewhtmltail(); +print STDOUT $out; } elsif ($cgi-param(page) eq status) { -$html .= viewmain(); -$html .= viewstatusform(); -$html .= viewstatus(); +my $out; +$out = ''; +$out .= viewhttp(); +$out .= viewhtmlhead(); +$out .= viewmainform(); +$out .= viewprocessingform(); +$out .= viewstatusform(); +$out .= viewmatrixform(); +$out .= hr; +print STDOUT $out; +$out = ''; +$out .= viewstatus(); +$out .= viewhtmltail(); +print STDOUT $out; } elsif ($cgi-param(page) eq matrix) { -$html .= viewmain(); -$html .= viewmatrix(); +my $out; +$out = ''; +$out .= viewhttp(); +$out .= viewhtmlhead(); +$out .= viewmainform(); +$out .= viewprocessingform(); +$out .= viewstatusform(); +$out .= viewmatrixform(); +$out .= hr; +print STDOUT $out; +$out = ''; +printmatrix(); +$out .= viewhtmltail(); +print STDOUT $out; } elsif ($cgi-param(page) eq log) { -$html .= viewmain(); -$html .= viewlog($cgi-param(file), $cgi-param(mode)); +my $out; +$out = ''; +$out .= viewhttp(); +$out .= viewhtmlhead(); +$out .= viewmainform(); +$out .= viewprocessingform(); +$out .= viewstatusform(); +$out .= viewmatrixform(); +$out .= hr; +print STDOUT $out; +$out = ''; +printlog($cgi-param(file), $cgi-param(mode)); +$out .= viewhtmltail(); +print STDOUT $out; } else { +my $out; $cgi-delete_all(); -$html .= h2a href=\ . $cgi-url() . ?page=processing\processing/a/h2\n; -$html .= viewprocessingform(); -$html .= shows build farm package processing in real time\n; - -$html .= h2a href=\ . $cgi-url() . ?page=status\status/a/h2\n; -$html .= viewstatusform(); -$html .= shows package status\n; - -$html .= h2a href=\ . $cgi-url() . ?page=matrix\matrix/a/h2\n; -$html .= shows grand total package status\n; +$out .= viewhttp(); +$out .= viewhtmlhead(); +$out .= viewmainform(); +$out .= viewprocessingform(); +$out .= viewstatusform(); +$out .= viewmatrixform(); +
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 01-Feb-2005 14:35:13 Branch: HEAD Handle: 2005020113351300 Modified files: openpkg-tools/cmd bf-ui.pl Log: cosmetics Summary: RevisionChanges Path 1.6 +21 -15 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.5 -r1.6 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl1 Feb 2005 13:08:06 - 1.5 +++ openpkg-tools/cmd/bf-ui.pl1 Feb 2005 13:35:13 - 1.6 @@ -144,6 +144,7 @@ # create objects my $cgi = new CGI; +my $myurl = $cgi-url(); my $dbh = dbinit($dbfile); my $html = new String::Divert; $html-overload(1); @@ -209,23 +210,12 @@ ## # HTML skeleton -my $myurl = $cgi-url(); my $skel = ; $skel .= html\n; $skel .= head\n; -$skel .= link rel=\stylesheet\ type=\text/css\ href=\bfui.cgi?page=css\\n; -$skel .= style type=\text/css\\n; -$skel .= html {\n; -$skel .= background: #cc;\n; -$skel .= }\n; -$skel .= h1 {\n; -$skel .= font-family: sans-serif, helvetica, arial;\n; -$skel .= font-weight: bold;\n; -$skel .= font-size: 300%;\n; -$skel .= }\n; -$skel .= /style\n; +$skel .= link rel=\stylesheet\ type=\text/css\ href=\$myurl?page=css\\n; $skel .= /head\n; -$skel .= body background=\$myurl?page=jpgname=bg\\n; +$skel .= body\n; $skel .= h1OpenPKG build farm/h1\n; $skel .= %BODY%\n; $skel .= /body\n; @@ -257,11 +247,27 @@ $css .= ** bfui.cgi - OpenPKG build farm user interface CGI\n; $css .= */\n; $css .= \n; +$css .= HTML {\n; +$css .= background: #cc;\n; +$css .= }\n; +$css .= BODY {\n; +$css .= background-image: url($myurl?page=jpgname=bg);\n; +$css .= border: 1px solid #00;\n; +$css .= padding: 20px 20px 20px 20px;\n; +$css .= }\n; $css .= TABLE.bf {\n; -$css .= background: #f0f0f0;\n; $css .= font-family: sans-serif, helvetica, arial;\n; $css .= }\n; -$css .= \n; +$css .= H1 {\n; +$css .= font-family: sans-serif, helvetica, arial;\n; +$css .= font-weight: bold;\n; +$css .= font-size: 300%;\n; +$css .= }\n; +$css .= H2 {\n; +$css .= font-family: sans-serif, helvetica, arial;\n; +$css .= font-weight: bold;\n; +$css .= font-size: 140%;\n; +$css .= }\n; $css .= .bf TD.browse {\n; $css .= width: 100%;\n; $css .= background: #d0d0d0;\n; @@ . __ The OpenPKG Projectwww.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org
[CVS] OpenPKG: openpkg-tools/cmd/ bf-ui.pl
OpenPKG CVS Repository http://cvs.openpkg.org/ Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-toolsDate: 26-Jan-2005 16:58:39 Branch: HEAD Handle: 2005012615583900 Modified files: openpkg-tools/cmd bf-ui.pl Log: support and use embedded graphics artwork Summary: RevisionChanges Path 1.4 +454 -9 openpkg-tools/cmd/bf-ui.pl patch -p0 '@@ .' Index: openpkg-tools/cmd/bf-ui.pl $ cvs diff -u -r1.3 -r1.4 bf-ui.pl --- openpkg-tools/cmd/bf-ui.pl26 Jan 2005 14:03:52 - 1.3 +++ openpkg-tools/cmd/bf-ui.pl26 Jan 2005 15:58:39 - 1.4 @@ -35,6 +35,7 @@ use String::Divert; use DBI; use DBD::SQLite; +use MIME::Base64; # configure optional debugging $Data::Dumper::Purity = 1; @@ -161,9 +162,15 @@ ## $html bf; -if ($cgi-param(page) eq css) { +if($cgi-param(page) eq css) { $html .= cssexit(); } +elsif ($cgi-param(page) eq jpg) { +$html .= jpgexit($cgi-param(name)); +} +elsif ($cgi-param(page) eq gif) { +$html .= gifexit($cgi-param(name)); +} elsif ($cgi-param(page) eq processing) { $html .= viewmain(); $html .= viewprocessingform(); @@ -202,6 +209,7 @@ ## # HTML skeleton +my $myurl = $cgi-url(); my $skel = ; $skel .= html\n; $skel .= head\n; @@ -217,7 +225,7 @@ $skel .= }\n; $skel .= /style\n; $skel .= /head\n; -$skel .= body\n; +$skel .= body background=\$myurl?page=jpgname=bg\\n; $skel .= h1OpenPKG build farm/h1\n; $skel .= %BODY%\n; $skel .= /body\n; @@ -301,6 +309,441 @@ exit(0); } +sub jpgexit () { +my ($name) = @_; +$name .= .jpg; + +my $jpg = { +bg.jpg = 'EOT' +/9j/4AAQSkZJRgABAQEASABIAAD//gAqQ3JlYXRlZCB3aXRoIEdJTVAgYnkgUmFsZiBTLiBFbmdl +bHNjaGFsbP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwS +GBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYW +FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIB9AFAAMBIgACEQEDEQH/xAAbAAEB +AQEBAQEBAgEDBAUGCP/EACUQAQEBAAIDAQEBAQEAAwEBAAABAgMRBCExEkFRYSIT +FDIFcf/EABcBAQEBAQABAgP/xAAaEQEBAQEBAQEAARExIUES +/9oADAMBAAIRAxEAPwD+/gAAZdSfaDRP/wAmP9JyYv8ATRQy +alaA +M7jQ +AAAL6BO71Hk8rm6z6rv5W5MenzObdurGbVkTyc+/19bw+Rrv25anaL3PjKvq+Nzy/a9WeTN/ +r4OOTcerxue/2rKY+tLK15uHnzf6753NfGtZUAoA + +AAACdbkc98+ZKmi9ckiNeRif14vJ8iW+q8nJyat+pq4+r/8AYzdfXXHJLHxMb1+u ++3s8fm667qauPpwceLmzZ06y9xtloAAACeW9ZVb1HDyeSfjpKPL5PJ36eTU70vktuzr0 +w259MuXXqssBxuWX9T463LPyCePk3P693ic8n/6rw6z/AIm3U+UlR9zHNmumbL8fH8fmueu693j+ +Rn+tSpj1icbmvimk +AABmr0575pkF6105 +7585efyPJjxc/Lb/AFm1cezm8me3j5+W6vquNtv9IysZr9X+tk/1UjeoLif43Nvf069tQrtwcll9 +17+HyJZ0+X7Vxaub9alTH2c7lU8Pj8/fp68b7jUqWLAVAAAC+oCeW9YfP8jk/wDVj1+Ryf8A +ix83l7vJ2xa1GX/9dqnxk+NRRshPjQT+T8rkb1AcrlGsu9ibkR59Sz43GtS/XTWUayK9vi+RMz3X +qxzzT4vWpfr0cHL+ftXUx9fN7jXk4PJnXXb1Y1+p21Ky0BQA + +ABm9dQGp5Nflx5PI/P8AXl8jy+59TVx35vIkeTm5+/648nJ+/wCufXbOq3k1df1HVdJl +v5RUZipFflsgIF9HQJ6rZFflsgJ6LmrgCeK3N7ezx+efHk1O4zjv5vfYj6+N9xbw+Nz9+u3rxvuN +ypYsBUE8nrFVfUcOfl/82JR5PI5P/XXbjZ3W8vvfbZ8YaTI3poANkOoDZ8AAK2RvQOdibl1s +TYDjrKNZvb0XKdZBz493Ovr3eP5UmZO3h3hme836Sj7PHyfqOk+Pl8Hkdeu3s4ef9f1qVMegZL3G +tIAA +AA48vL+f683N5Xrrt5+Xn/V+uOr3WNaxfLzfr+uN +naphWcoqMYdJlUyqQEzLev8AigEijqiJ6b0rqsBnTFJFAb0Ixmp3FdRgJ47+K9fi8/bybhx6/FIP +r412t4vE5v117ezN7biVoCoAX4CeT/8AFfO8nk/99PZz8nWbHzue98jNqxs93tUicfFZ+Mq0ABsZ +02egLCRoAAADZAZ1/wAZYss/4DjrLnrD0WJsB5vz1XXi5fzW6y5ax1QfQ8fyf167evN7j4vHr8ae +vh8rv121Klj6A48XL+nZpAAA +AAAHwvz3WzKpFSObaZFSNkbI +BI3qtkBGdNkG9AwABmml+AlNUdCpUdAgy/GstBOkaVakV08ff4r6Hi8n66fKt6d/G5fz0sqV9Ycf +H5P07NsjNf8A5rUcuv8AzQeLyt9a6ebV7qvL1/7c5XOtLzVyuefq4CmyMbkGgAAQBsjYAAA3LWZa