Load packages

library(effects)    # for effect plots
library(car)        # for Anova()
library(MASS)       # for stepAIC

Load the data

data(Arrests, package = "carData")
Arrests$year <- as.factor(Arrests$year)

all main effects

arrests.mod1 <- glm(released ~ ., family=binomial, data=Arrests)
Anova(arrests.mod1)
## Analysis of Deviance Table (Type II tests)
## 
## Response: released
##          LR Chisq Df Pr(>Chisq)    
## colour       19.5  1    9.8e-06 ***
## year          6.7  5       0.24    
## age           0.2  1       0.62    
## sex           0.0  1       0.95    
## employed     75.7  1    < 2e-16 ***
## citizen      23.9  1    1.0e-06 ***
## checks      203.6  1    < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

all two-way effects

arrests.mod2 <- glm(released ~ .^2, family=binomial, data=Arrests)
Anova(arrests.mod2)
## Analysis of Deviance Table (Type II tests)
## 
## Response: released
##                  LR Chisq Df Pr(>Chisq)    
## colour               18.7  1    1.5e-05 ***
## year                  6.4  5    0.26978    
## age                   1.3  1    0.26135    
## sex                   0.1  1    0.77137    
## employed             69.9  1    < 2e-16 ***
## citizen              23.6  1    1.2e-06 ***
## checks              195.9  1    < 2e-16 ***
## colour:year          21.6  5    0.00061 ***
## colour:age            8.5  1    0.00364 ** 
## colour:sex            0.3  1    0.59062    
## colour:employed       0.0  1    0.94505    
## colour:citizen        1.1  1    0.28922    
## colour:checks         0.0  1    0.91122    
## year:age             12.9  5    0.02424 *  
## year:sex              5.5  5    0.35283    
## year:employed         9.9  5    0.07949 .  
## year:citizen          7.8  5    0.16569    
## year:checks          17.1  5    0.00435 ** 
## age:sex               1.1  1    0.30329    
## age:employed          3.9  1    0.04850 *  
## age:citizen           0.0  1    0.90959    
## age:checks            0.3  1    0.56940    
## sex:employed          5.5  1    0.01886 *  
## sex:citizen           0.8  1    0.35748    
## sex:checks            1.1  1    0.30195    
## employed:citizen      0.1  1    0.71659    
## employed:checks       0.2  1    0.69018    
## citizen:checks        5.9  1    0.01546 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Model selection using add1, drop1 & stepAIC

Add single two-way interactions, starting from the main effects model

add1(arrests.mod1, scope= ~.^2, test="Chisq")
## Single term additions
## 
## Model:
## released ~ colour + year + age + sex + employed + citizen + checks
##                  Df Deviance  AIC   LRT Pr(>Chi)    
## <none>                  4292 4316                   
## colour:year       5     4271 4305 21.43  0.00067 ***
## colour:age        1     4279 4305 13.60  0.00023 ***
## colour:sex        1     4292 4318  0.46  0.49840    
## colour:employed   1     4292 4318  0.28  0.59926    
## colour:citizen    1     4292 4318  0.15  0.70335    
## colour:checks     1     4290 4316  2.19  0.13924    
## year:age          5     4279 4313 13.63  0.01812 *  
## year:sex          5     4287 4321  5.85  0.32156    
## year:employed     5     4287 4321  5.12  0.40180    
## year:citizen      5     4283 4317  9.40  0.09420 .  
## year:checks       5     4277 4311 15.49  0.00845 ** 
## age:sex           1     4292 4318  0.36  0.55052    
## age:employed      1     4285 4311  7.58  0.00591 ** 
## age:citizen       1     4292 4318  0.84  0.35866    
## age:checks        1     4291 4317  1.38  0.24048    
## sex:employed      1     4288 4314  4.63  0.03135 *  
## sex:citizen       1     4290 4316  1.88  0.17025    
## sex:checks        1     4292 4318  0.00  0.97113    
## employed:citizen  1     4292 4318  0.42  0.51909    
## employed:checks   1     4291 4317  1.63  0.20234    
## citizen:checks    1     4280 4306 11.93  0.00055 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Drop single two-way interactions, starting from the all two-way model

drop1(arrests.mod2, test="Chisq")
## Single term deletions
## 
## Model:
## released ~ (colour + year + age + sex + employed + citizen + 
##     checks)^2
##                  Df Deviance  AIC   LRT Pr(>Chi)    
## <none>                  4180 4294                   
## colour:year       5     4202 4306 21.64  0.00061 ***
## colour:age        1     4189 4301  8.46  0.00364 ** 
## colour:sex        1     4180 4292  0.29  0.59062    
## colour:employed   1     4180 4292  0.00  0.94505    
## colour:citizen    1     4181 4293  1.12  0.28922    
## colour:checks     1     4180 4292  0.01  0.91122    
## year:age          5     4193 4297 12.91  0.02424 *  
## year:sex          5     4186 4290  5.55  0.35283    
## year:employed     5     4190 4294  9.85  0.07949 .  
## year:citizen      5     4188 4292  7.83  0.16569    
## year:checks       5     4197 4301 17.08  0.00435 ** 
## age:sex           1     4181 4293  1.06  0.30329    
## age:employed      1     4184 4296  3.89  0.04850 *  
## age:citizen       1     4180 4292  0.01  0.90959    
## age:checks        1     4180 4292  0.32  0.56940    
## sex:employed      1     4186 4298  5.51  0.01886 *  
## sex:citizen       1     4181 4293  0.85  0.35748    
## sex:checks        1     4181 4293  1.07  0.30195    
## employed:citizen  1     4180 4292  0.13  0.71659    
## employed:checks   1     4180 4292  0.16  0.69018    
## citizen:checks    1     4186 4298  5.86  0.01546 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Stepwise backward selection, using MASS::stepAIC()

arrests.step <- stepAIC(arrests.mod2, direction="backward")
## Start:  AIC=4294
## released ~ (colour + year + age + sex + employed + citizen + 
##     checks)^2
## 
##                    Df Deviance  AIC
## - year:sex          5     4186 4290
## - year:citizen      5     4188 4292
## - colour:employed   1     4180 4292
## - colour:checks     1     4180 4292
## - age:citizen       1     4180 4292
## - employed:citizen  1     4180 4292
## - employed:checks   1     4180 4292
## - colour:sex        1     4180 4292
## - age:checks        1     4180 4292
## - sex:citizen       1     4181 4293
## - age:sex           1     4181 4293
## - sex:checks        1     4181 4293
## - colour:citizen    1     4181 4293
## - year:employed     5     4190 4294
## <none>                    4180 4294
## - age:employed      1     4184 4296
## - year:age          5     4193 4297
## - sex:employed      1     4186 4298
## - citizen:checks    1     4186 4298
## - colour:age        1     4189 4301
## - year:checks       5     4197 4301
## - colour:year       5     4202 4306
## 
## Step:  AIC=4290
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:employed + 
##     colour:citizen + colour:checks + year:age + year:employed + 
##     year:citizen + year:checks + age:sex + age:employed + age:citizen + 
##     age:checks + sex:employed + sex:citizen + sex:checks + employed:citizen + 
##     employed:checks + citizen:checks
## 
##                    Df Deviance  AIC
## - year:citizen      5     4194 4288
## - colour:employed   1     4186 4288
## - colour:checks     1     4186 4288
## - age:citizen       1     4186 4288
## - employed:citizen  1     4186 4288
## - employed:checks   1     4186 4288
## - age:checks        1     4186 4288
## - age:sex           1     4186 4288
## - colour:sex        1     4186 4288
## - year:employed     5     4195 4289
## - colour:citizen    1     4187 4289
## - sex:checks        1     4187 4289
## <none>                    4186 4290
## - sex:citizen       1     4188 4290
## - age:employed      1     4189 4291
## - year:age          5     4199 4293
## - sex:employed      1     4192 4294
## - citizen:checks    1     4192 4294
## - year:checks       5     4201 4295
## - colour:age        1     4194 4296
## - colour:year       5     4208 4302
## 
## Step:  AIC=4288
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:employed + 
##     colour:citizen + colour:checks + year:age + year:employed + 
##     year:checks + age:sex + age:employed + age:citizen + age:checks + 
##     sex:employed + sex:citizen + sex:checks + employed:citizen + 
##     employed:checks + citizen:checks
## 
##                    Df Deviance  AIC
## - age:citizen       1     4194 4286
## - colour:employed   1     4194 4286
## - colour:checks     1     4194 4286
## - employed:checks   1     4194 4286
## - age:checks        1     4194 4286
## - employed:citizen  1     4194 4286
## - age:sex           1     4194 4286
## - colour:sex        1     4194 4286
## - sex:checks        1     4195 4287
## - year:employed     5     4203 4287
## - colour:citizen    1     4195 4287
## <none>                    4194 4288
## - sex:citizen       1     4196 4288
## - age:employed      1     4197 4289
## - year:age          5     4207 4291
## - year:checks       5     4207 4291
## - citizen:checks    1     4200 4292
## - sex:employed      1     4200 4292
## - colour:age        1     4202 4294
## - colour:year       5     4218 4302
## 
## Step:  AIC=4286
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:employed + 
##     colour:citizen + colour:checks + year:age + year:employed + 
##     year:checks + age:sex + age:employed + age:checks + sex:employed + 
##     sex:citizen + sex:checks + employed:citizen + employed:checks + 
##     citizen:checks
## 
##                    Df Deviance  AIC
## - colour:employed   1     4194 4284
## - colour:checks     1     4194 4284
## - employed:checks   1     4194 4284
## - age:checks        1     4194 4284
## - employed:citizen  1     4194 4284
## - age:sex           1     4194 4284
## - colour:sex        1     4194 4284
## - sex:checks        1     4195 4285
## - year:employed     5     4203 4285
## - colour:citizen    1     4195 4285
## <none>                    4194 4286
## - sex:citizen       1     4196 4286
## - age:employed      1     4197 4287
## - year:age          5     4207 4289
## - year:checks       5     4207 4289
## - citizen:checks    1     4200 4290
## - sex:employed      1     4200 4290
## - colour:age        1     4203 4293
## - colour:year       5     4218 4300
## 
## Step:  AIC=4284
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:citizen + 
##     colour:checks + year:age + year:employed + year:checks + 
##     age:sex + age:employed + age:checks + sex:employed + sex:citizen + 
##     sex:checks + employed:citizen + employed:checks + citizen:checks
## 
##                    Df Deviance  AIC
## - colour:checks     1     4194 4282
## - employed:checks   1     4194 4282
## - age:checks        1     4194 4282
## - employed:citizen  1     4194 4282
## - age:sex           1     4194 4282
## - colour:sex        1     4194 4282
## - sex:checks        1     4195 4283
## - year:employed     5     4203 4283
## - colour:citizen    1     4195 4283
## <none>                    4194 4284
## - sex:citizen       1     4196 4284
## - age:employed      1     4197 4285
## - year:age          5     4207 4287
## - year:checks       5     4207 4287
## - citizen:checks    1     4200 4288
## - sex:employed      1     4200 4288
## - colour:age        1     4203 4291
## - colour:year       5     4218 4298
## 
## Step:  AIC=4282
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:citizen + 
##     year:age + year:employed + year:checks + age:sex + age:employed + 
##     age:checks + sex:employed + sex:citizen + sex:checks + employed:citizen + 
##     employed:checks + citizen:checks
## 
##                    Df Deviance  AIC
## - employed:checks   1     4194 4280
## - age:checks        1     4194 4280
## - employed:citizen  1     4194 4280
## - age:sex           1     4194 4280
## - colour:sex        1     4194 4280
## - sex:checks        1     4195 4281
## - year:employed     5     4203 4281
## <none>                    4194 4282
## - colour:citizen    1     4196 4282
## - sex:citizen       1     4196 4282
## - age:employed      1     4197 4283
## - year:age          5     4207 4285
## - year:checks       5     4207 4285
## - sex:employed      1     4200 4286
## - citizen:checks    1     4201 4287
## - colour:age        1     4203 4289
## - colour:year       5     4218 4296
## 
## Step:  AIC=4280
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:citizen + 
##     year:age + year:employed + year:checks + age:sex + age:employed + 
##     age:checks + sex:employed + sex:citizen + sex:checks + employed:citizen + 
##     citizen:checks
## 
##                    Df Deviance  AIC
## - employed:citizen  1     4194 4278
## - age:checks        1     4194 4278
## - age:sex           1     4194 4278
## - colour:sex        1     4194 4278
## - sex:checks        1     4195 4279
## - year:employed     5     4203 4279
## <none>                    4194 4280
## - colour:citizen    1     4196 4280
## - sex:citizen       1     4196 4280
## - age:employed      1     4198 4282
## - year:age          5     4207 4283
## - year:checks       5     4208 4284
## - sex:employed      1     4200 4284
## - citizen:checks    1     4201 4285
## - colour:age        1     4203 4287
## - colour:year       5     4218 4294
## 
## Step:  AIC=4278
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:citizen + 
##     year:age + year:employed + year:checks + age:sex + age:employed + 
##     age:checks + sex:employed + sex:citizen + sex:checks + citizen:checks
## 
##                  Df Deviance  AIC
## - age:checks      1     4194 4276
## - age:sex         1     4195 4277
## - colour:sex      1     4195 4277
## - year:employed   5     4203 4277
## - sex:checks      1     4195 4277
## - colour:citizen  1     4196 4278
## <none>                  4194 4278
## - sex:citizen     1     4197 4279
## - age:employed    1     4198 4280
## - year:age        5     4208 4282
## - year:checks     5     4208 4282
## - sex:employed    1     4201 4283
## - citizen:checks  1     4202 4284
## - colour:age      1     4204 4286
## - colour:year     5     4219 4293
## 
## Step:  AIC=4276
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:citizen + 
##     year:age + year:employed + year:checks + age:sex + age:employed + 
##     sex:employed + sex:citizen + sex:checks + citizen:checks
## 
##                  Df Deviance  AIC
## - age:sex         1     4195 4275
## - colour:sex      1     4195 4275
## - year:employed   5     4204 4276
## - sex:checks      1     4196 4276
## - colour:citizen  1     4196 4276
## <none>                  4194 4276
## - sex:citizen     1     4197 4277
## - age:employed    1     4199 4279
## - year:age        5     4208 4280
## - year:checks     5     4208 4280
## - sex:employed    1     4201 4281
## - citizen:checks  1     4202 4282
## - colour:age      1     4204 4284
## - colour:year     5     4219 4291
## 
## Step:  AIC=4275
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:sex + colour:citizen + 
##     year:age + year:employed + year:checks + age:employed + sex:employed + 
##     sex:citizen + sex:checks + citizen:checks
## 
##                  Df Deviance  AIC
## - colour:sex      1     4195 4273
## - year:employed   5     4204 4274
## - sex:checks      1     4196 4274
## - colour:citizen  1     4197 4275
## <none>                  4195 4275
## - sex:citizen     1     4198 4276
## - age:employed    1     4200 4278
## - year:checks     5     4208 4278
## - year:age        5     4209 4279
## - sex:employed    1     4201 4279
## - citizen:checks  1     4203 4281
## - colour:age      1     4204 4282
## - colour:year     5     4219 4289
## 
## Step:  AIC=4273
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:citizen + year:age + year:employed + 
##     year:checks + age:employed + sex:employed + sex:citizen + 
##     sex:checks + citizen:checks
## 
##                  Df Deviance  AIC
## - year:employed   5     4205 4273
## - sex:checks      1     4197 4273
## <none>                  4195 4273
## - colour:citizen  1     4197 4273
## - sex:citizen     1     4199 4275
## - age:employed    1     4201 4277
## - year:checks     5     4209 4277
## - year:age        5     4209 4277
## - sex:employed    1     4202 4278
## - citizen:checks  1     4203 4279
## - colour:age      1     4205 4281
## - colour:year     5     4220 4288
## 
## Step:  AIC=4273
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:citizen + year:age + year:checks + 
##     age:employed + sex:employed + sex:citizen + sex:checks + 
##     citizen:checks
## 
##                  Df Deviance  AIC
## - sex:checks      1     4206 4272
## - colour:citizen  1     4207 4273
## <none>                  4205 4273
## - year:checks     5     4216 4274
## - sex:citizen     1     4208 4274
## - year:age        5     4218 4276
## - sex:employed    1     4211 4277
## - age:employed    1     4211 4277
## - citizen:checks  1     4212 4278
## - colour:age      1     4214 4280
## - colour:year     5     4229 4287
## 
## Step:  AIC=4272
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + colour:citizen + year:age + year:checks + 
##     age:employed + sex:employed + sex:citizen + citizen:checks
## 
##                  Df Deviance  AIC
## - colour:citizen  1     4208 4272
## <none>                  4206 4272
## - sex:citizen     1     4209 4273
## - year:checks     5     4217 4273
## - sex:employed    1     4211 4275
## - year:age        5     4219 4275
## - age:employed    1     4213 4277
## - citizen:checks  1     4214 4278
## - colour:age      1     4216 4280
## - colour:year     5     4231 4287
## 
## Step:  AIC=4272
## released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + year:age + year:checks + age:employed + 
##     sex:employed + sex:citizen + citizen:checks
## 
##                  Df Deviance  AIC
## <none>                  4208 4272
## - sex:citizen     1     4211 4273
## - year:checks     5     4219 4273
## - sex:employed    1     4213 4275
## - year:age        5     4221 4275
## - citizen:checks  1     4215 4277
## - age:employed    1     4215 4277
## - colour:age      1     4217 4279
## - colour:year     5     4232 4286

Compare models

anova(arrests.mod1, arrests.step, arrests.mod2, test="Chisq")
## Analysis of Deviance Table
## 
## Model 1: released ~ colour + year + age + sex + employed + citizen + checks
## Model 2: released ~ colour + year + age + sex + employed + citizen + checks + 
##     colour:year + colour:age + year:age + year:checks + age:employed + 
##     sex:employed + sex:citizen + citizen:checks
## Model 3: released ~ (colour + year + age + sex + employed + citizen + 
##     checks)^2
##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)    
## 1      5214       4292                         
## 2      5194       4208 20     84.1  7.7e-10 ***
## 3      5169       4180 25     28.2      0.3    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

one reduced model, using interactions of colour with year and age

arrests.mod <- glm(released ~ employed + citizen + checks + colour*year + colour*age,
 family=binomial, data=Arrests)

Type II tests of terms in our model

Anova(arrests.mod)
## Analysis of Deviance Table (Type II tests)
## 
## Response: released
##             LR Chisq Df Pr(>Chisq)    
## employed        72.7  1    < 2e-16 ***
## citizen         25.8  1    3.8e-07 ***
## checks         205.2  1    < 2e-16 ***
## colour          19.6  1    9.7e-06 ***
## year             6.1  5    0.29785    
## age              0.5  1    0.49827    
## colour:year     21.7  5    0.00059 ***
## colour:age      13.9  1    0.00019 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
IycgLS0tDQojJyB0aXRsZTogIkFycmVzdHMgZGF0YTogTG9naXN0aWMgcmVncmVzc2lvbiINCiMnIGF1dGhvcjogIk1pY2hhZWwgRnJpZW5kbHkiDQojJyBkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCkpYCINCiMnIG91dHB1dDoNCiMnICAgaHRtbF9kb2N1bWVudDoNCiMnICAgICB0aGVtZTogcmVhZGFibGUNCiMnICAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQojJyAtLS0NCg0KIysgZWNobz1GQUxTRQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICB3YXJuaW5nID0gRkFMU0UsICAgIyBhdm9pZCB3YXJuaW5ncyBhbmQgbWVzc2FnZXMgaW4gdGhlIG91dHB1dA0KICBtZXNzYWdlID0gRkFMU0UNCikNCg0KIycgIyMgTG9hZCBwYWNrYWdlcw0KbGlicmFyeShlZmZlY3RzKSAgICAjIGZvciBlZmZlY3QgcGxvdHMNCmxpYnJhcnkoY2FyKSAgICAgICAgIyBmb3IgQW5vdmEoKQ0KbGlicmFyeShNQVNTKSAgICAgICAjIGZvciBzdGVwQUlDDQoNCiMnICMjIExvYWQgdGhlIGRhdGENCmRhdGEoQXJyZXN0cywgcGFja2FnZSA9ICJjYXJEYXRhIikNCkFycmVzdHMkeWVhciA8LSBhcy5mYWN0b3IoQXJyZXN0cyR5ZWFyKQ0KDQojJyAjIyBhbGwgbWFpbiBlZmZlY3RzDQphcnJlc3RzLm1vZDEgPC0gZ2xtKHJlbGVhc2VkIH4gLiwgZmFtaWx5PWJpbm9taWFsLCBkYXRhPUFycmVzdHMpDQpBbm92YShhcnJlc3RzLm1vZDEpDQoNCiMnICMjIGFsbCB0d28td2F5IGVmZmVjdHMNCmFycmVzdHMubW9kMiA8LSBnbG0ocmVsZWFzZWQgfiAuXjIsIGZhbWlseT1iaW5vbWlhbCwgZGF0YT1BcnJlc3RzKQ0KQW5vdmEoYXJyZXN0cy5tb2QyKQ0KDQojJyAjIyBNb2RlbCBzZWxlY3Rpb24gdXNpbmcgYWRkMSwgZHJvcDEgJiBzdGVwQUlDDQoNCg0KIycgQWRkIHNpbmdsZSB0d28td2F5IGludGVyYWN0aW9ucywgc3RhcnRpbmcgZnJvbSB0aGUgbWFpbiBlZmZlY3RzIG1vZGVsDQphZGQxKGFycmVzdHMubW9kMSwgc2NvcGU9IH4uXjIsIHRlc3Q9IkNoaXNxIikNCg0KIycgRHJvcCBzaW5nbGUgdHdvLXdheSBpbnRlcmFjdGlvbnMsIHN0YXJ0aW5nIGZyb20gdGhlIGFsbCB0d28td2F5IG1vZGVsDQpkcm9wMShhcnJlc3RzLm1vZDIsIHRlc3Q9IkNoaXNxIikNCg0KDQojJyAjIyBTdGVwd2lzZSBiYWNrd2FyZCBzZWxlY3Rpb24sIHVzaW5nIGBNQVNTOjpzdGVwQUlDKClgDQphcnJlc3RzLnN0ZXAgPC0gc3RlcEFJQyhhcnJlc3RzLm1vZDIsIGRpcmVjdGlvbj0iYmFja3dhcmQiKQ0KDQojJyAjIyBDb21wYXJlIG1vZGVscw0KYW5vdmEoYXJyZXN0cy5tb2QxLCBhcnJlc3RzLnN0ZXAsIGFycmVzdHMubW9kMiwgdGVzdD0iQ2hpc3EiKQ0KDQojJyAjIyBvbmUgcmVkdWNlZCBtb2RlbCwgdXNpbmcgaW50ZXJhY3Rpb25zIG9mIGNvbG91ciB3aXRoIHllYXIgYW5kIGFnZQ0KYXJyZXN0cy5tb2QgPC0gZ2xtKHJlbGVhc2VkIH4gZW1wbG95ZWQgKyBjaXRpemVuICsgY2hlY2tzICsgY29sb3VyKnllYXIgKyBjb2xvdXIqYWdlLA0KIGZhbWlseT1iaW5vbWlhbCwgZGF0YT1BcnJlc3RzKQ0KDQojJyAjIyBUeXBlIElJIHRlc3RzIG9mIHRlcm1zIGluIG91ciBtb2RlbA0KQW5vdmEoYXJyZXN0cy5tb2QpDQoNCg0KDQoNCg==