Details

Time bar (total: 20.8s)

analyze45.0ms (0.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%14%86%0
0%14%86%1
0%14%86%2
0%14%86%3
0%14%86%4
0%14%86%5
0%14%86%6
8.1%5.9%86%7
10.3%3.7%86%8
12.6%1.5%86%9
13.9%0.1%86%10
14%0%86%11
14%0%86%12
14%0%86%13
14%0%86%14
Compiler

Compiled 63 to 34 computations (46% saved)

sample36.0ms (0.2%)

Algorithm
intervals
Results
20.0ms256×body128valid
6.0ms256×pre128true
Compiler

Compiled 116 to 64 computations (44.8% saved)

simplify198.0ms (1%)

Algorithm
egg-herbie
Counts
1 → 1
Iterations

Useful iterations: 0 (36.0ms)

IterNodesCost
0539579

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112

Merged error: 54.8b

Counts
2 → 1
Compiler

Compiled 106 to 54 computations (49.1% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))
0.1b
(*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i))))
34.4b
(/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1))
47.1b
(/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))))

rewrite164.0ms (0.8%)

Algorithm
rewrite-expression-head
Rules
86×times-frac_binary64_2442
66×flip3-+_binary64_2439 flip-+_binary64_2410 associate-/r/_binary64_2384
61×add-exp-log_binary64_2471 add-cbrt-cube_binary64_2469
46×add-sqr-sqrt_binary64_2457
44×*-un-lft-identity_binary64_2436 frac-times_binary64_2446
34×associate-*r/_binary64_2380
30×add-cube-cbrt_binary64_2468
28×difference-of-squares_binary64_2405
22×prod-exp_binary64_2482 cbrt-unprod_binary64_2466 associate-*l/_binary64_2381
19×cbrt-undiv_binary64_2467 div-exp_binary64_2484
16×pow1_binary64_2494
14×associate-/l*_binary64_2383 difference-of-sqr-1_binary64_2406
div-inv_binary64_2433 associate-/l/_binary64_2385
associate-/r*_binary64_2382
associate-*r*_binary64_2378
pow-prod-down_binary64_2504 add-log-exp_binary64_2472 associate-*l*_binary64_2379
swap-sqr_binary64_2403
distribute-rgt-in_binary64_2388 *-commutative_binary64_2369 clear-num_binary64_2435 frac-2neg_binary64_2447 distribute-lft-in_binary64_2387
pow2_binary64_2514 flip3--_binary64_2440 unswap-sqr_binary64_2404 pow-prod-up_binary64_2503 pow-plus_binary64_2496 flip--_binary64_2411 pow-sqr_binary64_2409
Counts
4 → 228
Calls

4 calls:

52.0ms
(/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1))
28.0ms
(/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))))
15.0ms
(*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i))))
14.0ms
(*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))

series3.6s (17.3%)

Counts
4 → 12
Calls

4 calls:

2.9s
(/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1))
395.0ms
(/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))))
205.0ms
(*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i))))
94.0ms
(*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))

simplify161.0ms (0.8%)

Algorithm
egg-herbie
Counts
240 → 240
Iterations

Useful iterations: 0 (23.0ms)

IterNodesCost
0522818186

prune651.0ms (3.1%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2337240
Fresh000
Picked101
Done000
Total2347241

Merged error: 32.0b

Counts
241 → 7
Compiler

Compiled 17656 to 6635 computations (62.4% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1))
0.1b
(*.f64 (/.f64 (/.f64 (*.f64 i (+.f64 i (+.f64 alpha beta))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
32.5b
(/.f64 (*.f64 i (+.f64 i (+.f64 alpha beta))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))
32.9b
(/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

rewrite282.0ms (1.4%)

Algorithm
rewrite-expression-head
Rules
414×times-frac_binary64_2442
314×add-sqr-sqrt_binary64_2457
280×*-un-lft-identity_binary64_2436
169×add-cube-cbrt_binary64_2468
111×associate-*r*_binary64_2378
70×add-exp-log_binary64_2471 add-cbrt-cube_binary64_2469
62×difference-of-squares_binary64_2405
48×associate-/r/_binary64_2384
42×associate-*l*_binary64_2379
33×cbrt-undiv_binary64_2467 div-exp_binary64_2484
31×distribute-lft-out--_binary64_2390 difference-of-sqr-1_binary64_2406
24×flip3-+_binary64_2439 flip-+_binary64_2410 div-inv_binary64_2433
19×associate-/l*_binary64_2383
16×prod-exp_binary64_2482 cbrt-unprod_binary64_2466
13×associate-/r*_binary64_2382
distribute-lft-out_binary64_2389
unswap-sqr_binary64_2404 pow1_binary64_2494
associate-/l/_binary64_2385
add-log-exp_binary64_2472
associate-*r/_binary64_2380 clear-num_binary64_2435 frac-2neg_binary64_2447
flip3--_binary64_2440 flip--_binary64_2411
*-commutative_binary64_2369 pow-prod-down_binary64_2504 associate-*l/_binary64_2381 frac-times_binary64_2446
Counts
4 → 395
Calls

4 calls:

128.0ms
(*.f64 (/.f64 (/.f64 (*.f64 i (+.f64 i (+.f64 alpha beta))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
24.0ms
(/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1))
14.0ms
(/.f64 (*.f64 i (+.f64 i (+.f64 alpha beta))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))
12.0ms
(/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

series3.9s (18.7%)

Counts
4 → 12
Calls

4 calls:

3.2s
(*.f64 (/.f64 (/.f64 (*.f64 i (+.f64 i (+.f64 alpha beta))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
383.0ms
(/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1))
218.0ms
(/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))
126.0ms
(/.f64 (*.f64 i (+.f64 i (+.f64 alpha beta))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

simplify240.0ms (1.2%)

Algorithm
egg-herbie
Counts
407 → 407
Iterations

Useful iterations: 0 (28.0ms)

IterNodesCost
0512630002

prune1.5s (7%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New4025407
Fresh426
Picked101
Done000
Total4077414

Merged error: 31.9b

Counts
414 → 7
Compiler

Compiled 32079 to 12988 computations (59.5% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))
0.0b
(*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2))))
0.1b
(*.f64 (/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
32.9b
(/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

rewrite195.0ms (0.9%)

Algorithm
rewrite-expression-head
Rules
215×times-frac_binary64_2442
181×*-un-lft-identity_binary64_2436
173×add-sqr-sqrt_binary64_2457
132×associate-*r*_binary64_2378
99×add-cube-cbrt_binary64_2468
67×add-exp-log_binary64_2471 add-cbrt-cube_binary64_2469
30×difference-of-squares_binary64_2405
27×cbrt-undiv_binary64_2467 div-exp_binary64_2484
24×associate-/r/_binary64_2384
22×distribute-lft-out_binary64_2389
20×prod-exp_binary64_2482 cbrt-unprod_binary64_2466
15×distribute-lft-out--_binary64_2390 difference-of-sqr-1_binary64_2406
13×flip3-+_binary64_2439 flip-+_binary64_2410 associate-*l*_binary64_2379
12×div-inv_binary64_2433
associate-/l*_binary64_2383 pow1_binary64_2494
associate-/r*_binary64_2382
unswap-sqr_binary64_2404
add-log-exp_binary64_2472 associate-/l/_binary64_2385
*-commutative_binary64_2369 pow-prod-down_binary64_2504 associate-*r/_binary64_2380 clear-num_binary64_2435 frac-2neg_binary64_2447
flip3--_binary64_2440 associate-*l/_binary64_2381 frac-times_binary64_2446 flip--_binary64_2411
Counts
4 → 270
Calls

4 calls:

85.0ms
(*.f64 (/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
18.0ms
(*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2))))
13.0ms
(/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))
12.0ms
(/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

series3.5s (17%)

Counts
4 → 12
Calls

4 calls:

3.1s
(*.f64 (/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
206.0ms
(/.f64 (+.f64 (*.f64 alpha beta) (*.f64 i (+.f64 i (+.f64 alpha beta)))) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))
111.0ms
(*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2))))
84.0ms
(/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

simplify152.0ms (0.7%)

Algorithm
egg-herbie
Counts
282 → 282
Iterations

Useful iterations: 0 (22.0ms)

IterNodesCost
0506617126

prune875.0ms (4.2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2802282
Fresh246
Picked011
Done000
Total2827289

Merged error: 1.5b

Counts
289 → 7
Compiler

Compiled 20983 to 8720 computations (58.4% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1))
0.0b
(*.f64 (/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (+.f64 (*.f64 alpha 1/4) (+.f64 (*.f64 i 1/2) (*.f64 beta 1/4))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
0.0b
(/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))
0.0b
(*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2))))

rewrite142.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
89×*-un-lft-identity_binary64_2436
61×add-sqr-sqrt_binary64_2457 times-frac_binary64_2442
52×add-exp-log_binary64_2471 add-cbrt-cube_binary64_2469
48×associate-*r*_binary64_2378
39×add-cube-cbrt_binary64_2468
24×distribute-lft-out_binary64_2389
18×cbrt-undiv_binary64_2467 div-exp_binary64_2484
16×prod-exp_binary64_2482 cbrt-unprod_binary64_2466
13×associate-*l*_binary64_2379
10×associate-/r/_binary64_2384
pow1_binary64_2494
associate-/r*_binary64_2382
associate-/l*_binary64_2383 difference-of-squares_binary64_2405
flip3-+_binary64_2439 flip-+_binary64_2410 div-inv_binary64_2433
add-log-exp_binary64_2472 unswap-sqr_binary64_2404
distribute-lft-out--_binary64_2390 associate-*r/_binary64_2380 difference-of-sqr-1_binary64_2406 associate-/l/_binary64_2385
*-commutative_binary64_2369 pow-prod-down_binary64_2504 clear-num_binary64_2435 frac-2neg_binary64_2447
flip3--_binary64_2440 associate-*l/_binary64_2381 frac-times_binary64_2446 flip--_binary64_2411
Counts
4 → 174
Calls

4 calls:

54.0ms
(*.f64 (/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (+.f64 (*.f64 alpha 1/4) (+.f64 (*.f64 i 1/2) (*.f64 beta 1/4))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
24.0ms
(/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1))
18.0ms
(*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2))))
13.0ms
(/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

series868.0ms (4.2%)

Counts
4 → 12
Calls

4 calls:

437.0ms
(*.f64 (/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)) (/.f64 (+.f64 (*.f64 alpha 1/4) (+.f64 (*.f64 i 1/2) (*.f64 beta 1/4))) (-.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1)))
221.0ms
(/.f64 (*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))) (+.f64 (+.f64 (+.f64 alpha beta) (*.f64 i 2)) 1))
123.0ms
(*.f64 i (/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2))))
86.0ms
(/.f64 (+.f64 i (+.f64 alpha beta)) (+.f64 (+.f64 alpha beta) (*.f64 i 2)))

simplify133.0ms (0.6%)

Algorithm
egg-herbie
Counts
186 → 186
Iterations

Useful iterations: 0 (68.0ms)

IterNodesCost
049507764
149507764

prune512.0ms (2.5%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1824186
Fresh055
Picked101
Done011
Total18310193

Merged error: 1.5b

Counts
193 → 10
Compiler

Compiled 10424 to 5683 computations (45.5% saved)

regimes829.0ms (4%)

Compiler

Compiled 14632 to 7725 computations (47.2% saved)

bsearch49.0ms (0.2%)

Steps
ItersRangePoint
9
1.4860734311042902e+124
7.383666702815752e+131
4.235675601254117e+130
Compiler

Compiled 1 to 3 computations (-200% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (1.0ms)

IterNodesCost
060158
160158

end0.0ms (0%)

sample2.7s (13%)

Algorithm
intervals
Results
639.0ms8000×body128valid
192.0ms8000×pre128true
Compiler

Compiled 3759 to 1988 computations (47.1% saved)

Profiling

Loading profile data...