diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rwxr-xr-x | 2017/app.p6 | 27 | ||||
-rw-r--r-- | 2017/inputs/day1 | 1 | ||||
-rw-r--r-- | 2017/inputs/day2 | 16 | ||||
-rw-r--r-- | 2017/lib/AdventOfCode.pm6 | 78 | ||||
-rw-r--r-- | 2017/t/01-day.t | 17 | ||||
-rw-r--r-- | 2017/t/02-day.t | 23 | ||||
-rw-r--r-- | 2017/t/03-day.t | 11 | ||||
-rw-r--r-- | 2018/day1.p6 | 25 | ||||
-rw-r--r-- | 2018/day1.txt | 959 | ||||
-rw-r--r-- | 2018/day1test.txt | 5 | ||||
-rw-r--r-- | 2018/day2.p6 | 43 | ||||
-rw-r--r-- | 2018/day2.txt | 250 | ||||
-rw-r--r-- | 2018/day3.data | 1353 | ||||
-rw-r--r-- | 2018/day3.p6 | 60 | ||||
-rw-r--r-- | 2018/day4.p6 | 50 | ||||
-rw-r--r-- | 2018/lib/Utils.pm6 | 45 | ||||
-rw-r--r-- | 2018/prof.html | 1264 |
18 files changed, 4228 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..546cb48 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.precomp
\ No newline at end of file diff --git a/2017/app.p6 b/2017/app.p6 new file mode 100755 index 0000000..1dc0ac7 --- /dev/null +++ b/2017/app.p6 @@ -0,0 +1,27 @@ +#!/usr/bin/env perl6 +use v6; +use lib 'lib'; +use AdventOfCode; + +sub MAIN($day) { + given $day { + when 1 { + my $text = 'inputs/day1'.IO.slurp; + say "Day01 a: " ~ day01($text); + say "Day01 b: " ~ day01b($text); + } + when 2 { + my @spreadsheet; + for 'inputs/day2'.IO.lines -> $line { + @spreadsheet.push($line.split(/\s+/).map(*.Int)); + } + say "Day02 a: " ~ checksum(@spreadsheet); + say "Day02 b: " ~ evenly-divisible-values(@spreadsheet); + + } + when 3 { + say "Spiral memory for 12: " ~ spiral-memory(12); + } + default { say "uninplemented"; } + } +} diff --git a/2017/inputs/day1 b/2017/inputs/day1 new file mode 100644 index 0000000..037cd73 --- /dev/null +++ b/2017/inputs/day1 @@ -0,0 +1 @@ +8231753674683997878179259195565332579493378483264978184143341284379682788518559178822225126625428318115396632681141871952894291898364781898929292614792884883249356728741993224889167928232261325123447569829932951268292953928766755779761837993812528527484487298117739869189415599461746944992651752768158611996715467871381527675219481185217357632445748912726487669881876129192932995282777848496561259839781188719233951619188388532698519298142112853776942545211859134185231768952888462471642851588368445761489225786919778983848113833773768236969923939838755997989537648222217996381757542964844337285428654375499359997792679256881378967852376848812795761118139288152799921176874256377615952758268844139579622754965461884862647423491918913628848748756595463191585555385849335742224855473769411212376446591654846168189278959857681336724221434846946124915271196433144335482787432683848594487648477532498952572515118864475621828118274911298396748213136426357769991314661642612786847135485969889237193822718111269561741563479116832364485724716242176288642371849569664594194674763319687735723517614962575592111286177553435651952853878775431234327919595595658641534765455489561934548474291254387229751472883423413196845162752716925199866591883313638846474321161569892518574346226751366315311145777448781862222126923449311838564685882695889397531413937666673233451216968414288135984394249684886554812761191289485457945866524228415191549168557957633386991931186773843869999284468773866221976873998168818944399661463963658784821796272987155278195355579386768156718813624559264574836134419725187881514665834441359644955768658663278765363789664721736533517774292478192143934318399418188298753351815388561359528533778996296279366394386455544446922653976725113889842749182361253582433319351193862788433113852782596161148992233558144692913791714859516653421917841295749163469751479835492713392861519993791967927773114713888458982796514977717987598165486967786989991998142488631168697963816156374216224386193941566358543266646516247854435356941566492841213424915682394928959116411457967897614457497279472661229548612777155998358618945222326558176486944695689777438164612198225816646583996426313832539918 diff --git a/2017/inputs/day2 b/2017/inputs/day2 new file mode 100644 index 0000000..545582a --- /dev/null +++ b/2017/inputs/day2 @@ -0,0 +1,16 @@ +157 564 120 495 194 520 510 618 244 443 471 473 612 149 506 138 +1469 670 47 604 1500 238 1304 1426 54 749 1218 1409 60 51 1436 598 +578 184 2760 3057 994 167 2149 191 2913 2404 213 1025 1815 588 2421 3138 +935 850 726 155 178 170 275 791 1028 75 781 138 176 621 773 688 +212 977 297 645 229 194 207 640 804 509 833 726 197 825 242 743 +131 43 324 319 64 376 231 146 382 162 464 314 178 353 123 446 +551 121 127 155 1197 288 1412 1285 557 137 145 1651 1549 1217 681 1649 +1723 1789 5525 4890 3368 188 3369 4842 3259 2502 4825 163 146 2941 126 5594 +311 2420 185 211 2659 2568 2461 231 2599 1369 821 506 2227 180 220 1372 +197 4490 141 249 3615 3314 789 4407 169 352 4383 5070 5173 3115 132 3513 +4228 2875 3717 504 114 2679 165 3568 3002 116 756 151 4027 261 4813 2760 +651 3194 2975 2591 1019 835 3007 248 3028 1382 282 3242 296 270 3224 3304 +1858 1650 1720 1848 95 313 500 1776 207 1186 72 259 281 1620 79 77 +3841 3217 440 3481 3643 940 3794 4536 1994 4040 3527 202 193 1961 230 217 +2837 2747 2856 426 72 78 2361 96 2784 2780 98 2041 2444 1267 2167 2480 +411 178 4263 4690 3653 162 3201 4702 3129 2685 3716 147 3790 4888 79 165 diff --git a/2017/lib/AdventOfCode.pm6 b/2017/lib/AdventOfCode.pm6 new file mode 100644 index 0000000..eef09d0 --- /dev/null +++ b/2017/lib/AdventOfCode.pm6 @@ -0,0 +1,78 @@ +use v6; + +sub do-captcha(@input, $cmp-offset) returns Int { + my @tmp = @input.rotate($cmp-offset); + (@input Z @tmp).map(-> $z { + if $z[0] == $z[1] { $z[0] } else { 0 } + }).reduce(&[+]) +} + +sub day01(Str $input) returns Int is export { + do-captcha($input.comb, 1) +} + +sub day01b(Str $input) returns Int is export { + do-captcha($input.comb, $input.comb.elems/2) +} + +sub checksum(@input) returns Int is export { + [+] @input.map(-> @i { + @i.max - @i.min + }) +} + +sub find-divisible(@row) returns Int { + for @row -> $x { + for @row -> $y { + if $x %% $y and $x != $y { + return ($x/$y).Int + } + } + } +} + +sub evenly-divisible-values(@input) returns Int is export { + [+] @input.map(-> @i { + find-divisible(@i) + }) +} + +# Day 3 + +sub position(Int $num) { + my Int $num-square = (^Inf).map(*²).grep(* ≥ $num)[0]; + my Int $square-size = $num-square.sqrt.Int; + my $max-step = ($square-size/2).floor; + my @retval = $max-step, $max-step; + say "$num, $num-square, $square-size, $max-step, {@retval}"; + if $num-square == $num { return @retval; } + + while $num-square > $num { + say "$num-square > ($square-size - 1)"; + $num-square -= ($square-size -1); + } + + $num-square > $num or die(" Error !! $num-square > $num"); + + if $num-square == $num { return @retval; } + + for ^($square-size*4 -1) -> $i { + $num-square -= 1; + say "Step 2-$i: $num-square == $num ? {@retval[0]}"; + if $num-square != $num { + @retval[0] = (@retval[0]-1) % ($max-step + 1); + } + } + say "Returning: {@retval}"; + return @retval; +} + +sub manhattan-distance(@position) returns Int { + say "Sum {@position.perl}"; + [+] @position +} + +sub spiral-memory(Int $input) returns Int is export { + say "position: {position($input).perl}"; + manhattan-distance(position($input)) +} diff --git a/2017/t/01-day.t b/2017/t/01-day.t new file mode 100644 index 0000000..7a3333b --- /dev/null +++ b/2017/t/01-day.t @@ -0,0 +1,17 @@ +use v6; +use Test; +use AdventOfCode; + +plan 4 + 5; + +is day01('1122'), 3; +is day01('1111'), 4; +is day01('1234'), 0; +is day01('91212129'), 9; + + +is day01b('1212'), 6; +is day01b('1221'), 0; +is day01b('123425'), 4; +is day01b('123123'), 12; +is day01b('12131415'), 4; diff --git a/2017/t/02-day.t b/2017/t/02-day.t new file mode 100644 index 0000000..787caff --- /dev/null +++ b/2017/t/02-day.t @@ -0,0 +1,23 @@ +use v6; +use Test; +use AdventOfCode; + +plan 2; + +# First part +my @mat = ( + <5 1 9 5>, + <7 5 3>, + <2 4 6 8>, +); + +is checksum(@mat), 18; + +# Second part +my @spreadsheet2 = ( + <5 9 2 8>, + <9 4 7 3>, + <3 8 6 5>, +); + +is evenly-divisible-values(@spreadsheet2), 9; diff --git a/2017/t/03-day.t b/2017/t/03-day.t new file mode 100644 index 0000000..7a06465 --- /dev/null +++ b/2017/t/03-day.t @@ -0,0 +1,11 @@ +use v6; +use Test; +use AdventOfCode; + +plan 5; + +is spiral-memory(1), 0; +is spiral-memory(9), 2; +is spiral-memory(12), 3; +is spiral-memory(23), 2; +is spiral-memory(1024), 31; diff --git a/2018/day1.p6 b/2018/day1.p6 new file mode 100644 index 0000000..5070a6c --- /dev/null +++ b/2018/day1.p6 @@ -0,0 +1,25 @@ + +sub day1(@input) { + my $freq = @input.sum; + say "Frequency: $freq"; +} + +sub day1-pt2(@input) { + my $seen = SetHash.new; + my $freq = 0; + LOOP: loop { + for @input -> $val { + $freq += $val; + if $freq ∈ $seen { + last LOOP; + } + $seen{$freq} = True; + } + } + say "Frequency: $freq"; + +} + +my @input = $*IN.lines.map(*.Int); +day1(@input); +day1-pt2(@input); diff --git a/2018/day1.txt b/2018/day1.txt new file mode 100644 index 0000000..7401a29 --- /dev/null +++ b/2018/day1.txt @@ -0,0 +1,959 @@ +-2 +-6 ++2 +-10 +-4 +-7 ++8 +-10 +-15 +-4 ++20 ++16 ++20 ++5 +-2 ++16 ++8 +-10 +-2 +-21 ++13 ++6 ++5 +-14 +-13 +-17 +-8 +-7 ++19 +-21 +-16 ++19 ++7 ++3 ++17 ++6 ++8 +-4 ++2 ++21 ++8 ++11 ++5 ++8 +-15 +-8 ++1 ++17 +-7 +-7 +-17 ++10 ++6 ++6 ++12 ++16 ++1 ++11 +-10 +-13 +-2 ++12 +-14 ++13 ++13 ++13 ++6 +-4 ++1 ++6 +-1 +-18 ++14 ++3 ++18 +-8 ++15 +-18 +-21 ++4 +-8 +-7 +-16 +-10 ++2 +-12 +-15 ++13 +-11 +-9 +-5 +-20 ++6 +-18 +-15 +-1 ++8 ++12 ++15 ++15 ++20 ++11 ++15 ++17 ++10 +-8 +-7 ++1 ++12 ++7 ++11 ++3 ++5 +-2 ++14 +-8 ++15 +-3 +-5 +-17 ++15 +-3 ++23 ++14 +-11 +-10 ++14 +-15 ++6 ++10 +-9 ++10 +-3 +-4 ++10 ++8 ++16 +-18 +-2 ++11 ++14 +-16 ++6 +-8 ++16 +-18 +-16 +-4 +-6 ++2 +-3 ++2 +-8 +-7 +-5 ++13 ++2 +-12 +-5 +-23 ++13 +-26 +-16 +-1 +-9 +-8 ++21 +-1 +-16 +-21 +-16 ++14 +-10 ++13 ++18 ++17 ++3 ++18 +-10 ++24 ++10 +-20 ++36 +-11 +-19 ++18 ++43 ++2 ++5 ++12 ++14 +-15 +-14 ++5 ++11 ++18 +-15 ++13 +-4 ++8 +-5 +-6 ++17 ++1 +-3 ++4 ++11 ++16 ++16 ++11 ++11 ++13 +-12 ++14 +-16 +-7 +-9 ++4 +-10 +-13 +-19 ++11 ++5 +-3 +-9 ++17 ++6 ++9 +-12 ++17 +-11 ++16 ++13 ++14 ++10 +-5 ++2 +-16 ++18 +-1 ++8 ++17 ++11 ++13 +-18 ++10 +-1 ++4 ++9 ++16 ++13 +-18 ++1 ++10 +-7 ++11 +-12 +-12 ++7 +-20 ++18 +-13 ++3 ++21 ++17 ++5 ++14 +-2 +-14 ++13 ++4 +-11 +-19 +-15 +-7 ++18 +-1 ++10 ++9 +-8 ++2 +-16 +-13 +-9 ++3 ++10 ++15 ++18 ++9 +-18 +-13 ++5 ++10 ++12 +-10 ++17 ++16 +-12 ++23 ++9 ++18 ++4 +-28 ++20 +-4 ++56 +-19 +-52 +-28 +-8 +-35 +-20 +-3 +-5 ++16 +-19 +-8 ++3 ++9 ++19 ++22 ++10 +-9 ++44 ++4 +-17 +-12 +-48 ++7 +-14 +-22 ++9 +-4 +-16 ++5 ++12 +-3 +-16 ++12 ++2 +-15 ++12 +-26 +-7 +-12 +-18 +-16 ++6 +-15 ++17 +-9 +-4 +-8 +-7 ++12 +-16 ++8 +-5 ++3 ++7 ++8 +-14 +-8 +-13 ++10 ++14 ++26 ++14 +-6 ++22 +-13 +-1 ++11 +-17 ++15 ++6 ++18 ++13 +-5 ++8 ++1 +-5 +-19 +-3 +-3 ++14 +-10 +-17 ++5 ++16 ++7 ++8 ++5 ++16 +-20 ++19 ++4 +-30 +-1 +-20 ++5 +-32 +-12 ++20 +-14 ++3 +-11 +-18 +-21 ++4 ++1 +-19 +-17 ++13 ++12 ++13 +-1 +-17 +-19 ++13 +-6 ++20 +-17 +-14 +-22 ++9 +-3 ++18 ++24 +-7 ++25 +-38 +-96 ++13 ++37 ++25 ++58 +-13 ++42 ++28 ++8 ++159 +-43 +-572 +-62794 ++19 ++8 +-17 +-9 ++3 +-1 ++5 ++4 ++16 ++11 ++4 +-18 ++5 +-10 ++9 ++15 ++16 +-5 ++17 +-16 +-4 +-11 +-18 ++3 +-12 ++3 +-18 +-7 +-7 ++5 ++3 +-17 ++8 +-15 +-2 ++11 +-6 ++17 +-12 +-9 ++6 +-4 ++10 ++7 +-1 +-7 +-16 ++3 +-1 +-9 +-4 +-10 ++2 +-13 ++4 +-19 +-7 +-5 ++1 +-17 +-3 +-13 ++15 +-3 ++9 ++14 +-9 ++4 +-1 +-9 ++14 +-6 +-3 +-17 ++19 +-8 +-15 +-9 +-18 ++9 ++19 +-3 ++16 +-20 ++3 +-19 ++10 ++14 ++11 +-3 ++10 ++14 ++12 +-14 ++15 +-10 +-10 ++15 ++9 ++9 ++4 +-2 +-9 +-8 ++11 ++5 ++16 +-8 ++16 +-11 ++9 +-18 +-11 ++17 ++15 +-16 ++2 +-23 ++14 ++4 ++14 ++1 ++6 ++9 +-19 +-3 +-17 +-6 +-16 +-17 ++16 ++15 +-9 ++32 ++11 +-5 +-22 +-14 ++5 +-30 +-13 +-10 +-11 +-15 +-5 +-3 +-7 ++3 ++9 ++5 +-1 +-17 +-17 ++13 ++14 +-7 +-16 ++18 +-16 ++17 +-9 ++10 +-17 +-10 ++19 ++10 +-16 +-15 ++16 +-6 +-6 +-9 +-17 ++16 ++3 +-7 ++17 +-16 +-16 +-9 +-9 ++8 +-1 +-6 +-14 ++17 +-12 +-13 ++12 +-1 ++13 ++2 ++10 +-4 +-5 +-8 ++14 +-18 ++16 ++7 ++8 ++11 +-14 +-8 +-15 +-21 +-18 ++10 +-3 ++8 ++8 +-6 +-13 +-11 ++6 +-2 ++14 +-16 +-16 +-17 ++10 ++11 +-13 +-18 +-5 ++4 ++9 +-6 ++5 ++16 ++13 ++8 +-15 ++20 +-7 ++19 ++7 ++15 +-7 +-7 +-18 +-14 ++9 +-6 ++13 ++11 +-8 ++6 +-5 +-3 +-26 +-9 ++6 +-8 ++15 +-18 ++12 +-2 +-8 +-25 ++15 +-16 +-1 +-7 +-18 ++14 ++6 ++10 +-15 +-17 ++12 +-5 ++8 +-7 +-10 +-5 +-18 ++1 ++14 +-2 ++11 ++4 ++18 +-10 +-19 +-18 +-19 ++10 +-14 +-12 ++14 +-15 ++10 ++2 ++12 +-8 ++14 ++19 +-20 ++11 +-8 ++10 +-21 ++25 ++21 ++1 ++20 ++17 ++6 ++11 +-13 +-17 +-20 ++4 +-1 +-19 +-11 ++14 ++12 +-18 ++5 +-11 ++33 ++13 ++8 ++3 ++9 +-10 ++30 +-18 +-3 ++23 ++42 ++4 +-7 ++10 +-14 ++20 +-5 ++30 ++1 +-15 ++19 ++12 +-3 +-6 ++7 ++21 +-3 ++27 ++17 ++15 +-18 +-4 +-17 ++22 +-14 +-9 ++12 ++2 +-1 ++7 +-10 ++6 ++3 ++17 +-4 +-6 ++13 +-34 +-33 +-2 ++18 +-11 +-17 +-20 +-3 ++15 +-5 +-6 +-48 ++12 +-22 +-12 +-17 +-25 +-9 +-24 +-15 +-22 +-15 ++17 ++5 +-14 ++22 ++3 +-1 +-18 +-37 +-3 +-8 ++4 ++9 ++7 +-5 +-19 +-19 +-4 ++12 +-2 ++35 +-28 ++8 ++11 ++80 ++20 ++12 +-17 ++16 +-40 +-43 +-11 +-19 +-8 +-2 ++20 +-33 ++9 +-71 +-6 ++1 +-128 ++1 ++5 ++28 +-27 ++16 ++40 +-9 ++265 ++54 +-9 ++43 +-39 +-63256 ++12 ++18 +-14 ++13 ++15 +-10 ++13 ++5 ++1 ++14 ++15 +-7 ++18 +-2 +-7 +-14 +-6 +-10 +-15 +-3 ++12 ++17 +-19 ++12 ++8 ++12 +-19 ++4 +-18 +-14 +-20 +-6 +-19 ++12 +-11 +-19 ++2 ++19 ++4 +-12 ++3 ++19 ++11 ++9 +-17 +-11 ++1 ++13 ++11 +-18 +-12 +-2 +-14 +-13 +-6 ++7 ++2 +-10 +-14 +-18 ++1 ++14 ++11 +-6 +-6 +-3 +-18 +-7 ++127054 diff --git a/2018/day1test.txt b/2018/day1test.txt new file mode 100644 index 0000000..78cd296 --- /dev/null +++ b/2018/day1test.txt @@ -0,0 +1,5 @@ ++7 ++7 +-2 +-7 +-4 diff --git a/2018/day2.p6 b/2018/day2.p6 new file mode 100644 index 0000000..9945024 --- /dev/null +++ b/2018/day2.p6 @@ -0,0 +1,43 @@ +use v6; +use lib <lib>; + +use Utils; + +sub day2-pt1(@input) { + my %count = "2" => 0, "3" => 0; + for @input -> $line { + my $bag = bag $line.comb; + %count<2>++ if $bag.first(*.value == 2); + %count<3>++ if $bag.first(*.value == 3); + } + say %count<2> * %count<3>; +} + +sub wolo(@params) { + my \s = @params[0]; + my \t = @params[1]; + my $ld = levenshtein(s, t); + say "Got $ld for {s} and {t}"; + return (s, t, $ld); +} + +sub wole(@params) { + my $s = @params[0]; + my $t = @params[1]; + + my $cmp = ($s.comb Z $t.comb).grep({ $_[0] ne $_[1] }).elems; + if $cmp == 1 { + say "Got $cmp for $s and $t" + } + return $s, $t, $cmp +} + +sub day2-pt2(@input) { + my ($a, $b, $c) = @input.combinations(2).race.map(&wole).first(-> @vals { @vals[2] == 1 }); + say $a.comb Z $b.comb; + say ($a.comb Z $b.comb).grep({ $_[0] eq $_[1] }).map(*.first).join +} + +my @input = parse-input; +day2-pt1(@input); +day2-pt2(@input); diff --git a/2018/day2.txt b/2018/day2.txt new file mode 100644 index 0000000..68bbc68 --- /dev/null +++ b/2018/day2.txt @@ -0,0 +1,250 @@ +uqcipadzntnheslgvjjozmkfyr +uqcipadzwtnhexlzvxjobmkfkr +cqcipadpwtnheslgyxjobmkfyr +ubnipadzwtnheslgvxjobmkfyw +uqcisadzwtnheslgvxjfbmkfor +uqcisaezwtnheslgvxkobmkfyr +uqcguadzwtnheslgvxjobmkfir +uqcipadzmtnhesldvxdobmkfyr +uqcipadzwtzheslgdxjtbmkfyr +uquipadzwtcheslgvxjobmkfbr +uqctpadzwtnhesjbvxjobmkfyr +ueciparzwtnheslgvxjobmkfyx +uqcipadzwtnhessgvxjkbmkfkr +uqcipamzwtnheslgvxioamkfyr +uciizadzwtnheslgvxjobmkfyr +uqcieadzwtnhesfgvxeobmkfyr +fqcipadzwtnreslgvkjobmkfyr +uqcipadzrtnherlgvxjobmklyr +uqcypadzwtnheslgvxjobmkxfr +uqcipadzwtnhemlgvxjobmvfur +uwciuadzwwnheslgvxjobmkfyr +uqcipadzwtnhcscgvxjobmkuyr +upripadzwtnheslovxjobmkfyr +uqcipadzltnheslgvxjobmkftc +uqcipadzwtnheslgvgjobmifsr +uqoipadzwtnheslgvxjosmkfkr +uqcipadzwtbhesrqvxjobmkfyr +uqcipadzwtnheslpvxjobmhfyx +uhcinadzwtnheslgvxjybmkfyr +uqcipadzwtnhhslgvxjabmkbyr +uecipadzwtnheslgvxjobqyfyr +uqcipadfwtnheslwvxjobgkfyr +uqcipadzvtnheshgvxzobmkfyr +fqcipadzwtcheslgvxjobmkfyt +uecipadzwtnheslgpxjbbmkfyr +uqclpadzwtnheslgvnjobukfyr +qqciprdzetnheslgvxjobmkfyr +uqcipahpwtnheslgvxjtbmkfyr +uqcidadzwtnhesljvxyobmkfyr +uqciradswtnqeslgvxjobmkfyr +uqcipadzwtrhmslgvxjobmkfyf +urcipadzjtnheslgvxfobmkfyr +uqcipadzwznheslgvxjobmkfcv +uqcipadowtnheslgyxjobmkfym +uqcigadzwtnheslgvxjoomkmyr +uqjipafzwtnheslgvejobmkfyr +uqcioadzwtnhhslgvxzobmkfyr +uqcgpadkwtnheslgvxjobhkfyr +ufciiadewtnheslgvxjobmkfyr +uqoipadzwtnheslgvxjllmkfyr +uqcipadzutnheslgwxxobmkfyr +uqcipadzwtlheslgaxjobmkfwr +uqcbpadzutnheslgvxjbbmkfyr +uucipadzwvnhesngvxjobmkfyr +uqcifadzwtnceslgvxjoumkfyr +ujcipadzwteheslgvxjobmkfyj +uqcipadzwtnheslqvxjobmkuyp +uqcipadzwtnheslgvxjoxmkxyw +uqcipaduwtnheslgvujmbmkfyr +uicipadnwtnheslgvxjobmbfyr +uqcipadzwteheslgvxjobbmfyr +uqcipadzwgnneslgvxjobmklyr +uqcipadzxtnhwslgvbjobmkfyr +uqcipaxwwtnheslxvxjobmkfyr +uocipadzwtnheslgvxjobqdfyr +uqciaauzwtnheslgtxjobmkfyr +uncipagzwtnkeslgvxjobmkfyr +uqcipadzwtnhehlgvxjohdkfyr +uqcipadzwtnheslgvxjobmspyz +uccipadzwtnhvsltvxjobmkfyr +uacipagzwtnheslgvxjoqmkfyr +tqcipaduwtnheslgvxjobmmfyr +uqcipadzwtnheslgvxqebmifyr +uecipadthtnheslgvxjobmkfyr +uocipadzwtnhdslgvkjobmkfyr +uqcipadtwtnheslgvxhobmufyr +uqkipadzwtnleslgtxjobmkfyr +uqcipadzjunheslgvxjobmnfyr +ubcipadzwtvheslgvxjobmkfyf +uqcipadzwpfheslgvxjsbmkfyr +uocipadzwtndeslgvxjobmmfyr +uqcipadzwtnheslgtxjobhkfyq +uqcipadzwtrheslgvxjobmyfya +uqcipadzwtvheslgvxjolgkfyr +uqcipidzwtaheslgvxjobmkfxr +uyzixadzwtnheslgvxjobmkfyr +uqyihadzwtnhedlgvxjobmkfyr +uqcipadzwtnhesltvejobqkfyr +uqciptdzwtnheslgyxlobmkfyr +uqcipzdzwtnhzslgvxjosmkfyr +uqcipadzwtnbeslgexjobmkfvr +uqcipadzwtnheslcwxjobmkkyr +uqcapadzwcnheslgvxjolmkfyr +uqcjpadzwtnhejlgvxjxbmkfyr +uqcipadwwtxweslgvxjobmkfyr +uqmipadzwtnhezlgvxjobmkyyr +uqcipubzwtnpeslgvxjobmkfyr +uecvpadzwtnheslgvxjocmkfyr +uqcipadzwfnheslgvxjibmkdyr +uqcipadzwtnheslgvxvfbykfyr +uqcipadzwtnheslgvgjoimkfyt +dqcqpaqzwtnheslgvxjobmkfyr +uqcipbdzwtnheslgvxjobmkghr +jqcipadzwtnheslgvxjgbmkzyr +uqcipadzwtnheslgvxqkqmkfyr +uqcipadzptnheslgvxjxbokfyr +uucijadzwtwheslgvxjobmkfyr +uccfpadzwtnheslgvxjobpkfyr +uqcipadzwtnheslgvxjobakeyq +uqcipadzwtnheolgvxqobjkfyr +imiipadzwtnheslgvxjobmkfyr +uqcehadzwtnheslgvxjobmkuyr +uqcipadzztnheslgvxjorokfyr +rqcixadzwtnheelgvxjobmkfyr +uqcipadzwtzheslgvxjodmkfyi +uqcipaezwtnwuslgvxjobmkfyr +uqcipadzwtnheslggxjobjkfyq +uqcipadzwkghesagvxjobmkfyr +uqcypqdzwtnheslgvxjobakfyr +iqcipadzwtnhezltvxjobmkfyr +uxcimadzwtnheslgvxjobmxfyr +uqcipaizwtvhwslgvxjobmkfyr +uqcipafzwtnheslgvxjpbmkfym +uqcipadzwinheslgvxlobmpfyr +uqcupadzwtnheslkvxmobmkfyr +uqcapadzwtnhesrgvxjobmkfsr +urcipafzwtnheslgvxjobmkfur +uqcipaczwtnheslgvbjobmknyr +uqcizadzztgheslgvxjobmkfyr +uqcipfdzwtnhesxgvxjobmkfyw +uqcipbdzwtnhyslgvxjobmcfyr +uqcipadzwanhezlgvxjobmkfwr +uvcipadzwtnheslgvxjbkmkfyr +uqcipajzwtnseslgvxjobmkfyq +uqcipvdzwtnheslgvmlobmkfyr +uqcipadzdgnheslgmxjobmkfyr +uqcipddzwtnhestgvpjobmkfyr +umcipadzwtdheslgvxjzbmkfyr +uqciuwdzwtnheslgvxjobmkflr +uqcipadzwtnheslgsxabbmkfyr +uceipadzwtnheslgvxjobgkfyr +mqcipadzwtnhesrgvxjobmjfyr +aqcipadvwtnheslgvxjobmkryr +uqsipadzwtnofslgvxjobmkfyr +uqcixadzwtfheslgvxjzbmkfyr +uqcipadnwfnheslgvxjohmkfyr +uqcivadzwtnheslfvxjobmkfyz +uqciprdzwtnheslgvxjobmkjir +uqcipadhbtnheslgvxjoxmkfyr +fqcipadzwtnhesfgvxjobmkfye +uqoipqdzwtnheqlgvxjobmkfyr +uqcipadzwtnhesltvxmobmkzyr +uqcipadzwtnhebqgvsjobmkfyr +uqcipadzwtnheslglxjobmfbyr +gqcipadzwtgheslgvxjobwkfyr +uqcipadzwtnheslgfxjzbmlfyr +ujcnpadzwtnheslrvxjobmkfyr +ujcivadzwtnheglgvxjobmkfyr +uqcitadzwgnheslgvxjofmkfyr +uqcipahzatnhmslgvxjobmkfyr +uqzipaizwtnheslgvujobmkfyr +uqcipadzltnheylgvnjobmkfyr +uqcidadzwtnhwsljvxyobmkfyr +uqcipadzwtihetlgvxjobhkfyr +oqcipabzwtnheslgvfjobmkfyr +uqcipadzwtnveslgvxjobzkfzr +uqcipadzwtjheslgqxjobmlfyr +uqcnpadzztnheslgvxjobmkoyr +uqciuadzwonheslgvxjobmkfyz +tqcipadzwtnheslgvxaobmqfyr +uqcipadtwtnhqslgvxjobmkeyr +uqcipadzwbnheslgvajobmsfyr +ubcopadzwtnhgslgvxjobmkfyr +uqcipydzwtwheslgvxjobakfyr +cqbijadzwtnheslgvxjobmkfyr +uscipadowtnheslgvxjobmkfcr +uqcipadzwtgheslnvxjobskfyr +uqcipzdzwtnzeslgkxjobmkfyr +uqcipawzwtnhrslgbxjobmkfyr +uqcipadzatchyslgvxjobmkfyr +uqcipadzotnpeslgvxjobmjfyr +uqcipagzwtnheslgvxjobmvfyt +uqcipadzwhnheslgvxyobmkfyo +uqcipadzwtnheslgmqjobmkfyc +uqcupadzwgnheslgvcjobmkfyr +uqcipabzwbnheslgvxjobmkwyr +uqciiadzwtnheslgvxjobmkfmz +uqkipauzwtnheslgvxjjbmkfyr +uqcipidzetnheslgvxjobmkfyi +uqcipadzwtnheslgqxjokmkfmr +uqcipadzqtnhesllvxjobmkfyk +uqccpadzwtnheslgmxsobmkfyr +uqcipadzwteheslgvljfbmkfyr +uqcipadxwinheslgaxjobmkfyr +uqcipadzwtnheslhvxyobmkfjr +aqcipadzwnnheslgvxjqbmkfyr +uvcipadzwtnheszgvxjobmkfyg +uqcipahzmtnheslgvxjobmkfir +ukcipadzbtnheslgvxjobmkfyb +uqcipadzwtnhemlgvqjobmkfpr +uqcipadzwtnheslgvmeobmkfpr +uqciphdrwtnheslgvxjobmkfyw +uqcipadzwtnheslevxqobzkfyr +uqcipadzwknzeslgvxnobmkfyr +wqcipadzwjnheslgvxjobbkfyr +uqcipadzwtdheslgvmjobmkjyr +uqvipadzwtnhextgvxjobmkfyr +uqhipadzwtnheslwvxjzbmkfyr +uqcipadzwtnherlgsxjobmksyr +uqcipadzwtnhesqgvxjotmvfyr +udcipadzwtnhekwgvxjobmkfyr +uqcjprdzwtnheslgvxjobmkfpr +uqcipadzatnheclgvqjobmkfyr +uqcbpadzctnheslqvxjobmkfyr +uqcipadzqtnhesluvxjobrkfyr +uqcipadzwtnhcslgvxjoomwfyr +uqcppadzwxnheslgwxjobmkfyr +uqcipadcwtnheslrvxjdbmkfyr +ukcipadzwtnhhslgvxjobmkgyr +uqckpadzwtnheslgvxjokmkiyr +uqcspadzwtjheslgvxjobmkfjr +uqcipadpwtnhsslgvxjobmkfyu +uqcepadzwtnheilgvbjobmkfyr +jqcipadiwtnheslgvxjobmkjyr +uqcipadzrtnseslgqxjobmkfyr +sqmipadzwtnhewlgvxjobmkfyr +uqcieadzhtnheslgvgjobmkfyr +uqcipadzwkwhewlgvxjobmkfyr +uqcipadzwtzheslgvxjpbqkfyr +uzcipadzjtnheslgvxjobmlfyr +uqcipadzwtnheslnvxjobmkfee +uqciyanzwtnheslgvxjoimkfyr +uqcipadqwtnheswghxjobmkfyr +uycipadzwtnheslovxjobmofyr +uqcipadzwtnheslgvxcozmxfyr +uqmipadzwtnxezlgvxjobmkfyr +uqcipadzftnheslgvxjotmkffr +aqcipaizwtnhesagvxjobmkfyr +uqcipcdzwtnheslgoajobmkfyr +uqcypadgwtnhesbgvxjobmkfyr +uqcipcdzwtnheslgvxjebmkfyb +uhcvpadzwtnheslgvxjobzkfyr +uqcipadzwtnpesagvxmobmkfyr +uqcipadzwtnidslgvxjobmkfor +uqcipadkwtnhesigvxjzbmkfyr +uqcypadlwtnheslsvxjobmkfyr +qqcipadzwtnheswgvxjobmkoyr +uqcipadzwtnheslgvxjhbmmcyr +uqcipadzwtnhesogvxjormkfmr +uqcipadzwtnhetcgvxgobmkfyr diff --git a/2018/day3.data b/2018/day3.data new file mode 100644 index 0000000..e45d2f4 --- /dev/null +++ b/2018/day3.data @@ -0,0 +1,1353 @@ +#1 @ 661,227: 29x11 +#2 @ 391,45: 27x20 +#3 @ 467,241: 23x12 +#4 @ 120,334: 18x28 +#5 @ 671,406: 28x16 +#6 @ 422,790: 23x12 +#7 @ 321,868: 13x17 +#8 @ 509,931: 11x20 +#9 @ 362,833: 26x20 +#10 @ 968,503: 27x16 +#11 @ 479,146: 26x25 +#12 @ 269,129: 25x14 +#13 @ 78,880: 25x17 +#14 @ 141,545: 11x16 +#15 @ 765,139: 21x29 +#16 @ 609,202: 13x16 +#17 @ 582,471: 22x21 +#18 @ 587,65: 10x17 +#19 @ 979,416: 18x23 +#20 @ 904,488: 16x26 +#21 @ 601,930: 12x23 +#22 @ 561,647: 24x26 +#23 @ 814,263: 18x27 +#24 @ 576,362: 20x18 +#25 @ 153,177: 11x18 +#26 @ 128,252: 25x18 +#27 @ 522,934: 20x13 +#28 @ 781,779: 11x25 +#29 @ 668,723: 22x28 +#30 @ 486,100: 16x13 +#31 @ 591,470: 27x16 +#32 @ 142,531: 18x15 +#33 @ 732,362: 24x10 +#34 @ 951,773: 28x27 +#35 @ 383,901: 15x23 +#36 @ 269,710: 20x10 +#37 @ 395,572: 17x18 +#38 @ 840,314: 19x14 +#39 @ 586,939: 20x15 +#40 @ 252,876: 16x29 +#41 @ 405,303: 10x11 +#42 @ 688,462: 27x20 +#43 @ 18,345: 24x22 +#44 @ 837,439: 24x22 +#45 @ 916,32: 27x11 +#46 @ 629,237: 24x10 +#47 @ 527,477: 20x15 +#48 @ 264,798: 29x14 +#49 @ 368,236: 29x26 +#50 @ 913,643: 13x18 +#51 @ 547,923: 24x10 +#52 @ 873,690: 22x20 +#53 @ 535,506: 3x10 +#54 @ 632,282: 10x13 +#55 @ 103,669: 26x24 +#56 @ 271,317: 3x3 +#57 @ 391,863: 22x16 +#58 @ 511,164: 17x20 +#59 @ 936,259: 26x24 +#60 @ 844,927: 23x29 +#61 @ 968,814: 16x24 +#62 @ 650,478: 13x16 +#63 @ 226,896: 22x15 +#64 @ 930,165: 26x23 +#65 @ 287,885: 25x24 +#66 @ 948,620: 22x21 +#67 @ 726,843: 20x27 +#68 @ 10,425: 14x16 +#69 @ 318,574: 11x26 +#70 @ 623,639: 14x23 +#71 @ 449,426: 28x15 +#72 @ 727,691: 23x22 +#73 @ 535,120: 16x21 +#74 @ 490,348: 13x29 +#75 @ 588,653: 5x7 +#76 @ 345,588: 13x26 +#77 @ 637,523: 21x22 +#78 @ 749,374: 25x20 +#79 @ 523,256: 14x19 +#80 @ 72,395: 15x26 +#81 @ 580,845: 12x26 +#82 @ 377,462: 10x19 +#83 @ 686,21: 21x11 +#84 @ 882,745: 20x10 +#85 @ 525,162: 13x18 +#86 @ 355,27: 11x29 +#87 @ 818,943: 17x26 +#88 @ 863,143: 16x27 +#89 @ 980,632: 10x16 +#90 @ 376,804: 17x28 +#91 @ 584,548: 10x18 +#92 @ 273,455: 11x25 +#93 @ 13,347: 11x15 +#94 @ 167,34: 29x23 +#95 @ 405,203: 14x22 +#96 @ 214,395: 14x29 +#97 @ 513,356: 22x25 +#98 @ 406,802: 24x12 +#99 @ 506,941: 10x27 +#100 @ 737,6: 10x24 +#101 @ 217,478: 26x11 +#102 @ 912,86: 25x26 +#103 @ 388,495: 15x12 +#104 @ 924,804: 10x11 +#105 @ 335,646: 28x27 +#106 @ 739,71: 12x16 +#107 @ 600,87: 15x13 +#108 @ 93,360: 22x22 +#109 @ 656,616: 23x18 +#110 @ 9,457: 29x14 +#111 @ 965,620: 19x14 +#112 @ 343,26: 23x13 +#113 @ 279,72: 17x16 +#114 @ 789,653: 13x20 +#115 @ 199,211: 16x23 +#116 @ 529,849: 24x23 +#117 @ 975,605: 13x16 +#118 @ 749,907: 24x24 +#119 @ 641,318: 26x12 +#120 @ 299,356: 16x5 +#121 @ 745,897: 20x27 +#122 @ 308,476: 10x28 +#123 @ 838,835: 28x14 +#124 @ 315,697: 17x17 +#125 @ 896,654: 26x29 +#126 @ 83,115: 19x14 +#127 @ 872,71: 16x15 +#128 @ 722,846: 27x14 +#129 @ 34,807: 22x28 +#130 @ 718,523: 12x24 +#131 @ 852,276: 10x25 +#132 @ 823,716: 22x15 +#133 @ 297,352: 23x13 +#134 @ 348,818: 21x29 +#135 @ 444,538: 13x21 +#136 @ 670,588: 25x28 +#137 @ 669,391: 20x12 +#138 @ 416,799: 22x11 +#139 @ 126,931: 25x10 +#140 @ 667,310: 26x26 +#141 @ 770,497: 18x27 +#142 @ 718,575: 10x28 +#143 @ 734,793: 16x24 +#144 @ 190,687: 28x29 +#145 @ 155,917: 13x29 +#146 @ 479,336: 22x23 +#147 @ 476,28: 22x16 +#148 @ 902,551: 17x17 +#149 @ 173,711: 22x18 +#150 @ 268,468: 19x20 +#151 @ 89,73: 11x18 +#152 @ 122,400: 10x10 +#153 @ 684,306: 18x10 +#154 @ 537,83: 4x20 +#155 @ 512,638: 27x16 +#156 @ 184,753: 24x26 +#157 @ 844,376: 27x14 +#158 @ 423,741: 21x19 +#159 @ 47,171: 17x23 +#160 @ 153,362: 20x28 +#161 @ 437,744: 12x29 +#162 @ 329,325: 14x18 +#163 @ 736,80: 24x23 +#164 @ 892,397: 19x12 +#165 @ 287,735: 18x18 +#166 @ 341,592: 26x29 +#167 @ 814,843: 15x24 +#168 @ 599,99: 21x21 +#169 @ 907,356: 11x13 +#170 @ 389,581: 17x13 +#171 @ 760,314: 22x13 +#172 @ 201,830: 26x16 +#173 @ 974,456: 24x27 +#174 @ 734,8: 29x23 +#175 @ 365,716: 21x29 +#176 @ 979,525: 17x21 +#177 @ 375,143: 24x11 +#178 @ 607,79: 23x14 +#179 @ 345,343: 19x11 +#180 @ 695,816: 10x29 +#181 @ 600,24: 10x22 +#182 @ 321,769: 26x23 +#183 @ 749,677: 20x26 +#184 @ 589,400: 19x24 +#185 @ 129,685: 18x11 +#186 @ 181,961: 22x19 +#187 @ 631,260: 11x23 +#188 @ 910,766: 21x27 +#189 @ 270,690: 10x18 +#190 @ 299,74: 19x25 +#191 @ 97,340: 23x29 +#192 @ 361,595: 23x19 +#193 @ 483,514: 12x11 +#194 @ 428,941: 27x19 +#195 @ 56,213: 28x25 +#196 @ 166,786: 28x29 +#197 @ 773,503: 15x13 +#198 @ 370,10: 18x26 +#199 @ 319,551: 28x20 +#200 @ 677,596: 10x22 +#201 @ 651,26: 24x21 +#202 @ 71,536: 25x21 +#203 @ 220,48: 23x16 +#204 @ 104,38: 16x14 +#205 @ 503,388: 10x19 +#206 @ 610,829: 16x12 +#207 @ 926,772: 23x14 +#208 @ 548,69: 26x13 +#209 @ 535,293: 26x12 +#210 @ 411,767: 23x25 +#211 @ 306,230: 24x25 +#212 @ 338,429: 26x18 +#213 @ 781,134: 22x20 +#214 @ 834,968: 28x19 +#215 @ 578,182: 21x11 +#216 @ 851,158: 23x10 +#217 @ 536,506: 5x5 +#218 @ 229,804: 16x19 +#219 @ 766,398: 14x13 +#220 @ 342,185: 13x15 +#221 @ 62,83: 10x11 +#222 @ 31,433: 29x26 +#223 @ 526,160: 21x17 +#224 @ 18,574: 16x26 +#225 @ 625,411: 21x17 +#226 @ 406,15: 20x29 +#227 @ 643,864: 11x15 +#228 @ 472,148: 5x5 +#229 @ 67,749: 18x27 +#230 @ 860,389: 24x20 +#231 @ 261,140: 19x28 +#232 @ 699,562: 28x12 +#233 @ 344,131: 16x21 +#234 @ 363,443: 20x21 +#235 @ 857,4: 29x19 +#236 @ 378,845: 21x19 +#237 @ 151,546: 25x18 +#238 @ 568,483: 22x10 +#239 @ 833,799: 23x16 +#240 @ 623,219: 19x29 +#241 @ 776,663: 12x24 +#242 @ 604,247: 15x17 +#243 @ 933,589: 11x10 +#244 @ 237,793: 18x25 +#245 @ 780,661: 23x12 +#246 @ 881,684: 18x20 +#247 @ 287,363: 24x13 +#248 @ 302,558: 11x14 +#249 @ 691,378: 19x27 +#250 @ 698,400: 27x24 +#251 @ 818,773: 10x25 +#252 @ 94,694: 24x20 +#253 @ 869,623: 24x12 +#254 @ 951,529: 19x27 +#255 @ 468,86: 18x18 +#256 @ 303,818: 11x22 +#257 @ 905,923: 21x14 +#258 @ 901,720: 15x13 +#259 @ 40,911: 11x27 +#260 @ 434,790: 14x17 +#261 @ 373,229: 17x20 +#262 @ 751,345: 14x14 +#263 @ 562,199: 25x11 +#264 @ 133,279: 17x17 +#265 @ 261,109: 22x22 +#266 @ 36,831: 20x10 +#267 @ 512,603: 16x23 +#268 @ 972,785: 24x21 +#269 @ 472,627: 22x20 +#270 @ 576,454: 16x23 +#271 @ 521,87: 16x18 +#272 @ 386,911: 13x24 +#273 @ 201,699: 14x15 +#274 @ 33,898: 13x28 +#275 @ 459,33: 15x11 +#276 @ 362,863: 24x20 +#277 @ 599,570: 16x16 +#278 @ 385,299: 15x18 +#279 @ 676,408: 18x14 +#280 @ 680,298: 28x23 +#281 @ 267,66: 15x18 +#282 @ 635,207: 11x18 +#283 @ 398,318: 18x28 +#284 @ 356,111: 16x13 +#285 @ 137,416: 16x12 +#286 @ 758,68: 12x29 +#287 @ 709,701: 19x22 +#288 @ 862,189: 20x28 +#289 @ 18,855: 13x18 +#290 @ 526,81: 24x25 +#291 @ 740,8: 3x8 +#292 @ 670,298: 14x21 +#293 @ 588,755: 14x14 +#294 @ 414,786: 4x8 +#295 @ 103,22: 20x17 +#296 @ 665,82: 20x20 +#297 @ 957,786: 13x11 +#298 @ 200,926: 14x26 +#299 @ 348,694: 29x19 +#300 @ 461,371: 25x12 +#301 @ 631,24: 13x25 +#302 @ 286,380: 24x23 +#303 @ 331,391: 12x14 +#304 @ 408,19: 5x20 +#305 @ 280,448: 16x25 +#306 @ 408,281: 15x24 +#307 @ 835,43: 14x22 +#308 @ 886,340: 27x23 +#309 @ 308,276: 17x15 +#310 @ 893,498: 21x24 +#311 @ 139,132: 20x27 +#312 @ 138,203: 24x14 +#313 @ 531,114: 13x25 +#314 @ 633,543: 29x15 +#315 @ 550,208: 27x14 +#316 @ 294,362: 21x17 +#317 @ 140,702: 9x11 +#318 @ 929,771: 26x10 +#319 @ 822,727: 25x13 +#320 @ 461,227: 23x26 +#321 @ 324,669: 24x17 +#322 @ 169,858: 19x17 +#323 @ 490,942: 17x19 +#324 @ 537,884: 25x21 +#325 @ 709,266: 26x25 +#326 @ 265,867: 24x13 +#327 @ 269,79: 24x27 +#328 @ 922,878: 18x17 +#329 @ 694,319: 11x17 +#330 @ 524,864: 11x17 +#331 @ 886,823: 20x10 +#332 @ 479,153: 7x11 +#333 @ 161,788: 27x14 +#334 @ 948,558: 28x25 +#335 @ 886,592: 12x25 +#336 @ 779,23: 29x14 +#337 @ 795,367: 10x15 +#338 @ 101,532: 4x20 +#339 @ 671,528: 29x29 +#340 @ 651,607: 27x20 +#341 @ 88,833: 17x11 +#342 @ 346,560: 24x27 +#343 @ 378,654: 23x10 +#344 @ 262,506: 29x14 +#345 @ 108,71: 24x16 +#346 @ 703,275: 25x29 +#347 @ 48,86: 28x24 +#348 @ 399,14: 12x24 +#349 @ 150,121: 26x24 +#350 @ 548,709: 28x16 +#351 @ 65,850: 28x18 +#352 @ 361,590: 14x13 +#353 @ 307,400: 23x11 +#354 @ 656,705: 16x24 +#355 @ 823,894: 13x16 +#356 @ 96,367: 21x29 +#357 @ 653,316: 13x12 +#358 @ 702,966: 12x18 +#359 @ 734,84: 21x25 +#360 @ 511,288: 18x28 +#361 @ 722,131: 28x16 +#362 @ 646,701: 24x27 +#363 @ 633,333: 12x11 +#364 @ 312,379: 25x15 +#365 @ 513,364: 16x18 +#366 @ 661,229: 22x21 +#367 @ 801,132: 29x12 +#368 @ 383,902: 14x29 +#369 @ 817,437: 27x12 +#370 @ 342,625: 16x28 +#371 @ 575,858: 26x11 +#372 @ 671,315: 29x22 +#373 @ 635,409: 27x17 +#374 @ 65,5: 23x12 +#375 @ 2,590: 23x13 +#376 @ 452,345: 11x22 +#377 @ 104,967: 19x28 +#378 @ 470,150: 15x18 +#379 @ 728,730: 29x21 +#380 @ 900,125: 13x29 +#381 @ 283,848: 26x13 +#382 @ 379,245: 16x17 +#383 @ 42,754: 26x11 +#384 @ 292,460: 28x19 +#385 @ 46,228: 16x14 +#386 @ 534,291: 11x24 +#387 @ 407,2: 29x22 +#388 @ 443,736: 12x20 +#389 @ 852,869: 19x10 +#390 @ 607,309: 16x29 +#391 @ 496,42: 13x10 +#392 @ 250,689: 21x14 +#393 @ 296,564: 24x17 +#394 @ 566,456: 20x29 +#395 @ 293,743: 27x24 +#396 @ 180,48: 17x16 +#397 @ 972,531: 16x17 +#398 @ 623,775: 23x17 +#399 @ 611,777: 14x13 +#400 @ 303,147: 23x20 +#401 @ 680,707: 28x24 +#402 @ 384,29: 17x21 +#403 @ 280,261: 24x15 +#404 @ 784,633: 11x27 +#405 @ 366,250: 16x17 +#406 @ 141,228: 27x19 +#407 @ 381,872: 12x24 +#408 @ 633,851: 26x28 +#409 @ 441,825: 27x29 +#410 @ 214,255: 17x22 +#411 @ 213,393: 27x28 +#412 @ 899,103: 23x23 +#413 @ 382,48: 28x22 +#414 @ 508,241: 19x29 +#415 @ 730,864: 13x17 +#416 @ 252,73: 29x19 +#417 @ 481,38: 19x16 +#418 @ 486,642: 20x10 +#419 @ 146,680: 15x27 +#420 @ 548,218: 24x17 +#421 @ 902,561: 27x13 +#422 @ 531,434: 22x18 +#423 @ 595,242: 17x18 +#424 @ 601,506: 27x14 +#425 @ 181,869: 15x20 +#426 @ 93,903: 12x20 +#427 @ 554,138: 11x26 +#428 @ 444,835: 15x23 +#429 @ 117,391: 11x27 +#430 @ 64,127: 7x5 +#431 @ 25,75: 24x28 +#432 @ 19,728: 23x16 +#433 @ 114,844: 29x18 +#434 @ 272,134: 3x5 +#435 @ 970,666: 25x10 +#436 @ 6,981: 25x10 +#437 @ 933,15: 14x20 +#438 @ 829,147: 18x24 +#439 @ 670,395: 29x25 +#440 @ 67,296: 26x11 +#441 @ 308,872: 6x3 +#442 @ 752,394: 13x12 +#443 @ 673,904: 16x15 +#444 @ 234,114: 10x27 +#445 @ 262,867: 21x18 +#446 @ 495,49: 13x14 +#447 @ 370,635: 27x27 +#448 @ 275,632: 28x13 +#449 @ 953,556: 27x10 +#450 @ 771,360: 20x26 +#451 @ 814,133: 19x23 +#452 @ 694,800: 28x23 +#453 @ 885,506: 29x26 +#454 @ 41,799: 23x20 +#455 @ 358,267: 21x17 +#456 @ 386,653: 18x16 +#457 @ 529,342: 28x21 +#458 @ 687,483: 10x25 +#459 @ 774,660: 12x19 +#460 @ 713,704: 10x17 +#461 @ 757,366: 11x16 +#462 @ 479,34: 18x20 +#463 @ 315,700: 22x18 +#464 @ 149,366: 12x25 +#465 @ 57,730: 22x21 +#466 @ 773,495: 13x18 +#467 @ 951,618: 10x22 +#468 @ 367,772: 25x26 +#469 @ 700,380: 23x14 +#470 @ 873,807: 19x11 +#471 @ 282,152: 19x24 +#472 @ 866,705: 22x29 +#473 @ 464,54: 11x21 +#474 @ 164,131: 19x24 +#475 @ 789,575: 20x16 +#476 @ 310,86: 28x17 +#477 @ 768,325: 12x10 +#478 @ 790,274: 18x27 +#479 @ 19,430: 22x14 +#480 @ 42,813: 11x19 +#481 @ 961,815: 18x23 +#482 @ 288,947: 16x17 +#483 @ 958,779: 10x29 +#484 @ 91,114: 12x24 +#485 @ 580,471: 14x22 +#486 @ 399,908: 29x24 +#487 @ 322,140: 27x16 +#488 @ 288,914: 4x8 +#489 @ 377,715: 10x25 +#490 @ 136,697: 18x24 +#491 @ 887,810: 16x24 +#492 @ 941,762: 29x26 +#493 @ 42,210: 29x24 +#494 @ 182,332: 14x22 +#495 @ 123,847: 27x10 +#496 @ 178,309: 24x23 +#497 @ 917,668: 28x16 +#498 @ 521,926: 15x20 +#499 @ 148,128: 11x23 +#500 @ 589,76: 13x11 +#501 @ 783,575: 4x13 +#502 @ 520,88: 29x10 +#503 @ 300,827: 29x22 +#504 @ 641,537: 25x29 +#505 @ 876,693: 15x13 +#506 @ 515,879: 28x17 +#507 @ 485,515: 24x12 +#508 @ 100,886: 19x10 +#509 @ 261,851: 23x17 +#510 @ 678,735: 17x26 +#511 @ 740,144: 27x12 +#512 @ 300,609: 25x15 +#513 @ 924,625: 21x11 +#514 @ 599,43: 23x16 +#515 @ 630,17: 25x18 +#516 @ 366,743: 10x28 +#517 @ 496,319: 16x13 +#518 @ 745,667: 24x13 +#519 @ 494,387: 26x12 +#520 @ 200,359: 20x16 +#521 @ 853,373: 21x19 +#522 @ 329,311: 24x25 +#523 @ 959,531: 23x22 +#524 @ 78,358: 23x14 +#525 @ 223,266: 28x19 +#526 @ 916,338: 13x20 +#527 @ 672,331: 19x17 +#528 @ 750,346: 18x24 +#529 @ 212,387: 19x20 +#530 @ 245,804: 11x15 +#531 @ 867,849: 23x14 +#532 @ 182,808: 12x22 +#533 @ 718,719: 29x22 +#534 @ 120,965: 14x11 +#535 @ 644,406: 16x23 +#536 @ 879,575: 14x23 +#537 @ 529,409: 19x18 +#538 @ 824,315: 16x23 +#539 @ 531,502: 18x16 +#540 @ 657,478: 18x23 +#541 @ 943,790: 14x15 +#542 @ 77,741: 25x17 +#543 @ 665,518: 18x16 +#544 @ 253,882: 13x6 +#545 @ 517,735: 18x21 +#546 @ 123,711: 16x11 +#547 @ 902,865: 27x28 +#548 @ 304,383: 19x27 +#549 @ 790,556: 18x18 +#550 @ 291,509: 22x29 +#551 @ 801,452: 10x18 +#552 @ 188,239: 29x15 +#553 @ 103,979: 6x4 +#554 @ 973,98: 27x28 +#555 @ 948,811: 25x24 +#556 @ 496,644: 24x26 +#557 @ 508,326: 10x22 +#558 @ 764,396: 26x19 +#559 @ 442,428: 12x14 +#560 @ 883,976: 10x24 +#561 @ 168,556: 19x23 +#562 @ 965,569: 26x19 +#563 @ 640,800: 16x28 +#564 @ 471,535: 11x18 +#565 @ 595,444: 5x5 +#566 @ 629,455: 23x17 +#567 @ 639,870: 17x5 +#568 @ 204,781: 25x22 +#569 @ 313,812: 11x25 +#570 @ 246,591: 25x26 +#571 @ 388,879: 13x16 +#572 @ 408,854: 18x22 +#573 @ 497,933: 17x28 +#574 @ 224,278: 26x22 +#575 @ 35,812: 10x23 +#576 @ 347,631: 28x27 +#577 @ 854,145: 14x22 +#578 @ 171,515: 29x11 +#579 @ 413,872: 5x7 +#580 @ 740,8: 24x11 +#581 @ 700,571: 12x24 +#582 @ 64,694: 21x25 +#583 @ 648,327: 12x25 +#584 @ 546,318: 26x18 +#585 @ 959,432: 28x29 +#586 @ 853,580: 17x29 +#587 @ 11,353: 15x14 +#588 @ 152,901: 24x22 +#589 @ 584,394: 15x14 +#590 @ 291,741: 19x18 +#591 @ 11,451: 24x13 +#592 @ 395,40: 11x21 +#593 @ 107,278: 22x26 +#594 @ 437,853: 26x25 +#595 @ 793,125: 23x26 +#596 @ 521,153: 10x29 +#597 @ 566,627: 18x19 +#598 @ 492,101: 19x17 +#599 @ 239,506: 11x21 +#600 @ 25,433: 11x4 +#601 @ 977,488: 12x24 +#602 @ 537,669: 29x13 +#603 @ 368,503: 6x11 +#604 @ 789,516: 19x12 +#605 @ 247,318: 18x28 +#606 @ 20,186: 27x25 +#607 @ 882,732: 21x11 +#608 @ 26,633: 10x12 +#609 @ 101,826: 26x24 +#610 @ 17,644: 27x19 +#611 @ 727,881: 23x19 +#612 @ 955,436: 24x24 +#613 @ 545,429: 19x13 +#614 @ 438,304: 16x11 +#615 @ 587,567: 14x18 +#616 @ 108,862: 11x29 +#617 @ 307,270: 18x14 +#618 @ 242,255: 25x13 +#619 @ 490,365: 25x23 +#620 @ 752,94: 11x12 +#621 @ 844,848: 26x11 +#622 @ 846,436: 17x15 +#623 @ 185,30: 14x23 +#624 @ 668,232: 21x13 +#625 @ 294,329: 23x15 +#626 @ 492,35: 13x18 +#627 @ 232,909: 4x8 +#628 @ 278,169: 29x10 +#629 @ 829,885: 22x21 +#630 @ 961,608: 27x13 +#631 @ 375,227: 19x19 +#632 @ 131,235: 20x10 +#633 @ 621,891: 12x10 +#634 @ 141,684: 14x22 +#635 @ 450,846: 29x13 +#636 @ 403,579: 12x23 +#637 @ 900,549: 22x22 +#638 @ 858,369: 17x11 +#639 @ 166,116: 24x29 +#640 @ 640,539: 12x12 +#641 @ 461,821: 18x11 +#642 @ 692,744: 27x29 +#643 @ 521,286: 24x21 +#644 @ 920,554: 29x14 +#645 @ 625,876: 24x23 +#646 @ 568,902: 28x10 +#647 @ 270,695: 18x15 +#648 @ 466,929: 23x19 +#649 @ 566,852: 15x18 +#650 @ 97,913: 22x16 +#651 @ 598,111: 17x17 +#652 @ 681,22: 16x19 +#653 @ 350,822: 12x17 +#654 @ 314,676: 13x11 +#655 @ 211,115: 12x16 +#656 @ 854,290: 18x11 +#657 @ 890,566: 27x14 +#658 @ 465,220: 15x11 +#659 @ 814,838: 14x11 +#660 @ 297,278: 15x26 +#661 @ 479,544: 15x29 +#662 @ 251,880: 20x13 +#663 @ 728,250: 24x17 +#664 @ 768,867: 10x28 +#665 @ 964,79: 22x20 +#666 @ 194,56: 10x29 +#667 @ 523,403: 27x28 +#668 @ 104,409: 27x22 +#669 @ 786,631: 10x16 +#670 @ 514,859: 22x20 +#671 @ 357,134: 19x17 +#672 @ 160,504: 26x25 +#673 @ 80,548: 28x17 +#674 @ 617,628: 19x13 +#675 @ 849,317: 23x19 +#676 @ 889,569: 10x10 +#677 @ 238,156: 29x12 +#678 @ 292,954: 24x11 +#679 @ 875,909: 23x15 +#680 @ 722,592: 23x27 +#681 @ 375,287: 29x24 +#682 @ 690,417: 15x12 +#683 @ 766,67: 18x20 +#684 @ 686,895: 14x21 +#685 @ 616,89: 13x23 +#686 @ 395,105: 20x24 +#687 @ 624,541: 12x20 +#688 @ 663,413: 14x25 +#689 @ 226,804: 29x29 +#690 @ 724,219: 29x28 +#691 @ 245,609: 22x18 +#692 @ 402,207: 27x26 +#693 @ 640,441: 24x24 +#694 @ 529,951: 28x29 +#695 @ 402,941: 26x12 +#696 @ 719,599: 13x27 +#697 @ 125,367: 14x13 +#698 @ 740,226: 19x20 +#699 @ 559,466: 21x10 +#700 @ 899,167: 13x14 +#701 @ 616,514: 14x29 +#702 @ 787,556: 17x6 +#703 @ 336,170: 16x23 +#704 @ 444,115: 26x24 +#705 @ 908,767: 19x24 +#706 @ 411,937: 17x23 +#707 @ 601,463: 19x13 +#708 @ 105,305: 26x13 +#709 @ 711,736: 11x24 +#710 @ 2,463: 13x28 +#711 @ 878,829: 27x16 +#712 @ 385,448: 27x15 +#713 @ 203,393: 24x23 +#714 @ 274,325: 10x24 +#715 @ 198,975: 16x11 +#716 @ 52,660: 10x16 +#717 @ 239,583: 12x26 +#718 @ 299,277: 21x22 +#719 @ 121,287: 27x10 +#720 @ 578,464: 24x23 +#721 @ 57,149: 14x23 +#722 @ 808,150: 26x10 +#723 @ 249,476: 27x25 +#724 @ 933,76: 12x29 +#725 @ 156,913: 12x19 +#726 @ 950,778: 27x17 +#727 @ 963,863: 27x12 +#728 @ 115,809: 14x17 +#729 @ 263,636: 18x25 +#730 @ 281,278: 22x17 +#731 @ 598,151: 29x28 +#732 @ 948,678: 19x16 +#733 @ 343,779: 10x19 +#734 @ 40,65: 16x11 +#735 @ 968,207: 12x28 +#736 @ 852,919: 24x17 +#737 @ 288,793: 11x10 +#738 @ 591,720: 13x11 +#739 @ 700,419: 17x28 +#740 @ 98,718: 15x27 +#741 @ 330,555: 20x28 +#742 @ 198,636: 27x14 +#743 @ 134,234: 10x12 +#744 @ 648,687: 11x13 +#745 @ 585,571: 12x14 +#746 @ 715,784: 24x21 +#747 @ 334,17: 18x14 +#748 @ 880,610: 11x18 +#749 @ 290,504: 22x25 +#750 @ 168,273: 28x13 +#751 @ 672,395: 11x3 +#752 @ 293,810: 12x23 +#753 @ 642,437: 23x27 +#754 @ 708,955: 15x28 +#755 @ 601,82: 22x10 +#756 @ 381,202: 25x25 +#757 @ 319,148: 13x12 +#758 @ 398,312: 19x27 +#759 @ 80,398: 15x15 +#760 @ 406,381: 15x23 +#761 @ 949,354: 28x13 +#762 @ 900,88: 18x11 +#763 @ 812,123: 24x15 +#764 @ 793,287: 26x13 +#765 @ 195,755: 23x18 +#766 @ 791,653: 22x13 +#767 @ 622,825: 13x11 +#768 @ 328,230: 14x22 +#769 @ 788,766: 10x14 +#770 @ 4,121: 20x18 +#771 @ 168,248: 25x10 +#772 @ 661,602: 10x11 +#773 @ 338,576: 27x25 +#774 @ 357,595: 14x26 +#775 @ 565,66: 15x23 +#776 @ 941,447: 28x12 +#777 @ 866,416: 13x24 +#778 @ 855,373: 10x17 +#779 @ 765,501: 23x12 +#780 @ 276,922: 13x10 +#781 @ 276,95: 16x18 +#782 @ 617,193: 13x18 +#783 @ 920,772: 28x14 +#784 @ 34,654: 15x16 +#785 @ 223,836: 20x17 +#786 @ 620,232: 25x28 +#787 @ 785,426: 12x15 +#788 @ 556,758: 25x18 +#789 @ 859,937: 10x16 +#790 @ 328,93: 14x26 +#791 @ 486,671: 12x23 +#792 @ 120,299: 26x18 +#793 @ 214,266: 17x24 +#794 @ 357,263: 11x24 +#795 @ 413,403: 21x11 +#796 @ 678,948: 11x28 +#797 @ 887,967: 11x16 +#798 @ 140,833: 11x22 +#799 @ 476,823: 15x13 +#800 @ 27,66: 20x24 +#801 @ 943,449: 18x15 +#802 @ 838,165: 29x17 +#803 @ 811,951: 23x13 +#804 @ 625,32: 18x15 +#805 @ 469,30: 13x19 +#806 @ 287,601: 26x17 +#807 @ 370,919: 23x17 +#808 @ 251,740: 28x12 +#809 @ 566,93: 26x11 +#810 @ 101,976: 11x12 +#811 @ 443,932: 25x11 +#812 @ 163,291: 21x14 +#813 @ 837,268: 18x11 +#814 @ 395,464: 17x12 +#815 @ 549,851: 17x28 +#816 @ 645,803: 25x19 +#817 @ 928,807: 21x10 +#818 @ 831,869: 26x16 +#819 @ 882,366: 17x20 +#820 @ 752,313: 17x14 +#821 @ 640,318: 11x23 +#822 @ 201,302: 14x19 +#823 @ 40,358: 26x27 +#824 @ 574,370: 18x22 +#825 @ 90,42: 27x12 +#826 @ 824,905: 21x21 +#827 @ 663,473: 17x28 +#828 @ 893,432: 28x26 +#829 @ 287,131: 26x26 +#830 @ 792,572: 25x14 +#831 @ 722,966: 17x14 +#832 @ 542,927: 20x26 +#833 @ 626,619: 11x21 +#834 @ 370,758: 29x21 +#835 @ 488,671: 18x14 +#836 @ 220,98: 22x25 +#837 @ 11,894: 12x24 +#838 @ 406,868: 22x21 +#839 @ 474,240: 20x13 +#840 @ 656,526: 20x18 +#841 @ 258,487: 25x28 +#842 @ 469,143: 23x16 +#843 @ 276,701: 11x20 +#844 @ 620,698: 11x11 +#845 @ 302,516: 15x25 +#846 @ 584,651: 22x13 +#847 @ 666,371: 13x20 +#848 @ 636,315: 25x23 +#849 @ 882,689: 15x16 +#850 @ 337,568: 16x18 +#851 @ 932,590: 13x19 +#852 @ 622,419: 18x12 +#853 @ 144,741: 20x19 +#854 @ 263,640: 24x14 +#855 @ 398,307: 20x11 +#856 @ 232,513: 13x13 +#857 @ 648,631: 10x11 +#858 @ 879,831: 10x23 +#859 @ 553,473: 24x27 +#860 @ 15,592: 20x10 +#861 @ 852,363: 12x16 +#862 @ 676,386: 20x13 +#863 @ 8,740: 26x25 +#864 @ 52,80: 11x25 +#865 @ 190,815: 14x26 +#866 @ 724,342: 14x26 +#867 @ 93,13: 20x23 +#868 @ 541,88: 29x16 +#869 @ 693,283: 20x10 +#870 @ 779,658: 10x23 +#871 @ 527,155: 20x15 +#872 @ 273,302: 22x24 +#873 @ 307,884: 29x13 +#874 @ 188,377: 28x17 +#875 @ 393,870: 16x28 +#876 @ 18,431: 16x15 +#877 @ 525,170: 11x13 +#878 @ 528,175: 15x14 +#879 @ 955,425: 19x23 +#880 @ 239,802: 25x28 +#881 @ 255,70: 20x11 +#882 @ 356,653: 20x20 +#883 @ 943,189: 25x20 +#884 @ 912,41: 13x28 +#885 @ 882,628: 17x15 +#886 @ 34,894: 20x24 +#887 @ 969,845: 24x21 +#888 @ 429,777: 21x27 +#889 @ 981,3: 13x10 +#890 @ 436,134: 25x10 +#891 @ 218,612: 29x15 +#892 @ 816,65: 21x14 +#893 @ 24,602: 10x14 +#894 @ 868,971: 14x24 +#895 @ 974,610: 18x14 +#896 @ 569,559: 25x22 +#897 @ 321,591: 14x12 +#898 @ 486,32: 12x26 +#899 @ 328,575: 10x10 +#900 @ 883,667: 16x18 +#901 @ 893,739: 10x11 +#902 @ 845,135: 17x18 +#903 @ 737,78: 11x16 +#904 @ 329,702: 20x21 +#905 @ 463,51: 26x15 +#906 @ 109,295: 12x23 +#907 @ 947,219: 28x11 +#908 @ 642,511: 17x19 +#909 @ 636,366: 26x10 +#910 @ 719,388: 14x13 +#911 @ 915,185: 29x17 +#912 @ 952,166: 14x28 +#913 @ 97,72: 22x14 +#914 @ 83,711: 26x13 +#915 @ 129,359: 29x16 +#916 @ 914,100: 22x23 +#917 @ 395,244: 20x21 +#918 @ 524,755: 18x26 +#919 @ 602,422: 16x26 +#920 @ 181,104: 29x16 +#921 @ 725,849: 19x7 +#922 @ 154,630: 13x20 +#923 @ 791,280: 18x14 +#924 @ 825,118: 17x21 +#925 @ 476,151: 14x18 +#926 @ 17,913: 12x23 +#927 @ 698,957: 22x13 +#928 @ 278,843: 23x11 +#929 @ 968,10: 14x11 +#930 @ 271,638: 20x11 +#931 @ 52,667: 26x15 +#932 @ 142,716: 12x26 +#933 @ 91,78: 27x19 +#934 @ 179,797: 27x12 +#935 @ 493,530: 11x24 +#936 @ 250,645: 9x10 +#937 @ 377,907: 15x11 +#938 @ 945,789: 11x15 +#939 @ 782,628: 15x12 +#940 @ 450,65: 24x27 +#941 @ 32,796: 16x10 +#942 @ 959,623: 25x24 +#943 @ 612,441: 11x25 +#944 @ 233,785: 17x29 +#945 @ 263,315: 17x10 +#946 @ 284,581: 10x17 +#947 @ 298,262: 18x29 +#948 @ 901,68: 23x11 +#949 @ 383,566: 18x15 +#950 @ 367,174: 22x14 +#951 @ 667,881: 26x10 +#952 @ 641,643: 26x10 +#953 @ 598,37: 10x12 +#954 @ 717,667: 13x16 +#955 @ 375,557: 10x23 +#956 @ 836,405: 26x15 +#957 @ 913,651: 15x10 +#958 @ 257,861: 27x15 +#959 @ 844,802: 17x19 +#960 @ 872,138: 27x18 +#961 @ 524,892: 27x16 +#962 @ 771,114: 17x25 +#963 @ 737,729: 11x18 +#964 @ 509,24: 20x14 +#965 @ 95,503: 28x15 +#966 @ 56,575: 11x25 +#967 @ 633,26: 8x20 +#968 @ 661,390: 10x16 +#969 @ 176,336: 21x16 +#970 @ 909,91: 14x27 +#971 @ 867,73: 14x15 +#972 @ 142,559: 23x23 +#973 @ 545,341: 27x26 +#974 @ 46,53: 16x17 +#975 @ 124,856: 27x22 +#976 @ 354,308: 22x19 +#977 @ 202,639: 12x7 +#978 @ 616,419: 26x26 +#979 @ 741,602: 25x11 +#980 @ 689,474: 26x23 +#981 @ 975,580: 10x22 +#982 @ 859,812: 24x20 +#983 @ 119,469: 18x18 +#984 @ 720,656: 27x22 +#985 @ 508,402: 19x19 +#986 @ 700,717: 25x24 +#987 @ 877,973: 10x15 +#988 @ 329,85: 29x15 +#989 @ 845,572: 25x14 +#990 @ 529,964: 10x13 +#991 @ 199,758: 23x20 +#992 @ 631,691: 24x10 +#993 @ 770,570: 22x24 +#994 @ 916,627: 21x16 +#995 @ 315,479: 11x28 +#996 @ 203,520: 17x22 +#997 @ 519,349: 14x20 +#998 @ 130,719: 12x17 +#999 @ 836,304: 26x17 +#1000 @ 809,321: 28x19 +#1001 @ 206,912: 23x21 +#1002 @ 24,854: 26x24 +#1003 @ 180,672: 26x23 +#1004 @ 265,831: 29x25 +#1005 @ 577,767: 22x19 +#1006 @ 660,327: 28x25 +#1007 @ 167,310: 16x29 +#1008 @ 907,212: 29x29 +#1009 @ 618,323: 28x12 +#1010 @ 692,448: 27x27 +#1011 @ 682,232: 23x19 +#1012 @ 305,328: 22x25 +#1013 @ 408,476: 23x12 +#1014 @ 269,478: 19x19 +#1015 @ 460,59: 17x21 +#1016 @ 722,739: 29x14 +#1017 @ 768,645: 29x11 +#1018 @ 406,951: 27x14 +#1019 @ 776,557: 21x23 +#1020 @ 729,952: 23x23 +#1021 @ 499,31: 11x23 +#1022 @ 210,781: 15x16 +#1023 @ 503,308: 12x26 +#1024 @ 665,651: 12x22 +#1025 @ 650,375: 17x13 +#1026 @ 288,687: 23x18 +#1027 @ 740,221: 20x17 +#1028 @ 266,699: 11x25 +#1029 @ 163,796: 15x10 +#1030 @ 542,730: 13x29 +#1031 @ 365,120: 16x17 +#1032 @ 368,643: 29x18 +#1033 @ 941,821: 20x21 +#1034 @ 384,123: 12x21 +#1035 @ 935,338: 19x19 +#1036 @ 664,882: 13x17 +#1037 @ 414,2: 10x11 +#1038 @ 768,632: 20x14 +#1039 @ 189,349: 12x14 +#1040 @ 168,282: 29x26 +#1041 @ 913,98: 6x13 +#1042 @ 642,40: 21x23 +#1043 @ 504,0: 17x28 +#1044 @ 87,847: 24x20 +#1045 @ 893,638: 21x12 +#1046 @ 509,175: 26x10 +#1047 @ 462,354: 15x28 +#1048 @ 851,315: 14x16 +#1049 @ 468,821: 20x12 +#1050 @ 114,470: 13x28 +#1051 @ 213,546: 14x11 +#1052 @ 240,341: 20x15 +#1053 @ 196,249: 28x14 +#1054 @ 268,112: 17x23 +#1055 @ 120,610: 27x22 +#1056 @ 179,367: 14x15 +#1057 @ 523,639: 11x25 +#1058 @ 332,616: 22x25 +#1059 @ 143,646: 25x12 +#1060 @ 529,718: 27x13 +#1061 @ 44,903: 21x27 +#1062 @ 65,738: 14x12 +#1063 @ 92,179: 13x26 +#1064 @ 276,267: 29x18 +#1065 @ 797,518: 25x11 +#1066 @ 368,905: 29x22 +#1067 @ 785,554: 26x11 +#1068 @ 768,651: 20x19 +#1069 @ 749,350: 13x12 +#1070 @ 484,818: 13x15 +#1071 @ 213,198: 16x16 +#1072 @ 466,72: 15x26 +#1073 @ 599,700: 28x21 +#1074 @ 9,980: 15x14 +#1075 @ 385,783: 25x21 +#1076 @ 461,629: 25x25 +#1077 @ 787,19: 11x11 +#1078 @ 774,359: 28x18 +#1079 @ 157,930: 17x18 +#1080 @ 283,700: 16x25 +#1081 @ 177,674: 16x13 +#1082 @ 358,165: 14x13 +#1083 @ 560,272: 28x28 +#1084 @ 142,349: 29x27 +#1085 @ 539,890: 14x29 +#1086 @ 921,651: 14x25 +#1087 @ 876,151: 14x16 +#1088 @ 637,867: 23x13 +#1089 @ 699,294: 26x24 +#1090 @ 199,525: 20x15 +#1091 @ 372,14: 13x18 +#1092 @ 958,533: 22x29 +#1093 @ 607,12: 19x16 +#1094 @ 61,288: 23x14 +#1095 @ 200,231: 22x24 +#1096 @ 845,972: 27x23 +#1097 @ 847,508: 13x16 +#1098 @ 203,417: 13x14 +#1099 @ 413,291: 13x15 +#1100 @ 435,921: 20x16 +#1101 @ 403,888: 13x26 +#1102 @ 145,677: 18x10 +#1103 @ 18,594: 12x10 +#1104 @ 536,123: 16x14 +#1105 @ 719,278: 14x17 +#1106 @ 616,652: 15x25 +#1107 @ 529,445: 27x13 +#1108 @ 516,600: 12x19 +#1109 @ 403,45: 27x29 +#1110 @ 23,173: 17x17 +#1111 @ 763,604: 27x14 +#1112 @ 33,77: 28x10 +#1113 @ 265,596: 27x19 +#1114 @ 44,671: 25x11 +#1115 @ 619,162: 25x24 +#1116 @ 318,14: 20x12 +#1117 @ 477,249: 27x28 +#1118 @ 369,787: 21x29 +#1119 @ 146,389: 23x29 +#1120 @ 767,643: 12x26 +#1121 @ 674,299: 27x11 +#1122 @ 585,606: 21x16 +#1123 @ 196,624: 14x10 +#1124 @ 304,700: 12x28 +#1125 @ 385,635: 14x23 +#1126 @ 114,682: 12x17 +#1127 @ 213,272: 28x22 +#1128 @ 523,116: 20x14 +#1129 @ 622,332: 14x10 +#1130 @ 387,491: 18x23 +#1131 @ 334,903: 18x12 +#1132 @ 412,784: 16x13 +#1133 @ 508,939: 29x14 +#1134 @ 275,741: 25x25 +#1135 @ 535,414: 9x3 +#1136 @ 928,438: 22x20 +#1137 @ 581,439: 23x26 +#1138 @ 826,318: 28x22 +#1139 @ 120,798: 13x15 +#1140 @ 842,505: 27x28 +#1141 @ 758,386: 14x24 +#1142 @ 851,334: 18x27 +#1143 @ 358,421: 25x24 +#1144 @ 90,878: 27x15 +#1145 @ 281,631: 21x13 +#1146 @ 741,92: 24x22 +#1147 @ 114,493: 27x29 +#1148 @ 856,412: 16x14 +#1149 @ 111,866: 19x20 +#1150 @ 31,647: 28x26 +#1151 @ 52,211: 23x28 +#1152 @ 496,643: 26x20 +#1153 @ 973,296: 16x20 +#1154 @ 962,575: 23x11 +#1155 @ 157,382: 27x16 +#1156 @ 123,801: 15x26 +#1157 @ 115,884: 17x27 +#1158 @ 102,857: 12x12 +#1159 @ 237,280: 10x13 +#1160 @ 404,448: 22x28 +#1161 @ 50,590: 25x25 +#1162 @ 848,364: 26x13 +#1163 @ 850,439: 7x8 +#1164 @ 676,610: 23x13 +#1165 @ 394,475: 19x27 +#1166 @ 297,684: 23x18 +#1167 @ 314,494: 19x24 +#1168 @ 542,464: 11x19 +#1169 @ 732,238: 10x19 +#1170 @ 242,634: 26x27 +#1171 @ 549,845: 20x25 +#1172 @ 208,608: 14x25 +#1173 @ 494,650: 17x11 +#1174 @ 550,194: 13x16 +#1175 @ 957,792: 18x10 +#1176 @ 836,65: 11x20 +#1177 @ 910,417: 22x26 +#1178 @ 479,367: 19x11 +#1179 @ 344,257: 27x26 +#1180 @ 477,236: 19x15 +#1181 @ 414,458: 27x28 +#1182 @ 738,10: 26x17 +#1183 @ 401,618: 12x23 +#1184 @ 390,301: 6x13 +#1185 @ 174,768: 27x14 +#1186 @ 378,139: 28x18 +#1187 @ 542,160: 18x23 +#1188 @ 675,408: 27x15 +#1189 @ 532,660: 26x19 +#1190 @ 62,125: 14x15 +#1191 @ 301,495: 23x17 +#1192 @ 286,907: 10x24 +#1193 @ 267,688: 10x28 +#1194 @ 567,464: 27x26 +#1195 @ 724,514: 24x19 +#1196 @ 269,962: 20x21 +#1197 @ 192,925: 28x26 +#1198 @ 190,600: 14x10 +#1199 @ 66,823: 25x12 +#1200 @ 648,490: 18x11 +#1201 @ 692,814: 12x18 +#1202 @ 850,191: 13x11 +#1203 @ 592,705: 15x18 +#1204 @ 169,127: 16x18 +#1205 @ 284,79: 16x28 +#1206 @ 839,61: 25x18 +#1207 @ 220,904: 25x18 +#1208 @ 114,251: 24x14 +#1209 @ 108,918: 23x19 +#1210 @ 589,891: 19x23 +#1211 @ 137,313: 10x17 +#1212 @ 335,907: 15x19 +#1213 @ 438,297: 29x19 +#1214 @ 268,845: 16x29 +#1215 @ 756,319: 13x22 +#1216 @ 649,505: 12x19 +#1217 @ 858,274: 21x21 +#1218 @ 228,104: 26x20 +#1219 @ 383,473: 22x15 +#1220 @ 653,426: 10x10 +#1221 @ 434,744: 27x15 +#1222 @ 548,578: 25x27 +#1223 @ 534,438: 11x29 +#1224 @ 503,647: 27x20 +#1225 @ 99,528: 18x29 +#1226 @ 167,569: 22x26 +#1227 @ 894,557: 14x19 +#1228 @ 208,522: 10x25 +#1229 @ 62,0: 25x20 +#1230 @ 741,4: 12x21 +#1231 @ 78,197: 25x15 +#1232 @ 278,614: 18x22 +#1233 @ 984,301: 10x19 +#1234 @ 915,337: 29x11 +#1235 @ 598,187: 24x16 +#1236 @ 946,539: 21x13 +#1237 @ 137,281: 3x12 +#1238 @ 813,328: 21x26 +#1239 @ 453,531: 25x11 +#1240 @ 432,428: 23x17 +#1241 @ 813,907: 26x23 +#1242 @ 585,560: 15x13 +#1243 @ 827,151: 10x19 +#1244 @ 520,363: 12x26 +#1245 @ 757,894: 23x22 +#1246 @ 787,436: 22x19 +#1247 @ 278,685: 14x29 +#1248 @ 358,347: 23x16 +#1249 @ 181,722: 15x13 +#1250 @ 820,143: 18x12 +#1251 @ 587,611: 26x12 +#1252 @ 684,809: 15x13 +#1253 @ 496,530: 10x12 +#1254 @ 303,500: 16x7 +#1255 @ 263,925: 22x24 +#1256 @ 656,624: 18x23 +#1257 @ 239,42: 19x27 +#1258 @ 695,557: 13x16 +#1259 @ 55,689: 27x15 +#1260 @ 228,478: 19x16 +#1261 @ 650,76: 17x10 +#1262 @ 212,899: 17x17 +#1263 @ 501,362: 11x22 +#1264 @ 711,419: 11x12 +#1265 @ 262,691: 19x21 +#1266 @ 1,118: 29x25 +#1267 @ 545,599: 19x13 +#1268 @ 379,219: 29x20 +#1269 @ 542,669: 12x22 +#1270 @ 481,85: 14x12 +#1271 @ 318,844: 12x27 +#1272 @ 261,236: 14x29 +#1273 @ 256,745: 10x14 +#1274 @ 562,618: 21x21 +#1275 @ 391,246: 14x10 +#1276 @ 695,586: 20x17 +#1277 @ 123,601: 15x17 +#1278 @ 770,883: 27x14 +#1279 @ 841,150: 27x18 +#1280 @ 788,430: 5x7 +#1281 @ 708,978: 29x13 +#1282 @ 150,185: 26x19 +#1283 @ 110,383: 11x21 +#1284 @ 306,864: 11x18 +#1285 @ 954,569: 23x10 +#1286 @ 650,417: 14x28 +#1287 @ 450,420: 15x13 +#1288 @ 380,455: 29x17 +#1289 @ 486,338: 14x11 +#1290 @ 852,142: 26x26 +#1291 @ 114,494: 12x15 +#1292 @ 242,621: 11x17 +#1293 @ 717,586: 10x10 +#1294 @ 281,832: 16x19 +#1295 @ 898,511: 18x12 +#1296 @ 894,703: 11x19 +#1297 @ 508,414: 16x17 +#1298 @ 788,777: 10x18 +#1299 @ 919,278: 19x12 +#1300 @ 964,659: 28x10 +#1301 @ 62,670: 20x20 +#1302 @ 677,947: 11x12 +#1303 @ 259,693: 23x29 +#1304 @ 460,349: 15x27 +#1305 @ 905,235: 23x16 +#1306 @ 174,586: 20x20 +#1307 @ 909,910: 23x19 +#1308 @ 1,594: 28x10 +#1309 @ 553,308: 10x29 +#1310 @ 363,497: 23x26 +#1311 @ 132,175: 28x29 +#1312 @ 854,10: 26x28 +#1313 @ 816,768: 20x15 +#1314 @ 142,242: 20x23 +#1315 @ 169,104: 14x14 +#1316 @ 732,125: 22x12 +#1317 @ 296,391: 22x10 +#1318 @ 259,75: 24x17 +#1319 @ 510,922: 21x11 +#1320 @ 172,266: 11x13 +#1321 @ 895,566: 18x25 +#1322 @ 841,826: 22x12 +#1323 @ 205,384: 14x10 +#1324 @ 567,662: 12x20 +#1325 @ 253,971: 21x21 +#1326 @ 887,154: 23x17 +#1327 @ 29,830: 10x24 +#1328 @ 532,504: 12x17 +#1329 @ 445,930: 16x10 +#1330 @ 642,351: 22x14 +#1331 @ 584,753: 13x21 +#1332 @ 113,893: 13x24 +#1333 @ 109,350: 18x25 +#1334 @ 699,400: 15x20 +#1335 @ 963,664: 13x18 +#1336 @ 376,566: 20x29 +#1337 @ 775,762: 10x18 +#1338 @ 136,486: 13x10 +#1339 @ 638,333: 27x28 +#1340 @ 228,568: 27x19 +#1341 @ 334,600: 26x26 +#1342 @ 537,701: 25x12 +#1343 @ 40,800: 26x20 +#1344 @ 693,318: 11x24 +#1345 @ 883,392: 16x12 +#1346 @ 470,78: 12x13 +#1347 @ 209,900: 11x28 +#1348 @ 204,364: 24x12 +#1349 @ 533,414: 11x10 +#1350 @ 853,314: 22x25 +#1351 @ 543,467: 29x25 +#1352 @ 406,632: 11x27 +#1353 @ 743,209: 14x21
\ No newline at end of file diff --git a/2018/day3.p6 b/2018/day3.p6 new file mode 100644 index 0000000..ce9ae2d --- /dev/null +++ b/2018/day3.p6 @@ -0,0 +1,60 @@ +use lib <lib>; +use Utils; + +class Point { has $.x; has $.y; method gist { "{$.x}×{$.y}" }} + +class Fabric { + has $.left; + has $.top; + has $.width; + has $.height; + + method points { + gather { + my @rx = $.left ..^ ($.left+$.width); + my @ry = ($.top) ..^ ($.top+$.height); + for @rx -> $x { + for @ry -> $y { + take "$x,$y"; + } + } + } + } +} + +sub infix:<ð>(Fabric $f1, Fabric $f2) { + say $f1.points; + say $f2.points; + say ''; + my $a = set($f1.points); + my $b = set($f2.points); + say $a (&) $b; +} + +sub pt1($data --> Int) { + my @fabric = $data.lines.map({ +my $m = Day3.parse($_); +Fabric.new( + left => $m<position><left>, + top => $m<position><top>, + width => $m<size><width>, + height => $m<size><height> +)}); + + for @fabric.combinations(2) -> @f { + @f[0] ð @f[1] + } + + return 0; +} + +sub MAIN("test") { + my @data = q:to/E/; + #1 @ 1,3: 4x4 + #2 @ 3,1: 4x4 + #3 @ 5,5: 2x2 + E + my $sq = pt1(@data); + + die "Got $sq instead 4" if $sq != 4; +} diff --git a/2018/day4.p6 b/2018/day4.p6 new file mode 100644 index 0000000..def1084 --- /dev/null +++ b/2018/day4.p6 @@ -0,0 +1,50 @@ +#`[ +[1518-11-01 00:00] Guard #10 begins shift +[1518-11-01 00:05] falls asleep +[1518-11-01 00:25] wakes up +[1518-11-01 00:30] falls asleep +[1518-11-01 00:55] wakes up +[1518-11-01 23:58] Guard #99 begins shift +[1518-11-02 00:40] falls asleep +[1518-11-02 00:50] wakes up +[1518-11-03 00:05] Guard #10 begins shift +[1518-11-03 00:24] falls asleep +[1518-11-03 00:29] wakes up +[1518-11-04 00:02] Guard #99 begins shift +[1518-11-04 00:36] falls asleep +[1518-11-04 00:46] wakes up +[1518-11-05 00:03] Guard #99 begins shift +[1518-11-05 00:45] falls asleep +[1518-11-05 00:55] wakes up +] + +use Grammar::Tracer; + +grammar GuardLog { + token TOP { [ <guard-log> ]+ } + rule guard-log { + <shift-start> 'Guard #' <id> begins shift + [ <log> ]+ + } + rule log { <date> <action> } + token shift-start { <date> } + token id { \d+ } + token date { '[' \d ** 4 '-' \d ** 2 '-' \d ** 2 ' ' <hour> ']'} + token hour { \d ** 2 ':' \d ** 2 } + + rule action { + | 'falls asleep' + | 'wakes up' + } +} + +my $log = GuardLog.parse(q:to/EOF/); +[1518-11-01 00:00] Guard #10 begins shift +[1518-11-01 00:05] falls asleep +[1518-11-01 00:25] wakes up +[1518-11-01 00:30] falls asleep +[1518-11-01 00:55] wakes up +EOF + +say $log<guard-log>[0]<log>.elems; + diff --git a/2018/lib/Utils.pm6 b/2018/lib/Utils.pm6 new file mode 100644 index 0000000..5b955d3 --- /dev/null +++ b/2018/lib/Utils.pm6 @@ -0,0 +1,45 @@ +use v6; + +grammar Day3 is export { + token TOP { <id> " @ " <position> ": " <size> } + token id { "#" \d+ } + token position { $<left> = [\d+]","$<top>=[\d+] } + token size { $<width>=[\d+]"x"$<height>=[\d+] } +} + +sub parse-input(--> List) is export { $*IN.lines.List } + +sub to-int(Str @input --> List) is export { @input.map: *.Int } + +sub dd-matrix(@m) { + for ^@m.shape[0] -> \i { + my $s = ""; + for ^@m.shape[1] -> \j { + $s~=@m[i;j]; + } + say "[" ~ $s.comb.join(", ") ~ "]"; + } +} + +sub levenshtein($s, $t) is export { + my $m = $s.chars; + my $n = $t.chars; + my int32 @d[$m+1;$n+1] = (0 xx $n+1) xx $m+1; + + for 1..$m { @d[$_;0] = $_ }; + for 1..$n { @d[0;$_] = $_ }; + + for 1..$n -> \j { + for 1..$m -> \i { + my $sub-cost = 0; + if $s.comb[i-1] ne $t.comb[j-1] { + $sub-cost = 1; + } + @d[i;j] = (@d[i-1;j] + 1, + @d[i;j-1] + 1, + @d[i-1;j-1] + $sub-cost).min; + } + } + + return @d[$m;$n]; +} diff --git a/2018/prof.html b/2018/prof.html new file mode 100644 index 0000000..f34c6b0 --- /dev/null +++ b/2018/prof.html @@ -0,0 +1,1264 @@ +<!DOCTYPE html> +<html lang="en" ng-app="moarProfApp" ng-controller="NavigationController"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>MoarVM Profiler Results</title> + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css"> + <style> + body { + min-height: 500px; + padding-top: 70px; + } + .icyclegraph .call { + display: block; + border: 1px solid black; + overflow: hidden; + } + .icyclegraph .child { + float: left; + } + .icyclegraph a { + color: black; + } + </style> + </head> + <body > + <div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand">MoarVM Profiler Results</a> + </div> + <div class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + <li ng-class="Tab == 'Overview' ? 'active' : ''"><a href="#overview" ng-click="Tab = 'Overview'">Overview</a></li> + <li ng-class="Tab == 'Routines' ? 'active' : ''"><a href="#routines" ng-click="Tab = 'Routines'">Routines</a></li> + <li ng-class="Tab == 'Call Graph' ? 'active' : ''"><a href="#callgraph" ng-click="Tab = 'Call Graph'">Call Graph</a></li> + <li ng-class="Tab == 'Allocations' ? 'active' : ''"><a href="#allocations" ng-click="Tab = 'Allocations'">Allocations</a></li> + <li ng-class="Tab == 'GC' ? 'active' : ''"><a href="#gc" ng-click="Tab = 'GC'">GC</a></li> + <li ng-class="Tab == 'OSR/Deopt' ? 'active' : ''"><a href="#osrdeopt" ng-click="Tab = 'OSR/Deopt'">OSR / Deopt</a></li> + </ul> + </div> + </div> + </div> + + <div class="container" ng-show="Tab == 'Overview'"> + <div ng-controller="OverviewController"> + <h3>Time Spent</h3> + <p>The profiled code ran for <strong>{{TotalTime}}ms</strong>. Of this, + <strong>{{GCOverheadTime}}ms</strong> were spent on garbage collection + (that's <strong>{{GCOverheadTimePercent}}%</strong>). + </p> + <p>The dynamic optimizer was active for <strong>{{SpeshTimePercent}}%</strong> of the program's run time. + <table class="table table-striped table-condensed table-bordered"> + <tbody> + <tr> + <td><strong>Executing Code</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-success" role="progressbar" style="width: {{ExecutingTimePercent}}%;"> + </div> + </div> + </div> + <div> + {{ExecutingTimePercent}}% + ({{ExecutingTime}}ms) + </div> + </td> + </tr> + <tr> + <td><strong>Garbage Collection</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-warning" role="progressbar" style="width: {{GCTimePercent}}%;"> + </div> + </div> + </div> + <div> + {{GCTimePercent}}% + ({{GCTime}}ms) + </div> + </td> + </tr> + <tr> + <td><strong>Dynamic Optimization</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-warning" role="progressbar" style="width: {{SpeshTimePercent}}%;"> + </div> + </div> + </div> + <div> + {{SpeshTimePercent}}% + ({{SpeshTime}}ms) + </div> + </td> + </tr> + </tbody> + </table> + + <h3>Call Frames</h3> + <p>In total, <strong>{{EntriesWithoutInline}} call frames</strong> were + entered and exited by the profiled code. Inlining eliminated the need + to create <strong>{{EntriesInline}} call frames</strong> (that's + <strong>{{InlinePercent}}%</strong>). + </p> + <table class="table table-striped table-condensed table-bordered"> + <tbody> + <tr> + <td><strong>Interpreted Frames</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-danger" role="progressbar" style="width: {{InterpFramesPercent}}%;"> + </div> + </div> + </div> + <div> + {{InterpFramesPercent}}% + ({{InterpFrames}}) + </div> + </td> + </tr> + <tr> + <td><strong>Specialized Frames</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-warning" role="progressbar" style="width: {{SpeshFramesPercent}}%;"> + </div> + </div> + </div> + <div> + {{SpeshFramesPercent}}% + ({{SpeshFrames}}) + </div> + </td> + </tr> + <tr> + <td><strong>JIT-Compiled Frames</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-success" role="progressbar" style="width: {{JITFramesPercent}}%;"> + </div> + </div> + </div> + <div> + {{JITFramesPercent}}% + ({{JITFrames}}) + </div> + </td> + </tr> + </tbody> + </table> + + <h3>Garbage Collection</h3> + <p>The profiled code did <strong>{{GCRuns}} garbage collections</strong>. + There were <strong>{{FullGCRuns}} full collections</strong> involving + the entire heap. + </p> + <p ng-show="{{GCRuns > 0}}"> + The average nursery collection time was <strong>{{NurseryAverage}}ms</strong>. + <span ng-show="{{FullGCRuns > 0}}"> + The average full collection time was <strong>{{FullAverage}}ms</strong>. + </span> + <span ng-show="{{AverageParticipants > 1}}"> + On average, <strong>{{AverageParticipants}}</strong> threads participated in GC. + </span> + </p> + + <h3>Dynamic Optimization</h3> + <p>Of {{OptimizedFrames}} specialized or JIT-compiled frames, there were + <strong>{{DeoptOnes}} deoptimizations</strong> (that's <strong> + {{DeoptOnePercent}}%</strong> of all optimized frames). + </p> + <p ng-show="DeoptAlls == 0"> + There was <strong>no global deoptimization</strong> triggered by the + profiled code. + </p> + <p ng-show="DeoptAlls == 1"> + There was <strong>one global deoptimization</strong> triggered by the + profiled code. + </p> + <p ng-show="DeoptAlls > 1"> + There were <strong>{{DeoptAlls}} global deoptimization</strong> triggered + by the profiled code. + </p> + <p ng-show="OSRs == 0"> + There was <strong>no On Stack Replacement</strong> performed while + executing the profiled code (normal if the code lacks long-running + loops with many iterations). + </p> + <p ng-show="OSRs == 1"> + There was <strong>one On Stack Replacement</strong> performed while + executing the profiled code. + </p> + <p ng-show="OSRs > 1"> + There were <strong>{{OSRs}} On Stack Replacements</strong> performed + while executing the profiled code. + </p> + </div> + </div> + + <div class="container" ng-show="Tab == 'Routines'"> + <div ng-controller="RoutinesController"> + <table class="table table-striped table-condensed table-bordered"> + <thead> + <th> + <a href="" ng-click="reverse = predicate == 'Name' ? !reverse : false; predicate = 'Name';">Name</a> + <input ng-model="NameFilter"> + </th> + <th><a href="" ng-click="reverse = predicate == 'Entries' ? !reverse : true; predicate = 'Entries';">Entries</a></th> + <th><a href="" ng-click="reverse = predicate == 'InclusiveTime' ? !reverse : true; predicate = 'InclusiveTime';">Inclusive Time</a></th> + <th><a href="" ng-click="reverse = predicate == 'ExclusiveTime' ? !reverse : true; predicate = 'ExclusiveTime';">Exclusive Time</a></th> + <th> + <span class="text-danger" tooltip-placement="bottom" tooltip="Unoptimized interpreted code">Interp</span> / + <span class="text-warning" tooltip-placement="bottom" tooltip="Type-specialized interpreted code">Spesh</span> / + <span class="text-success" tooltip-placement="bottom" tooltip="Type-specialized, JIT-compiled code">JIT</span> + </th> + </thead> + <tbody> + <tr ng-repeat="routine in Routines | filter:NameFilter | orderBy:predicate:reverse"> + <td> + <strong>{{routine.Name}}</strong><br /> + <span class="text-muted">{{routine.File}}:{{routine.Line}}</span> + </td> + <td>{{routine.Entries}}</td> + <td> + <div class="pull-left" style="width: 70px"> + <div class="progress" style="width: 60px"> + <div class="progress-bar" role="progressbar" style="width: {{routine.InclusiveTimePercent}}%;"> + </div> + </div> + </div> + <div> + <strong>{{routine.InclusiveTimePercent}}%</strong> + ({{routine.InclusiveTime}}ms) + </div> + </td> + <td> + <div class="pull-left" style="width: 70px"> + <div class="progress" style="width: 60px"> + <div class="progress-bar" role="progressbar" style="width: {{routine.ExclusiveTimePercent}}%;"> + </div> + </div> + </div> + <div> + <strong>{{routine.ExclusiveTimePercent}}%</strong> + ({{routine.ExclusiveTime}}ms) + </div> + </td> + <td> + <div class="pull-left" style="width: 110px"> + <div class="progress" style="width: 100px"> + <div class="progress-bar progress-bar-danger" style="width: {{routine.InterpEntriesPercent}}%"> + </div> + <div class="progress-bar progress-bar-warning" style="width: {{routine.SpeshEntriesPercent}}%"> + </div> + <div class="progress-bar progress-bar-success" style="width: {{routine.JITEntriesPercent}}%"> + </div> + </div> + </div> + <div> + <span class="label label-default" ng-show="routine.OSR">OSR</span> + </div> + </td> + </tr> + </tbody> + </table> + </div> + </div> + + <script type="text/ng-template" id="icycle_graph_callee_renderer.html"> + <a href="#" class="call" style="background-color:{{backgroundColor(callee)}}" ng-click="toCallee(callee)">{{callee.name}}</a> + <div class="child" style="width: {{callee.inclusive_time * 100 / Current.inclusive_time}}%;" ng-repeat="callee in callee.callees" title="{{callee.name}}" ng-include="'icycle_graph_callee_renderer.html'"></div> + </script> + + <div class="container" ng-show="Tab == 'Call Graph'"> + <div ng-controller="CallGraphController"> + + <ol class="breadcrumb"> + <li><strong>Callers:</strong></li> + <li ng-show="RecentCallers.length == 0"><em>None</em></li> + <li ng-repeat="caller in RecentCallers"> + <a href="" ng-click="toCaller(caller)"> + {{caller.name == '' ? '<anon>' : caller.name}} + </a> + </li> + </ol> + + <p> + <span class="lead">{{Current.name == '' ? '<anon>' : Current.name}}</span><br /> + <span class="text-muted">{{File}}:{{Line}}</span> + </p> + + <div class="icyclegraph"> + <div class="child" ng-repeat="callee in [Current]" ng-include="'icycle_graph_callee_renderer.html'"></div> + </div> + + <table class="table table-striped table-condensed table-bordered"> + <tbody> + <tr> + <td><strong>Calls <span class="text-success">(Inlined)</span></strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar" role="progressbar" style="width: {{Percent}}%;"> + </div> + <div class="progress-bar progress-bar-success" role="progressbar" style="width: {{InlinePercent}}%;"> + </div> + </div> + </div> + <div ng-show="InlinePercent == 0"> + {{Entries}} + </div> + <div ng-show="InlinePercent != 0"> + {{Entries}} + + <span class="text-success">{{InlineEntries}} ({{InlinePercent}}%)</span> + </div> + </td> + </tr> + <tr> + <td><strong>Interpreted Calls</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-danger" role="progressbar" style="width: {{InterpPercent}}%;"> + </div> + </div> + </div> + <div> + {{InterpPercent}}% + ({{InterpEntries}}) + </div> + </td> + </tr> + <tr> + <td><strong>Specialized Calls</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-warning" role="progressbar" style="width: {{SpeshPercent}}%;"> + </div> + </div> + </div> + <div> + {{SpeshPercent}}% + ({{SpeshEntries}}) + </div> + </td> + </tr> + <tr> + <td><strong>JIT-Compiled Calls</strong></td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar progress-bar-success" role="progressbar" style="width: {{JITPercent}}%;"> + </div> + </div> + </div> + <div> + {{JITPercent}}% + ({{JITEntries}}) + </div> + </td> + </tr> + </tbody> + </table> + + <div class="panel panel-default"> + <div class="panel-heading">Callees</div> + <table class="table table-striped table-condensed table-bordered" ng-show="Callees.length > 0"> + <thead> + <th> + <a href="" ng-click="reverse = predicate == 'Name' ? !reverse : false; predicate = 'Name';">Name</a> + <input ng-model="NameFilter"> + </th> + <th><a href="" ng-click="reverse = predicate == 'Calls' ? !reverse : true; predicate = 'Calls';">Calls</a></th> + <th><a href="" ng-click="reverse = predicate == 'Time' ? !reverse : true; predicate = 'Time';">Time In Callee</a></th> + <th> + <span class="text-danger" tooltip-placement="bottom" tooltip="Unoptimized interpreted code">Interp</span> / + <span class="text-warning" tooltip-placement="bottom" tooltip="Type-specialized interpreted code">Spesh</span> / + <span class="text-success" tooltip-placement="bottom" tooltip="Type-specialized, JIT-compiled code">JIT</span> + </th> + <th> + <span tooltip-placement="bottom" tooltip="Code from this callee was flattened into the routine by the optimizer">Inlined</span> + </th> + </thead> + <tbody> + <tr ng-repeat="callee in Callees | filter:NameFilter | orderBy:predicate:reverse"> + <td> + <strong><a href="" ng-click="toCallee(callee.Node)">{{callee.Name}}</a></strong><br /> + <span class="text-muted">{{callee.File}}:{{callee.Line}}</span> + </td> + <td>{{callee.Calls}}</td> + <td> + <div class="pull-left" style="width: 70px"> + <div class="progress" style="width: 60px"> + <div class="progress-bar" role="progressbar" style="width: {{callee.TimePercent}}%;"> + </div> + </div> + </div> + <div> + <strong>{{callee.TimePercent}}%</strong> + ({{callee.Time}}ms) + </div> + </td> + <td> + <div class="progress" style="width: 100px"> + <div class="progress-bar progress-bar-danger" style="width: {{callee.InterpCallsPercent}}%"> + </div> + <div class="progress-bar progress-bar-warning" style="width: {{callee.SpeshCallsPercent}}%"> + </div> + <div class="progress-bar progress-bar-success" style="width: {{callee.JITCallsPercent}}%"> + </div> + </div> + </td> + <td> + <div ng-show="callee.VeryInline"> + <span class="text-success"> + <span class="glyphicon glyphicon-star"></span> + </span> + {{callee.InlinedPercent}}% + </div> + <div ng-show="callee.SometimesInline"> + <span class="text-muted"> + <span class="glyphicon glyphicon-star-empty"></span> + </span> + {{callee.InlinedPercent}}% + </div> + </td> + </tr> + </tbody> + </table> + <div class="panel-body" ng-show="Callees.length == 0"> + This code has no callees. + </div> + </div> + + </div> + </div> + + <div class="container" ng-show="Tab == 'Allocations'"> + <div ng-controller="AllocationsController"> + <table class="table table-striped table-condensed table-bordered"> + <thead> + <th> + <a href="" ng-click="reverse = predicate == 'Name' ? !reverse : false; predicate = 'Name';">Name</a> + <input ng-model="NameFilter"> + </th> + <th><a href="" ng-click="reverse = predicate == 'Allocations' ? !reverse : true; predicate = 'Allocations';">Allocations</a></th> + <th>Allocating Routines</th> + </thead> + <tbody> + <tr ng-repeat="alloc in AllocationSummary | filter:NameFilter | orderBy:predicate:reverse"> + <td><strong>{{alloc.Name}}</strong></td> + <td> + <div class="pull-left" style="width: 210px"> + <div class="progress" style="width: 200px"> + <div class="progress-bar progress-bar-danger" role="progressbar" style="width: {{alloc.AllocationsInterpPercent}}%;"> + </div> + <div class="progress-bar progress-bar-warning" role="progressbar" style="width: {{alloc.AllocationsSpeshPercent}}%;"> + </div> + <div class="progress-bar progress-bar-success" role="progressbar" style="width: {{alloc.AllocationsJitPercent}}%;"> + </div> + </div> + </div> + <div> + {{alloc.Allocations}} + </div> + </td> + <td> + <a href="" ng-click="showAllocatingRoutines(alloc)">View</a> + </td> + </tr> + </tbody> + </table> + <script type="text/ng-template" id="myModalContent.html"> + <div class="modal-header"> + <button type="button" ng-click="modalInstance.close()" + class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span><span class="sr-only">Close</span> + </button> + <h4 class="modal-title" id="allocatingRoutinesModalLabel"> + Routines Allocating {{CurrentAllocatingRoutine}} + </h4> + </div> + <div class="modal-body"> + <table class="table table-striped table-condensed table-bordered"> + <thead> + <th> + <a href="" ng-click="routineReverse = routinePredicate == 'Name' ? !routineReverse : false; routinePredicate = 'Name';">Name</a> + <input ng-model="RoutineNameFilter"> + </th> + <th><a href="" ng-click="routineReverse = routinePredicate == 'Allocations' ? !routineReverse : true; routinePredicate = 'Allocations';">Allocations</a></th> + </thead> + <tbody> + <tr ng-repeat="routine in CurrentAllocatingRoutineStats | filter:RoutineNameFilter | orderBy:routinePredicate:routineReverse"> + <td> + <strong>{{routine.Name}}</strong><br /> + <span class="text-muted">{{routine.File}}:{{routine.Line}}</span> + </td> + <td> + <div class="pull-left" style="width: 210px"> + <div class="progress" style="width: 200px"> + <div class="progress-bar progress-bar-danger" style="width: {{routine.AllocationsInterpPercent}}%;"> + </div> + <div class="progress-bar progress-bar-warning" style="width: {{routine.AllocationsSpeshPercent}}%;"> + </div> + <div class="progress-bar progress-bar-success" style="width: {{routine.AllocationsJitPercent}}%;"> + </div> + </div> + </div> + <div> + {{routine.Allocations}} + </div> + </td> + </tr> + </tbody> + </table> + </div> + <div class="modal-footer"> + <button type="button" ng-click="modalInstance.close()" + class="btn btn-default" data-dismiss="modal">Close</button> + </div> + </script> + </div> + </div> + + <div class="container" ng-show="Tab == 'GC'"> + <div ng-controller="GCController"> + <table class="table table-striped table-condensed table-bordered"> + <thead> + <th> + <a href="" ng-click="reverse = predicate == 'StartTime' ? !reverse : false; predicate = 'StartTime';">Start Time</a> + </th> + <th> + <a href="" ng-click="reverse = predicate == 'Run' ? !reverse : false; predicate = 'Run';">Run</a> + </th> + <th>Full</th> + <th> + <a href="" ng-click="reverse = predicate == 'Time' ? !reverse : false; predicate = 'Time';">Time</a> + </th> + <th> + Nursery: + <span class="text-danger" tooltip-placement="bottom" tooltip="Bytes retained in the nursery">Retained</span> / + <span class="text-warning" tooltip-placement="bottom" tooltip="Bytes promoted to gen2 and now available in nursery">Promoted</span> / + <span class="text-success" tooltip-placement="bottom" tooltip="Bytes released and now availabe in nursery">Freed</span> + </th> + </thead> + <tbody> + <tr ng-repeat="gc in GCs | orderBy:predicate:reverse"> + <td>{{gc.StartTime}}ms</td> + <td><strong>{{gc.Run}}</strong></td> + <td> + <span class="text-success" ng-show="gc.Full"> + <span class="glyphicon glyphicon-star"></span> + </span> + </td> + <td> + <div class="pull-left" style="width: 210px"> + <div class="progress" style="width: 200px"> + <div class="progress-bar" role="progressbar" style="width: {{gc.TimePercent}}%;"> + </div> + </div> + </div> + <div> + {{gc.Time}}ms + </div> + </td> + <td> + <div class="pull-left" style="width: 210px"> + <div class="progress" style="width: 200px"> + <div class="progress-bar progress-bar-danger" style="width: {{gc.RetainedPercent}}%"> + </div> + <div class="progress-bar progress-bar-warning" style="width: {{gc.PromotedPercent}}%"> + </div> + <div class="progress-bar progress-bar-success" style="width: {{gc.ClearedPercent}}%"> + </div> + </div> + </div> + <div> + {{gc.RetainedKilobytes}}KB / + {{gc.PromotedKilobytes}}KB / + {{gc.ClearedKilobytes}}KB ... + <small>{{gc.Gen2Roots}} gen2 roots</small> + </div> + </td> + </tr> + </tbody> + </table> + </div> + </div> + + <div class="container" ng-show="Tab == 'OSR/Deopt'"> + <div ng-controller="OSRDeoptController"> + <h3>OSR</h3> + <p>On Stack Replacement detects routines containing hot loops that are + being interpreted, and replaces them with specialized or JIT-compiled + code.</p> + <table class="table table-striped table-condensed table-bordered" ng-show="OSRs.length > 0"> + <thead> + <th> + Routine + </th> + <th>On Stack Replacements</th> + </thead> + <tbody> + <tr ng-repeat="osr in OSRs | orderBy:predicate:reverse"> + <td> + <strong>{{osr.Name}}</strong><br /> + <span class="text-muted">{{osr.File}}:{{osr.Line}}</span> + </td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar" role="progressbar" style="width: {{osr.Percent}}%;"> + </div> + </div> + </div> + <div> + {{osr.Count}} + </div> + </td> + </tr> + </tbody> + </table> + <p ng-show="OSRs.length == 0"> + <em>No OSR was performed during this profile.</em> + </p> + + <h3>Local Deoptimization</h3> + <p>Local deoptimization happens when a guard in specialized or JIT-compiled + code fails. Since the code was produced assuming the guard would hold, + the VM falls back to running the safe, but slower, interpreted code.</p> + <table class="table table-striped table-condensed table-bordered" ng-show="DeoptOnes.length > 0"> + <thead> + <th> + Routine + </th> + <th>Deoptimizations</th> + </thead> + <tbody> + <tr ng-repeat="deopt in DeoptOnes | orderBy:predicate:reverse"> + <td> + <strong>{{deopt.Name}}</strong><br /> + <span class="text-muted">{{deopt.File}}:{{deopt.Line}}</span> + </td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar" role="progressbar" style="width: {{deopt.Percent}}%;"> + </div> + </div> + </div> + <div> + {{deopt.Count}} + </div> + </td> + </tr> + </tbody> + </table> + <p ng-show="DeoptOnes.length == 0"> + <em>No local deoptimizations occurred during this profile.</em> + </p> + + <h3>Global Deoptimization</h3> + <p>Global deoptimization happens when an event occurs that renders + all currently type-specialized or JIT-compiled code on the call + stack potentially invalid. Mixins - changing the type of an object + in place - are a common reason.</p> + <table class="table table-striped table-condensed table-bordered" ng-show="DeoptAlls.length > 0"> + <thead> + <th> + Routine + </th> + <th>Deoptimizations</th> + </thead> + <tbody> + <tr ng-repeat="deopt in DeoptAlls | orderBy:predicate:reverse"> + <td> + <strong>{{deopt.Name}}</strong><br /> + <span class="text-muted">{{deopt.File}}:{{deopt.Line}}</span> + </td> + <td> + <div class="pull-left" style="width: 310px"> + <div class="progress" style="width: 300px"> + <div class="progress-bar" role="progressbar" style="width: {{deopt.Percent}}%;"> + </div> + </div> + </div> + <div> + {{deopt.Count}} + </div> + </td> + </tr> + </tbody> + </table> + <p ng-show="DeoptAlls.length == 0"> + <em>No global deoptimizations occurred during this profile.</em> + </p> + + </div> + </div> + + <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.2.0/ui-bootstrap-tpls.js"></script> + <script> + var rawData = JSON.parse('[{"99":{"name":"STORE_AT_KEY","line":49,"file":"SETTING::src/core/Hash.pm6"},"98":{"name":"STORE_AT_KEY","line":48,"file":"SETTING::src/core/Hash.pm6"},"97":{"name":"pull-one","line":2723,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"96":{"name":"SET-SELF","line":2711,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"95":"Rakudo::Iterator::ReifiedListIterator","94":{"name":"new","line":2721,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"93":{"name":"ReifiedList","line":2790,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"92":{"name":"STORE","line":76,"file":"SETTING::src/core/Hash.pm6"},"91":{"name":"day2-pt1","line":6,"file":"day2.p6"},"90":{"name":"done","line":628,"file":"SETTING::src/core/List.pm6"},"9":"BOOTHash","89":{"name":"fully-reified","line":172,"file":"SETTING::src/core/List.pm6"},"88":{"name":"assign-scalar-no-whence-no-typecheck","line":4151,"file":"gen/moar/BOOTSTRAP.nqp"},"87":{"name":"of","line":1147,"file":"gen/moar/BOOTSTRAP.nqp"},"86":{"name":"","line":4192,"file":"gen/moar/BOOTSTRAP.nqp"},"85":{"name":"push","line":31,"file":"SETTING::src/core/Array.pm6"},"84":{"name":"push","line":20,"file":"SETTING::src/core/IterationBuffer.pm6"},"83":{"name":"sink","line":728,"file":"SETTING::src/core/List.pm6"},"82":{"name":"is-empty","line":48,"file":"SETTING::src/core/Encoding/Decoder/Builtin.pm6"},"81":{"name":"last","line":76,"file":"SETTING::src/core/control.pm6"},"80":"Str","8":{"name":"lines","line":501,"file":"SETTING::src/core/IO/Handle.pm6"},"79":{"name":"add-bytes","line":18,"file":"SETTING::src/core/Encoding/Decoder/Builtin.pm6"},"78":{"name":"elems","line":117,"file":"SETTING::src/core/Buf.pm6"},"77":"Buf[uint8]","76":{"name":"new","line":37,"file":"SETTING::src/core/Buf.pm6"},"75":{"name":"new","line":112,"file":"SETTING::src/core/Mu.pm6"},"74":{"name":"","line":1828,"file":"gen/moar/Metamodel.nqp"},"73":"BOOTStr","72":{"name":"find_method","line":1817,"file":"gen/moar/Metamodel.nqp"},"71":{"name":"READ","line":251,"file":"SETTING::src/core/IO/Handle.pm6"},"70":{"name":"","line":263,"file":"SETTING::src/core/IO/Handle.pm6"},"7":{"name":"DYNAMIC","line":33,"file":"SETTING::src/core/stubs.pm6"},"69":{"name":"EOF","line":247,"file":"SETTING::src/core/IO/Handle.pm6"},"68":{"name":"get-line-slow-path","line":260,"file":"SETTING::src/core/IO/Handle.pm6"},"67":{"name":"defined","line":108,"file":"SETTING::src/core/Mu.pm6"},"66":{"name":"sink","line":13,"file":"SETTING::src/core/Mu.pm6"},"65":{"name":"get","line":255,"file":"SETTING::src/core/IO/Handle.pm6"},"64":{"name":"consume-line-chars","line":43,"file":"SETTING::src/core/Encoding/Decoder/Builtin.pm6"},"63":{"name":"push-all","line":432,"file":"SETTING::src/core/IO/Handle.pm6"},"62":{"name":"is-lazy","line":114,"file":"SETTING::src/core/Iterator.pm6"},"61":{"name":"push-until-lazy","line":69,"file":"SETTING::src/core/Iterator.pm6"},"60":{"name":"reify-until-lazy","line":99,"file":"SETTING::src/core/List.pm6"},"6":{"name":"parse-input","line":3,"file":"/home/matias/Workspace/deprecated/advent-of-code/2018/lib/Utils.pm6 (Utils)"},"59":{"name":"push-until-lazy","line":633,"file":"SETTING::src/core/List.pm6"},"58":"Array::ArrayReificationTarget","57":{"name":"new","line":22,"file":"SETTING::src/core/Array.pm6"},"56":{"name":"SET-SELF","line":593,"file":"SETTING::src/core/List.pm6"},"55":"List::Todo","54":{"name":"new","line":609,"file":"SETTING::src/core/List.pm6"},"53":{"name":"iterator","line":664,"file":"SETTING::src/core/List.pm6"},"52":{"name":"STORE","line":285,"file":"SETTING::src/core/Array.pm6"},"51":{"name":"STORE","line":284,"file":"SETTING::src/core/Array.pm6"},"50":{"name":"nominal","line":86,"file":"gen/moar/Metamodel.nqp"},"5":"Array","49":{"name":"definite","line":95,"file":"gen/moar/Metamodel.nqp"},"48":{"name":"coercive","line":94,"file":"gen/moar/Metamodel.nqp"},"47":{"name":"archetypes","line":3068,"file":"gen/moar/Metamodel.nqp"},"46":{"name":"","line":4068,"file":"gen/moar/BOOTSTRAP.nqp"},"45":"List::Reifier","44":"IterationBuffer","43":{"name":"from-iterator","line":187,"file":"SETTING::src/core/List.pm6"},"42":{"name":"type_check","line":2764,"file":"gen/moar/Metamodel.nqp"},"41":{"name":"iterator","line":18,"file":"SETTING::src/core/Seq.pm6"},"40":{"name":"List","line":42,"file":"SETTING::src/core/Sequence.pm6"},"4":{"name":"<unit>","line":1,"file":"day2.p6"},"39":{"name":"List","line":66,"file":"SETTING::src/core/Any.pm6"},"38":"Seq","37":{"name":"new","line":10,"file":"SETTING::src/core/Seq.pm6"},"36":{"name":"identity","line":3898,"file":"gen/moar/BOOTSTRAP.nqp"},"35":{"name":"decontrv_plugin","line":3930,"file":"gen/moar/BOOTSTRAP.nqp"},"34":"IO::Handle::GetLineFast","33":{"name":"new","line":405,"file":"SETTING::src/core/IO/Handle.pm6"},"32":{"name":"LINES-ITERATOR","line":493,"file":"SETTING::src/core/IO/Handle.pm6"},"31":{"name":"lines","line":510,"file":"SETTING::src/core/IO/Handle.pm6"},"30":{"name":"add_to_cache","line":2879,"file":"gen/moar/BOOTSTRAP.nqp"},"3":"BOOTArray","29":{"name":"handle_optional","line":627,"file":"gen/moar/BOOTSTRAP.nqp"},"28":{"name":"","line":339,"file":"gen/moar/BOOTSTRAP.nqp"},"27":"Scalar","26":{"name":"bind_one_param","line":201,"file":"gen/moar/BOOTSTRAP.nqp"},"25":"Hash","249":{"name":"","line":1838,"file":"gen/moar/stage2/NQPHLL.nqp"},"248":{"name":"","line":-1,"file":"/home/matias/.rakudobrew/moar-master/install/share/nqp/lib/NQPHLL.moarvm"},"247":"BOOTException","246":{"name":"throw","line":53,"file":"SETTING::src/core/Exception.pm6"},"245":{"name":"archetypes","line":3678,"file":"gen/moar/Metamodel.nqp"},"244":{"name":"BUILDALL","line":2256,"file":"SETTING::src/core/Exception.pm6"},"243":"X::TypeCheck::Binding::Parameter","242":{"name":"","line":2726,"file":"SETTING::src/core/Exception.pm6"},"241":{"name":"","line":326,"file":"gen/moar/BOOTSTRAP.nqp"},"240":{"name":"","line":319,"file":"gen/moar/BOOTSTRAP.nqp"},"24":"BOOTContext","239":{"name":"","line":314,"file":"gen/moar/BOOTSTRAP.nqp"},"238":{"name":"bind","line":919,"file":"gen/moar/BOOTSTRAP.nqp"},"237":{"name":"","line":3654,"file":"gen/moar/BOOTSTRAP.nqp"},"236":{"name":"wolo","line":16,"file":"day2.p6"},"235":{"name":"item","line":570,"file":"SETTING::src/core/Mu.pm6"},"234":{"name":"","line":1610,"file":"gen/moar/BOOTSTRAP.nqp"},"233":{"name":"BUILD","line":10,"file":"SETTING::src/core/RaceSeq.pm6"},"232":{"name":"BUILDALL","line":-1,"file":"/home/matias/.rakudobrew/moar-master/install/share/perl6/runtime/CORE.setting.moarvm"},"231":{"name":"BUILD","line":8,"file":"SETTING::src/core/Rakudo/Internals/HyperIteratorBatcher.pm6"},"230":{"name":"BUILDALL","line":-1,"file":"/home/matias/.rakudobrew/moar-master/install/share/perl6/runtime/CORE.setting.moarvm"},"23":{"name":"bind","line":660,"file":"gen/moar/BOOTSTRAP.nqp"},"229":{"name":"infix:«<=»","line":401,"file":"SETTING::src/core/Int.pm6"},"228":{"name":"infix:«<=»","line":316,"file":"SETTING::src/core/Numeric.pm6"},"227":{"name":"TWEAK","line":9,"file":"SETTING::src/core/HyperConfiguration.pm6"},"226":{"name":"BUILDALL","line":-1,"file":"/home/matias/.rakudobrew/moar-master/install/share/perl6/runtime/CORE.setting.moarvm"},"225":"RaceSeq","224":"Rakudo::Internals::HyperIteratorBatcher","223":"HyperConfiguration","222":{"name":"new","line":113,"file":"SETTING::src/core/Mu.pm6"},"221":{"name":"race","line":125,"file":"SETTING::src/core/Iterable.pm6"},"220":{"name":"SET-SELF","line":2162,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"22":{"name":"","line":981,"file":"gen/moar/BOOTSTRAP.nqp"},"219":"Rakudo::Iterator::ListIndexes","218":{"name":"new","line":2169,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"217":{"name":"ListIndexes","line":2192,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"216":{"name":"SET-SELF","line":761,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"215":"Rakudo::Iterator::Combinations","214":{"name":"new","line":771,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"213":{"name":"infix:«<»","line":394,"file":"SETTING::src/core/Int.pm6"},"212":{"name":"infix:«<»","line":312,"file":"SETTING::src/core/Numeric.pm6"},"211":{"name":"infix:«>»","line":408,"file":"SETTING::src/core/Int.pm6"},"210":{"name":"infix:«>»","line":322,"file":"SETTING::src/core/Numeric.pm6"},"21":{"name":"is_bindable","line":975,"file":"gen/moar/BOOTSTRAP.nqp"},"209":{"name":"Combinations","line":817,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"208":{"name":"elems","line":470,"file":"SETTING::src/core/List.pm6"},"207":{"name":"elems","line":86,"file":"SETTING::src/core/Any.pm6"},"206":{"name":"combinations","line":1175,"file":"SETTING::src/core/List.pm6"},"205":{"name":"combinations","line":1142,"file":"SETTING::src/core/List.pm6"},"204":{"name":"day2-pt2","line":23,"file":"day2.p6"},"203":{"name":"WRITE","line":612,"file":"SETTING::src/core/IO/Handle.pm6"},"202":"utf8","201":{"name":"encode-chars","line":22,"file":"SETTING::src/core/Encoding/Encoder/Builtin.pm6"},"200":{"name":"print","line":653,"file":"SETTING::src/core/IO/Handle.pm6"},"20":{"name":"is_narrower","line":2281,"file":"gen/moar/BOOTSTRAP.nqp"},"2":"BOOTCode","199":{"name":"print","line":652,"file":"SETTING::src/core/IO/Handle.pm6"},"198":{"name":"nl-out","line":4,"file":"SETTING::src/core/IO/Handle.pm6"},"197":{"name":"Str","line":49,"file":"SETTING::src/core/Int.pm6"},"196":{"name":"Str","line":546,"file":"SETTING::src/core/Mu.pm6"},"195":{"name":"gist","line":32,"file":"SETTING::src/core/Numeric.pm6"},"194":{"name":"gist","line":602,"file":"SETTING::src/core/Mu.pm6"},"193":{"name":"say","line":12,"file":"SETTING::src/core/io_operators.pm6"},"192":{"name":"say","line":10,"file":"SETTING::src/core/io_operators.pm6"},"191":{"name":"infix:<*>","line":290,"file":"SETTING::src/core/Int.pm6"},"190":{"name":"infix:<*>","line":213,"file":"SETTING::src/core/Numeric.pm6"},"19":"BOOTInt","189":"IntAttrRef","188":{"name":"DESTROY","line":34,"file":"SETTING::src/core/Failure.pm6"},"187":{"name":"DESTROY","line":828,"file":"SETTING::src/core/IO/Handle.pm6"},"186":{"name":"destroyers","line":475,"file":"gen/moar/Metamodel.nqp"},"185":{"name":"","line":3726,"file":"gen/moar/BOOTSTRAP.nqp"},"184":{"name":"","line":11,"file":"day2.p6"},"183":{"name":"postfix:<++>","line":241,"file":"SETTING::src/core/Int.pm6"},"182":{"name":"postfix:<++>","line":479,"file":"SETTING::src/core/Any.pm6"},"181":{"name":"AT-KEY","line":35,"file":"SETTING::src/core/Hash.pm6"},"180":{"name":"AT-KEY","line":380,"file":"SETTING::src/core/Any.pm6"},"18":"BOOTIntArray","179":{"name":"postcircumfix:<{ }>","line":6,"file":"SETTING::src/core/hash_slice.pm6"},"178":{"name":"postcircumfix:<{ }>","line":3,"file":"SETTING::src/core/hash_slice.pm6"},"177":{"name":"first-result","line":990,"file":"SETTING::src/core/Any-iterable-methods.pm6"},"176":{"name":"infix:<==>","line":384,"file":"SETTING::src/core/Int.pm6"},"175":{"name":"infix:<==>","line":287,"file":"SETTING::src/core/Numeric.pm6"},"174":{"name":"value","line":1,"file":"SETTING::src/core/Pair.pm6"},"173":{"name":"","line":10,"file":"day2.p6"},"172":{"name":"pull-one","line":2276,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"171":"BOOTIter","170":"Rakudo::Iterator::Mappy-values","17":"NQPArrayIter","169":{"name":"Mappy-values","line":2290,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"168":{"name":"iterator","line":141,"file":"SETTING::src/core/Baggy.pm6"},"167":{"name":"iterator","line":47,"file":"SETTING::src/core/Mu.pm6"},"166":"IntLexRef","165":{"name":"","line":1147,"file":"SETTING::src/core/Any-iterable-methods.pm6"},"164":{"name":"first","line":1125,"file":"SETTING::src/core/Any-iterable-methods.pm6"},"163":{"name":"pull-one","line":1555,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"162":{"name":"Empty","line":1563,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"161":{"name":"SET-SELF","line":72,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"160":{"name":"find_private_method","line":621,"file":"gen/moar/Metamodel.nqp"},"16":{"name":"","line":2251,"file":"gen/moar/BOOTSTRAP.nqp"},"159":{"name":"","line":3853,"file":"gen/moar/BOOTSTRAP.nqp"},"158":"Map::Iterate","157":{"name":"new","line":83,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"156":{"name":"iterator","line":199,"file":"SETTING::src/core/Map.pm6"},"155":{"name":"STORE","line":75,"file":"SETTING::src/core/Hash.pm6"},"154":{"name":"first","line":1115,"file":"SETTING::src/core/Any-iterable-methods.pm6"},"153":"WhateverCode","152":{"name":"","line":1997,"file":"gen/moar/BOOTSTRAP.nqp"},"151":{"name":"archetypes","line":2645,"file":"gen/moar/Metamodel.nqp"},"150":{"name":"base_type","line":3944,"file":"gen/moar/Metamodel.nqp"},"15":"Int","149":{"name":"check_instantiated","line":3939,"file":"gen/moar/Metamodel.nqp"},"148":{"name":"definite","line":3949,"file":"gen/moar/Metamodel.nqp"},"147":{"name":"archetypes","line":3902,"file":"gen/moar/Metamodel.nqp"},"146":{"name":"SET-SELF","line":5,"file":"SETTING::src/core/QuantHash.pm6"},"145":"Pair","144":{"name":"new","line":8,"file":"SETTING::src/core/Pair.pm6"},"143":"ValueObjAt","142":{"name":"WHICH","line":23,"file":"SETTING::src/core/Str.pm6"},"141":{"name":"WHICH","line":27,"file":"SETTING::src/core/Mu.pm6"},"140":{"name":"ADD-ITERATOR-TO-BAG","line":592,"file":"SETTING::src/core/Rakudo/QuantHash.pm6"},"14":"NQPArray","139":"Rakudo::Internals::IterationSet","138":"Bag","137":{"name":"create-from-iterator","line":97,"file":"SETTING::src/core/Baggy.pm6"},"136":{"name":"new","line":110,"file":"SETTING::src/core/Baggy.pm6"},"135":{"name":"pretending_to_be","line":186,"file":"gen/moar/Metamodel.nqp"},"134":{"name":"pull-one","line":355,"file":"SETTING::src/core/Str.pm6"},"133":{"name":"push-exactly","line":28,"file":"SETTING::src/core/Iterator.pm6"},"132":{"name":"push-at-least","line":49,"file":"SETTING::src/core/Iterator.pm6"},"131":{"name":"reify-at-least","line":40,"file":"SETTING::src/core/List.pm6"},"130":{"name":"pull-one","line":611,"file":"SETTING::src/core/List.pm6"},"13":{"name":"","line":2595,"file":"gen/moar/BOOTSTRAP.nqp"},"129":{"name":"push-all","line":54,"file":"SETTING::src/core/Iterable.pm6"},"128":{"name":"is-lazy","line":178,"file":"SETTING::src/core/List.pm6"},"127":{"name":"is-lazy","line":662,"file":"SETTING::src/core/List.pm6"},"126":{"name":"is-lazy","line":77,"file":"SETTING::src/core/Iterable.pm6"},"125":"ContainerDescriptor","124":{"name":"reification-target","line":330,"file":"SETTING::src/core/Array.pm6"},"123":"Slip","122":{"name":"Slip","line":43,"file":"SETTING::src/core/Sequence.pm6"},"121":{"name":"Slip","line":68,"file":"SETTING::src/core/Any.pm6"},"120":"Iterable::Flat","12":"List","119":{"name":"new","line":24,"file":"SETTING::src/core/Iterable.pm6"},"118":{"name":"flat","line":79,"file":"SETTING::src/core/Iterable.pm6"},"117":{"name":"cache","line":24,"file":"SETTING::src/core/Sequence.pm6"},"116":{"name":"from-slurpy-flat","line":280,"file":"SETTING::src/core/List.pm6"},"115":{"name":"bag","line":7,"file":"SETTING::src/core/set_operators.pm6"},"114":{"name":"bag","line":5,"file":"SETTING::src/core/set_operators.pm6"},"113":{"name":"SET-SELF","line":346,"file":"SETTING::src/core/Str.pm6"},"112":"Str::CombAll","111":{"name":"new","line":354,"file":"SETTING::src/core/Str.pm6"},"110":{"name":"comb","line":381,"file":"SETTING::src/core/Str.pm6"},"11":{"name":"","line":3547,"file":"gen/moar/BOOTSTRAP.nqp"},"109":{"name":"comb","line":340,"file":"SETTING::src/core/Str.pm6"},"108":{"name":"","line":8,"file":"day2.p6"},"107":{"name":"pull-one","line":2628,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"106":"Block","105":{"name":"","line":2057,"file":"gen/moar/BOOTSTRAP.nqp"},"104":{"name":"SET-SELF","line":2614,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"103":"Rakudo::Iterator::ReifiedArrayIterator","102":{"name":"new","line":2622,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"101":{"name":"ReifiedArray","line":2700,"file":"SETTING::src/core/Rakudo/Iterator.pm6"},"100":{"name":"iterator","line":183,"file":"SETTING::src/core/Array.pm6"},"10":"CallCapture","1":{"name":"<unit-outer>","line":1,"file":"day2.p6"},"0":{"name":"","line":1678,"file":"gen/moar/stage2/NQPHLL.nqp"}},{"total_time":174177,"thread":1,"start_time":0,"spesh_time":103474,"parent":0,"gcs":[{"time":8949,"start_time":48631,"sequence":1,"retained_bytes":67760,"responsible":1,"promoted_bytes_unmanaged":1321894,"promoted_bytes":1020952,"gen2_roots":8422,"full":0,"cleared_bytes":3105584},{"time":5173,"start_time":121747,"sequence":2,"retained_bytes":9744,"responsible":1,"promoted_bytes_unmanaged":57108,"promoted_bytes":61248,"gen2_roots":798,"full":0,"cleared_bytes":4123296}],"call_graph":{"inclusive_time":121826,"id":"0","highest_child_id":819,"first_entry_time":0,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":121813,"id":"1","highest_child_id":819,"first_entry_time":12,"exclusive_time":36,"entries":1,"callees":[{"inclusive_time":121776,"id":"4","highest_child_id":819,"first_entry_time":48,"exclusive_time":122,"entries":1,"callees":[{"inclusive_time":1198,"id":"6","highest_child_id":51,"first_entry_time":79,"exclusive_time":111,"entries":1,"callees":[{"inclusive_time":15,"id":"7","highest_child_id":4,"first_entry_time":114,"exclusive_time":15,"entries":1},{"inclusive_time":921,"id":"8","highest_child_id":28,"first_entry_time":151,"exclusive_time":145,"entries":1,"callees":[{"inclusive_time":1,"id":"11","highest_child_id":6,"first_entry_time":158,"exclusive_time":1,"entries":1,"allocations":[{"id":"12","count":1}]},{"inclusive_time":559,"id":"13","highest_child_id":16,"first_entry_time":296,"exclusive_time":137,"entries":1,"callees":[{"inclusive_time":99,"id":"16","highest_child_id":9,"first_entry_time":404,"exclusive_time":95,"entries":1,"callees":[{"inclusive_time":4,"id":"20","highest_child_id":9,"first_entry_time":494,"exclusive_time":4,"entries":2}],"allocations":[{"id":"14","count":12},{"id":"17","count":3},{"id":"9","count":4},{"id":"18","count":4},{"id":"19","count":2}]},{"inclusive_time":320,"id":"21","highest_child_id":15,"first_entry_time":525,"exclusive_time":31,"entries":1,"callees":[{"inclusive_time":288,"id":"22","highest_child_id":15,"first_entry_time":555,"exclusive_time":101,"entries":1,"callees":[{"inclusive_time":186,"id":"23","highest_child_id":15,"first_entry_time":656,"exclusive_time":153,"entries":1,"callees":[{"inclusive_time":32,"id":"26","highest_child_id":14,"first_entry_time":792,"exclusive_time":30,"entries":3,"callees":[{"inclusive_time":1,"id":"28","highest_child_id":14,"first_entry_time":811,"exclusive_time":1,"entries":1}],"allocations":[{"id":"2","count":12},{"id":"27","count":1}]},{"inclusive_time":1,"id":"29","highest_child_id":15,"first_entry_time":830,"exclusive_time":1,"entries":1}],"allocations":[{"id":"24","count":1},{"id":"25","count":1}]}]}]},{"inclusive_time":2,"id":"30","highest_child_id":16,"first_entry_time":853,"exclusive_time":2,"entries":1}],"allocations":[{"id":"2","count":1},{"id":"14","count":2},{"id":"9","count":1},{"id":"10","count":1},{"id":"15","count":1}]},{"inclusive_time":214,"id":"31","highest_child_id":28,"first_entry_time":857,"exclusive_time":45,"entries":1,"callees":[{"inclusive_time":163,"id":"32","highest_child_id":23,"first_entry_time":885,"exclusive_time":131,"entries":1,"callees":[{"inclusive_time":30,"id":"33","highest_child_id":21,"first_entry_time":1015,"exclusive_time":27,"entries":1,"callees":[{"inclusive_time":2,"id":"35","highest_child_id":20,"first_entry_time":1036,"exclusive_time":2,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":21,"first_entry_time":1045,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"34","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":22,"first_entry_time":1046,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":23,"first_entry_time":1048,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]},{"inclusive_time":4,"id":"37","highest_child_id":26,"first_entry_time":1065,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":25,"first_entry_time":1067,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":26,"first_entry_time":1069,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"38","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":27,"first_entry_time":1070,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":28,"first_entry_time":1072,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":117,"id":"39","highest_child_id":44,"first_entry_time":1083,"exclusive_time":20,"entries":1,"callees":[{"inclusive_time":0,"id":"11","highest_child_id":30,"first_entry_time":1084,"exclusive_time":0,"entries":1,"allocations":[{"id":"12","count":1}]},{"inclusive_time":36,"id":"13","highest_child_id":34,"first_entry_time":1088,"exclusive_time":9,"entries":1,"callees":[{"inclusive_time":25,"id":"16","highest_child_id":33,"first_entry_time":1091,"exclusive_time":21,"entries":1,"callees":[{"inclusive_time":3,"id":"20","highest_child_id":33,"first_entry_time":1106,"exclusive_time":3,"entries":2}],"allocations":[{"id":"14","count":12},{"id":"17","count":3},{"id":"9","count":4},{"id":"18","count":4},{"id":"19","count":2}]},{"inclusive_time":1,"id":"30","highest_child_id":34,"first_entry_time":1123,"exclusive_time":1,"entries":1}],"allocations":[{"id":"2","count":1},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":60,"id":"40","highest_child_id":44,"first_entry_time":1140,"exclusive_time":31,"entries":1,"callees":[{"inclusive_time":22,"id":"41","highest_child_id":39,"first_entry_time":1158,"exclusive_time":20,"entries":1,"callees":[{"inclusive_time":1,"id":"42","highest_child_id":37,"first_entry_time":1176,"exclusive_time":1,"entries":1},{"inclusive_time":1,"id":"35","highest_child_id":38,"first_entry_time":1178,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":39,"first_entry_time":1180,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":5,"id":"43","highest_child_id":42,"first_entry_time":1193,"exclusive_time":4,"entries":1,"callees":[{"inclusive_time":0,"id":"35","highest_child_id":41,"first_entry_time":1197,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":42,"first_entry_time":1198,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"44","count":1},{"id":"12","count":1},{"id":"45","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":43,"first_entry_time":1199,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":44,"first_entry_time":1201,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":0,"id":"35","highest_child_id":45,"first_entry_time":1203,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":46,"first_entry_time":1204,"exclusive_time":0,"entries":2},{"inclusive_time":31,"id":"46","highest_child_id":51,"first_entry_time":1246,"exclusive_time":28,"entries":1,"callees":[{"inclusive_time":1,"id":"47","highest_child_id":48,"first_entry_time":1253,"exclusive_time":1,"entries":3},{"inclusive_time":1,"id":"48","highest_child_id":49,"first_entry_time":1260,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"49","highest_child_id":50,"first_entry_time":1268,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":51,"first_entry_time":1275,"exclusive_time":0,"entries":1}]}]},{"inclusive_time":16767,"id":"51","highest_child_id":140,"first_entry_time":1291,"exclusive_time":25,"entries":1,"callees":[{"inclusive_time":0,"id":"11","highest_child_id":53,"first_entry_time":1293,"exclusive_time":0,"entries":1,"allocations":[{"id":"12","count":1}]},{"inclusive_time":12,"id":"13","highest_child_id":55,"first_entry_time":1297,"exclusive_time":11,"entries":1,"callees":[{"inclusive_time":1,"id":"30","highest_child_id":55,"first_entry_time":1307,"exclusive_time":1,"entries":1}],"allocations":[{"id":"2","count":1},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":16728,"id":"52","highest_child_id":140,"first_entry_time":1330,"exclusive_time":64,"entries":1,"callees":[{"inclusive_time":34,"id":"53","highest_child_id":65,"first_entry_time":1345,"exclusive_time":13,"entries":1,"callees":[{"inclusive_time":21,"id":"54","highest_child_id":63,"first_entry_time":1356,"exclusive_time":14,"entries":1,"callees":[{"inclusive_time":5,"id":"56","highest_child_id":61,"first_entry_time":1370,"exclusive_time":4,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":60,"first_entry_time":1372,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":61,"first_entry_time":1375,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":62,"first_entry_time":1376,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":63,"first_entry_time":1377,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"55","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":64,"first_entry_time":1378,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":65,"first_entry_time":1379,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":4,"id":"57","highest_child_id":68,"first_entry_time":1391,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":0,"id":"35","highest_child_id":67,"first_entry_time":1393,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":68,"first_entry_time":1395,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"58","count":1}]},{"inclusive_time":16622,"id":"59","highest_child_id":138,"first_entry_time":1431,"exclusive_time":217,"entries":1,"callees":[{"inclusive_time":15993,"id":"60","highest_child_id":128,"first_entry_time":1461,"exclusive_time":18,"entries":1,"callees":[{"inclusive_time":15973,"id":"61","highest_child_id":125,"first_entry_time":1473,"exclusive_time":39,"entries":1,"callees":[{"inclusive_time":0,"id":"62","highest_child_id":72,"first_entry_time":1479,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":15931,"id":"63","highest_child_id":123,"first_entry_time":1510,"exclusive_time":812,"entries":1,"callees":[{"inclusive_time":556,"id":"64","highest_child_id":81,"first_entry_time":1532,"exclusive_time":481,"entries":251,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":75,"first_entry_time":1538,"exclusive_time":1,"entries":1},{"inclusive_time":65,"id":"36","highest_child_id":76,"first_entry_time":1540,"exclusive_time":65,"entries":502},{"inclusive_time":7,"id":"46","highest_child_id":81,"first_entry_time":1542,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":0,"id":"47","highest_child_id":78,"first_entry_time":1543,"exclusive_time":0,"entries":3},{"inclusive_time":0,"id":"48","highest_child_id":79,"first_entry_time":1544,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"49","highest_child_id":80,"first_entry_time":1546,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":81,"first_entry_time":1547,"exclusive_time":0,"entries":1}]}],"allocations":[{"id":"9","count":251}]},{"inclusive_time":14225,"id":"65","highest_child_id":119,"first_entry_time":1594,"exclusive_time":911,"entries":251,"callees":[{"inclusive_time":73,"id":"66","highest_child_id":83,"first_entry_time":1607,"exclusive_time":73,"entries":251,"allocations":[{"id":"9","count":251}]},{"inclusive_time":498,"id":"64","highest_child_id":85,"first_entry_time":1610,"exclusive_time":442,"entries":251,"callees":[{"inclusive_time":55,"id":"36","highest_child_id":85,"first_entry_time":1615,"exclusive_time":55,"entries":502}],"allocations":[{"id":"9","count":251}]},{"inclusive_time":88,"id":"67","highest_child_id":86,"first_entry_time":1627,"exclusive_time":88,"entries":251,"allocations":[{"id":"9","count":251}]},{"inclusive_time":12612,"id":"68","highest_child_id":117,"first_entry_time":1655,"exclusive_time":741,"entries":251,"callees":[{"inclusive_time":374,"id":"69","highest_child_id":90,"first_entry_time":1671,"exclusive_time":337,"entries":251,"callees":[{"inclusive_time":2,"id":"35","highest_child_id":89,"first_entry_time":1677,"exclusive_time":2,"entries":1},{"inclusive_time":34,"id":"36","highest_child_id":90,"first_entry_time":1681,"exclusive_time":34,"entries":251}],"allocations":[{"id":"9","count":251}]},{"inclusive_time":11460,"id":"70","highest_child_id":115,"first_entry_time":1727,"exclusive_time":1356,"entries":251,"callees":[{"inclusive_time":8403,"id":"71","highest_child_id":103,"first_entry_time":1746,"exclusive_time":3325,"entries":251,"callees":[{"inclusive_time":546,"id":"72","highest_child_id":93,"first_entry_time":1779,"exclusive_time":546,"entries":251,"allocations":[{"id":"73","count":251},{"id":"2","count":217}]},{"inclusive_time":4472,"id":"74","highest_child_id":101,"first_entry_time":1800,"exclusive_time":364,"entries":251,"callees":[{"inclusive_time":4108,"id":"75","highest_child_id":101,"first_entry_time":1818,"exclusive_time":1291,"entries":251,"callees":[{"inclusive_time":125,"id":"11","highest_child_id":96,"first_entry_time":1820,"exclusive_time":125,"entries":251,"allocations":[{"id":"12","count":251}]},{"inclusive_time":2367,"id":"13","highest_child_id":98,"first_entry_time":1826,"exclusive_time":2198,"entries":251,"callees":[{"inclusive_time":168,"id":"30","highest_child_id":98,"first_entry_time":1843,"exclusive_time":168,"entries":251}],"allocations":[{"id":"2","count":501},{"id":"14","count":502},{"id":"9","count":251}]},{"inclusive_time":324,"id":"76","highest_child_id":101,"first_entry_time":1857,"exclusive_time":286,"entries":251,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":100,"first_entry_time":1861,"exclusive_time":1,"entries":1},{"inclusive_time":36,"id":"36","highest_child_id":101,"first_entry_time":1864,"exclusive_time":36,"entries":251}],"allocations":[{"id":"9","count":251},{"id":"77","count":251}]}],"allocations":[{"id":"9","count":251},{"id":"3","count":251},{"id":"10","count":753}]}],"allocations":[{"id":"14","count":251},{"id":"9","count":251}]},{"inclusive_time":2,"id":"35","highest_child_id":102,"first_entry_time":1904,"exclusive_time":2,"entries":1},{"inclusive_time":55,"id":"36","highest_child_id":103,"first_entry_time":1907,"exclusive_time":55,"entries":251}],"allocations":[{"id":"9","count":251}]},{"inclusive_time":249,"id":"78","highest_child_id":104,"first_entry_time":1921,"exclusive_time":249,"entries":251,"allocations":[{"id":"9","count":251},{"id":"15","count":250}]},{"inclusive_time":269,"id":"79","highest_child_id":105,"first_entry_time":1936,"exclusive_time":269,"entries":250,"allocations":[{"id":"9","count":250}]},{"inclusive_time":1044,"id":"64","highest_child_id":108,"first_entry_time":1941,"exclusive_time":975,"entries":250,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":107,"first_entry_time":1951,"exclusive_time":1,"entries":1},{"inclusive_time":66,"id":"36","highest_child_id":108,"first_entry_time":1954,"exclusive_time":66,"entries":500}],"allocations":[{"id":"9","count":250},{"id":"80","count":250}]},{"inclusive_time":121,"id":"81","highest_child_id":109,"first_entry_time":1967,"exclusive_time":121,"entries":251},{"inclusive_time":2,"id":"69","highest_child_id":111,"first_entry_time":17382,"exclusive_time":1,"entries":1,"callees":[{"inclusive_time":0,"id":"36","highest_child_id":111,"first_entry_time":17384,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":12,"id":"82","highest_child_id":114,"first_entry_time":17407,"exclusive_time":8,"entries":1,"callees":[{"inclusive_time":3,"id":"35","highest_child_id":113,"first_entry_time":17415,"exclusive_time":3,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":114,"first_entry_time":17419,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"83","highest_child_id":115,"first_entry_time":17429,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]}]},{"inclusive_time":2,"id":"35","highest_child_id":116,"first_entry_time":1973,"exclusive_time":2,"entries":2},{"inclusive_time":33,"id":"36","highest_child_id":117,"first_entry_time":1976,"exclusive_time":33,"entries":251}],"allocations":[{"id":"9","count":251},{"id":"27","count":251},{"id":"2","count":201}]},{"inclusive_time":1,"id":"35","highest_child_id":118,"first_entry_time":1977,"exclusive_time":1,"entries":2},{"inclusive_time":39,"id":"36","highest_child_id":119,"first_entry_time":1979,"exclusive_time":39,"entries":251}],"allocations":[{"id":"9","count":251}]},{"inclusive_time":336,"id":"84","highest_child_id":122,"first_entry_time":1993,"exclusive_time":292,"entries":250,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":121,"first_entry_time":1996,"exclusive_time":1,"entries":1},{"inclusive_time":41,"id":"36","highest_child_id":122,"first_entry_time":1999,"exclusive_time":41,"entries":250}],"allocations":[{"id":"9","count":250}]},{"inclusive_time":0,"id":"83","highest_child_id":123,"first_entry_time":17441,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":124,"first_entry_time":17443,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":125,"first_entry_time":17445,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]},{"inclusive_time":1,"id":"42","highest_child_id":126,"first_entry_time":17449,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"35","highest_child_id":127,"first_entry_time":17453,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":128,"first_entry_time":17454,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1},{"id":"15","count":1}]},{"inclusive_time":406,"id":"85","highest_child_id":134,"first_entry_time":17470,"exclusive_time":343,"entries":250,"callees":[{"inclusive_time":17,"id":"86","highest_child_id":133,"first_entry_time":17508,"exclusive_time":14,"entries":1,"callees":[{"inclusive_time":0,"id":"87","highest_child_id":131,"first_entry_time":17517,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"47","highest_child_id":132,"first_entry_time":17519,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":133,"first_entry_time":17522,"exclusive_time":0,"entries":1}]},{"inclusive_time":45,"id":"88","highest_child_id":134,"first_entry_time":17531,"exclusive_time":45,"entries":250}],"allocations":[{"id":"9","count":250},{"id":"27","count":250}]},{"inclusive_time":1,"id":"89","highest_child_id":135,"first_entry_time":18027,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"90","highest_child_id":136,"first_entry_time":18048,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":137,"first_entry_time":18051,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":138,"first_entry_time":18054,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":139,"first_entry_time":18056,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":140,"first_entry_time":18058,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"44","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":100446,"id":"91","highest_child_id":700,"first_entry_time":18104,"exclusive_time":570,"entries":1,"callees":[{"inclusive_time":147,"id":"92","highest_child_id":169,"first_entry_time":18142,"exclusive_time":32,"entries":1,"callees":[{"inclusive_time":48,"id":"53","highest_child_id":154,"first_entry_time":18146,"exclusive_time":15,"entries":1,"callees":[{"inclusive_time":32,"id":"93","highest_child_id":152,"first_entry_time":18159,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":19,"id":"94","highest_child_id":150,"first_entry_time":18171,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":5,"id":"96","highest_child_id":148,"first_entry_time":18182,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":147,"first_entry_time":18184,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":148,"first_entry_time":18187,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":149,"first_entry_time":18188,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":150,"first_entry_time":18190,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"95","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":151,"first_entry_time":18191,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":152,"first_entry_time":18192,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":153,"first_entry_time":18193,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":154,"first_entry_time":18195,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1}]},{"inclusive_time":2,"id":"97","highest_child_id":155,"first_entry_time":18206,"exclusive_time":2,"entries":3,"allocations":[{"id":"9","count":3}]},{"inclusive_time":58,"id":"98","highest_child_id":165,"first_entry_time":18219,"exclusive_time":17,"entries":1,"callees":[{"inclusive_time":0,"id":"11","highest_child_id":157,"first_entry_time":18221,"exclusive_time":0,"entries":1,"allocations":[{"id":"12","count":1}]},{"inclusive_time":27,"id":"13","highest_child_id":159,"first_entry_time":18225,"exclusive_time":25,"entries":1,"callees":[{"inclusive_time":2,"id":"30","highest_child_id":159,"first_entry_time":18250,"exclusive_time":2,"entries":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":12,"id":"99","highest_child_id":165,"first_entry_time":18265,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":6,"id":"86","highest_child_id":164,"first_entry_time":18268,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":0,"id":"87","highest_child_id":162,"first_entry_time":18271,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"47","highest_child_id":163,"first_entry_time":18272,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":164,"first_entry_time":18273,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"88","highest_child_id":165,"first_entry_time":18276,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":3,"id":"99","highest_child_id":167,"first_entry_time":18282,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":0,"id":"88","highest_child_id":167,"first_entry_time":18284,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":168,"first_entry_time":18287,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":169,"first_entry_time":18289,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":2},{"id":"25","count":1}]},{"inclusive_time":45,"id":"100","highest_child_id":181,"first_entry_time":18307,"exclusive_time":13,"entries":1,"callees":[{"inclusive_time":31,"id":"101","highest_child_id":179,"first_entry_time":18319,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":17,"id":"102","highest_child_id":177,"first_entry_time":18330,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":4,"id":"104","highest_child_id":175,"first_entry_time":18341,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":174,"first_entry_time":18343,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":175,"first_entry_time":18345,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":176,"first_entry_time":18346,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":177,"first_entry_time":18347,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"103","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":178,"first_entry_time":18348,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":179,"first_entry_time":18350,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":180,"first_entry_time":18351,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":181,"first_entry_time":18352,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"105","highest_child_id":182,"first_entry_time":18368,"exclusive_time":1,"entries":1,"allocations":[{"id":"106","count":1},{"id":"2","count":1}]},{"jit_entries":208,"inclusive_time":77,"id":"107","highest_child_id":183,"first_entry_time":18384,"exclusive_time":77,"entries":251,"allocations":[{"id":"9","count":43}]},{"inclusive_time":99072,"id":"108","highest_child_id":635,"first_entry_time":18418,"exclusive_time":3294,"entries":250,"callees":[{"inclusive_time":367,"id":"109","highest_child_id":201,"first_entry_time":18441,"exclusive_time":21,"entries":1,"callees":[{"inclusive_time":0,"id":"11","highest_child_id":186,"first_entry_time":18442,"exclusive_time":0,"entries":1,"allocations":[{"id":"12","count":1}]},{"inclusive_time":172,"id":"13","highest_child_id":190,"first_entry_time":18445,"exclusive_time":35,"entries":1,"callees":[{"inclusive_time":134,"id":"16","highest_child_id":189,"first_entry_time":18449,"exclusive_time":74,"entries":1,"callees":[{"inclusive_time":59,"id":"20","highest_child_id":189,"first_entry_time":18494,"exclusive_time":59,"entries":30}],"allocations":[{"id":"14","count":32},{"id":"17","count":7},{"id":"9","count":12},{"id":"18","count":12},{"id":"19","count":6}]},{"inclusive_time":2,"id":"30","highest_child_id":190,"first_entry_time":18615,"exclusive_time":2,"entries":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":172,"id":"110","highest_child_id":201,"first_entry_time":18635,"exclusive_time":139,"entries":1,"callees":[{"inclusive_time":29,"id":"111","highest_child_id":197,"first_entry_time":18771,"exclusive_time":21,"entries":1,"callees":[{"inclusive_time":7,"id":"113","highest_child_id":195,"first_entry_time":18791,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":194,"first_entry_time":18795,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":195,"first_entry_time":18798,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":196,"first_entry_time":18799,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":197,"first_entry_time":18800,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"112","count":1}]},{"inclusive_time":2,"id":"37","highest_child_id":199,"first_entry_time":18803,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":0,"id":"36","highest_child_id":199,"first_entry_time":18805,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"38","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":200,"first_entry_time":18806,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":201,"first_entry_time":18808,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":2652,"id":"114","highest_child_id":376,"first_entry_time":18836,"exclusive_time":27,"entries":1,"callees":[{"inclusive_time":12,"id":"13","highest_child_id":204,"first_entry_time":18844,"exclusive_time":10,"entries":1,"callees":[{"inclusive_time":1,"id":"30","highest_child_id":204,"first_entry_time":18854,"exclusive_time":1,"entries":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":2613,"id":"115","highest_child_id":376,"first_entry_time":18875,"exclusive_time":744,"entries":1,"callees":[{"inclusive_time":931,"id":"116","highest_child_id":303,"first_entry_time":18911,"exclusive_time":71,"entries":1,"callees":[{"inclusive_time":0,"id":"11","highest_child_id":207,"first_entry_time":18913,"exclusive_time":0,"entries":1,"allocations":[{"id":"12","count":1}]},{"inclusive_time":18,"id":"117","highest_child_id":216,"first_entry_time":18929,"exclusive_time":6,"entries":1,"callees":[{"inclusive_time":8,"id":"41","highest_child_id":212,"first_entry_time":18932,"exclusive_time":6,"entries":1,"callees":[{"inclusive_time":1,"id":"42","highest_child_id":210,"first_entry_time":18935,"exclusive_time":1,"entries":1},{"inclusive_time":1,"id":"35","highest_child_id":211,"first_entry_time":18938,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":212,"first_entry_time":18941,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":2,"id":"43","highest_child_id":214,"first_entry_time":18943,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":0,"id":"36","highest_child_id":214,"first_entry_time":18945,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"44","count":1},{"id":"12","count":1},{"id":"45","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":215,"first_entry_time":18946,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":216,"first_entry_time":18948,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1}]},{"inclusive_time":124,"id":"118","highest_child_id":230,"first_entry_time":18965,"exclusive_time":102,"entries":1,"callees":[{"inclusive_time":7,"id":"53","highest_child_id":223,"first_entry_time":18966,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":4,"id":"54","highest_child_id":222,"first_entry_time":18968,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":2,"id":"56","highest_child_id":221,"first_entry_time":18970,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":0,"id":"36","highest_child_id":221,"first_entry_time":18972,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"36","highest_child_id":222,"first_entry_time":18973,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"55","count":1}]},{"inclusive_time":0,"id":"36","highest_child_id":223,"first_entry_time":18974,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":8,"id":"119","highest_child_id":226,"first_entry_time":19072,"exclusive_time":7,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":225,"first_entry_time":19074,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"36","highest_child_id":226,"first_entry_time":19080,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"120","count":1}]},{"inclusive_time":3,"id":"37","highest_child_id":228,"first_entry_time":19082,"exclusive_time":3,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":228,"first_entry_time":19085,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"38","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":229,"first_entry_time":19087,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":230,"first_entry_time":19088,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":112,"id":"121","highest_child_id":246,"first_entry_time":19105,"exclusive_time":55,"entries":1,"callees":[{"inclusive_time":0,"id":"11","highest_child_id":232,"first_entry_time":19107,"exclusive_time":0,"entries":1,"allocations":[{"id":"12","count":1}]},{"inclusive_time":38,"id":"13","highest_child_id":236,"first_entry_time":19146,"exclusive_time":10,"entries":1,"callees":[{"inclusive_time":27,"id":"16","highest_child_id":235,"first_entry_time":19149,"exclusive_time":22,"entries":1,"callees":[{"inclusive_time":4,"id":"20","highest_child_id":235,"first_entry_time":19165,"exclusive_time":4,"entries":2}],"allocations":[{"id":"14","count":12},{"id":"17","count":3},{"id":"9","count":4},{"id":"18","count":4},{"id":"19","count":2}]},{"inclusive_time":1,"id":"30","highest_child_id":236,"first_entry_time":19183,"exclusive_time":1,"entries":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":17,"id":"122","highest_child_id":246,"first_entry_time":19200,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":7,"id":"41","highest_child_id":241,"first_entry_time":19203,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":0,"id":"42","highest_child_id":239,"first_entry_time":19205,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"35","highest_child_id":240,"first_entry_time":19208,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":241,"first_entry_time":19210,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":4,"id":"43","highest_child_id":244,"first_entry_time":19212,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":0,"id":"35","highest_child_id":243,"first_entry_time":19214,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":244,"first_entry_time":19216,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"44","count":1},{"id":"123","count":1},{"id":"45","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":245,"first_entry_time":19217,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":246,"first_entry_time":19218,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":8,"id":"124","highest_child_id":251,"first_entry_time":19234,"exclusive_time":4,"entries":1,"callees":[{"inclusive_time":2,"id":"57","highest_child_id":249,"first_entry_time":19237,"exclusive_time":2,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":249,"first_entry_time":19239,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"58","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":250,"first_entry_time":19241,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":251,"first_entry_time":19242,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"125","count":1}]},{"inclusive_time":592,"id":"60","highest_child_id":300,"first_entry_time":19244,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":4,"id":"53","highest_child_id":258,"first_entry_time":19247,"exclusive_time":1,"entries":1,"callees":[{"inclusive_time":3,"id":"54","highest_child_id":257,"first_entry_time":19248,"exclusive_time":1,"entries":1,"callees":[{"inclusive_time":1,"id":"56","highest_child_id":256,"first_entry_time":19249,"exclusive_time":1,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":256,"first_entry_time":19250,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":257,"first_entry_time":19251,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"55","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":258,"first_entry_time":19252,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":581,"id":"59","highest_child_id":299,"first_entry_time":19254,"exclusive_time":22,"entries":1,"callees":[{"inclusive_time":513,"id":"60","highest_child_id":294,"first_entry_time":19255,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":508,"id":"61","highest_child_id":292,"first_entry_time":19256,"exclusive_time":50,"entries":1,"callees":[{"inclusive_time":41,"id":"126","highest_child_id":271,"first_entry_time":19273,"exclusive_time":16,"entries":1,"callees":[{"inclusive_time":24,"id":"127","highest_child_id":269,"first_entry_time":19288,"exclusive_time":16,"entries":1,"callees":[{"inclusive_time":6,"id":"128","highest_child_id":267,"first_entry_time":19304,"exclusive_time":4,"entries":1,"callees":[{"inclusive_time":0,"id":"62","highest_child_id":265,"first_entry_time":19305,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":266,"first_entry_time":19307,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":267,"first_entry_time":19310,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":268,"first_entry_time":19311,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":269,"first_entry_time":19312,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":270,"first_entry_time":19313,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":271,"first_entry_time":19314,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":417,"id":"129","highest_child_id":291,"first_entry_time":19347,"exclusive_time":49,"entries":1,"callees":[{"inclusive_time":345,"id":"130","highest_child_id":289,"first_entry_time":19365,"exclusive_time":71,"entries":27,"callees":[{"inclusive_time":273,"id":"131","highest_child_id":288,"first_entry_time":19396,"exclusive_time":65,"entries":27,"callees":[{"inclusive_time":205,"id":"132","highest_child_id":285,"first_entry_time":19414,"exclusive_time":56,"entries":27,"callees":[{"inclusive_time":146,"id":"133","highest_child_id":283,"first_entry_time":19438,"exclusive_time":75,"entries":27,"callees":[{"inclusive_time":45,"id":"134","highest_child_id":279,"first_entry_time":19454,"exclusive_time":40,"entries":27,"callees":[{"inclusive_time":2,"id":"35","highest_child_id":278,"first_entry_time":19457,"exclusive_time":2,"entries":2},{"jit_entries":27,"inclusive_time":1,"id":"36","highest_child_id":279,"first_entry_time":19460,"exclusive_time":1,"entries":27}],"allocations":[{"id":"9","count":27},{"id":"80","count":26}]},{"inclusive_time":22,"id":"84","highest_child_id":281,"first_entry_time":19463,"exclusive_time":20,"entries":26,"callees":[{"jit_entries":26,"inclusive_time":1,"id":"36","highest_child_id":281,"first_entry_time":19464,"exclusive_time":1,"entries":26}],"allocations":[{"id":"9","count":26}]},{"inclusive_time":1,"id":"35","highest_child_id":282,"first_entry_time":19466,"exclusive_time":1,"entries":2},{"jit_entries":27,"inclusive_time":1,"id":"36","highest_child_id":283,"first_entry_time":19468,"exclusive_time":1,"entries":27}],"allocations":[{"id":"27","count":27},{"id":"9","count":27}]},{"inclusive_time":1,"id":"35","highest_child_id":284,"first_entry_time":19469,"exclusive_time":1,"entries":2},{"jit_entries":27,"inclusive_time":1,"id":"36","highest_child_id":285,"first_entry_time":19470,"exclusive_time":1,"entries":27}],"allocations":[{"id":"27","count":27},{"id":"9","count":27}]},{"inclusive_time":0,"id":"35","highest_child_id":286,"first_entry_time":19472,"exclusive_time":0,"entries":1},{"jit_entries":27,"inclusive_time":1,"id":"36","highest_child_id":287,"first_entry_time":19474,"exclusive_time":1,"entries":27},{"inclusive_time":0,"id":"42","highest_child_id":288,"first_entry_time":19759,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":27},{"id":"27","count":1},{"id":"15","count":13}]},{"inclusive_time":1,"id":"90","highest_child_id":289,"first_entry_time":19762,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":27}]},{"inclusive_time":22,"id":"84","highest_child_id":291,"first_entry_time":19476,"exclusive_time":20,"entries":26,"callees":[{"jit_entries":26,"inclusive_time":1,"id":"36","highest_child_id":291,"first_entry_time":19477,"exclusive_time":1,"entries":26}],"allocations":[{"id":"9","count":26}]}],"allocations":[{"id":"27","count":2},{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":292,"first_entry_time":19765,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]},{"inclusive_time":0,"id":"42","highest_child_id":293,"first_entry_time":19766,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":294,"first_entry_time":19768,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1},{"id":"15","count":1}]},{"inclusive_time":44,"id":"85","highest_child_id":296,"first_entry_time":19770,"exclusive_time":39,"entries":26,"callees":[{"inclusive_time":5,"id":"88","highest_child_id":296,"first_entry_time":19773,"exclusive_time":5,"entries":26}],"allocations":[{"id":"9","count":26},{"id":"27","count":26}]},{"inclusive_time":0,"id":"89","highest_child_id":297,"first_entry_time":19832,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"90","highest_child_id":298,"first_entry_time":19834,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":299,"first_entry_time":19835,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":300,"first_entry_time":19836,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1},{"id":"15","count":1}]},{"inclusive_time":0,"id":"89","highest_child_id":301,"first_entry_time":19837,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":302,"first_entry_time":19839,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":303,"first_entry_time":19842,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":1},{"id":"44","count":2},{"id":"5","count":1},{"id":"45","count":1}]},{"inclusive_time":876,"id":"75","highest_child_id":364,"first_entry_time":20546,"exclusive_time":47,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":305,"first_entry_time":20549,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"jit_entries":1,"inclusive_time":147,"id":"13","highest_child_id":311,"first_entry_time":20553,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":133,"id":"16","highest_child_id":310,"first_entry_time":20558,"exclusive_time":68,"entries":1,"callees":[{"inclusive_time":64,"id":"20","highest_child_id":310,"first_entry_time":20593,"exclusive_time":46,"entries":20,"callees":[{"inclusive_time":18,"id":"42","highest_child_id":310,"first_entry_time":20614,"exclusive_time":16,"entries":6,"callees":[{"inclusive_time":1,"id":"135","highest_child_id":310,"first_entry_time":20623,"exclusive_time":1,"entries":6}],"allocations":[{"id":"17","count":6}]}]}],"allocations":[{"id":"14","count":27},{"id":"17","count":6},{"id":"9","count":10},{"id":"18","count":10},{"id":"19","count":7}]},{"jit_entries":1,"inlined_entries":1,"inclusive_time":2,"id":"30","highest_child_id":311,"first_entry_time":20699,"exclusive_time":2,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":680,"id":"136","highest_child_id":364,"first_entry_time":20742,"exclusive_time":35,"entries":1,"callees":[{"inclusive_time":12,"id":"100","highest_child_id":320,"first_entry_time":20746,"exclusive_time":4,"entries":1,"callees":[{"inclusive_time":8,"id":"101","highest_child_id":319,"first_entry_time":20750,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":5,"id":"102","highest_child_id":318,"first_entry_time":20752,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":3,"id":"104","highest_child_id":317,"first_entry_time":20754,"exclusive_time":2,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":317,"first_entry_time":20756,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":318,"first_entry_time":20757,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"103","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":319,"first_entry_time":20758,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":320,"first_entry_time":20759,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"27","count":1}]},{"inclusive_time":622,"id":"137","highest_child_id":352,"first_entry_time":20787,"exclusive_time":296,"entries":1,"callees":[{"inclusive_time":0,"id":"62","highest_child_id":322,"first_entry_time":20789,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":266,"id":"140","highest_child_id":337,"first_entry_time":21061,"exclusive_time":101,"entries":1,"callees":[{"inclusive_time":17,"id":"107","highest_child_id":324,"first_entry_time":21065,"exclusive_time":17,"entries":27,"allocations":[{"id":"9","count":27}]},{"inclusive_time":92,"id":"141","highest_child_id":331,"first_entry_time":21085,"exclusive_time":24,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":326,"first_entry_time":21087,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"osr":1,"jit_entries":2,"inclusive_time":61,"id":"13","highest_child_id":330,"first_entry_time":21092,"exclusive_time":11,"entries":1,"deopt_one":1,"callees":[{"inclusive_time":48,"id":"16","highest_child_id":329,"first_entry_time":21093,"exclusive_time":36,"entries":1,"callees":[{"inclusive_time":12,"id":"20","highest_child_id":329,"first_entry_time":21118,"exclusive_time":12,"entries":6}],"allocations":[{"id":"14","count":17},{"id":"17","count":4},{"id":"9","count":6},{"id":"18","count":6},{"id":"19","count":3}]},{"jit_entries":1,"inlined_entries":1,"inclusive_time":1,"id":"30","highest_child_id":330,"first_entry_time":21152,"exclusive_time":1,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":6,"id":"142","highest_child_id":331,"first_entry_time":21171,"exclusive_time":6,"entries":1,"allocations":[{"id":"9","count":1},{"id":"143","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":32,"id":"144","highest_child_id":334,"first_entry_time":21191,"exclusive_time":29,"entries":23,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":333,"first_entry_time":21195,"exclusive_time":1,"entries":1},{"jit_entries":23,"inclusive_time":1,"id":"36","highest_child_id":334,"first_entry_time":21199,"exclusive_time":1,"entries":23}],"allocations":[{"id":"9","count":23},{"id":"145","count":23}]},{"inclusive_time":21,"id":"142","highest_child_id":335,"first_entry_time":21204,"exclusive_time":21,"entries":25,"allocations":[{"id":"9","count":25},{"id":"143","count":25}]},{"inclusive_time":1,"id":"35","highest_child_id":336,"first_entry_time":21325,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":337,"first_entry_time":21328,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":6,"id":"146","highest_child_id":340,"first_entry_time":21346,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":339,"first_entry_time":21350,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":340,"first_entry_time":21352,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":341,"first_entry_time":21354,"exclusive_time":0,"entries":1},{"jit_entries":2,"inclusive_time":0,"id":"36","highest_child_id":342,"first_entry_time":21355,"exclusive_time":0,"entries":2},{"inclusive_time":50,"id":"46","highest_child_id":352,"first_entry_time":21357,"exclusive_time":36,"entries":1,"callees":[{"inclusive_time":0,"id":"147","highest_child_id":344,"first_entry_time":21365,"exclusive_time":0,"entries":2},{"inclusive_time":1,"id":"48","highest_child_id":345,"first_entry_time":21368,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"49","highest_child_id":346,"first_entry_time":21371,"exclusive_time":0,"entries":1},{"inclusive_time":8,"id":"148","highest_child_id":348,"first_entry_time":21380,"exclusive_time":7,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":348,"first_entry_time":21386,"exclusive_time":0,"entries":1}]},{"inclusive_time":1,"id":"150","highest_child_id":350,"first_entry_time":21396,"exclusive_time":0,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":350,"first_entry_time":21397,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"151","highest_child_id":351,"first_entry_time":21403,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":352,"first_entry_time":21405,"exclusive_time":0,"entries":1}],"allocations":[{"id":"19","count":1}]}],"allocations":[{"id":"138","count":1},{"id":"139","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":353,"first_entry_time":21410,"exclusive_time":0,"entries":1},{"jit_entries":2,"inclusive_time":0,"id":"36","highest_child_id":354,"first_entry_time":21411,"exclusive_time":0,"entries":2},{"inclusive_time":9,"id":"46","highest_child_id":364,"first_entry_time":21412,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":0,"id":"147","highest_child_id":356,"first_entry_time":21413,"exclusive_time":0,"entries":2},{"inclusive_time":0,"id":"48","highest_child_id":357,"first_entry_time":21414,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"49","highest_child_id":358,"first_entry_time":21416,"exclusive_time":0,"entries":1},{"inclusive_time":1,"id":"148","highest_child_id":360,"first_entry_time":21416,"exclusive_time":0,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":360,"first_entry_time":21417,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"150","highest_child_id":362,"first_entry_time":21418,"exclusive_time":0,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":362,"first_entry_time":21419,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"151","highest_child_id":363,"first_entry_time":21420,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":364,"first_entry_time":21420,"exclusive_time":0,"entries":1}],"allocations":[{"id":"19","count":1}]}],"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":0,"id":"35","highest_child_id":365,"first_entry_time":21425,"exclusive_time":0,"entries":1},{"jit_entries":2,"inclusive_time":0,"id":"36","highest_child_id":366,"first_entry_time":21426,"exclusive_time":0,"entries":2},{"inclusive_time":59,"id":"46","highest_child_id":376,"first_entry_time":21427,"exclusive_time":55,"entries":1,"callees":[{"inclusive_time":0,"id":"147","highest_child_id":368,"first_entry_time":21428,"exclusive_time":0,"entries":2},{"inclusive_time":0,"id":"48","highest_child_id":369,"first_entry_time":21429,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"49","highest_child_id":370,"first_entry_time":21430,"exclusive_time":0,"entries":1},{"inclusive_time":1,"id":"148","highest_child_id":372,"first_entry_time":21431,"exclusive_time":0,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":372,"first_entry_time":21431,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"150","highest_child_id":374,"first_entry_time":21433,"exclusive_time":0,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":374,"first_entry_time":21433,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"47","highest_child_id":375,"first_entry_time":21484,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":376,"first_entry_time":21485,"exclusive_time":0,"entries":1}],"allocations":[{"id":"19","count":1}]}],"allocations":[{"id":"3","count":1}]}],"allocations":[{"id":"10","count":3}]},{"inclusive_time":7,"id":"86","highest_child_id":380,"first_entry_time":21492,"exclusive_time":6,"entries":1,"callees":[{"inclusive_time":0,"id":"87","highest_child_id":378,"first_entry_time":21496,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"47","highest_child_id":379,"first_entry_time":21497,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":380,"first_entry_time":21498,"exclusive_time":0,"entries":1}]},{"jit_entries":142,"inclusive_time":74,"id":"88","highest_child_id":381,"first_entry_time":21501,"exclusive_time":74,"entries":250},{"jit_entries":170,"inclusive_time":341,"id":"152","highest_child_id":382,"first_entry_time":21584,"exclusive_time":341,"entries":500,"allocations":[{"jit":170,"id":"153","count":500},{"jit":170,"id":"2","count":500}]},{"inclusive_time":1213,"id":"154","highest_child_id":460,"first_entry_time":21605,"exclusive_time":54,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":384,"first_entry_time":21608,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"inclusive_time":555,"id":"13","highest_child_id":417,"first_entry_time":21659,"exclusive_time":21,"entries":1,"callees":[{"inclusive_time":121,"id":"16","highest_child_id":389,"first_entry_time":21663,"exclusive_time":68,"entries":1,"callees":[{"inclusive_time":53,"id":"20","highest_child_id":389,"first_entry_time":21699,"exclusive_time":43,"entries":20,"callees":[{"inclusive_time":9,"id":"42","highest_child_id":389,"first_entry_time":21709,"exclusive_time":8,"entries":5,"callees":[{"inclusive_time":0,"id":"135","highest_child_id":389,"first_entry_time":21710,"exclusive_time":0,"entries":5}],"allocations":[{"id":"17","count":8}]}]}],"allocations":[{"id":"14","count":27},{"id":"17","count":6},{"id":"9","count":10},{"id":"18","count":10},{"id":"19","count":5}]},{"inclusive_time":410,"id":"21","highest_child_id":416,"first_entry_time":21799,"exclusive_time":28,"entries":1,"callees":[{"inclusive_time":382,"id":"22","highest_child_id":416,"first_entry_time":21826,"exclusive_time":4,"entries":1,"callees":[{"inclusive_time":377,"id":"23","highest_child_id":416,"first_entry_time":21831,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":363,"id":"26","highest_child_id":415,"first_entry_time":21835,"exclusive_time":57,"entries":4,"callees":[{"inclusive_time":5,"id":"42","highest_child_id":395,"first_entry_time":21847,"exclusive_time":4,"entries":2,"callees":[{"inclusive_time":0,"id":"135","highest_child_id":395,"first_entry_time":21848,"exclusive_time":0,"entries":2}],"allocations":[{"id":"17","count":4}]},{"inclusive_time":1,"id":"28","highest_child_id":396,"first_entry_time":21852,"exclusive_time":1,"entries":1},{"inclusive_time":299,"id":"155","highest_child_id":415,"first_entry_time":21902,"exclusive_time":7,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":398,"first_entry_time":21904,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"osr":1,"jit_entries":2,"inclusive_time":10,"id":"13","highest_child_id":400,"first_entry_time":21907,"exclusive_time":8,"entries":1,"deopt_one":1,"callees":[{"jit_entries":1,"inlined_entries":1,"inclusive_time":1,"id":"30","highest_child_id":400,"first_entry_time":21916,"exclusive_time":1,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":281,"id":"92","highest_child_id":415,"first_entry_time":21920,"exclusive_time":25,"entries":1,"callees":[{"inclusive_time":254,"id":"156","highest_child_id":413,"first_entry_time":21937,"exclusive_time":140,"entries":1,"callees":[{"inclusive_time":113,"id":"157","highest_child_id":411,"first_entry_time":22075,"exclusive_time":42,"entries":1,"callees":[{"inclusive_time":50,"id":"159","highest_child_id":405,"first_entry_time":22091,"exclusive_time":47,"entries":1,"callees":[{"inclusive_time":3,"id":"160","highest_child_id":405,"first_entry_time":22137,"exclusive_time":3,"entries":1,"allocations":[{"id":"73","count":1}]}]},{"inclusive_time":19,"id":"161","highest_child_id":409,"first_entry_time":22166,"exclusive_time":15,"entries":1,"callees":[{"inclusive_time":1,"id":"162","highest_child_id":407,"first_entry_time":22178,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":408,"first_entry_time":22182,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":409,"first_entry_time":22185,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":2}]},{"inclusive_time":0,"id":"35","highest_child_id":410,"first_entry_time":22187,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":411,"first_entry_time":22189,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"158","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":412,"first_entry_time":22190,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":413,"first_entry_time":22191,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"163","highest_child_id":414,"first_entry_time":22198,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":415,"first_entry_time":22200,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":2},{"id":"25","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]}],"allocations":[{"id":"2","count":16},{"id":"27","count":2},{"id":"25","count":1}]},{"inclusive_time":1,"id":"29","highest_child_id":416,"first_entry_time":21858,"exclusive_time":1,"entries":1}],"allocations":[{"id":"24","count":1},{"id":"25","count":1}]}]}]},{"jit_entries":1,"inclusive_time":2,"id":"30","highest_child_id":417,"first_entry_time":22212,"exclusive_time":2,"entries":1,"deopt_one":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1},{"id":"10","count":1},{"id":"15","count":1}]},{"inclusive_time":602,"id":"164","highest_child_id":460,"first_entry_time":22216,"exclusive_time":28,"entries":1,"callees":[{"inclusive_time":12,"id":"92","highest_child_id":428,"first_entry_time":22221,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":8,"id":"156","highest_child_id":426,"first_entry_time":22222,"exclusive_time":1,"entries":1,"callees":[{"inclusive_time":6,"id":"157","highest_child_id":425,"first_entry_time":22224,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":4,"id":"161","highest_child_id":424,"first_entry_time":22226,"exclusive_time":2,"entries":1,"callees":[{"inclusive_time":0,"id":"162","highest_child_id":423,"first_entry_time":22228,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":424,"first_entry_time":22229,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":425,"first_entry_time":22230,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"158","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":426,"first_entry_time":22231,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"163","highest_child_id":427,"first_entry_time":22231,"exclusive_time":0,"entries":1,"allocations":[{"id":"9","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":428,"first_entry_time":22232,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":2},{"id":"25","count":1}]},{"inclusive_time":561,"id":"165","highest_child_id":460,"first_entry_time":22257,"exclusive_time":192,"entries":1,"callees":[{"inclusive_time":253,"id":"167","highest_child_id":451,"first_entry_time":22273,"exclusive_time":27,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":431,"first_entry_time":22274,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"osr":1,"jit_entries":2,"inclusive_time":64,"id":"13","highest_child_id":437,"first_entry_time":22278,"exclusive_time":7,"entries":1,"deopt_one":1,"callees":[{"inclusive_time":55,"id":"16","highest_child_id":436,"first_entry_time":22279,"exclusive_time":36,"entries":1,"callees":[{"inclusive_time":19,"id":"20","highest_child_id":436,"first_entry_time":22301,"exclusive_time":12,"entries":6,"callees":[{"inclusive_time":7,"id":"42","highest_child_id":436,"first_entry_time":22306,"exclusive_time":6,"entries":4,"callees":[{"inclusive_time":0,"id":"135","highest_child_id":436,"first_entry_time":22308,"exclusive_time":0,"entries":4}],"allocations":[{"id":"17","count":4}]}]}],"allocations":[{"id":"14","count":17},{"id":"17","count":4},{"id":"9","count":6},{"id":"18","count":6},{"id":"19","count":3}]},{"jit_entries":1,"inlined_entries":1,"inclusive_time":1,"id":"30","highest_child_id":437,"first_entry_time":22341,"exclusive_time":1,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":160,"id":"168","highest_child_id":451,"first_entry_time":22365,"exclusive_time":34,"entries":1,"callees":[{"inclusive_time":125,"id":"169","highest_child_id":449,"first_entry_time":22399,"exclusive_time":76,"entries":1,"callees":[{"inclusive_time":48,"id":"157","highest_child_id":447,"first_entry_time":22474,"exclusive_time":7,"entries":1,"callees":[{"inclusive_time":33,"id":"159","highest_child_id":442,"first_entry_time":22477,"exclusive_time":31,"entries":1,"callees":[{"inclusive_time":2,"id":"160","highest_child_id":442,"first_entry_time":22507,"exclusive_time":2,"entries":1,"allocations":[{"id":"73","count":1}]}]},{"inclusive_time":6,"id":"161","highest_child_id":445,"first_entry_time":22512,"exclusive_time":5,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":444,"first_entry_time":22516,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":445,"first_entry_time":22519,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"171","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":446,"first_entry_time":22520,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":447,"first_entry_time":22522,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"170","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":448,"first_entry_time":22523,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":449,"first_entry_time":22524,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":0,"id":"35","highest_child_id":450,"first_entry_time":22525,"exclusive_time":0,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":451,"first_entry_time":22526,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":4,"id":"172","highest_child_id":452,"first_entry_time":22539,"exclusive_time":4,"entries":6,"allocations":[{"id":"9","count":6}]},{"inclusive_time":104,"id":"173","highest_child_id":459,"first_entry_time":22553,"exclusive_time":36,"entries":6,"callees":[{"inclusive_time":2,"id":"174","highest_child_id":454,"first_entry_time":22566,"exclusive_time":2,"entries":6,"allocations":[{"id":"9","count":6}]},{"inclusive_time":63,"id":"175","highest_child_id":458,"first_entry_time":22579,"exclusive_time":14,"entries":1,"callees":[{"inclusive_time":46,"id":"13","highest_child_id":457,"first_entry_time":22585,"exclusive_time":44,"entries":1,"callees":[{"inclusive_time":1,"id":"30","highest_child_id":457,"first_entry_time":22629,"exclusive_time":1,"entries":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":1,"id":"176","highest_child_id":458,"first_entry_time":22641,"exclusive_time":1,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"10","count":3}]},{"inclusive_time":2,"id":"176","highest_child_id":459,"first_entry_time":22648,"exclusive_time":2,"entries":5}]},{"inclusive_time":6,"id":"177","highest_child_id":460,"first_entry_time":22812,"exclusive_time":6,"entries":1,"allocations":[{"id":"2","count":3},{"id":"27","count":1},{"id":"9","count":1},{"id":"25","count":1}]}],"allocations":[{"id":"27","count":1},{"id":"166","count":1}]}],"allocations":[{"id":"2","count":1},{"id":"27","count":1},{"id":"9","count":1},{"id":"25","count":2}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":151,"id":"178","highest_child_id":469,"first_entry_time":22838,"exclusive_time":15,"entries":1,"callees":[{"inclusive_time":94,"id":"13","highest_child_id":463,"first_entry_time":22843,"exclusive_time":92,"entries":1,"callees":[{"inclusive_time":2,"id":"30","highest_child_id":463,"first_entry_time":22934,"exclusive_time":2,"entries":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":3},{"id":"9","count":2}]},{"inclusive_time":41,"id":"179","highest_child_id":469,"first_entry_time":22947,"exclusive_time":12,"entries":1,"callees":[{"inclusive_time":29,"id":"180","highest_child_id":469,"first_entry_time":22959,"exclusive_time":16,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":466,"first_entry_time":22961,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"inclusive_time":10,"id":"13","highest_child_id":468,"first_entry_time":22965,"exclusive_time":9,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":1,"id":"30","highest_child_id":468,"first_entry_time":22973,"exclusive_time":1,"entries":1,"deopt_one":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":1,"id":"181","highest_child_id":469,"first_entry_time":22987,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]}]}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"10","count":3}]},{"inclusive_time":69,"id":"182","highest_child_id":480,"first_entry_time":23005,"exclusive_time":20,"entries":1,"callees":[{"inclusive_time":25,"id":"13","highest_child_id":472,"first_entry_time":23009,"exclusive_time":24,"entries":1,"callees":[{"inclusive_time":1,"id":"30","highest_child_id":472,"first_entry_time":23033,"exclusive_time":1,"entries":1}],"allocations":[{"id":"2","count":2},{"id":"14","count":2},{"id":"9","count":1}]},{"inclusive_time":23,"id":"183","highest_child_id":480,"first_entry_time":23050,"exclusive_time":11,"entries":1,"callees":[{"inclusive_time":9,"id":"86","highest_child_id":477,"first_entry_time":23054,"exclusive_time":8,"entries":1,"callees":[{"inclusive_time":0,"id":"87","highest_child_id":475,"first_entry_time":23057,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"47","highest_child_id":476,"first_entry_time":23059,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":477,"first_entry_time":23061,"exclusive_time":0,"entries":1}]},{"inclusive_time":1,"id":"88","highest_child_id":478,"first_entry_time":23068,"exclusive_time":1,"entries":1},{"inclusive_time":1,"id":"35","highest_child_id":479,"first_entry_time":23071,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":480,"first_entry_time":23073,"exclusive_time":0,"entries":1}]}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"10","count":3}]},{"jit_entries":141,"inclusive_time":45,"id":"66","highest_child_id":481,"first_entry_time":23077,"exclusive_time":45,"entries":247,"allocations":[{"id":"9","count":106}]},{"jit_entries":170,"inclusive_time":16161,"id":"164","highest_child_id":509,"first_entry_time":23082,"exclusive_time":1280,"entries":499,"callees":[{"jit_entries":174,"inclusive_time":2684,"id":"92","highest_child_id":492,"first_entry_time":23086,"exclusive_time":882,"entries":499,"callees":[{"jit_entries":207,"inlined_entries":174,"inclusive_time":1673,"id":"156","highest_child_id":490,"first_entry_time":23087,"exclusive_time":448,"entries":499,"callees":[{"jit_entries":334,"inlined_entries":207,"inclusive_time":1194,"id":"157","highest_child_id":489,"first_entry_time":23089,"exclusive_time":306,"entries":499,"callees":[{"jit_entries":336,"inlined_entries":334,"inclusive_time":860,"id":"161","highest_child_id":488,"first_entry_time":23090,"exclusive_time":658,"entries":499,"callees":[{"jit_entries":210,"inclusive_time":174,"id":"162","highest_child_id":487,"first_entry_time":23092,"exclusive_time":174,"entries":499,"allocations":[{"id":"9","count":289}]},{"jit_entries":499,"inlined_entries":336,"inclusive_time":27,"id":"36","highest_child_id":488,"first_entry_time":23094,"exclusive_time":27,"entries":499}],"allocations":[{"id":"9","count":163}]},{"jit_entries":499,"inlined_entries":334,"inclusive_time":27,"id":"36","highest_child_id":489,"first_entry_time":23095,"exclusive_time":27,"entries":499}],"allocations":[{"id":"9","count":165},{"jit":334,"id":"158","count":499}]},{"jit_entries":499,"inlined_entries":207,"inclusive_time":30,"id":"36","highest_child_id":490,"first_entry_time":23095,"exclusive_time":30,"entries":499}],"allocations":[{"id":"9","count":292}]},{"jit_entries":210,"inlined_entries":174,"inclusive_time":99,"id":"163","highest_child_id":491,"first_entry_time":23096,"exclusive_time":99,"entries":499,"allocations":[{"id":"9","count":289}]},{"jit_entries":499,"inlined_entries":174,"inclusive_time":28,"id":"36","highest_child_id":492,"first_entry_time":23098,"exclusive_time":28,"entries":499}],"allocations":[{"jit":348,"id":"9","count":998},{"jit":174,"id":"25","count":499}]},{"jit_entries":398,"inclusive_time":12196,"id":"165","highest_child_id":509,"first_entry_time":23099,"exclusive_time":4372,"entries":499,"callees":[{"jit_entries":172,"inclusive_time":1709,"id":"168","highest_child_id":501,"first_entry_time":23101,"exclusive_time":495,"entries":499,"callees":[{"jit_entries":198,"inlined_entries":172,"inclusive_time":1186,"id":"169","highest_child_id":500,"first_entry_time":23102,"exclusive_time":434,"entries":499,"callees":[{"jit_entries":332,"inlined_entries":198,"inclusive_time":723,"id":"157","highest_child_id":499,"first_entry_time":23103,"exclusive_time":273,"entries":499,"callees":[{"jit_entries":337,"inlined_entries":332,"inclusive_time":424,"id":"161","highest_child_id":498,"first_entry_time":23105,"exclusive_time":394,"entries":499,"callees":[{"jit_entries":499,"inlined_entries":337,"inclusive_time":29,"id":"36","highest_child_id":498,"first_entry_time":23107,"exclusive_time":29,"entries":499}],"allocations":[{"id":"9","count":162},{"jit":337,"id":"171","count":499}]},{"jit_entries":499,"inlined_entries":332,"inclusive_time":25,"id":"36","highest_child_id":499,"first_entry_time":23107,"exclusive_time":25,"entries":499}],"allocations":[{"id":"9","count":167},{"jit":332,"id":"170","count":499}]},{"jit_entries":499,"inlined_entries":198,"inclusive_time":27,"id":"36","highest_child_id":500,"first_entry_time":23108,"exclusive_time":27,"entries":499}],"allocations":[{"id":"9","count":301}]},{"jit_entries":499,"inlined_entries":172,"inclusive_time":27,"id":"36","highest_child_id":501,"first_entry_time":23109,"exclusive_time":27,"entries":499}],"allocations":[{"id":"9","count":327}]},{"jit_entries":6140,"inlined_entries":6061,"inclusive_time":1293,"id":"172","highest_child_id":502,"first_entry_time":23109,"exclusive_time":1293,"entries":7633,"allocations":[{"id":"9","count":1493}]},{"jit_entries":4329,"inclusive_time":2750,"id":"184","highest_child_id":505,"first_entry_time":23123,"exclusive_time":1602,"entries":5424,"callees":[{"jit_entries":4347,"inlined_entries":4329,"inclusive_time":451,"id":"174","highest_child_id":504,"first_entry_time":23125,"exclusive_time":451,"entries":5424,"allocations":[{"id":"9","count":1077}]},{"jit_entries":4347,"inlined_entries":4329,"inclusive_time":696,"id":"176","highest_child_id":505,"first_entry_time":23126,"exclusive_time":696,"entries":5424}]},{"jit_entries":1365,"inclusive_time":1351,"id":"173","highest_child_id":508,"first_entry_time":23840,"exclusive_time":880,"entries":1993,"callees":[{"jit_entries":1629,"inlined_entries":1365,"inclusive_time":183,"id":"174","highest_child_id":507,"first_entry_time":23841,"exclusive_time":183,"entries":1993,"allocations":[{"id":"9","count":364}]},{"jit_entries":1629,"inlined_entries":1365,"inclusive_time":286,"id":"176","highest_child_id":508,"first_entry_time":23843,"exclusive_time":286,"entries":1993}]},{"inclusive_time":719,"id":"177","highest_child_id":509,"first_entry_time":23850,"exclusive_time":719,"entries":283,"allocations":[{"id":"2","count":849},{"id":"27","count":283},{"id":"9","count":283},{"id":"25","count":283}]}],"allocations":[{"jit":398,"id":"27","count":499},{"jit":227,"id":"166","count":283}]}],"allocations":[{"jit":340,"id":"2","count":878},{"jit":170,"id":"27","count":499},{"jit":170,"id":"9","count":499},{"jit":340,"id":"25","count":998}]},{"inclusive_time":1516,"id":"110","highest_child_id":517,"first_entry_time":23212,"exclusive_time":557,"entries":249,"callees":[{"inclusive_time":745,"id":"111","highest_child_id":514,"first_entry_time":23214,"exclusive_time":289,"entries":249,"callees":[{"inclusive_time":442,"id":"113","highest_child_id":513,"first_entry_time":23216,"exclusive_time":420,"entries":249,"callees":[{"jit_entries":249,"inclusive_time":21,"id":"36","highest_child_id":513,"first_entry_time":23218,"exclusive_time":21,"entries":249}],"allocations":[{"id":"9","count":249}]},{"jit_entries":249,"inclusive_time":13,"id":"36","highest_child_id":514,"first_entry_time":23219,"exclusive_time":13,"entries":249}],"allocations":[{"id":"9","count":249},{"id":"112","count":249}]},{"jit_entries":102,"inclusive_time":197,"id":"37","highest_child_id":516,"first_entry_time":23222,"exclusive_time":176,"entries":249,"callees":[{"jit_entries":249,"inlined_entries":102,"inclusive_time":20,"id":"36","highest_child_id":516,"first_entry_time":23224,"exclusive_time":20,"entries":249}],"allocations":[{"id":"9","count":147},{"jit":102,"id":"38","count":249}]},{"jit_entries":249,"inclusive_time":17,"id":"36","highest_child_id":517,"first_entry_time":23225,"exclusive_time":17,"entries":249}],"allocations":[{"id":"9","count":249}]},{"inclusive_time":71916,"id":"115","highest_child_id":629,"first_entry_time":23227,"exclusive_time":799,"entries":249,"callees":[{"jit_entries":92,"inclusive_time":54508,"id":"116","highest_child_id":607,"first_entry_time":23229,"exclusive_time":1756,"entries":249,"callees":[{"jit_entries":249,"inclusive_time":41,"id":"11","highest_child_id":520,"first_entry_time":23230,"exclusive_time":41,"entries":249,"allocations":[{"jit":249,"id":"12","count":249}]},{"inclusive_time":1755,"id":"117","highest_child_id":528,"first_entry_time":23234,"exclusive_time":693,"entries":249,"callees":[{"spesh_entries":106,"inclusive_time":783,"id":"41","highest_child_id":525,"first_entry_time":23236,"exclusive_time":619,"entries":249,"deopt_one":106,"callees":[{"jit_entries":169,"inclusive_time":146,"id":"42","highest_child_id":523,"first_entry_time":23238,"exclusive_time":146,"entries":249},{"jit_entries":249,"inclusive_time":14,"id":"36","highest_child_id":524,"first_entry_time":23241,"exclusive_time":14,"entries":249},{"inclusive_time":2,"id":"35","highest_child_id":525,"first_entry_time":93267,"exclusive_time":2,"entries":1}],"allocations":[{"id":"9","count":143}]},{"jit_entries":107,"inclusive_time":262,"id":"43","highest_child_id":527,"first_entry_time":23243,"exclusive_time":242,"entries":249,"callees":[{"jit_entries":249,"inlined_entries":107,"inclusive_time":19,"id":"36","highest_child_id":527,"first_entry_time":23245,"exclusive_time":19,"entries":249}],"allocations":[{"id":"9","count":142},{"jit":107,"id":"44","count":249},{"jit":107,"id":"12","count":249},{"jit":107,"id":"45","count":249}]},{"jit_entries":249,"inclusive_time":16,"id":"36","highest_child_id":528,"first_entry_time":23246,"exclusive_time":16,"entries":249}],"allocations":[{"id":"9","count":249},{"id":"27","count":249}]},{"inclusive_time":1705,"id":"118","highest_child_id":540,"first_entry_time":23248,"exclusive_time":643,"entries":249,"callees":[{"jit_entries":104,"inclusive_time":647,"id":"53","highest_child_id":535,"first_entry_time":23249,"exclusive_time":223,"entries":249,"callees":[{"jit_entries":108,"inlined_entries":104,"inclusive_time":410,"id":"54","highest_child_id":534,"first_entry_time":23252,"exclusive_time":177,"entries":249,"callees":[{"jit_entries":109,"inlined_entries":108,"inclusive_time":219,"id":"56","highest_child_id":533,"first_entry_time":23253,"exclusive_time":203,"entries":249,"callees":[{"jit_entries":249,"inlined_entries":109,"inclusive_time":15,"id":"36","highest_child_id":533,"first_entry_time":23255,"exclusive_time":15,"entries":249}],"allocations":[{"id":"9","count":140}]},{"jit_entries":249,"inlined_entries":108,"inclusive_time":13,"id":"36","highest_child_id":534,"first_entry_time":23256,"exclusive_time":13,"entries":249}],"allocations":[{"id":"9","count":141},{"jit":108,"id":"55","count":249}]},{"jit_entries":249,"inlined_entries":104,"inclusive_time":12,"id":"36","highest_child_id":535,"first_entry_time":23257,"exclusive_time":12,"entries":249}],"allocations":[{"id":"9","count":145}]},{"inclusive_time":246,"id":"119","highest_child_id":537,"first_entry_time":23259,"exclusive_time":228,"entries":249,"callees":[{"jit_entries":249,"inclusive_time":18,"id":"36","highest_child_id":537,"first_entry_time":23260,"exclusive_time":18,"entries":249}],"allocations":[{"id":"9","count":249},{"id":"120","count":249}]},{"jit_entries":107,"inclusive_time":149,"id":"37","highest_child_id":539,"first_entry_time":23261,"exclusive_time":132,"entries":249,"callees":[{"jit_entries":249,"inlined_entries":107,"inclusive_time":16,"id":"36","highest_child_id":539,"first_entry_time":23262,"exclusive_time":16,"entries":249}],"allocations":[{"id":"9","count":142},{"jit":107,"id":"38","count":249}]},{"jit_entries":249,"inclusive_time":18,"id":"36","highest_child_id":540,"first_entry_time":23263,"exclusive_time":18,"entries":249}],"allocations":[{"id":"9","count":249}]},{"inclusive_time":1232,"id":"122","highest_child_id":548,"first_entry_time":23265,"exclusive_time":516,"entries":249,"callees":[{"spesh_entries":106,"inclusive_time":453,"id":"41","highest_child_id":545,"first_entry_time":23267,"exclusive_time":361,"entries":249,"deopt_one":106,"callees":[{"jit_entries":169,"inclusive_time":76,"id":"42","highest_child_id":543,"first_entry_time":23268,"exclusive_time":76,"entries":249},{"jit_entries":249,"inclusive_time":13,"id":"36","highest_child_id":544,"first_entry_time":23269,"exclusive_time":13,"entries":249},{"inclusive_time":1,"id":"35","highest_child_id":545,"first_entry_time":93290,"exclusive_time":1,"entries":1}],"allocations":[{"id":"9","count":143}]},{"jit_entries":107,"inclusive_time":248,"id":"43","highest_child_id":547,"first_entry_time":23270,"exclusive_time":231,"entries":249,"callees":[{"jit_entries":249,"inlined_entries":107,"inclusive_time":16,"id":"36","highest_child_id":547,"first_entry_time":23272,"exclusive_time":16,"entries":249}],"allocations":[{"id":"9","count":142},{"jit":107,"id":"44","count":249},{"jit":107,"id":"123","count":249},{"jit":107,"id":"45","count":249}]},{"jit_entries":249,"inclusive_time":14,"id":"36","highest_child_id":548,"first_entry_time":23273,"exclusive_time":14,"entries":249}],"allocations":[{"id":"9","count":249}]},{"inclusive_time":779,"id":"124","highest_child_id":552,"first_entry_time":23276,"exclusive_time":460,"entries":249,"callees":[{"inclusive_time":302,"id":"57","highest_child_id":551,"first_entry_time":23279,"exclusive_time":282,"entries":249,"callees":[{"jit_entries":249,"inclusive_time":19,"id":"36","highest_child_id":551,"first_entry_time":23281,"exclusive_time":19,"entries":249}],"allocations":[{"id":"9","count":249},{"id":"58","count":249}]},{"jit_entries":249,"inclusive_time":16,"id":"36","highest_child_id":552,"first_entry_time":23282,"exclusive_time":16,"entries":249}],"allocations":[{"id":"9","count":249},{"id":"125","count":249}]},{"osr":99,"jit_entries":198,"inclusive_time":47100,"id":"60","highest_child_id":605,"first_entry_time":23284,"exclusive_time":858,"entries":249,"deopt_one":99,"callees":[{"jit_entries":105,"inlined_entries":99,"inclusive_time":593,"id":"53","highest_child_id":559,"first_entry_time":23287,"exclusive_time":184,"entries":249,"callees":[{"jit_entries":108,"inlined_entries":105,"inclusive_time":395,"id":"54","highest_child_id":558,"first_entry_time":23288,"exclusive_time":177,"entries":249,"callees":[{"jit_entries":110,"inlined_entries":108,"inclusive_time":204,"id":"56","highest_child_id":557,"first_entry_time":23289,"exclusive_time":187,"entries":249,"callees":[{"jit_entries":249,"inlined_entries":110,"inclusive_time":17,"id":"36","highest_child_id":557,"first_entry_time":23290,"exclusive_time":17,"entries":249}],"allocations":[{"id":"9","count":139}]},{"jit_entries":249,"inlined_entries":108,"inclusive_time":13,"id":"36","highest_child_id":558,"first_entry_time":23291,"exclusive_time":13,"entries":249}],"allocations":[{"id":"9","count":141},{"jit":108,"id":"55","count":249}]},{"jit_entries":249,"inlined_entries":105,"inclusive_time":13,"id":"36","highest_child_id":559,"first_entry_time":23291,"exclusive_time":13,"entries":249}],"allocations":[{"id":"9","count":144}]},{"osr":1,"jit_entries":201,"inclusive_time":45628,"id":"59","highest_child_id":604,"first_entry_time":23293,"exclusive_time":1907,"entries":249,"callees":[{"jit_entries":99,"inclusive_time":40496,"id":"60","highest_child_id":599,"first_entry_time":23295,"exclusive_time":773,"entries":249,"deopt_one":99,"callees":[{"inclusive_time":39642,"id":"61","highest_child_id":597,"first_entry_time":23296,"exclusive_time":612,"entries":249,"callees":[{"inclusive_time":1174,"id":"126","highest_child_id":569,"first_entry_time":23298,"exclusive_time":287,"entries":249,"callees":[{"inclusive_time":871,"id":"127","highest_child_id":568,"first_entry_time":23300,"exclusive_time":400,"entries":249,"callees":[{"inclusive_time":456,"id":"128","highest_child_id":567,"first_entry_time":23302,"exclusive_time":396,"entries":249,"callees":[{"jit_entries":111,"inclusive_time":44,"id":"62","highest_child_id":566,"first_entry_time":23304,"exclusive_time":44,"entries":249,"allocations":[{"id":"9","count":138}]},{"jit_entries":249,"inclusive_time":15,"id":"36","highest_child_id":567,"first_entry_time":23305,"exclusive_time":15,"entries":249}],"allocations":[{"id":"9","count":249}]},{"jit_entries":249,"inclusive_time":14,"id":"36","highest_child_id":568,"first_entry_time":23306,"exclusive_time":14,"entries":249}],"allocations":[{"id":"9","count":249}]},{"jit_entries":249,"inclusive_time":15,"id":"36","highest_child_id":569,"first_entry_time":23307,"exclusive_time":15,"entries":249}],"allocations":[{"id":"9","count":249}]},{"osr":1,"jit_entries":203,"inclusive_time":37834,"id":"129","highest_child_id":596,"first_entry_time":23308,"exclusive_time":5421,"entries":249,"callees":[{"jit_entries":5517,"inclusive_time":31053,"id":"130","highest_child_id":594,"first_entry_time":23310,"exclusive_time":3865,"entries":6723,"callees":[{"jit_entries":5535,"inclusive_time":27123,"id":"131","highest_child_id":593,"first_entry_time":23313,"exclusive_time":4709,"entries":6723,"callees":[{"spesh_entries":5589,"inclusive_time":21966,"id":"132","highest_child_id":591,"first_entry_time":23315,"exclusive_time":4676,"entries":6723,"callees":[{"spesh_entries":6588,"inclusive_time":16947,"id":"133","highest_child_id":589,"first_entry_time":23317,"exclusive_time":8975,"entries":6723,"callees":[{"spesh_entries":5589,"inclusive_time":5169,"id":"134","highest_child_id":577,"first_entry_time":23319,"exclusive_time":4796,"entries":6723,"callees":[{"spesh_entries":5589,"jit_entries":1134,"inlined_entries":5589,"inclusive_time":368,"id":"36","highest_child_id":576,"first_entry_time":23321,"exclusive_time":368,"entries":6723},{"inclusive_time":5,"id":"35","highest_child_id":577,"first_entry_time":57958,"exclusive_time":5,"entries":2}],"allocations":[{"id":"9","count":1134},{"spesh":5382,"id":"80","count":6474}]},{"spesh_entries":6344,"jit_entries":130,"inlined_entries":6344,"inclusive_time":2210,"id":"84","highest_child_id":579,"first_entry_time":23323,"exclusive_time":1688,"entries":6474,"callees":[{"spesh_entries":6344,"jit_entries":130,"inlined_entries":6474,"inclusive_time":522,"id":"36","highest_child_id":579,"first_entry_time":23324,"exclusive_time":522,"entries":6474}]},{"spesh_entries":6588,"jit_entries":135,"inlined_entries":6588,"inclusive_time":437,"id":"36","highest_child_id":580,"first_entry_time":23325,"exclusive_time":437,"entries":6723},{"inclusive_time":2,"id":"35","highest_child_id":581,"first_entry_time":26938,"exclusive_time":2,"entries":2},{"inclusive_time":152,"id":"185","highest_child_id":589,"first_entry_time":127338,"exclusive_time":123,"entries":1,"callees":[{"inclusive_time":5,"id":"186","highest_child_id":583,"first_entry_time":127358,"exclusive_time":5,"entries":3},{"inclusive_time":15,"id":"187","highest_child_id":586,"first_entry_time":127387,"exclusive_time":11,"entries":2,"callees":[{"inclusive_time":4,"id":"35","highest_child_id":585,"first_entry_time":127394,"exclusive_time":4,"entries":1},{"jit_entries":2,"inclusive_time":0,"id":"36","highest_child_id":586,"first_entry_time":127401,"exclusive_time":0,"entries":2}],"allocations":[{"id":"9","count":2}]},{"inclusive_time":7,"id":"188","highest_child_id":589,"first_entry_time":127482,"exclusive_time":6,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":588,"first_entry_time":127487,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":589,"first_entry_time":127489,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"189","count":1}]}],"allocations":[{"id":"3","count":1},{"id":"17","count":4}]}],"allocations":[{"spesh":6588,"id":"27","count":6723},{"spesh":6588,"id":"9","count":6723}]},{"spesh_entries":5589,"jit_entries":1134,"inlined_entries":5589,"inclusive_time":339,"id":"36","highest_child_id":590,"first_entry_time":23326,"exclusive_time":339,"entries":6723},{"inclusive_time":1,"id":"35","highest_child_id":591,"first_entry_time":57968,"exclusive_time":1,"entries":2}],"allocations":[{"spesh":5589,"id":"27","count":6723},{"id":"9","count":1134}]},{"jit_entries":6723,"inlined_entries":5535,"inclusive_time":334,"id":"36","highest_child_id":592,"first_entry_time":23328,"exclusive_time":334,"entries":6723},{"jit_entries":169,"inclusive_time":113,"id":"42","highest_child_id":593,"first_entry_time":23582,"exclusive_time":113,"entries":249}],"allocations":[{"jit":5535,"id":"9","count":6723},{"jit":205,"id":"27","count":249},{"jit":2665,"id":"15","count":3237}]},{"jit_entries":205,"inlined_entries":205,"inclusive_time":64,"id":"90","highest_child_id":594,"first_entry_time":23585,"exclusive_time":64,"entries":249,"allocations":[{"id":"9","count":44}]}],"allocations":[{"id":"9","count":1206}]},{"jit_entries":6474,"inclusive_time":1358,"id":"84","highest_child_id":596,"first_entry_time":23330,"exclusive_time":1023,"entries":6474,"callees":[{"jit_entries":6474,"inlined_entries":6474,"inclusive_time":335,"id":"36","highest_child_id":596,"first_entry_time":23330,"exclusive_time":335,"entries":6474}]}],"allocations":[{"jit":404,"id":"27","count":498},{"jit":202,"id":"9","count":249}]},{"jit_entries":249,"inclusive_time":21,"id":"36","highest_child_id":597,"first_entry_time":23587,"exclusive_time":21,"entries":249}],"allocations":[{"id":"27","count":249},{"id":"9","count":249}]},{"jit_entries":169,"inclusive_time":63,"id":"42","highest_child_id":598,"first_entry_time":23588,"exclusive_time":63,"entries":249},{"jit_entries":249,"inclusive_time":17,"id":"36","highest_child_id":599,"first_entry_time":23590,"exclusive_time":17,"entries":249}],"allocations":[{"jit":99,"id":"9","count":249},{"jit":99,"id":"27","count":249},{"jit":99,"id":"15","count":249}]},{"jit_entries":5252,"inlined_entries":5226,"inclusive_time":3100,"id":"85","highest_child_id":601,"first_entry_time":23593,"exclusive_time":2610,"entries":6474,"callees":[{"jit_entries":5278,"inlined_entries":5252,"inclusive_time":489,"id":"88","highest_child_id":601,"first_entry_time":23596,"exclusive_time":489,"entries":6474}],"allocations":[{"id":"9","count":1222},{"jit":5252,"id":"27","count":6474}]},{"jit_entries":201,"inlined_entries":201,"inclusive_time":57,"id":"89","highest_child_id":602,"first_entry_time":23659,"exclusive_time":57,"entries":249,"allocations":[{"id":"9","count":48}]},{"jit_entries":201,"inlined_entries":201,"inclusive_time":51,"id":"90","highest_child_id":603,"first_entry_time":23661,"exclusive_time":51,"entries":249,"allocations":[{"id":"9","count":48}]},{"jit_entries":249,"inlined_entries":201,"inclusive_time":15,"id":"36","highest_child_id":604,"first_entry_time":23662,"exclusive_time":15,"entries":249}],"allocations":[{"jit":200,"id":"27","count":249},{"jit":200,"id":"9","count":249}]},{"jit_entries":249,"inlined_entries":99,"inclusive_time":18,"id":"36","highest_child_id":605,"first_entry_time":23664,"exclusive_time":18,"entries":249}],"allocations":[{"jit":99,"id":"9","count":249},{"jit":99,"id":"27","count":249},{"jit":99,"id":"15","count":249}]},{"jit_entries":92,"inlined_entries":92,"inclusive_time":117,"id":"89","highest_child_id":606,"first_entry_time":23665,"exclusive_time":117,"entries":249,"allocations":[{"id":"9","count":157}]},{"jit_entries":249,"inlined_entries":92,"inclusive_time":19,"id":"36","highest_child_id":607,"first_entry_time":23666,"exclusive_time":19,"entries":249}],"allocations":[{"jit":92,"id":"9","count":249},{"jit":92,"id":"3","count":249},{"jit":92,"id":"10","count":249},{"jit":184,"id":"44","count":498},{"jit":92,"id":"5","count":249},{"jit":92,"id":"45","count":249}]},{"inclusive_time":16579,"id":"136","highest_child_id":628,"first_entry_time":23668,"exclusive_time":622,"entries":249,"callees":[{"inclusive_time":1446,"id":"100","highest_child_id":616,"first_entry_time":23670,"exclusive_time":442,"entries":249,"callees":[{"inclusive_time":990,"id":"101","highest_child_id":615,"first_entry_time":23672,"exclusive_time":361,"entries":249,"callees":[{"inclusive_time":613,"id":"102","highest_child_id":614,"first_entry_time":23674,"exclusive_time":301,"entries":249,"callees":[{"inclusive_time":298,"id":"104","highest_child_id":613,"first_entry_time":23675,"exclusive_time":280,"entries":249,"callees":[{"jit_entries":249,"inclusive_time":18,"id":"36","highest_child_id":613,"first_entry_time":23677,"exclusive_time":18,"entries":249}],"allocations":[{"id":"9","count":249}]},{"jit_entries":249,"inclusive_time":13,"id":"36","highest_child_id":614,"first_entry_time":23678,"exclusive_time":13,"entries":249}],"allocations":[{"id":"9","count":249},{"id":"103","count":249}]},{"jit_entries":249,"inclusive_time":14,"id":"36","highest_child_id":615,"first_entry_time":23679,"exclusive_time":14,"entries":249}],"allocations":[{"id":"9","count":249}]},{"jit_entries":249,"inclusive_time":13,"id":"36","highest_child_id":616,"first_entry_time":23680,"exclusive_time":13,"entries":249}],"allocations":[{"id":"9","count":249},{"id":"27","count":249}]},{"inclusive_time":14481,"id":"137","highest_child_id":627,"first_entry_time":23680,"exclusive_time":986,"entries":249,"callees":[{"jit_entries":105,"inclusive_time":41,"id":"62","highest_child_id":618,"first_entry_time":23682,"exclusive_time":41,"entries":249,"allocations":[{"id":"9","count":144}]},{"jit_entries":243,"inclusive_time":13090,"id":"140","highest_child_id":624,"first_entry_time":23684,"exclusive_time":8182,"entries":249,"deopt_one":243,"callees":[{"jit_entries":5594,"inclusive_time":1002,"id":"107","highest_child_id":620,"first_entry_time":23685,"exclusive_time":1002,"entries":6723,"allocations":[{"id":"9","count":1129}]},{"jit_entries":5382,"inclusive_time":2098,"id":"142","highest_child_id":621,"first_entry_time":23687,"exclusive_time":2098,"entries":6474,"allocations":[{"id":"9","count":1092},{"jit":5382,"id":"143","count":6474}]},{"jit_entries":4801,"inclusive_time":1791,"id":"144","highest_child_id":623,"first_entry_time":23692,"exclusive_time":1528,"entries":5776,"callees":[{"jit_entries":5776,"inlined_entries":4801,"inclusive_time":262,"id":"36","highest_child_id":623,"first_entry_time":23693,"exclusive_time":262,"entries":5776}],"allocations":[{"id":"9","count":975},{"jit":4801,"id":"145","count":5776}]},{"jit_entries":249,"inclusive_time":15,"id":"36","highest_child_id":624,"first_entry_time":23804,"exclusive_time":15,"entries":249}],"allocations":[{"jit":243,"id":"9","count":249}]},{"inclusive_time":330,"id":"146","highest_child_id":626,"first_entry_time":23806,"exclusive_time":312,"entries":249,"callees":[{"jit_entries":249,"inclusive_time":18,"id":"36","highest_child_id":626,"first_entry_time":23807,"exclusive_time":18,"entries":249}],"allocations":[{"id":"9","count":249}]},{"jit_entries":498,"inclusive_time":32,"id":"36","highest_child_id":627,"first_entry_time":23808,"exclusive_time":32,"entries":498}],"allocations":[{"id":"138","count":249},{"id":"139","count":249}]},{"jit_entries":498,"inclusive_time":29,"id":"36","highest_child_id":628,"first_entry_time":23809,"exclusive_time":29,"entries":498}],"allocations":[{"id":"9","count":249}]},{"jit_entries":498,"inclusive_time":29,"id":"36","highest_child_id":629,"first_entry_time":23810,"exclusive_time":29,"entries":498}],"allocations":[{"id":"3","count":249}]},{"jit_entries":73,"inclusive_time":477,"id":"179","highest_child_id":631,"first_entry_time":23855,"exclusive_time":268,"entries":283,"callees":[{"jit_entries":75,"inlined_entries":73,"inclusive_time":208,"id":"181","highest_child_id":631,"first_entry_time":23857,"exclusive_time":208,"entries":283,"allocations":[{"id":"9","count":208}]}]},{"jit_entries":73,"inclusive_time":779,"id":"183","highest_child_id":634,"first_entry_time":23859,"exclusive_time":695,"entries":283,"callees":[{"jit_entries":160,"inlined_entries":73,"inclusive_time":55,"id":"88","highest_child_id":633,"first_entry_time":23861,"exclusive_time":55,"entries":283},{"jit_entries":283,"inlined_entries":73,"inclusive_time":28,"id":"36","highest_child_id":634,"first_entry_time":23862,"exclusive_time":28,"entries":283}],"allocations":[{"jit":73,"id":"15","count":256}]},{"inclusive_time":2,"id":"83","highest_child_id":635,"first_entry_time":61412,"exclusive_time":2,"entries":3,"allocations":[{"id":"9","count":3}]}],"allocations":[{"id":"2","count":913},{"id":"27","count":501}]},{"jit_entries":2,"inclusive_time":1,"id":"179","highest_child_id":637,"first_entry_time":132098,"exclusive_time":0,"entries":2,"callees":[{"jit_entries":2,"inlined_entries":2,"inclusive_time":0,"id":"181","highest_child_id":637,"first_entry_time":132098,"exclusive_time":0,"entries":2}]},{"inclusive_time":88,"id":"190","highest_child_id":652,"first_entry_time":132125,"exclusive_time":25,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":30,"id":"13","highest_child_id":640,"first_entry_time":132133,"exclusive_time":28,"entries":1,"callees":[{"inclusive_time":2,"id":"30","highest_child_id":640,"first_entry_time":132160,"exclusive_time":2,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":31,"id":"191","highest_child_id":652,"first_entry_time":132181,"exclusive_time":9,"entries":1,"callees":[{"inclusive_time":22,"id":"46","highest_child_id":651,"first_entry_time":132186,"exclusive_time":15,"entries":1,"callees":[{"inclusive_time":0,"id":"147","highest_child_id":643,"first_entry_time":132189,"exclusive_time":0,"entries":2},{"inclusive_time":1,"id":"48","highest_child_id":644,"first_entry_time":132192,"exclusive_time":1,"entries":1},{"inclusive_time":0,"id":"49","highest_child_id":645,"first_entry_time":132195,"exclusive_time":0,"entries":1},{"inclusive_time":2,"id":"148","highest_child_id":647,"first_entry_time":132197,"exclusive_time":1,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":647,"first_entry_time":132198,"exclusive_time":0,"entries":1}]},{"inclusive_time":1,"id":"150","highest_child_id":649,"first_entry_time":132201,"exclusive_time":0,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":649,"first_entry_time":132202,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"47","highest_child_id":650,"first_entry_time":132204,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":651,"first_entry_time":132205,"exclusive_time":0,"entries":1}],"allocations":[{"id":"19","count":1}]},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":652,"first_entry_time":132213,"exclusive_time":0,"entries":1}],"allocations":[{"id":"15","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"10","count":3}]},{"inclusive_time":441,"id":"192","highest_child_id":698,"first_entry_time":132228,"exclusive_time":28,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":8,"id":"13","highest_child_id":655,"first_entry_time":132233,"exclusive_time":6,"entries":1,"callees":[{"inclusive_time":1,"id":"30","highest_child_id":655,"first_entry_time":132239,"exclusive_time":1,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":404,"id":"193","highest_child_id":698,"first_entry_time":132265,"exclusive_time":52,"entries":1,"callees":[{"inclusive_time":13,"id":"7","highest_child_id":657,"first_entry_time":132271,"exclusive_time":13,"entries":1},{"inclusive_time":146,"id":"194","highest_child_id":673,"first_entry_time":132301,"exclusive_time":25,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":659,"first_entry_time":132303,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"osr":1,"jit_entries":2,"inclusive_time":78,"id":"13","highest_child_id":665,"first_entry_time":132308,"exclusive_time":15,"entries":1,"deopt_one":1,"callees":[{"jit_entries":1,"inclusive_time":61,"id":"16","highest_child_id":664,"first_entry_time":132314,"exclusive_time":31,"entries":1,"callees":[{"inclusive_time":30,"id":"20","highest_child_id":664,"first_entry_time":132334,"exclusive_time":20,"entries":6,"callees":[{"inclusive_time":9,"id":"42","highest_child_id":664,"first_entry_time":132345,"exclusive_time":8,"entries":4,"callees":[{"inclusive_time":1,"id":"135","highest_child_id":664,"first_entry_time":132347,"exclusive_time":1,"entries":4}],"allocations":[{"id":"17","count":4}]}]}],"allocations":[{"jit":17,"id":"14","count":17},{"jit":4,"id":"17","count":4},{"jit":6,"id":"9","count":6},{"jit":6,"id":"18","count":6},{"jit":3,"id":"19","count":3}]},{"jit_entries":1,"inlined_entries":1,"inclusive_time":1,"id":"30","highest_child_id":665,"first_entry_time":132384,"exclusive_time":1,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":42,"id":"195","highest_child_id":673,"first_entry_time":132405,"exclusive_time":16,"entries":1,"callees":[{"inclusive_time":24,"id":"196","highest_child_id":671,"first_entry_time":132418,"exclusive_time":12,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":668,"first_entry_time":132419,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"osr":1,"jit_entries":2,"inclusive_time":8,"id":"13","highest_child_id":670,"first_entry_time":132422,"exclusive_time":7,"entries":1,"deopt_one":1,"callees":[{"jit_entries":1,"inlined_entries":1,"inclusive_time":1,"id":"30","highest_child_id":670,"first_entry_time":132430,"exclusive_time":1,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":2,"id":"197","highest_child_id":671,"first_entry_time":132440,"exclusive_time":2,"entries":1,"allocations":[{"id":"9","count":1},{"id":"80","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":1,"id":"35","highest_child_id":672,"first_entry_time":132444,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":673,"first_entry_time":132447,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":1,"id":"198","highest_child_id":674,"first_entry_time":132459,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":188,"id":"199","highest_child_id":696,"first_entry_time":132476,"exclusive_time":33,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":676,"first_entry_time":132478,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"jit_entries":1,"inclusive_time":42,"id":"13","highest_child_id":680,"first_entry_time":132482,"exclusive_time":7,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":33,"id":"16","highest_child_id":679,"first_entry_time":132483,"exclusive_time":21,"entries":1,"callees":[{"inclusive_time":12,"id":"20","highest_child_id":679,"first_entry_time":132496,"exclusive_time":12,"entries":6}],"allocations":[{"jit":17,"id":"14","count":17},{"jit":4,"id":"17","count":4},{"jit":6,"id":"9","count":6},{"jit":6,"id":"18","count":6},{"jit":4,"id":"19","count":4}]},{"jit_entries":1,"inlined_entries":1,"inclusive_time":1,"id":"30","highest_child_id":680,"first_entry_time":132522,"exclusive_time":1,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":112,"id":"200","highest_child_id":696,"first_entry_time":132552,"exclusive_time":61,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":1,"id":"66","highest_child_id":682,"first_entry_time":132576,"exclusive_time":1,"entries":2,"allocations":[{"id":"9","count":1}]},{"inclusive_time":28,"id":"201","highest_child_id":695,"first_entry_time":132597,"exclusive_time":10,"entries":1,"callees":[{"inclusive_time":1,"id":"35","highest_child_id":684,"first_entry_time":132604,"exclusive_time":1,"entries":1},{"jit_entries":2,"inclusive_time":0,"id":"36","highest_child_id":685,"first_entry_time":132607,"exclusive_time":0,"entries":2},{"inclusive_time":15,"id":"46","highest_child_id":695,"first_entry_time":132609,"exclusive_time":9,"entries":1,"callees":[{"inclusive_time":0,"id":"147","highest_child_id":687,"first_entry_time":132611,"exclusive_time":0,"entries":2},{"inclusive_time":0,"id":"48","highest_child_id":688,"first_entry_time":132612,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"49","highest_child_id":689,"first_entry_time":132614,"exclusive_time":0,"entries":1},{"inclusive_time":1,"id":"148","highest_child_id":691,"first_entry_time":132615,"exclusive_time":1,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":691,"first_entry_time":132616,"exclusive_time":0,"entries":1}]},{"inclusive_time":1,"id":"150","highest_child_id":693,"first_entry_time":132618,"exclusive_time":0,"entries":1,"callees":[{"inclusive_time":0,"id":"149","highest_child_id":693,"first_entry_time":132619,"exclusive_time":0,"entries":1}]},{"inclusive_time":0,"id":"151","highest_child_id":694,"first_entry_time":132621,"exclusive_time":0,"entries":1},{"inclusive_time":0,"id":"50","highest_child_id":695,"first_entry_time":132622,"exclusive_time":0,"entries":1}],"allocations":[{"id":"19","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"202","count":1}]},{"inclusive_time":21,"id":"203","highest_child_id":696,"first_entry_time":132639,"exclusive_time":21,"entries":1,"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"80","count":1},{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"10","count":3}]},{"inclusive_time":1,"id":"35","highest_child_id":697,"first_entry_time":132666,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":698,"first_entry_time":132669,"exclusive_time":0,"entries":1}]}],"allocations":[{"id":"10","count":3}]},{"inclusive_time":1,"id":"35","highest_child_id":699,"first_entry_time":132671,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":700,"first_entry_time":132673,"exclusive_time":0,"entries":1}],"allocations":[{"id":"25","count":1}]},{"inclusive_time":1,"id":"66","highest_child_id":701,"first_entry_time":132676,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":3239,"id":"204","highest_child_id":819,"first_entry_time":132709,"exclusive_time":120,"entries":1,"callees":[{"inclusive_time":1200,"id":"205","highest_child_id":750,"first_entry_time":132735,"exclusive_time":165,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"11","highest_child_id":704,"first_entry_time":132738,"exclusive_time":0,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"jit_entries":1,"inclusive_time":147,"id":"13","highest_child_id":708,"first_entry_time":132858,"exclusive_time":19,"entries":1,"callees":[{"inclusive_time":124,"id":"16","highest_child_id":707,"first_entry_time":132863,"exclusive_time":84,"entries":1,"callees":[{"inclusive_time":39,"id":"20","highest_child_id":707,"first_entry_time":132915,"exclusive_time":39,"entries":12}],"allocations":[{"id":"14","count":19},{"id":"17","count":4},{"id":"9","count":8},{"id":"18","count":6},{"id":"19","count":4}]},{"jit_entries":1,"inclusive_time":3,"id":"30","highest_child_id":708,"first_entry_time":133000,"exclusive_time":3,"entries":1,"deopt_one":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":887,"id":"206","highest_child_id":750,"first_entry_time":133048,"exclusive_time":149,"entries":1,"callees":[{"inclusive_time":67,"id":"207","highest_child_id":716,"first_entry_time":133068,"exclusive_time":40,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":1,"id":"11","highest_child_id":711,"first_entry_time":133070,"exclusive_time":1,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"jit_entries":1,"inclusive_time":13,"id":"13","highest_child_id":713,"first_entry_time":133077,"exclusive_time":10,"entries":1,"callees":[{"inclusive_time":2,"id":"30","highest_child_id":713,"first_entry_time":133087,"exclusive_time":2,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":12,"id":"208","highest_child_id":716,"first_entry_time":133123,"exclusive_time":9,"entries":1,"callees":[{"inclusive_time":3,"id":"35","highest_child_id":715,"first_entry_time":133129,"exclusive_time":3,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":716,"first_entry_time":133135,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"15","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":476,"id":"209","highest_child_id":735,"first_entry_time":133214,"exclusive_time":273,"entries":1,"callees":[{"inclusive_time":67,"id":"210","highest_child_id":721,"first_entry_time":133248,"exclusive_time":25,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":39,"id":"13","highest_child_id":720,"first_entry_time":133258,"exclusive_time":36,"entries":1,"callees":[{"inclusive_time":3,"id":"30","highest_child_id":720,"first_entry_time":133293,"exclusive_time":3,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":2,"id":"211","highest_child_id":721,"first_entry_time":133312,"exclusive_time":2,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"10","count":3}]},{"inclusive_time":1,"id":"176","highest_child_id":722,"first_entry_time":133321,"exclusive_time":1,"entries":1},{"inclusive_time":66,"id":"212","highest_child_id":726,"first_entry_time":133341,"exclusive_time":21,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":43,"id":"13","highest_child_id":725,"first_entry_time":133347,"exclusive_time":40,"entries":1,"callees":[{"inclusive_time":3,"id":"30","highest_child_id":725,"first_entry_time":133386,"exclusive_time":3,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":2,"id":"213","highest_child_id":726,"first_entry_time":133404,"exclusive_time":2,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"10","count":3}]},{"inclusive_time":2,"id":"213","highest_child_id":727,"first_entry_time":133410,"exclusive_time":2,"entries":2},{"inclusive_time":63,"id":"214","highest_child_id":733,"first_entry_time":133621,"exclusive_time":46,"entries":1,"callees":[{"inclusive_time":15,"id":"216","highest_child_id":731,"first_entry_time":133663,"exclusive_time":11,"entries":1,"callees":[{"inclusive_time":2,"id":"35","highest_child_id":730,"first_entry_time":133672,"exclusive_time":2,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":731,"first_entry_time":133678,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"18","count":1},{"id":"44","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":732,"first_entry_time":133681,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":733,"first_entry_time":133683,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"215","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":734,"first_entry_time":133687,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":735,"first_entry_time":133689,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":2},{"id":"9","count":1}]},{"inclusive_time":185,"id":"217","highest_child_id":746,"first_entry_time":133730,"exclusive_time":128,"entries":1,"callees":[{"inclusive_time":6,"id":"208","highest_child_id":738,"first_entry_time":133736,"exclusive_time":5,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":738,"first_entry_time":133741,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"15","count":1}]},{"inclusive_time":48,"id":"218","highest_child_id":744,"first_entry_time":133862,"exclusive_time":36,"entries":1,"callees":[{"inclusive_time":10,"id":"220","highest_child_id":742,"first_entry_time":133895,"exclusive_time":7,"entries":1,"callees":[{"inclusive_time":2,"id":"35","highest_child_id":741,"first_entry_time":133901,"exclusive_time":2,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":742,"first_entry_time":133905,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":743,"first_entry_time":133908,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":744,"first_entry_time":133910,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"219","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":745,"first_entry_time":133913,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":746,"first_entry_time":133916,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":5,"id":"37","highest_child_id":748,"first_entry_time":133923,"exclusive_time":4,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":748,"first_entry_time":133928,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"38","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":749,"first_entry_time":133931,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":750,"first_entry_time":133934,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":1198,"id":"221","highest_child_id":786,"first_entry_time":133984,"exclusive_time":536,"entries":1,"callees":[{"inclusive_time":639,"id":"75","highest_child_id":779,"first_entry_time":134086,"exclusive_time":69,"entries":3,"callees":[{"jit_entries":3,"inclusive_time":2,"id":"11","highest_child_id":753,"first_entry_time":134092,"exclusive_time":2,"entries":3,"allocations":[{"jit":3,"id":"12","count":3}]},{"jit_entries":3,"inclusive_time":45,"id":"13","highest_child_id":755,"first_entry_time":134100,"exclusive_time":34,"entries":3,"callees":[{"jit_entries":3,"inlined_entries":3,"inclusive_time":10,"id":"30","highest_child_id":755,"first_entry_time":134113,"exclusive_time":10,"entries":3}],"allocations":[{"jit":6,"id":"2","count":6},{"jit":6,"id":"14","count":6},{"jit":3,"id":"9","count":3}]},{"inclusive_time":522,"id":"222","highest_child_id":779,"first_entry_time":134144,"exclusive_time":135,"entries":3,"callees":[{"inclusive_time":207,"id":"226","highest_child_id":769,"first_entry_time":134182,"exclusive_time":59,"entries":1,"callees":[{"inclusive_time":18,"id":"86","highest_child_id":761,"first_entry_time":134190,"exclusive_time":14,"entries":1,"callees":[{"inclusive_time":1,"id":"87","highest_child_id":759,"first_entry_time":134196,"exclusive_time":1,"entries":1},{"inclusive_time":1,"id":"47","highest_child_id":760,"first_entry_time":134201,"exclusive_time":1,"entries":1},{"inclusive_time":1,"id":"50","highest_child_id":761,"first_entry_time":134204,"exclusive_time":1,"entries":1}]},{"jit_entries":1,"inclusive_time":0,"id":"88","highest_child_id":762,"first_entry_time":134212,"exclusive_time":0,"entries":1},{"inclusive_time":128,"id":"227","highest_child_id":769,"first_entry_time":134260,"exclusive_time":45,"entries":1,"callees":[{"inclusive_time":79,"id":"228","highest_child_id":767,"first_entry_time":134299,"exclusive_time":31,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":45,"id":"13","highest_child_id":766,"first_entry_time":134308,"exclusive_time":42,"entries":1,"callees":[{"inclusive_time":3,"id":"30","highest_child_id":766,"first_entry_time":134349,"exclusive_time":3,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":2,"id":"229","highest_child_id":767,"first_entry_time":134375,"exclusive_time":2,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"10","count":3}]},{"inclusive_time":2,"id":"35","highest_child_id":768,"first_entry_time":134383,"exclusive_time":2,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":769,"first_entry_time":134388,"exclusive_time":0,"entries":1}],"allocations":[{"id":"27","count":1},{"id":"9","count":1}]}],"allocations":[{"id":"27","count":1}]},{"inclusive_time":56,"id":"35","highest_child_id":770,"first_entry_time":134393,"exclusive_time":56,"entries":3},{"jit_entries":3,"inclusive_time":1,"id":"36","highest_child_id":771,"first_entry_time":134447,"exclusive_time":1,"entries":3},{"inclusive_time":41,"id":"230","highest_child_id":775,"first_entry_time":134645,"exclusive_time":26,"entries":1,"callees":[{"inclusive_time":14,"id":"231","highest_child_id":775,"first_entry_time":134670,"exclusive_time":10,"entries":1,"callees":[{"inclusive_time":3,"id":"35","highest_child_id":774,"first_entry_time":134678,"exclusive_time":3,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":775,"first_entry_time":134684,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]}]},{"inclusive_time":80,"id":"232","highest_child_id":779,"first_entry_time":135084,"exclusive_time":31,"entries":1,"callees":[{"inclusive_time":49,"id":"233","highest_child_id":779,"first_entry_time":135114,"exclusive_time":39,"entries":1,"callees":[{"inclusive_time":9,"id":"234","highest_child_id":779,"first_entry_time":135150,"exclusive_time":8,"entries":2,"callees":[{"inclusive_time":1,"id":"87","highest_child_id":779,"first_entry_time":135154,"exclusive_time":1,"entries":2}]}],"allocations":[{"id":"27","count":2},{"id":"9","count":1}]}]}],"allocations":[{"id":"9","count":3},{"id":"25","count":3},{"id":"223","count":1},{"id":"224","count":1},{"id":"225","count":1}]}],"allocations":[{"id":"9","count":3},{"id":"3","count":3},{"id":"10","count":9}]},{"spesh_entries":1,"inclusive_time":18,"id":"41","highest_child_id":783,"first_entry_time":134453,"exclusive_time":14,"entries":1,"deopt_one":1,"callees":[{"jit_entries":1,"inclusive_time":1,"id":"42","highest_child_id":781,"first_entry_time":134459,"exclusive_time":1,"entries":1},{"inclusive_time":2,"id":"35","highest_child_id":782,"first_entry_time":134465,"exclusive_time":2,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":783,"first_entry_time":134471,"exclusive_time":0,"entries":1}]},{"inclusive_time":1,"id":"235","highest_child_id":784,"first_entry_time":134483,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":1,"id":"35","highest_child_id":785,"first_entry_time":135178,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":786,"first_entry_time":135181,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1}]},{"inclusive_time":720,"id":"236","highest_child_id":819,"first_entry_time":135228,"exclusive_time":64,"entries":1,"callees":[{"inclusive_time":655,"id":"237","highest_child_id":819,"first_entry_time":135292,"exclusive_time":43,"entries":1,"callees":[{"inclusive_time":105,"id":"238","highest_child_id":794,"first_entry_time":135317,"exclusive_time":3,"entries":1,"callees":[{"inclusive_time":102,"id":"23","highest_child_id":794,"first_entry_time":135320,"exclusive_time":10,"entries":1,"callees":[{"inclusive_time":91,"id":"26","highest_child_id":794,"first_entry_time":135329,"exclusive_time":44,"entries":1,"callees":[{"inclusive_time":2,"id":"42","highest_child_id":792,"first_entry_time":135340,"exclusive_time":2,"entries":1},{"inclusive_time":44,"id":"239","highest_child_id":794,"first_entry_time":135376,"exclusive_time":33,"entries":1,"callees":[{"inclusive_time":10,"id":"240","highest_child_id":794,"first_entry_time":135407,"exclusive_time":10,"entries":1}]}],"allocations":[{"id":"2","count":4}]}]}]},{"inclusive_time":506,"id":"241","highest_child_id":819,"first_entry_time":135441,"exclusive_time":49,"entries":1,"callees":[{"inclusive_time":457,"id":"242","highest_child_id":819,"first_entry_time":135490,"exclusive_time":205,"entries":1,"callees":[{"inclusive_time":17,"id":"86","highest_child_id":800,"first_entry_time":135506,"exclusive_time":13,"entries":1,"callees":[{"inclusive_time":1,"id":"87","highest_child_id":798,"first_entry_time":135512,"exclusive_time":1,"entries":1},{"inclusive_time":1,"id":"47","highest_child_id":799,"first_entry_time":135516,"exclusive_time":1,"entries":1},{"inclusive_time":1,"id":"50","highest_child_id":800,"first_entry_time":135520,"exclusive_time":1,"entries":1}]},{"jit_entries":1,"inclusive_time":0,"id":"88","highest_child_id":801,"first_entry_time":135527,"exclusive_time":0,"entries":1},{"inclusive_time":176,"id":"75","highest_child_id":815,"first_entry_time":135686,"exclusive_time":16,"entries":1,"callees":[{"jit_entries":1,"inclusive_time":1,"id":"11","highest_child_id":803,"first_entry_time":135692,"exclusive_time":1,"entries":1,"allocations":[{"jit":1,"id":"12","count":1}]},{"jit_entries":1,"inclusive_time":16,"id":"13","highest_child_id":805,"first_entry_time":135700,"exclusive_time":12,"entries":1,"callees":[{"jit_entries":1,"inlined_entries":1,"inclusive_time":4,"id":"30","highest_child_id":805,"first_entry_time":135712,"exclusive_time":4,"entries":1}],"allocations":[{"jit":2,"id":"2","count":2},{"jit":2,"id":"14","count":2},{"jit":1,"id":"9","count":1}]},{"inclusive_time":141,"id":"222","highest_child_id":815,"first_entry_time":135720,"exclusive_time":54,"entries":1,"callees":[{"inclusive_time":84,"id":"244","highest_child_id":813,"first_entry_time":135769,"exclusive_time":30,"entries":1,"callees":[{"inclusive_time":53,"id":"86","highest_child_id":812,"first_entry_time":135775,"exclusive_time":45,"entries":5,"callees":[{"inclusive_time":2,"id":"87","highest_child_id":809,"first_entry_time":135779,"exclusive_time":2,"entries":5},{"inclusive_time":1,"id":"47","highest_child_id":810,"first_entry_time":135782,"exclusive_time":1,"entries":4},{"inclusive_time":2,"id":"50","highest_child_id":811,"first_entry_time":135785,"exclusive_time":2,"entries":5},{"inclusive_time":0,"id":"245","highest_child_id":812,"first_entry_time":135846,"exclusive_time":0,"entries":1}]},{"jit_entries":5,"inclusive_time":1,"id":"88","highest_child_id":813,"first_entry_time":135791,"exclusive_time":1,"entries":5}],"allocations":[{"id":"27","count":5}]},{"inclusive_time":1,"id":"35","highest_child_id":814,"first_entry_time":135857,"exclusive_time":1,"entries":1},{"jit_entries":1,"inclusive_time":0,"id":"36","highest_child_id":815,"first_entry_time":135861,"exclusive_time":0,"entries":1}],"allocations":[{"id":"9","count":1},{"id":"25","count":1},{"id":"243","count":1}]}],"allocations":[{"id":"9","count":1},{"id":"3","count":1},{"id":"10","count":3}]},{"inclusive_time":57,"id":"246","highest_child_id":819,"first_entry_time":135890,"exclusive_time":32,"entries":1,"callees":[{"inclusive_time":1,"id":"66","highest_child_id":817,"first_entry_time":135900,"exclusive_time":1,"entries":1,"allocations":[{"id":"9","count":1}]},{"inclusive_time":22,"id":"248","highest_child_id":819,"first_entry_time":135924,"exclusive_time":21,"entries":1,"callees":[{"inclusive_time":1,"id":"249","highest_child_id":819,"first_entry_time":135944,"exclusive_time":1,"entries":1}]}],"allocations":[{"id":"27","count":2},{"id":"9","count":1},{"id":"247","count":1}]}],"allocations":[{"id":"27","count":6},{"id":"80","count":1}]}]}],"allocations":[{"id":"10","count":1},{"id":"14","count":1},{"id":"24","count":1}]}]}],"allocations":[{"id":"27","count":1}]}],"allocations":[{"id":"5","count":1}]}],"allocations":[{"id":"2","count":1},{"id":"3","count":1}]}]}},{"total_time":127948,"thread":3,"start_time":49749,"spesh_time":0,"parent":0,"gcs":[{"time":6079,"start_time":49749,"sequence":1,"retained_bytes":0,"responsible":0,"promoted_bytes_unmanaged":434176,"promoted_bytes":192,"gen2_roots":18,"full":0,"cleared_bytes":80}]}]'); + + // grab the "dictionary" from the very first entry + var id_to_things = rawData[0]; + // the rest of the program expects the list to contain callframes, not the dictionary + // so we just shift it off the beginning. + rawData.shift(); + + // Extract some common things out of the raw data. + var nodeIdToName = {}; + var nodeIdToFile = {}; + var nodeIdToLine = {}; + (function () { + function walkCallGraphNode(node) { + if (!nodeIdToName[node.id]) { + var existing_data = id_to_things[node.id.toString()]; + node.name = existing_data.name; + node.line = existing_data.line; + node.file = existing_data.file; + nodeIdToName[node.id] = node.name == "" ? "<anon>" : node.name; + nodeIdToLine[node.id] = node.line < 1 ? "<unknown>" : node.line; + nodeIdToFile[node.id] = node.file == "" ? "<unknown>" : node.file; + } + if (node.callees) + node.callees.map(walkCallGraphNode); + } + rawData.forEach(function (thread) { + if (typeof thread.call_graph != "undefined") + walkCallGraphNode(thread.call_graph); + }); + }()); + + var maxSeqNum = 0; + var gcParticipants = []; + var gcTimings = []; + (function() { + rawData.forEach(function (data, index) { + gcs = data.gcs; + if (gcs.length == 0) + return; + let seq = gcs[gcs.length - 1].sequence; + if (seq > maxSeqNum) + maxSeqNum = seq; + gcs.forEach(function (data) { + if (typeof gcParticipants[data.sequence] == "undefined") + gcParticipants[data.sequence] = []; + if (typeof gcTimings[data.sequence] == "undefined") + gcTimings[data.sequence] = { start: Infinity, end: -Infinity, full: 0 }; + gcParticipants[data.sequence].push(index); + if (data.start_time < gcTimings[data.sequence].start) + gcTimings[data.sequence].start = data.start_time; + if (data.start_time + data.time > gcTimings[data.sequence].end) + gcTimings[data.sequence].end = data.start_time + data.time; + gcTimings[data.sequence].full = data.full; + }); + }); + gcTimings.forEach(function (data) { + data.total = data.end - data.start; + }); + }()); + + + // Register application and add controllers, increase recursion depth for callGraphController + var moarProfApp = angular.module('moarProfApp', ['ui.bootstrap']).config(function($rootScopeProvider) { + $rootScopeProvider.digestTtl(100); + }); + + moarProfApp.controller('NavigationController', function ($scope) { + $scope.Tab = 'Overview'; + }); + + moarProfApp.controller('OverviewController', function ($scope) { + /* It's okay to take only the first thread's data here: + * - the total time of the main thread should be the maximum + * anyway, since all other threads are spawned from it. + * - Spesh time is stashed in the main thread's profile data, + * even though it's actually spent in another thread. + */ + var totalTime = rawData[0].total_time; + var speshTime = rawData[0].spesh_time; + var gcTime = 0; + var gcNursery = 0; + var gcFull = 0; + var gcNurseryTime = 0; + var gcFullTime = 0; + var totalEntries = 0; + var inlineEntries = 0; + var jitEntries = 0; + var speshEntries = 0; + var deoptOnes = 0; + var deoptAlls = 0; + var osrs = 0; + var numThreads = rawData.length; + + var averageParticipants = 0; + gcParticipants.forEach(function (run) { + averageParticipants += run.length; + }); + + averageParticipants = averageParticipants / gcParticipants.length; + gcTimings.map(function (gc) { + gcTime += gc.total; + if (gc.full) { + gcFull++; + gcFullTime += gc.total; + } + else { + gcNursery++; + gcNurseryTime += gc.total; + } + }); + function walkCallGraphNode(node) { + totalEntries += node.entries || 0; + inlineEntries += node.inlined_entries || 0; + speshEntries += node.spesh_entries || 0; + jitEntries += node.jit_entries || 0; + deoptOnes += node.deopt_one || 0; + deoptAlls += node.deopt_all || 0; + osrs += node.osr || 0; + if (node.callees) + node.callees.map(walkCallGraphNode); + } + rawData.forEach(function (thread) { + if (typeof thread.call_graph != "undefined") + walkCallGraphNode(thread.call_graph); + }); + + $scope.NumThreads = numThreads; + + // Time spent + var overheadTime = gcTime; + var executingTime = totalTime - overheadTime; + $scope.TotalTime = +(totalTime / 1000).toFixed(2); + $scope.GCOverheadTime = +(overheadTime / 1000).toFixed(2); + $scope.GCOverheadTimePercent = +(100 * overheadTime / totalTime).toFixed(2); + $scope.ExecutingTime = +(executingTime / 1000).toFixed(2); + $scope.ExecutingTimePercent = +(100 * executingTime / totalTime).toFixed(2); + $scope.GCTime = +(gcTime / 1000).toFixed(2); + $scope.GCTimePercent = +(100 * gcTime / totalTime).toFixed(2); + $scope.SpeshTime = +(speshTime / 1000).toFixed(2); + $scope.SpeshTimePercent = +(100 * speshTime / totalTime).toFixed(2); + + // Routines + var interpEntries = totalEntries - (jitEntries + speshEntries); + $scope.EntriesWithoutInline = totalEntries - inlineEntries; + $scope.EntriesInline = inlineEntries; + $scope.InlinePercent = +(100 * inlineEntries / totalEntries).toFixed(2); + $scope.InterpFrames = interpEntries; + $scope.InterpFramesPercent = +(100 * interpEntries / totalEntries).toFixed(2); + $scope.SpeshFrames = speshEntries; + $scope.SpeshFramesPercent = +(100 * speshEntries / totalEntries).toFixed(2); + $scope.JITFrames = jitEntries; + $scope.JITFramesPercent = +(100 * jitEntries / totalEntries).toFixed(2); + + // Garbage collection + $scope.GCRuns = gcNursery + gcFull; + $scope.FullGCRuns = gcFull; + $scope.NurseryAverage = +((gcNurseryTime / 1000) / gcNursery).toFixed(2); + $scope.FullAverage = +((gcFullTime / 1000) / gcFull).toFixed(2); + $scope.AverageParticipants = averageParticipants.toFixed(2); + + // Dynamic optimization + var optimizedFrames = speshEntries + jitEntries; + $scope.OptimizedFrames = optimizedFrames; + $scope.DeoptOnes = deoptOnes; + $scope.DeoptOnePercent = +(100 * deoptOnes / (optimizedFrames || 1)).toFixed(2); + $scope.DeoptAlls = deoptAlls; + $scope.OSRs = osrs; + }); + + moarProfApp.controller('RoutinesController', function ($scope) { + // Walk call graph to build data. + var idToEntries = {}; + var idToSpeshEntries = {}; + var idToJITEntries = {}; + var idToExclusive = {}; + var idToInclusive = {}; + var idToOSR = {}; + var idRecDepth = {}; + var totalExclusive = 0; + var totalInclusive = rawData[0].call_graph.inclusive_time; + function walkCallGraphNode(node) { + if (!idToEntries[node.id]) { + idToEntries[node.id] = 0; + idToSpeshEntries[node.id] = 0; + idToJITEntries[node.id] = 0; + idToExclusive[node.id] = 0; + idToInclusive[node.id] = 0; + idToOSR[node.id] = false; + idRecDepth[node.id] = 0; + } + idToEntries[node.id] += node.entries || 0; + idToSpeshEntries[node.id] += node.spesh_entries || 0; + idToJITEntries[node.id] += node.jit_entries || 0; + idToExclusive[node.id] += node.exclusive_time || 0; + totalExclusive += node.exclusive_time || 0; + if (node.osr > 0) + idToOSR[node.id] = true; + if (idRecDepth[node.id] == 0) + idToInclusive[node.id] += node.inclusive_time; + if (node.callees) { + idRecDepth[node.id]++; + node.callees.map(walkCallGraphNode); + idRecDepth[node.id]--; + } + } + rawData.forEach(function (thread) { + if (typeof thread.call_graph != "undefined") + walkCallGraphNode(thread.call_graph); + }); + + // Build object list per routine. + var routineList = []; + for (id in idToEntries) { + var speshEntriesPercent = +(100 * idToSpeshEntries[id] / idToEntries[id]).toFixed(2); + var jitEntriesPercent = +(100 * idToJITEntries[id] / idToEntries[id]).toFixed(2); + var interpEntriesPercent = 100 - (speshEntriesPercent + jitEntriesPercent); + var entry = { + Name: nodeIdToName[id], + Line: nodeIdToLine[id], + File: nodeIdToFile[id], + Entries: idToEntries[id], + InterpEntriesPercent: interpEntriesPercent, + SpeshEntriesPercent: speshEntriesPercent, + JITEntriesPercent: jitEntriesPercent, + InclusiveTime: +(idToInclusive[id] / 1000).toFixed(2), + InclusiveTimePercent: +(100 * idToInclusive[id] / totalInclusive).toFixed(2), + ExclusiveTime: +(idToExclusive[id] / 1000).toFixed(2), + ExclusiveTimePercent: +(100 * idToExclusive[id] / totalExclusive).toFixed(2), + OSR: idToOSR[id] + }; + routineList.push(entry); + } + $scope.Routines = routineList; + $scope.predicate = "InclusiveTime"; + $scope.reverse = true; + }); + + moarProfApp.controller('CallGraphController', function ($scope) { + $scope.Current = rawData[0].call_graph; + $scope.total_time = rawData[0].total_time; + $scope.SuchCallers = false; + $scope.RecentCallers = []; + $scope.predicate = "Time"; + $scope.reverse = true; + var all_callers = []; + updateCurrentData(); + + $scope.toCallee = function (callee) { + // Update caller history. + all_callers.push($scope.Current); + $scope.RecentCallers.push($scope.Current); + if ($scope.RecentCallers.length > 5) + $scope.RecentCallers.shift(); + + // Update current node and callees. + $scope.Current = callee; + updateCurrentData(); + }; + + $scope.toCaller = function (caller) { + // Update caller history. + while (all_callers.length > 0) { + var removed = all_callers.pop(); + if ($scope.RecentCallers.length > 0) + $scope.RecentCallers.pop(); + if (removed == caller) + break; + } + if (all_callers.length > $scope.RecentCallers.length) { + var ptr = all_callers.length - $scope.RecentCallers.length; + while (ptr >= 0 && $scope.RecentCallers.length < 5) { + $scope.RecentCallers.unshift(all_callers[ptr]); + ptr--; + } + } + + // Update current node and callees. + $scope.Current = caller; + updateCurrentData(); + } + + /* + * Given a callee, create a unique, repeatable color; + * h/t https://stackoverflow.com/questions/3426404 + */ + $scope.backgroundColor = function (callee) { + var str = callee.$$hashKey + callee.file + callee.name; + for (var i = 0, hash = 0; i < str.length; hash = str.charCodeAt(i++) + ((hash << 5) - hash)); + for (var i = 0, colour = "#"; i < 3; colour += ("00" + ((hash >> i++ * 8) & 0xFF).toString(16)).slice(-2)); + return colour; + } + + function updateCurrentData() { + // Line and file. + var current = $scope.Current; + $scope.Line = current.line; + $scope.File = current.file; + + // Entry statistics. + var interpEntries = current.entries - (current.spesh_entries + current.jit_entries); + var nonInlineEntries = current.entries - current.inlined_entries; + $scope.Entries = nonInlineEntries; + $scope.Percent = (100 * nonInlineEntries / current.entries).toFixed(2); + $scope.InlineEntries = current.inlined_entries; + $scope.InlinePercent = (100 * current.inlined_entries / current.entries).toFixed(2); + $scope.InterpEntries = interpEntries; + $scope.InterpPercent = (100 * interpEntries / current.entries).toFixed(2); + $scope.SpeshEntries = current.spesh_entries; + $scope.SpeshPercent = (100 * current.spesh_entries / current.entries).toFixed(2); + $scope.JITEntries = current.jit_entries; + $scope.JITPercent = (100 * current.jit_entries / current.entries).toFixed(2); + + // Callees. + $scope.Callees = calleesOf(current); + } + + function calleesOf(node) { + if (!node.callees) + return []; + + var totalExclusive = 0.0; + node.callees.map(function (c) { totalExclusive += c.exclusive_time; }); + + return node.callees.map(function (c) { + var speshCallsPercent = +(100 * c.spesh_entries / c.entries).toFixed(2); + var jitCallsPercent = +(100 * c.jit_entries / c.entries).toFixed(2); + var interpCallsPercent = 100 - (speshCallsPercent + jitCallsPercent); + var inlinedPercent = +(100 * c.inlined_entries / c.entries).toFixed(2); + return { + Name: nodeIdToName[c.id], + Line: nodeIdToLine[c.id], + File: nodeIdToFile[c.id], + Calls: c.entries, + Time: +(c.inclusive_time / 1000).toFixed(2), + TimePercent: +(100 * c.inclusive_time / node.inclusive_time).toFixed(2), + InterpCallsPercent: interpCallsPercent, + SpeshCallsPercent: speshCallsPercent, + JITCallsPercent: jitCallsPercent, + InlinedPercent: inlinedPercent, + VeryInline: inlinedPercent >= 95, + SometimesInline: inlinedPercent < 95 && inlinedPercent > 10, + Node: c + }; + }); + } + }); + + moarProfApp.controller('AllocationsController', function ($scope, $uibModal) { + // Traverse all call nodes, counting up the allocations. + var typeIdToName = {}; + var typeIdToAllocations = {}; + var typeIdToAllocationsByType = {}; + var typeIdToRoutineStats = {}; + var maxAllocations = 1; + function walkCallGraphNode(node) { + if (node.allocations) { + node.allocations.map(function (alloc) { + alloc.type = id_to_things[alloc.id]; + if (!typeIdToName[alloc.id]) { + typeIdToName[alloc.id] = alloc.type == "" ? "<anon>" : alloc.type; + typeIdToAllocations[alloc.id] = 0; + typeIdToAllocationsByType[alloc.id] = [0, 0, 0]; + typeIdToRoutineStats[alloc.id] = {}; + } + typeIdToAllocations[alloc.id] += alloc.count; + typeIdToAllocationsByType[alloc.id][0] += alloc.count - (alloc.spesh || 0) - (alloc.jit || 0); + typeIdToAllocationsByType[alloc.id][1] += alloc.spesh || 0; + typeIdToAllocationsByType[alloc.id][2] += alloc.jit || 0; + if (typeIdToAllocations[alloc.id] > maxAllocations) + maxAllocations = typeIdToAllocations[alloc.id]; + if (typeIdToRoutineStats[alloc.id][node.id]) { + typeIdToRoutineStats[alloc.id][node.id]['count'] += alloc.count || 0; + typeIdToRoutineStats[alloc.id][node.id]['spesh'] += alloc.spesh || 0; + typeIdToRoutineStats[alloc.id][node.id]['jit'] += alloc.jit || 0; + } else { + typeIdToRoutineStats[alloc.id][node.id] = { + count: alloc.count || 0, + spesh: alloc.spesh || 0, + jit: alloc.jit || 0 + }; + } + }); + } + if (node.callees) { + node.callees.map(walkCallGraphNode); + } + } + rawData.forEach(function (thread) { + if (typeof thread.call_graph != "undefined") + walkCallGraphNode(thread.call_graph); + }); + + // Build allocation summary. + var allocationSummary = []; + for (id in typeIdToName) { + var maxAllocationByRoutine = 1; + for (var rid in typeIdToRoutineStats[id]) + if (typeIdToRoutineStats[id][rid]['count'] > maxAllocationByRoutine) + maxAllocationByRoutine = typeIdToRoutineStats[id][rid]['count']; + var routineStats = []; + for (var rid in typeIdToRoutineStats[id]) + routineStats.push({ + Name: nodeIdToName[rid], + Line: nodeIdToLine[rid], + File: nodeIdToFile[rid], + Allocations: typeIdToRoutineStats[id][rid]['count'], + AllocationsSpesh: typeIdToRoutineStats[id][rid]['spesh'], + AllocationsJit: typeIdToRoutineStats[id][rid]['jit'], + AllocationsPercent: (100 * typeIdToRoutineStats[id][rid]['count'] / maxAllocationByRoutine), + AllocationsInterpPercent: (100 * (typeIdToRoutineStats[id][rid]['count'] - typeIdToRoutineStats[id][rid]['jit'] - typeIdToRoutineStats[id][rid]['spesh']) / maxAllocationByRoutine), + AllocationsSpeshPercent: (100 * typeIdToRoutineStats[id][rid]['spesh'] / maxAllocationByRoutine), + AllocationsJitPercent: (100 * typeIdToRoutineStats[id][rid]['jit'] / maxAllocationByRoutine) + }); + var entry = { + Name: typeIdToName[id], + Allocations: typeIdToAllocations[id], + AllocationsPercent: +(100 * typeIdToAllocations[id] / maxAllocations).toFixed(2), + AllocationsInterpPercent: +(100 * typeIdToAllocationsByType[id][0] / maxAllocations).toFixed(2), + AllocationsSpeshPercent: +(100 * typeIdToAllocationsByType[id][1] / maxAllocations).toFixed(2), + AllocationsJitPercent: +(100 * typeIdToAllocationsByType[id][2] / maxAllocations).toFixed(2), + RoutineStats: routineStats + }; + allocationSummary.push(entry); + } + $scope.AllocationSummary = allocationSummary; + $scope.predicate = "Allocations"; + $scope.reverse = true; + $scope.routinePredicate = "Allocations"; + $scope.routineReverse = true; + + // Allocating routines handlng. + $scope.modalInstance = null; + $scope.showAllocatingRoutines = function (alloc) { + // Show modal dialog with data. + $scope.CurrentAllocatingRoutine = alloc.Name; + $scope.CurrentAllocatingRoutineStats = alloc.RoutineStats; + $scope.modalInstance = $uibModal.open({ + templateUrl: 'myModalContent.html', + scope: $scope + }); + } + }); + + moarProfApp.controller('GCController', function ($scope) { + // Find longest GC run. + var longestGC = 0; + gcTimings.map(function (timing) { + if (timing.total > longestGC) + longestGC = timing.total; + }); + + // Produce something nice to render. + var run = 0; + $scope.GCs = rawData[0].gcs.map(function (gc) { + var totalBytes = gc.cleared_bytes + gc.retained_bytes + gc.promoted_bytes; + return { + Run: ++run, + StartTime: +(gc.start_time / 1000).toFixed(2), + Time: +(gc.time / 1000).toFixed(2), + Full: (gc.full != 0), + TimePercent: +(100 * gc.time / longestGC).toFixed(2), + RetainedKilobytes: Math.round(gc.retained_bytes / 1024), + PromotedKilobytes: Math.round(gc.promoted_bytes / 1024), + ClearedKilobytes: Math.round(gc.cleared_bytes / 1024), + RetainedPercent: +(100 * gc.retained_bytes / totalBytes).toFixed(2), + PromotedPercent: +(100 * gc.promoted_bytes / totalBytes).toFixed(2), + ClearedPercent: +(100 * gc.cleared_bytes / totalBytes).toFixed(2), + Gen2Roots: 'gen2_roots' in gc ? gc.gen2_roots : 0 + }; + }); + $scope.predicate = 'Run'; + $scope.reverse = false; + }); + + moarProfApp.controller('OSRDeoptController', function ($scope) { + // Walk call graph to build data. + var idToOSR = {}; + var idToDeoptOne = {}; + var idToDeoptAll = {}; + var maxOSR = 1; + var maxDeoptOne = 1; + var maxDeoptAll = 1; + function walkCallGraphNode(node) { + if (!idToOSR[node.id]) { + idToOSR[node.id] = 0; + idToDeoptOne[node.id] = 0; + idToDeoptAll[node.id] = 0; + } + idToOSR[node.id] += node.osr || 0; + idToDeoptOne[node.id] += node.deopt_one || 0; + idToDeoptAll[node.id] += node.deopt_all || 0; + if (idToOSR[node.id] > maxOSR) + maxOSR = idToOSR[node.id]; + if (idToDeoptOne[node.id] > maxDeoptOne) + maxDeoptOne = idToDeoptOne[node.id]; + if (idToDeoptAll[node.id] > maxDeoptAll) + maxDeoptAll = idToDeoptAll[node.id]; + if (node.callees) + node.callees.map(walkCallGraphNode); + } + walkCallGraphNode(rawData[0].call_graph); + + // Build up OSR, deopt one, and deopt all tables. + var osrs = []; + var deoptOnes = []; + var deoptAlls = []; + for (id in idToOSR) { + if (idToOSR[id] > 0) { + osrs.push({ + Name: nodeIdToName[id], + Line: nodeIdToLine[id], + File: nodeIdToFile[id], + Count: idToOSR[id], + Percent: Math.round(100 * idToOSR[id] / maxOSR) + }); + } + if (idToDeoptOne[id] > 0) { + deoptOnes.push({ + Name: nodeIdToName[id], + Line: nodeIdToLine[id], + File: nodeIdToFile[id], + Count: idToDeoptOne[id], + Percent: Math.round(100 * idToDeoptOne[id] / maxDeoptOne) + }); + } + if (idToDeoptAll[id] > 0) { + deoptAlls.push({ + Name: nodeIdToName[id], + Line: nodeIdToLine[id], + File: nodeIdToFile[id], + Count: idToDeoptAll[id], + Percent: Math.round(100 * idToDeoptAll[id] / maxDeoptAll) + }); + } + } + $scope.OSRs = osrs; + $scope.DeoptOnes = deoptOnes; + $scope.DeoptAlls = deoptAlls; + $scope.predicate = 'Count'; + $scope.reverse = true; + }); + </script> + </body> +</html> |