From c0a4875c59207c7a6232890c710ea813f404a251 Mon Sep 17 00:00:00 2001 From: Flavio Poletti Date: Tue, 14 Dec 2021 23:09:55 +0100 Subject: Add polettix's solution to challenge-143 --- challenge-143/polettix/blog.txt | 1 + challenge-143/polettix/blog1.txt | 1 + challenge-143/polettix/perl/ch-1.pl | 143 ++++++++++++++++++++++++++++++++++ challenge-143/polettix/perl/ch-2.pl | 19 +++++ challenge-143/polettix/raku/ch-1.raku | 43 ++++++++++ challenge-143/polettix/raku/ch-2.raku | 19 +++++ 6 files changed, 226 insertions(+) create mode 100644 challenge-143/polettix/blog.txt create mode 100644 challenge-143/polettix/blog1.txt create mode 100644 challenge-143/polettix/perl/ch-1.pl create mode 100644 challenge-143/polettix/perl/ch-2.pl create mode 100644 challenge-143/polettix/raku/ch-1.raku create mode 100644 challenge-143/polettix/raku/ch-2.raku diff --git a/challenge-143/polettix/blog.txt b/challenge-143/polettix/blog.txt new file mode 100644 index 0000000000..3da28beca3 --- /dev/null +++ b/challenge-143/polettix/blog.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2021/12/15/pwc143-calculator/ diff --git a/challenge-143/polettix/blog1.txt b/challenge-143/polettix/blog1.txt new file mode 100644 index 0000000000..7a97631ede --- /dev/null +++ b/challenge-143/polettix/blog1.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2021/12/16/stealthy-number/ diff --git a/challenge-143/polettix/perl/ch-1.pl b/challenge-143/polettix/perl/ch-1.pl new file mode 100644 index 0000000000..ca6254bb70 --- /dev/null +++ b/challenge-143/polettix/perl/ch-1.pl @@ -0,0 +1,143 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; + +say parse(shift); + +# main entry point, useful for extracting the return value +sub parse ($exp) { return pf_PARSE(expression())->($exp)->[0] } + +# [+/- [+/- [...]]] | +sub expression { pf_alternatives(canned_ops(term(), '-', '+'), group()) } + +# [* [* [...]]] +sub term { canned_ops(factor(), '*') } + +# | +sub factor { pf_alternatives(value(), group()) } + +# '(' ')' +sub group { + return sub { + state $matcher = pf_sequence('(', expression(), ')'); + my $match = $matcher->(@_) or return; + return $match->[1]; + } +} + +# some integer without sign +sub value { pf_regexp(qr{\s*(0|[1-9]\d*)\s*}) } + +# implementation of operand [op operand [op operand [...]]] +sub canned_ops ($operand, @operators) { + my $ops = join '|', map { quotemeta } @operators ; + my $op_opd = pf_sequence(pf_regexp(qr{\s*($ops)\s*}), $operand); + my $matcher = pf_sequence($operand, pf_repeated($op_opd)); + return sub { + my $match = $matcher->(@_) or return; + my $retval = $match->[0][0]; + for my $opv ($match->[1]->@*) { + my ($op, $val) = map { $_->[0] }$opv->@*; + if ($op eq '*') { $retval *= $val } + elsif ($op eq '+') { $retval += $val } + elsif ($op eq '-') { $retval -= $val } + } + return [ $retval ]; + } +} + + +# parsing facilities +sub pf_alternatives { + my (@A, $r) = @_; + return sub { (defined($r = $_->($_[0])) && return $r) for @A; return }; +} + +sub pf_exact { + my ($wlen, $what, @retval) = (length($_[0]), @_); + unshift @retval, $what unless scalar @retval; + return sub { + my ($rtext, $pos) = ($_[0], pos(${$_[0]}) || 0); + return if length($$rtext) - $pos < $wlen; + return if substr($$rtext, $pos, $wlen) ne $what; + pos($$rtext) = $pos + $wlen; + return [@retval]; + }; +} + +sub pf_list { + my ($w, $s, $sep_as_last) = @_; # (what, separator, sep_as_last) + $s = pf_exact($s) if defined($s) && !ref($s); + return sub { + defined(my $base = $w->($_[0])) or return; + my $rp = sub { return ($s && !($s->($_[0])) ? () : $w->($_[0])) }; + my $rest = pf_repeated($rp)->($_[0]); + $s->($_[0]) if $s && $sep_as_last; # attempt last separator? + unshift $rest->@*, $base; + return $rest; + }; +} + +sub pf_match_and_filter { + my ($matcher, $filter) = @_; + return sub { + my $match = $matcher->($_[0]) or return; + return $filter->($match); + }; +} + +sub pf_PARSE { + my ($expression) = @_; + return sub { + my $rtext = ref $_[0] ? $_[0] : \$_[0]; # avoid copying + my $ast = $expression->($rtext) or die "nothing parsed\n"; + my $pos = pos($$rtext) || 0; + my $delta = length($$rtext) - $pos; + return $ast if $delta == 0; + my $offending = substr $$rtext, $pos, 72; + substr $offending, -3, 3, '...' if $delta > 72; + die "unknown sequence starting at $pos <$offending>\n"; + }; +} + +sub pf_regexp { + my ($rx, @forced_retval) = @_; + return sub { + scalar(${$_[0]} =~ m{\G()$rx}cgmxs) or return; + return scalar(@forced_retval) ? [@forced_retval] : [$2]; + }; +} + +sub pf_repeated { # *(0,-1) ?(0,1) +(1,-1) {n,m}(n,m) + my ($w, $m, $M) = ($_[0], $_[1] || 0, (defined($_[2]) ? $_[2] : -1)); + return sub { + my ($rtext, $pos, $lm, $lM, @retval) = ($_[0], pos ${$_[0]}, $m, $M); + while ($lM != 0) { # lm = local minimum, lM = local maximum + defined(my $piece = $w->($rtext)) or last; + $lM--; + push @retval, $piece; + if ($lm > 0) { --$lm } # no success yet + else { $pos = pos $$rtext } # ok, advance + } + pos($$rtext) = $pos if $lM != 0; # maybe "undo" last attempt + return if $lm > 0; # failed to match at least $min + return \@retval; + }; +} + +sub pf_sequence { + my @items = map { ref $_ ? $_ : pf_exact($_) } @_; + return sub { + my ($rtext, $pos, @rval) = ($_[0], pos ${$_[0]}); + for my $item (@items) { + if (defined(my $piece = $item->($rtext))) { push @rval, $piece } + else { pos($$rtext) = $pos; return } # failure, revert back + } + return \@rval; + }; +} + +{ my $r; sub pf_ws { $r ||= pf_regexp(qr{(\s+)}) } } +{ my $r; sub pf_wso { $r ||= pf_regexp(qr{(\s*)}) } } diff --git a/challenge-143/polettix/perl/ch-2.pl b/challenge-143/polettix/perl/ch-2.pl new file mode 100644 index 0000000000..b6829b205c --- /dev/null +++ b/challenge-143/polettix/perl/ch-2.pl @@ -0,0 +1,19 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; + +sub is_stealthy ($n) { + my %match; + for my $k (1 .. sqrt($n)) { + next if $n % $k; + my $sum = $k + $n / $k; + return 1 if $match{$sum - 1} || $match{$sum + 1}; + $match{$sum} = 1; + } + return 0; +} + +my @inputs = @ARGV ? @ARGV : qw< 36 12 6 >; +say "$_ -> " . is_stealthy($_) for @inputs; diff --git a/challenge-143/polettix/raku/ch-1.raku b/challenge-143/polettix/raku/ch-1.raku new file mode 100644 index 0000000000..8536409cdf --- /dev/null +++ b/challenge-143/polettix/raku/ch-1.raku @@ -0,0 +1,43 @@ +#!/usr/bin/env raku +use v6; + +grammar Calc { + rule TOP { ^ $ } + rule expression { + %% $=(['+'|'-']) | } + rule term { + %% $=(['*']) } + rule factor { | } + rule group { '(' ')' } + token value { 0 | <[ 1..9 ]> \d* } +} + +class Actions { + method TOP ($/) { $/.make: $.made } + method expression ($/) { + if $ { $/.make: $.made } + else { $/.make: self!calc($, $) } + } + method term ($/) { $/.make: self!calc($, $) } + method factor ($/) { + if $ { $/.make: $.made } + else { $/.make: $.made } + } + method group ($/) { $/.make: $.made } + method value ($/) { $/.make: +$/ } + + method !calc ($operands, $operators) { + my ($retval, @vals) = $operands».made; + my @ops = $operators.map: ~*; + for @ops Z @vals -> ($_, $val) { + when '*' { $retval *= $val } + when '+' { $retval += $val } + when '-' { $retval -= $val } + } + return $retval; + } +} + +sub MAIN ($expression) { + my $calc = Calc.parse($expression, actions => Actions) + or die 'cannot parse input expression'; + say $calc.made; +} diff --git a/challenge-143/polettix/raku/ch-2.raku b/challenge-143/polettix/raku/ch-2.raku new file mode 100644 index 0000000000..717ad9dcc2 --- /dev/null +++ b/challenge-143/polettix/raku/ch-2.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku +use v6; +subset PosInt of Int where * > 0; + +sub is-stealthy (PosInt:D $n) { + my $match = SetHash.new; + for 1 .. $n.sqrt.Int -> $k { + next unless $n %% $k; + my Int() $sum = $k + $n / $k; + return 1 if $match (&) ($sum - 1, $sum + 1); + $match.set: $sum; + } + return 0; +} + +sub MAIN (*@args) { + @args = 36, 12, 6 unless @args.elems; + "$_ -> {is-stealthy($_)}".put for @args; +} -- cgit From bd512d5cf0449903331c177f9d96184a5d044fed Mon Sep 17 00:00:00 2001 From: Luis Mochan Date: Tue, 14 Dec 2021 17:16:51 -0600 Subject: Solve PWC143 --- challenge-143/wlmb/blog.txt | 1 + challenge-143/wlmb/perl/ch-1.pl | 63 +++++++++++++++++++++++++++++++++++++++++ challenge-143/wlmb/perl/ch-2.pl | 23 +++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 challenge-143/wlmb/blog.txt create mode 100755 challenge-143/wlmb/perl/ch-1.pl create mode 100755 challenge-143/wlmb/perl/ch-2.pl diff --git a/challenge-143/wlmb/blog.txt b/challenge-143/wlmb/blog.txt new file mode 100644 index 0000000000..153d179376 --- /dev/null +++ b/challenge-143/wlmb/blog.txt @@ -0,0 +1 @@ +https://wlmb.github.io/2021/12/13/PWC143/ diff --git a/challenge-143/wlmb/perl/ch-1.pl b/challenge-143/wlmb/perl/ch-1.pl new file mode 100755 index 0000000000..cc18d4ac91 --- /dev/null +++ b/challenge-143/wlmb/perl/ch-1.pl @@ -0,0 +1,63 @@ +#!/usr/bin/env perl +# Perl weekly challenge 143 +# Task 1: calculator +# +# See https://wlmb.github.io/2021/12/13/PWC143/#task-1-calculator +use v5.12; +use warnings; +use Scalar::Util qw(looks_like_number); +my $original_string; +my $current; +my $next; +foreach (@ARGV){ + my $original_string=$current=$_; + token(); + my $result=expression(); + say "$original_string=$result"; +} + +sub token { + $next=[$1,$1], return if $current=~s{^\s*([()*/+-])}{}; # symbol + $next=['N',$1], return + if $current=~s{^\s*([^()*/+\-\t\n ]*)}{} + and looks_like_number($1); # number? + $next=[undef,undef], return if $current=~/^\s*$/; # nothing + die "Unrecognizable input: $current"; +} + +sub expression { + my $result=term(); + while(1){ + my $op=$next->[0]; + last unless defined $op && $op=~m{[+-]}; + token(); + $result+=term(),next if $op eq '+'; + $result-=term(),next if $op eq '-'; + } + return $result; +} + +sub term { + my $result=simple(); + while(1){ + my $op=$next->[0]; + last unless defined $op && $op=~m{[*/]}; + token(); + $result*=simple(),next if $op eq '*'; + $result/=simple(),next if $op eq '/'; + } + return $result; +} +sub simple { + my $op=$next->[0]; + my $val=$next->[1]; + die "Unrecognized expression: $current" unless defined $op && $op=~/[-(N]/; + token(); + return -simple() if $op eq '-'; + return $val if $op eq 'N'; + my $result=expression(); + $op=$next->[0]; + die "Unbalanced parenthesis: $current" unless defined $op and $op eq ')'; + token(); + return $result; +} diff --git a/challenge-143/wlmb/perl/ch-2.pl b/challenge-143/wlmb/perl/ch-2.pl new file mode 100755 index 0000000000..f1deb04daa --- /dev/null +++ b/challenge-143/wlmb/perl/ch-2.pl @@ -0,0 +1,23 @@ +#!/usr/bin/env perl +# Perl weekly challenge 143 +# Task 1: Stealthy number +# +# See https://wlmb.github.io/2021/12/13/PWC143/#task-2-stealthy-number +use v5.12; +use warnings; +use PDL; +use PDL::NiceSlice; +foreach my $N(@ARGV){ + my $Q=sqrt($N); # largest possible small divisor + my $s=(sequence($Q)+1); + my $d=$s->where($N % $s == 0); # list of divisors<=$Q + my $c=$d->cat($d(*)); # cartesian product of divisors + my $mask=$d+$N/$d==($d+$N/$d+1)->(*); + # Get pairs of divisors that obey the stealthy condition + my $d2=$c->whereND(($d+$N/$d)==($d+$N/$d+1)->(*)); + my $out=$d2->nelem?1:0; + say "\nInput: $N Output: ", $out; + say "since ", $_((0)),"+",$N/$_((0)), + "==",$_((1)),"+",$N/$_((1)),"+1" + foreach $d2->transpose->dog; +} -- cgit From f305d3a437942d88c1f332598f836f2714a7fca8 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Wed, 15 Dec 2021 10:17:45 +0000 Subject: - Added solutions by Flavio Poletti. --- stats/pwc-current.json | 225 ++-- stats/pwc-language-breakdown-summary.json | 58 +- stats/pwc-language-breakdown.json | 2050 ++++++++++++++--------------- stats/pwc-leaders.json | 394 +++--- stats/pwc-summary-1-30.json | 108 +- stats/pwc-summary-121-150.json | 102 +- stats/pwc-summary-151-180.json | 32 +- stats/pwc-summary-181-210.json | 108 +- stats/pwc-summary-211-240.json | 114 +- stats/pwc-summary-241-270.json | 42 +- stats/pwc-summary-31-60.json | 114 +- stats/pwc-summary-61-90.json | 118 +- stats/pwc-summary-91-120.json | 34 +- stats/pwc-summary.json | 558 ++++---- 14 files changed, 2040 insertions(+), 2017 deletions(-) diff --git a/stats/pwc-current.json b/stats/pwc-current.json index bbbfa7ede1..f46ea2e0cb 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,19 +1,107 @@ { + "tooltip" : { + "headerFormat" : "{series.name}
", + "followPointer" : 1, + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 2, + "name" : "Alexander Pankoff", + "drilldown" : "Alexander Pankoff" + }, + { + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby", + "y" : 3 + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "name" : "Flavio Poletti", + "drilldown" : "Flavio Poletti", + "y" : 6 + }, + { + "y" : 5, + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari" + }, + { + "name" : "Mohammad S Anwar", + "drilldown" : "Mohammad S Anwar", + "y" : 1 + }, + { + "y" : 1, + "name" : "Olivier Delouya", + "drilldown" : "Olivier Delouya" + }, + { + "name" : "Paulo Custodio", + "drilldown" : "Paulo Custodio", + "y" : 2 + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Robert DiCicco", + "name" : "Robert DiCicco" + }, + { + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West", + "y" : 4 + }, + { + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", + "y" : 2 + } + ], + "name" : "The Weekly Challenge - 143" + } + ], + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" + }, + "title" : { + "text" : "The Weekly Challenge - 143" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, "drilldown" : { "series" : [ { - "name" : "Alexander Pankoff", - "id" : "Alexander Pankoff", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Alexander Pankoff", + "id" : "Alexander Pankoff" }, { - "name" : "Dave Jacoby", - "id" : "Dave Jacoby", "data" : [ [ "Perl", @@ -23,7 +111,9 @@ "Blog", 1 ] - ] + ], + "id" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { "data" : [ @@ -36,18 +126,36 @@ "name" : "E. Choroba" }, { + "name" : "Flavio Poletti", + "id" : "Flavio Poletti", "data" : [ + [ + "Perl", + 2 + ], [ "Raku", 2 ], [ "Blog", - 3 + 2 ] - ], + ] + }, + { + "id" : "Luca Ferrari", "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 3 + ] + ] }, { "name" : "Mohammad S Anwar", @@ -80,8 +188,8 @@ "id" : "Paulo Custodio" }, { - "name" : "Peter Campbell Smith", "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -94,14 +202,14 @@ ] }, { + "id" : "Robert DiCicco", + "name" : "Robert DiCicco", "data" : [ [ "Perl", 2 ] - ], - "name" : "Robert DiCicco", - "id" : "Robert DiCicco" + ] }, { "name" : "Roger Bell_West", @@ -136,98 +244,13 @@ "plotOptions" : { "series" : { "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" }, "borderWidth" : 0 } }, - "series" : [ - { - "colorByPoint" : 1, - "data" : [ - { - "name" : "Alexander Pankoff", - "drilldown" : "Alexander Pankoff", - "y" : 2 - }, - { - "y" : 3, - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby" - }, - { - "drilldown" : "E. Choroba", - "name" : "E. Choroba", - "y" : 2 - }, - { - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 5 - }, - { - "y" : 1, - "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar" - }, - { - "y" : 1, - "name" : "Olivier Delouya", - "drilldown" : "Olivier Delouya" - }, - { - "y" : 2, - "name" : "Paulo Custodio", - "drilldown" : "Paulo Custodio" - }, - { - "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith", - "y" : 3 - }, - { - "name" : "Robert DiCicco", - "drilldown" : "Robert DiCicco", - "y" : 2 - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 4 - }, - { - "y" : 2, - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke" - } - ], - "name" : "The Weekly Challenge - 143" - } - ], - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "The Weekly Challenge - 143" - }, - "xAxis" : { - "type" : "category" - }, "subtitle" : { - "text" : "[Champions: 11] Last updated at 2021-12-14 16:49:18 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
", - "followPointer" : 1 - }, - "legend" : { - "enabled" : 0 + "text" : "[Champions: 12] Last updated at 2021-12-15 10:16:03 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 3f7375f0da..3413f86fb8 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2021]" + }, "yAxis" : { + "min" : 0, "title" : { "text" : null - }, - "min" : 0 + } }, - "legend" : { - "enabled" : "false" + "subtitle" : { + "text" : "Last updated at 2021-12-15 10:16:03 GMT" }, "tooltip" : { "pointFormat" : "{point.y:.0f}" }, - "subtitle" : { - "text" : "Last updated at 2021-12-14 16:49:18 GMT" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - } - }, - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2021]" - }, "series" : [ { - "name" : "Contributions", "data" : [ [ "Blog", - 2094 + 2096 ], [ "Perl", - 6871 + 6873 ], [ "Raku", - 4154 + 4156 ] ], + "name" : "Contributions", "dataLabels" : { - "align" : "right", "color" : "#FFFFFF", "y" : 10, "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" }, - "rotation" : -90, "format" : "{point.y:.0f}", + "align" : "right", + "rotation" : -90, "enabled" : "true" } } - ] + ], + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } + } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index a531baa2c8..be68b2433f 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -2,732 +2,11 @@ "title" : { "text" : "The Weekly Challenge Language" }, - "chart" : { - "type" : "column" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, - "series" : [ - { - "colorByPoint" : "true", - "data" : [ - { - "y" : 161, - "name" : "#001", - "drilldown" : "001" - }, - { - "y" : 125, - "name" : "#002", - "drilldown" : "002" - }, - { - "y" : 83, - "name" : "#003", - "drilldown" : "003" - }, - { - "drilldown" : "004", - "name" : "#004", - "y" : 99 - }, - { - "y" : 78, - "name" : "#005", - "drilldown" : "005" - }, - { - "y" : 58, - "drilldown" : "006", - "name" : "#006" - }, - { - "name" : "#007", - "drilldown" : "007", - "y" : 64 - }, - { - "y" : 78, - "drilldown" : "008", - "name" : "#008" - }, - { - "y" : 76, - "drilldown" : "009", - "name" : "#009" - }, - { - "y" : 65, - "name" : "#010", - "drilldown" : "010" - }, - { - "drilldown" : "011", - "name" : "#011", - "y" : 85 - }, - { - "name" : "#012", - "drilldown" : "012", - "y" : 89 - }, - { - "name" : "#013", - "drilldown" : "013", - "y" : 85 - }, - { - "name" : "#014", - "drilldown" : "014", - "y" : 101 - }, - { - "name" : "#015", - "drilldown" : "015", - "y" : 99 - }, - { - "drilldown" : "016", - "name" : "#016", - "y" : 71 - }, - { - "y" : 84, - "drilldown" : "017", - "name" : "#017" - }, - { - "y" : 81, - "drilldown" : "018", - "name" : "#018" - }, - { - "name" : "#019", - "drilldown" : "019", - "y" : 103 - }, - { - "y" : 101, - "name" : "#020", - "drilldown" : "020" - }, - { - "name" : "#021", - "drilldown" : "021", - "y" : 72 - }, - { - "y" : 68, - "drilldown" : "022", - "name" : "#022" - }, - { - "name" : "#023", - "drilldown" : "023", - "y" : 97 - }, - { - "drilldown" : "024", - "name" : "#024", - "y" : 75 - }, - { - "y" : 59, - "name" : "#025", - "drilldown" : "025" - }, - { - "drilldown" : "026", - "name" : "#026", - "y" : 74 - }, - { - "y" : 62, - "drilldown" : "027", - "name" : "#027" - }, - { - "name" : "#028", - "drilldown" : "028", - "y" : 80 - }, - { - "y" : 79, - "drilldown" : "029", - "name" : "#029" - }, - { - "name" : "#030", - "drilldown" : "030", - "y" : 117 - }, - { - "y" : 89, - "drilldown" : "031", - "name" : "#031" - }, - { - "y" : 94, - "drilldown" : "032", - "name" : "#032" - }, - { - "y" : 110, - "name" : "#033", - "drilldown" : "033" - }, - { - "drilldown" : "034", - "name" : "#034", - "y" : 64 - }, - { - "y" : 64, - "name" : "#035", - "drilldown" : "035" - }, - { - "y" : 68, - "name" : "#036", - "drilldown" : "036" - }, - { - "name" : "#037", - "drilldown" : "037", - "y" : 67 - }, - { - "drilldown" : "038", - "name" : "#038", - "y" : 68 - }, - { - "y" : 62, - "name" : "#039", - "drilldown" : "039" - }, - { - "y" : 73, - "name" : "#040", - "drilldown" : "040" - }, - { - "y" : 76, - "drilldown" : "041", - "name" : "#041" - }, - { - "y" : 92, - "drilldown" : "042", - "name" : "#042" - }, - { - "name" : "#043", - "drilldown" : "043", - "y" : 68 - }, - { - "drilldown" : "044", - "name" : "#044", - "y" : 85 - }, - { - "y" : 96, - "name" : "#045", - "drilldown" : "045" - }, - { - "y" : 87, - "name" : "#046", - "drilldown" : "046" - }, - { - "y" : 84, - "drilldown" : "047", - "name" : "#047" - }, - { - "y" : 108, - "name" : "#048", - "drilldown" : "048" - }, - { - "name" : "#049", - "drilldown" : "049", - "y" : 89 - }, - { - "drilldown" : "050", - "name" : "#050", - "y" : 98 - }, - { - "y" : 89, - "drilldown" : "051", - "name" : "#051" - }, - { - "y" : 91, - "drilldown" : "052", - "name" : "#052" - }, - { - "y" : 101, - "name" : "#053", - "drilldown" : "053" - }, - { - "y" : 103, - "drilldown" : "054", - "name" : "#054" - }, - { - "y" : 88, - "drilldown" : "055", - "name" : "#055" - }, - { - "y" : 95, - "drilldown" : "056", - "name" : "#056" - }, - { - "drilldown" : "057", - "name" : "#057", - "y" : 80 - }, - { - "y" : 69, - "name" : "#058", - "drilldown" : "058" - }, - { - "y" : 89, - "drilldown" : "059", - "name" : "#059" - }, - { - "y" : 85, - "name" : "#060", - "drilldown" : "060" - }, - { - "y" : 81, - "drilldown" : "061", - "name" : "#061" - }, - { - "y" : 58, - "drilldown" : "062", - "name" : "#062" - }, - { - "name" : "#063", - "drilldown" : "063", - "y" : 89 - }, - { - "name" : "#064", - "drilldown" : "064", - "y" : 80 - }, - { - "drilldown" : "065", - "name" : "#065", - "y" : 73 - }, - { - "name" : "#066", - "drilldown" : "066", - "y" : 84 - }, - { - "name" : "#067", - "drilldown" : "067", - "y" : 90 - }, - { - "drilldown" : "068", - "name" : "#068", - "y" : 75 - }, - { - "drilldown" : "069", - "name" : "#069", - "y" : 83 - }, - { - "y" : 93, - "drilldown" : "070", - "name" : "#070" - }, - { - "y" : 78, - "drilldown" : "071", - "name" : "#071" - }, - { - "drilldown" : "072", - "name" : "#072", - "y" : 112 - }, - { - "y" : 110, - "name" : "#073", - "drilldown" : "073" - }, - { - "name" : "#074", - "drilldown" : "074", - "y" : 115 - }, - { - "y" : 115, - "name" : "#075", - "drilldown" : "075" - }, - { - "y" : 99, - "drilldown" : "076", - "name" : "#076" - }, - { - "name" : "#077", - "drilldown" : "077", - "y" : 98 - }, - { - "y" : 127, - "drilldown" : "078", - "name" : "#078" - }, - { - "y" : 122, - "name" : "#079", - "drilldown" : "079" - }, - { - "name" : "#080", - "drilldown" : "080", - "y" : 127 - }, - { - "drilldown" : "081", - "name" : "#081", - "y" : 114 - }, - { - "drilldown" : "082", - "name" : "#082", - "y" : 114 - }, - { - "y" : 127, - "name" : "#083", - "drilldown" : "083" - }, - { - "y" : 119, - "name" : "#084", - "drilldown" : "084" - }, - { - "drilldown" : "085", - "name" : "#085", - "y" : 114 - }, - { - "y" : 104, - "name" : "#086", - "drilldown" : "086" - }, - { - "y" : 101, - "name" : "#087", - "drilldown" : "087" - }, - { - "y" : 121, - "name" : "#088", - "drilldown" : "088" - }, - { - "drilldown" : "089", - "name" : "#089", - "y" : 113 - }, - { - "name" : "#090", - "drilldown" : "090", - "y" : 113 - }, - { - "drilldown" : "091", - "name" : "#091", - "y" : 108 - }, - { - "drilldown" : "092", - "name" : "#092", - "y" : 98 - }, - { - "name" : "#093", - "drilldown" : "093", - "y" : 87 - }, - { - "name" : "#094", - "drilldown" : "094", - "y" : 87 - }, - { - "y" : 108, - "drilldown" : "095", - "name" : "#095" - }, - { - "y" : 108, - "name" : "#096", - "drilldown" : "096" - }, - { - "y" : 111, - "name" : "#097", - "drilldown" : "097" - }, - { - "y" : 108, - "drilldown" : "098", - "name" : "#098" - }, - { - "y" : 97, - "drilldown" : "099", - "name" : "#099" - }, - { - "y" : 120, - "name" : "#100", - "drilldown" : "100" - }, - { - "y" : 83, - "drilldown" : "101", - "name" : "#101" - }, - { - "drilldown" : "102", - "name" : "#102", - "y" : 90 - }, - { - "drilldown" : "103", - "name" : "#103", - "y" : 79 - }, - { - "drilldown" : "104", - "name" : "#104", - "y" : 85 - }, - { - "drilldown" : "105", - "name" : "#105", - "y" : 75 - }, - { - "y" : 97, - "name" : "#106", - "drilldown" : "106" - }, - { - "drilldown" : "107", - "name" : "#107", - "y" : 90 - }, - { - "drilldown" : "108", - "name" : "#108", - "y" : 94 - }, - { - "y" : 107, - "name" : "#109", - "drilldown" : "109" - }, - { - "y" : 108, - "drilldown" : "110", - "name" : "#110" - }, - { - "y" : 91, - "drilldown" : "111", - "name" : "#111" - }, - { - "y" : 92, - "name" : "#112", - "drilldown" : "112" - }, - { - "name" : "#113", - "drilldown" : "113", - "y" : 92 - }, - { - "y" : 108, - "name" : "#114", - "drilldown" : "114" - }, - { - "y" : 96, - "name" : "#115", - "drilldown" : "115" - }, - { - "drilldown" : "116", - "name" : "#116", - "y" : 95 - }, - { - "drilldown" : "117", - "name" : "#117", - "y" : 97 - }, - { - "y" : 83, - "name" : "#118", - "drilldown" : "118" - }, - { - "drilldown" : "119", - "name" : "#119", - "y" : 125 - }, - { - "y" : 116, - "name" : "#120", - "drilldown" : "120" - }, - { - "drilldown" : "121", - "name" : "#121", - "y" : 92 - }, - { - "drilldown" : "122", - "name" : "#122", - "y" : 110 - }, - { - "y" : 105, - "drilldown" : "123", - "name" : "#123" - }, - { - "y" : 85, - "name" : "#124", - "drilldown" : "124" - }, - { - "y" : 63, - "name" : "#125", - "drilldown" : "125" - }, - { - "drilldown" : "126", - "name" : "#126", - "y" : 113 - }, - { - "y" : 110, - "drilldown" : "127", - "name" : "#127" - }, - { - "name" : "#128", - "drilldown" : "128", - "y" : 71 - }, - { - "name" : "#129", - "drilldown" : "129", - "y" : 50 - }, - { - "y" : 73, - "drilldown" : "130", - "name" : "#130" - }, - { - "name" : "#131", - "drilldown" : "131", - "y" : 91 - }, - { - "drilldown" : "132", - "name" : "#132", - "y" : 78 - }, - { - "y" : 95, - "name" : "#133", - "drilldown" : "133" - }, - { - "y" : 94, - "name" : "#134", - "drilldown" : "134" - }, - { - "name" : "#135", - "drilldown" : "135", - "y" : 104 - }, - { - "drilldown" : "136", - "name" : "#136", - "y" : 95 - }, - { - "drilldown" : "137", - "name" : "#137", - "y" : 99 - }, - { - "y" : 99, - "name" : "#138", - "drilldown" : "138" - }, - { - "y" : 97, - "name" : "#139", - "drilldown" : "139" - }, - { - "y" : 102, - "drilldown" : "140", - "name" : "#140" - }, - { - "y" : 98, - "drilldown" : "141", - "name" : "#141" - }, - { - "name" : "#142", - "drilldown" : "142", - "y" : 83 - }, - { - "name" : "#143", - "drilldown" : "143", - "y" : 27 - } - ], - "name" : "The Weekly Challenge Languages" - } - ], "drilldown" : { "series" : [ { @@ -749,8 +28,6 @@ ] }, { - "id" : "002", - "name" : "002", "data" : [ [ "Perl", @@ -764,9 +41,13 @@ "Blog", 10 ] - ] + ], + "name" : "002", + "id" : "002" }, { + "name" : "003", + "id" : "003", "data" : [ [ "Perl", @@ -780,13 +61,11 @@ "Blog", 9 ] - ], - "name" : "003", - "id" : "003" + ] }, { - "name" : "004", "id" : "004", + "name" : "004", "data" : [ [ "Perl", @@ -817,12 +96,10 @@ 12 ] ], - "name" : "005", - "id" : "005" + "id" : "005", + "name" : "005" }, { - "name" : "006", - "id" : "006", "data" : [ [ "Perl", @@ -836,11 +113,13 @@ "Blog", 7 ] - ] + ], + "id" : "006", + "name" : "006" }, { - "name" : "007", "id" : "007", + "name" : "007", "data" : [ [ "Perl", @@ -857,8 +136,6 @@ ] }, { - "id" : "008", - "name" : "008", "data" : [ [ "Perl", @@ -872,11 +149,11 @@ "Blog", 12 ] - ] + ], + "name" : "008", + "id" : "008" }, { - "id" : "009", - "name" : "009", "data" : [ [ "Perl", @@ -890,7 +167,9 @@ "Blog", 13 ] - ] + ], + "id" : "009", + "name" : "009" }, { "data" : [ @@ -907,8 +186,8 @@ 11 ] ], - "id" : "010", - "name" : "010" + "name" : "010", + "id" : "010" }, { "data" : [ @@ -925,10 +204,12 @@ 10 ] ], - "name" : "011", - "id" : "011" + "id" : "011", + "name" : "011" }, { + "name" : "012", + "id" : "012", "data" : [ [ "Perl", @@ -942,9 +223,7 @@ "Blog", 11 ] - ], - "id" : "012", - "name" : "012" + ] }, { "data" : [ @@ -961,10 +240,12 @@ 13 ] ], - "name" : "013", - "id" : "013" + "id" : "013", + "name" : "013" }, { + "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -978,11 +259,11 @@ "Blog", 15 ] - ], - "id" : "014", - "name" : "014" + ] }, { + "id" : "015", + "name" : "015", "data" : [ [ "Perl", @@ -996,11 +277,11 @@ "Blog", 15 ] - ], - "id" : "015", - "name" : "015" + ] }, { + "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -1014,9 +295,7 @@ "Blog", 12 ] - ], - "id" : "016", - "name" : "016" + ] }, { "id" : "017", @@ -1037,8 +316,6 @@ ] }, { - "name" : "018", - "id" : "018", "data" : [ [ "Perl", @@ -1052,9 +329,13 @@ "Blog", 14 ] - ] + ], + "name" : "018", + "id" : "018" }, { + "name" : "019", + "id" : "019", "data" : [ [ "Perl", @@ -1068,9 +349,7 @@ "Blog", 13 ] - ], - "name" : "019", - "id" : "019" + ] }, { "data" : [ @@ -1091,8 +370,6 @@ "id" : "020" }, { - "id" : "021", - "name" : "021", "data" : [ [ "Perl", @@ -1106,11 +383,11 @@ "Blog", 10 ] - ] + ], + "name" : "021", + "id" : "021" }, { - "name" : "022", - "id" : "022", "data" : [ [ "Perl", @@ -1124,9 +401,13 @@ "Blog", 10 ] - ] + ], + "name" : "022", + "id" : "022" }, { + "id" : "023", + "name" : "023", "data" : [ [ "Perl", @@ -1140,11 +421,11 @@ "Blog", 12 ] - ], - "name" : "023", - "id" : "023" + ] }, { + "id" : "024", + "name" : "024", "data" : [ [ "Perl", @@ -1158,9 +439,7 @@ "Blog", 11 ] - ], - "name" : "024", - "id" : "024" + ] }, { "data" : [ @@ -1199,6 +478,8 @@ ] }, { + "name" : "027", + "id" : "027", "data" : [ [ "Perl", @@ -1212,13 +493,9 @@ "Blog", 9 ] - ], - "id" : "027", - "name" : "027" + ] }, { - "id" : "028", - "name" : "028", "data" : [ [ "Perl", @@ -1232,7 +509,9 @@ "Blog", 9 ] - ] + ], + "name" : "028", + "id" : "028" }, { "data" : [ @@ -1253,6 +532,8 @@ "id" : "029" }, { + "id" : "030", + "name" : "030", "data" : [ [ "Perl", @@ -1266,13 +547,11 @@ "Blog", 10 ] - ], - "name" : "030", - "id" : "030" + ] }, { - "id" : "031", "name" : "031", + "id" : "031", "data" : [ [ "Perl", @@ -1289,8 +568,8 @@ ] }, { - "name" : "032", "id" : "032", + "name" : "032", "data" : [ [ "Perl", @@ -1325,6 +604,8 @@ ] }, { + "id" : "034", + "name" : "034", "data" : [ [ "Perl", @@ -1338,13 +619,9 @@ "Blog", 11 ] - ], - "id" : "034", - "name" : "034" + ] }, { - "id" : "035", - "name" : "035", "data" : [ [ "Perl", @@ -1358,11 +635,11 @@ "Blog", 9 ] - ] + ], + "id" : "035", + "name" : "035" }, { - "id" : "036", - "name" : "036", "data" : [ [ "Perl", @@ -1376,9 +653,13 @@ "Blog", 11 ] - ] + ], + "id" : "036", + "name" : "036" }, { + "id" : "037", + "name" : "037", "data" : [ [ "Perl", @@ -1392,13 +673,9 @@ "Blog", 9 ] - ], - "id" : "037", - "name" : "037" + ] }, { - "id" : "038", - "name" : "038", "data" : [ [ "Perl", @@ -1412,11 +689,11 @@ "Blog", 12 ] - ] + ], + "id" : "038", + "name" : "038" }, { - "name" : "039", - "id" : "039", "data" : [ [ "Perl", @@ -1430,9 +707,13 @@ "Blog", 12 ] - ] + ], + "id" : "039", + "name" : "039" }, { + "id" : "040", + "name" : "040", "data" : [ [ "Perl", @@ -1446,9 +727,7 @@ "Blog", 10 ] - ], - "name" : "040", - "id" : "040" + ] }, { "data" : [ @@ -1465,8 +744,8 @@ 9 ] ], - "name" : "041", - "id" : "041" + "id" : "041", + "name" : "041" }, { "data" : [ @@ -1483,8 +762,8 @@ 11 ] ], - "id" : "042", - "name" : "042" + "name" : "042", + "id" : "042" }, { "data" : [ @@ -1501,8 +780,8 @@ 11 ] ], - "id" : "043", - "name" : "043" + "name" : "043", + "id" : "043" }, { "id" : "044", @@ -1555,8 +834,8 @@ 10 ] ], - "id" : "046", - "name" : "046" + "name" : "046", + "id" : "046" }, { "data" : [ @@ -1573,8 +852,8 @@ 10 ] ], - "id" : "047", - "name" : "047" + "name" : "047", + "id" : "047" }, { "data" : [ @@ -1595,8 +874,8 @@ "id" : "048" }, { - "name" : "049", "id" : "049", + "name" : "049", "data" : [ [ "Perl", @@ -1613,8 +892,8 @@ ] }, { - "id" : "050", "name" : "050", + "id" : "050", "data" : [ [ "Perl", @@ -1649,8 +928,8 @@ ] }, { - "id" : "052", "name" : "052", + "id" : "052", "data" : [ [ "Perl", @@ -1667,8 +946,6 @@ ] }, { - "name" : "053", - "id" : "053", "data" : [ [ "Perl", @@ -1682,9 +959,13 @@ "Blog", 15 ] - ] + ], + "id" : "053", + "name" : "053" }, { + "name" : "054", + "id" : "054", "data" : [ [ "Perl", @@ -1698,9 +979,7 @@ "Blog", 18 ] - ], - "name" : "054", - "id" : "054" + ] }, { "data" : [ @@ -1739,6 +1018,8 @@ ] }, { + "name" : "057", + "id" : "057", "data" : [ [ "Perl", @@ -1752,9 +1033,7 @@ "Blog", 15 ] - ], - "id" : "057", - "name" : "057" + ] }, { "data" : [ @@ -1771,8 +1050,8 @@ 13 ] ], - "id" : "058", - "name" : "058" + "name" : "058", + "id" : "058" }, { "data" : [ @@ -1793,8 +1072,8 @@ "id" : "059" }, { - "id" : "060", "name" : "060", + "id" : "060", "data" : [ [ "Perl", @@ -1811,6 +1090,8 @@ ] }, { + "id" : "061", + "name" : "061", "data" : [ [ "Perl", @@ -1824,13 +1105,11 @@ "Blog", 14 ] - ], - "id" : "061", - "name" : "061" + ] }, { - "name" : "062", "id" : "062", + "name" : "062", "data" : [ [ "Perl", @@ -1847,6 +1126,8 @@ ] }, { + "name" : "063", + "id" : "063", "data" : [ [ "Perl", @@ -1860,11 +1141,11 @@ "Blog", 13 ] - ], - "name" : "063", - "id" : "063" + ] }, { + "name" : "064", + "id" : "064", "data" : [ [ "Perl", @@ -1878,9 +1159,7 @@ "Blog", 16 ] - ], - "id" : "064", - "name" : "064" + ] }, { "name" : "065", @@ -1901,6 +1180,8 @@ ] }, { + "id" : "066", + "name" : "066", "data" : [ [ "Perl", @@ -1914,13 +1195,9 @@ "Blog", 14 ] - ], - "id" : "066", - "name" : "066" + ] }, { - "name" : "067", - "id" : "067", "data" : [ [ "Perl", @@ -1934,7 +1211,9 @@ "Blog", 18 ] - ] + ], + "id" : "067", + "name" : "067" }, { "data" : [ @@ -1951,12 +1230,10 @@ 13 ] ], - "id" : "068", - "name" : "068" + "name" : "068", + "id" : "068" }, { - "name" : "069", - "id" : "069", "data" : [ [ "Perl", @@ -1970,9 +1247,13 @@ "Blog", 16 ] - ] + ], + "name" : "069", + "id" : "069" }, { + "name" : "070", + "id" : "070", "data" : [ [ "Perl", @@ -1986,9 +1267,7 @@ "Blog", 17 ] - ], - "name" : "070", - "id" : "070" + ] }, { "data" : [ @@ -2005,10 +1284,12 @@ 15 ] ], - "name" : "071", - "id" : "071" + "id" : "071", + "name" : "071" }, { + "id" : "072", + "name" : "072", "data" : [ [ "Perl", @@ -2022,9 +1303,7 @@ "Blog", 19 ] - ], - "name" : "072", - "id" : "072" + ] }, { "data" : [ @@ -2041,8 +1320,8 @@ 17 ] ], - "name" : "073", - "id" : "073" + "id" : "073", + "name" : "073" }, { "data" : [ @@ -2059,12 +1338,12 @@ 20 ] ], - "id" : "074", - "name" : "074" + "name" : "074", + "id" : "074" }, { - "name" : "075", "id" : "075", + "name" : "075", "data" : [ [ "Perl", @@ -2081,6 +1360,8 @@ ] }, { + "name" : "076", + "id" : "076", "data" : [ [ "Perl", @@ -2094,9 +1375,7 @@ "Blog", 16 ] - ], - "name" : "076", - "id" : "076" + ] }, { "data" : [ @@ -2113,8 +1392,8 @@ 14 ] ], - "name" : "077", - "id" : "077" + "id" : "077", + "name" : "077" }, { "data" : [ @@ -2131,12 +1410,12 @@ 18 ] ], - "name" : "078", - "id" : "078" + "id" : "078", + "name" : "078" }, { - "name" : "079", "id" : "079", + "name" : "079", "data" : [ [ "Perl", @@ -2153,8 +1432,8 @@ ] }, { - "name" : "080", "id" : "080", + "name" : "080", "data" : [ [ "Perl", @@ -2185,8 +1464,8 @@ 15 ] ], - "name" : "081", - "id" : "081" + "id" : "081", + "name" : "081" }, { "data" : [ @@ -2203,10 +1482,12 @@ 17 ] ], - "id" : "082", - "name" : "082" + "name" : "082", + "id" : "082" }, { + "name" : "083", + "id" : "083", "data" : [ [ "Perl", @@ -2220,13 +1501,11 @@ "Blog", 16 ] - ], - "name" : "083", - "id" : "083" + ] }, { - "name" : "084", "id" : "084", + "name" : "084", "data" : [ [ "Perl", @@ -2243,6 +1522,8 @@ ] }, { + "id" : "085", + "name" : "085", "data" : [ [ "Perl", @@ -2256,13 +1537,9 @@ "Blog", 18 ] - ], - "name" : "085", - "id" : "085" + ] }, { - "id" : "086", - "name" : "086", "data" : [ [ "Perl", @@ -2276,11 +1553,11 @@ "Blog", 15 ] - ] + ], + "name" : "086", + "id" : "086" }, { - "name" : "087", - "id" : "087", "data" : [ [ "Perl", @@ -2294,9 +1571,13 @@ "Blog", 14 ] - ] + ], + "id" : "087", + "name" : "087" }, { + "name" : "088", + "id" : "088", "data" : [ [ "Perl", @@ -2310,13 +1591,9 @@ "Blog", 20 ] - ], - "name" : "088", - "id" : "088" + ] }, { - "id" : "089", - "name" : "089", "data" : [ [ "Perl", @@ -2330,11 +1607,11 @@ "Blog", 20 ] - ] + ], + "id" : "089", + "name" : "089" }, { - "name" : "090", - "id" : "090", "data" : [ [ "Perl", @@ -2348,7 +1625,9 @@ "Blog", 17 ] - ] + ], + "name" : "090", + "id" : "090" }, { "name" : "091", @@ -2383,8 +1662,8 @@ 16 ] ], - "name" : "092", - "id" : "092" + "id" : "092", + "name" : "092" }, { "id" : "093", @@ -2423,8 +1702,6 @@ "id" : "094" }, { - "name" : "095", - "id" : "095", "data" : [ [ "Perl", @@ -2438,9 +1715,13 @@ "Blog", 19 ] - ] + ], + "name" : "095", + "id" : "095" }, { + "id" : "096", + "name" : "096", "data" : [ [ "Perl", @@ -2454,13 +1735,9 @@ "Blog", 19 ] - ], - "id" : "096", -