Modeling + marginal effects

Landscape fitness, linear model

## 
## Call:
## lm(formula = landscape_fitness_linked ~ create_network + disperse + 
##     compete + catastrophe + selectfor_d + select + numlink + 
##     cdis1 + var_fitness + max_intial_proportion_links + maxsp, 
##     data = BLS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.28543 -0.05670 -0.00205  0.05304  0.43112 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)
## (Intercept)                       -3.924e-02  1.212e-03 -32.390  < 2e-16
## create_networkNo network creation  8.421e-03  4.957e-04  16.987  < 2e-16
## disperseNo dispersal               1.382e-06  4.957e-04   0.003   0.9978
## competeNo competition              1.080e-01  4.957e-04 217.951  < 2e-16
## catastropheNo catastrophe          1.362e-02  4.957e-04  27.471  < 2e-16
## selectfor_dNo selection            2.565e-03  4.957e-04   5.174 2.30e-07
## selectNo selection                 1.609e-01  4.957e-04 324.511  < 2e-16
## numlink                            7.645e-04  1.397e-04   5.473 4.44e-08
## cdis1                             -1.327e-04  7.160e-05  -1.853   0.0638
## var_fitness                        1.327e-01  2.152e-03  61.679  < 2e-16
## max_intial_proportion_links       -3.361e-04  9.560e-04  -0.352   0.7251
## maxsp                             -1.016e-03  5.006e-05 -20.289  < 2e-16
##                                      
## (Intercept)                       ***
## create_networkNo network creation ***
## disperseNo dispersal                 
## competeNo competition             ***
## catastropheNo catastrophe         ***
## selectfor_dNo selection           ***
## selectNo selection                ***
## numlink                           ***
## cdis1                             .  
## var_fitness                       ***
## max_intial_proportion_links          
## maxsp                             ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0627 on 63988 degrees of freedom
## Multiple R-squared:  0.7147, Adjusted R-squared:  0.7147 
## F-statistic: 1.457e+04 on 11 and 63988 DF,  p-value: < 2.2e-16
(1)
(Intercept) -0.039 ***
(0.001)   
create_networkNo network creation 0.008 ***
(0.000)   
disperseNo dispersal 0.000    
(0.000)   
competeNo competition 0.108 ***
(0.000)   
catastropheNo catastrophe 0.014 ***
(0.000)   
selectfor_dNo selection 0.003 ***
(0.000)   
selectNo selection 0.161 ***
(0.000)   
numlink 0.001 ***
(0.000)   
cdis1 -0.000    
(0.000)   
var_fitness 0.133 ***
(0.002)   
max_intial_proportion_links -0.000    
(0.001)   
maxsp -0.001 ***
(0.000)   
N 64000        
R2 0.715    
logLik 86436.840    
AIC -172847.680    
*** p < 0.001; ** p < 0.01; * p < 0.05.

Landscape fitness, zero-inflated beta model

Histogram of landscape fitness to show zero-inflatedness + constraint within 0-1:

Build model

##  Family: zero_inflated_beta 
##   Links: mu = logit; phi = identity; zi = identity 
## Formula: landscape_fitness_linked ~ create_network + disperse + compete + catastrophe + selectfor_d + select + numlink + cdis1 + var_fitness + max_intial_proportion_links + maxsp 
##    Data: BLS_small (Number of observations: 16000) 
## Samples: 4 chains, each with iter = 4000; warmup = 2000; thin = 1;
##          total post-warmup samples = 8000
## 
## Population-Level Effects: 
##                                 Estimate Est.Error l-95% CI u-95% CI
## Intercept                          -4.32      0.02    -4.36    -4.28
## create_networkNonetworkcreation     0.12      0.01     0.10     0.13
## disperseNodispersal                -0.03      0.01    -0.04    -0.01
## competeNocompetition                1.17      0.01     1.16     1.19
## catastropheNocatastrophe            0.15      0.01     0.14     0.17
## selectfor_dNoselection              0.02      0.01     0.00     0.03
## selectNoselection                   1.99      0.01     1.97     2.00
## numlink                             0.01      0.00     0.00     0.01
## cdis1                              -0.00      0.00    -0.00     0.00
## var_fitness                         1.64      0.03     1.58     1.71
## max_intial_proportion_links        -0.04      0.01    -0.07    -0.01
## maxsp                              -0.01      0.00    -0.01    -0.01
##                                 Eff.Sample Rhat
## Intercept                             7300 1.00
## create_networkNonetworkcreation      10389 1.00
## disperseNodispersal                  10697 1.00
## competeNocompetition                  7039 1.00
## catastropheNocatastrophe              9340 1.00
## selectfor_dNoselection               10794 1.00
## selectNoselection                     5938 1.00
## numlink                              15074 1.00
## cdis1                                10032 1.00
## var_fitness                           8403 1.00
## max_intial_proportion_links          10198 1.00
## maxsp                                13308 1.00
## 
## Family Specific Parameters: 
##     Estimate Est.Error l-95% CI u-95% CI Eff.Sample Rhat
## phi    46.89      0.55    45.81    47.99       6637 1.00
## zi      0.00      0.00     0.00     0.00       9309 1.00
## 
## Samples were drawn using sampling(NUTS). For each parameter, Eff.Sample 
## is a crude measure of effective sample size, and Rhat is the potential 
## scale reduction factor on split chains (at convergence, Rhat = 1).

LS0tCnRpdGxlOiAiQW5hbHlzaXMiCmF1dGhvcjogIlN0ZXZlbiBMLiBQZWNrIGFuZCBBbmRyZXcgSGVpc3MiCmRhdGU6ICJMYXN0IHJ1bjogYHIgZm9ybWF0KFN5cy50aW1lKCksICclQiAlZSwgJVknKWAiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIGNvZGVfZm9sZGluZzogaGlkZQplZGl0b3Jfb3B0aW9uczogCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUKLS0tCgpgYGB7ciBsb2FkLWxpYnJhcmllcy1kYXRhLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShicm1zKQpsaWJyYXJ5KG1vZGVscikKbGlicmFyeShicm9vbSkKbGlicmFyeShodXh0YWJsZSkKbGlicmFyeShzY2FsZXMpCmxpYnJhcnkoaGVyZSkKCkNIQUlOUyA8LSA0CklURVIgPC0gNDAwMApXQVJNVVAgPC0gMjAwMApCQVlFU19TRUVEIDwtIDEyMzQKb3B0aW9ucyhtYy5jb3JlcyA9IHBhcmFsbGVsOjpkZXRlY3RDb3JlcygpKQoKY29uc3RyYWludHMgPC0gcmVhZF9yZHMoaGVyZSgiZGF0YSIsICJkZXJpdmVkX2RhdGEiLCAiY29uc3RyYWludHMucmRzIikpIAoKY29uc3RyYWludF9sZXZlbHMgPC0gY29uc3RyYWludHMgJT4lIAogIG11dGF0ZShjb25zdHJhaW50X2NsZWFuID0gZmN0X2lub3JkZXIoY29uc3RyYWludF9jbGVhbikpICU+JSAKICBtdXRhdGUobGV2ZWxzID0gbWFwKGxldmVsc19jbGVhbiwgbmFtZXMpKSAlPiUgCiAgdW5uZXN0KGxldmVscykgJT4lIAogIG11dGF0ZShsZXZlbHMgPSBmY3RfaW5vcmRlcihsZXZlbHMpKQoKIyBUT0RPOiBTd2l0Y2ggYmFjayB0byBmdWxsIEJMUy5yZHMgYW5kIEJITC5yZHMKQkhMIDwtIHJlYWRfcmRzKGhlcmUoImRhdGEiLCAiZGVyaXZlZF9kYXRhIiwgIkJITF9zbWFsbC5yZHMiKSkKYmhsX2xvbmcgPC0gQkhMICU+JSAKICBnYXRoZXIoY29uc3RyYWludCwgdmFsdWUsIG9uZV9vZihjb25zdHJhaW50cyRjb25zdHJhaW50KSkgJT4lIAogIGxlZnRfam9pbihjb25zdHJhaW50cywgYnkgPSAiY29uc3RyYWludCIpICU+JSAKICBtdXRhdGUodmFsdWUgPSBmY3RfcmVsZXZlbCh2YWx1ZSwgbGV2ZWxzKGNvbnN0cmFpbnRfbGV2ZWxzJGxldmVscykpLAogICAgICAgICBjb25zdHJhaW50X2NsZWFuID0gZmN0X3JlbGV2ZWwoY29uc3RyYWludF9jbGVhbiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMoY29uc3RyYWludF9sZXZlbHMkY29uc3RyYWludF9jbGVhbikpKQoKQkxTIDwtIHJlYWRfcmRzKGhlcmUoImRhdGEiLCAiZGVyaXZlZF9kYXRhIiwgIkJMU19zbWFsbC5yZHMiKSkKYmxzX2xvbmcgPC0gQkxTICU+JSAKICBnYXRoZXIoY29uc3RyYWludCwgdmFsdWUsIG9uZV9vZihjb25zdHJhaW50cyRjb25zdHJhaW50KSkgJT4lIAogIGxlZnRfam9pbihjb25zdHJhaW50cywgYnkgPSAiY29uc3RyYWludCIpICU+JSAKICBtdXRhdGUodmFsdWUgPSBmY3RfcmVsZXZlbCh2YWx1ZSwgbGV2ZWxzKGNvbnN0cmFpbnRfbGV2ZWxzJGxldmVscykpLAogICAgICAgICBjb25zdHJhaW50X2NsZWFuID0gZmN0X3JlbGV2ZWwoY29uc3RyYWludF9jbGVhbiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMoY29uc3RyYWludF9sZXZlbHMkY29uc3RyYWludF9jbGVhbikpKQpgYGAKCgojIFNpbmdsZSBjb25kaXRpb25zLCBubyBuZXN0ZWQgaW50ZXJhY3Rpb25zCgojIyBMYW5kc2NhcGUgZml0bmVzcwoKIyMjIEhpZ2gtbG93CgpgYGB7ciBsYW5kc2NhcGUtZml0bmVzcy1saW5rZWQtYmhsLXNpbmdsZSwgZmlnLndpZHRoPTgsIGZpZy5oZWlnaHQ9NC41fQpnZ3Bsb3QoYmhsX2xvbmcsIGFlcyh4ID0gdmFsdWUsIHkgPSBhdmdfZXZlbm5lc3NfdCwgZmlsbCA9IHJlcHApKSArCiAgZ2VvbV92aW9saW4oc2l6ZSA9IDAuMjUsIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjc1KSkgKwogIHN0YXRfc3VtbWFyeShnZW9tID0gInBvaW50IiwgZnVuLnkgPSAibWVhbiIsIAogICAgICAgICAgICAgICBhZXMoZ3JvdXAgPSByZXBwKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNzUpLAogICAgICAgICAgICAgICBzaXplID0gMiwgcGNoID0gMjEsIGZpbGwgPSAiYmxhY2siLCBjb2xvciA9ICJ3aGl0ZSIpICsKICAjIHNjYWxlX3lfcmV2ZXJzZShicmVha3MgPSBzZXEoMCwgMC40LCAwLjIpKSArCiAgIyBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMoMCwgMC41KSkgKwogIHNjYWxlX2ZpbGxfdmlyaWRpc19kKG9wdGlvbiA9ICJwbGFzbWEiLCBiZWdpbiA9IDAuMSwgZW5kID0gMC45KSArCiAgbGFicyh4ID0gTlVMTCwgeSA9ICJMYW5kc2NhcGUgZml0bmVzcywgbGlua2VkIiwgZmlsbCA9IE5VTEwsIAogICAgICAgY2FwdGlvbiA9ICJQb2ludCA9IG1lYW4gdmFsdWUiKSArCiAgZmFjZXRfd3JhcCh+IGNvbnN0cmFpbnRfY2xlYW4sIHNjYWxlcyA9ICJmcmVlX3giKSArCiAgdGhlbWVfYncoKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInRvcCIsCiAgICAgICAgbGVnZW5kLmtleS5zaXplID0gdW5pdCgwLjY1LCAibGluZXMiKSkKYGBgCgojIyMgTGF0aW4gc3F1YXJlcwoKYGBge3IgbGFuZHNjYXBlLWZpdG5lc3MtbGlua2VkLWJscy1zaW5nbGUsIGZpZy53aWR0aD04LCBmaWcuaGVpZ2h0PTR9CmdncGxvdChibHNfbG9uZywgCiAgICAgICBhZXMoeCA9IHZhbHVlLCB5ID0gbGFuZHNjYXBlX2ZpdG5lc3NfbGlua2VkLCBmaWxsID0gY29uc3RyYWludF9jbGVhbikpICsKICBnZW9tX3Zpb2xpbihzaXplID0gMC4yNSkgKwogIHN0YXRfc3VtbWFyeShnZW9tID0gInBvaW50IiwgZnVuLnkgPSAibWVhbiIsIAogICAgICAgICAgICAgICBzaXplID0gMiwgcGNoID0gMjEsIGZpbGwgPSAiYmxhY2siLCBjb2xvciA9ICJ3aGl0ZSIpICsKICBzY2FsZV95X3JldmVyc2UoYnJlYWtzID0gc2VxKDAsIDAuNCwgMC4yKSkgKwogIGNvb3JkX2NhcnRlc2lhbih5bGltID0gYygwLCAwLjUpKSArCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Qob3B0aW9uID0gInBsYXNtYSIsIGJlZ2luID0gMC4xLCBlbmQgPSAwLjkpICsKICBndWlkZXMoZmlsbCA9IEZBTFNFKSArCiAgbGFicyh4ID0gTlVMTCwgeSA9ICJMYW5kc2NhcGUgZml0bmVzcywgbGlua2VkIiwKICAgICAgIGNhcHRpb24gPSAiUG9pbnQgPSBtZWFuIHZhbHVlIikgKwogIGZhY2V0X3dyYXAofiBjb25zdHJhaW50X2NsZWFuLCBzY2FsZXMgPSAiZnJlZV94IikgKwogIHRoZW1lX2J3KCkKYGBgCgoKIyBOZXN0ZWQgaW50ZXJhY3Rpb25zCgojIyBMYW5kc2NhcGUgZml0bmVzcywgbGlua2VkCgojIyMgSGlnaC1sb3cKCmBgYHtyIGxhbmRzY2FwZS1maXRuZXNzLWxpbmtlZC1iaGwsIGZpZy53aWR0aD0xMCwgZmlnLmhlaWdodD03LjV9CmdncGxvdChCSEwsIGFlcyh4ID0gY29tcGV0ZSwgeSA9IGxhbmRzY2FwZV9maXRuZXNzX2xpbmtlZCkpICsKICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IHJlcHApLCBzaXplID0gMC4xLCB3aWR0aCA9IDEsCiAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDEpKSArCiAgc3RhdF9zdW1tYXJ5KGFlcyhncm91cCA9IHJlcHApLCBnZW9tID0gInBvaW50IiwgZnVuLnkgPSAibWVhbiIsIAogICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMSksCiAgICAgICAgICAgICAgIHNpemUgPSAyLCBwY2ggPSAyMSwgZmlsbCA9ICJibGFjayIsIGNvbG9yID0gIndoaXRlIikgKwogIHNjYWxlX3lfcmV2ZXJzZShicmVha3MgPSBjKDAsIDAuMiwgMC40KSkgKwogIGNvb3JkX2NhcnRlc2lhbih5bGltID0gYygwLCAwLjUpKSArCiAgbGFicyh4ID0gTlVMTCwgeSA9ICJMYW5kc2NhcGUgZml0bmVzcywgbGlua2VkIiwgCiAgICAgICBmaWxsID0gTlVMTCwgY2FwdGlvbiA9ICJQb2ludCA9IG1lYW4gdmFsdWUiKSArCiAgZmFjZXRfZ3JpZChzZWxlY3Rmb3JfZCArIGNyZWF0ZV9uZXR3b3JrIH4gZGlzcGVyc2UgKyBjYXRhc3Ryb3BoZSkgKwogIHRoZW1lX2J3KCkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiLAogICAgICAgIGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMC42NSwgImxpbmVzIikpCmBgYAoKIyMjIExhdGluIHNxdWFyZXMKCmBgYHtyIGxhbmRzY2FwZS1maXRuZXNzLWxpbmtlZC1ibHMsIGZpZy53aWR0aD0xMCwgZmlnLmhlaWdodD03fQpnZ3Bsb3QoQkxTLCBhZXMoeCA9IGNvbXBldGUsIHkgPSBsYW5kc2NhcGVfZml0bmVzc19saW5rZWQpKSArCiAgZ2VvbV92aW9saW4oZmlsbCA9ICIjRkU3RjJEIiwgc2l6ZSA9IDAuMjUpICsKICBzdGF0X3N1bW1hcnkoZ2VvbSA9ICJwb2ludCIsIGZ1bi55ID0gIm1lYW4iLCAKICAgICAgICAgICAgICAgc2l6ZSA9IDIsIHBjaCA9IDIxLCBmaWxsID0gImJsYWNrIiwgY29sb3IgPSAid2hpdGUiKSArCiAgc2NhbGVfeV9yZXZlcnNlKGJyZWFrcyA9IGMoMCwgMC4yLCAwLjQpKSArCiAgY29vcmRfY2FydGVzaWFuKHlsaW0gPSBjKDAsIDAuNSkpICsKICBsYWJzKHggPSBOVUxMLCB5ID0gIkxhbmRzY2FwZSBmaXRuZXNzLCBsaW5rZWQiLAogICAgICAgY2FwdGlvbiA9ICJQb2ludCA9IG1lYW4gdmFsdWUiKSArCiAgZmFjZXRfZ3JpZChzZWxlY3Rmb3JfZCArIGNyZWF0ZV9uZXR3b3JrIH4gZGlzcGVyc2UgKyBjYXRhc3Ryb3BoZSkgKwogIHRoZW1lX2J3KCkKYGBgCgoKIyBNb2RlbGluZyArIG1hcmdpbmFsIGVmZmVjdHMKCiMjIExhbmRzY2FwZSBmaXRuZXNzLCBsaW5lYXIgbW9kZWwKCmBgYHtyIG1vZGVsLWxhbmRzY2FwZS1maXRuZXNzfQptb2RlbDEgPC0gbG0obGFuZHNjYXBlX2ZpdG5lc3NfbGlua2VkIH4gY3JlYXRlX25ldHdvcmsgKyBkaXNwZXJzZSArIGNvbXBldGUgKyAKICAgICAgICAgICAgICAgY2F0YXN0cm9waGUgKyBzZWxlY3Rmb3JfZCArIHNlbGVjdCArIG51bWxpbmsgKyBjZGlzMSArIAogICAgICAgICAgICAgICB2YXJfZml0bmVzcyArIG1heF9pbnRpYWxfcHJvcG9ydGlvbl9saW5rcyArIG1heHNwLAogICAgICAgICAgICAgZGF0YSA9IEJMUykKc3VtbWFyeShtb2RlbDEpCmh1eHJlZyhtb2RlbDEpCmBgYAoKYGBge3IgbWFyZ2luYWwtZWZmZWN0cy1sYW5kc2NhcGUtZml0bmVzc30KdHlwaWNhbF92YWx1ZXMgPC0gQkxTICU+JSAKICBzdW1tYXJpemVfYWxsKHR5cGljYWwpICU+JSAKICBtdXRhdGUoaW5kZXggPSAxKQoKcHJlZGljdGlvbnMxIDwtIGNyb3NzaW5nKG51bWxpbmsgPSAwOjI1LCBjcmVhdGVfbmV0d29yayA9IGxldmVscyhCTFMkY3JlYXRlX25ldHdvcmspKSAlPiUgCiAgbXV0YXRlKGluZGV4ID0gMSkgJT4lCiAgbGVmdF9qb2luKHNlbGVjdCh0eXBpY2FsX3ZhbHVlcywgLW51bWxpbmssIC1jcmVhdGVfbmV0d29yayksIGJ5ID0gImluZGV4IikgJT4lCiAgc2VsZWN0KC1pbmRleCkgJT4lCiAgYXVnbWVudChtb2RlbDEsIG5ld2RhdGEgPSAuKSAlPiUgCiAgbXV0YXRlKHByZWQgPSAuZml0dGVkLAogICAgICAgICBwcmVkLmxvd2VyID0gcHJlZCArIChxbm9ybSgwLjAyNSkgKiAuc2UuZml0KSwKICAgICAgICAgcHJlZC51cHBlciA9IHByZWQgKyAocW5vcm0oMC45NzUpICogLnNlLmZpdCkpCgpnZ3Bsb3QocHJlZGljdGlvbnMxLCBhZXMoeCA9IG51bWxpbmssIHkgPSBwcmVkLCBjb2xvciA9IGNyZWF0ZV9uZXR3b3JrKSkgKwogIGdlb21fcmliYm9uKGFlcyh5bWluID0gcHJlZC5sb3dlciwgeW1heCA9IHByZWQudXBwZXIsIGZpbGwgPSBjcmVhdGVfbmV0d29yayksCiAgICAgICAgICAgICAgYWxwaGEgPSAwLjMsIGNvbG9yID0gTkEpICsKICBnZW9tX2xpbmUoc2l6ZSA9IDEuNSkgKyAKICBzY2FsZV95X3JldmVyc2UobGFiZWxzID0gcGVyY2VudCkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZChvcHRpb24gPSAicGxhc21hIiwgZW5kID0gMC44KSArCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Qob3B0aW9uID0gInBsYXNtYSIsIGVuZCA9IDAuOCkgKwogIGxhYnMoeSA9ICJQcmVkaWN0ZWQgbGFuZHNjYXBlIGZpdG5lc3MiLCB4ID0gIk51bWJlciBvZiBsaW5rcyIsIGNvbG9yID0gTlVMTCkgKyAKICBndWlkZXMoZmlsbCA9IEZBTFNFKSArCiAgdGhlbWVfYncoKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gImJvdHRvbSIpCmBgYAoKIyMgTGFuZHNjYXBlIGZpdG5lc3MsIHplcm8taW5mbGF0ZWQgYmV0YSBtb2RlbAoKSGlzdG9ncmFtIG9mIGxhbmRzY2FwZSBmaXRuZXNzIHRvIHNob3cgemVyby1pbmZsYXRlZG5lc3MgKyBjb25zdHJhaW50IHdpdGhpbiAwLTE6CgpgYGB7ciBmaXRuZXNzLWhpc3R9CmdncGxvdChCTFMsIGFlcyh4ID0gbGFuZHNjYXBlX2ZpdG5lc3NfbGlua2VkKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbnMgPSAxMDAsIGNvbG9yID0gIndoaXRlIikgKwogIHNjYWxlX3hfY29udGludW91cyhsYWJlbHMgPSBwZXJjZW50KSArCiAgdGhlbWVfYncoKQpgYGAKCkJ1aWxkIG1vZGVsCgpgYGB7cn0KbW9kZWxfemluYiA8LSByZWFkUkRTKGhlcmUoImRhdGEiLCAiZGVyaXZlZF9kYXRhIiwgIm1vZGVsX3ppbmJfdGVzdC5yZHMiKSkKCnN1bW1hcnkobW9kZWxfemluYikKCnBsb3QobWFyZ2luYWxfZWZmZWN0cyhtb2RlbF96aW5iKSkKYGBgCg==