cat("\014") # clean terminal
rm(list = ls()) # clean workspace
try(dev.off(), silent = TRUE) # close all plots
library(tidyverse)
library(GGally)
library(afex)
library(emmeans)
library(EnvStats)
my_dodge <- .3
theme_set(theme_minimal())
a_posteriori <- function(afex_aov, sig_level = .05) {
factors <- as.list(rownames(afex_aov$anova_table))
for (j in 1:length(factors)) {
if (grepl(':', factors[[j]])) {
factors[[j]] <- unlist(strsplit(factors[[j]], ':'))
}
}
p_values <- afex_aov$anova_table$`Pr(>F)`
for (i in 1:length(p_values)) {
if (p_values[i] <= sig_level) {
cat(rep('_', 60), '\n', sep = '')
show(emmeans(afex_aov, factors[[i]], contr = 'pairwise'))
}
}
}
data_dir <- '~/Insync/OneDrive/00LABWORKS_onedrive/Pernia/Estabilometria_parkinson_alzheimer_y_controles_Antiguo/data/'
emo_data_clean <- read.csv(paste0(data_dir, 'emo_data_clean_fix.csv'), header = TRUE) |>
filter(Group != 'Parkinson') |>
mutate(Stimulus = factor(Stimulus, levels = c('Unpleasant', 'Neutral', 'Pleasant')),
log10_area = log10(area),
log10_axis1 = log10(axis1),
log10_axis2 = log10(axis2),
log10_mdist = log10(mdist),
log10_rmv = log10(rmv),
log10_rmsx = log10(rmsx),
log10_rmsy = log10(rmsy),
log10_MPFx = log10(MPFx),
log10_MPFy = log10(MPFy),
log10_PEAKx = log10(PEAKx),
log10_PEAKy = log10(PEAKy),
log10_F50x = log10(F50x),
log10_F50y = log10(F50y),
log10_F95x = log10(F95x),
log10_F95y = log10(F95y),
log10_sampen_x = log10(sampen_x),
log10_sampen_y = log10(sampen_y),
log10_rmssd = log10(rMSSD),
log10_ave_phasic_eda = log10(ave_phasic_eda),
scr_peaks_number = ifelse(is.na(log10_ave_phasic_eda), NA, scr_peaks_number),
log10_scr_peaks_number = log10(scr_peaks_number),
log10_recurrence_rate_x = log10(recurrence_rate_x),
log10_rec_time2_x = log10(rec_time2_x),
log10_recurrence_rate_y = log10(recurrence_rate_y),
log10_rec_time2_y = log10(rec_time2_y)) |>
mutate_if(is.character, as.factor)
write.csv(emo_data_clean, 'data_alz_ctr_60s.csv', row.names = FALSE)
General
Description
options(width = 100)
summary(emo_data_clean)
filename Group Paradigm Stimulus
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_02: 1 Alzheimer:135 Old:315 Unpleasant:105
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_03: 1 Control :180 Neutral :105
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_05: 1 Pleasant :105
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_06: 1
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_08: 1
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_09: 1
(Other) :309
Emotion ID area axis1 axis2 angle
Yes:315 AD_02 : 3 Min. : 33.46 Min. : 5.598 Min. : 1.668 Min. :-3.125
AD_03 : 3 1st Qu.: 150.59 1st Qu.: 9.909 1st Qu.: 4.424 1st Qu.: 1.364
AD_05 : 3 Median : 232.26 Median :12.273 Median : 6.149 Median : 1.567
AD_06 : 3 Mean : 300.87 Mean :13.260 Mean : 6.600 Mean : 1.348
AD_08 : 3 3rd Qu.: 377.49 3rd Qu.:15.842 3rd Qu.: 8.041 3rd Qu.: 1.691
AD_09 : 3 Max. :1424.44 Max. :29.209 Max. :17.821 Max. : 3.100
(Other):297 NA's :4 NA's :4 NA's :4 NA's :4
mdist rmv rmsx rmsy MPFx
Min. : 2.062 Min. : 5.163 Min. :0.6867 Min. : 2.181 Min. :0.0002644
1st Qu.: 3.994 1st Qu.: 9.356 1st Qu.:1.9085 1st Qu.: 3.838 1st Qu.:0.0012386
Median : 4.815 Median :11.804 Median :2.7190 Median : 4.781 Median :0.0018328
Mean : 5.216 Mean :13.497 Mean :3.0798 Mean : 5.132 Mean :0.0020551
3rd Qu.: 6.322 3rd Qu.:15.503 3rd Qu.:3.7406 3rd Qu.: 6.138 3rd Qu.:0.0024595
Max. :11.137 Max. :46.493 Max. :9.8906 Max. :11.432 Max. :0.0078423
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
PEAKx F50x F95x MPFy
Min. :0.0001221 Min. :0.0002441 Min. :0.0003662 Min. :0.0005343
1st Qu.:0.0001221 1st Qu.:0.0002441 1st Qu.:0.0046387 1st Qu.:0.0014568
Median :0.0001221 Median :0.0007324 Median :0.0059814 Median :0.0020036
Mean :0.0003623 Mean :0.0011858 Mean :0.0066252 Mean :0.0022314
3rd Qu.:0.0002441 3rd Qu.:0.0016479 3rd Qu.:0.0079346 3rd Qu.:0.0026550
Max. :0.0059814 Max. :0.0084229 Max. :0.0325928 Max. :0.0086233
NA's :4 NA's :4 NA's :4 NA's :4
PEAKy F50y F95y forward_mov sampen_x
Min. :0.0001221 Min. :0.0002441 Min. :0.002197 Min. :0.1427 Min. :0.006016
1st Qu.:0.0001221 1st Qu.:0.0006104 1st Qu.:0.005249 1st Qu.:0.4474 1st Qu.:0.099836
Median :0.0002441 Median :0.0013428 Median :0.006836 Median :0.5000 Median :0.226643
Mean :0.0005326 Mean :0.0013679 Mean :0.007508 Mean :0.4951 Mean :0.295425
3rd Qu.:0.0006104 3rd Qu.:0.0017090 3rd Qu.:0.008972 3rd Qu.:0.5510 3rd Qu.:0.389260
Max. :0.0069580 Max. :0.0063477 Max. :0.037109 Max. :0.6942 Max. :1.463462
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
sampen_y sampen_resul_vect sampen_phi_rad sampen_delta_phi heart_rate
Min. :0.009181 Min. :0.1429 Min. :0.5925 Min. :1.141 Min. : 49.59
1st Qu.:0.079476 1st Qu.:1.6126 1st Qu.:0.9641 1st Qu.:1.447 1st Qu.: 64.90
Median :0.129957 Median :1.8861 Median :1.0639 Median :1.566 Median : 72.03
Mean :0.156982 Mean :1.9228 Mean :1.0682 Mean :1.566 Mean : 72.86
3rd Qu.:0.209796 3rd Qu.:2.2248 3rd Qu.:1.1823 3rd Qu.:1.695 3rd Qu.: 78.94
Max. :0.597405 Max. :3.9477 Max. :1.4671 Max. :2.195 Max. :150.26
NA's :4 NA's :8 NA's :4 NA's :4 NA's :97
rMSSD ave_phasic_eda ave_tonic_eda recurrence_rate_x determinism_x
Min. : 2.997 Min. :-0.000894 Min. :-0.8285 Min. :0.02197 Min. :0.9930
1st Qu.: 8.862 1st Qu.: 0.016158 1st Qu.: 2.6715 1st Qu.:0.06259 1st Qu.:0.9994
Median : 15.347 Median : 0.052000 Median : 4.9241 Median :0.08345 Median :0.9997
Mean : 40.216 Mean : 0.154045 Mean : 5.5306 Mean :0.09288 Mean :0.9994
3rd Qu.: 34.877 3rd Qu.: 0.185190 3rd Qu.: 6.8769 3rd Qu.:0.11162 3rd Qu.:0.9998
Max. :308.564 Max. : 1.962094 Max. :28.8064 Max. :0.42409 Max. :1.0000
NA's :97 NA's :104 NA's :104 NA's :1 NA's :1
ave_diag_len_x longest_diag_x diag_entropy_x laminarity_x trapping_time_x
Min. : 6.865 Min. : 107.0 Min. :2.627 Min. :0.9966 Min. : 9.066
1st Qu.: 22.142 1st Qu.: 278.2 1st Qu.:3.964 1st Qu.:0.9996 1st Qu.: 26.905
Median : 32.059 Median : 375.5 Median :4.352 Median :0.9998 Median : 38.305
Mean : 37.874 Mean : 520.6 Mean :4.337 Mean :0.9997 Mean : 46.008
3rd Qu.: 46.917 3rd Qu.: 525.2 3rd Qu.:4.772 3rd Qu.:0.9999 3rd Qu.: 56.375
Max. :170.999 Max. :6668.0 Max. :5.824 Max. :1.0000 Max. :232.970
NA's :1 NA's :1 NA's :1 NA's :1 NA's :1
longest_vertical_x rec_time1_x rec_time2_x rec_per_dens_entr_x clustering_x
Min. : 93.0 Min. : 2.345 Min. : 233.2 Min. :0.5517 Min. :0.4277
1st Qu.: 277.2 1st Qu.: 9.009 1st Qu.: 404.8 1st Qu.:0.6965 1st Qu.:0.5246
Median : 387.0 Median :12.125 Median : 477.8 Median :0.7224 Median :0.5585
Mean : 475.3 Mean :13.513 Mean : 479.5 Mean :0.7214 Mean :0.5656
3rd Qu.: 573.8 3rd Qu.:16.164 3rd Qu.: 547.4 3rd Qu.:0.7508 3rd Qu.:0.5993
Max. :2850.0 Max. :46.048 Max. :1168.6 Max. :0.8349 Max. :0.7843
NA's :1 NA's :1 NA's :1 NA's :1 NA's :1
transitivity_x delay_x dim_x recurrence_rate_y determinism_y ave_diag_len_y
Min. :0.4591 Min. :22 Min. :3 Min. :0.01367 Min. :0.9685 Min. : 4.11
1st Qu.:0.5596 1st Qu.:22 1st Qu.:3 1st Qu.:0.04942 1st Qu.:0.9993 1st Qu.:19.39
Median :0.5983 Median :22 Median :3 Median :0.06825 Median :0.9997 Median :27.25
Mean :0.6042 Mean :22 Mean :3 Mean :0.06918 Mean :0.9992 Mean :29.78
3rd Qu.:0.6487 3rd Qu.:22 3rd Qu.:3 3rd Qu.:0.08575 3rd Qu.:0.9998 3rd Qu.:38.75
Max. :0.7994 Max. :22 Max. :3 Max. :0.19547 Max. :1.0000 Max. :82.47
NA's :1 NA's :1 NA's :1 NA's :1 NA's :1 NA's :1
longest_diag_y diag_entropy_y laminarity_y trapping_time_y longest_vertical_y
Min. : 82.0 Min. :1.932 Min. :0.9876 Min. : 5.498 Min. : 62.0
1st Qu.:230.5 1st Qu.:3.810 1st Qu.:0.9996 1st Qu.: 23.005 1st Qu.: 224.2
Median :289.5 Median :4.182 Median :0.9998 Median : 31.651 Median : 300.5
Mean :326.0 Mean :4.145 Mean :0.9996 Mean : 34.799 Mean : 331.1
3rd Qu.:387.5 3rd Qu.:4.587 3rd Qu.:0.9999 3rd Qu.: 44.410 3rd Qu.: 407.8
Max. :982.0 Max. :5.347 Max. :1.0000 Max. :101.680 Max. :1055.0
NA's :1 NA's :1 NA's :1 NA's :1 NA's :1
rec_time1_y rec_time2_y rec_per_dens_entr_y clustering_y transitivity_y
Min. : 5.176 Min. :236.1 Min. :0.6272 Min. :0.3928 Min. :0.4491
1st Qu.:11.799 1st Qu.:456.0 1st Qu.:0.7317 1st Qu.:0.4979 1st Qu.:0.5330
Median :14.824 Median :502.9 Median :0.7576 Median :0.5312 Median :0.5684
Mean :17.348 Mean :496.3 Mean :0.7528 Mean :0.5304 Mean :0.5695
3rd Qu.:20.473 3rd Qu.:546.7 3rd Qu.:0.7775 3rd Qu.:0.5621 3rd Qu.:0.6050
Max. :74.033 Max. :750.5 Max. :0.8328 Max. :0.6555 Max. :0.7050
NA's :1 NA's :1 NA's :1 NA's :1 NA's :1
delay_y dim_y scr_peaks_number scr_mean_amplitude num_ID log10_area
Min. :22 Min. :3 Min. : 2.000 Min. :0.0007161 Min. : 1.0 Min. :1.524
1st Qu.:22 1st Qu.:3 1st Qu.: 6.000 1st Qu.:0.0015664 1st Qu.: 23.0 1st Qu.:2.178
Median :22 Median :3 Median : 8.000 Median :0.0254618 Median : 49.0 Median :2.366
Mean :22 Mean :3 Mean : 9.667 Mean :0.1563773 Mean :175.5 Mean :2.371
3rd Qu.:22 3rd Qu.:3 3rd Qu.:10.000 3rd Qu.:0.1386747 3rd Qu.:342.0 3rd Qu.:2.577
Max. :22 Max. :3 Max. :60.000 Max. :4.8637913 Max. :554.0 Max. :3.154
NA's :1 NA's :1 NA's :108 NA's :4
log10_axis1 log10_axis2 log10_mdist log10_rmv log10_rmsx
Min. :0.7480 Min. :0.2223 Min. :0.3144 Min. :0.7129 Min. :-0.1632
1st Qu.:0.9961 1st Qu.:0.6458 1st Qu.:0.6014 1st Qu.:0.9711 1st Qu.: 0.2807
Median :1.0890 Median :0.7888 Median :0.6826 Median :1.0720 Median : 0.4344
Mean :1.0977 Mean :0.7760 Mean :0.6938 Mean :1.0930 Mean : 0.4332
3rd Qu.:1.1998 3rd Qu.:0.9053 3rd Qu.:0.8009 3rd Qu.:1.1904 3rd Qu.: 0.5729
Max. :1.4655 Max. :1.2509 Max. :1.0468 Max. :1.6674 Max. : 0.9952
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_rmsy log10_MPFx log10_MPFy log10_PEAKx log10_PEAKy
Min. :0.3386 Min. :-3.578 Min. :-3.272 Min. :-3.913 Min. :-3.913
1st Qu.:0.5841 1st Qu.:-2.907 1st Qu.:-2.837 1st Qu.:-3.913 1st Qu.:-3.913
Median :0.6796 Median :-2.737 Median :-2.698 Median :-3.913 Median :-3.612
Mean :0.6860 Mean :-2.751 Mean :-2.699 Mean :-3.702 Mean :-3.524
3rd Qu.:0.7880 3rd Qu.:-2.609 3rd Qu.:-2.576 3rd Qu.:-3.612 3rd Qu.:-3.214
Max. :1.0581 Max. :-2.106 Max. :-2.064 Max. :-2.223 Max. :-2.158
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_F50x log10_F50y log10_F95x log10_F95y log10_sampen_x
Min. :-3.612 Min. :-3.612 Min. :-3.436 Min. :-2.658 Min. :-2.2207
1st Qu.:-3.612 1st Qu.:-3.214 1st Qu.:-2.334 1st Qu.:-2.280 1st Qu.:-1.0007
Median :-3.135 Median :-2.872 Median :-2.223 Median :-2.165 Median :-0.6447
Mean :-3.119 Mean :-2.958 Mean :-2.229 Mean :-2.170 Mean :-0.7083
3rd Qu.:-2.783 3rd Qu.:-2.767 3rd Qu.:-2.100 3rd Qu.:-2.047 3rd Qu.:-0.4098
Max. :-2.075 Max. :-2.197 Max. :-1.487 Max. :-1.431 Max. : 0.1654
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_sampen_y log10_rmssd log10_ave_phasic_eda log10_scr_peaks_number
Min. :-2.0371 Min. :0.4766 Min. :-3.3808 Min. :0.3010
1st Qu.:-1.0998 1st Qu.:0.9475 1st Qu.:-1.7340 1st Qu.:0.7782
Median :-0.8862 Median :1.1860 Median :-1.2733 Median :0.9031
Mean :-0.9118 Mean :1.2921 Mean :-1.3020 Mean :0.9198
3rd Qu.:-0.6782 3rd Qu.:1.5424 3rd Qu.:-0.7159 3rd Qu.:1.0000
Max. :-0.2237 Max. :2.4893 Max. : 0.2927 Max. :1.7782
NA's :4 NA's :97 NA's :108 NA's :108
log10_recurrence_rate_x log10_rec_time2_x log10_recurrence_rate_y log10_rec_time2_y
Min. :-1.6581 Min. :2.368 Min. :-1.8643 Min. :2.373
1st Qu.:-1.2035 1st Qu.:2.607 1st Qu.:-1.3061 1st Qu.:2.659
Median :-1.0786 Median :2.679 Median :-1.1659 Median :2.701
Mean :-1.0788 Mean :2.669 Mean :-1.1938 Mean :2.689
3rd Qu.:-0.9522 3rd Qu.:2.738 3rd Qu.:-1.0668 3rd Qu.:2.738
Max. :-0.3725 Max. :3.068 Max. :-0.7089 Max. :2.875
NA's :1 NA's :1 NA's :1 NA's :1
Time-distance
parameters
options(width = 100)
time_distance <- c('log10_area', 'log10_axis1', 'log10_axis2', 'log10_mdist', 'log10_rmv', 'log10_rmsx', 'log10_rmsy')
time_distance_pairs <- ggpairs(emo_data_clean,
columns = time_distance,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
base::print(time_distance_pairs)

summary(emo_data_clean[time_distance])
log10_area log10_axis1 log10_axis2 log10_mdist log10_rmv
Min. :1.524 Min. :0.7480 Min. :0.2223 Min. :0.3144 Min. :0.7129
1st Qu.:2.178 1st Qu.:0.9961 1st Qu.:0.6458 1st Qu.:0.6014 1st Qu.:0.9711
Median :2.366 Median :1.0890 Median :0.7888 Median :0.6826 Median :1.0720
Mean :2.371 Mean :1.0977 Mean :0.7760 Mean :0.6938 Mean :1.0930
3rd Qu.:2.577 3rd Qu.:1.1998 3rd Qu.:0.9053 3rd Qu.:0.8009 3rd Qu.:1.1904
Max. :3.154 Max. :1.4655 Max. :1.2509 Max. :1.0468 Max. :1.6674
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_rmsx log10_rmsy
Min. :-0.1632 Min. :0.3386
1st Qu.: 0.2807 1st Qu.:0.5841
Median : 0.4344 Median :0.6796
Mean : 0.4332 Mean :0.6860
3rd Qu.: 0.5729 3rd Qu.:0.7880
Max. : 0.9952 Max. :1.0581
NA's :4 NA's :4
Frequency
parameters
options(width = 100)
frequency <- c('log10_MPFx', 'log10_MPFy', 'log10_F50x', 'log10_F50y', 'log10_F95x', 'log10_F95y')
frequency_pairs <- ggpairs(emo_data_clean,
columns = frequency,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
base::print(frequency_pairs)

summary(emo_data_clean[frequency])
log10_MPFx log10_MPFy log10_F50x log10_F50y log10_F95x
Min. :-3.578 Min. :-3.272 Min. :-3.612 Min. :-3.612 Min. :-3.436
1st Qu.:-2.907 1st Qu.:-2.837 1st Qu.:-3.612 1st Qu.:-3.214 1st Qu.:-2.334
Median :-2.737 Median :-2.698 Median :-3.135 Median :-2.872 Median :-2.223
Mean :-2.751 Mean :-2.699 Mean :-3.119 Mean :-2.958 Mean :-2.229
3rd Qu.:-2.609 3rd Qu.:-2.576 3rd Qu.:-2.783 3rd Qu.:-2.767 3rd Qu.:-2.100
Max. :-2.106 Max. :-2.064 Max. :-2.075 Max. :-2.197 Max. :-1.487
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_F95y
Min. :-2.658
1st Qu.:-2.280
Median :-2.165
Mean :-2.170
3rd Qu.:-2.047
Max. :-1.431
NA's :4
Entropy
options(width = 100)
entropy <- c('forward_mov', 'log10_sampen_x', 'log10_sampen_y', 'sampen_resul_vect', 'sampen_phi_rad', 'sampen_delta_phi')
entropy_pairs <- ggpairs(emo_data_clean,
columns = entropy,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
base::print(entropy_pairs)
summary(emo_data_clean[entropy])
forward_mov log10_sampen_x log10_sampen_y sampen_resul_vect sampen_phi_rad
Min. :0.1427 Min. :-2.2207 Min. :-2.0371 Min. :0.1429 Min. :0.5925
1st Qu.:0.4474 1st Qu.:-1.0007 1st Qu.:-1.0998 1st Qu.:1.6126 1st Qu.:0.9641
Median :0.5000 Median :-0.6447 Median :-0.8862 Median :1.8861 Median :1.0639
Mean :0.4951 Mean :-0.7083 Mean :-0.9118 Mean :1.9228 Mean :1.0682
3rd Qu.:0.5510 3rd Qu.:-0.4098 3rd Qu.:-0.6782 3rd Qu.:2.2248 3rd Qu.:1.1823
Max. :0.6942 Max. : 0.1654 Max. :-0.2237 Max. :3.9477 Max. :1.4671
NA's :4 NA's :4 NA's :4 NA's :8 NA's :4
sampen_delta_phi
Min. :1.141
1st Qu.:1.447
Median :1.566
Mean :1.566
3rd Qu.:1.695
Max. :2.195
NA's :4
Recurrence
quantification analysis (RQA) X
options(width = 100)
rosner_log10_rec_time2_x <- rosnerTest(emo_data_clean$log10_rec_time2_x)
print(rosner_log10_rec_time2_x)
Results of Outlier Test
-------------------------
Test Method: Rosner's Test for Outliers
Hypothesized Distribution: Normal
Data: emo_data_clean$log10_rec_time2_x
Number NA/NaN/Inf's Removed: 1
Sample Size: 314
Test Statistics: R.1 = 3.986885
R.2 = 3.331482
R.3 = 3.123335
Test Statistic Parameter: k = 3
Alternative Hypothesis: Up to 3 observations are not
from the same Distribution.
Type I Error: 5%
Number of Outliers Detected: 1
i Mean.i SD.i Value Obs.Num R.i+1 lambda.i+1 Outlier
1 0 2.669397 0.09989273 3.067658 3 3.986885 3.736399 TRUE
2 1 2.668125 0.09747074 2.992847 105 3.331482 3.735503 FALSE
3 2 2.667084 0.09586948 2.367651 23 3.123335 3.734604 FALSE
rosner_clustering_x <- rosnerTest(emo_data_clean$clustering_x)
print(rosner_clustering_x)
Results of Outlier Test
-------------------------
Test Method: Rosner's Test for Outliers
Hypothesized Distribution: Normal
Data: emo_data_clean$clustering_x
Number NA/NaN/Inf's Removed: 1
Sample Size: 314
Test Statistics: R.1 = 3.639041
R.2 = 3.092700
R.3 = 2.992989
Test Statistic Parameter: k = 3
Alternative Hypothesis: Up to 3 observations are not
from the same Distribution.
Type I Error: 5%
Number of Outliers Detected: 0
i Mean.i SD.i Value Obs.Num R.i+1 lambda.i+1 Outlier
1 0 0.5655579 0.06010798 0.7842933 86 3.639041 3.736399 FALSE
2 1 0.5648591 0.05891273 0.7470584 148 3.092700 3.735503 FALSE
3 2 0.5642751 0.05809291 0.7381465 3 2.992989 3.734604 FALSE
rqa_x <- c('log10_recurrence_rate_x', 'diag_entropy_x', 'log10_rec_time2_x', 'rec_per_dens_entr_x', 'clustering_x', 'transitivity_x')
rqa_x_pairs <- ggpairs(emo_data_clean[emo_data_clean$log10_rec_time2_x<3 & emo_data_clean$clustering_x<.78, ],
columns = rqa_x,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
base::print(rqa_x_pairs)

summary(emo_data_clean[emo_data_clean$log10_rec_time2_x<3 & emo_data_clean$clustering_x<.78, rqa_x])
log10_recurrence_rate_x diag_entropy_x log10_rec_time2_x rec_per_dens_entr_x clustering_x
Min. :-1.6581 Min. :2.627 Min. :2.368 Min. :0.5517 Min. :0.4277
1st Qu.:-1.2038 1st Qu.:3.961 1st Qu.:2.607 1st Qu.:0.6972 1st Qu.:0.5245
Median :-1.0813 Median :4.341 Median :2.679 Median :0.7227 Median :0.5577
Mean :-1.0821 Mean :4.330 Mean :2.668 Mean :0.7222 Mean :0.5643
3rd Qu.:-0.9534 3rd Qu.:4.760 3rd Qu.:2.738 3rd Qu.:0.7509 3rd Qu.:0.5987
Max. :-0.5174 Max. :5.824 Max. :2.993 Max. :0.8349 Max. :0.7471
NA's :1 NA's :1 NA's :1 NA's :1 NA's :1
transitivity_x
Min. :0.4591
1st Qu.:0.5595
Median :0.5976
Mean :0.6031
3rd Qu.:0.6453
Max. :0.7661
NA's :1
Recurrence
quantification analysis (RQA) Y
options(width = 100)
rosner_log10_rec_time2_y <- rosnerTest(emo_data_clean$log10_rec_time2_y, 6)
print(rosner_log10_rec_time2_y)
Results of Outlier Test
-------------------------
Test Method: Rosner's Test for Outliers
Hypothesized Distribution: Normal
Data: emo_data_clean$log10_rec_time2_y
Number NA/NaN/Inf's Removed: 1
Sample Size: 314
Test Statistics: R.1 = 3.930971
R.2 = 3.798504
R.3 = 3.880201
R.4 = 3.953664
R.5 = 3.925654
R.6 = 3.728885
Test Statistic Parameter: k = 6
Alternative Hypothesis: Up to 6 observations are not
from the same Distribution.
Type I Error: 5%
Number of Outliers Detected: 5
i Mean.i SD.i Value Obs.Num R.i+1 lambda.i+1 Outlier
1 0 2.688807 0.08030833 2.373118 233 3.930971 3.736399 TRUE
2 1 2.689816 0.07841974 2.391938 128 3.798504 3.735503 TRUE
3 2 2.690771 0.07670206 2.393151 23 3.880201 3.734604 TRUE
4 3 2.691728 0.07493685 2.395452 121 3.953664 3.733702 TRUE
5 4 2.692683 0.07313491 2.405581 226 3.925654 3.732797 TRUE
6 5 2.693612 0.07139742 2.427380 16 3.728885 3.731888 FALSE
rqa_y <- c('log10_recurrence_rate_y', 'diag_entropy_y', 'log10_rec_time2_y', 'rec_per_dens_entr_y', 'clustering_y', 'transitivity_y')
rqa_y_pairs <- ggpairs(emo_data_clean[emo_data_clean$log10_rec_time2_y>2.4, ],
columns = rqa_y,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
base::print(rqa_y_pairs)

summary(emo_data_clean[emo_data_clean$log10_rec_time2_y>2.4, rqa_y])
log10_recurrence_rate_y diag_entropy_y log10_rec_time2_y rec_per_dens_entr_y clustering_y
Min. :-1.8643 Min. :2.346 Min. :2.406 Min. :0.6447 Min. :0.3928
1st Qu.:-1.3024 1st Qu.:3.817 1st Qu.:2.660 1st Qu.:0.7326 1st Qu.:0.4983
Median :-1.1653 Median :4.190 Median :2.702 Median :0.7586 Median :0.5322
Mean :-1.1908 Mean :4.165 Mean :2.693 Mean :0.7541 Mean :0.5309
3rd Qu.:-1.0665 3rd Qu.:4.596 3rd Qu.:2.738 3rd Qu.:0.7777 3rd Qu.:0.5625
Max. :-0.7089 Max. :5.347 Max. :2.875 Max. :0.8328 Max. :0.6555
NA's :1 NA's :1 NA's :1 NA's :1 NA's :1
transitivity_y
Min. :0.4491
1st Qu.:0.5336
Median :0.5688
Mean :0.5701
3rd Qu.:0.6050
Max. :0.7050
NA's :1
Classic Center of
Pressure
Area (log10)
options(width = 100)
area_rep_anova = aov_ez("ID", "log10_area", emo_data_clean, within = c("Stimulus"), between = c("Group"))
area_afex_plot <-
afex_plot(
area_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(area_afex_plot)

base::print(area_rep_anova)
Anova Table (Type 3 tests)
Response: log10_area
Effect df MSE F ges p.value
1 Group 1, 101 0.21 7.98 ** .060 .006
2 Stimulus 1.68, 169.84 0.03 8.89 *** .017 <.001
3 Group:Stimulus 1.68, 169.84 0.03 2.33 .004 .110
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(area_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 2.46 0.0397 101 2.38 2.54
Control 2.31 0.0350 101 2.24 2.38
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.149 0.0529 101 2.825 0.0057
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 2.38 0.0295 101 2.33 2.44
Neutral 2.33 0.0300 101 2.27 2.39
Pleasant 2.43 0.0288 101 2.37 2.48
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0517 0.0216 101 2.397 0.0479
Unpleasant - Pleasant -0.0428 0.0183 101 -2.335 0.0555
Neutral - Pleasant -0.0945 0.0266 101 -3.547 0.0017
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Ellipse Major Axis
(log10)
options(width = 100)
log10_axis1_rep_anova = aov_ez("ID", "log10_axis1", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_axis1_afex_plot <-
afex_plot(
log10_axis1_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_axis1_afex_plot)

base::print(log10_axis1_rep_anova)
Anova Table (Type 3 tests)
Response: log10_axis1
Effect df MSE F ges p.value
1 Group 1, 101 0.04 9.49 ** .065 .003
2 Stimulus 1.78, 179.60 0.01 17.19 *** .043 <.001
3 Group:Stimulus 1.78, 179.60 0.01 1.54 .004 .219
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_axis1_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 1.14 0.0179 101 1.10 1.18
Control 1.07 0.0157 101 1.04 1.10
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0733 0.0238 101 3.081 0.0027
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 1.11 0.0134 101 1.08 1.13
Neutral 1.07 0.0135 101 1.04 1.09
Pleasant 1.14 0.0147 101 1.11 1.17
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0418 0.0106 101 3.924 0.0005
Unpleasant - Pleasant -0.0305 0.0119 101 -2.565 0.0314
Neutral - Pleasant -0.0723 0.0143 101 -5.052 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Ellipse Minor Axis
(log10)
options(width = 100)
log10_axis2_rep_anova = aov_ez("ID", "log10_axis2", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_axis2_afex_plot <-
afex_plot(
log10_axis2_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_axis2_afex_plot)

base::print(log10_axis2_rep_anova)
Anova Table (Type 3 tests)
Response: log10_axis2
Effect df MSE F ges p.value
1 Group 1, 101 0.09 4.95 * .037 .028
2 Stimulus 1.73, 174.48 0.01 0.99 .002 .365
3 Group:Stimulus 1.73, 174.48 0.01 1.78 .004 .177
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_axis2_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.820 0.0257 101 0.769 0.871
Control 0.744 0.0226 101 0.699 0.788
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0761 0.0342 101 2.224 0.0283
Results are averaged over the levels of: Stimulus
Mean Distance
(log10)
options(width = 100)
mdist_rep_anova = aov_ez("ID", "log10_mdist", emo_data_clean, within = c("Stimulus"), between = c("Group"))
mdist_afex_plot <-
afex_plot(
mdist_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(mdist_afex_plot)

base::print(mdist_rep_anova)
Anova Table (Type 3 tests)
Response: log10_mdist
Effect df MSE F ges p.value
1 Group 1, 101 0.04 8.45 ** .060 .004
2 Stimulus 1.79, 180.69 0.01 12.75 *** .029 <.001
3 Group:Stimulus 1.79, 180.69 0.01 1.90 .004 .157
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(mdist_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.734 0.0179 101 0.698 0.769
Control 0.664 0.0158 101 0.633 0.695
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0694 0.0239 101 2.907 0.0045
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.700 0.0135 101 0.674 0.727
Neutral 0.669 0.0137 101 0.642 0.696
Pleasant 0.727 0.0138 101 0.700 0.755
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0315 0.0102 101 3.088 0.0073
Unpleasant - Pleasant -0.0268 0.0109 101 -2.468 0.0402
Neutral - Pleasant -0.0583 0.0134 101 -4.361 0.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Root Mean Velocity
(log10)
options(width = 100)
rmv_rep_anova = aov_ez("ID", "log10_rmv", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rmv_afex_plot <-
afex_plot(
rmv_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(rmv_afex_plot)

base::print(rmv_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmv
Effect df MSE F ges p.value
1 Group 1, 101 0.07 1.79 .016 .184
2 Stimulus 1.82, 184.32 0.00 68.01 *** .061 <.001
3 Group:Stimulus 1.82, 184.32 0.00 3.58 * .003 .034
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rmv_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 1.11 0.0165 101 1.08 1.14
Neutral 1.04 0.0150 101 1.01 1.07
Pleasant 1.14 0.0174 101 1.11 1.18
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0668 0.00852 101 7.842 <.0001
Unpleasant - Pleasant -0.0343 0.00774 101 -4.428 0.0001
Neutral - Pleasant -0.1011 0.01000 101 -10.076 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant 1.13 0.0248 101 1.076 1.17
Control Unpleasant 1.09 0.0218 101 1.048 1.13
Alzheimer Neutral 1.08 0.0225 101 1.031 1.12
Control Neutral 1.01 0.0198 101 0.968 1.05
Alzheimer Pleasant 1.15 0.0262 101 1.102 1.21
Control Pleasant 1.13 0.0231 101 1.086 1.18
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant 0.03447 0.0330 101 1.044 0.9017
Alzheimer Unpleasant - Alzheimer Neutral 0.05010 0.0128 101 3.919 0.0022
Alzheimer Unpleasant - Control Neutral 0.11796 0.0317 101 3.718 0.0043
Alzheimer Unpleasant - Alzheimer Pleasant -0.02820 0.0116 101 -2.428 0.1567
Alzheimer Unpleasant - Control Pleasant -0.00588 0.0338 101 -0.174 1.0000
Control Unpleasant - Alzheimer Neutral 0.01563 0.0313 101 0.499 0.9961
Control Unpleasant - Control Neutral 0.08349 0.0113 101 7.415 <.0001
Control Unpleasant - Alzheimer Pleasant -0.06267 0.0341 101 -1.839 0.4458
Control Unpleasant - Control Pleasant -0.04034 0.0102 101 -3.943 0.0020
Alzheimer Neutral - Control Neutral 0.06786 0.0300 101 2.262 0.2196
Alzheimer Neutral - Alzheimer Pleasant -0.07830 0.0151 101 -5.201 <.0001
Alzheimer Neutral - Control Pleasant -0.05598 0.0322 101 -1.737 0.5109
Control Neutral - Alzheimer Pleasant -0.14616 0.0328 101 -4.451 0.0003
Control Neutral - Control Pleasant -0.12384 0.0133 101 -9.339 <.0001
Alzheimer Pleasant - Control Pleasant 0.02232 0.0349 101 0.640 0.9877
P value adjustment: tukey method for comparing a family of 6 estimates
Root Mean Square X
(log10)
options(width = 100)
rmsx_rep_anova = aov_ez("ID", "log10_rmsx", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rmsx_afex_plot <-
afex_plot(
rmsx_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(rmsx_afex_plot)

base::print(rmsx_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmsx
Effect df MSE F ges p.value
1 Group 1, 101 0.10 4.53 * .032 .036
2 Stimulus 1.69, 170.23 0.02 0.22 <.001 .766
3 Group:Stimulus 1.69, 170.23 0.02 2.04 .005 .141
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rmsx_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.479 0.0277 101 0.424 0.533
Control 0.400 0.0244 101 0.352 0.448
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0786 0.0369 101 2.129 0.0357
Results are averaged over the levels of: Stimulus
Root Mean Square Y
(log10)
options(width = 100)
rmsy_rep_anova = aov_ez("ID", "log10_rmsy", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rmsy_afex_plot <-
afex_plot(
rmsy_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(rmsy_afex_plot)

base::print(rmsy_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmsy
Effect df MSE F ges p.value
1 Group 1, 101 0.04 7.48 ** .052 .007
2 Stimulus 1.80, 181.64 0.01 33.55 *** .078 <.001
3 Group:Stimulus 1.80, 181.64 0.01 1.21 .003 .299
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rmsy_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.723 0.0175 101 0.688 0.757
Control 0.659 0.0155 101 0.628 0.689
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.064 0.0234 101 2.736 0.0074
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.700 0.0129 101 0.675 0.726
Neutral 0.638 0.0126 101 0.613 0.663
Pleasant 0.734 0.0150 101 0.704 0.763
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0624 0.0102 101 6.093 <.0001
Unpleasant - Pleasant -0.0334 0.0115 101 -2.900 0.0126
Neutral - Pleasant -0.0958 0.0136 101 -7.037 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Mean Power Frequency
X (log10)
options(width = 100)
MPFx_rep_anova = aov_ez("ID", "log10_MPFx", emo_data_clean, within = c("Stimulus"), between = c("Group"))
MPFx_afex_plot <-
afex_plot(
MPFx_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(MPFx_afex_plot)

base::print(MPFx_rep_anova)
Anova Table (Type 3 tests)
Response: log10_MPFx
Effect df MSE F ges p.value
1 Group 1, 101 0.10 0.25 .001 .616
2 Stimulus 1.90, 192.30 0.04 2.00 .008 .141
3 Group:Stimulus 1.90, 192.30 0.04 1.17 .005 .312
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(MPFx_rep_anova)
Mean Power Frequency
Y (log10)
options(width = 100)
MPFy_rep_anova = aov_ez("ID", "log10_MPFy", emo_data_clean, within = c("Stimulus"), between = c("Group"))
MPFy_afex_plot <-
afex_plot(
MPFy_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(MPFy_afex_plot)

base::print(MPFy_rep_anova)
Anova Table (Type 3 tests)
Response: log10_MPFy
Effect df MSE F ges p.value
1 Group 1, 101 0.08 1.46 .010 .229
2 Stimulus 1.95, 197.22 0.02 3.67 * .011 .028
3 Group:Stimulus 1.95, 197.22 0.02 4.89 ** .015 .009
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(MPFy_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant -2.68 0.0192 101 -2.72 -2.64
Neutral -2.73 0.0197 101 -2.77 -2.69
Pleasant -2.69 0.0207 101 -2.73 -2.65
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.04844 0.0177 101 2.731 0.0202
Unpleasant - Pleasant 0.00719 0.0202 101 0.356 0.9325
Neutral - Pleasant -0.04125 0.0199 101 -2.077 0.0998
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant -2.69 0.0288 101 -2.74 -2.63
Control Unpleasant -2.68 0.0253 101 -2.73 -2.63
Alzheimer Neutral -2.73 0.0296 101 -2.79 -2.67
Control Neutral -2.73 0.0261 101 -2.78 -2.68
Alzheimer Pleasant -2.74 0.0311 101 -2.81 -2.68
Control Pleasant -2.63 0.0274 101 -2.69 -2.58
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant -0.00841 0.0383 101 -0.220 0.9999
Alzheimer Unpleasant - Alzheimer Neutral 0.04512 0.0266 101 1.695 0.5380
Alzheimer Unpleasant - Control Neutral 0.04334 0.0388 101 1.116 0.8735
Alzheimer Unpleasant - Alzheimer Pleasant 0.05766 0.0303 101 1.905 0.4054
Alzheimer Unpleasant - Control Pleasant -0.05170 0.0397 101 -1.302 0.7834
Control Unpleasant - Alzheimer Neutral 0.05354 0.0390 101 1.374 0.7422
Control Unpleasant - Control Neutral 0.05175 0.0234 101 2.207 0.2436
Control Unpleasant - Alzheimer Pleasant 0.06607 0.0401 101 1.647 0.5694
Control Unpleasant - Control Pleasant -0.04329 0.0267 101 -1.623 0.5852
Alzheimer Neutral - Control Neutral -0.00179 0.0394 101 -0.045 1.0000
Alzheimer Neutral - Alzheimer Pleasant 0.01253 0.0298 101 0.420 0.9983
Alzheimer Neutral - Control Pleasant -0.09683 0.0403 101 -2.402 0.1655
Control Neutral - Alzheimer Pleasant 0.01432 0.0406 101 0.353 0.9993
Control Neutral - Control Pleasant -0.09504 0.0263 101 -3.620 0.0060
Alzheimer Pleasant - Control Pleasant -0.10936 0.0414 101 -2.640 0.0972
P value adjustment: tukey method for comparing a family of 6 estimates
Forward
Movement
options(width = 100)
forward_mov_rep_anova = aov_ez("ID", "forward_mov", emo_data_clean, within = c("Stimulus"), between = c("Group"))
forward_mov_afex_plot <-
afex_plot(
forward_mov_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(forward_mov_afex_plot)

base::print(forward_mov_rep_anova)
Anova Table (Type 3 tests)
Response: forward_mov
Effect df MSE F ges p.value
1 Group 1, 101 0.01 1.26 .005 .264
2 Stimulus 2.00, 201.82 0.01 2.20 .012 .114
3 Group:Stimulus 2.00, 201.82 0.01 0.92 .005 .399
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(forward_mov_rep_anova)
Entropy and Center of
Pressure
Sample Entropy X
(log10)
options(width = 100)
log10_sampen_x_rep_anova = aov_ez("ID", "log10_sampen_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_sampen_x_afex_plot <-
afex_plot(
log10_sampen_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_sampen_x_afex_plot)

base::print(log10_sampen_x_rep_anova)
Anova Table (Type 3 tests)
Response: log10_sampen_x
Effect df MSE F ges p.value
1 Group 1, 101 0.35 3.14 + .019 .079
2 Stimulus 1.81, 182.53 0.13 1.78 .007 .176
3 Group:Stimulus 1.81, 182.53 0.13 1.13 .004 .322
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_sampen_x_rep_anova)
Sample Entropy Y
(log10)
options(width = 100)
log10_sampen_y_rep_anova = aov_ez("ID", "log10_sampen_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_sampen_y_afex_plot <-
afex_plot(
log10_sampen_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_sampen_y_afex_plot)

base::print(log10_sampen_y_rep_anova)
Anova Table (Type 3 tests)
Response: log10_sampen_y
Effect df MSE F ges p.value
1 Group 1, 101 0.19 9.53 ** .059 .003
2 Stimulus 1.76, 177.94 0.06 7.49 ** .024 .001
3 Group:Stimulus 1.76, 177.94 0.06 2.15 .007 .126
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_sampen_y_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer -1.000 0.0380 101 -1.07 -0.924
Control -0.843 0.0335 101 -0.91 -0.777
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control -0.156 0.0506 101 -3.088 0.0026
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant -0.930 0.0282 101 -0.986 -0.874
Neutral -0.857 0.0295 101 -0.915 -0.798
Pleasant -0.977 0.0352 101 -1.047 -0.907
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.0736 0.0262 101 -2.810 0.0163
Unpleasant - Pleasant 0.0464 0.0307 101 1.512 0.2895
Neutral - Pleasant 0.1200 0.0361 101 3.321 0.0035
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Angle Sample
Entropy
options(width = 100)
sampen_phi_rad_rep_anova = aov_ez("ID", "sampen_phi_rad", emo_data_clean, within = c("Stimulus"), between = c("Group"))
sampen_phi_rad_afex_plot <-
afex_plot(
sampen_phi_rad_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(sampen_phi_rad_afex_plot)

base::print(sampen_phi_rad_rep_anova)
Anova Table (Type 3 tests)
Response: sampen_phi_rad
Effect df MSE F ges p.value
1 Group 1, 101 0.06 0.41 .003 .523
2 Stimulus 1.86, 187.79 0.01 0.60 .001 .539
3 Group:Stimulus 1.86, 187.79 0.01 0.83 .002 .429
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(sampen_phi_rad_rep_anova)
Resultant Vector
Sample Entropy
options(width = 100)
sampen_resul_vect_rep_anova = aov_ez("ID", "sampen_resul_vect", emo_data_clean, within = c("Stimulus"), between = c("Group"))
sampen_resul_vect_afex_plot <-
afex_plot(
sampen_resul_vect_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(sampen_resul_vect_afex_plot)

base::print(sampen_resul_vect_rep_anova)
Anova Table (Type 3 tests)
Response: sampen_resul_vect
Effect df MSE F ges p.value
1 Group 1, 98 0.56 1.47 .008 .229
2 Stimulus 1.60, 156.41 0.27 7.43 ** .032 .002
3 Group:Stimulus 1.60, 156.41 0.27 0.48 .002 .575
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(sampen_resul_vect_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 1.90 0.0555 98 1.79 2.01
Neutral 2.02 0.0652 98 1.89 2.15
Pleasant 1.77 0.0524 98 1.66 1.87
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.127 0.0773 98 -1.636 0.2356
Unpleasant - Pleasant 0.129 0.0476 98 2.711 0.0214
Neutral - Pleasant 0.256 0.0703 98 3.636 0.0013
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Angle Change Sample
Entropy
options(width = 100)
sampen_delta_phi_rep_anova = aov_ez("ID", "sampen_delta_phi", emo_data_clean, within = c("Stimulus"), between = c("Group"))
sampen_delta_phi_afex_plot <-
afex_plot(
sampen_delta_phi_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(sampen_delta_phi_afex_plot)

base::print(sampen_delta_phi_rep_anova)
Anova Table (Type 3 tests)
Response: sampen_delta_phi
Effect df MSE F ges p.value
1 Group 1, 101 0.08 0.02 <.001 .876
2 Stimulus 1.88, 189.99 0.02 5.72 ** .016 .005
3 Group:Stimulus 1.88, 189.99 0.02 1.86 .005 .162
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(sampen_delta_phi_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 1.55 0.0195 101 1.51 1.59
Neutral 1.60 0.0201 101 1.56 1.64
Pleasant 1.55 0.0186 101 1.51 1.58
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.0489 0.0186 101 -2.625 0.0268
Unpleasant - Pleasant 0.0058 0.0154 101 0.377 0.9249
Neutral - Pleasant 0.0547 0.0191 101 2.869 0.0138
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
RQA X
log10_recurrence_rate_x
options(width = 100)
log10_recurrence_rate_x_rep_anova = aov_ez("ID", "log10_recurrence_rate_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_recurrence_rate_x_afex_plot <-
afex_plot(
log10_recurrence_rate_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_recurrence_rate_x_afex_plot)

base::print(log10_recurrence_rate_x_rep_anova)
Anova Table (Type 3 tests)
Response: log10_recurrence_rate_x
Effect df MSE F ges p.value
1 Group 1, 102 0.07 0.86 .005 .356
2 Stimulus 1.90, 194.28 0.03 4.13 * .016 .019
3 Group:Stimulus 1.90, 194.28 0.03 0.37 .001 .680
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_recurrence_rate_x_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant -1.08 0.0189 102 -1.11 -1.04
Neutral -1.05 0.0208 102 -1.09 -1.01
Pleasant -1.11 0.0202 102 -1.15 -1.07
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.0289 0.0210 102 -1.374 0.3585
Unpleasant - Pleasant 0.0334 0.0199 102 1.677 0.2191
Neutral - Pleasant 0.0623 0.0239 102 2.603 0.0284
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
diag_entropy_x
options(width = 100)
diag_entropy_x_rep_anova = aov_ez("ID", "diag_entropy_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
diag_entropy_x_afex_plot <-
afex_plot(
diag_entropy_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(diag_entropy_x_afex_plot)

base::print(diag_entropy_x_rep_anova)
Anova Table (Type 3 tests)
Response: diag_entropy_x
Effect df MSE F ges p.value
1 Group 1, 102 0.77 0.00 <.001 .979
2 Stimulus 1.81, 184.76 0.18 3.21 * .009 .048
3 Group:Stimulus 1.81, 184.76 0.18 0.46 .001 .614
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(diag_entropy_x_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 4.31 0.0611 102 4.19 4.43
Neutral 4.42 0.0611 102 4.30 4.54
Pleasant 4.28 0.0574 102 4.17 4.39
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.106 0.0536 102 -1.981 0.1222
Unpleasant - Pleasant 0.032 0.0511 102 0.626 0.8065
Neutral - Pleasant 0.138 0.0656 102 2.105 0.0938
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
log10_rec_time2_x
options(width = 100)
log10_rec_time2_x_rep_anova = aov_ez("ID", "log10_rec_time2_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_rec_time2_x_afex_plot <-
afex_plot(
log10_rec_time2_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_rec_time2_x_afex_plot)

base::print(log10_rec_time2_x_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rec_time2_x
Effect df MSE F ges p.value
1 Group 1, 102 0.02 1.03 .006 .313
2 Stimulus 1.94, 197.99 0.01 2.12 .007 .125
3 Group:Stimulus 1.94, 197.99 0.01 1.70 .006 .186
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_rec_time2_x_rep_anova)
rec_per_dens_entr_x
options(width = 100)
rec_per_dens_entr_x_rep_anova = aov_ez("ID", "rec_per_dens_entr_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rec_per_dens_entr_x_afex_plot <-
afex_plot(
rec_per_dens_entr_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(rec_per_dens_entr_x_afex_plot)

base::print(rec_per_dens_entr_x_rep_anova)
Anova Table (Type 3 tests)
Response: rec_per_dens_entr_x
Effect df MSE F ges p.value
1 Group 1, 102 0.00 0.19 .001 .664
2 Stimulus 1.91, 195.25 0.00 0.93 .003 .393
3 Group:Stimulus 1.91, 195.25 0.00 0.70 .002 .493
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rec_per_dens_entr_x_rep_anova)
clustering_x
options(width = 100)
clustering_x_rep_anova = aov_ez("ID", "clustering_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
clustering_x_afex_plot <-
afex_plot(
clustering_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(clustering_x_afex_plot)

base::print(clustering_x_rep_anova)
Anova Table (Type 3 tests)
Response: clustering_x
Effect df MSE F ges p.value
1 Group 1, 102 0.01 0.16 <.001 .689
2 Stimulus 1.86, 189.69 0.00 5.16 ** .021 .008
3 Group:Stimulus 1.86, 189.69 0.00 0.14 <.001 .856
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(clustering_x_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.564 0.00571 102 0.553 0.576
Neutral 0.577 0.00634 102 0.565 0.590
Pleasant 0.556 0.00576 102 0.544 0.567
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.01283 0.00642 102 -1.998 0.1178
Unpleasant - Pleasant 0.00872 0.00612 102 1.424 0.3323
Neutral - Pleasant 0.02155 0.00760 102 2.834 0.0152
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
transitivity_x
options(width = 100)
transitivity_x_rep_anova = aov_ez("ID", "transitivity_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
transitivity_x_afex_plot <-
afex_plot(
transitivity_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(transitivity_x_afex_plot)

base::print(transitivity_x_rep_anova)
Anova Table (Type 3 tests)
Response: transitivity_x
Effect df MSE F ges p.value
1 Group 1, 102 0.01 0.49 .003 .485
2 Stimulus 1.90, 193.43 0.00 3.41 * .014 .037
3 Group:Stimulus 1.90, 193.43 0.00 0.32 .001 .712
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(transitivity_x_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.607 0.00608 102 0.595 0.619
Neutral 0.612 0.00651 102 0.599 0.625
Pleasant 0.594 0.00624 102 0.582 0.607
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.0052 0.00684 102 -0.761 0.7278
Unpleasant - Pleasant 0.0127 0.00643 102 1.973 0.1240
Neutral - Pleasant 0.0179 0.00780 102 2.294 0.0611
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
RQA Y
log10_recurrence_rate_y
options(width = 100)
log10_recurrence_rate_y_rep_anova = aov_ez("ID", "log10_recurrence_rate_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_recurrence_rate_y_afex_plot <-
afex_plot(
log10_recurrence_rate_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_recurrence_rate_y_afex_plot)

base::print(log10_recurrence_rate_y_rep_anova)
Anova Table (Type 3 tests)
Response: log10_recurrence_rate_y
Effect df MSE F ges p.value
1 Group 1, 102 0.07 5.80 * .042 .018
2 Stimulus 1.82, 185.35 0.01 3.10 + .007 .052
3 Group:Stimulus 1.82, 185.35 0.01 2.69 + .006 .076
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_recurrence_rate_y_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer -1.15 0.0229 102 -1.20 -1.11
Control -1.23 0.0200 102 -1.27 -1.19
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0732 0.0304 102 2.409 0.0178
Results are averaged over the levels of: Stimulus
diag_entropy_y
options(width = 100)
diag_entropy_y_rep_anova = aov_ez("ID", "diag_entropy_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
diag_entropy_y_afex_plot <-
afex_plot(
diag_entropy_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(diag_entropy_y_afex_plot)

base::print(diag_entropy_y_rep_anova)
Anova Table (Type 3 tests)
Response: diag_entropy_y
Effect df MSE F ges p.value
1 Group 1, 102 0.86 1.02 .008 .316
2 Stimulus 1.83, 186.31 0.08 3.10 + .004 .052
3 Group:Stimulus 1.83, 186.31 0.08 4.07 * .006 .022
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(diag_entropy_y_rep_anova)
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant 4.16 0.0854 102 3.99 4.33
Control Unpleasant 4.10 0.0746 102 3.95 4.25
Alzheimer Neutral 4.22 0.0845 102 4.05 4.38
Control Neutral 4.19 0.0738 102 4.04 4.33
Alzheimer Pleasant 4.23 0.0886 102 4.05 4.40
Control Pleasant 4.00 0.0774 102 3.85 4.15
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant 0.0620 0.1130 102 0.547 0.9940
Alzheimer Unpleasant - Alzheimer Neutral -0.0541 0.0514 102 -1.053 0.8987
Alzheimer Unpleasant - Control Neutral -0.0236 0.1130 102 -0.209 0.9999
Alzheimer Unpleasant - Alzheimer Pleasant -0.0654 0.0518 102 -1.263 0.8043
Alzheimer Unpleasant - Control Pleasant 0.1630 0.1150 102 1.414 0.7186
Control Unpleasant - Alzheimer Neutral -0.1161 0.1130 102 -1.030 0.9066
Control Unpleasant - Control Neutral -0.0856 0.0449 102 -1.906 0.4045
Control Unpleasant - Alzheimer Pleasant -0.1274 0.1160 102 -1.100 0.8805
Control Unpleasant - Control Pleasant 0.1010 0.0452 102 2.234 0.2317
Alzheimer Neutral - Control Neutral 0.0305 0.1120 102 0.272 0.9998
Alzheimer Neutral - Alzheimer Pleasant -0.0112 0.0642 102 -0.175 1.0000
Alzheimer Neutral - Control Pleasant 0.2171 0.1150 102 1.894 0.4115
Control Neutral - Alzheimer Pleasant -0.0418 0.1150 102 -0.362 0.9992
Control Neutral - Control Pleasant 0.1866 0.0560 102 3.330 0.0149
Alzheimer Pleasant - Control Pleasant 0.2283 0.1180 102 1.940 0.3840
P value adjustment: tukey method for comparing a family of 6 estimates
log10_rec_time2_y
options(width = 100)
log10_rec_time2_y_rep_anova = aov_ez("ID", "log10_rec_time2_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_rec_time2_y_afex_plot <-
afex_plot(
log10_rec_time2_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_rec_time2_y_afex_plot)

base::print(log10_rec_time2_y_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rec_time2_y
Effect df MSE F ges p.value
1 Group 1, 102 0.02 2.17 .017 .144
2 Stimulus 1.92, 195.59 0.00 3.14 * .005 .048
3 Group:Stimulus 1.92, 195.59 0.00 2.23 .004 .113
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_rec_time2_y_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 2.68 0.00820 102 2.66 2.70
Neutral 2.69 0.00768 102 2.68 2.71
Pleasant 2.69 0.00791 102 2.68 2.71
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -1.22e-02 0.00510 102 -2.383 0.0495
Unpleasant - Pleasant -1.22e-02 0.00557 102 -2.185 0.0786
Neutral - Pleasant -6.41e-06 0.00611 102 -0.001 1.0000
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
rec_per_dens_entr_y
options(width = 100)
rec_per_dens_entr_y_rep_anova = aov_ez("ID", "rec_per_dens_entr_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rec_per_dens_entr_y_afex_plot <-
afex_plot(
rec_per_dens_entr_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(rec_per_dens_entr_y_afex_plot)

base::print(rec_per_dens_entr_y_rep_anova)
Anova Table (Type 3 tests)
Response: rec_per_dens_entr_y
Effect df MSE F ges p.value
1 Group 1, 102 0.00 2.28 .016 .134
2 Stimulus 1.98, 201.81 0.00 0.87 .002 .418
3 Group:Stimulus 1.98, 201.81 0.00 3.62 * .009 .029
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rec_per_dens_entr_y_rep_anova)
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant 0.750 0.00524 102 0.740 0.761
Control Unpleasant 0.750 0.00458 102 0.741 0.759
Alzheimer Neutral 0.746 0.00552 102 0.735 0.757
Control Neutral 0.759 0.00482 102 0.750 0.769
Alzheimer Pleasant 0.747 0.00548 102 0.736 0.758
Control Pleasant 0.762 0.00479 102 0.753 0.772
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant 0.000370 0.00696 102 0.053 1.0000
Alzheimer Unpleasant - Alzheimer Neutral 0.004310 0.00453 102 0.952 0.9318
Alzheimer Unpleasant - Control Neutral -0.008806 0.00712 102 -1.236 0.8180
Alzheimer Unpleasant - Alzheimer Pleasant 0.003692 0.00478 102 0.772 0.9716
Alzheimer Unpleasant - Control Pleasant -0.011634 0.00710 102 -1.639 0.5749
Control Unpleasant - Alzheimer Neutral 0.003939 0.00717 102 0.549 0.9939
Control Unpleasant - Control Neutral -0.009176 0.00396 102 -2.320 0.1956
Control Unpleasant - Alzheimer Pleasant 0.003321 0.00714 102 0.465 0.9972
Control Unpleasant - Control Pleasant -0.012004 0.00418 102 -2.874 0.0542
Alzheimer Neutral - Control Neutral -0.013115 0.00733 102 -1.788 0.4779
Alzheimer Neutral - Alzheimer Pleasant -0.000618 0.00496 102 -0.125 1.0000
Alzheimer Neutral - Control Pleasant -0.015943 0.00731 102 -2.181 0.2557
Control Neutral - Alzheimer Pleasant 0.012497 0.00730 102 1.711 0.5275
Control Neutral - Control Pleasant -0.002828 0.00433 102 -0.653 0.9865
Alzheimer Pleasant - Control Pleasant -0.015325 0.00728 102 -2.106 0.2927
P value adjustment: tukey method for comparing a family of 6 estimates
clustering_y
options(width = 100)
clustering_y_rep_anova = aov_ez("ID", "clustering_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
clustering_y_afex_plot <-
afex_plot(
clustering_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(clustering_y_afex_plot)

base::print(clustering_y_rep_anova)
Anova Table (Type 3 tests)
Response: clustering_y
Effect df MSE F ges p.value
1 Group 1, 102 0.00 4.19 * .029 .043
2 Stimulus 1.93, 196.63 0.00 7.36 *** .019 <.001
3 Group:Stimulus 1.93, 196.63 0.00 1.02 .003 .362
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(clustering_y_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.539 0.00578 102 0.527 0.550
Control 0.523 0.00504 102 0.513 0.533
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0157 0.00767 102 2.046 0.0433
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.530 0.00408 102 0.522 0.538
Neutral 0.539 0.00475 102 0.530 0.548
Pleasant 0.524 0.00456 102 0.515 0.533
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.00882 0.00382 102 -2.312 0.0587
Unpleasant - Pleasant 0.00641 0.00376 102 1.703 0.2091
Neutral - Pleasant 0.01522 0.00435 102 3.497 0.0020
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
transitivity_y
options(width = 100)
transitivity_y_rep_anova = aov_ez("ID", "transitivity_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
transitivity_y_afex_plot <-
afex_plot(
transitivity_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(transitivity_y_afex_plot)

base::print(transitivity_y_rep_anova)
Anova Table (Type 3 tests)
Response: transitivity_y
Effect df MSE F ges p.value
1 Group 1, 102 0.00 5.69 * .037 .019
2 Stimulus 1.94, 197.80 0.00 3.73 * .012 .027
3 Group:Stimulus 1.94, 197.80 0.00 1.22 .004 .297
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(transitivity_y_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.580 0.00598 102 0.568 0.592
Control 0.561 0.00522 102 0.550 0.571
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0189 0.00793 102 2.386 0.0189
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.571 0.00431 102 0.562 0.579
Neutral 0.576 0.00503 102 0.566 0.586
Pleasant 0.564 0.00505 102 0.554 0.574
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.00595 0.00452 102 -1.316 0.3897
Unpleasant - Pleasant 0.00693 0.00449 102 1.543 0.2751
Neutral - Pleasant 0.01288 0.00512 102 2.516 0.0356
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Heart Activity
Heart Rate
options(width = 100)
heart_rate_rep_anova = aov_ez("ID", "heart_rate", emo_data_clean, within = c("Stimulus"), between = c("Group"))
heart_rate_afex_plot <-
afex_plot(
heart_rate_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(heart_rate_afex_plot)

base::print(heart_rate_rep_anova)
Anova Table (Type 3 tests)
Response: heart_rate
Effect df MSE F ges p.value
1 Group 1, 67 441.57 0.18 .002 .669
2 Stimulus 1.20, 80.21 52.12 1.38 .003 .249
3 Group:Stimulus 1.20, 80.21 52.12 0.22 <.001 .686
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(heart_rate_rep_anova)
Root Mean Square of
the Successive Differences (log10)
options(width = 100)
log10_rmssd_rep_anova = aov_ez("ID", "log10_rmssd", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_rmssd_afex_plot <-
afex_plot(
log10_rmssd_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_rmssd_afex_plot)

base::print(log10_rmssd_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmssd
Effect df MSE F ges p.value
1 Group 1, 67 0.60 2.03 .024 .159
2 Stimulus 1.91, 127.77 0.07 1.58 .004 .210
3 Group:Stimulus 1.91, 127.77 0.07 0.53 .001 .579
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_rmssd_rep_anova)
Electrodermal
Activity
Mean Phasic Component
(log10)
options(width = 100)
log10_ave_phasic_eda_rep_anova = aov_ez("ID", "log10_ave_phasic_eda", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_ave_phasic_eda_afex_plot <-
afex_plot(
log10_ave_phasic_eda_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_ave_phasic_eda_afex_plot)

base::print(log10_ave_phasic_eda_rep_anova)
Anova Table (Type 3 tests)
Response: log10_ave_phasic_eda
Effect df MSE F ges p.value
1 Group 1, 62 1.26 3.20 + .042 .078
2 Stimulus 1.70, 105.12 0.13 18.83 *** .043 <.001
3 Group:Stimulus 1.70, 105.12 0.13 0.12 <.001 .851
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_ave_phasic_eda_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant -1.12 0.0817 62 -1.28 -0.955
Neutral -1.48 0.0909 62 -1.66 -1.295
Pleasant -1.26 0.0915 62 -1.44 -1.077
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.358 0.0671 62 5.339 <.0001
Unpleasant - Pleasant 0.141 0.0452 62 3.124 0.0075
Neutral - Pleasant -0.217 0.0619 62 -3.507 0.0024
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Number of SCR Peaks
(log10)
options(width = 100)
log10_scr_peaks_number_rep_anova = aov_ez("ID", "log10_scr_peaks_number", emo_data_clean[!is.na((emo_data_clean$log10_ave_phasic_eda)), ], within = c("Stimulus"), between = c("Group"))
log10_scr_peaks_number_afex_plot <-
afex_plot(
log10_scr_peaks_number_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
base::print(log10_scr_peaks_number_afex_plot)

base::print(log10_scr_peaks_number_rep_anova)
Anova Table (Type 3 tests)
Response: log10_scr_peaks_number
Effect df MSE F ges p.value
1 Group 1, 62 0.06 0.61 .005 .439
2 Stimulus 1.83, 113.73 0.03 1.34 .010 .266
3 Group:Stimulus 1.83, 113.73 0.03 0.02 <.001 .968
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_scr_peaks_number_rep_anova)
LS0tCnRpdGxlOiAiUG9zdHVyYWwgU3RhYmlsaXR5IGFuZCBFbW90aW9ucyIKYXV0aG9yOiAiQWx2YXJvIFJpdmVyYS1SZWkiCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVCLCAlWScpYCIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGhpZ2hsaWdodDogdGFuZ28KICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgICB0aGVtZTogY2VydWxlYW4KICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogbm8KICAgICAgc21vb3RoX3Njcm9sbDogbm8KICBwZGZfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwpzdWJ0aXRsZTogQ29udHJvbCAmIEFsemhlaW1lciBncm91cHMsIDYwIHNlY29uZHMKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0gCmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSkgCmBgYAoKYGBge3IgQ2xlYW4gYW5kIExvYWQgTGlicmFyaWVzfQpjYXQoIlwwMTQiKSAgICAgIyBjbGVhbiB0ZXJtaW5hbApybShsaXN0ID0gbHMoKSkgIyBjbGVhbiB3b3Jrc3BhY2UKdHJ5KGRldi5vZmYoKSwgc2lsZW50ID0gVFJVRSkgIyBjbG9zZSBhbGwgcGxvdHMKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoR0dhbGx5KQpsaWJyYXJ5KGFmZXgpCmxpYnJhcnkoZW1tZWFucykKbGlicmFyeShFbnZTdGF0cykKYGBgCgpgYGB7ciB0aGVtZSAmIGN1c3RvbSBmdW5jdGlvbnN9Cm15X2RvZGdlIDwtIC4zCnRoZW1lX3NldCh0aGVtZV9taW5pbWFsKCkpCgphX3Bvc3RlcmlvcmkgPC0gZnVuY3Rpb24oYWZleF9hb3YsIHNpZ19sZXZlbCA9IC4wNSkgewogIGZhY3RvcnMgIDwtIGFzLmxpc3Qocm93bmFtZXMoYWZleF9hb3YkYW5vdmFfdGFibGUpKQogIGZvciAoaiBpbiAxOmxlbmd0aChmYWN0b3JzKSkgewogICAgaWYgKGdyZXBsKCc6JywgZmFjdG9yc1tbal1dKSkgewogICAgICBmYWN0b3JzW1tqXV0gPC0gdW5saXN0KHN0cnNwbGl0KGZhY3RvcnNbW2pdXSwgJzonKSkKICAgIH0KICB9CiAgcF92YWx1ZXMgPC0gYWZleF9hb3YkYW5vdmFfdGFibGUkYFByKD5GKWAKICBmb3IgKGkgaW4gMTpsZW5ndGgocF92YWx1ZXMpKSB7CiAgICBpZiAocF92YWx1ZXNbaV0gPD0gc2lnX2xldmVsKSB7CiAgICAgIGNhdChyZXAoJ18nLCA2MCksICdcbicsIHNlcCA9ICcnKQogICAgICBzaG93KGVtbWVhbnMoYWZleF9hb3YsIGZhY3RvcnNbW2ldXSwgY29udHIgPSAncGFpcndpc2UnKSkKICAgIH0KICB9Cn0KYGBgCgpgYGB7ciBMb2FkIERhdGF9CmRhdGFfZGlyICAgICAgIDwtICd+L0luc3luYy9PbmVEcml2ZS8wMExBQldPUktTX29uZWRyaXZlL1Blcm5pYS9Fc3RhYmlsb21ldHJpYV9wYXJraW5zb25fYWx6aGVpbWVyX3lfY29udHJvbGVzX0FudGlndW8vZGF0YS8nCmVtb19kYXRhX2NsZWFuIDwtIHJlYWQuY3N2KHBhc3RlMChkYXRhX2RpciwgJ2Vtb19kYXRhX2NsZWFuX2ZpeC5jc3YnKSwgaGVhZGVyID0gVFJVRSkgfD4gCiAgZmlsdGVyKEdyb3VwICE9ICdQYXJraW5zb24nKSB8PiAKICBtdXRhdGUoU3RpbXVsdXMgICAgICAgPSBmYWN0b3IoU3RpbXVsdXMsIGxldmVscyA9IGMoJ1VucGxlYXNhbnQnLCAnTmV1dHJhbCcsICdQbGVhc2FudCcpKSwKICAgICAgICAgbG9nMTBfYXJlYSAgICAgPSBsb2cxMChhcmVhKSwKICAgICAgICAgbG9nMTBfYXhpczEgICAgPSBsb2cxMChheGlzMSksCiAgICAgICAgIGxvZzEwX2F4aXMyICAgID0gbG9nMTAoYXhpczIpLAogICAgICAgICBsb2cxMF9tZGlzdCAgICA9IGxvZzEwKG1kaXN0KSwKICAgICAgICAgbG9nMTBfcm12ICAgICAgPSBsb2cxMChybXYpLAogICAgICAgICBsb2cxMF9ybXN4ICAgICA9IGxvZzEwKHJtc3gpLAogICAgICAgICBsb2cxMF9ybXN5ICAgICA9IGxvZzEwKHJtc3kpLAogICAgICAgICBsb2cxMF9NUEZ4ICAgICA9IGxvZzEwKE1QRngpLAogICAgICAgICBsb2cxMF9NUEZ5ICAgICA9IGxvZzEwKE1QRnkpLAogICAgICAgICBsb2cxMF9QRUFLeCAgICA9IGxvZzEwKFBFQUt4KSwKICAgICAgICAgbG9nMTBfUEVBS3kgICAgPSBsb2cxMChQRUFLeSksCiAgICAgICAgIGxvZzEwX0Y1MHggICAgID0gbG9nMTAoRjUweCksCiAgICAgICAgIGxvZzEwX0Y1MHkgICAgID0gbG9nMTAoRjUweSksCiAgICAgICAgIGxvZzEwX0Y5NXggICAgID0gbG9nMTAoRjk1eCksCiAgICAgICAgIGxvZzEwX0Y5NXkgICAgID0gbG9nMTAoRjk1eSksCiAgICAgICAgIGxvZzEwX3NhbXBlbl94ID0gbG9nMTAoc2FtcGVuX3gpLAogICAgICAgICBsb2cxMF9zYW1wZW5feSA9IGxvZzEwKHNhbXBlbl95KSwKICAgICAgICAgbG9nMTBfcm1zc2QgICAgPSBsb2cxMChyTVNTRCksCiAgICAgICAgIGxvZzEwX2F2ZV9waGFzaWNfZWRhICAgID0gbG9nMTAoYXZlX3BoYXNpY19lZGEpLAogICAgICAgICBzY3JfcGVha3NfbnVtYmVyICAgICAgICA9IGlmZWxzZShpcy5uYShsb2cxMF9hdmVfcGhhc2ljX2VkYSksIE5BLCBzY3JfcGVha3NfbnVtYmVyKSwKICAgICAgICAgbG9nMTBfc2NyX3BlYWtzX251bWJlciAgPSBsb2cxMChzY3JfcGVha3NfbnVtYmVyKSwKICAgICAgICAgbG9nMTBfcmVjdXJyZW5jZV9yYXRlX3ggPSBsb2cxMChyZWN1cnJlbmNlX3JhdGVfeCksCiAgICAgICAgIGxvZzEwX3JlY190aW1lMl94ICAgICAgID0gbG9nMTAocmVjX3RpbWUyX3gpLAogICAgICAgICBsb2cxMF9yZWN1cnJlbmNlX3JhdGVfeSA9IGxvZzEwKHJlY3VycmVuY2VfcmF0ZV95KSwKICAgICAgICAgbG9nMTBfcmVjX3RpbWUyX3kgICAgICAgPSBsb2cxMChyZWNfdGltZTJfeSkpIHw+IAogIG11dGF0ZV9pZihpcy5jaGFyYWN0ZXIsIGFzLmZhY3RvcikKd3JpdGUuY3N2KGVtb19kYXRhX2NsZWFuLCAgJ2RhdGFfYWx6X2N0cl82MHMuY3N2JywgIHJvdy5uYW1lcyA9IEZBTFNFKQpgYGAKCiMgR2VuZXJhbCBEZXNjcmlwdGlvbgpgYGB7ciBnZW5lcmFsLCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpzdW1tYXJ5KGVtb19kYXRhX2NsZWFuKQpgYGAKCiMjIFRpbWUtZGlzdGFuY2UgcGFyYW1ldGVycwpgYGB7ciB0aW1lX2Rpc3RhbmNlLCBmaWcud2lkdGggPSAxMX0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKdGltZV9kaXN0YW5jZSA8LSBjKCdsb2cxMF9hcmVhJywgJ2xvZzEwX2F4aXMxJywgJ2xvZzEwX2F4aXMyJywgJ2xvZzEwX21kaXN0JywgJ2xvZzEwX3JtdicsICdsb2cxMF9ybXN4JywgJ2xvZzEwX3Jtc3knKQp0aW1lX2Rpc3RhbmNlX3BhaXJzIDwtIGdncGFpcnMoZW1vX2RhdGFfY2xlYW4sCiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucyA9IHRpbWVfZGlzdGFuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgYWVzKGNvbG91ciA9IEdyb3VwLCBhbHBoYSA9IC4yNSksCiAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICBsb3dlciA9IGxpc3QoY29udGludW91cyA9IHdyYXAoInBvaW50cyIpKSkKYmFzZTo6cHJpbnQodGltZV9kaXN0YW5jZV9wYWlycykKc3VtbWFyeShlbW9fZGF0YV9jbGVhblt0aW1lX2Rpc3RhbmNlXSkKYGBgCgojIyBGcmVxdWVuY3kgcGFyYW1ldGVycwpgYGB7ciBmcmVxdWVuY3ksIGZpZy53aWR0aCA9IDExfQpvcHRpb25zKHdpZHRoID0gMTAwKQpmcmVxdWVuY3kgPC0gYygnbG9nMTBfTVBGeCcsICdsb2cxMF9NUEZ5JywgJ2xvZzEwX0Y1MHgnLCAnbG9nMTBfRjUweScsICdsb2cxMF9GOTV4JywgJ2xvZzEwX0Y5NXknKQpmcmVxdWVuY3lfcGFpcnMgPC0gZ2dwYWlycyhlbW9fZGF0YV9jbGVhbiwKICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zID0gZnJlcXVlbmN5LAogICAgICAgICAgICAgICAgICAgICAgIGFlcyhjb2xvdXIgPSBHcm91cCwgYWxwaGEgPSAuMjUpLAogICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgbG93ZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSB3cmFwKCJwb2ludHMiKSkpCmJhc2U6OnByaW50KGZyZXF1ZW5jeV9wYWlycykKc3VtbWFyeShlbW9fZGF0YV9jbGVhbltmcmVxdWVuY3ldKQpgYGAKCiMjIEVudHJvcHkKYGBge3IgZW50cm9weSwgZmlnLndpZHRoID0gMTF9Cm9wdGlvbnMod2lkdGggPSAxMDApCmVudHJvcHkgPC0gYygnZm9yd2FyZF9tb3YnLCAnbG9nMTBfc2FtcGVuX3gnLCAnbG9nMTBfc2FtcGVuX3knLCAnc2FtcGVuX3Jlc3VsX3ZlY3QnLCAnc2FtcGVuX3BoaV9yYWQnLCAnc2FtcGVuX2RlbHRhX3BoaScpCmVudHJvcHlfcGFpcnMgPC0gZ2dwYWlycyhlbW9fZGF0YV9jbGVhbiwKICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zID0gZW50cm9weSwKICAgICAgICAgICAgICAgICAgICAgICBhZXMoY29sb3VyID0gR3JvdXAsIGFscGhhID0gLjI1KSwKICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgIGxvd2VyID0gbGlzdChjb250aW51b3VzID0gd3JhcCgicG9pbnRzIikpKQpiYXNlOjpwcmludChlbnRyb3B5X3BhaXJzKQpzdW1tYXJ5KGVtb19kYXRhX2NsZWFuW2VudHJvcHldKQpgYGAKCiMjIFJlY3VycmVuY2UgcXVhbnRpZmljYXRpb24gYW5hbHlzaXMgKFJRQSkgWApgYGB7ciBycWFfeCwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJvc25lcl9sb2cxMF9yZWNfdGltZTJfeCA8LSByb3NuZXJUZXN0KGVtb19kYXRhX2NsZWFuJGxvZzEwX3JlY190aW1lMl94KQpwcmludChyb3NuZXJfbG9nMTBfcmVjX3RpbWUyX3gpCnJvc25lcl9jbHVzdGVyaW5nX3ggICAgICA8LSByb3NuZXJUZXN0KGVtb19kYXRhX2NsZWFuJGNsdXN0ZXJpbmdfeCkKcHJpbnQocm9zbmVyX2NsdXN0ZXJpbmdfeCkKcnFhX3ggPC0gYygnbG9nMTBfcmVjdXJyZW5jZV9yYXRlX3gnLCAnZGlhZ19lbnRyb3B5X3gnLCAnbG9nMTBfcmVjX3RpbWUyX3gnLCAncmVjX3Blcl9kZW5zX2VudHJfeCcsICdjbHVzdGVyaW5nX3gnLCAndHJhbnNpdGl2aXR5X3gnKQpycWFfeF9wYWlycyA8LSBnZ3BhaXJzKGVtb19kYXRhX2NsZWFuW2Vtb19kYXRhX2NsZWFuJGxvZzEwX3JlY190aW1lMl94PDMgJiBlbW9fZGF0YV9jbGVhbiRjbHVzdGVyaW5nX3g8Ljc4LCBdLAogICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBycWFfeCwKICAgICAgICAgICAgICAgICAgICAgICBhZXMoY29sb3VyID0gR3JvdXAsIGFscGhhID0gLjI1KSwKICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgIGxvd2VyID0gbGlzdChjb250aW51b3VzID0gd3JhcCgicG9pbnRzIikpKQpiYXNlOjpwcmludChycWFfeF9wYWlycykKc3VtbWFyeShlbW9fZGF0YV9jbGVhbltlbW9fZGF0YV9jbGVhbiRsb2cxMF9yZWNfdGltZTJfeDwzICYgZW1vX2RhdGFfY2xlYW4kY2x1c3RlcmluZ194PC43OCwgcnFhX3hdKQpgYGAKCiMjIFJlY3VycmVuY2UgcXVhbnRpZmljYXRpb24gYW5hbHlzaXMgKFJRQSkgWQpgYGB7ciBycWFfeSwgZmlnLndpZHRoID0gMTJ9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJvc25lcl9sb2cxMF9yZWNfdGltZTJfeSA8LSByb3NuZXJUZXN0KGVtb19kYXRhX2NsZWFuJGxvZzEwX3JlY190aW1lMl95LCA2KQpwcmludChyb3NuZXJfbG9nMTBfcmVjX3RpbWUyX3kpCnJxYV95IDwtIGMoJ2xvZzEwX3JlY3VycmVuY2VfcmF0ZV95JywgJ2RpYWdfZW50cm9weV95JywgJ2xvZzEwX3JlY190aW1lMl95JywgJ3JlY19wZXJfZGVuc19lbnRyX3knLCAnY2x1c3RlcmluZ195JywgJ3RyYW5zaXRpdml0eV95JykKcnFhX3lfcGFpcnMgPC0gZ2dwYWlycyhlbW9fZGF0YV9jbGVhbltlbW9fZGF0YV9jbGVhbiRsb2cxMF9yZWNfdGltZTJfeT4yLjQsIF0sCiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucyA9IHJxYV95LAogICAgICAgICAgICAgICAgICAgICAgIGFlcyhjb2xvdXIgPSBHcm91cCwgYWxwaGEgPSAuMjUpLAogICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgbG93ZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSB3cmFwKCJwb2ludHMiKSkpCmJhc2U6OnByaW50KHJxYV95X3BhaXJzKQpzdW1tYXJ5KGVtb19kYXRhX2NsZWFuW2Vtb19kYXRhX2NsZWFuJGxvZzEwX3JlY190aW1lMl95PjIuNCwgcnFhX3ldKQpgYGAKCiMgQ2xhc3NpYyBDZW50ZXIgb2YgUHJlc3N1cmUKCiMjIEFyZWEgKGxvZzEwKQpgYGB7ciBBcmVhLCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQphcmVhX3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfYXJlYSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKYXJlYV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBhcmVhX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQoYXJlYV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGFyZWFfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoYXJlYV9yZXBfYW5vdmEpCmBgYAoKIyMgRWxsaXBzZSBNYWpvciBBeGlzIChsb2cxMCkKYGBge3IgbG9nMTBfYXhpczEsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX2F4aXMxX3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfYXhpczEiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmxvZzEwX2F4aXMxX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX2F4aXMxX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQobG9nMTBfYXhpczFfYWZleF9wbG90KQpiYXNlOjpwcmludChsb2cxMF9heGlzMV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9heGlzMV9yZXBfYW5vdmEpCmBgYAoKIyMgRWxsaXBzZSBNaW5vciBBeGlzIChsb2cxMCkKYGBge3IgbG9nMTBfYXhpczIsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX2F4aXMyX3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfYXhpczIiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmxvZzEwX2F4aXMyX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX2F4aXMyX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQobG9nMTBfYXhpczJfYWZleF9wbG90KQpiYXNlOjpwcmludChsb2cxMF9heGlzMl9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9heGlzMl9yZXBfYW5vdmEpCmBgYAoKIyMgTWVhbiBEaXN0YW5jZSAobG9nMTApCmBgYHtyIG1kaXN0LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQptZGlzdF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX21kaXN0IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQptZGlzdF9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBtZGlzdF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KG1kaXN0X2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQobWRpc3RfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobWRpc3RfcmVwX2Fub3ZhKQpgYGAKCiMjIFJvb3QgTWVhbiBWZWxvY2l0eSAobG9nMTApCmBgYHtyIHJtdiwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKcm12X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfcm12IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpybXZfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgcm12X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQocm12X2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQocm12X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKHJtdl9yZXBfYW5vdmEpCmBgYAoKIyMgUm9vdCBNZWFuIFNxdWFyZSBYIChsb2cxMCkKYGBge3Igcm1zeCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKcm1zeF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX3Jtc3giLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnJtc3hfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgcm1zeF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KHJtc3hfYWZleF9wbG90KQpiYXNlOjpwcmludChybXN4X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKHJtc3hfcmVwX2Fub3ZhKQpgYGAKCiMjIFJvb3QgTWVhbiBTcXVhcmUgWSAobG9nMTApCmBgYHtyIHJtc3ksIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJtc3lfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9ybXN5IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpybXN5X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIHJtc3lfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludChybXN5X2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQocm1zeV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShybXN5X3JlcF9hbm92YSkKYGBgCgojIyBNZWFuIFBvd2VyIEZyZXF1ZW5jeSBYIChsb2cxMCkKYGBge3IgTVBGeCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKTVBGeF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX01QRngiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCk1QRnhfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgTVBGeF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KE1QRnhfYWZleF9wbG90KQpiYXNlOjpwcmludChNUEZ4X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKE1QRnhfcmVwX2Fub3ZhKQpgYGAKCiMjIE1lYW4gUG93ZXIgRnJlcXVlbmN5IFkgKGxvZzEwKQpgYGB7ciBNUEZ5LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpNUEZ5X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfTVBGeSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKTVBGeV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBNUEZ5X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQoTVBGeV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KE1QRnlfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoTVBGeV9yZXBfYW5vdmEpCmBgYAoKIyMgRm9yd2FyZCBNb3ZlbWVudApgYGB7ciBmb3J3YXJkX21vdiwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKZm9yd2FyZF9tb3ZfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJmb3J3YXJkX21vdiIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKZm9yd2FyZF9tb3ZfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgZm9yd2FyZF9tb3ZfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludChmb3J3YXJkX21vdl9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGZvcndhcmRfbW92X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGZvcndhcmRfbW92X3JlcF9hbm92YSkKYGBgCgojIEVudHJvcHkgYW5kIENlbnRlciBvZiBQcmVzc3VyZQojIyBTYW1wbGUgRW50cm9weSBYIChsb2cxMCkKYGBge3Igc2FtcGVuX3gsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX3NhbXBlbl94X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfc2FtcGVuX3giLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmxvZzEwX3NhbXBlbl94X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX3NhbXBlbl94X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQobG9nMTBfc2FtcGVuX3hfYWZleF9wbG90KQpiYXNlOjpwcmludChsb2cxMF9zYW1wZW5feF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9zYW1wZW5feF9yZXBfYW5vdmEpCmBgYAoKIyMgU2FtcGxlIEVudHJvcHkgWSAobG9nMTApCmBgYHtyIHNhbXBlbl95LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpsb2cxMF9zYW1wZW5feV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX3NhbXBlbl95IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpsb2cxMF9zYW1wZW5feV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9zYW1wZW5feV9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KGxvZzEwX3NhbXBlbl95X2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQobG9nMTBfc2FtcGVuX3lfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfc2FtcGVuX3lfcmVwX2Fub3ZhKQpgYGAKCiMjIEFuZ2xlIFNhbXBsZSBFbnRyb3B5CmBgYHtyIHNhbXBlbl9waGlfcmFkLCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpzYW1wZW5fcGhpX3JhZF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgInNhbXBlbl9waGlfcmFkIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpzYW1wZW5fcGhpX3JhZF9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBzYW1wZW5fcGhpX3JhZF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KHNhbXBlbl9waGlfcmFkX2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQoc2FtcGVuX3BoaV9yYWRfcmVwX2Fub3ZhKQphX3Bvc3Rlcmlvcmkoc2FtcGVuX3BoaV9yYWRfcmVwX2Fub3ZhKQpgYGAKCiMjIFJlc3VsdGFudCBWZWN0b3IgU2FtcGxlIEVudHJvcHkKYGBge3Igc2FtcGVuX3Jlc3VsX3ZlY3QsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCnNhbXBlbl9yZXN1bF92ZWN0X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAic2FtcGVuX3Jlc3VsX3ZlY3QiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCnNhbXBlbl9yZXN1bF92ZWN0X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIHNhbXBlbl9yZXN1bF92ZWN0X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQoc2FtcGVuX3Jlc3VsX3ZlY3RfYWZleF9wbG90KQpiYXNlOjpwcmludChzYW1wZW5fcmVzdWxfdmVjdF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShzYW1wZW5fcmVzdWxfdmVjdF9yZXBfYW5vdmEpCmBgYAoKIyMgQW5nbGUgQ2hhbmdlIFNhbXBsZSBFbnRyb3B5CmBgYHtyIHNhbXBlbl9kZWx0YV9waGksIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCnNhbXBlbl9kZWx0YV9waGlfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJzYW1wZW5fZGVsdGFfcGhpIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpzYW1wZW5fZGVsdGFfcGhpX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIHNhbXBlbl9kZWx0YV9waGlfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludChzYW1wZW5fZGVsdGFfcGhpX2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQoc2FtcGVuX2RlbHRhX3BoaV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShzYW1wZW5fZGVsdGFfcGhpX3JlcF9hbm92YSkKYGBgCgojIFJRQSBYCgojIyBsb2cxMF9yZWN1cnJlbmNlX3JhdGVfeAoKYGBge3IgbG9nMTBfcmVjdXJyZW5jZV9yYXRlX3gsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX3JlY3VycmVuY2VfcmF0ZV94X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfcmVjdXJyZW5jZV9yYXRlX3giLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmxvZzEwX3JlY3VycmVuY2VfcmF0ZV94X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX3JlY3VycmVuY2VfcmF0ZV94X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQobG9nMTBfcmVjdXJyZW5jZV9yYXRlX3hfYWZleF9wbG90KQpiYXNlOjpwcmludChsb2cxMF9yZWN1cnJlbmNlX3JhdGVfeF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9yZWN1cnJlbmNlX3JhdGVfeF9yZXBfYW5vdmEpCmBgYAoKIyMgZGlhZ19lbnRyb3B5X3gKCmBgYHtyIGRpYWdfZW50cm9weV94LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpkaWFnX2VudHJvcHlfeF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImRpYWdfZW50cm9weV94IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpkaWFnX2VudHJvcHlfeF9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBkaWFnX2VudHJvcHlfeF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KGRpYWdfZW50cm9weV94X2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQoZGlhZ19lbnRyb3B5X3hfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoZGlhZ19lbnRyb3B5X3hfcmVwX2Fub3ZhKQpgYGAKCiMjIGxvZzEwX3JlY190aW1lMl94CgpgYGB7ciBsb2cxMF9yZWNfdGltZTJfeCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfcmVjX3RpbWUyX3hfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9yZWNfdGltZTJfeCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKbG9nMTBfcmVjX3RpbWUyX3hfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbG9nMTBfcmVjX3RpbWUyX3hfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludChsb2cxMF9yZWNfdGltZTJfeF9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGxvZzEwX3JlY190aW1lMl94X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX3JlY190aW1lMl94X3JlcF9hbm92YSkKYGBgCgojIyByZWNfcGVyX2RlbnNfZW50cl94CgpgYGB7ciByZWNfcGVyX2RlbnNfZW50cl94LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpyZWNfcGVyX2RlbnNfZW50cl94X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAicmVjX3Blcl9kZW5zX2VudHJfeCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVjX3Blcl9kZW5zX2VudHJfeF9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICByZWNfcGVyX2RlbnNfZW50cl94X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQocmVjX3Blcl9kZW5zX2VudHJfeF9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KHJlY19wZXJfZGVuc19lbnRyX3hfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkocmVjX3Blcl9kZW5zX2VudHJfeF9yZXBfYW5vdmEpCmBgYAoKIyMgY2x1c3RlcmluZ194CgpgYGB7ciBjbHVzdGVyaW5nX3gsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmNsdXN0ZXJpbmdfeF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImNsdXN0ZXJpbmdfeCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKY2x1c3RlcmluZ194X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGNsdXN0ZXJpbmdfeF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KGNsdXN0ZXJpbmdfeF9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGNsdXN0ZXJpbmdfeF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShjbHVzdGVyaW5nX3hfcmVwX2Fub3ZhKQpgYGAKCiMjIHRyYW5zaXRpdml0eV94CgpgYGB7ciB0cmFuc2l0aXZpdHlfeCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKdHJhbnNpdGl2aXR5X3hfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJ0cmFuc2l0aXZpdHlfeCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKdHJhbnNpdGl2aXR5X3hfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgdHJhbnNpdGl2aXR5X3hfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludCh0cmFuc2l0aXZpdHlfeF9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KHRyYW5zaXRpdml0eV94X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKHRyYW5zaXRpdml0eV94X3JlcF9hbm92YSkKYGBgCgojIFJRQSBZCgojIyBsb2cxMF9yZWN1cnJlbmNlX3JhdGVfeQoKYGBge3IgbG9nMTBfcmVjdXJyZW5jZV9yYXRlX3ksIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX3JlY3VycmVuY2VfcmF0ZV95X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfcmVjdXJyZW5jZV9yYXRlX3kiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmxvZzEwX3JlY3VycmVuY2VfcmF0ZV95X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX3JlY3VycmVuY2VfcmF0ZV95X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQobG9nMTBfcmVjdXJyZW5jZV9yYXRlX3lfYWZleF9wbG90KQpiYXNlOjpwcmludChsb2cxMF9yZWN1cnJlbmNlX3JhdGVfeV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9yZWN1cnJlbmNlX3JhdGVfeV9yZXBfYW5vdmEpCmBgYAoKIyMgZGlhZ19lbnRyb3B5X3kKCmBgYHtyIGRpYWdfZW50cm9weV95LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpkaWFnX2VudHJvcHlfeV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImRpYWdfZW50cm9weV95IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpkaWFnX2VudHJvcHlfeV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBkaWFnX2VudHJvcHlfeV9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KGRpYWdfZW50cm9weV95X2FmZXhfcGxvdCkKYmFzZTo6cHJpbnQoZGlhZ19lbnRyb3B5X3lfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoZGlhZ19lbnRyb3B5X3lfcmVwX2Fub3ZhKQpgYGAKCiMjIGxvZzEwX3JlY190aW1lMl95CgpgYGB7ciBsb2cxMF9yZWNfdGltZTJfeSwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfcmVjX3RpbWUyX3lfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9yZWNfdGltZTJfeSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKbG9nMTBfcmVjX3RpbWUyX3lfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbG9nMTBfcmVjX3RpbWUyX3lfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludChsb2cxMF9yZWNfdGltZTJfeV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGxvZzEwX3JlY190aW1lMl95X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX3JlY190aW1lMl95X3JlcF9hbm92YSkKYGBgCgojIyByZWNfcGVyX2RlbnNfZW50cl95CgpgYGB7ciByZWNfcGVyX2RlbnNfZW50cl95LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpyZWNfcGVyX2RlbnNfZW50cl95X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAicmVjX3Blcl9kZW5zX2VudHJfeSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcmVjX3Blcl9kZW5zX2VudHJfeV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICByZWNfcGVyX2RlbnNfZW50cl95X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQocmVjX3Blcl9kZW5zX2VudHJfeV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KHJlY19wZXJfZGVuc19lbnRyX3lfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkocmVjX3Blcl9kZW5zX2VudHJfeV9yZXBfYW5vdmEpCmBgYAoKIyMgY2x1c3RlcmluZ195CgpgYGB7ciBjbHVzdGVyaW5nX3ksIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmNsdXN0ZXJpbmdfeV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImNsdXN0ZXJpbmdfeSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKY2x1c3RlcmluZ195X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGNsdXN0ZXJpbmdfeV9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCmJhc2U6OnByaW50KGNsdXN0ZXJpbmdfeV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGNsdXN0ZXJpbmdfeV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShjbHVzdGVyaW5nX3lfcmVwX2Fub3ZhKQpgYGAKCiMjIHRyYW5zaXRpdml0eV95CgpgYGB7ciB0cmFuc2l0aXZpdHlfeSwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKdHJhbnNpdGl2aXR5X3lfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJ0cmFuc2l0aXZpdHlfeSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKdHJhbnNpdGl2aXR5X3lfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgdHJhbnNpdGl2aXR5X3lfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludCh0cmFuc2l0aXZpdHlfeV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KHRyYW5zaXRpdml0eV95X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKHRyYW5zaXRpdml0eV95X3JlcF9hbm92YSkKYGBgCgojIEhlYXJ0IEFjdGl2aXR5CgojIyBIZWFydCBSYXRlCgpgYGB7ciBoZWFydF9yYXRlLCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpoZWFydF9yYXRlX3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAiaGVhcnRfcmF0ZSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKaGVhcnRfcmF0ZV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBoZWFydF9yYXRlX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQoaGVhcnRfcmF0ZV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGhlYXJ0X3JhdGVfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkoaGVhcnRfcmF0ZV9yZXBfYW5vdmEpCmBgYAoKIyMgUm9vdCBNZWFuIFNxdWFyZSBvZiB0aGUgU3VjY2Vzc2l2ZSBEaWZmZXJlbmNlcyAobG9nMTApCgpgYGB7ciBsb2cxMF9ybXNzZCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfcm1zc2RfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9ybXNzZCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKbG9nMTBfcm1zc2RfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbG9nMTBfcm1zc2RfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludChsb2cxMF9ybXNzZF9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGxvZzEwX3Jtc3NkX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX3Jtc3NkX3JlcF9hbm92YSkKYGBgCgojIEVsZWN0cm9kZXJtYWwgQWN0aXZpdHkKCiMjIE1lYW4gUGhhc2ljIENvbXBvbmVudCAobG9nMTApCgpgYGB7ciBsb2cxMF9hdmVfcGhhc2ljX2VkYSwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfYXZlX3BoYXNpY19lZGFfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9hdmVfcGhhc2ljX2VkYSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKbG9nMTBfYXZlX3BoYXNpY19lZGFfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbG9nMTBfYXZlX3BoYXNpY19lZGFfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpiYXNlOjpwcmludChsb2cxMF9hdmVfcGhhc2ljX2VkYV9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGxvZzEwX2F2ZV9waGFzaWNfZWRhX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX2F2ZV9waGFzaWNfZWRhX3JlcF9hbm92YSkKYGBgCgojIyBOdW1iZXIgb2YgU0NSIFBlYWtzIChsb2cxMCkKCmBgYHtyIGxvZzEwX3Njcl9wZWFrc19udW1iZXIsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX3Njcl9wZWFrc19udW1iZXJfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9zY3JfcGVha3NfbnVtYmVyIiwgZW1vX2RhdGFfY2xlYW5bIWlzLm5hKChlbW9fZGF0YV9jbGVhbiRsb2cxMF9hdmVfcGhhc2ljX2VkYSkpLCBdLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKbG9nMTBfc2NyX3BlYWtzX251bWJlcl9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9zY3JfcGVha3NfbnVtYmVyX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKYmFzZTo6cHJpbnQobG9nMTBfc2NyX3BlYWtzX251bWJlcl9hZmV4X3Bsb3QpCmJhc2U6OnByaW50KGxvZzEwX3Njcl9wZWFrc19udW1iZXJfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfc2NyX3BlYWtzX251bWJlcl9yZXBfYW5vdmEpCmBgYAo=