Data Waves

As pre-registered, we sought to collect data to attain 330 analyzable responses for each between-subjects condition (i.e., 330 participants who passed the attention check for each between-subjects condition, totalling 660 usable responses across the entire experiment).


On the first wave of data collection (N = 739), applying the pre-registered exclusion criterion led to adequate samples (i.e., Ns > 330) for all between-subjects datasets. Therefore, we did not launch a second wave of data collection.


Data Cleaning

Before data were loaded into R (below), the following changes were made:

  1. Raw variable names from Qualtrics were renamed to be more descriptive.

  2. If there were any responses for the field “Bot_Catcher,” these cases were deleted. This field was designed to be an invisible question that only bots would answer (as human respondents would not see the field). However, 0 cases were detected.

  3. Duplicate IP addresses were removed. There were only 4 instances of a duplicate IP address, leading to an N = 735.

  4. All other identifying information was removed (e.g., IP addresses, longitude/latitude, etc.).


Loading Data/Packages

Before running this chunk, please load “E2_raw_data.csv” into the R environment.


# packages should be loaded in the following order to avoid function conflicts
library(psych) # for describing data
library(effsize) # for mean difference effect sizes

Attaching package: 㤼㸱effsize㤼㸲

The following object is masked from 㤼㸱package:psych㤼㸲:

    cohen.d
library(sjstats) # for eta-squared effect sizes

Attaching package: 㤼㸱sjstats㤼㸲

The following object is masked from 㤼㸱package:psych㤼㸲:

    phi
library(correlation) # for cleaner correlation test output
library(rmcorr) # for repeated-measures correlation tests
library(tidyverse) # for data manipulation and plotting
Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
-- Attaching packages --------------------------------------- tidyverse 1.3.0 --
v ggplot2 3.3.2     v dplyr   1.0.0
v tibble  3.0.1     v stringr 1.4.0
v tidyr   1.1.0     v forcats 0.5.0
v purrr   0.3.4     
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x ggplot2::%+%()   masks psych::%+%()
x ggplot2::alpha() masks psych::alpha()
x dplyr::filter()  masks stats::filter()
x dplyr::lag()     masks stats::lag()

Data Separation/Recombining

Data were separated into two distinct data sets (for each between-subjects condition). Then, a between-subjects variable was created within each between-subjects dataset. Last, both datasets were recombined.


# creates dataset that only has participants who made judgments of agents who helped stranger-like family members
E2_SL <- E2_raw_data %>%
  filter(SL_CnS_C_m1 >= 0 | SL_CnS_C_m2 >= 0)

# creates dataset that only has participants who made judgments of agents who friend-like family members
E2_FL <- E2_raw_data %>%
  filter(FL_CnS_C_m1 >= 0 | FL_CnS_C_m2 >= 0)

# create between-subjects condition variable
E2_SL$BSs_cond <- rep("Stranger-Like", nrow(E2_SL))
E2_FL$BSs_cond <- rep("Friend-Like", nrow(E2_FL))

# recombine between-subjects data
E2_all <- rbind(E2_SL, E2_FL)

Implementing Attention Checks

Based on our pre-registered criterion, participants who failed a pre-manipulation attention check were to be excluded from all analyses. The attention check was disguised as an experimental scenario; in the scenario text, participants were instructed to respond with the left-most option on the scale for all seven pre-outcome measures.


Participants who responded on average above a 10 on the pre-outcome 100-points scales were excluded. (We chose to use an average because we realized that a small group of participants answered the left-most option on the scale for six of the seven pre-outcome measures, but for the seventh pre-outcome measure, they answered with a number slightly above 10. Through testing how this could have happened, we noticed that participants using a mouse-scroll could have answered the seventh pre-outcome measure correctly, but their mouse-scroll could have dislodged their last answer if they did not click off of the slider first.) This led to a final analyzable N = 699 (a 95% retention rate).


# Create an attention check average variable
E2_all$AC_AVG <- ((E2_all$AC_oblig + E2_all$AC_relate + E2_all$AC_close + E2_all$AC_priorhelp + E2_all$AC_futurehelp + E2_all$AC_priorinteract + E2_all$AC_futureinteract)/7)

# Create dataset that filters out inattentive participants
E2_all_clean <- E2_all %>%
  # excludes participants who were not paying attention
    filter(AC_AVG < 10)

Creating Analysis Variables

# Main DVs
# create single column for each condition's variables that collapses across presentation order of DVs

# e.g., SL_CnS_C_o1 = "Stranger-Like" family members dataset, "No Choice" condition, CUZ obligation judgment, obligation judgment presented first
# to clarify, as noted in the Method section (and SOM), six other pre-outcome judgments were collected, counterbalanced so that obligation judgments were either first or last (1 = obligation first, 2 = obligation last)

E2_all_clean$NoChoice_CUZ_oblig  <- rowSums(E2_all_clean[, c("SL_CnS_C_o1", "SL_CnS_C_o2",
                                                               "FL_CnS_C_o1", "FL_CnS_C_o2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_CUZ_relate  <- rowSums(E2_all_clean[, c("SL_CnS_C_r1", "SL_CnS_C_r2",
                                                                "FL_CnS_C_r1", "FL_CnS_C_r2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_CUZ_close  <- rowSums(E2_all_clean[, c("SL_CnS_C_c1", "SL_CnS_C_c2",
                                                               "FL_CnS_C_c1", "FL_CnS_C_c2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_CUZ_priorhelp  <- rowSums(E2_all_clean[, c("SL_CnS_C_ph1", "SL_CnS_C_ph2",
                                                                   "FL_CnS_C_ph1", "FL_CnS_C_ph2")],
                                                na.rm = T)
E2_all_clean$NoChoice_CUZ_futurehelp  <- rowSums(E2_all_clean[, c("SL_CnS_C_fh1", "SL_CnS_C_fh2",
                                                                   "FL_CnS_C_fh1", "FL_CnS_C_fh2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_CUZ_priorinteract  <- rowSums(E2_all_clean[, c("SL_CnS_C_pi1", "SL_CnS_C_pi2",
                                                                   "FL_CnS_C_pi1", "FL_CnS_C_pi2")],
                                                na.rm = T)
E2_all_clean$NoChoice_CUZ_futureinteract  <- rowSums(E2_all_clean[, c("SL_CnS_C_fi1", "SL_CnS_C_fi2",
                                                                   "FL_CnS_C_fi1", "FL_CnS_C_fi2")],
                                                na.rm = T)
E2_all_clean$NoChoice_CUZ_moral  <- rowSums(E2_all_clean[, c("SL_CnS_C_m1", "SL_CnS_C_m2",
                                                               "FL_CnS_C_m1", "FL_CnS_C_m2")], 
                                                na.rm = T)

E2_all_clean$NoChoice_SIB_oblig  <- rowSums(E2_all_clean[, c("SL_CnS_S_o1", "SL_CnS_S_o2",
                                                               "FL_CnS_S_o1", "FL_CnS_S_o2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_SIB_relate  <- rowSums(E2_all_clean[, c("SL_CnS_S_r1", "SL_CnS_S_r2",
                                                                "FL_CnS_S_r1", "FL_CnS_S_r2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_SIB_close  <- rowSums(E2_all_clean[, c("SL_CnS_S_c1", "SL_CnS_S_c2",
                                                               "FL_CnS_S_c1", "FL_CnS_S_c2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_SIB_priorhelp  <- rowSums(E2_all_clean[, c("SL_CnS_S_ph1", "SL_CnS_S_ph2",
                                                                   "FL_CnS_S_ph1", "FL_CnS_S_ph2")],
                                                na.rm = T)
E2_all_clean$NoChoice_SIB_futurehelp  <- rowSums(E2_all_clean[, c("SL_CnS_S_fh1", "SL_CnS_S_fh2",
                                                                   "FL_CnS_S_fh1", "FL_CnS_S_fh2")], 
                                                na.rm = T)
E2_all_clean$NoChoice_SIB_priorinteract  <- rowSums(E2_all_clean[, c("SL_CnS_S_pi1", "SL_CnS_S_pi2",
                                                                   "FL_CnS_S_pi1", "FL_CnS_S_pi2")],
                                                na.rm = T)
E2_all_clean$NoChoice_SIB_futureinteract  <- rowSums(E2_all_clean[, c("SL_CnS_S_fi1", "SL_CnS_S_fi2",
                                                                   "FL_CnS_S_fi1", "FL_CnS_S_fi2")],
                                                na.rm = T)
E2_all_clean$NoChoice_SIB_moral  <- rowSums(E2_all_clean[, c("SL_CnS_S_m1", "SL_CnS_S_m2",
                                                               "FL_CnS_S_m1", "FL_CnS_S_m2")], 
                                                na.rm = T)

# e.g., SL_CnS_CoS_C_o11 = "Stranger-Like" family members dataset, "Choice" condition, CUZ obligation judgment, CUZ measures first, obligation judgment presented first
# to clarify, as noted in the Method section, two obligation (and other pre-outcome) judgments were collected in these conditions -- one for each potential beneficiary (e.g., CUZ and SIB), and they get averaged together later on in this same code chunk
E2_all_clean$CUZoSIB_CUZ_oblig <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_o11", "SL_CnS_CoS_C_o12",
                                                           "SL_CnS_CoS_C_o21", "SL_CnS_CoS_C_o22",
                                                           "FL_CnS_CoS_C_o11", "FL_CnS_CoS_C_o12",
                                                           "FL_CnS_CoS_C_o21", "FL_CnS_CoS_C_o22")],
                                                    na.rm = T) 
E2_all_clean$CUZoSIB_CUZ_relate <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_r11", "SL_CnS_CoS_C_r12",
                                                           "SL_CnS_CoS_C_r21", "SL_CnS_CoS_C_r22",
                                                           "FL_CnS_CoS_C_r11", "FL_CnS_CoS_C_r12",
                                                           "FL_CnS_CoS_C_r21", "FL_CnS_CoS_C_r22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_CUZ_close <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_c11", "SL_CnS_CoS_C_c12",
                                                           "SL_CnS_CoS_C_c21", "SL_CnS_CoS_C_c22",
                                                           "FL_CnS_CoS_C_c11", "FL_CnS_CoS_C_c12",
                                                           "FL_CnS_CoS_C_c21", "FL_CnS_CoS_C_c22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_CUZ_priorhelp <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_ph11", "SL_CnS_CoS_C_ph12",
                                                           "SL_CnS_CoS_C_ph21", "SL_CnS_CoS_C_ph22",
                                                           "FL_CnS_CoS_C_ph11", "FL_CnS_CoS_C_ph12",
                                                           "FL_CnS_CoS_C_ph21", "FL_CnS_CoS_C_ph22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_CUZ_futurehelp <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_fh11", "SL_CnS_CoS_C_fh12",
                                                           "SL_CnS_CoS_C_fh21", "SL_CnS_CoS_C_fh22",
                                                           "FL_CnS_CoS_C_fh11", "FL_CnS_CoS_C_fh12",
                                                           "FL_CnS_CoS_C_fh21", "FL_CnS_CoS_C_fh22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_CUZ_priorinteract <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_pi11", "SL_CnS_CoS_C_pi12",
                                                           "SL_CnS_CoS_C_pi21", "SL_CnS_CoS_C_pi22",
                                                           "FL_CnS_CoS_C_pi11", "FL_CnS_CoS_C_pi12",
                                                           "FL_CnS_CoS_C_pi21", "FL_CnS_CoS_C_pi22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_CUZ_futureinteract <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_fi11", "SL_CnS_CoS_C_fi12",
                                                           "SL_CnS_CoS_C_fi21", "SL_CnS_CoS_C_fi22",
                                                           "FL_CnS_CoS_C_fi11", "FL_CnS_CoS_C_fi12",
                                                           "FL_CnS_CoS_C_fi21", "FL_CnS_CoS_C_fi22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_SIB_oblig <- rowSums(E2_all_clean[, c("SL_CnS_CoS_S_o11", "SL_CnS_CoS_S_o12",
                                                           "SL_CnS_CoS_S_o21", "SL_CnS_CoS_S_o22",
                                                           "FL_CnS_CoS_S_o11", "FL_CnS_CoS_S_o12",
                                                           "FL_CnS_CoS_S_o21", "FL_CnS_CoS_S_o22")],
                                                    na.rm = T) 
E2_all_clean$CUZoSIB_SIB_relate <- rowSums(E2_all_clean[, c("SL_CnS_CoS_S_r11", "SL_CnS_CoS_S_r12",
                                                           "SL_CnS_CoS_S_r21", "SL_CnS_CoS_S_r22",
                                                           "FL_CnS_CoS_S_r11", "FL_CnS_CoS_S_r12",
                                                           "FL_CnS_CoS_S_r21", "FL_CnS_CoS_S_r22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_SIB_close <- rowSums(E2_all_clean[, c("SL_CnS_CoS_S_c11", "SL_CnS_CoS_S_c12",
                                                           "SL_CnS_CoS_S_c21", "SL_CnS_CoS_S_c22",
                                                           "FL_CnS_CoS_S_c11", "FL_CnS_CoS_S_c12",
                                                           "FL_CnS_CoS_S_c21", "FL_CnS_CoS_S_c22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_SIB_priorhelp <- rowSums(E2_all_clean[, c("SL_CnS_CoS_S_ph11", "SL_CnS_CoS_S_ph12",
                                                           "SL_CnS_CoS_S_ph21", "SL_CnS_CoS_S_ph22",
                                                           "FL_CnS_CoS_S_ph11", "FL_CnS_CoS_S_ph12",
                                                           "FL_CnS_CoS_S_ph21", "FL_CnS_CoS_S_ph22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_SIB_futurehelp <- rowSums(E2_all_clean[, c("SL_CnS_CoS_S_fh11", "SL_CnS_CoS_S_fh12",
                                                           "SL_CnS_CoS_S_fh21", "SL_CnS_CoS_S_fh22",
                                                           "FL_CnS_CoS_S_fh11", "FL_CnS_CoS_S_fh12",
                                                           "FL_CnS_CoS_S_fh21", "FL_CnS_CoS_S_fh22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_SIB_priorinteract <- rowSums(E2_all_clean[, c("SL_CnS_CoS_S_pi11", "SL_CnS_CoS_S_pi12",
                                                           "SL_CnS_CoS_S_pi21", "SL_CnS_CoS_S_pi22",
                                                           "FL_CnS_CoS_S_pi11", "FL_CnS_CoS_S_pi12",
                                                           "FL_CnS_CoS_S_pi21", "FL_CnS_CoS_S_pi22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_SIB_futureinteract <- rowSums(E2_all_clean[, c("SL_CnS_CoS_S_fi11", "SL_CnS_CoS_S_fi12",
                                                           "SL_CnS_CoS_S_fi21", "SL_CnS_CoS_S_fi22",
                                                           "FL_CnS_CoS_S_fi11", "FL_CnS_CoS_S_fi12",
                                                           "FL_CnS_CoS_S_fi21", "FL_CnS_CoS_S_fi22")],
                                                    na.rm = T)
E2_all_clean$CUZoSIB_CUZ_moral <- rowSums(E2_all_clean[, c("SL_CnS_CoS_C_m11", "SL_CnS_CoS_C_m12",
                                                           "SL_CnS_CoS_C_m21", "SL_CnS_CoS_C_m22",
                                                           "FL_CnS_CoS_C_m11", "FL_CnS_CoS_C_m12",
                                                           "FL_CnS_CoS_C_m21", "FL_CnS_CoS_C_m22")],
                                                    na.rm = T)

E2_all_clean$SIBoCUZ_CUZ_oblig <- rowSums(E2_all_clean[, c("SL_CnS_SoC_C_o11", "SL_CnS_SoC_C_o12",
                                                           "SL_CnS_SoC_C_o21", "SL_CnS_SoC_C_o22",
                                                           "FL_CnS_SoC_C_o11", "FL_CnS_SoC_C_o12",
                                                           "FL_CnS_SoC_C_o21", "FL_CnS_SoC_C_o22")],
                                                    na.rm = T) 
E2_all_clean$SIBoCUZ_CUZ_relate <- rowSums(E2_all_clean[, c("SL_CnS_SoC_C_r11", "SL_CnS_SoC_C_r12",
                                                           "SL_CnS_SoC_C_r21", "SL_CnS_SoC_C_r22",
                                                           "FL_CnS_SoC_C_r11", "FL_CnS_SoC_C_r12",
                                                           "FL_CnS_SoC_C_r21", "FL_CnS_SoC_C_r22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_CUZ_close <- rowSums(E2_all_clean[, c("SL_CnS_SoC_C_c11", "SL_CnS_SoC_C_c12",
                                                           "SL_CnS_SoC_C_c21", "SL_CnS_SoC_C_c22",
                                                           "FL_CnS_SoC_C_c11", "FL_CnS_SoC_C_c12",
                                                           "FL_CnS_SoC_C_c21", "FL_CnS_SoC_C_c22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_CUZ_priorhelp <- rowSums(E2_all_clean[, c("SL_CnS_SoC_C_ph11", "SL_CnS_SoC_C_ph12",
                                                           "SL_CnS_SoC_C_ph21", "SL_CnS_SoC_C_ph22",
                                                           "FL_CnS_SoC_C_ph11", "FL_CnS_SoC_C_ph12",
                                                           "FL_CnS_SoC_C_ph21", "FL_CnS_SoC_C_ph22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_CUZ_futurehelp <- rowSums(E2_all_clean[, c("SL_CnS_SoC_C_fh11", "SL_CnS_SoC_C_fh12",
                                                           "SL_CnS_SoC_C_fh21", "SL_CnS_SoC_C_fh22",
                                                           "FL_CnS_SoC_C_fh11", "FL_CnS_SoC_C_fh12",
                                                           "FL_CnS_SoC_C_fh21", "FL_CnS_SoC_C_fh22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_CUZ_priorinteract <- rowSums(E2_all_clean[, c("SL_CnS_SoC_C_pi11", "SL_CnS_SoC_C_pi12",
                                                           "SL_CnS_SoC_C_pi21", "SL_CnS_SoC_C_pi22",
                                                           "FL_CnS_SoC_C_pi11", "FL_CnS_SoC_C_pi12",
                                                           "FL_CnS_SoC_C_pi21", "FL_CnS_SoC_C_pi22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_CUZ_futureinteract <- rowSums(E2_all_clean[, c("SL_CnS_SoC_C_fi11", "SL_CnS_SoC_C_fi12",
                                                           "SL_CnS_SoC_C_fi21", "SL_CnS_SoC_C_fi22",
                                                           "FL_CnS_SoC_C_fi11", "FL_CnS_SoC_C_fi12",
                                                           "FL_CnS_SoC_C_fi21", "FL_CnS_SoC_C_fi22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_SIB_oblig <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_o11", "SL_CnS_SoC_S_o12",
                                                           "SL_CnS_SoC_S_o21", "SL_CnS_SoC_S_o22",
                                                           "FL_CnS_SoC_S_o11", "FL_CnS_SoC_S_o12",
                                                           "FL_CnS_SoC_S_o21", "FL_CnS_SoC_S_o22")],
                                                    na.rm = T) 
E2_all_clean$SIBoCUZ_SIB_relate <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_r11", "SL_CnS_SoC_S_r12",
                                                           "SL_CnS_SoC_S_r21", "SL_CnS_SoC_S_r22",
                                                           "FL_CnS_SoC_S_r11", "FL_CnS_SoC_S_r12",
                                                           "FL_CnS_SoC_S_r21", "FL_CnS_SoC_S_r22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_SIB_close <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_c11", "SL_CnS_SoC_S_c12",
                                                           "SL_CnS_SoC_S_c21", "SL_CnS_SoC_S_c22",
                                                           "FL_CnS_SoC_S_c11", "FL_CnS_SoC_S_c12",
                                                           "FL_CnS_SoC_S_c21", "FL_CnS_SoC_S_c22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_SIB_priorhelp <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_ph11", "SL_CnS_SoC_S_ph12",
                                                           "SL_CnS_SoC_S_ph21", "SL_CnS_SoC_S_ph22",
                                                           "FL_CnS_SoC_S_ph11", "FL_CnS_SoC_S_ph12",
                                                           "FL_CnS_SoC_S_ph21", "FL_CnS_SoC_S_ph22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_SIB_futurehelp <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_fh11", "SL_CnS_SoC_S_fh12",
                                                           "SL_CnS_SoC_S_fh21", "SL_CnS_SoC_S_fh22",
                                                           "FL_CnS_SoC_S_fh11", "FL_CnS_SoC_S_fh12",
                                                           "FL_CnS_SoC_S_fh21", "FL_CnS_SoC_S_fh22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_SIB_priorinteract <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_pi11", "SL_CnS_SoC_S_pi12",
                                                           "SL_CnS_SoC_S_pi21", "SL_CnS_SoC_S_pi22",
                                                           "FL_CnS_SoC_S_pi11", "FL_CnS_SoC_S_pi12",
                                                           "FL_CnS_SoC_S_pi21", "FL_CnS_SoC_S_pi22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_SIB_futureinteract <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_fi11", "SL_CnS_SoC_S_fi12",
                                                           "SL_CnS_SoC_S_fi21", "SL_CnS_SoC_S_fi22",
                                                           "FL_CnS_SoC_S_fi11", "FL_CnS_SoC_S_fi12",
                                                           "FL_CnS_SoC_S_fi21", "FL_CnS_SoC_S_fi22")],
                                                    na.rm = T)
E2_all_clean$SIBoCUZ_SIB_moral <- rowSums(E2_all_clean[, c("SL_CnS_SoC_S_m11", "SL_CnS_SoC_S_m12",
                                                           "SL_CnS_SoC_S_m21", "SL_CnS_SoC_S_m22",
                                                           "FL_CnS_SoC_S_m11", "FL_CnS_SoC_S_m12",
                                                           "FL_CnS_SoC_S_m21", "FL_CnS_SoC_S_m22")],
                                                    na.rm = T)


E2_all_clean$Choice_CUZ_oblig  <- (E2_all_clean$CUZoSIB_CUZ_oblig +
                                   E2_all_clean$SIBoCUZ_CUZ_oblig)/2 # creates pre-reg'd index
E2_all_clean$Choice_CUZ_relate  <- (E2_all_clean$CUZoSIB_CUZ_relate +
                                    E2_all_clean$SIBoCUZ_CUZ_relate)/2 # creates pre-reg'd index
E2_all_clean$Choice_CUZ_close  <- (E2_all_clean$CUZoSIB_CUZ_close +
                                   E2_all_clean$SIBoCUZ_CUZ_close)/2 # creates pre-reg'd index
E2_all_clean$Choice_CUZ_priorhelp  <- (E2_all_clean$CUZoSIB_CUZ_priorhelp +
                                       E2_all_clean$SIBoCUZ_CUZ_priorhelp)/2 # creates pre-reg'd index
E2_all_clean$Choice_CUZ_futurehelp  <- (E2_all_clean$CUZoSIB_CUZ_futurehelp +
                                        E2_all_clean$SIBoCUZ_CUZ_futurehelp)/2 # creates pre-reg'd index
E2_all_clean$Choice_CUZ_priorinteract  <- (E2_all_clean$CUZoSIB_CUZ_priorinteract +
                                           E2_all_clean$SIBoCUZ_CUZ_priorinteract)/2 # creates pre-reg'd index
E2_all_clean$Choice_CUZ_futureinteract  <- (E2_all_clean$CUZoSIB_CUZ_futureinteract +
                                            E2_all_clean$SIBoCUZ_CUZ_futureinteract)/2 # creates pre-reg'd index
E2_all_clean$Choice_CUZ_moral  <- E2_all_clean$CUZoSIB_CUZ_moral # single judgment (post-outcome)

E2_all_clean$Choice_SIB_oblig  <- (E2_all_clean$CUZoSIB_SIB_oblig +
                                   E2_all_clean$SIBoCUZ_SIB_oblig)/2 # creates pre-reg'd index
E2_all_clean$Choice_SIB_relate  <- (E2_all_clean$CUZoSIB_SIB_relate +
                                    E2_all_clean$SIBoCUZ_SIB_relate)/2 # creates pre-reg'd index
E2_all_clean$Choice_SIB_close  <- (E2_all_clean$CUZoSIB_SIB_close +
                                   E2_all_clean$SIBoCUZ_SIB_close)/2 # creates pre-reg'd index
E2_all_clean$Choice_SIB_priorhelp  <- (E2_all_clean$CUZoSIB_SIB_priorhelp +
                                       E2_all_clean$SIBoCUZ_SIB_priorhelp)/2 # creates pre-reg'd index
E2_all_clean$Choice_SIB_futurehelp  <- (E2_all_clean$CUZoSIB_SIB_futurehelp +
                                        E2_all_clean$SIBoCUZ_SIB_futurehelp)/2 # creates pre-reg'd index
E2_all_clean$Choice_SIB_priorinteract  <- (E2_all_clean$CUZoSIB_SIB_priorinteract +
                                           E2_all_clean$SIBoCUZ_SIB_priorinteract)/2 # creates pre-reg'd index
E2_all_clean$Choice_SIB_futureinteract  <- (E2_all_clean$CUZoSIB_SIB_futureinteract +
                                            E2_all_clean$SIBoCUZ_SIB_futureinteract)/2 # creates pre-reg'd index
E2_all_clean$Choice_SIB_moral  <- E2_all_clean$SIBoCUZ_SIB_moral # single judgment (post-outcome)


# Difference Scores
# CUZminusSIB obligation within No Choice or Choice conditions (for diff score corrs and ind. diffs analyses)
E2_all_clean$NoChoice_CUZminusSIB_oblig <- E2_all_clean$NoChoice_CUZ_oblig - E2_all_clean$NoChoice_SIB_oblig
E2_all_clean$NoChoice_CUZminusSIB_relate <- E2_all_clean$NoChoice_CUZ_relate - E2_all_clean$NoChoice_SIB_relate
E2_all_clean$NoChoice_CUZminusSIB_close <- E2_all_clean$NoChoice_CUZ_close - E2_all_clean$NoChoice_SIB_close
E2_all_clean$NoChoice_CUZminusSIB_priorhelp <- E2_all_clean$NoChoice_CUZ_priorhelp - E2_all_clean$NoChoice_SIB_priorhelp
E2_all_clean$NoChoice_CUZminusSIB_futurehelp <- E2_all_clean$NoChoice_CUZ_futurehelp - E2_all_clean$NoChoice_SIB_futurehelp
E2_all_clean$NoChoice_CUZminusSIB_priorinteract <- E2_all_clean$NoChoice_CUZ_priorinteract - E2_all_clean$NoChoice_SIB_priorinteract
E2_all_clean$NoChoice_CUZminusSIB_futureinteract <- E2_all_clean$NoChoice_CUZ_futureinteract - E2_all_clean$NoChoice_SIB_futureinteract
E2_all_clean$NoChoice_CUZminusSIB_moral <- E2_all_clean$NoChoice_CUZ_moral - E2_all_clean$NoChoice_SIB_moral

E2_all_clean$Choice_CUZminusSIB_oblig <- E2_all_clean$Choice_CUZ_oblig - E2_all_clean$Choice_SIB_oblig
E2_all_clean$Choice_CUZminusSIB_relate <- E2_all_clean$Choice_CUZ_relate - E2_all_clean$Choice_SIB_relate
E2_all_clean$Choice_CUZminusSIB_close <- E2_all_clean$Choice_CUZ_close - E2_all_clean$Choice_SIB_close
E2_all_clean$Choice_CUZminusSIB_priorhelp <- E2_all_clean$Choice_CUZ_priorhelp - E2_all_clean$Choice_SIB_priorhelp
E2_all_clean$Choice_CUZminusSIB_futurehelp <- E2_all_clean$Choice_CUZ_futurehelp - E2_all_clean$Choice_SIB_futurehelp
E2_all_clean$Choice_CUZminusSIB_priorinteract <- E2_all_clean$Choice_CUZ_priorinteract - E2_all_clean$Choice_SIB_priorinteract
E2_all_clean$Choice_CUZminusSIB_futureinteract <- E2_all_clean$Choice_CUZ_futureinteract - E2_all_clean$Choice_SIB_futureinteract
E2_all_clean$Choice_CUZminusSIB_moral <- E2_all_clean$Choice_CUZ_moral - E2_all_clean$Choice_SIB_moral


# Individual Difference Measures (for ind. diffs analyses)

# MAC (Morality-as-Cooperation scale) composites
# first need to reverse score property judgment subscale per Curry et al. 2019
E2_all_clean$MAC_Jud_19_r <- ((102 - (E2_all_clean$MAC_Jud_19 +1)) - 1) 
E2_all_clean$MAC_Jud_20_r <- ((102 - (E2_all_clean$MAC_Jud_20 +1)) - 1)
E2_all_clean$MAC_Jud_21_r <- ((102 - (E2_all_clean$MAC_Jud_21 +1)) - 1)

E2_all_clean$MAC_Fam_Combined <- ((E2_all_clean$MAC_Jud_1 + E2_all_clean$MAC_Jud_2 + E2_all_clean$MAC_Jud_3 +
                                       E2_all_clean$MAC_Rel_1 + E2_all_clean$MAC_Rel_2 + E2_all_clean$MAC_Rel_3)/6)
E2_all_clean$MAC_Fam_Jud <- ((E2_all_clean$MAC_Jud_1 + E2_all_clean$MAC_Jud_2 + E2_all_clean$MAC_Jud_3)/3)
E2_all_clean$MAC_Fam_Rel <- ((E2_all_clean$MAC_Rel_1 + E2_all_clean$MAC_Rel_2 + E2_all_clean$MAC_Rel_3)/3)

E2_all_clean$MAC_Group_Combined <- ((E2_all_clean$MAC_Jud_4 + E2_all_clean$MAC_Jud_5 + E2_all_clean$MAC_Jud_6 +
                                       E2_all_clean$MAC_Rel_4 + E2_all_clean$MAC_Rel_5 + E2_all_clean$MAC_Rel_6)/6)
E2_all_clean$MAC_Group_Jud <- ((E2_all_clean$MAC_Jud_4 + E2_all_clean$MAC_Jud_5 + E2_all_clean$MAC_Jud_6)/3)
E2_all_clean$MAC_Group_Rel <- ((E2_all_clean$MAC_Rel_4 + E2_all_clean$MAC_Rel_5 + E2_all_clean$MAC_Rel_6)/3)

E2_all_clean$MAC_Rec_Combined <- ((E2_all_clean$MAC_Jud_7 + E2_all_clean$MAC_Jud_8 + E2_all_clean$MAC_Jud_9 +
                                       E2_all_clean$MAC_Rel_7 + E2_all_clean$MAC_Rel_8 + E2_all_clean$MAC_Rel_9)/6)
E2_all_clean$MAC_Rec_Jud <- ((E2_all_clean$MAC_Jud_7 + E2_all_clean$MAC_Jud_8 + E2_all_clean$MAC_Jud_9)/3)
E2_all_clean$MAC_Rec_Rel <- ((E2_all_clean$MAC_Rel_7 + E2_all_clean$MAC_Rel_8 + E2_all_clean$MAC_Rel_9)/3)

E2_all_clean$MAC_Hero_Combined <- ((E2_all_clean$MAC_Jud_10 + E2_all_clean$MAC_Jud_11 + E2_all_clean$MAC_Jud_12 +
                                       E2_all_clean$MAC_Rel_10 + E2_all_clean$MAC_Rel_11 + E2_all_clean$MAC_Rel_12)/6)
E2_all_clean$MAC_Hero_Jud <- ((E2_all_clean$MAC_Jud_10 + E2_all_clean$MAC_Jud_11 + E2_all_clean$MAC_Jud_12)/3)
E2_all_clean$MAC_Hero_Rel <- ((E2_all_clean$MAC_Rel_10 + E2_all_clean$MAC_Rel_11 + E2_all_clean$MAC_Rel_12)/3)

E2_all_clean$MAC_Def_Combined <- ((E2_all_clean$MAC_Jud_13 + E2_all_clean$MAC_Jud_14 + E2_all_clean$MAC_Jud_15 +
                                       E2_all_clean$MAC_Rel_13 + E2_all_clean$MAC_Rel_14 + E2_all_clean$MAC_Rel_15)/6)
E2_all_clean$MAC_Def_Jud <- ((E2_all_clean$MAC_Jud_13 + E2_all_clean$MAC_Jud_14 + E2_all_clean$MAC_Jud_15)/3)
E2_all_clean$MAC_Def_Rel <- ((E2_all_clean$MAC_Rel_13 + E2_all_clean$MAC_Rel_14 + E2_all_clean$MAC_Rel_15)/3)

E2_all_clean$MAC_Fair_Combined <- ((E2_all_clean$MAC_Jud_16 + E2_all_clean$MAC_Jud_17 + E2_all_clean$MAC_Jud_18 +
                                       E2_all_clean$MAC_Rel_16 + E2_all_clean$MAC_Rel_17 + E2_all_clean$MAC_Rel_18)/6)
E2_all_clean$MAC_Fair_Jud <- ((E2_all_clean$MAC_Jud_16 + E2_all_clean$MAC_Jud_17 + E2_all_clean$MAC_Jud_18)/3)
E2_all_clean$MAC_Fair_Rel <- ((E2_all_clean$MAC_Rel_16 + E2_all_clean$MAC_Rel_17 + E2_all_clean$MAC_Rel_18)/3)

E2_all_clean$MAC_Prop_Combined <- ((E2_all_clean$MAC_Jud_19_r + E2_all_clean$MAC_Jud_20_r + E2_all_clean$MAC_Jud_21_r +
                                       E2_all_clean$MAC_Rel_19 + E2_all_clean$MAC_Rel_20 + E2_all_clean$MAC_Rel_21)/6)
E2_all_clean$MAC_Prop_Jud <- ((E2_all_clean$MAC_Jud_19_r + E2_all_clean$MAC_Jud_20_r + E2_all_clean$MAC_Jud_21_r)/3)
E2_all_clean$MAC_Prop_Rel <- ((E2_all_clean$MAC_Rel_19 + E2_all_clean$MAC_Rel_20 + E2_all_clean$MAC_Rel_21)/3)


# MFQ (Moral Foundations Theory scale) composites
E2_all_clean$MFQ_Harm_Combined <- ((E2_all_clean$MFQ_Jud_1 + E2_all_clean$MFQ_Jud_2 + E2_all_clean$MFQ_Jud_3 +
                                       E2_all_clean$MFQ_Rel_1 + E2_all_clean$MFQ_Rel_2 + E2_all_clean$MFQ_Rel_3)/6)
E2_all_clean$MFQ_Harm_Jud <- ((E2_all_clean$MFQ_Jud_1 + E2_all_clean$MFQ_Jud_2 + E2_all_clean$MFQ_Jud_3)/3)
E2_all_clean$MFQ_Harm_Rel <- ((E2_all_clean$MFQ_Rel_1 + E2_all_clean$MFQ_Rel_2 + E2_all_clean$MFQ_Rel_3)/3)

E2_all_clean$MFQ_Fairness_Combined <- ((E2_all_clean$MFQ_Jud_4 + E2_all_clean$MFQ_Jud_5 + E2_all_clean$MFQ_Jud_6 +
                                       E2_all_clean$MFQ_Rel_4 + E2_all_clean$MFQ_Rel_5 + E2_all_clean$MFQ_Rel_6)/6)
E2_all_clean$MFQ_Fairness_Jud <- ((E2_all_clean$MFQ_Jud_4 + E2_all_clean$MFQ_Jud_5 + E2_all_clean$MFQ_Jud_6)/3)
E2_all_clean$MFQ_Fairness_Rel <- ((E2_all_clean$MFQ_Rel_4 + E2_all_clean$MFQ_Rel_5 + E2_all_clean$MFQ_Rel_6)/3)

E2_all_clean$MFQ_Loyalty_Combined <- ((E2_all_clean$MFQ_Jud_7 + E2_all_clean$MFQ_Jud_8 + E2_all_clean$MFQ_Jud_9 +
                                       E2_all_clean$MFQ_Rel_7 + E2_all_clean$MFQ_Rel_8 + E2_all_clean$MFQ_Rel_9)/6)
E2_all_clean$MFQ_Loyalty_Jud <- ((E2_all_clean$MFQ_Jud_7 + E2_all_clean$MFQ_Jud_8 + E2_all_clean$MFQ_Jud_9)/3)
E2_all_clean$MFQ_Loyalty_Rel <- ((E2_all_clean$MFQ_Rel_7 + E2_all_clean$MFQ_Rel_8 + E2_all_clean$MFQ_Rel_9)/3)

E2_all_clean$MFQ_Authority_Combined <- ((E2_all_clean$MFQ_Jud_10 + E2_all_clean$MFQ_Jud_11 + E2_all_clean$MFQ_Jud_12 +
                                       E2_all_clean$MFQ_Rel_10 + E2_all_clean$MFQ_Rel_11 + E2_all_clean$MFQ_Rel_12)/6)
E2_all_clean$MFQ_Authority_Jud <- ((E2_all_clean$MFQ_Jud_10 + E2_all_clean$MFQ_Jud_11 + E2_all_clean$MFQ_Jud_12)/3)
E2_all_clean$MFQ_Authority_Rel <- ((E2_all_clean$MFQ_Rel_10 + E2_all_clean$MFQ_Rel_11 + E2_all_clean$MFQ_Rel_12)/3)

E2_all_clean$MFQ_Purity_Combined <- ((E2_all_clean$MFQ_Jud_13 + E2_all_clean$MFQ_Jud_14 + E2_all_clean$MFQ_Jud_15 +
                                       E2_all_clean$MFQ_Rel_13 + E2_all_clean$MFQ_Rel_14 + E2_all_clean$MFQ_Rel_15)/6)
E2_all_clean$MFQ_Purity_Jud <- ((E2_all_clean$MFQ_Jud_13 + E2_all_clean$MFQ_Jud_14 + E2_all_clean$MFQ_Jud_15)/3)
E2_all_clean$MFQ_Purity_Rel <- ((E2_all_clean$MFQ_Rel_13 + E2_all_clean$MFQ_Rel_14 + E2_all_clean$MFQ_Rel_15)/3)

# OUS (Oxford Utilitarianism Scale) composites
E2_all_clean$OUS_IB <- ((E2_all_clean$OUS_IB1 + E2_all_clean$OUS_IB2 + E2_all_clean$OUS_IB3 +
                             E2_all_clean$OUS_IB4 + E2_all_clean$OUS_IB5)/5)
E2_all_clean$OUS_IH <- ((E2_all_clean$OUS_IH1 + E2_all_clean$OUS_IH2 + E2_all_clean$OUS_IH3 +
                             E2_all_clean$OUS_IH4)/4)

Creating Analyzable Between-Subjects Datasets

# Stranger-Like family members
E2_SL_clean <- E2_all_clean %>%
  filter(BSs_cond == 'Stranger-Like') %>%
  # select only variables that are relevant to Stranger-Like data
  select(
    ResponseId, # selects variable
    Age:Urban_Rural, # selects demographic variables
    MAC_Jud_1:MAC_Jud_18, MAC_Jud_19_r:MAC_Jud_21_r, MAC_Rel_1:MAC_Rel_21, 
    MFQ_Jud_1:MFQ_Jud_15, MFQ_Rel_1:MFQ_Rel_15, 
    OUS_IB1:OUS_IB5, OUS_IH1:OUS_IH4, # selects raw ind. diff variables (for reliabilty check)
    MAC_Fam_Combined:OUS_IH, # selects composited ind. diff variables
    BSs_cond, # selects variable for between-subjects condition
    SL_Dist_Scen:SL_CloseODist_Scen, # selects scenario-to-condition variables for SL data
    NoChoice_CUZ_oblig:NoChoice_SIB_moral, # selects NoChoice DVs for SL data
    Choice_CUZ_oblig:Choice_SIB_moral, # selects Choice DVs for SL data
    NoChoice_CUZminusSIB_oblig:Choice_CUZminusSIB_moral # selects difference score variables for SL data
    )

# Friend-like family members
E2_FL_clean <- E2_all_clean %>%
  filter(BSs_cond == 'Friend-Like') %>%
  # select only variables that are relevant to "Friend-Like" data
  select(
    ResponseId, # selects variable
    Age:Urban_Rural, # selects demographic variables
    MAC_Jud_1:MAC_Jud_18, MAC_Jud_19_r:MAC_Jud_21_r, MAC_Rel_1:MAC_Rel_21, 
    MFQ_Jud_1:MFQ_Jud_15, MFQ_Rel_1:MFQ_Rel_15, 
    OUS_IB1:OUS_IB5, OUS_IH1:OUS_IH4, # selects raw ind. diff variables (for reliabilty check)
    MAC_Fam_Combined:OUS_IH, # selects composited ind. diff variables
    BSs_cond, # selects variable for between-subjects condition
    FL_Dist_Scen:FL_CloseODist_Scen, # selects scenario-to-condition variables for FL data
    NoChoice_CUZ_oblig:NoChoice_SIB_moral, # selects NoChoice DVs for FL data
    Choice_CUZ_oblig:Choice_SIB_moral, # selects Choice DVs for FL data
    NoChoice_CUZminusSIB_oblig:Choice_CUZminusSIB_moral # selects difference score variables for FL data
    )

Tidying Data

# Convert data from wide to long format
# Stranger-Like
E2_SL_cond_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(SL_Dist_Scen, SL_Close_Scen, SL_DistOClose_Scen, SL_CloseODist_Scen),
    names_to = "WSs_cond",
    values_to = "Condition"
  )

E2_SL_oblig_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_oblig, NoChoice_SIB_oblig, Choice_CUZ_oblig, Choice_SIB_oblig),
    names_to = "WSs_cond",
    values_to = "oblig"
  )

E2_SL_relate_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_relate, NoChoice_SIB_relate, Choice_CUZ_relate, Choice_SIB_relate),
    names_to = "WSs_cond",
    values_to = "relate"
  )

E2_SL_close_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_close, NoChoice_SIB_close, Choice_CUZ_close, Choice_SIB_close),
    names_to = "WSs_cond",
    values_to = "close"
  )

E2_SL_priorhelp_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_priorhelp, NoChoice_SIB_priorhelp, Choice_CUZ_priorhelp, Choice_SIB_priorhelp),
    names_to = "WSs_cond",
    values_to = "priorhelp"
  )

E2_SL_futurehelp_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_futurehelp, NoChoice_SIB_futurehelp, Choice_CUZ_futurehelp, Choice_SIB_futurehelp),
    names_to = "WSs_cond",
    values_to = "futurehelp"
  )

E2_SL_priorinteract_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_priorinteract, NoChoice_SIB_priorinteract, Choice_CUZ_priorinteract, Choice_SIB_priorinteract),
    names_to = "WSs_cond",
    values_to = "priorinteract"
  )

E2_SL_futureinteract_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_futureinteract, NoChoice_SIB_futureinteract, Choice_CUZ_futureinteract, Choice_SIB_futureinteract),
    names_to = "WSs_cond",
    values_to = "futureinteract"
  )

E2_SL_moral_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_moral, NoChoice_SIB_moral, Choice_CUZ_moral, Choice_SIB_moral),
    names_to = "WSs_cond",
    values_to = "moral"
  )


# Combine long SL datasets, select plotting variables, and create condition variable for each factor (Relation + Choice Context)
E2_SL_long <- cbind(E2_SL_cond_long, 
                    E2_SL_oblig_long, E2_SL_relate_long, E2_SL_close_long,
                    E2_SL_priorhelp_long, E2_SL_futurehelp_long,
                    E2_SL_priorinteract_long, E2_SL_futureinteract_long,
                    E2_SL_moral_long)

E2_SL_long <- E2_SL_long[, !duplicated(colnames(E2_SL_long))] %>% # get rid of duplicate columns
  select(ResponseId,
         Age:OUS_IH,
         BSs_cond,
         WSs_cond,
         Condition,
         oblig, relate, close, 
         priorhelp, futurehelp,
         priorinteract, futureinteract,
         moral) %>%
  mutate(Relation = case_when(
    WSs_cond == "SL_Dist_Scen" ~ "Distant",
    WSs_cond == "SL_Close_Scen" ~ "Close",
    WSs_cond == "SL_DistOClose_Scen" ~ "Distant",
    WSs_cond == "SL_CloseODist_Scen" ~ "Close")) %>%
  mutate(`Choice Context` = case_when(
    WSs_cond == "SL_Dist_Scen" ~ "No Choice",
    WSs_cond == "SL_Close_Scen" ~ "No Choice",
    WSs_cond == "SL_DistOClose_Scen" ~ "Choice",
    WSs_cond == "SL_CloseODist_Scen" ~ "Choice"))

# Reorder/rename condition and participant factors
E2_SL_long$Relation <- as.factor(E2_SL_long$Relation)
E2_SL_long$Relation <- ordered(E2_SL_long$Relation, levels = c("Distant", "Close"))
E2_SL_long$`Choice Context` <- as.factor(E2_SL_long$`Choice Context`)
E2_SL_long$`Choice Context` <- ordered(E2_SL_long$`Choice Context`, levels = c("No Choice", "Choice"))
E2_SL_long$ResponseId <- as.factor(E2_SL_long$ResponseId)


# Friend-Like
E2_FL_cond_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(FL_Dist_Scen, FL_Close_Scen, FL_DistOClose_Scen, FL_CloseODist_Scen),
    names_to = "WSs_cond",
    values_to = "Condition"
  )

E2_FL_oblig_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_oblig, NoChoice_SIB_oblig, Choice_CUZ_oblig, Choice_SIB_oblig),
    names_to = "WSs_cond",
    values_to = "oblig"
  )

E2_FL_relate_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_relate, NoChoice_SIB_relate, Choice_CUZ_relate, Choice_SIB_relate),
    names_to = "WSs_cond",
    values_to = "relate"
  )

E2_FL_close_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_close, NoChoice_SIB_close, Choice_CUZ_close, Choice_SIB_close),
    names_to = "WSs_cond",
    values_to = "close"
  )

E2_FL_priorhelp_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_priorhelp, NoChoice_SIB_priorhelp, Choice_CUZ_priorhelp, Choice_SIB_priorhelp),
    names_to = "WSs_cond",
    values_to = "priorhelp"
  )

E2_FL_futurehelp_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_futurehelp, NoChoice_SIB_futurehelp, Choice_CUZ_futurehelp, Choice_SIB_futurehelp),
    names_to = "WSs_cond",
    values_to = "futurehelp"
  )

E2_FL_priorinteract_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_priorinteract, NoChoice_SIB_priorinteract, Choice_CUZ_priorinteract, Choice_SIB_priorinteract),
    names_to = "WSs_cond",
    values_to = "priorinteract"
  )

E2_FL_futureinteract_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_futureinteract, NoChoice_SIB_futureinteract, Choice_CUZ_futureinteract, Choice_SIB_futureinteract),
    names_to = "WSs_cond",
    values_to = "futureinteract"
  )

E2_FL_moral_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZ_moral, NoChoice_SIB_moral, Choice_CUZ_moral, Choice_SIB_moral),
    names_to = "WSs_cond",
    values_to = "moral"
  )


# Combine long SL datasets, select plotting variables, and create condition variable for each factor (Relation + Choice Context)
E2_FL_long <- cbind(E2_FL_cond_long, 
                    E2_FL_oblig_long, E2_FL_relate_long, E2_FL_close_long,
                    E2_FL_priorhelp_long, E2_FL_futurehelp_long,
                    E2_FL_priorinteract_long, E2_FL_futureinteract_long,
                    E2_FL_moral_long)

E2_FL_long <- E2_FL_long[, !duplicated(colnames(E2_FL_long))] %>% # get rid of duplicate columns
  select(ResponseId,
         Age:OUS_IH,
         BSs_cond,
         WSs_cond,
         Condition,
         oblig, relate, close, 
         priorhelp, futurehelp,
         priorinteract, futureinteract,
         moral) %>%
  mutate(Relation = case_when(
    WSs_cond == "FL_Dist_Scen" ~ "Distant",
    WSs_cond == "FL_Close_Scen" ~ "Close",
    WSs_cond == "FL_DistOClose_Scen" ~ "Distant",
    WSs_cond == "FL_CloseODist_Scen" ~ "Close")) %>%
  mutate(`Choice Context` = case_when(
    WSs_cond == "FL_Dist_Scen" ~ "No Choice",
    WSs_cond == "FL_Close_Scen" ~ "No Choice",
    WSs_cond == "FL_DistOClose_Scen" ~ "Choice",
    WSs_cond == "FL_CloseODist_Scen" ~ "Choice"))

# Reorder/rename condition and participant factors
E2_FL_long$Relation <- as.factor(E2_FL_long$Relation)
E2_FL_long$Relation <- ordered(E2_FL_long$Relation, levels = c("Distant", "Close"))
E2_FL_long$`Choice Context` <- as.factor(E2_FL_long$`Choice Context`)
E2_FL_long$`Choice Context` <- ordered(E2_FL_long$`Choice Context`, levels = c("No Choice", "Choice"))
E2_FL_long$ResponseId <- as.factor(E2_FL_long$ResponseId)

# Combine into one dataset for later analyses
E2_all_long <- rbind(E2_SL_long, E2_FL_long)
# Reorder all_long BSs_cond
E2_all_long$BSs_cond <- as.factor(E2_all_long$BSs_cond)
E2_all_long$BSs_cond <- ordered(E2_all_long$BSs_cond, levels = c("Stranger-Like", "Friend-Like"))

Descriptive Statistics

Oblig

Stranger-Like

describeBy(E2_SL_long$oblig, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$oblig, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Relate

Stranger-Like

describeBy(E2_SL_long$relate, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$relate, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Close

Stranger-Like

describeBy(E2_SL_long$close, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$close, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Prior Help

Stranger-Like

describeBy(E2_SL_long$priorhelp, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$priorhelp, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Future Help

Stranger-Like

describeBy(E2_SL_long$futurehelp, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$futurehelp, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Prior Interax

Stranger-Like

describeBy(E2_SL_long$priorinteract, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$priorinteract, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Future Interax

Stranger-Like

describeBy(E2_SL_long$futureinteract, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$futureinteract, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Moral

Stranger-Like

describeBy(E2_SL_long$moral, list(E2_SL_long$Relation, E2_SL_long$`Choice Context`), mat = T)

Friend-Like

describeBy(E2_FL_long$moral, list(E2_FL_long$Relation, E2_FL_long$`Choice Context`), mat = T)

Mean Difference Plots

# Set dodge for plotting crossed factors
dodge = position_dodge(width = 1) 

Oblig

Stranger-Like

print(oblig_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = oblig, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Obligation Strength") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(oblig_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = oblig, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Obligation Strength") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(oblig_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = oblig, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("\nChoice Context") +
        ylab("Obligation Strength\n") +
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_oblig_plot.png")
Saving 14 x 9 in image

Relate

Stranger-Like

print(relate_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = relate, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Relatedness") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(relate_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = relate, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Relatedness") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(relate_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = relate, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 2.5, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("Choice Context") +
        ylab("Perceived Relatedness") + 
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_relate_plot.png")
Saving 14 x 9 in image

Close

Stranger-Like

print(close_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = close, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Closeness") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(close_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = close, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Closeness") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(close_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = close, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 2.5, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("Choice Context") +
        ylab("Perceived Closeness") + 
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_close_plot.png")
Saving 14 x 9 in image

Prior Help

Stranger-Like

print(priorhelp_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = priorhelp, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Prior Help") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(priorhelp_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = priorhelp, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Prior Help") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(priorhelp_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = priorhelp, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 2.5, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Prior Help") + 
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_priorhelp_plot.png")
Saving 14 x 9 in image

Future Help

Stranger-Like

print(futurehelp_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = futurehelp, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Future Help") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(futurehelp_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = futurehelp, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Future Help") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(futurehelp_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = futurehelp, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 2.5, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Future Help") + 
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_futurehelp_plot.png")
Saving 14 x 9 in image

Prior Interax

Stranger-Like

print(priorinteract_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = priorinteract, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Prior Interactions") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(priorinteract_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = priorinteract, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Prior Interactions") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(priorinteract_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = priorinteract, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 2.5, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Prior Interactions") + 
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_priorinteract_plot.png")
Saving 14 x 9 in image

Future Interax

Stranger-Like

print(futureinteract_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = futureinteract, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Future Interactions") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(futureinteract_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = futureinteract, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Future Interactions") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(futureinteract_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = futureinteract, fill = Relation)) +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 2.5, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("Choice Context") +
        ylab("Perceived Frequency of Future Interactions") + 
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_futureinteract_plot.png")
Saving 14 x 9 in image

Moral

Stranger-Like

print(moral_plot_SL <- ggplot(data = E2_SL_long, aes(x = `Choice Context`, y = moral, fill = Relation)) +
        geom_hline(yintercept = 50, linetype = "dashed", color = "black") +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Moral Character") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Friend-Like

print(moral_plot_FL <- ggplot(data = E2_FL_long, aes(x = `Choice Context`, y = moral, fill = Relation)) +
        geom_hline(yintercept = 50, linetype = "dashed", color = "black") +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        xlab("Choice Context") +
        ylab("Moral Character") + 
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 14),
              legend.text = element_text(color = "black", size = 12)))

Combined

print(moral_plot_combined <- ggplot(data = E2_all_long, aes(x = `Choice Context`, y = moral, fill = Relation)) +
        geom_hline(yintercept = 50, linetype = "dashed", color = "black") +
        geom_violin(aes(fill = Relation), position = dodge) +
        geom_boxplot(width = 0.1, color = "black", outlier.shape = NA, position = dodge) +
        scale_fill_manual(values = c("lightskyblue3", "indianred3")) +
        stat_summary(fun = mean, geom = "point", shape = 18, color = "white", size = 3, position = dodge) +
        theme(legend.position = "right") +
        theme_classic() +
        facet_wrap(~BSs_cond, nrow = 2) +
        xlab("\nChoice Context") +
        ylab("Moral Character\n") + 
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16),
              legend.position = "right",
              legend.title = element_text(color = "black", size = 18),
              legend.text = element_text(color = "black", size = 16)))


ggsave("E2_moral_plot.png")
Saving 14 x 9 in image

Mean Difference Tests


See our pre-registration (INSERT LINK HERE) for our predictions related to obligation judgments and moral character judgments.


Oblig

Stranger-Like

No Choice

# returns t-test results
t.test(oblig ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  oblig by Relation
t = -4.0679, df = 353, p-value = 5.855e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -12.152705  -4.231476
sample estimates:
mean of the differences 
               -8.19209 
# returns dz effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.2162072 (small)
95 percent confidence interval:
     lower      upper 
-0.3217695 -0.1106450 
# returns d-av effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2385614 (small)
95 percent confidence interval:
     lower      upper 
-0.3553268 -0.1217959 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_oblig", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------
NoChoice_CUZ_oblig | NoChoice_SIB_oblig | 0.39 | [0.30, 0.48] |   7.98 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_oblig, breaks = 100))
$breaks
  [1] -100  -98  -96  -94  -92  -90  -88  -86  -84  -82  -80  -78  -76  -74  -72  -70  -68  -66  -64
 [20]  -62  -60  -58  -56  -54  -52  -50  -48  -46  -44  -42  -40  -38  -36  -34  -32  -30  -28  -26
 [39]  -24  -22  -20  -18  -16  -14  -12  -10   -8   -6   -4   -2    0    2    4    6    8   10   12
 [58]   14   16   18   20   22   24   26   28   30   32   34   36   38   40   42   44   46   48   50
 [77]   52   54   56   58   60   62   64   66   68   70   72   74   76   78   80   82   84   86   88
 [96]   90   92   94   96   98  100

$counts
  [1]  8  0  1  2  1  1  2  2  1  1  0  2  1  0  3  2  1  1  1  2  3  3  3  7  6  5  1  1  4  7  0  1
 [33]  4  6  7  6  1  5  5  7  8  5  9 12  5  4  9  3 12 49  5  6  6  8  6  3  5  5  1  6  7 12  2  5
 [65]  3  2  1  4  0  2  1  3  2  2  6  2  4  1  0  1  1  3  2  1  0  0  0  1  0  0  0  2  0  1  0  0
 [97]  1  0  0  1

$density
  [1] 0.011299435 0.000000000 0.001412429 0.002824859 0.001412429 0.001412429 0.002824859 0.002824859
  [9] 0.001412429 0.001412429 0.000000000 0.002824859 0.001412429 0.000000000 0.004237288 0.002824859
 [17] 0.001412429 0.001412429 0.001412429 0.002824859 0.004237288 0.004237288 0.004237288 0.009887006
 [25] 0.008474576 0.007062147 0.001412429 0.001412429 0.005649718 0.009887006 0.000000000 0.001412429
 [33] 0.005649718 0.008474576 0.009887006 0.008474576 0.001412429 0.007062147 0.007062147 0.009887006
 [41] 0.011299435 0.007062147 0.012711864 0.016949153 0.007062147 0.005649718 0.012711864 0.004237288
 [49] 0.016949153 0.069209040 0.007062147 0.008474576 0.008474576 0.011299435 0.008474576 0.004237288
 [57] 0.007062147 0.007062147 0.001412429 0.008474576 0.009887006 0.016949153 0.002824859 0.007062147
 [65] 0.004237288 0.002824859 0.001412429 0.005649718 0.000000000 0.002824859 0.001412429 0.004237288
 [73] 0.002824859 0.002824859 0.008474576 0.002824859 0.005649718 0.001412429 0.000000000 0.001412429
 [81] 0.001412429 0.004237288 0.002824859 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429
 [89] 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000 0.001412429 0.000000000 0.000000000
 [97] 0.001412429 0.000000000 0.000000000 0.001412429

$mids
  [1] -99 -97 -95 -93 -91 -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53
 [25] -51 -49 -47 -45 -43 -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5
 [49]  -3  -1   1   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43
 [73]  45  47  49  51  53  55  57  59  61  63  65  67  69  71  73  75  77  79  81  83  85  87  89  91
 [97]  93  95  97  99

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_oblig"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(oblig ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  oblig by Relation
t = -12.341, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -9.233971 -6.695407
sample estimates:
mean of the differences 
              -7.964689 
# returns dz effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.6559167 (medium)
95 percent confidence interval:
     lower      upper 
-0.7709438 -0.5408897 
# returns d-av effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2703635 (small)
95 percent confidence interval:
     lower      upper 
-0.3141546 -0.2265724 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_oblig", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
Choice_CUZ_oblig | Choice_SIB_oblig | 0.92 | [0.90, 0.93] |  42.56 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_oblig, breaks = 100))
$breaks
 [1] -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42
[25] -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18
[49] -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6
[73]   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23

$counts
 [1]  1  0  0  0  0  0  0  0  1  2  0  0  0  0  0  0  0  0  0  1  1  0  0  2  1  2  2  1  2  3  1  1  0
[34]  1  4  0  1  3  0  1  9  1  2  4  3  8  4  2  2  6  5  8  9 13  7  5 14 11 14  9  9  9 17 21 74 29
[67] 10  4  4  0  1  0  1  0  1  2  1  2  0  0  0  1  0  0  0  0  0  1

$density
 [1] 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.002824859 0.005649718 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[17] 0.000000000 0.000000000 0.000000000 0.002824859 0.002824859 0.000000000 0.000000000 0.005649718
[25] 0.002824859 0.005649718 0.005649718 0.002824859 0.005649718 0.008474576 0.002824859 0.002824859
[33] 0.000000000 0.002824859 0.011299435 0.000000000 0.002824859 0.008474576 0.000000000 0.002824859
[41] 0.025423729 0.002824859 0.005649718 0.011299435 0.008474576 0.022598870 0.011299435 0.005649718
[49] 0.005649718 0.016949153 0.014124294 0.022598870 0.025423729 0.036723164 0.019774011 0.014124294
[57] 0.039548023 0.031073446 0.039548023 0.025423729 0.025423729 0.025423729 0.048022599 0.059322034
[65] 0.209039548 0.081920904 0.028248588 0.011299435 0.011299435 0.000000000 0.002824859 0.000000000
[73] 0.002824859 0.000000000 0.002824859 0.005649718 0.002824859 0.005649718 0.000000000 0.000000000
[81] 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859

$mids
 [1] -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5
[17] -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5
[33] -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5
[49] -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5
[65]  -0.5   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5
[81]  15.5  16.5  17.5  18.5  19.5  20.5  21.5  22.5

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_oblig"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice

# returns t-test results
t.test(oblig ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  oblig by Relation
t = -2.8839, df = 344, p-value = 0.004175
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -7.825057 -1.479290
sample estimates:
mean of the differences 
              -4.652174 
# returns dz effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.1552641 (negligible)
95 percent confidence interval:
      lower       upper 
-0.26160612 -0.04892206 
# returns d-av effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.1512148 (negligible)
95 percent confidence interval:
      lower       upper 
-0.25475162 -0.04767791 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_oblig", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------
NoChoice_CUZ_oblig | NoChoice_SIB_oblig | 0.53 | [0.44, 0.60] |  11.45 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_oblig, breaks = 100))
$breaks
  [1] -100  -98  -96  -94  -92  -90  -88  -86  -84  -82  -80  -78  -76  -74  -72  -70  -68  -66  -64
 [20]  -62  -60  -58  -56  -54  -52  -50  -48  -46  -44  -42  -40  -38  -36  -34  -32  -30  -28  -26
 [39]  -24  -22  -20  -18  -16  -14  -12  -10   -8   -6   -4   -2    0    2    4    6    8   10   12
 [58]   14   16   18   20   22   24   26   28   30   32   34   36   38   40   42   44   46   48   50
 [77]   52   54   56   58   60   62   64   66   68   70   72   74   76   78   80   82   84   86   88
 [96]   90   92   94   96   98  100

$counts
  [1]  5  1  1  0  0  0  1  0  0  1  0  1  2  0  1  0  2  0  0  1  0  2  1  3  8  5  5  1  2  0  1  2
 [33]  1  6  1  5  1  6  6  6  9  6  4  5 10  6  6  8 17 73 13  7  6  7  4  9  8  3  6  7  1  6  6  2
 [65]  8  3  2  3  1  3  2  2  1  2  3  3  2  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 [97]  0  0  0  2

$density
  [1] 0.007246377 0.001449275 0.001449275 0.000000000 0.000000000 0.000000000 0.001449275 0.000000000
  [9] 0.000000000 0.001449275 0.000000000 0.001449275 0.002898551 0.000000000 0.001449275 0.000000000
 [17] 0.002898551 0.000000000 0.000000000 0.001449275 0.000000000 0.002898551 0.001449275 0.004347826
 [25] 0.011594203 0.007246377 0.007246377 0.001449275 0.002898551 0.000000000 0.001449275 0.002898551
 [33] 0.001449275 0.008695652 0.001449275 0.007246377 0.001449275 0.008695652 0.008695652 0.008695652
 [41] 0.013043478 0.008695652 0.005797101 0.007246377 0.014492754 0.008695652 0.008695652 0.011594203
 [49] 0.024637681 0.105797101 0.018840580 0.010144928 0.008695652 0.010144928 0.005797101 0.013043478
 [57] 0.011594203 0.004347826 0.008695652 0.010144928 0.001449275 0.008695652 0.008695652 0.002898551
 [65] 0.011594203 0.004347826 0.002898551 0.004347826 0.001449275 0.004347826 0.002898551 0.002898551
 [73] 0.001449275 0.002898551 0.004347826 0.004347826 0.002898551 0.000000000 0.000000000 0.000000000
 [81] 0.000000000 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [89] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [97] 0.000000000 0.000000000 0.000000000 0.002898551

$mids
  [1] -99 -97 -95 -93 -91 -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53
 [25] -51 -49 -47 -45 -43 -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5
 [49]  -3  -1   1   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43
 [73]  45  47  49  51  53  55  57  59  61  63  65  67  69  71  73  75  77  79  81  83  85  87  89  91
 [97]  93  95  97  99

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_oblig"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(oblig ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  oblig by Relation
t = -10.577, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -6.127427 -4.205907
sample estimates:
mean of the differences 
              -5.166667 
# returns dz effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.569462 (medium)
95 percent confidence interval:
     lower      upper 
-0.6834169 -0.4555071 
# returns d-av effect size and 95% CIs
effsize::cohen.d(oblig ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.187572 (negligible)
95 percent confidence interval:
     lower      upper 
-0.2226951 -0.1524488 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_oblig", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
Choice_CUZ_oblig | Choice_SIB_oblig | 0.95 | [0.93, 0.96] |  53.91 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_oblig, breaks = 100))
$breaks
 [1] -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35
[25] -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11
[49] -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13
[73]  14  15  16  17  18

$counts
 [1]  1  0  0  0  0  0  0  0  1  0  0  0  0  1  1  0  0  0  0  1  1  0  0  0  1  0  1  2  1  0  1  0  1
[34]  3  5  2  0  2  2  0  4  2  7  7  5  4 11  7  7  5 14 12 12  5 10 22 28 98 40  5  7  0  2  0  0  0
[67]  0  1  0  0  2  0  0  0  0  1

$density
 [1] 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000
[17] 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000 0.000000000 0.000000000
[25] 0.002898551 0.000000000 0.002898551 0.005797101 0.002898551 0.000000000 0.002898551 0.000000000
[33] 0.002898551 0.008695652 0.014492754 0.005797101 0.000000000 0.005797101 0.005797101 0.000000000
[41] 0.011594203 0.005797101 0.020289855 0.020289855 0.014492754 0.011594203 0.031884058 0.020289855
[49] 0.020289855 0.014492754 0.040579710 0.034782609 0.034782609 0.014492754 0.028985507 0.063768116
[57] 0.081159420 0.284057971 0.115942029 0.014492754 0.020289855 0.000000000 0.005797101 0.000000000
[65] 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.005797101 0.000000000
[73] 0.000000000 0.000000000 0.000000000 0.002898551

$mids
 [1] -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5
[17] -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5
[33] -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5
[49]  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5
[65]   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5  17.5

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_oblig"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Relate

Stranger-Like

No Choice

# returns t-test results
t.test(relate ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  relate by Relation
t = -34.659, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -47.56245 -42.45450
sample estimates:
mean of the differences 
              -45.00847 
# returns dz effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -1.842109 (large)
95 percent confidence interval:
    lower     upper 
-2.013468 -1.670750 
# returns d-av effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -1.999068 (large)
95 percent confidence interval:
    lower     upper 
-2.195146 -1.802990 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_relate", "NoChoice_SIB_relate", method = "Pearson")
Parameter1          |          Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------
NoChoice_CUZ_relate | NoChoice_SIB_relate | 0.41 | [0.32, 0.49] |   8.46 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_relate, breaks = 100))
$breaks
  [1] -94 -93 -92 -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71
 [25] -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47
 [49] -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23
 [73] -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1
 [97]   2   3   4   5   6   7   8   9  10

$counts
  [1]  2  1  1  1  0  1  1  1  3  0  2  5  5  2  7  5  3 12 11  9  9  5  7  3  0  2  1  3  0  3  2  0
 [33]  1  1  0  3  6  3  1  0  2  1  8 16  9  5  1  4  3  2  2  2  1  4  9  6  2  6  3  2  5  3  5  9
 [65]  9 10 11 10 12 11  5  6  2  3  1  3  2  3  2  1  5  1  1  2  2  0  1  2  1  1  1  1  2  4  0  2
 [97]  2  0  0  0  0  2  0  1

$density
  [1] 0.005649718 0.002824859 0.002824859 0.002824859 0.000000000 0.002824859 0.002824859 0.002824859
  [9] 0.008474576 0.000000000 0.005649718 0.014124294 0.014124294 0.005649718 0.019774011 0.014124294
 [17] 0.008474576 0.033898305 0.031073446 0.025423729 0.025423729 0.014124294 0.019774011 0.008474576
 [25] 0.000000000 0.005649718 0.002824859 0.008474576 0.000000000 0.008474576 0.005649718 0.000000000
 [33] 0.002824859 0.002824859 0.000000000 0.008474576 0.016949153 0.008474576 0.002824859 0.000000000
 [41] 0.005649718 0.002824859 0.022598870 0.045197740 0.025423729 0.014124294 0.002824859 0.011299435
 [49] 0.008474576 0.005649718 0.005649718 0.005649718 0.002824859 0.011299435 0.025423729 0.016949153
 [57] 0.005649718 0.016949153 0.008474576 0.005649718 0.014124294 0.008474576 0.014124294 0.025423729
 [65] 0.025423729 0.028248588 0.031073446 0.028248588 0.033898305 0.031073446 0.014124294 0.016949153
 [73] 0.005649718 0.008474576 0.002824859 0.008474576 0.005649718 0.008474576 0.005649718 0.002824859
 [81] 0.014124294 0.002824859 0.002824859 0.005649718 0.005649718 0.000000000 0.002824859 0.005649718
 [89] 0.002824859 0.002824859 0.002824859 0.002824859 0.005649718 0.011299435 0.000000000 0.005649718
 [97] 0.005649718 0.000000000 0.000000000 0.000000000 0.000000000 0.005649718 0.000000000 0.002824859

$mids
  [1] -93.5 -92.5 -91.5 -90.5 -89.5 -88.5 -87.5 -86.5 -85.5 -84.5 -83.5 -82.5 -81.5 -80.5 -79.5 -78.5
 [17] -77.5 -76.5 -75.5 -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5
 [33] -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5
 [49] -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5
 [65] -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5
 [81] -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5
 [97]   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_relate"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(relate ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  relate by Relation
t = -35.606, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -46.43032 -41.56968
sample estimates:
mean of the differences 
                    -44 
# returns dz effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -1.892461 (large)
95 percent confidence interval:
    lower     upper 
-2.066782 -1.718140 
# returns d-av effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -1.980539 (large)
95 percent confidence interval:
    lower     upper 
-2.168465 -1.792613 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_relate", "Choice_SIB_relate", method = "Pearson")
Parameter1        |        Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
Choice_CUZ_relate | Choice_SIB_relate | 0.45 | [0.37, 0.53] |   9.52 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_relate, breaks = 100))
$breaks
  [1] -95 -94 -93 -92 -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72
 [25] -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48
 [49] -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24
 [73] -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0
 [97]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24
[121]  25  26  27  28  29  30

$counts
  [1]  1  0  0  0  3  0  0  1  1  2  0  1  1  2  3  6  5  5  3 17  9  6  6  4  4  0  3  3  0  2  1  4
 [33]  5  1  1  3  0  2  4  1  4  2  3  8 23  4  4  2  1  5  3  1  2  2  6  5  4  5  4  4  7  4  5  8
 [65]  4 10 12  6  9 10 10 13  2  8  1  3  4  4  3  4  2  1  1  2  1  1  2  3  0  2  0  1  0  1  2  1
 [97]  1  0  0  1  0  0  0  0  0  0  0  0  0  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  1

$density
  [1] 0.002824859 0.000000000 0.000000000 0.000000000 0.008474576 0.000000000 0.000000000 0.002824859
  [9] 0.002824859 0.005649718 0.000000000 0.002824859 0.002824859 0.005649718 0.008474576 0.016949153
 [17] 0.014124294 0.014124294 0.008474576 0.048022599 0.025423729 0.016949153 0.016949153 0.011299435
 [25] 0.011299435 0.000000000 0.008474576 0.008474576 0.000000000 0.005649718 0.002824859 0.011299435
 [33] 0.014124294 0.002824859 0.002824859 0.008474576 0.000000000 0.005649718 0.011299435 0.002824859
 [41] 0.011299435 0.005649718 0.008474576 0.022598870 0.064971751 0.011299435 0.011299435 0.005649718
 [49] 0.002824859 0.014124294 0.008474576 0.002824859 0.005649718 0.005649718 0.016949153 0.014124294
 [57] 0.011299435 0.014124294 0.011299435 0.011299435 0.019774011 0.011299435 0.014124294 0.022598870
 [65] 0.011299435 0.028248588 0.033898305 0.016949153 0.025423729 0.028248588 0.028248588 0.036723164
 [73] 0.005649718 0.022598870 0.002824859 0.008474576 0.011299435 0.011299435 0.008474576 0.011299435
 [81] 0.005649718 0.002824859 0.002824859 0.005649718 0.002824859 0.002824859 0.005649718 0.008474576
 [89] 0.000000000 0.005649718 0.000000000 0.002824859 0.000000000 0.002824859 0.005649718 0.002824859
 [97] 0.002824859 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000
[105] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859 0.002824859 0.000000000
[113] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[121] 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859

$mids
  [1] -94.5 -93.5 -92.5 -91.5 -90.5 -89.5 -88.5 -87.5 -86.5 -85.5 -84.5 -83.5 -82.5 -81.5 -80.5 -79.5
 [17] -78.5 -77.5 -76.5 -75.5 -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5
 [33] -62.5 -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5
 [49] -46.5 -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5
 [65] -30.5 -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5
 [81] -14.5 -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5
 [97]   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5
[113]  17.5  18.5  19.5  20.5  21.5  22.5  23.5  24.5  25.5  26.5  27.5  28.5  29.5

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_relate"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice

# returns t-test results
t.test(relate ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  relate by Relation
t = -33.579, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -46.58346 -41.42813
sample estimates:
mean of the differences 
               -44.0058 
# returns dz effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -1.807811 (large)
95 percent confidence interval:
    lower     upper 
-1.979372 -1.636250 
# returns d-av effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -1.919301 (large)
95 percent confidence interval:
    lower     upper 
-2.108489 -1.730112 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_relate", "NoChoice_SIB_relate", method = "Pearson")
Parameter1          |          Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------------
NoChoice_CUZ_relate | NoChoice_SIB_relate | 0.44 | [0.35, 0.52] |   8.98 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_relate, breaks = 100))
$breaks
  [1] -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68
 [25] -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44
 [49] -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20
 [73] -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4
 [97]   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28
[121]  29  30

$counts
  [1]  1  1  0  1  3  1  2  4  4  2  1  2  7  4 12 11 10 11  5  7  5  1  1  1  3  4  1  0  0  0  1  0
 [33]  2  2  1  0  2  2  2  8 13 15  1  5  2  6  0  1  1  1  3  4  1  3  2  4  5  1 11  6  6  8  3 10
 [65]  9 18 11 11  6  2  3  6  1  2  6  2  2  3  2  3  3  2  1  3  0  1  2  2  0  1  4  0  0  0  0  0
 [97]  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1

$density
  [1] 0.002898551 0.002898551 0.000000000 0.002898551 0.008695652 0.002898551 0.005797101 0.011594203
  [9] 0.011594203 0.005797101 0.002898551 0.005797101 0.020289855 0.011594203 0.034782609 0.031884058
 [17] 0.028985507 0.031884058 0.014492754 0.020289855 0.014492754 0.002898551 0.002898551 0.002898551
 [25] 0.008695652 0.011594203 0.002898551 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000
 [33] 0.005797101 0.005797101 0.002898551 0.000000000 0.005797101 0.005797101 0.005797101 0.023188406
 [41] 0.037681159 0.043478261 0.002898551 0.014492754 0.005797101 0.017391304 0.000000000 0.002898551
 [49] 0.002898551 0.002898551 0.008695652 0.011594203 0.002898551 0.008695652 0.005797101 0.011594203
 [57] 0.014492754 0.002898551 0.031884058 0.017391304 0.017391304 0.023188406 0.008695652 0.028985507
 [65] 0.026086957 0.052173913 0.031884058 0.031884058 0.017391304 0.005797101 0.008695652 0.017391304
 [73] 0.002898551 0.005797101 0.017391304 0.005797101 0.005797101 0.008695652 0.005797101 0.008695652
 [81] 0.008695652 0.005797101 0.002898551 0.008695652 0.000000000 0.002898551 0.005797101 0.005797101
 [89] 0.000000000 0.002898551 0.011594203 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [97] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551
[105] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[113] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[121] 0.002898551

$mids
  [1] -90.5 -89.5 -88.5 -87.5 -86.5 -85.5 -84.5 -83.5 -82.5 -81.5 -80.5 -79.5 -78.5 -77.5 -76.5 -75.5
 [17] -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5
 [33] -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5
 [49] -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5
 [65] -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5
 [81] -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5
 [97]   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5
[113]  21.5  22.5  23.5  24.5  25.5  26.5  27.5  28.5  29.5

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_relate"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(relate ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  relate by Relation
t = -33.766, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -44.46029 -39.56580
sample estimates:
mean of the differences 
              -42.01304 
# returns dz effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -1.817923 (large)
95 percent confidence interval:
    lower     upper 
-1.990080 -1.645766 
# returns d-av effect size and 95% CIs
effsize::cohen.d(relate ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -1.86697 (large)
95 percent confidence interval:
    lower     upper 
-2.046759 -1.687182 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_relate", "Choice_SIB_relate", method = "Pearson")
Parameter1        |        Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
Choice_CUZ_relate | Choice_SIB_relate | 0.47 | [0.39, 0.55] |   9.93 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_relate, breaks = 100))
$breaks
  [1] -92 -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69
 [25] -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45
 [49] -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21
 [73] -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3
 [97]   4   5   6   7   8   9  10  11  12  13  14  15  16

$counts
  [1]  1  1  0  0  0  1  0  0  1  4  4  3  1  5  6 10 13  9  9  6  1  0  1  0  2  0  2  0  0  0  3  3
 [33]  2  1  1  0  0  1  0  2  6 22 16  4  3  3  4  3  4  3  0  3  3 10  4  5  3  6  4  3  8  2  6  5
 [65]  9  9 14 15 10  5  6  2  5  3  3  4  7  2  5  2  1  1  3  2  0  0  2  2  0  0  0  4  0  2  0  1
 [97]  0  0  0  0  1  1  0  0  0  0  0  1

$density
  [1] 0.002898551 0.002898551 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000
  [9] 0.002898551 0.011594203 0.011594203 0.008695652 0.002898551 0.014492754 0.017391304 0.028985507
 [17] 0.037681159 0.026086957 0.026086957 0.017391304 0.002898551 0.000000000 0.002898551 0.000000000
 [25] 0.005797101 0.000000000 0.005797101 0.000000000 0.000000000 0.000000000 0.008695652 0.008695652
 [33] 0.005797101 0.002898551 0.002898551 0.000000000 0.000000000 0.002898551 0.000000000 0.005797101
 [41] 0.017391304 0.063768116 0.046376812 0.011594203 0.008695652 0.008695652 0.011594203 0.008695652
 [49] 0.011594203 0.008695652 0.000000000 0.008695652 0.008695652 0.028985507 0.011594203 0.014492754
 [57] 0.008695652 0.017391304 0.011594203 0.008695652 0.023188406 0.005797101 0.017391304 0.014492754
 [65] 0.026086957 0.026086957 0.040579710 0.043478261 0.028985507 0.014492754 0.017391304 0.005797101
 [73] 0.014492754 0.008695652 0.008695652 0.011594203 0.020289855 0.005797101 0.014492754 0.005797101
 [81] 0.002898551 0.002898551 0.008695652 0.005797101 0.000000000 0.000000000 0.005797101 0.005797101
 [89] 0.000000000 0.000000000 0.000000000 0.011594203 0.000000000 0.005797101 0.000000000 0.002898551
 [97] 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000 0.000000000
[105] 0.000000000 0.000000000 0.000000000 0.002898551

$mids
  [1] -91.5 -90.5 -89.5 -88.5 -87.5 -86.5 -85.5 -84.5 -83.5 -82.5 -81.5 -80.5 -79.5 -78.5 -77.5 -76.5
 [17] -75.5 -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5
 [33] -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5
 [49] -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5
 [65] -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5
 [81] -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5
 [97]   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_relate"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Close

Stranger-Like

No Choice

# returns t-test results
t.test(close ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  close by Relation
t = -3.8599, df = 353, p-value = 0.0001349
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -5.816367 -1.889847
sample estimates:
mean of the differences 
              -3.853107 
# returns dz effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.2051499 (small)
95 percent confidence interval:
      lower       upper 
-0.31059191 -0.09970788 
# returns d-av effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.1754968 (negligible)
95 percent confidence interval:
     lower      upper 
-0.2654483 -0.0855454 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_close", "NoChoice_SIB_close", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------
NoChoice_CUZ_close | NoChoice_SIB_close | 0.63 | [0.57, 0.69] |  15.39 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_close, breaks = 100))
$breaks
 [1] -90 -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44
[25] -42 -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4
[49]   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52
[73]  54  56  58  60  62  64

$counts
 [1]  1  0  0  0  0  0  2  0  0  2  0  0  1  1  1  0  1  0  2  1  1  3  2  2  1  3  1  4  1  2  1  1  3
[34]  6  3  7  4  8 12  5 12 15 15 25 75 25 18 15 15  6 10  9  7  5  2  2  2  1  4  2  2  1  1  1  0  0
[67]  0  0  0  1  0  0  0  0  0  0  1

$density
 [1] 0.001412429 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000
 [9] 0.000000000 0.002824859 0.000000000 0.000000000 0.001412429 0.001412429 0.001412429 0.000000000
[17] 0.001412429 0.000000000 0.002824859 0.001412429 0.001412429 0.004237288 0.002824859 0.002824859
[25] 0.001412429 0.004237288 0.001412429 0.005649718 0.001412429 0.002824859 0.001412429 0.001412429
[33] 0.004237288 0.008474576 0.004237288 0.009887006 0.005649718 0.011299435 0.016949153 0.007062147
[41] 0.016949153 0.021186441 0.021186441 0.035310734 0.105932203 0.035310734 0.025423729 0.021186441
[49] 0.021186441 0.008474576 0.014124294 0.012711864 0.009887006 0.007062147 0.002824859 0.002824859
[57] 0.002824859 0.001412429 0.005649718 0.002824859 0.002824859 0.001412429 0.001412429 0.001412429
[65] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.001412429 0.000000000 0.000000000
[73] 0.000000000 0.000000000 0.000000000 0.000000000 0.001412429

$mids
 [1] -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43
[25] -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5
[49]   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53
[73]  55  57  59  61  63

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_close"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(close ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  close by Relation
t = -9.9187, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -7.550201 -5.051494
sample estimates:
mean of the differences 
              -6.300847 
# returns dz effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.5271712 (medium)
95 percent confidence interval:
     lower      upper 
-0.6385352 -0.4158072 
# returns d-av effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2651506 (small)
95 percent confidence interval:
     lower      upper 
-0.3185498 -0.2117514 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_close", "Choice_SIB_close", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
Choice_CUZ_close | Choice_SIB_close | 0.87 | [0.85, 0.90] |  33.67 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_close, breaks = 100))
$breaks
  [1] -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60
 [25] -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36
 [49] -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12
 [73] -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12
 [97]  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32

$counts
  [1]  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1
 [33]  0  0  0  1  0  0  0  0  2  0  3  0  5  3  1  0  2  1  0  2  0  4  0  1  3  3  1  3  0  4  4  1
 [65]  2  1  0  3  4  9  4  4 10  5  9  8 12  8 13 15 26 28 92 29  5  6  2  3  1  1  1  1  0  0  0  0
 [97]  1  0  1  1  1  0  0  0  0  1  0  0  0  0  0  0  0  0  1

$density
  [1] 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [17] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [25] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859
 [33] 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000
 [41] 0.005649718 0.000000000 0.008474576 0.000000000 0.014124294 0.008474576 0.002824859 0.000000000
 [49] 0.005649718 0.002824859 0.000000000 0.005649718 0.000000000 0.011299435 0.000000000 0.002824859
 [57] 0.008474576 0.008474576 0.002824859 0.008474576 0.000000000 0.011299435 0.011299435 0.002824859
 [65] 0.005649718 0.002824859 0.000000000 0.008474576 0.011299435 0.025423729 0.011299435 0.011299435
 [73] 0.028248588 0.014124294 0.025423729 0.022598870 0.033898305 0.022598870 0.036723164 0.042372881
 [81] 0.073446328 0.079096045 0.259887006 0.081920904 0.014124294 0.016949153 0.005649718 0.008474576
 [89] 0.002824859 0.002824859 0.002824859 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000
 [97] 0.002824859 0.000000000 0.002824859 0.002824859 0.002824859 0.000000000 0.000000000 0.000000000
[105] 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[113] 0.000000000 0.000000000 0.002824859

$mids
  [1] -82.5 -81.5 -80.5 -79.5 -78.5 -77.5 -76.5 -75.5 -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5
 [17] -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5
 [33] -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5
 [49] -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5
 [65] -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5
 [81]  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5
 [97]  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5  21.5  22.5  23.5  24.5  25.5  26.5  27.5  28.5
[113]  29.5  30.5  31.5

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_close"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice

# returns t-test results
t.test(close ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  close by Relation
t = -2.8987, df = 344, p-value = 0.003987
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -5.0209996 -0.9616091
sample estimates:
mean of the differences 
              -2.991304 
# returns dz effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.1560626 (negligible)
95 percent confidence interval:
      lower       upper 
-0.26241121 -0.04971409 
# returns d-av effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.1661081 (negligible)
95 percent confidence interval:
      lower       upper 
-0.27939261 -0.05282365 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_close", "NoChoice_SIB_close", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------
NoChoice_CUZ_close | NoChoice_SIB_close | 0.43 | [0.34, 0.52] |   8.91 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_close, breaks = 100))
$breaks
 [1] -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42 -40 -38 -36 -34
[25] -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4   6   8  10  12  14
[49]  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52  54  56  58  60  62
[73]  64  66  68  70  72  74  76  78

$counts
 [1]  1  0  0  1  0  0  0  0  1  0  0  0  1  0  4  2  1  2  0  1  0  2  1  2  3  6  6  3  6  9  8  8 10
[34] 14  9  9 14 12 14 87  8 20 12  6  9  6 10  4  2  5  3  2  4  3  0  1  1  1  0  2  1  0  1  2  0  1
[67]  0  1  1  0  0  0  0  0  0  1  0  0  1

$density
 [1] 0.001449275 0.000000000 0.000000000 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.001449275 0.000000000 0.000000000 0.000000000 0.001449275 0.000000000 0.005797101 0.002898551
[17] 0.001449275 0.002898551 0.000000000 0.001449275 0.000000000 0.002898551 0.001449275 0.002898551
[25] 0.004347826 0.008695652 0.008695652 0.004347826 0.008695652 0.013043478 0.011594203 0.011594203
[33] 0.014492754 0.020289855 0.013043478 0.013043478 0.020289855 0.017391304 0.020289855 0.126086957
[41] 0.011594203 0.028985507 0.017391304 0.008695652 0.013043478 0.008695652 0.014492754 0.005797101
[49] 0.002898551 0.007246377 0.004347826 0.002898551 0.005797101 0.004347826 0.000000000 0.001449275
[57] 0.001449275 0.001449275 0.000000000 0.002898551 0.001449275 0.000000000 0.001449275 0.002898551
[65] 0.000000000 0.001449275 0.000000000 0.001449275 0.001449275 0.000000000 0.000000000 0.000000000
[73] 0.000000000 0.000000000 0.000000000 0.001449275 0.000000000 0.000000000 0.001449275

$mids
 [1] -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41 -39 -37 -35 -33
[25] -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5   7   9  11  13  15
[49]  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53  55  57  59  61  63
[73]  65  67  69  71  73  75  77

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_close"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(close ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  close by Relation
t = -9.7685, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -6.572598 -4.369431
sample estimates:
mean of the differences 
              -5.471014 
# returns dz effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.5259201 (medium)
95 percent confidence interval:
     lower      upper 
-0.6386998 -0.4131404 
# returns d-av effect size and 95% CIs
effsize::cohen.d(close ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.329588 (small)
95 percent confidence interval:
     lower      upper 
-0.3976085 -0.2615675 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_close", "Choice_SIB_close", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
Choice_CUZ_close | Choice_SIB_close | 0.80 | [0.76, 0.84] |  25.01 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_close, breaks = 100))
$breaks
 [1] -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52
[25] -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28
[49] -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4
[73]  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18

$counts
 [1]  1  0  0  0  0  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  0
[34]  0  1  1  0  1  0  0  0  0  1  0  1  0  1  1  1  0  2  2  0  3  0  4  5  9  2  7  3  5  8  6  6  3
[67]  7 13 11 18 16 13 13 25 99 23 12  5  2  0  2  1  1  0  3  1  1  0  0  0  0  0  1

$density
 [1] 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000
 [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[17] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[25] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000
[33] 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000 0.002898551 0.000000000 0.000000000
[41] 0.000000000 0.000000000 0.002898551 0.000000000 0.002898551 0.000000000 0.002898551 0.002898551
[49] 0.002898551 0.000000000 0.005797101 0.005797101 0.000000000 0.008695652 0.000000000 0.011594203
[57] 0.014492754 0.026086957 0.005797101 0.020289855 0.008695652 0.014492754 0.023188406 0.017391304
[65] 0.017391304 0.008695652 0.020289855 0.037681159 0.031884058 0.052173913 0.046376812 0.037681159
[73] 0.037681159 0.072463768 0.286956522 0.066666667 0.034782609 0.014492754 0.005797101 0.000000000
[81] 0.005797101 0.002898551 0.002898551 0.000000000 0.008695652 0.002898551 0.002898551 0.000000000
[89] 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551

$mids
 [1] -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5
[17] -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5
[33] -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5
[49] -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5
[65] -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5
[81]   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5  17.5

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_close"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Prior Help

Stranger-Like

No Choice

# returns t-test results
t.test(priorhelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorhelp by Relation
t = -6.2413, df = 353, p-value = 1.244e-09
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -8.763683 -4.564000
sample estimates:
mean of the differences 
              -6.663842 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.3317235 (small)
95 percent confidence interval:
     lower      upper 
-0.4389055 -0.2245415 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2868032 (small)
95 percent confidence interval:
     lower      upper 
-0.3788590 -0.1947473 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_priorhelp", "NoChoice_SIB_priorhelp", method = "Pearson")
Parameter1             |             Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------------
NoChoice_CUZ_priorhelp | NoChoice_SIB_priorhelp | 0.63 | [0.56, 0.69] |  15.07 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_priorhelp, breaks = 100))
$breaks
 [1] -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42
[25] -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4   6
[49]   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52  54
[73]  56  58  60  62  64  66  68

$counts
 [1]  1  0  0  0  1  0  0  1  0  0  0  1  0  1  1  1  1  4  2  1  5  6  1  3  2  4  6  1  2  2  1  4  8
[34]  6  5 10  9 12 11 13 13 31 29 53 15 13  9 13  9  7  5  6  3  4  4  2  0  2  1  0  2  2  1  0  0  0
[67]  1  0  0  0  1  1  0  0  0  0  0  1

$density
 [1] 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429 0.000000000 0.000000000 0.001412429
 [9] 0.000000000 0.000000000 0.000000000 0.001412429 0.000000000 0.001412429 0.001412429 0.001412429
[17] 0.001412429 0.005649718 0.002824859 0.001412429 0.007062147 0.008474576 0.001412429 0.004237288
[25] 0.002824859 0.005649718 0.008474576 0.001412429 0.002824859 0.002824859 0.001412429 0.005649718
[33] 0.011299435 0.008474576 0.007062147 0.014124294 0.012711864 0.016949153 0.015536723 0.018361582
[41] 0.018361582 0.043785311 0.040960452 0.074858757 0.021186441 0.018361582 0.012711864 0.018361582
[49] 0.012711864 0.009887006 0.007062147 0.008474576 0.004237288 0.005649718 0.005649718 0.002824859
[57] 0.000000000 0.002824859 0.001412429 0.000000000 0.002824859 0.002824859 0.001412429 0.000000000
[65] 0.000000000 0.000000000 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429 0.001412429
[73] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.001412429

$mids
 [1] -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41
[25] -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5   7
[49]   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53  55
[73]  57  59  61  63  65  67

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_priorhelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(priorhelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorhelp by Relation
t = -13.075, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -11.045985  -8.157405
sample estimates:
mean of the differences 
              -9.601695 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.6949149 (medium)
95 percent confidence interval:
     lower      upper 
-0.8111820 -0.5786478 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.3909815 (small)
95 percent confidence interval:
     lower      upper 
-0.4518944 -0.3300685 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_priorhelp", "Choice_SIB_priorhelp", method = "Pearson")
Parameter1           |           Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------------
Choice_CUZ_priorhelp | Choice_SIB_priorhelp | 0.84 | [0.81, 0.87] |  29.25 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_priorhelp, breaks = 100))
$breaks
  [1] -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51
 [25] -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27
 [49] -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3
 [73]  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21
 [97]  22  23  24  25  26

$counts
  [1]  1  0  1  0  0  0  0  0  0  0  0  0  1  0  0  1  0  0  0  0  0  2  1  2  1  0  0  1  0  1  0  2
 [33]  2  1  2  1  1  2  1  2  1  2  2  2  3  2  2  2  2  4  3  2  3  3  2  4  2  9  2  8 15  5 16  7
 [65]  8 11 13 13  8 17 10 17 20 60 24  9  4  1  1  2  2  0  0  1  0  0  0  0  0  0  1  0  0  0  1  0
 [97]  0  0  1  1

$density
  [1] 0.002824859 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.002824859
 [17] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.005649718 0.002824859 0.005649718
 [25] 0.002824859 0.000000000 0.000000000 0.002824859 0.000000000 0.002824859 0.000000000 0.005649718
 [33] 0.005649718 0.002824859 0.005649718 0.002824859 0.002824859 0.005649718 0.002824859 0.005649718
 [41] 0.002824859 0.005649718 0.005649718 0.005649718 0.008474576 0.005649718 0.005649718 0.005649718
 [49] 0.005649718 0.011299435 0.008474576 0.005649718 0.008474576 0.008474576 0.005649718 0.011299435
 [57] 0.005649718 0.025423729 0.005649718 0.022598870 0.042372881 0.014124294 0.045197740 0.019774011
 [65] 0.022598870 0.031073446 0.036723164 0.036723164 0.022598870 0.048022599 0.028248588 0.048022599
 [73] 0.056497175 0.169491525 0.067796610 0.025423729 0.011299435 0.002824859 0.002824859 0.005649718
 [81] 0.005649718 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000
 [89] 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000
 [97] 0.000000000 0.000000000 0.002824859 0.002824859

$mids
  [1] -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5
 [17] -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5
 [33] -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5
 [49] -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5
 [65]  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5
 [81]   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5  21.5
 [97]  22.5  23.5  24.5  25.5

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_priorhelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice

# returns t-test results
t.test(priorhelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorhelp by Relation
t = -3.8733, df = 344, p-value = 0.0001285
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -5.720921 -1.867484
sample estimates:
mean of the differences 
              -3.794203 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.2085314 (small)
95 percent confidence interval:
     lower      upper 
-0.3153813 -0.1016815 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2119308 (small)
95 percent confidence interval:
     lower      upper 
-0.3205604 -0.1033011 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_priorhelp", "NoChoice_SIB_priorhelp", method = "Pearson")
Parameter1             |             Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------------------
NoChoice_CUZ_priorhelp | NoChoice_SIB_priorhelp | 0.48 | [0.40, 0.56] |  10.23 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_priorhelp, breaks = 100))
$breaks
 [1] -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42
[25] -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4   6
[49]   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52  54
[73]  56  58  60  62  64  66  68  70  72  74  76

$counts
 [1]  1  0  0  0  0  0  0  0  0  0  0  1  0  0  2  1  2  0  2  2  0  1  1  0  1  1  7  4  1  1  2  7  7
[34]  5  7  8  5 13  9 14 16 14 13 95 17 17 12  6 10  5  4  6  2  3  4  3  1  1  1  0  0  0  1  3  0  0
[67]  0  1  0  1  0  0  3  0  0  0  0  0  0  0  0  1

$density
 [1] 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.000000000 0.000000000 0.000000000 0.001449275 0.000000000 0.000000000 0.002898551 0.001449275
[17] 0.002898551 0.000000000 0.002898551 0.002898551 0.000000000 0.001449275 0.001449275 0.000000000
[25] 0.001449275 0.001449275 0.010144928 0.005797101 0.001449275 0.001449275 0.002898551 0.010144928
[33] 0.010144928 0.007246377 0.010144928 0.011594203 0.007246377 0.018840580 0.013043478 0.020289855
[41] 0.023188406 0.020289855 0.018840580 0.137681159 0.024637681 0.024637681 0.017391304 0.008695652
[49] 0.014492754 0.007246377 0.005797101 0.008695652 0.002898551 0.004347826 0.005797101 0.004347826
[57] 0.001449275 0.001449275 0.001449275 0.000000000 0.000000000 0.000000000 0.001449275 0.004347826
[65] 0.000000000 0.000000000 0.000000000 0.001449275 0.000000000 0.001449275 0.000000000 0.000000000
[73] 0.004347826 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[81] 0.000000000 0.001449275

$mids
 [1] -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41
[25] -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5   7
[49]   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53  55
[73]  57  59  61  63  65  67  69  71  73  75

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_priorhelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(priorhelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorhelp by Relation
t = -9.0624, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -6.314485 -4.062326
sample estimates:
mean of the differences 
              -5.188406 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.4879037 (small)
95 percent confidence interval:
     lower      upper 
-0.5997247 -0.3760828 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorhelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.3099237 (small)
95 percent confidence interval:
     lower      upper 
-0.3786638 -0.2411837 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_priorhelp", "Choice_SIB_priorhelp", method = "Pearson")
Parameter1           |           Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------------
Choice_CUZ_priorhelp | Choice_SIB_priorhelp | 0.80 | [0.76, 0.83] |  24.54 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_priorhelp, breaks = 100))
$breaks
  [1] -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62
 [25] -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38
 [49] -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14
 [73] -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10
 [97]  11  12  13  14  15  16  17

$counts
  [1]   1   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
 [25]   0   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   1   0   0   0   2   1   0
 [49]   0   0   0   1   0   0   0   1   2   0   0   4   1   4   1   4   5   1   4   2   9   1   5   4
 [73]   4   7   9   3   7   9   7  10  10  13  16  27 105  31  11   6   3   1   1   3   0   0   1   1
 [97]   1   1   0   1   0   1

$density
  [1] 0.002898551 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [17] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [25] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [33] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000
 [41] 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.005797101 0.002898551 0.000000000
 [49] 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.002898551
 [57] 0.005797101 0.000000000 0.000000000 0.011594203 0.002898551 0.011594203 0.002898551 0.011594203
 [65] 0.014492754 0.002898551 0.011594203 0.005797101 0.026086957 0.002898551 0.014492754 0.011594203
 [73] 0.011594203 0.020289855 0.026086957 0.008695652 0.020289855 0.026086957 0.020289855 0.028985507
 [81] 0.028985507 0.037681159 0.046376812 0.078260870 0.304347826 0.089855072 0.031884058 0.017391304
 [89] 0.008695652 0.002898551 0.002898551 0.008695652 0.000000000 0.000000000 0.002898551 0.002898551
 [97] 0.002898551 0.002898551 0.000000000 0.002898551 0.000000000 0.002898551

$mids
  [1] -84.5 -83.5 -82.5 -81.5 -80.5 -79.5 -78.5 -77.5 -76.5 -75.5 -74.5 -73.5 -72.5 -71.5 -70.5 -69.5
 [17] -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5
 [33] -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5
 [49] -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5
 [65] -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5
 [81]  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5
 [97]  11.5  12.5  13.5  14.5  15.5  16.5

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_priorhelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Future Help

Stranger-Like

No Choice

# returns t-test results
t.test(futurehelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futurehelp by Relation
t = -3.8295, df = 353, p-value = 0.0001519
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -7.234338 -2.324984
sample estimates:
mean of the differences 
              -4.779661 
# returns dz effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.2035358 (small)
95 percent confidence interval:
      lower       upper 
-0.30896074 -0.09811078 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.1789109 (negligible)
95 percent confidence interval:
      lower       upper 
-0.27136706 -0.08645483 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_futurehelp", "NoChoice_SIB_futurehelp", method = "Pearson")
Parameter1              |              Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------------------
NoChoice_CUZ_futurehelp | NoChoice_SIB_futurehelp | 0.61 | [0.54, 0.67] |  14.58 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_futurehelp, breaks = 100))
$breaks
 [1] -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42 -40 -38 -36 -34
[25] -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4   6   8  10  12  14
[49]  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52  54  56  58  60  62
[73]  64  66  68  70  72  74  76  78  80

$counts
 [1]  2  1  0  0  0  1  0  0  0  2  1  1  2  3  4  4  2  2  3  4  2  4  2  2  4  5  2  9  7  7  6  9  7
[34]  8  5  8 12 20 29 33 31 21  9  6 14  7  8  7  2  5  3  6  1  2  4  1  1  1  0  0  0  1  2  1  1  2
[67]  0  0  0  0  0  0  0  0  0  1  1  0  1  2

$density
 [1] 0.002824859 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429 0.000000000 0.000000000
 [9] 0.000000000 0.002824859 0.001412429 0.001412429 0.002824859 0.004237288 0.005649718 0.005649718
[17] 0.002824859 0.002824859 0.004237288 0.005649718 0.002824859 0.005649718 0.002824859 0.002824859
[25] 0.005649718 0.007062147 0.002824859 0.012711864 0.009887006 0.009887006 0.008474576 0.012711864
[33] 0.009887006 0.011299435 0.007062147 0.011299435 0.016949153 0.028248588 0.040960452 0.046610169
[41] 0.043785311 0.029661017 0.012711864 0.008474576 0.019774011 0.009887006 0.011299435 0.009887006
[49] 0.002824859 0.007062147 0.004237288 0.008474576 0.001412429 0.002824859 0.005649718 0.001412429
[57] 0.001412429 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429 0.002824859 0.001412429
[65] 0.001412429 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[73] 0.000000000 0.000000000 0.000000000 0.001412429 0.001412429 0.000000000 0.001412429 0.002824859

$mids
 [1] -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41 -39 -37 -35 -33
[25] -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5   7   9  11  13  15
[49]  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53  55  57  59  61  63
[73]  65  67  69  71  73  75  77  79

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_futurehelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(futurehelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futurehelp by Relation
t = -12.09, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -10.007543  -7.207147
sample estimates:
mean of the differences 
              -8.607345 
# returns dz effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.6425661 (medium)
95 percent confidence interval:
     lower      upper 
-0.7571821 -0.5279500 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.3432908 (small)
95 percent confidence interval:
     lower      upper 
-0.4006586 -0.2859229 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_futurehelp", "Choice_SIB_futurehelp", method = "Pearson")
Parameter1            |            Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------------
Choice_CUZ_futurehelp | Choice_SIB_futurehelp | 0.86 | [0.83, 0.88] |  31.24 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_futurehelp, breaks = 100))
$breaks
  [1] -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51
 [25] -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27
 [49] -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3
 [73]  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21
 [97]  22  23  24  25  26  27  28  29  30  31  32

$counts
  [1]  1  0  0  0  0  0  0  0  0  0  0  0  1  0  0  1  0  0  0  2  0  0  1  1  2  1  0  1  0  0  0  0
 [33]  0  5  2  1  0  0  2  0  3  1  1  0  3  2  2  4  5  4  2  2  4  4  1  1  4  3  3  6  5  4 16 10
 [65] 12  9 17 13 15 15 12 19 25 49 29  6  9  2  1  2  1  0  0  0  2  0  0  1  0  1  0  0  0  0  0  0
 [97]  0  1  0  0  0  0  0  1  0  1

$density
  [1] 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.002824859
 [17] 0.000000000 0.000000000 0.000000000 0.005649718 0.000000000 0.000000000 0.002824859 0.002824859
 [25] 0.005649718 0.002824859 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000
 [33] 0.000000000 0.014124294 0.005649718 0.002824859 0.000000000 0.000000000 0.005649718 0.000000000
 [41] 0.008474576 0.002824859 0.002824859 0.000000000 0.008474576 0.005649718 0.005649718 0.011299435
 [49] 0.014124294 0.011299435 0.005649718 0.005649718 0.011299435 0.011299435 0.002824859 0.002824859
 [57] 0.011299435 0.008474576 0.008474576 0.016949153 0.014124294 0.011299435 0.045197740 0.028248588
 [65] 0.033898305 0.025423729 0.048022599 0.036723164 0.042372881 0.042372881 0.033898305 0.053672316
 [73] 0.070621469 0.138418079 0.081920904 0.016949153 0.025423729 0.005649718 0.002824859 0.005649718
 [81] 0.002824859 0.000000000 0.000000000 0.000000000 0.005649718 0.000000000 0.000000000 0.002824859
 [89] 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [97] 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859
[105] 0.000000000 0.002824859

$mids
  [1] -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5
 [17] -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5
 [33] -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5
 [49] -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5
 [65]  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5
 [81]   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5  21.5
 [97]  22.5  23.5  24.5  25.5  26.5  27.5  28.5  29.5  30.5  31.5

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_futurehelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice

# returns t-test results
t.test(futurehelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futurehelp by Relation
t = -3.1602, df = 344, p-value = 0.001717
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -4.829576 -1.124047
sample estimates:
mean of the differences 
              -2.976812 
# returns dz effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.1701376 (negligible)
95 percent confidence interval:
      lower       upper 
-0.27660668 -0.06366849 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.167496 (negligible)
95 percent confidence interval:
    lower     upper 
-0.272289 -0.062703 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_futurehelp", "NoChoice_SIB_futurehelp", method = "Pearson")
Parameter1              |              Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------------------
NoChoice_CUZ_futurehelp | NoChoice_SIB_futurehelp | 0.52 | [0.43, 0.59] |  11.14 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_futurehelp, breaks = 100))
$breaks
 [1] -94 -92 -90 -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48
[25] -46 -44 -42 -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0
[49]   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48
[73]  50  52  54  56  58  60

$counts
 [1]  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  2  0  1  4  2  0  0  1  1  1  2  3  2  1
[34]  2  3  9  4  4  4 11 15 10 12 16 15 20 99 18 10 11  7 11  8  0  5  6  5  2  0  0  1  3  0  1  1  0
[67]  2  0  0  1  1  0  0  1  0  3  1

$density
 [1] 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[17] 0.000000000 0.001449275 0.001449275 0.002898551 0.000000000 0.001449275 0.005797101 0.002898551
[25] 0.000000000 0.000000000 0.001449275 0.001449275 0.001449275 0.002898551 0.004347826 0.002898551
[33] 0.001449275 0.002898551 0.004347826 0.013043478 0.005797101 0.005797101 0.005797101 0.015942029
[41] 0.021739130 0.014492754 0.017391304 0.023188406 0.021739130 0.028985507 0.143478261 0.026086957
[49] 0.014492754 0.015942029 0.010144928 0.015942029 0.011594203 0.000000000 0.007246377 0.008695652
[57] 0.007246377 0.002898551 0.000000000 0.000000000 0.001449275 0.004347826 0.000000000 0.001449275
[65] 0.001449275 0.000000000 0.002898551 0.000000000 0.000000000 0.001449275 0.001449275 0.000000000
[73] 0.000000000 0.001449275 0.000000000 0.004347826 0.001449275

$mids
 [1] -93 -91 -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47
[25] -45 -43 -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1
[49]   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49
[73]  51  53  55  57  59

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_futurehelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(futurehelp ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futurehelp by Relation
t = -9.3125, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -6.147323 -4.003401
sample estimates:
mean of the differences 
              -5.075362 
# returns dz effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.5013687 (medium)
95 percent confidence interval:
     lower      upper 
-0.6135219 -0.3892155 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futurehelp ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.3114277 (small)
95 percent confidence interval:
     lower      upper 
-0.3786613 -0.2441941 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_futurehelp", "Choice_SIB_futurehelp", method = "Pearson")
Parameter1            |            Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------------
Choice_CUZ_futurehelp | Choice_SIB_futurehelp | 0.81 | [0.77, 0.84] |  25.32 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_futurehelp, breaks = 100))
$breaks
 [1] -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55
[25] -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31
[49] -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7
[73]  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12

$counts
 [1]   2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
[25]   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0   1   0   0   0   0   2
[49]   2   1   0   3   4   3   3   1   3   2   4   1   6   4   3   2   4   3   6   7   3  11   9   5
[73]  12   9  18  14  24 113  27   9   7   5   3   1   1   3   0   0   1   1

$density
 [1] 0.005797101 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[17] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[25] 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[33] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551
[41] 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.005797101
[49] 0.005797101 0.002898551 0.000000000 0.008695652 0.011594203 0.008695652 0.008695652 0.002898551
[57] 0.008695652 0.005797101 0.011594203 0.002898551 0.017391304 0.011594203 0.008695652 0.005797101
[65] 0.011594203 0.008695652 0.017391304 0.020289855 0.008695652 0.031884058 0.026086957 0.014492754
[73] 0.034782609 0.026086957 0.052173913 0.040579710 0.069565217 0.327536232 0.078260870 0.026086957
[81] 0.020289855 0.014492754 0.008695652 0.002898551 0.002898551 0.008695652 0.000000000 0.000000000
[89] 0.002898551 0.002898551

$mids
 [1] -77.5 -76.5 -75.5 -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5
[17] -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5
[33] -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5
[49] -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5
[65] -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5
[81]   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_futurehelp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Prior Interax

Stranger-Like

No Choice

# returns t-test results
t.test(priorinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorinteract by Relation
t = -11.696, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -18.90171 -13.45987
sample estimates:
mean of the differences 
              -16.18079 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.6216164 (medium)
95 percent confidence interval:
     lower      upper 
-0.7356017 -0.5076311 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.5954452 (medium)
95 percent confidence interval:
     lower      upper 
-0.7039004 -0.4869900 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_priorinteract", "NoChoice_SIB_priorinteract", method = "Pearson")
Parameter1                 |                 Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------------------------
NoChoice_CUZ_priorinteract | NoChoice_SIB_priorinteract | 0.54 | [0.46, 0.61] |  12.08 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_priorinteract, breaks = 100))
$breaks
 [1] -100  -98  -96  -94  -92  -90  -88  -86  -84  -82  -80  -78  -76  -74  -72  -70  -68  -66  -64
[20]  -62  -60  -58  -56  -54  -52  -50  -48  -46  -44  -42  -40  -38  -36  -34  -32  -30  -28  -26
[39]  -24  -22  -20  -18  -16  -14  -12  -10   -8   -6   -4   -2    0    2    4    6    8   10   12
[58]   14   16   18   20   22   24   26   28   30   32   34   36   38   40   42   44   46   48   50
[77]   52   54   56

$counts
 [1]  1  0  0  0  0  0  3  2  2  0  1  2  3  2  1  1  2  2  2  4  1  5  1  3  4  3  5  4  5  4  8  3  9
[34]  7  6  6  4  8  7  8  7 10 14  7  7 16 22 12 17 30 13 16 12  6  6  4  2  2  3  5  1  0  2  2  1  2
[67]  0  1  0  1  0  0  2  1  0  0  0  1

$density
 [1] 0.001412429 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.004237288 0.002824859
 [9] 0.002824859 0.000000000 0.001412429 0.002824859 0.004237288 0.002824859 0.001412429 0.001412429
[17] 0.002824859 0.002824859 0.002824859 0.005649718 0.001412429 0.007062147 0.001412429 0.004237288
[25] 0.005649718 0.004237288 0.007062147 0.005649718 0.007062147 0.005649718 0.011299435 0.004237288
[33] 0.012711864 0.009887006 0.008474576 0.008474576 0.005649718 0.011299435 0.009887006 0.011299435
[41] 0.009887006 0.014124294 0.019774011 0.009887006 0.009887006 0.022598870 0.031073446 0.016949153
[49] 0.024011299 0.042372881 0.018361582 0.022598870 0.016949153 0.008474576 0.008474576 0.005649718
[57] 0.002824859 0.002824859 0.004237288 0.007062147 0.001412429 0.000000000 0.002824859 0.002824859
[65] 0.001412429 0.002824859 0.000000000 0.001412429 0.000000000 0.001412429 0.000000000 0.000000000
[73] 0.002824859 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429

$mids
 [1] -99 -97 -95 -93 -91 -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53
[25] -51 -49 -47 -45 -43 -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5
[49]  -3  -1   1   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43
[73]  45  47  49  51  53  55

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_priorinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(priorinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorinteract by Relation
t = -17.344, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -21.68756 -17.27006
sample estimates:
mean of the differences 
              -19.47881 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.9218361 (large)
95 percent confidence interval:
    lower     upper 
-1.046397 -0.797275 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.7099864 (medium)
95 percent confidence interval:
     lower      upper 
-0.7999148 -0.6200579 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_priorinteract", "Choice_SIB_priorinteract", method = "Pearson")
Parameter1               |               Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------------------
Choice_CUZ_priorinteract | Choice_SIB_priorinteract | 0.70 | [0.65, 0.75] |  18.57 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_priorinteract, breaks = 100))
$breaks
 [1] -96 -94 -92 -90 -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50
[25] -48 -46 -44 -42 -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2
[49]   0   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46
[73]  48

$counts
 [1]  1  0  0  0  0  0  1  1  0  1  2  0  1  3  2  1  1  5  1  4  6  5  7  4  2  4  5  6  7  7  7  4 10
[34]  9  9 12 12  8  9  7  7 18 12 14 21 16 19 53 13  5  4  1  2  1  1  0  0  1  0  0  0  0  1  0  0  0
[67]  0  0  0  0  0  1

$density
 [1] 0.001412429 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.001412429 0.001412429
 [9] 0.000000000 0.001412429 0.002824859 0.000000000 0.001412429 0.004237288 0.002824859 0.001412429
[17] 0.001412429 0.007062147 0.001412429 0.005649718 0.008474576 0.007062147 0.009887006 0.005649718
[25] 0.002824859 0.005649718 0.007062147 0.008474576 0.009887006 0.009887006 0.009887006 0.005649718
[33] 0.014124294 0.012711864 0.012711864 0.016949153 0.016949153 0.011299435 0.012711864 0.009887006
[41] 0.009887006 0.025423729 0.016949153 0.019774011 0.029661017 0.022598870 0.026836158 0.074858757
[49] 0.018361582 0.007062147 0.005649718 0.001412429 0.002824859 0.001412429 0.001412429 0.000000000
[57] 0.000000000 0.001412429 0.000000000 0.000000000 0.000000000 0.000000000 0.001412429 0.000000000
[65] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.001412429

$mids
 [1] -95 -93 -91 -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49
[25] -47 -45 -43 -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1
[49]   1   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_priorinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice

# returns t-test results
t.test(priorinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorinteract by Relation
t = -4.4011, df = 344, p-value = 1.439e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -5.812775 -2.222008
sample estimates:
mean of the differences 
              -4.017391 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.2369497 (small)
95 percent confidence interval:
     lower      upper 
-0.3441300 -0.1297694 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2408293 (small)
95 percent confidence interval:
     lower      upper 
-0.3498136 -0.1318450 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_priorinteract", "NoChoice_SIB_priorinteract", method = "Pearson")
Parameter1                 |                 Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------------------------
NoChoice_CUZ_priorinteract | NoChoice_SIB_priorinteract | 0.48 | [0.40, 0.56] |  10.23 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_priorinteract, breaks = 100))
$breaks
 [1] -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42 -40 -38 -36 -34 -32 -30
[25] -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4   6   8  10  12  14  16  18
[49]  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52  54  56  58  60  62  64  66
[73]  68  70  72

$counts
 [1]   2   0   0   0   0   0   0   0   1   1   1   1   3   1   1   1   1   1   1   2   2   4   4   3
[25]   2   3   4   4   2   4  10  13  15  11  12  14  19 119  21   7   7   8   7   7   5   3   1   2
[49]   5   1   0   0   0   2   0   0   0   1   0   1   0   1   0   0   0   2   0   1   0   0   0   0
[73]   0   1

$density
 [1] 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.001449275 0.001449275 0.001449275 0.001449275 0.004347826 0.001449275 0.001449275 0.001449275
[17] 0.001449275 0.001449275 0.001449275 0.002898551 0.002898551 0.005797101 0.005797101 0.004347826
[25] 0.002898551 0.004347826 0.005797101 0.005797101 0.002898551 0.005797101 0.014492754 0.018840580
[33] 0.021739130 0.015942029 0.017391304 0.020289855 0.027536232 0.172463768 0.030434783 0.010144928
[41] 0.010144928 0.011594203 0.010144928 0.010144928 0.007246377 0.004347826 0.001449275 0.002898551
[49] 0.007246377 0.001449275 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000
[57] 0.000000000 0.001449275 0.000000000 0.001449275 0.000000000 0.001449275 0.000000000 0.000000000
[65] 0.000000000 0.002898551 0.000000000 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000
[73] 0.000000000 0.001449275

$mids
 [1] -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41 -39 -37 -35 -33 -31 -29
[25] -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5   7   9  11  13  15  17  19
[49]  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53  55  57  59  61  63  65  67
[73]  69  71

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_priorinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(priorinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  priorinteract by Relation
t = -9.6968, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -7.237946 -4.796837
sample estimates:
mean of the differences 
              -6.017391 
# returns dz effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.5220599 (medium)
95 percent confidence interval:
     lower      upper 
-0.6347394 -0.4093805 
# returns d-av effect size and 95% CIs
effsize::cohen.d(priorinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.3853272 (small)
95 percent confidence interval:
     lower      upper 
-0.4661926 -0.3044618 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_priorinteract", "Choice_SIB_priorinteract", method = "Pearson")
Parameter1               |               Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------------------
Choice_CUZ_priorinteract | Choice_SIB_priorinteract | 0.73 | [0.67, 0.77] |  19.64 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_priorinteract, breaks = 100))
$breaks
  [1] -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58
 [25] -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34
 [49] -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10
 [73]  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14
 [97]  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38
[121]  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56

$counts
  [1]   1   0   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   1   0   0   0   0
 [25]   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   2   0   1   1   3   1   0   0   1
 [49]   0   1   1   0   0   2   2   1   4   4   2   1   2   3   2   2   4   6   5  10   9   4   3   3
 [73]   9   8  14  16  12  12  11  21 118  18   9   3   0   2   1   1   2   0   1   0   1   0   1   0
 [97]   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
[121]   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1

$density
  [1] 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000
 [17] 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000
 [25] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [33] 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.005797101
 [41] 0.000000000 0.002898551 0.002898551 0.008695652 0.002898551 0.000000000 0.000000000 0.002898551
 [49] 0.000000000 0.002898551 0.002898551 0.000000000 0.000000000 0.005797101 0.005797101 0.002898551
 [57] 0.011594203 0.011594203 0.005797101 0.002898551 0.005797101 0.008695652 0.005797101 0.005797101
 [65] 0.011594203 0.017391304 0.014492754 0.028985507 0.026086957 0.011594203 0.008695652 0.008695652
 [73] 0.026086957 0.023188406 0.040579710 0.046376812 0.034782609 0.034782609 0.031884058 0.060869565
 [81] 0.342028986 0.052173913 0.026086957 0.008695652 0.000000000 0.005797101 0.002898551 0.002898551
 [89] 0.005797101 0.000000000 0.002898551 0.000000000 0.002898551 0.000000000 0.002898551 0.000000000
 [97] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[105] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[113] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[121] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[129] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[137] 0.002898551

$mids
  [1] -80.5 -79.5 -78.5 -77.5 -76.5 -75.5 -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5
 [17] -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5
 [33] -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5
 [49] -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5
 [65] -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5
 [81]  -0.5   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5
 [97]  15.5  16.5  17.5  18.5  19.5  20.5  21.5  22.5  23.5  24.5  25.5  26.5  27.5  28.5  29.5  30.5
[113]  31.5  32.5  33.5  34.5  35.5  36.5  37.5  38.5  39.5  40.5  41.5  42.5  43.5  44.5  45.5  46.5
[129]  47.5  48.5  49.5  50.5  51.5  52.5  53.5  54.5  55.5

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_priorinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Future Interax

Stranger-Like

No Choice

# returns t-test results
t.test(futureinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futureinteract by Relation
t = -5.5451, df = 353, p-value = 5.766e-08
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -10.408796  -4.958435
sample estimates:
mean of the differences 
              -7.683616 
# returns dz effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.2947192 (small)
95 percent confidence interval:
     lower      upper 
-0.4013108 -0.1881275 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2886645 (small)
95 percent confidence interval:
    lower     upper 
-0.392978 -0.184351 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_futureinteract", "NoChoice_SIB_futureinteract", method = "Pearson")
Parameter1                  |                  Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------------------------
NoChoice_CUZ_futureinteract | NoChoice_SIB_futureinteract | 0.52 | [0.44, 0.59] |  11.43 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_futureinteract, breaks = 100))
$breaks
 [1] -94 -92 -90 -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48
[25] -46 -44 -42 -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0
[49]   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48
[73]  50  52  54  56  58  60  62  64  66  68  70  72  74  76  78  80  82

$counts
 [1]  1  0  0  1  0  1  0  1  1  0  2  1  0  1  1  3  1  0  0  0  0  5  5  3  3  1  4  7  1  8  3  4  6
[34]  8  6  6  9  9  7 10 17 10 16 14 19 21 25 17 18  5  9  6  4  6  5  7  1  3  4  2  2  2  1  2  1  1
[67]  1  0  2  2  2  0  0  1  1  1  2  0  1  0  1  0  0  0  1  0  0  2

$density
 [1] 0.001412429 0.000000000 0.000000000 0.001412429 0.000000000 0.001412429 0.000000000 0.001412429
 [9] 0.001412429 0.000000000 0.002824859 0.001412429 0.000000000 0.001412429 0.001412429 0.004237288
[17] 0.001412429 0.000000000 0.000000000 0.000000000 0.000000000 0.007062147 0.007062147 0.004237288
[25] 0.004237288 0.001412429 0.005649718 0.009887006 0.001412429 0.011299435 0.004237288 0.005649718
[33] 0.008474576 0.011299435 0.008474576 0.008474576 0.012711864 0.012711864 0.009887006 0.014124294
[41] 0.024011299 0.014124294 0.022598870 0.019774011 0.026836158 0.029661017 0.035310734 0.024011299
[49] 0.025423729 0.007062147 0.012711864 0.008474576 0.005649718 0.008474576 0.007062147 0.009887006
[57] 0.001412429 0.004237288 0.005649718 0.002824859 0.002824859 0.002824859 0.001412429 0.002824859
[65] 0.001412429 0.001412429 0.001412429 0.000000000 0.002824859 0.002824859 0.002824859 0.000000000
[73] 0.000000000 0.001412429 0.001412429 0.001412429 0.002824859 0.000000000 0.001412429 0.000000000
[81] 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429 0.000000000 0.000000000 0.002824859

$mids
 [1] -93 -91 -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47
[25] -45 -43 -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1
[49]   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49
[73]  51  53  55  57  59  61  63  65  67  69  71  73  75  77  79  81

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_futureinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(futureinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futureinteract by Relation
t = -13.382, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -11.140761  -8.285793
sample estimates:
mean of the differences 
              -9.713277 
# returns dz effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.7112667 (medium)
95 percent confidence interval:
     lower      upper 
-0.8280709 -0.5944625 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.3950859 (small)
95 percent confidence interval:
     lower      upper 
-0.4552682 -0.3349035 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_futureinteract", "Choice_SIB_futureinteract", method = "Pearson")
Parameter1                |                Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------------------
Choice_CUZ_futureinteract | Choice_SIB_futureinteract | 0.85 | [0.81, 0.87] |  29.74 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_futureinteract, breaks = 100))
$breaks
  [1] -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44
 [25] -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20
 [49] -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4
 [73]   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28
 [97]  29  30  31  32  33

$counts
  [1]  1  0  0  0  0  0  1  0  0  1  0  0  1  0  1  1  1  2  0  2  2  1  0  0  0  1  1  0  1  2  1  2
 [33]  4  2  1  1  3  2  1  2  5  1  3  4  8  6  2  2  2  6  2  4  7 10  6 12 11  9 15 13 18 12 12 12
 [65] 19 22 45 21  8  7  1  3  0  0  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  1  0  1  0  0  1  0
 [97]  0  0  0  1

$density
  [1] 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000
  [9] 0.000000000 0.002824859 0.000000000 0.000000000 0.002824859 0.000000000 0.002824859 0.002824859
 [17] 0.002824859 0.005649718 0.000000000 0.005649718 0.005649718 0.002824859 0.000000000 0.000000000
 [25] 0.000000000 0.002824859 0.002824859 0.000000000 0.002824859 0.005649718 0.002824859 0.005649718
 [33] 0.011299435 0.005649718 0.002824859 0.002824859 0.008474576 0.005649718 0.002824859 0.005649718
 [41] 0.014124294 0.002824859 0.008474576 0.011299435 0.022598870 0.016949153 0.005649718 0.005649718
 [49] 0.005649718 0.016949153 0.005649718 0.011299435 0.019774011 0.028248588 0.016949153 0.033898305
 [57] 0.031073446 0.025423729 0.042372881 0.036723164 0.050847458 0.033898305 0.033898305 0.033898305
 [65] 0.053672316 0.062146893 0.127118644 0.059322034 0.022598870 0.019774011 0.002824859 0.008474576
 [73] 0.000000000 0.000000000 0.002824859 0.000000000 0.002824859 0.002824859 0.000000000 0.000000000
 [81] 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [89] 0.000000000 0.002824859 0.000000000 0.002824859 0.000000000 0.000000000 0.002824859 0.000000000
 [97] 0.000000000 0.000000000 0.000000000 0.002824859

$mids
  [1] -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5
 [17] -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5
 [33] -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5
 [49] -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5
 [65]  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5
 [81]  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5  21.5  22.5  23.5  24.5  25.5  26.5  27.5  28.5
 [97]  29.5  30.5  31.5  32.5

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_futureinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice

# returns t-test results
t.test(futureinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futureinteract by Relation
t = -3.4364, df = 344, p-value = 0.0006617
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -4.767245 -1.296523
sample estimates:
mean of the differences 
              -3.031884 
# returns dz effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.1850086 (negligible)
95 percent confidence interval:
      lower       upper 
-0.29161617 -0.07840102 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.1806067 (negligible)
95 percent confidence interval:
      lower       upper 
-0.28463664 -0.07657682 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_futureinteract", "NoChoice_SIB_futureinteract", method = "Pearson")
Parameter1                  |                  Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------------------------
NoChoice_CUZ_futureinteract | NoChoice_SIB_futureinteract | 0.52 | [0.44, 0.60] |  11.38 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_futureinteract, breaks = 100))
$breaks
 [1] -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42 -40 -38
[25] -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4   6   8  10
[49]  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52  54  56  58
[73]  60  62

$counts
 [1]   1   0   0   1   0   0   0   0   0   0   1   0   0   0   1   1   1   2   0   1   0   0   4   0
[25]   1   2   2   1   4   2   4   6   6   9  15   3   7  19  12  20  24 110  11   9  11   8   9   4
[49]   9   1   4   2   1   1   1   1   2   3   0   0   1   1   2   0   1   0   0   0   0   0   2   0
[73]   1

$density
 [1] 0.001449275 0.000000000 0.000000000 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000
 [9] 0.000000000 0.000000000 0.001449275 0.000000000 0.000000000 0.000000000 0.001449275 0.001449275
[17] 0.001449275 0.002898551 0.000000000 0.001449275 0.000000000 0.000000000 0.005797101 0.000000000
[25] 0.001449275 0.002898551 0.002898551 0.001449275 0.005797101 0.002898551 0.005797101 0.008695652
[33] 0.008695652 0.013043478 0.021739130 0.004347826 0.010144928 0.027536232 0.017391304 0.028985507
[41] 0.034782609 0.159420290 0.015942029 0.013043478 0.015942029 0.011594203 0.013043478 0.005797101
[49] 0.013043478 0.001449275 0.005797101 0.002898551 0.001449275 0.001449275 0.001449275 0.001449275
[57] 0.002898551 0.004347826 0.000000000 0.000000000 0.001449275 0.001449275 0.002898551 0.000000000
[65] 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000
[73] 0.001449275

$mids
 [1] -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41 -39 -37
[25] -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5   7   9  11
[49]  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53  55  57  59
[73]  61

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_futureinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice

# returns t-test results
t.test(futureinteract ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  futureinteract by Relation
t = -9.1648, df = 344, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -5.905830 -3.818808
sample estimates:
mean of the differences 
              -4.862319 
# returns dz effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.4934186 (small)
95 percent confidence interval:
     lower      upper 
-0.6053747 -0.3814626 
# returns d-av effect size and 95% CIs
effsize::cohen.d(futureinteract ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.3139896 (small)
95 percent confidence interval:
     lower      upper 
-0.3828948 -0.2450845 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_futureinteract", "Choice_SIB_futureinteract", method = "Pearson")
Parameter1                |                Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------------------------
Choice_CUZ_futureinteract | Choice_SIB_futureinteract | 0.80 | [0.76, 0.83] |  24.48 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_futureinteract, breaks = 100))
$breaks
  [1] -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50
 [25] -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26
 [49] -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2
 [73]  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22
 [97]  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44

$counts
  [1]   2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0
 [25]   0   0   0   0   0   0   0   0   0   0   0   1   1   1   2   0   0   0   0   1   0   1   0   3
 [49]   1   1   2   4   1   3   3   3   3   1   4   7   8   5   3   8  12  12  13  12  10  13  15  25
 [73] 123  18   6   3   3   3   1   1   2   0   0   0   0   1   1   0   0   0   0   0   0   0   0   0
 [97]   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1

$density
  [1] 0.005797101 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [17] 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000
 [25] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [33] 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551 0.002898551 0.005797101 0.000000000
 [41] 0.000000000 0.000000000 0.000000000 0.002898551 0.000000000 0.002898551 0.000000000 0.008695652
 [49] 0.002898551 0.002898551 0.005797101 0.011594203 0.002898551 0.008695652 0.008695652 0.008695652
 [57] 0.008695652 0.002898551 0.011594203 0.020289855 0.023188406 0.014492754 0.008695652 0.023188406
 [65] 0.034782609 0.034782609 0.037681159 0.034782609 0.028985507 0.037681159 0.043478261 0.072463768
 [73] 0.356521739 0.052173913 0.017391304 0.008695652 0.008695652 0.008695652 0.002898551 0.002898551
 [81] 0.005797101 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000
 [89] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [97] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[105] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[113] 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551

$mids
  [1] -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5 -58.5 -57.5
 [17] -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5 -41.5
 [33] -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5 -25.5
 [49] -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5  -9.5
 [65]  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5   6.5
 [81]   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5  21.5  22.5
 [97]  23.5  24.5  25.5  26.5  27.5  28.5  29.5  30.5  31.5  32.5  33.5  34.5  35.5  36.5  37.5  38.5
[113]  39.5  40.5  41.5  42.5  43.5

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_futureinteract"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Moral

ANOVAs

Stranger-Like

# returns 2 x 2 within-subject ANOVA results
aov_moral_SL <- aov(moral ~ Relation*`Choice Context` + Error(ResponseId/(Relation*`Choice Context`)), 
                    data = E2_all_long %>%
                      filter(BSs_cond == "Stranger-Like"))
summary(aov_moral_SL)

Error: ResponseId
           Df Sum Sq Mean Sq F value Pr(>F)
Residuals 353 240678   681.8               

Error: ResponseId:Relation
           Df Sum Sq Mean Sq F value   Pr(>F)    
Relation    1  10075   10075   59.36 1.34e-13 ***
Residuals 353  59909     170                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: ResponseId:`Choice Context`
                  Df Sum Sq Mean Sq F value Pr(>F)    
`Choice Context`   1 136782  136782   469.8 <2e-16 ***
Residuals        353 102785     291                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: ResponseId:Relation:`Choice Context`
                           Df Sum Sq Mean Sq F value  Pr(>F)    
Relation:`Choice Context`   1  11260   11260   64.77 1.3e-14 ***
Residuals                 353  61365     174                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# returns eta-sq effect size
effectsize::eta_squared(aov_moral_SL, partial = TRUE)
Group                                |               Parameter | Eta2 (partial) |       90% CI
----------------------------------------------------------------------------------------------
ResponseId:Relation                  |                Relation |           0.14 | [0.09, 0.20]
ResponseId:`Choice Context`          |          Choice Context |           0.57 | [0.52, 0.62]
ResponseId:Relation:`Choice Context` | Relation:Choice Context |           0.16 | [0.10, 0.21]

Friend-Like

# returns 2 x 2 within-subject ANOVA results
aov_moral_FL <- aov(moral ~ Relation*`Choice Context` + Error(ResponseId/(Relation*`Choice Context`)), 
                    data = E2_all_long %>%
                      filter(BSs_cond == "Friend-Like"))
summary(aov_moral_FL)

Error: ResponseId
           Df Sum Sq Mean Sq F value Pr(>F)
Residuals 344 236889   688.6               

Error: ResponseId:Relation
           Df Sum Sq Mean Sq F value   Pr(>F)    
Relation    1   2827  2826.5   15.26 0.000113 ***
Residuals 344  63709   185.2                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: ResponseId:`Choice Context`
                  Df Sum Sq Mean Sq F value Pr(>F)    
`Choice Context`   1 147539  147539   412.6 <2e-16 ***
Residuals        344 123000     358                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: ResponseId:Relation:`Choice Context`
                           Df Sum Sq Mean Sq F value   Pr(>F)    
Relation:`Choice Context`   1   3744    3744   17.74 3.23e-05 ***
Residuals                 344  72585     211                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# returns eta-sq effect size
effectsize::eta_squared(aov_moral_FL, partial = TRUE)
Group                                |               Parameter | Eta2 (partial) |       90% CI
----------------------------------------------------------------------------------------------
ResponseId:Relation                  |                Relation |           0.04 | [0.01, 0.08]
ResponseId:`Choice Context`          |          Choice Context |           0.55 | [0.49, 0.59]
ResponseId:Relation:`Choice Context` | Relation:Choice Context |           0.05 | [0.02, 0.09]

t-tests

Stranger-Like

No Choice
# returns t-test results
t.test(moral ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  moral by Relation
t = 0.45528, df = 353, p-value = 0.6492
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.012816  1.622985
sample estimates:
mean of the differences 
              0.3050847 
# returns dz effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: 0.0241978 (negligible)
95 percent confidence interval:
      lower       upper 
-0.08016727  0.12856288 
# returns d-av effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: 0.01849127 (negligible)
95 percent confidence interval:
      lower       upper 
-0.06125669  0.09823923 
# returns correlation between variables
cor_test(data = E2_SL_clean, "NoChoice_CUZ_moral", "NoChoice_SIB_moral", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------
NoChoice_CUZ_moral | NoChoice_SIB_moral | 0.71 | [0.65, 0.76] |  18.81 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$NoChoice_CUZminusSIB_moral, breaks = 100))
$breaks
  [1] -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52
 [25] -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28
 [49] -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4
 [73]  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20
 [97]  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44
[121]  45  46  47  48  49  50  51  52

$counts
  [1]  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  0  0  0  0
 [33]  0  0  1  0  0  0  0  0  0  0  1  0  0  0  0  1  0  1  3  1  3  1  0  3  1  3  3  2  5  6  4  6
 [65]  5  8  6  9  6  3  7 13  7 15 90 21 14 10  9  2  7  7  5  4  6  6  5  2  2  3  1  1  2  3  2  3
 [97]  3  2  3  1  0  1  5  2  1  0  1  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  1

$density
  [1] 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [17] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [25] 0.000000000 0.002824859 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [33] 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [41] 0.000000000 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859
 [49] 0.000000000 0.002824859 0.008474576 0.002824859 0.008474576 0.002824859 0.000000000 0.008474576
 [57] 0.002824859 0.008474576 0.008474576 0.005649718 0.014124294 0.016949153 0.011299435 0.016949153
 [65] 0.014124294 0.022598870 0.016949153 0.025423729 0.016949153 0.008474576 0.019774011 0.036723164
 [73] 0.019774011 0.042372881 0.254237288 0.059322034 0.039548023 0.028248588 0.025423729 0.005649718
 [81] 0.019774011 0.019774011 0.014124294 0.011299435 0.016949153 0.016949153 0.014124294 0.005649718
 [89] 0.005649718 0.008474576 0.002824859 0.002824859 0.005649718 0.008474576 0.005649718 0.008474576
 [97] 0.008474576 0.005649718 0.008474576 0.002824859 0.000000000 0.002824859 0.014124294 0.005649718
[105] 0.002824859 0.000000000 0.002824859 0.000000000 0.002824859 0.000000000 0.000000000 0.000000000
[113] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859 0.000000000
[121] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002824859

$mids
  [1] -74.5 -73.5 -72.5 -71.5 -70.5 -69.5 -68.5 -67.5 -66.5 -65.5 -64.5 -63.5 -62.5 -61.5 -60.5 -59.5
 [17] -58.5 -57.5 -56.5 -55.5 -54.5 -53.5 -52.5 -51.5 -50.5 -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5
 [33] -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5 -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5
 [49] -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5 -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5
 [65] -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5
 [81]   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5
 [97]  21.5  22.5  23.5  24.5  25.5  26.5  27.5  28.5  29.5  30.5  31.5  32.5  33.5  34.5  35.5  36.5
[113]  37.5  38.5  39.5  40.5  41.5  42.5  43.5  44.5  45.5  46.5  47.5  48.5  49.5  50.5  51.5

$xname
[1] "E2_SL_clean$NoChoice_CUZminusSIB_moral"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice
# returns t-test results
t.test(moral ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  moral by Relation
t = -8.9849, df = 353, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -13.376804  -8.572349
sample estimates:
mean of the differences 
              -10.97458 
# returns dz effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.4775421 (small)
95 percent confidence interval:
     lower      upper 
-0.5876805 -0.3674037 
# returns d-av effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Stranger-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.5583514 (medium)
95 percent confidence interval:
     lower      upper 
-0.6895242 -0.4271787 
# returns correlation between variables
cor_test(data = E2_SL_clean, "Choice_CUZ_moral", "Choice_SIB_moral", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
Choice_CUZ_moral | Choice_SIB_moral | 0.32 | [0.22, 0.41] |   6.26 | < .001***

Observations: 354
# returns histogram of differences score variable
print(hist(E2_SL_clean$Choice_CUZminusSIB_moral, breaks = 100))
$breaks
 [1] -94 -92 -90 -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48
[25] -46 -44 -42 -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0
[49]   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48
[73]  50  52  54  56  58  60

$counts
 [1]  1  0  0  1  0  1  0  0  0  1  0  0  0  1  1  1  2  1  1  0  1  9  9  2  1  2  2  6  7  4  7  7  4
[34] 13 12  7  9 11 10 11 10  9  9  9 12 12 55 24  7  4  6 11  9  5  2  2  1  4  0  2  1  3  1  0  1  3
[67]  0  0  1  0  1  1  2  0  0  0  2

$density
 [1] 0.001412429 0.000000000 0.000000000 0.001412429 0.000000000 0.001412429 0.000000000 0.000000000
 [9] 0.000000000 0.001412429 0.000000000 0.000000000 0.000000000 0.001412429 0.001412429 0.001412429
[17] 0.002824859 0.001412429 0.001412429 0.000000000 0.001412429 0.012711864 0.012711864 0.002824859
[25] 0.001412429 0.002824859 0.002824859 0.008474576 0.009887006 0.005649718 0.009887006 0.009887006
[33] 0.005649718 0.018361582 0.016949153 0.009887006 0.012711864 0.015536723 0.014124294 0.015536723
[41] 0.014124294 0.012711864 0.012711864 0.012711864 0.016949153 0.016949153 0.077683616 0.033898305
[49] 0.009887006 0.005649718 0.008474576 0.015536723 0.012711864 0.007062147 0.002824859 0.002824859
[57] 0.001412429 0.005649718 0.000000000 0.002824859 0.001412429 0.004237288 0.001412429 0.000000000
[65] 0.001412429 0.004237288 0.000000000 0.000000000 0.001412429 0.000000000 0.001412429 0.001412429
[73] 0.002824859 0.000000000 0.000000000 0.000000000 0.002824859

$mids
 [1] -93 -91 -89 -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47
[25] -45 -43 -41 -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1
[49]   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49
[73]  51  53  55  57  59

$xname
[1] "E2_SL_clean$Choice_CUZminusSIB_moral"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Friend-Like

No Choice
# returns t-test results
t.test(moral ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  moral by Relation
t = 0.64188, df = 344, p-value = 0.5214
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.8915215  1.7552896
sample estimates:
mean of the differences 
              0.4318841 
# returns dz effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: 0.03455759 (negligible)
95 percent confidence interval:
      lower       upper 
-0.07118084  0.14029602 
# returns d-av effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "No Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: 0.02713705 (negligible)
95 percent confidence interval:
     lower      upper 
-0.0558867  0.1101608 
# returns correlation between variables
cor_test(data = E2_FL_clean, "NoChoice_CUZ_moral", "NoChoice_SIB_moral", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------
NoChoice_CUZ_moral | NoChoice_SIB_moral | 0.69 | [0.63, 0.74] |  17.74 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$NoChoice_CUZminusSIB_moral, breaks = 100))
$breaks
  [1] -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27
 [25] -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10  -9  -8  -7  -6  -5  -4  -3
 [49]  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21
 [73]  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45
 [97]  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66

$counts
  [1]   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1   1   1   2   1   0   0   1   1
 [25]   1   1   2   4   1   1   0   1   1   2   6   2   3   6   3  11   3   2   5  11   2  10  13   9
 [49]   8 103  15  13   9   8   9   6   8   3   1   6   5   3   3   5   2   1   1   4   0   6   1   2
 [73]   1   0   0   3   1   0   2   0   0   1   0   0   0   0   0   0   0   0   1   0   0   0   1   1
 [97]   0   0   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1

$density
  [1] 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
  [9] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.002898551
 [17] 0.002898551 0.002898551 0.005797101 0.002898551 0.000000000 0.000000000 0.002898551 0.002898551
 [25] 0.002898551 0.002898551 0.005797101 0.011594203 0.002898551 0.002898551 0.000000000 0.002898551
 [33] 0.002898551 0.005797101 0.017391304 0.005797101 0.008695652 0.017391304 0.008695652 0.031884058
 [41] 0.008695652 0.005797101 0.014492754 0.031884058 0.005797101 0.028985507 0.037681159 0.026086957
 [49] 0.023188406 0.298550725 0.043478261 0.037681159 0.026086957 0.023188406 0.026086957 0.017391304
 [57] 0.023188406 0.008695652 0.002898551 0.017391304 0.014492754 0.008695652 0.008695652 0.014492754
 [65] 0.005797101 0.002898551 0.002898551 0.011594203 0.000000000 0.017391304 0.002898551 0.005797101
 [73] 0.002898551 0.000000000 0.000000000 0.008695652 0.002898551 0.000000000 0.005797101 0.000000000
 [81] 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
 [89] 0.000000000 0.000000000 0.002898551 0.000000000 0.000000000 0.000000000 0.002898551 0.002898551
 [97] 0.000000000 0.000000000 0.002898551 0.002898551 0.000000000 0.000000000 0.000000000 0.000000000
[105] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[113] 0.000000000 0.000000000 0.000000000 0.002898551

$mids
  [1] -49.5 -48.5 -47.5 -46.5 -45.5 -44.5 -43.5 -42.5 -41.5 -40.5 -39.5 -38.5 -37.5 -36.5 -35.5 -34.5
 [17] -33.5 -32.5 -31.5 -30.5 -29.5 -28.5 -27.5 -26.5 -25.5 -24.5 -23.5 -22.5 -21.5 -20.5 -19.5 -18.5
 [33] -17.5 -16.5 -15.5 -14.5 -13.5 -12.5 -11.5 -10.5  -9.5  -8.5  -7.5  -6.5  -5.5  -4.5  -3.5  -2.5
 [49]  -1.5  -0.5   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5  12.5  13.5
 [65]  14.5  15.5  16.5  17.5  18.5  19.5  20.5  21.5  22.5  23.5  24.5  25.5  26.5  27.5  28.5  29.5
 [81]  30.5  31.5  32.5  33.5  34.5  35.5  36.5  37.5  38.5  39.5  40.5  41.5  42.5  43.5  44.5  45.5
 [97]  46.5  47.5  48.5  49.5  50.5  51.5  52.5  53.5  54.5  55.5  56.5  57.5  58.5  59.5  60.5  61.5
[113]  62.5  63.5  64.5  65.5

$xname
[1] "E2_FL_clean$NoChoice_CUZminusSIB_moral"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Choice
# returns t-test results
t.test(moral ~ Relation, 
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
         droplevels(), 
       paired = T)

    Paired t-test

data:  moral by Relation
t = -4.5336, df = 344, p-value = 8.017e-06
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -8.827515 -3.485529
sample estimates:
mean of the differences 
              -6.156522 
# returns dz effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = F) # setting this to false ensures dz is calculated, using difference score

Cohen's d

d estimate: -0.2440798 (small)
95 percent confidence interval:
     lower      upper 
-0.3513495 -0.1368101 
# returns d-av effect size and 95% CIs
effsize::cohen.d(moral ~ Relation | Subject(ResponseId),
       data = E2_all_long %>% 
         filter(BSs_cond == "Friend-Like") %>%
         filter(`Choice Context` == "Choice") %>%
                   droplevels(), 
                 paired = T,
                 within = T) # setting this to true ensures d-av is calculated, using raw scores

Cohen's d

d estimate: -0.2843231 (small)
95 percent confidence interval:
     lower      upper 
-0.4099225 -0.1587236 
# returns correlation between variables
cor_test(data = E2_FL_clean, "Choice_CUZ_moral", "Choice_SIB_moral", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
Choice_CUZ_moral | Choice_SIB_moral | 0.32 | [0.22, 0.41] |   6.29 | < .001***

Observations: 345
# returns histogram of differences score variable
print(hist(E2_FL_clean$Choice_CUZminusSIB_moral, breaks = 100))
$breaks
 [1] -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 -68 -66 -64 -62 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42
[25] -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10  -8  -6  -4  -2   0   2   4   6
[49]   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46  48  50  52  54
[73]  56  58  60  62  64  66  68  70  72  74  76  78  80  82  84  86  88  90  92  94  96  98 100

$counts
 [1]  3  0  1  1  0  2  0  1  0  1  2  0  3  1  3  0  2  0  3  5  1  2  1  2  3  3  3  4  4  2  7  2  7
[34]  6  5  9  5  7  8 12  9  9 23 69 30  7  4  6  5  6  7  7  2  3  3  6  6  3  3  1  2  2  0  1  1  2
[67]  1  0  2  2  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  1

$density
 [1] 0.004347826 0.000000000 0.001449275 0.001449275 0.000000000 0.002898551 0.000000000 0.001449275
 [9] 0.000000000 0.001449275 0.002898551 0.000000000 0.004347826 0.001449275 0.004347826 0.000000000
[17] 0.002898551 0.000000000 0.004347826 0.007246377 0.001449275 0.002898551 0.001449275 0.002898551
[25] 0.004347826 0.004347826 0.004347826 0.005797101 0.005797101 0.002898551 0.010144928 0.002898551
[33] 0.010144928 0.008695652 0.007246377 0.013043478 0.007246377 0.010144928 0.011594203 0.017391304
[41] 0.013043478 0.013043478 0.033333333 0.100000000 0.043478261 0.010144928 0.005797101 0.008695652
[49] 0.007246377 0.008695652 0.010144928 0.010144928 0.002898551 0.004347826 0.004347826 0.008695652
[57] 0.008695652 0.004347826 0.004347826 0.001449275 0.002898551 0.002898551 0.000000000 0.001449275
[65] 0.001449275 0.002898551 0.001449275 0.000000000 0.002898551 0.002898551 0.000000000 0.000000000
[73] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[81] 0.000000000 0.001449275 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
[89] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.001449275

$mids
 [1] -87 -85 -83 -81 -79 -77 -75 -73 -71 -69 -67 -65 -63 -61 -59 -57 -55 -53 -51 -49 -47 -45 -43 -41
[25] -39 -37 -35 -33 -31 -29 -27 -25 -23 -21 -19 -17 -15 -13 -11  -9  -7  -5  -3  -1   1   3   5   7
[49]   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49  51  53  55
[73]  57  59  61  63  65  67  69  71  73  75  77  79  81  83  85  87  89  91  93  95  97  99

$xname
[1] "E2_FL_clean$Choice_CUZminusSIB_moral"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

Moral Diff ~ Oblig Diff Plots

# Create difference score datasets for plotting of diff score correlations

# Stranger-Like
E2_diff_SL_cond_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(SL_Dist_Scen, SL_Close_Scen),
    names_to = "WSs_cond",
    values_to = "Condition"
  )

E2_diff_SL_oblig_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_oblig, Choice_CUZminusSIB_oblig),
    names_to = "WSs_cond",
    values_to = "oblig"
  )

E2_diff_SL_relate_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_relate, Choice_CUZminusSIB_relate),
    names_to = "WSs_cond",
    values_to = "relate"
  )

E2_diff_SL_close_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_close, Choice_CUZminusSIB_close),
    names_to = "WSs_cond",
    values_to = "close"
  )

E2_diff_SL_priorhelp_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_priorhelp, Choice_CUZminusSIB_priorhelp),
    names_to = "WSs_cond",
    values_to = "priorhelp"
  )

E2_diff_SL_futurehelp_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_futurehelp, Choice_CUZminusSIB_futurehelp),
    names_to = "WSs_cond",
    values_to = "futurehelp"
  )

E2_diff_SL_priorinteract_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_priorinteract, Choice_CUZminusSIB_priorinteract),
    names_to = "WSs_cond",
    values_to = "priorinteract"
  )

E2_diff_SL_futureinteract_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_futureinteract, Choice_CUZminusSIB_futureinteract),
    names_to = "WSs_cond",
    values_to = "futureinteract"
  )

E2_diff_SL_moral_long <- E2_SL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_moral, Choice_CUZminusSIB_moral),
    names_to = "WSs_cond",
    values_to = "moral"
  )

# Combine long SL datasets, select plotting variables, and create condition variable for `Choice Context`
E2_diff_SL_long <- cbind(E2_diff_SL_cond_long, 
                         E2_diff_SL_oblig_long, 
                         E2_diff_SL_relate_long, E2_diff_SL_close_long,                                                              E2_diff_SL_priorhelp_long, E2_diff_SL_futurehelp_long, 
                         E2_diff_SL_priorinteract_long, E2_diff_SL_futureinteract_long,
                         E2_diff_SL_moral_long)
E2_diff_SL_long <- E2_diff_SL_long[, !duplicated(colnames(E2_diff_SL_long))] # get rid of duplicate columns

E2_diff_SL_long <- E2_diff_SL_long %>%
  select(ResponseId,
         Age:OUS_IH,
         BSs_cond,
         WSs_cond,
         Condition,
         oblig, 
         relate, close, 
         priorhelp, futurehelp,
         priorinteract, futureinteract,
         moral) %>%
  mutate(`Choice Context` = case_when(
    WSs_cond == "SL_Dist_Scen" ~ "No Choice",
    WSs_cond == "SL_Close_Scen" ~ "Choice"))

# Reorder/rename condition, and participant factors
E2_diff_SL_long$`Choice Context` <- as.factor(E2_diff_SL_long$`Choice Context`)
E2_diff_SL_long$`Choice Context` <- ordered(E2_diff_SL_long$`Choice Context`, levels = c("No Choice", "Choice"))
E2_diff_SL_long$ResponseId <- as.factor(E2_diff_SL_long$ResponseId)

# Friend-Like
E2_diff_FL_cond_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(FL_Dist_Scen, FL_Close_Scen),
    names_to = "WSs_cond",
    values_to = "Condition"
  )

E2_diff_FL_oblig_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_oblig, Choice_CUZminusSIB_oblig),
    names_to = "WSs_cond",
    values_to = "oblig"
  )

E2_diff_FL_relate_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_relate, Choice_CUZminusSIB_relate),
    names_to = "WSs_cond",
    values_to = "relate"
  )

E2_diff_FL_close_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_close, Choice_CUZminusSIB_close),
    names_to = "WSs_cond",
    values_to = "close"
  )

E2_diff_FL_priorhelp_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_priorhelp, Choice_CUZminusSIB_priorhelp),
    names_to = "WSs_cond",
    values_to = "priorhelp"
  )

E2_diff_FL_futurehelp_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_futurehelp, Choice_CUZminusSIB_futurehelp),
    names_to = "WSs_cond",
    values_to = "futurehelp"
  )

E2_diff_FL_priorinteract_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_priorinteract, Choice_CUZminusSIB_priorinteract),
    names_to = "WSs_cond",
    values_to = "priorinteract"
  )

E2_diff_FL_futureinteract_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_futureinteract, Choice_CUZminusSIB_futureinteract),
    names_to = "WSs_cond",
    values_to = "futureinteract"
  )

E2_diff_FL_moral_long <- E2_FL_clean %>%
  pivot_longer(
    cols = c(NoChoice_CUZminusSIB_moral, Choice_CUZminusSIB_moral),
    names_to = "WSs_cond",
    values_to = "moral"
  )

# Combine long SL datasets, select plotting variables, and create condition variable for `Choice Context`
E2_diff_FL_long <- cbind(E2_diff_FL_cond_long, 
                         E2_diff_FL_oblig_long, 
                         E2_diff_FL_relate_long, E2_diff_FL_close_long,                                                              E2_diff_FL_priorhelp_long, E2_diff_FL_futurehelp_long, 
                         E2_diff_FL_priorinteract_long, E2_diff_FL_futureinteract_long,
                         E2_diff_FL_moral_long)
E2_diff_FL_long <- E2_diff_FL_long[, !duplicated(colnames(E2_diff_FL_long))] # get rid of duplicate columns

E2_diff_FL_long <- E2_diff_FL_long %>%
  select(ResponseId,
         Age:OUS_IH,
         BSs_cond,
         WSs_cond,
         Condition,
         oblig, 
         relate, close, 
         priorhelp, futurehelp,
         priorinteract, futureinteract,
         moral) %>%
  mutate(`Choice Context` = case_when(
    WSs_cond == "FL_Dist_Scen" ~ "No Choice",
    WSs_cond == "FL_Close_Scen" ~ "Choice"))

# Reorder/rename condition, and participant factors
E2_diff_FL_long$`Choice Context` <- as.factor(E2_diff_FL_long$`Choice Context`)
E2_diff_FL_long$`Choice Context` <- ordered(E2_diff_FL_long$`Choice Context`, levels = c("No Choice", "Choice"))
E2_diff_FL_long$ResponseId <- as.factor(E2_diff_FL_long$ResponseId)


# Combine into one dataset for plotting
E2_diff_all_long <- rbind(E2_diff_SL_long, E2_diff_FL_long)
# Reorder All_long BSs_cond
E2_diff_all_long$BSs_cond <- as.factor(E2_diff_all_long$BSs_cond)
E2_diff_all_long$BSs_cond <- ordered(E2_diff_all_long$BSs_cond, levels = c("Stranger-Like", "Friend-Like"))

Stranger-Like

print(oblig_moral_diff_plot_SL <- ggplot(data = E2_diff_SL_long,
                                                    aes(x = oblig, y = moral)) +
        geom_jitter(color = "darkorchid1", alpha = 0.5) +
        geom_smooth(method = 'lm', color = "darkorchid1") +
        facet_wrap(~`Choice Context`) +
        scale_x_continuous(limits = c(-101,101), breaks = c(-100,-50,0,50,100)) +
        scale_y_continuous(limits = c(-101,101), breaks = c(-100,-50,0,50,100)) +
        theme_classic() +
        xlab("Obligation Strength Difference (Distant - Close)") +
        ylab("Moral Character Difference (Distant - Close)") +
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12)))

Friend-Like

print(oblig_moral_diff_plot_FL <- ggplot(data = E2_diff_FL_long,
                                                    aes(x = oblig, y = moral)) +
        geom_jitter(color = "darkorchid1", alpha = 0.5) +
        geom_smooth(method = 'lm', color = "darkorchid1") +
        facet_wrap(~`Choice Context`) +
        scale_x_continuous(limits = c(-101,101), breaks = c(-100,-50,0,50,100)) +
        scale_y_continuous(limits = c(-101,101), breaks = c(-100,-50,0,50,100)) +
        theme_classic() +
        xlab("Obligation Strength Difference (Distant - Close)") +
        ylab("Moral Character Difference (Distant - Close)") +
        theme(axis.title.x = element_text(size = 14), 
              axis.title.y = element_text(size = 14),
              axis.text.x = element_text(color = "black", size = 12), 
              axis.text.y = element_text(color = "black", size = 12)))

Combined

print(oblig_moral_diff_plot_combined <- ggplot(data = E2_diff_all_long,
                                                    aes(x = oblig, y = moral)) +
        geom_jitter(color = "darkorchid1", alpha = 0.5) +
        geom_smooth(method = 'lm', color = "darkorchid1") +
        facet_wrap(BSs_cond~`Choice Context`, nrow = 2) +
        scale_x_continuous(limits = c(-101,101), breaks = c(-100,-50,0,50,100)) +
        scale_y_continuous(limits = c(-101,101), breaks = c(-100,-50,0,50,100)) +
        theme_classic() +
        xlab("\nObligation Strength Difference (Distant - Close)") +
        ylab("Moral Character Difference (Distant - Close)\n") +
        theme(axis.title.x = element_text(size = 18), 
              axis.title.y = element_text(size = 18),
              axis.text.x = element_text(color = "black", size = 16), 
              axis.text.y = element_text(color = "black", size = 16),
              strip.text.x = element_text(color = "black", size = 16)))


ggsave("E2_moral~oblig_plot.png")
Saving 14 x 9 in image

Moral Diff ~ Oblig Diff Tests


See our pre-registration (INSERT LINK) and manuscript for our predictions about the relationship between obligation differences and moral character differences.


Stranger-Like

No Choice

# pearson's r
cor_test(E2_SL_clean, "NoChoice_CUZminusSIB_oblig", "NoChoice_CUZminusSIB_moral", method = "Pearson")
Parameter1                 |                 Parameter2 |     r |        95% CI | t(352) |     p
------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_oblig | NoChoice_CUZminusSIB_moral | -0.02 | [-0.13, 0.08] |  -0.42 | 0.674

Observations: 354

Choice

# pearson's r
cor_test(E2_SL_clean, "Choice_CUZminusSIB_oblig", "Choice_CUZminusSIB_moral", method = "Pearson")
Parameter1               |               Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------------------
Choice_CUZminusSIB_oblig | Choice_CUZminusSIB_moral | 0.27 | [0.17, 0.36] |   5.20 | < .001***

Observations: 354

Friend-Like

No Choice

# pearson's r
cor_test(E2_FL_clean, "NoChoice_CUZminusSIB_oblig", "NoChoice_CUZminusSIB_moral", method = "Pearson")
Parameter1                 |                 Parameter2 |    r |        95% CI | t(343) |     p
-----------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_oblig | NoChoice_CUZminusSIB_moral | 0.06 | [-0.05, 0.16] |   1.07 | 0.284

Observations: 345

Choice

# pearson's r
cor_test(E2_FL_clean, "Choice_CUZminusSIB_oblig", "Choice_CUZminusSIB_moral", method = "Pearson")
Parameter1               |               Parameter2 |    r |       95% CI | t(343) |       p
--------------------------------------------------------------------------------------------
Choice_CUZminusSIB_oblig | Choice_CUZminusSIB_moral | 0.14 | [0.04, 0.24] |   2.67 | 0.008**

Observations: 345

Moral ~ Oblig R-M Plots

Stranger-Like

No Choice

rmcorr_SL_NoChoice <- rmcorr(participant = ResponseId, 
                                  measure1 = oblig, 
                                  measure2 = moral, 
                                  dataset = E2_all_long %>%
                                    filter(BSs_cond == "Stranger-Like") %>%
                                    filter(`Choice Context` == "No Choice"))
print(rmcorr_plot_SL_NoChoice <- ggplot(data = E2_all_long %>%
                                    filter(BSs_cond == "Stranger-Like") %>%
                                    filter(`Choice Context` == "No Choice"),
                                       aes(x = oblig, y = moral, group = ResponseId, color = ResponseId)) +
                                         geom_point(aes(color = ResponseId)) +
                                         geom_line(aes(y = rmcorr_SL_NoChoice$model$fitted.values), linetype = 1) +
                                         scale_x_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         scale_y_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         theme_classic() +
                                         xlab("Obligation Strength") +
                                         ylab("Moral Character") +
                                         theme(axis.title.x = element_text(size = 14), 
                                               axis.title.y = element_text(size = 14),
                                               axis.text.x = element_text(color = "black", size = 12), 
                                               axis.text.y = element_text(color = "black", size = 12),
                                               legend.position = "none"))

Choice

rmcorr_SL_Choice <- rmcorr(participant = ResponseId, 
                                  measure1 = oblig, 
                                  measure2 = moral, 
                                  dataset = E2_all_long %>%
                                    filter(BSs_cond == "Stranger-Like") %>%
                                    filter(`Choice Context` == "Choice"))
print(rmcorr_plot_SL_Choice <- ggplot(data = E2_all_long %>%
                                    filter(BSs_cond == "Stranger-Like") %>%
                                    filter(`Choice Context` == "Choice"),
                                       aes(x = oblig, y = moral, group = ResponseId, color = ResponseId)) +
                                         geom_point(aes(color = ResponseId)) +
                                         geom_line(aes(y = rmcorr_SL_Choice$model$fitted.values), linetype = 1) +
                                         scale_x_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         scale_y_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         theme_classic() +
                                         xlab("Obligation Strength") +
                                         ylab("Moral Character") +
                                         theme(axis.title.x = element_text(size = 14), 
                                               axis.title.y = element_text(size = 14),
                                               axis.text.x = element_text(color = "black", size = 12), 
                                               axis.text.y = element_text(color = "black", size = 12),
                                               legend.position = "none"))

Friend-Like

No Choice

rmcorr_FL_NoChoice <- rmcorr(participant = ResponseId, 
                                  measure1 = oblig, 
                                  measure2 = moral, 
                                  dataset = E2_all_long %>%
                                    filter(BSs_cond == "Friend-Like") %>%
                                    filter(`Choice Context` == "No Choice"))
print(rmcorr_plot_FL_NoChoice <- ggplot(data = E2_all_long %>%
                                    filter(BSs_cond == "Friend-Like") %>%
                                    filter(`Choice Context` == "No Choice"),
                                       aes(x = oblig, y = moral, group = ResponseId, color = ResponseId)) +
                                         geom_point(aes(color = ResponseId)) +
                                         geom_line(aes(y = rmcorr_FL_NoChoice$model$fitted.values), linetype = 1) +
                                         scale_x_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         scale_y_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         theme_classic() +
                                         xlab("Obligation Strength") +
                                         ylab("Moral Character") +
                                         theme(axis.title.x = element_text(size = 14), 
                                               axis.title.y = element_text(size = 14),
                                               axis.text.x = element_text(color = "black", size = 12), 
                                               axis.text.y = element_text(color = "black", size = 12),
                                               legend.position = "none"))

Choice

rmcorr_FL_Choice <- rmcorr(participant = ResponseId, 
                                  measure1 = oblig, 
                                  measure2 = moral, 
                                  dataset = E2_all_long %>%
                                    filter(BSs_cond == "Friend-Like") %>%
                                    filter(`Choice Context` == "Choice"))
print(rmcorr_plot_FL_Choice <- ggplot(data = E2_all_long %>%
                                    filter(BSs_cond == "Friend-Like") %>%
                                    filter(`Choice Context` == "Choice"),
                                       aes(x = oblig, y = moral, group = ResponseId, color = ResponseId)) +
                                         geom_point(aes(color = ResponseId)) +
                                         geom_line(aes(y = rmcorr_FL_Choice$model$fitted.values), linetype = 1) +
                                         scale_x_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         scale_y_continuous(limits = c(-5,105), breaks = c(0,25,50,75,100)) +
                                         theme_classic() +
                                         xlab("Obligation Strength") +
                                         ylab("Moral Character") +
                                         theme(axis.title.x = element_text(size = 14), 
                                               axis.title.y = element_text(size = 14),
                                               axis.text.x = element_text(color = "black", size = 12), 
                                               axis.text.y = element_text(color = "black", size = 12),
                                               legend.position = "none"))

Moral ~ Oblig R-M Tests


See our pre-registration (INSERT LINK) for our predictions about the within-individual relationship between obligation judgments and moral character judgments.


Stranger-Like

No Choice

print(rmcorr_SL_NoChoice)

Repeated measures correlation

r
-0.02706391

degrees of freedom
353

p-value
0.6113006

95% confidence interval
-0.1310765 0.07753801 

Choice

print(rmcorr_SL_Choice)

Repeated measures correlation

r
0.4382157

degrees of freedom
353

p-value
4.325398e-18

95% confidence interval
0.3498351 0.5188646 

Friend-Like

No Choice

print(rmcorr_FL_NoChoice)

Repeated measures correlation

r
0.05185481

degrees of freedom
344

p-value
0.3361943

95% confidence interval
-0.05418352 0.1567366 

Choice

print(rmcorr_FL_Choice)

Repeated measures correlation

r
0.2379516

degrees of freedom
344

p-value
7.656461e-06

95% confidence interval
0.1356228 0.3352573 

Ind. Diff Internal Reliability Tests

MAC

Family

Stranger-Like

# create dataset with only MAC Family Values variables
E2_SL_clean_MAC_Fam_only <- E2_SL_clean %>% select(MAC_Jud_1:MAC_Jud_3, MAC_Rel_1:MAC_Rel_3)

psych::alpha(E2_SL_clean_MAC_Fam_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MAC_Fam_only)

 

 lower alpha upper     95% confidence boundaries
0.88 0.9 0.92 

 Reliability if an item is dropped:

 Item statistics 

Friend-Like

# create dataset with only MAC Family Values variables
E2_FL_clean_MAC_Fam_only <- E2_FL_clean %>% select(MAC_Jud_1:MAC_Jud_3, MAC_Rel_1:MAC_Rel_3)

psych::alpha(E2_FL_clean_MAC_Fam_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MAC_Fam_only)

 

 lower alpha upper     95% confidence boundaries
0.87 0.89 0.91 

 Reliability if an item is dropped:

 Item statistics 

Group

Stranger-Like

# create dataset with only MAC Groupily Values variables
E2_SL_clean_MAC_Group_only <- E2_SL_clean %>% select(MAC_Jud_4:MAC_Jud_6, MAC_Rel_4:MAC_Rel_6)

psych::alpha(E2_SL_clean_MAC_Group_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MAC_Group_only)

 

 lower alpha upper     95% confidence boundaries
0.85 0.87 0.89 

 Reliability if an item is dropped:

 Item statistics 

Friend-Like

# create dataset with only MAC Groupily Values variables
E2_FL_clean_MAC_Group_only <- E2_FL_clean %>% select(MAC_Jud_4:MAC_Jud_6, MAC_Rel_4:MAC_Rel_6)

psych::alpha(E2_FL_clean_MAC_Group_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MAC_Group_only)

 

 lower alpha upper     95% confidence boundaries
0.82 0.85 0.87 

 Reliability if an item is dropped:

 Item statistics 

Reciprocity

Stranger-Like

# create dataset with only MAC Recily Values variables
E2_SL_clean_MAC_Rec_only <- E2_SL_clean %>% select(MAC_Jud_7:MAC_Jud_9, MAC_Rel_7:MAC_Rel_9)

psych::alpha(E2_SL_clean_MAC_Rec_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MAC_Rec_only)

 

 lower alpha upper     95% confidence boundaries
0.79 0.82 0.85 

 Reliability if an item is dropped:

 Item statistics 

Friend-Like

# create dataset with only MAC Recily Values variables
E2_FL_clean_MAC_Rec_only <- E2_FL_clean %>% select(MAC_Jud_7:MAC_Jud_9, MAC_Rel_7:MAC_Rel_9)

psych::alpha(E2_FL_clean_MAC_Rec_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MAC_Rec_only)

 

 lower alpha upper     95% confidence boundaries
0.8 0.83 0.85 

 Reliability if an item is dropped:

 Item statistics 

Heroism

Stranger-Like

# create dataset with only MAC Heroily Values variables
E2_SL_clean_MAC_Hero_only <- E2_SL_clean %>% select(MAC_Jud_10:MAC_Jud_12, MAC_Rel_10:MAC_Rel_12)

psych::alpha(E2_SL_clean_MAC_Hero_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MAC_Hero_only)

 

 lower alpha upper     95% confidence boundaries
0.83 0.85 0.88 

 Reliability if an item is dropped:

 Item statistics 

Friend-Like

# create dataset with only MAC Heroily Values variables
E2_FL_clean_MAC_Hero_only <- E2_FL_clean %>% select(MAC_Jud_10:MAC_Jud_12, MAC_Rel_10:MAC_Rel_12)

psych::alpha(E2_FL_clean_MAC_Hero_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MAC_Hero_only)

 

 lower alpha upper     95% confidence boundaries
0.8 0.83 0.86 

 Reliability if an item is dropped:

 Item statistics 

Authority

Stranger-Like

# create dataset with only MAC Authily Values variables
E2_SL_clean_MAC_Auth_only <- E2_SL_clean %>% select(MAC_Jud_13:MAC_Jud_15, MAC_Rel_13:MAC_Rel_15)

psych::alpha(E2_SL_clean_MAC_Auth_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MAC_Auth_only)

 

 lower alpha upper     95% confidence boundaries
0.88 0.9 0.92 

 Reliability if an item is dropped:

 Item statistics 

Friend-Like

# create dataset with only MAC Authily Values variables
E2_FL_clean_MAC_Auth_only <- E2_FL_clean %>% select(MAC_Jud_13:MAC_Jud_15, MAC_Rel_13:MAC_Rel_15)

psych::alpha(E2_FL_clean_MAC_Auth_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MAC_Auth_only)

 

 lower alpha upper     95% confidence boundaries
0.86 0.88 0.9 

 Reliability if an item is dropped:

 Item statistics 

Fairness

Stranger-Like

# create dataset with only MAC Fairily Values variables
E2_SL_clean_MAC_Fair_only <- E2_SL_clean %>% select(MAC_Jud_16:MAC_Jud_18, MAC_Rel_16:MAC_Rel_18)

psych::alpha(E2_SL_clean_MAC_Fair_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MAC_Fair_only)

 

 lower alpha upper     95% confidence boundaries
0.66 0.7 0.75 

 Reliability if an item is dropped:

 Item statistics 

Friend-Like

# create dataset with only MAC Fairily Values variables
E2_FL_clean_MAC_Fair_only <- E2_FL_clean %>% select(MAC_Jud_16:MAC_Jud_18, MAC_Rel_16:MAC_Rel_18)

psych::alpha(E2_FL_clean_MAC_Fair_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MAC_Fair_only)

 

 lower alpha upper     95% confidence boundaries
0.69 0.74 0.78 

 Reliability if an item is dropped:

 Item statistics 

Property

Stranger-Like

# create dataset with only MAC Propily Values variables
E2_SL_clean_MAC_Prop_only <- E2_SL_clean %>% select(MAC_Jud_19_r:MAC_Jud_21_r, MAC_Rel_19:MAC_Rel_21)

psych::alpha(E2_SL_clean_MAC_Prop_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MAC_Prop_only)

 

 lower alpha upper     95% confidence boundaries
0.59 0.64 0.7 

 Reliability if an item is dropped:

 Item statistics 

Friend-Like

# create dataset with only MAC Propily Values variables
E2_FL_clean_MAC_Prop_only <- E2_FL_clean %>% select(MAC_Jud_19_r:MAC_Jud_21_r, MAC_Rel_19:MAC_Rel_21)

psych::alpha(E2_FL_clean_MAC_Prop_only)
Number of categories should be increased  in order to count frequencies. 

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MAC_Prop_only)

 

 lower alpha upper     95% confidence boundaries
0.64 0.69 0.74 

 Reliability if an item is dropped:

 Item statistics 

MFT

Harm

Stranger-Like

E2_SL_clean_MFQ_Harm_only <- E2_SL_clean %>% select(MFQ_Jud_1:MFQ_Jud_3, MFQ_Rel_1:MFQ_Rel_3)
psych::alpha(E2_SL_clean_MFQ_Harm_only)

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MFQ_Harm_only)

 

 lower alpha upper     95% confidence boundaries
0.7 0.74 0.78 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
             1    2    3    4    5    6 miss
MFQ_Jud_1 0.02 0.01 0.05 0.22 0.30 0.40    0
MFQ_Jud_2 0.02 0.03 0.07 0.13 0.22 0.53    0
MFQ_Jud_3 0.13 0.16 0.18 0.13 0.19 0.21    0
MFQ_Rel_1 0.02 0.06 0.12 0.22 0.34 0.24    0
MFQ_Rel_2 0.02 0.03 0.07 0.22 0.33 0.33    0
MFQ_Rel_3 0.02 0.01 0.04 0.14 0.30 0.48    0

Friend-Like

E2_FL_clean_MFQ_Harm_only <- E2_FL_clean %>% select(MFQ_Jud_1:MFQ_Jud_3, MFQ_Rel_1:MFQ_Rel_3)
psych::alpha(E2_FL_clean_MFQ_Harm_only)

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MFQ_Harm_only)

 

 lower alpha upper     95% confidence boundaries
0.73 0.77 0.81 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
             1    2    3    4    5    6 miss
MFQ_Jud_1 0.01 0.02 0.07 0.20 0.33 0.37    0
MFQ_Jud_2 0.04 0.06 0.06 0.10 0.21 0.52    0
MFQ_Jud_3 0.14 0.14 0.18 0.16 0.21 0.17    0
MFQ_Rel_1 0.04 0.05 0.08 0.23 0.33 0.26    0
MFQ_Rel_2 0.04 0.05 0.07 0.21 0.34 0.30    0
MFQ_Rel_3 0.02 0.02 0.03 0.17 0.32 0.43    0

Fairness

Stranger-Like

E2_SL_clean_MFQ_Fair_only <- E2_SL_clean %>% select(MFQ_Jud_4:MFQ_Jud_6, MFQ_Rel_4:MFQ_Rel_6)
psych::alpha(E2_SL_clean_MFQ_Fair_only)

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MFQ_Fair_only)

 

 lower alpha upper     95% confidence boundaries
0.65 0.7 0.75 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
             1    2    3    4    5    6 miss
MFQ_Jud_4 0.01 0.01 0.05 0.13 0.28 0.53    0
MFQ_Jud_5 0.02 0.04 0.10 0.22 0.33 0.29    0
MFQ_Jud_6 0.25 0.16 0.14 0.18 0.12 0.16    0
MFQ_Rel_4 0.01 0.04 0.07 0.25 0.32 0.31    0
MFQ_Rel_5 0.00 0.02 0.11 0.21 0.33 0.32    0
MFQ_Rel_6 0.01 0.01 0.06 0.13 0.32 0.47    0

Friend-Like

E2_FL_clean_MFQ_Fair_only <- E2_FL_clean %>% select(MFQ_Jud_4:MFQ_Jud_6, MFQ_Rel_4:MFQ_Rel_6)
psych::alpha(E2_FL_clean_MFQ_Fair_only)

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MFQ_Fair_only)

 

 lower alpha upper     95% confidence boundaries
0.72 0.76 0.8 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
             1    2    3    4    5    6 miss
MFQ_Jud_4 0.02 0.04 0.04 0.15 0.27 0.48    0
MFQ_Jud_5 0.03 0.04 0.09 0.24 0.32 0.28    0
MFQ_Jud_6 0.22 0.17 0.17 0.16 0.14 0.13    0
MFQ_Rel_4 0.03 0.05 0.10 0.17 0.37 0.28    0
MFQ_Rel_5 0.03 0.03 0.09 0.21 0.35 0.29    0
MFQ_Rel_6 0.02 0.02 0.05 0.12 0.30 0.48    0

Loyalty

Stranger-Like

E2_SL_clean_MFQ_Loyalty_only <- E2_SL_clean %>% select(MFQ_Jud_7:MFQ_Jud_9, MFQ_Rel_7:MFQ_Rel_9)
psych::alpha(E2_SL_clean_MFQ_Loyalty_only)

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MFQ_Loyalty_only)

 

 lower alpha upper     95% confidence boundaries
0.76 0.79 0.82 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
             1    2    3    4    5    6 miss
MFQ_Jud_7 0.16 0.17 0.17 0.22 0.19 0.11    0
MFQ_Jud_8 0.17 0.19 0.22 0.22 0.14 0.06    0
MFQ_Jud_9 0.13 0.18 0.31 0.25 0.10 0.03    0
MFQ_Rel_7 0.22 0.23 0.21 0.20 0.09 0.05    0
MFQ_Rel_8 0.10 0.19 0.15 0.29 0.19 0.07    0
MFQ_Rel_9 0.10 0.19 0.18 0.30 0.16 0.06    0

Friend-Like

E2_FL_clean_MFQ_Loyalty_only <- E2_FL_clean %>% select(MFQ_Jud_7:MFQ_Jud_9, MFQ_Rel_7:MFQ_Rel_9)
psych::alpha(E2_FL_clean_MFQ_Loyalty_only)

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MFQ_Loyalty_only)

 

 lower alpha upper     95% confidence boundaries
0.7 0.74 0.78 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
             1    2    3    4    5    6 miss
MFQ_Jud_7 0.13 0.14 0.17 0.24 0.19 0.12    0
MFQ_Jud_8 0.14 0.17 0.22 0.24 0.17 0.06    0
MFQ_Jud_9 0.10 0.20 0.29 0.25 0.12 0.04    0
MFQ_Rel_7 0.24 0.27 0.16 0.19 0.10 0.05    0
MFQ_Rel_8 0.09 0.14 0.23 0.26 0.19 0.10    0
MFQ_Rel_9 0.10 0.18 0.19 0.25 0.18 0.10    0

Authority

Stranger-Like

E2_SL_clean_MFQ_Auth_only <- E2_SL_clean %>% select(MFQ_Jud_10:MFQ_Jud_12, MFQ_Rel_10:MFQ_Rel_12)
psych::alpha(E2_SL_clean_MFQ_Auth_only)

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MFQ_Auth_only)

 

 lower alpha upper     95% confidence boundaries
0.77 0.8 0.84 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
              1    2    3    4    5    6 miss
MFQ_Jud_10 0.09 0.10 0.07 0.32 0.25 0.17    0
MFQ_Jud_11 0.23 0.15 0.15 0.22 0.12 0.12    0
MFQ_Jud_12 0.11 0.10 0.18 0.29 0.19 0.13    0
MFQ_Rel_10 0.17 0.19 0.19 0.24 0.16 0.04    0
MFQ_Rel_11 0.23 0.26 0.21 0.17 0.08 0.03    0
MFQ_Rel_12 0.03 0.06 0.13 0.25 0.33 0.20    0

Friend-Like

E2_FL_clean_MFQ_Auth_only <- E2_FL_clean %>% select(MFQ_Jud_10:MFQ_Jud_12, MFQ_Rel_10:MFQ_Rel_12)
psych::alpha(E2_FL_clean_MFQ_Auth_only)

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MFQ_Auth_only)

 

 lower alpha upper     95% confidence boundaries
0.71 0.75 0.79 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
              1    2    3    4    5    6 miss
MFQ_Jud_10 0.06 0.10 0.10 0.31 0.23 0.20    0
MFQ_Jud_11 0.21 0.15 0.09 0.28 0.17 0.10    0
MFQ_Jud_12 0.10 0.10 0.14 0.30 0.21 0.15    0
MFQ_Rel_10 0.13 0.22 0.21 0.22 0.14 0.08    0
MFQ_Rel_11 0.23 0.29 0.20 0.16 0.08 0.04    0
MFQ_Rel_12 0.04 0.07 0.14 0.25 0.30 0.20    0

Purity

Stranger-Like

E2_SL_clean_MFQ_Purity_only <- E2_SL_clean %>% select(MFQ_Jud_13:MFQ_Jud_15, MFQ_Rel_13:MFQ_Rel_15)
psych::alpha(E2_SL_clean_MFQ_Purity_only)

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_MFQ_Purity_only)

 

 lower alpha upper     95% confidence boundaries
0.88 0.9 0.91 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
              1    2    3    4    5    6 miss
MFQ_Jud_13 0.17 0.16 0.14 0.21 0.16 0.16    0
MFQ_Jud_14 0.19 0.18 0.14 0.22 0.12 0.14    0
MFQ_Jud_15 0.26 0.13 0.12 0.20 0.16 0.14    0
MFQ_Rel_13 0.18 0.16 0.15 0.20 0.17 0.13    0
MFQ_Rel_14 0.20 0.18 0.19 0.19 0.14 0.09    0
MFQ_Rel_15 0.41 0.09 0.09 0.14 0.10 0.17    0

Friend-Like

E2_FL_clean_MFQ_Purity_only <- E2_FL_clean %>% select(MFQ_Jud_13:MFQ_Jud_15, MFQ_Rel_13:MFQ_Rel_15)
psych::alpha(E2_FL_clean_MFQ_Purity_only)

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_MFQ_Purity_only)

 

 lower alpha upper     95% confidence boundaries
0.83 0.85 0.88 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
              1    2    3    4    5    6 miss
MFQ_Jud_13 0.13 0.18 0.18 0.21 0.15 0.15    0
MFQ_Jud_14 0.15 0.19 0.15 0.23 0.15 0.13    0
MFQ_Jud_15 0.28 0.13 0.12 0.21 0.13 0.13    0
MFQ_Rel_13 0.12 0.24 0.17 0.18 0.17 0.12    0
MFQ_Rel_14 0.19 0.26 0.19 0.15 0.13 0.08    0
MFQ_Rel_15 0.43 0.11 0.08 0.12 0.10 0.17    0

OUS

Impartial Beneficence

Stranger-Like

E2_SL_clean_OUS_IB_only <- E2_SL_clean %>% select(OUS_IB1:OUS_IB5)
psych::alpha(E2_SL_clean_OUS_IB_only)

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_OUS_IB_only)

 

 lower alpha upper     95% confidence boundaries
0.68 0.72 0.77 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
           1    2    3    4    5    6    7 miss
OUS_IB1 0.21 0.19 0.16 0.19 0.16 0.06 0.03    0
OUS_IB2 0.16 0.23 0.15 0.19 0.17 0.06 0.03    0
OUS_IB3 0.06 0.11 0.16 0.16 0.22 0.17 0.12    0
OUS_IB4 0.10 0.20 0.17 0.14 0.21 0.11 0.06    0
OUS_IB5 0.16 0.21 0.17 0.15 0.19 0.09 0.03    0

Friend-Like

E2_FL_clean_OUS_IB_only <- E2_FL_clean %>% select(OUS_IB1:OUS_IB5)
psych::alpha(E2_FL_clean_OUS_IB_only)

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_OUS_IB_only)

 

 lower alpha upper     95% confidence boundaries
0.74 0.78 0.82 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
           1    2    3    4    5    6    7 miss
OUS_IB1 0.19 0.18 0.19 0.21 0.15 0.04 0.03    0
OUS_IB2 0.18 0.18 0.16 0.22 0.19 0.07 0.02    0
OUS_IB3 0.07 0.12 0.17 0.13 0.21 0.19 0.11    0
OUS_IB4 0.10 0.15 0.21 0.15 0.22 0.13 0.04    0
OUS_IB5 0.16 0.19 0.19 0.19 0.17 0.06 0.04    0

Instrumental Harm

Stranger-Like

E2_SL_clean_OUS_IH_only <- E2_SL_clean %>% select(OUS_IH1:OUS_IH4)
psych::alpha(E2_SL_clean_OUS_IH_only)

Reliability analysis   
Call: psych::alpha(x = E2_SL_clean_OUS_IH_only)

 

 lower alpha upper     95% confidence boundaries
0.72 0.76 0.8 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
           1    2    3    4    5    6    7 miss
OUS_IH1 0.15 0.22 0.18 0.24 0.14 0.05 0.02    0
OUS_IH2 0.30 0.26 0.16 0.14 0.11 0.01 0.02    0
OUS_IH3 0.19 0.19 0.12 0.20 0.16 0.10 0.04    0
OUS_IH4 0.14 0.17 0.15 0.28 0.20 0.05 0.01    0

Friend-Like

E2_FL_clean_OUS_IH_only <- E2_FL_clean %>% select(OUS_IH1:OUS_IH4)
psych::alpha(E2_FL_clean_OUS_IH_only)

Reliability analysis   
Call: psych::alpha(x = E2_FL_clean_OUS_IH_only)

 

 lower alpha upper     95% confidence boundaries
0.75 0.79 0.82 

 Reliability if an item is dropped:

 Item statistics 

Non missing response frequency for each item
           1    2    3    4    5    6    7 miss
OUS_IH1 0.19 0.18 0.15 0.26 0.18 0.02 0.03    0
OUS_IH2 0.29 0.22 0.15 0.17 0.13 0.04 0.01    0
OUS_IH3 0.20 0.15 0.11 0.22 0.17 0.09 0.05    0
OUS_IH4 0.16 0.15 0.11 0.27 0.23 0.05 0.03    0

Oblig ~ Ind. Diff Plots

MAC

Family

print(oblig_mac_Fam_plot <- ggplot(data = E2_all_long,
                                     aes(x = MAC_Fam_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMAC Family Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))


ggsave("E2_oblig~MAC_plot.png")
Saving 14 x 9 in image

Group

print(oblig_mac_Group_plot <- ggplot(data = E2_all_long,
                                     aes(x = MAC_Group_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMAC Group Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Reciprocity

print(oblig_mac_Rec_plot <- ggplot(data = E2_all_long,
                                     aes(x = MAC_Rec_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMAC Reciprocity Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Heroism

print(oblig_mac_Hero_plot <- ggplot(data = E2_all_long,
                                     aes(x = MAC_Hero_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMAC Heroism Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Authority

print(oblig_mac_Auth_plot <- ggplot(data = E2_all_long,
                                     aes(x = MAC_Def_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMAC Authority Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Fairness

print(oblig_mac_Fair_plot <- ggplot(data = E2_all_long,
                                     aes(x = MAC_Fair_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMAC Fairness Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Property

print(oblig_mac_Prop_plot <- ggplot(data = E2_all_long,
                                     aes(x = MAC_Prop_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMAC Property Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

MFT

Harm

print(oblig_mft_Harm_plot <- ggplot(data = E2_all_long,
                                     aes(x = MFQ_Harm_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(.5,6.5), breaks = c(1,2,3,4,5,6)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMFT Harm Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Fairness

print(oblig_mft_Fairness_plot <- ggplot(data = E2_all_long,
                                     aes(x = MFQ_Fairness_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(.5,6.5), breaks = c(1,2,3,4,5,6)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMFT Fairness Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Loyalty

print(oblig_mft_Loyalty_plot <- ggplot(data = E2_all_long,
                                     aes(x = MFQ_Loyalty_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(.5,6.5), breaks = c(1,2,3,4,5,6)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMFT Loyalty Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))


ggsave("E2_oblig~MFT_plot.png")
Saving 14 x 9 in image

Authority

print(oblig_mft_Authority_plot <- ggplot(data = E2_all_long,
                                     aes(x = MFQ_Authority_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(.5,6.5), breaks = c(1,2,3,4,5,6)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMFT Authority Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Purity

print(oblig_mft_Purity_plot <- ggplot(data = E2_all_long,
                                     aes(x = MFQ_Purity_Combined, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(.5,6.5), breaks = c(1,2,3,4,5,6)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nMFT Purity Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

OUS

Impartial Beneficence

print(oblig_ous_ib_plot <- ggplot(data = E2_all_long,
                                     aes(x = OUS_IB, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(.5,7.5), breaks = c(1,2,3,4,5,6,7)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nOUS Impartial Beneficence Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))


ggsave("E2_oblig~OUS_plot.png")
Saving 14 x 9 in image

Instrumental Harm

print(oblig_ous_ih_plot <- ggplot(data = E2_all_long,
                                     aes(x = OUS_IH, y = oblig, color = Relation)) +
                                            geom_jitter(aes(color = Relation), alpha = 0.5) +
                                            scale_color_manual(values = c("lightskyblue3", "indianred3")) +
                                            geom_smooth(method = 'lm') +
                                            facet_wrap(BSs_cond~`Choice Context`, ncol = 2) +
                                            scale_x_continuous(limits = c(.5,7.5), breaks = c(1,2,3,4,5,6,7)) +
                                            scale_y_continuous(limits = c(-1,101), breaks = c(0,25,50,75,100)) +
                                            theme_classic() +
                                            xlab("\nOUS Instrumental Harm Composite") +
                                            ylab("Obligation Strength\n") +
                                                    theme(axis.title.x = element_text(size = 18), 
                                                    axis.title.y = element_text(size = 18),
                                                    axis.text.x = element_text(color = "black", size = 16), 
                                                    axis.text.y = element_text(color = "black", size = 16),
                                                    strip.text.x = element_text(color = "black", size = 16),
                                                    legend.position = "right",
                                                    legend.title = element_text(color = "black", size = 18),
                                                    legend.text = element_text(color = "black", size = 16)))

Oblig ~ Ind. Diff Tests


See our pre-registration (INSERT LINK) and manuscript for our predictions about the relationship between individual differences and obligation judgments.


MAC

Family

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Fam_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Fam_Combined | NoChoice_CUZ_oblig | 0.31 | [0.21, 0.40] |   6.03 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Fam_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Fam_Combined | NoChoice_SIB_oblig | 0.33 | [0.23, 0.42] |   6.48 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Fam_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |                 Parameter2 |     r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------------
MAC_Fam_Combined | NoChoice_CUZminusSIB_oblig | -0.03 | [-0.13, 0.08] |  -0.47 | 0.638

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Fam_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
MAC_Fam_Combined | Choice_CUZ_oblig | 0.37 | [0.28, 0.46] |   7.54 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Fam_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
MAC_Fam_Combined | Choice_SIB_oblig | 0.43 | [0.34, 0.51] |   8.82 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Fam_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |               Parameter2 |     r |         95% CI | t(352) |         p
-----------------------------------------------------------------------------------------
MAC_Fam_Combined | Choice_CUZminusSIB_oblig | -0.20 | [-0.30, -0.09] |  -3.77 | < .001***

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Fam_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
MAC_Fam_Combined | NoChoice_CUZ_oblig | 0.25 | [0.15, 0.35] |   4.85 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Fam_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
MAC_Fam_Combined | NoChoice_SIB_oblig | 0.32 | [0.23, 0.42] |   6.36 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Fam_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |                 Parameter2 |     r |        95% CI | t(343) |     p
--------------------------------------------------------------------------------------
MAC_Fam_Combined | NoChoice_CUZminusSIB_oblig | -0.06 | [-0.16, 0.05] |  -1.02 | 0.307

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Fam_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
MAC_Fam_Combined | Choice_CUZ_oblig | 0.29 | [0.19, 0.38] |   5.64 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Fam_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
MAC_Fam_Combined | Choice_SIB_oblig | 0.34 | [0.25, 0.43] |   6.78 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Fam_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |               Parameter2 |     r |         95% CI | t(343) |       p
---------------------------------------------------------------------------------------
MAC_Fam_Combined | Choice_CUZminusSIB_oblig | -0.17 | [-0.27, -0.06] |  -3.11 | 0.002**

Observations: 345

Group

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Group_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------
MAC_Group_Combined | NoChoice_CUZ_oblig | 0.22 | [0.12, 0.32] |   4.25 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Group_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------
MAC_Group_Combined | NoChoice_SIB_oblig | 0.25 | [0.15, 0.34] |   4.77 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Group_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1         |                 Parameter2 |     r |        95% CI | t(352) |     p
----------------------------------------------------------------------------------------
MAC_Group_Combined | NoChoice_CUZminusSIB_oblig | -0.03 | [-0.13, 0.08] |  -0.52 | 0.602

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Group_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1         |       Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Group_Combined | Choice_CUZ_oblig | 0.28 | [0.18, 0.37] |   5.45 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Group_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1         |       Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Group_Combined | Choice_SIB_oblig | 0.26 | [0.16, 0.36] |   5.13 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Group_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1         |               Parameter2 |     r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------------
MAC_Group_Combined | Choice_CUZminusSIB_oblig | -0.01 | [-0.12, 0.09] |  -0.23 | 0.821

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Group_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------
MAC_Group_Combined | NoChoice_CUZ_oblig | 0.32 | [0.22, 0.41] |   6.24 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Group_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1         |         Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------
MAC_Group_Combined | NoChoice_SIB_oblig | 0.26 | [0.16, 0.36] |   4.98 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Group_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1         |                 Parameter2 |    r |        95% CI | t(343) |     p
---------------------------------------------------------------------------------------
MAC_Group_Combined | NoChoice_CUZminusSIB_oblig | 0.08 | [-0.03, 0.18] |   1.48 | 0.140

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Group_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1         |       Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
MAC_Group_Combined | Choice_CUZ_oblig | 0.34 | [0.24, 0.43] |   6.68 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Group_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1         |       Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
MAC_Group_Combined | Choice_SIB_oblig | 0.34 | [0.24, 0.43] |   6.69 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Group_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1         |               Parameter2 |         r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------------
MAC_Group_Combined | Choice_CUZminusSIB_oblig | -8.27e-03 | [-0.11, 0.10] |  -0.15 | 0.878

Observations: 345

Reciprocity

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Rec_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Rec_Combined | NoChoice_CUZ_oblig | 0.21 | [0.10, 0.30] |   3.94 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Rec_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Rec_Combined | NoChoice_SIB_oblig | 0.30 | [0.20, 0.39] |   5.92 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Rec_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |                 Parameter2 |     r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------------
MAC_Rec_Combined | NoChoice_CUZminusSIB_oblig | -0.09 | [-0.19, 0.01] |  -1.73 | 0.085

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Rec_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
MAC_Rec_Combined | Choice_CUZ_oblig | 0.30 | [0.21, 0.40] |   5.98 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Rec_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
MAC_Rec_Combined | Choice_SIB_oblig | 0.34 | [0.25, 0.43] |   6.85 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Rec_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |               Parameter2 |     r |         95% CI | t(352) |       p
---------------------------------------------------------------------------------------
MAC_Rec_Combined | Choice_CUZminusSIB_oblig | -0.15 | [-0.25, -0.05] |  -2.87 | 0.004**

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Rec_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
MAC_Rec_Combined | NoChoice_CUZ_oblig | 0.25 | [0.15, 0.34] |   4.73 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Rec_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
MAC_Rec_Combined | NoChoice_SIB_oblig | 0.29 | [0.19, 0.38] |   5.51 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Rec_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |                 Parameter2 |     r |        95% CI | t(343) |     p
--------------------------------------------------------------------------------------
MAC_Rec_Combined | NoChoice_CUZminusSIB_oblig | -0.02 | [-0.13, 0.08] |  -0.40 | 0.690

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Rec_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
MAC_Rec_Combined | Choice_CUZ_oblig | 0.35 | [0.26, 0.44] |   7.01 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Rec_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
MAC_Rec_Combined | Choice_SIB_oblig | 0.37 | [0.27, 0.46] |   7.31 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Rec_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |               Parameter2 |     r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------
MAC_Rec_Combined | Choice_CUZminusSIB_oblig | -0.05 | [-0.15, 0.06] |  -0.85 | 0.398

Observations: 345

Heroism

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Hero_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |       p
-------------------------------------------------------------------------------
MAC_Hero_Combined | NoChoice_CUZ_oblig | 0.17 | [0.07, 0.27] |   3.28 | 0.001**

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Hero_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |         p
---------------------------------------------------------------------------------
MAC_Hero_Combined | NoChoice_SIB_oblig | 0.22 | [0.12, 0.32] |   4.22 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Hero_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |     r |        95% CI | t(352) |     p
---------------------------------------------------------------------------------------
MAC_Hero_Combined | NoChoice_CUZminusSIB_oblig | -0.05 | [-0.15, 0.06] |  -0.88 | 0.381

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Hero_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------
MAC_Hero_Combined | Choice_CUZ_oblig | 0.21 | [0.10, 0.30] |   3.95 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Hero_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------
MAC_Hero_Combined | Choice_SIB_oblig | 0.24 | [0.13, 0.33] |   4.54 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Hero_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |     r |         95% CI | t(352) |      p
---------------------------------------------------------------------------------------
MAC_Hero_Combined | Choice_CUZminusSIB_oblig | -0.11 | [-0.21,  0.00] |  -2.06 | 0.040*

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Hero_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(343) |         p
---------------------------------------------------------------------------------
MAC_Hero_Combined | NoChoice_CUZ_oblig | 0.21 | [0.10, 0.31] |   3.93 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Hero_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(343) |         p
---------------------------------------------------------------------------------
MAC_Hero_Combined | NoChoice_SIB_oblig | 0.21 | [0.11, 0.31] |   4.06 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Hero_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |        r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------------
MAC_Hero_Combined | NoChoice_CUZminusSIB_oblig | 6.60e-03 | [-0.10, 0.11] |   0.12 | 0.903

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Hero_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |         p
-------------------------------------------------------------------------------
MAC_Hero_Combined | Choice_CUZ_oblig | 0.23 | [0.13, 0.33] |   4.35 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Hero_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |         p
-------------------------------------------------------------------------------
MAC_Hero_Combined | Choice_SIB_oblig | 0.24 | [0.14, 0.33] |   4.53 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Hero_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |     r |        95% CI | t(343) |     p
-------------------------------------------------------------------------------------
MAC_Hero_Combined | Choice_CUZminusSIB_oblig | -0.03 | [-0.14, 0.08] |  -0.57 | 0.572

Observations: 345

Authority

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Def_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Def_Combined | NoChoice_CUZ_oblig | 0.20 | [0.09, 0.30] |   3.77 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Def_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------
MAC_Def_Combined | NoChoice_SIB_oblig | 0.27 | [0.17, 0.36] |   5.19 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Def_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |                 Parameter2 |     r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------------
MAC_Def_Combined | NoChoice_CUZminusSIB_oblig | -0.07 | [-0.17, 0.04] |  -1.28 | 0.201

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Def_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
MAC_Def_Combined | Choice_CUZ_oblig | 0.26 | [0.16, 0.36] |   5.07 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Def_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------
MAC_Def_Combined | Choice_SIB_oblig | 0.25 | [0.15, 0.35] |   4.87 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Def_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |               Parameter2 |     r |        95% CI | t(352) |     p
------------------------------------------------------------------------------------
MAC_Def_Combined | Choice_CUZminusSIB_oblig | -0.02 | [-0.13, 0.08] |  -0.43 | 0.667

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Def_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(343) |       p
------------------------------------------------------------------------------
MAC_Def_Combined | NoChoice_CUZ_oblig | 0.17 | [0.07, 0.27] |   3.24 | 0.001**

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Def_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1       |         Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------
MAC_Def_Combined | NoChoice_SIB_oblig | 0.21 | [0.10, 0.31] |   3.92 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Def_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |                 Parameter2 |     r |        95% CI | t(343) |     p
--------------------------------------------------------------------------------------
MAC_Def_Combined | NoChoice_CUZminusSIB_oblig | -0.02 | [-0.13, 0.08] |  -0.44 | 0.663

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Def_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |       p
----------------------------------------------------------------------------
MAC_Def_Combined | Choice_CUZ_oblig | 0.15 | [0.05, 0.25] |   2.86 | 0.005**

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Def_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1       |       Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------
MAC_Def_Combined | Choice_SIB_oblig | 0.18 | [0.08, 0.28] |   3.39 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Def_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1       |               Parameter2 |     r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------
MAC_Def_Combined | Choice_CUZminusSIB_oblig | -0.09 | [-0.19, 0.02] |  -1.63 | 0.104

Observations: 345

Fairness

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Fair_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |      p
------------------------------------------------------------------------------
MAC_Fair_Combined | NoChoice_CUZ_oblig | 0.10 | [0.00, 0.21] |   1.97 | 0.050*

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Fair_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |         p
---------------------------------------------------------------------------------
MAC_Fair_Combined | NoChoice_SIB_oblig | 0.18 | [0.08, 0.28] |   3.52 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Fair_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |     r |        95% CI | t(352) |     p
---------------------------------------------------------------------------------------
MAC_Fair_Combined | NoChoice_CUZminusSIB_oblig | -0.08 | [-0.18, 0.03] |  -1.42 | 0.156

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Fair_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------
MAC_Fair_Combined | Choice_CUZ_oblig | 0.21 | [0.11, 0.31] |   4.02 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Fair_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------
MAC_Fair_Combined | Choice_SIB_oblig | 0.20 | [0.10, 0.30] |   3.84 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Fair_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |     r |        95% CI | t(352) |     p
-------------------------------------------------------------------------------------
MAC_Fair_Combined | Choice_CUZminusSIB_oblig | -0.02 | [-0.12, 0.09] |  -0.29 | 0.770

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Fair_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(343) |         p
---------------------------------------------------------------------------------
MAC_Fair_Combined | NoChoice_CUZ_oblig | 0.18 | [0.08, 0.28] |   3.42 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Fair_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(343) |         p
---------------------------------------------------------------------------------
MAC_Fair_Combined | NoChoice_SIB_oblig | 0.19 | [0.09, 0.29] |   3.60 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Fair_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |        r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------------
MAC_Fair_Combined | NoChoice_CUZminusSIB_oblig | 2.92e-03 | [-0.10, 0.11] |   0.05 | 0.957

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Fair_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |         p
-------------------------------------------------------------------------------
MAC_Fair_Combined | Choice_CUZ_oblig | 0.25 | [0.15, 0.35] |   4.87 | < .001***

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Fair_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |         p
-------------------------------------------------------------------------------
MAC_Fair_Combined | Choice_SIB_oblig | 0.27 | [0.17, 0.36] |   5.17 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Fair_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |     r |        95% CI | t(343) |     p
-------------------------------------------------------------------------------------
MAC_Fair_Combined | Choice_CUZminusSIB_oblig | -0.05 | [-0.15, 0.06] |  -0.90 | 0.368

Observations: 345

Property

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Prop_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |       p
-------------------------------------------------------------------------------
MAC_Prop_Combined | NoChoice_CUZ_oblig | 0.17 | [0.07, 0.27] |   3.25 | 0.001**

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Prop_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |      p
------------------------------------------------------------------------------
MAC_Prop_Combined | NoChoice_SIB_oblig | 0.12 | [0.01, 0.22] |   2.25 | 0.025*

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Prop_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |    r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------------
MAC_Prop_Combined | NoChoice_CUZminusSIB_oblig | 0.04 | [-0.06, 0.15] |   0.82 | 0.411

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MAC_Prop_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |       p
-----------------------------------------------------------------------------
MAC_Prop_Combined | Choice_CUZ_oblig | 0.14 | [0.04, 0.24] |   2.70 | 0.007**

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MAC_Prop_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |      p
----------------------------------------------------------------------------
MAC_Prop_Combined | Choice_SIB_oblig | 0.12 | [0.02, 0.23] |   2.36 | 0.019*

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MAC_Prop_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |    r |        95% CI | t(352) |     p
------------------------------------------------------------------------------------
MAC_Prop_Combined | Choice_CUZminusSIB_oblig | 0.02 | [-0.09, 0.12] |   0.35 | 0.727

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Prop_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |        95% CI | t(343) |     p
------------------------------------------------------------------------------
MAC_Prop_Combined | NoChoice_CUZ_oblig | 0.06 | [-0.05, 0.16] |   1.05 | 0.293

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Prop_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |        95% CI | t(343) |     p
------------------------------------------------------------------------------
MAC_Prop_Combined | NoChoice_SIB_oblig | 0.09 | [-0.01, 0.20] |   1.74 | 0.083

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Prop_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |     r |        95% CI | t(343) |     p
---------------------------------------------------------------------------------------
MAC_Prop_Combined | NoChoice_CUZminusSIB_oblig | -0.03 | [-0.14, 0.07] |  -0.61 | 0.544

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MAC_Prop_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |      p
----------------------------------------------------------------------------
MAC_Prop_Combined | Choice_CUZ_oblig | 0.12 | [0.01, 0.22] |   2.22 | 0.027*

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MAC_Prop_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |      p
----------------------------------------------------------------------------
MAC_Prop_Combined | Choice_SIB_oblig | 0.13 | [0.02, 0.23] |   2.37 | 0.018*

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MAC_Prop_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |     r |        95% CI | t(343) |     p
-------------------------------------------------------------------------------------
MAC_Prop_Combined | Choice_CUZminusSIB_oblig | -0.03 | [-0.13, 0.08] |  -0.50 | 0.619

Observations: 345

MFT

Harm

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Harm_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |       p
-------------------------------------------------------------------------------
MFQ_Harm_Combined | NoChoice_CUZ_oblig | 0.14 | [0.04, 0.24] |   2.71 | 0.007**

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Harm_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(352) |         p
---------------------------------------------------------------------------------
MFQ_Harm_Combined | NoChoice_SIB_oblig | 0.21 | [0.11, 0.31] |   4.00 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Harm_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |     r |        95% CI | t(352) |     p
---------------------------------------------------------------------------------------
MFQ_Harm_Combined | NoChoice_CUZminusSIB_oblig | -0.06 | [-0.17, 0.04] |  -1.19 | 0.235

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Harm_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------
MFQ_Harm_Combined | Choice_CUZ_oblig | 0.18 | [0.07, 0.28] |   3.36 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Harm_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------
MFQ_Harm_Combined | Choice_SIB_oblig | 0.18 | [0.08, 0.28] |   3.46 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Harm_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |     r |        95% CI | t(352) |     p
-------------------------------------------------------------------------------------
MFQ_Harm_Combined | Choice_CUZminusSIB_oblig | -0.04 | [-0.15, 0.06] |  -0.83 | 0.406

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Harm_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(343) |      p
------------------------------------------------------------------------------
MFQ_Harm_Combined | NoChoice_CUZ_oblig | 0.12 | [0.01, 0.22] |   2.19 | 0.029*

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Harm_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1        |         Parameter2 |    r |       95% CI | t(343) |      p
------------------------------------------------------------------------------
MFQ_Harm_Combined | NoChoice_SIB_oblig | 0.14 | [0.03, 0.24] |   2.56 | 0.011*

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Harm_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |                 Parameter2 |     r |        95% CI | t(343) |     p
---------------------------------------------------------------------------------------
MFQ_Harm_Combined | NoChoice_CUZminusSIB_oblig | -0.01 | [-0.12, 0.09] |  -0.22 | 0.826

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Harm_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |       p
-----------------------------------------------------------------------------
MFQ_Harm_Combined | Choice_CUZ_oblig | 0.16 | [0.05, 0.26] |   2.95 | 0.003**

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Harm_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1        |       Parameter2 |    r |       95% CI | t(343) |       p
-----------------------------------------------------------------------------
MFQ_Harm_Combined | Choice_SIB_oblig | 0.17 | [0.07, 0.28] |   3.29 | 0.001**

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Harm_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1        |               Parameter2 |     r |        95% CI | t(343) |     p
-------------------------------------------------------------------------------------
MFQ_Harm_Combined | Choice_CUZminusSIB_oblig | -0.06 | [-0.16, 0.05] |  -1.03 | 0.303

Observations: 345

Fairness

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Fairness_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1            |         Parameter2 |    r |        95% CI | t(352) |     p
----------------------------------------------------------------------------------
MFQ_Fairness_Combined | NoChoice_CUZ_oblig | 0.09 | [-0.01, 0.19] |   1.71 | 0.088

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Fairness_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1            |         Parameter2 |    r |       95% CI | t(352) |       p
-----------------------------------------------------------------------------------
MFQ_Fairness_Combined | NoChoice_SIB_oblig | 0.15 | [0.05, 0.25] |   2.94 | 0.003**

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Fairness_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1            |                 Parameter2 |     r |        95% CI | t(352) |     p
-------------------------------------------------------------------------------------------
MFQ_Fairness_Combined | NoChoice_CUZminusSIB_oblig | -0.06 | [-0.16, 0.04] |  -1.14 | 0.255

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Fairness_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1            |       Parameter2 |    r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------
MFQ_Fairness_Combined | Choice_CUZ_oblig | 0.10 | [ 0.00, 0.20] |   1.89 | 0.060

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Fairness_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1            |       Parameter2 |    r |       95% CI | t(352) |      p
--------------------------------------------------------------------------------
MFQ_Fairness_Combined | Choice_SIB_oblig | 0.11 | [0.01, 0.21] |   2.11 | 0.036*

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Fairness_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1            |               Parameter2 |     r |        95% CI | t(352) |     p
-----------------------------------------------------------------------------------------
MFQ_Fairness_Combined | Choice_CUZminusSIB_oblig | -0.05 | [-0.15, 0.06] |  -0.87 | 0.387

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Fairness_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1            |         Parameter2 |    r |       95% CI | t(343) |      p
----------------------------------------------------------------------------------
MFQ_Fairness_Combined | NoChoice_CUZ_oblig | 0.11 | [0.00, 0.21] |   1.99 | 0.047*

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Fairness_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1            |         Parameter2 |    r |       95% CI | t(343) |       p
-----------------------------------------------------------------------------------
MFQ_Fairness_Combined | NoChoice_SIB_oblig | 0.14 | [0.04, 0.24] |   2.63 | 0.009**

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Fairness_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1            |                 Parameter2 |     r |        95% CI | t(343) |     p
-------------------------------------------------------------------------------------------
MFQ_Fairness_Combined | NoChoice_CUZminusSIB_oblig | -0.03 | [-0.13, 0.08] |  -0.49 | 0.623

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Fairness_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1            |       Parameter2 |    r |       95% CI | t(343) |       p
---------------------------------------------------------------------------------
MFQ_Fairness_Combined | Choice_CUZ_oblig | 0.18 | [0.07, 0.28] |   3.31 | 0.001**

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Fairness_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1            |       Parameter2 |    r |       95% CI | t(343) |       p
---------------------------------------------------------------------------------
MFQ_Fairness_Combined | Choice_SIB_oblig | 0.17 | [0.07, 0.27] |   3.21 | 0.001**

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Fairness_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1            |               Parameter2 |    r |        95% CI | t(343) |     p
----------------------------------------------------------------------------------------
MFQ_Fairness_Combined | Choice_CUZminusSIB_oblig | 0.01 | [-0.09, 0.12] |   0.23 | 0.818

Observations: 345

Loyalty

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Loyalty_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1           |         Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------
MFQ_Loyalty_Combined | NoChoice_CUZ_oblig | 0.21 | [0.10, 0.30] |   3.95 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Loyalty_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1           |         Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------
MFQ_Loyalty_Combined | NoChoice_SIB_oblig | 0.18 | [0.08, 0.28] |   3.50 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Loyalty_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1           |                 Parameter2 |    r |        95% CI | t(352) |     p
-----------------------------------------------------------------------------------------
MFQ_Loyalty_Combined | NoChoice_CUZminusSIB_oblig | 0.02 | [-0.09, 0.12] |   0.31 | 0.756

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Loyalty_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1           |       Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------
MFQ_Loyalty_Combined | Choice_CUZ_oblig | 0.27 | [0.17, 0.36] |   5.23 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Loyalty_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1           |       Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------
MFQ_Loyalty_Combined | Choice_SIB_oblig | 0.28 | [0.18, 0.37] |   5.46 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Loyalty_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1           |               Parameter2 |     r |        95% CI | t(352) |     p
----------------------------------------------------------------------------------------
MFQ_Loyalty_Combined | Choice_CUZminusSIB_oblig | -0.07 | [-0.18, 0.03] |  -1.40 | 0.162

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Loyalty_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1           |         Parameter2 |    r |       95% CI | t(343) |      p
---------------------------------------------------------------------------------
MFQ_Loyalty_Combined | NoChoice_CUZ_oblig | 0.14 | [0.03, 0.24] |   2.54 | 0.012*

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Loyalty_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1           |         Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------------
MFQ_Loyalty_Combined | NoChoice_SIB_oblig | 0.19 | [0.08, 0.29] |   3.50 | < .001***

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Loyalty_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1           |                 Parameter2 |     r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------------
MFQ_Loyalty_Combined | NoChoice_CUZminusSIB_oblig | -0.04 | [-0.15, 0.06] |  -0.76 | 0.447

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Loyalty_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1           |       Parameter2 |    r |       95% CI | t(343) |       p
--------------------------------------------------------------------------------
MFQ_Loyalty_Combined | Choice_CUZ_oblig | 0.15 | [0.05, 0.25] |   2.83 | 0.005**

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Loyalty_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1           |       Parameter2 |    r |       95% CI | t(343) |       p
--------------------------------------------------------------------------------
MFQ_Loyalty_Combined | Choice_SIB_oblig | 0.17 | [0.06, 0.27] |   3.17 | 0.002**

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Loyalty_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1           |               Parameter2 |     r |        95% CI | t(343) |     p
----------------------------------------------------------------------------------------
MFQ_Loyalty_Combined | Choice_CUZminusSIB_oblig | -0.06 | [-0.16, 0.05] |  -1.06 | 0.288

Observations: 345

Authority

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Authority_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1             |         Parameter2 |    r |       95% CI | t(352) |      p
-----------------------------------------------------------------------------------
MFQ_Authority_Combined | NoChoice_CUZ_oblig | 0.13 | [0.02, 0.23] |   2.40 | 0.017*

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Authority_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1             |         Parameter2 |    r |       95% CI | t(352) |       p
------------------------------------------------------------------------------------
MFQ_Authority_Combined | NoChoice_SIB_oblig | 0.17 | [0.07, 0.27] |   3.26 | 0.001**

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Authority_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1             |                 Parameter2 |     r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------------------
MFQ_Authority_Combined | NoChoice_CUZminusSIB_oblig | -0.04 | [-0.15, 0.06] |  -0.81 | 0.419

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Authority_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1             |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------
MFQ_Authority_Combined | Choice_CUZ_oblig | 0.19 | [0.09, 0.29] |   3.65 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Authority_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1             |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------
MFQ_Authority_Combined | Choice_SIB_oblig | 0.18 | [0.08, 0.28] |   3.48 | < .001***

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Authority_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1             |               Parameter2 |     r |        95% CI | t(352) |     p
------------------------------------------------------------------------------------------
MFQ_Authority_Combined | Choice_CUZminusSIB_oblig | -0.01 | [-0.12, 0.09] |  -0.23 | 0.816

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Authority_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1             |         Parameter2 |    r |        95% CI | t(343) |     p
-----------------------------------------------------------------------------------
MFQ_Authority_Combined | NoChoice_CUZ_oblig | 0.05 | [-0.05, 0.16] |   0.98 | 0.326

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Authority_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1             |         Parameter2 |    r |       95% CI | t(343) |      p
-----------------------------------------------------------------------------------
MFQ_Authority_Combined | NoChoice_SIB_oblig | 0.13 | [0.03, 0.23] |   2.47 | 0.014*

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Authority_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1             |                 Parameter2 |     r |        95% CI | t(343) |     p
--------------------------------------------------------------------------------------------
MFQ_Authority_Combined | NoChoice_CUZminusSIB_oblig | -0.08 | [-0.18, 0.03] |  -1.40 | 0.163

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Authority_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1             |       Parameter2 |    r |        95% CI | t(343) |     p
---------------------------------------------------------------------------------
MFQ_Authority_Combined | Choice_CUZ_oblig | 0.09 | [-0.01, 0.20] |   1.73 | 0.085

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Authority_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1             |       Parameter2 |    r |        95% CI | t(343) |     p
---------------------------------------------------------------------------------
MFQ_Authority_Combined | Choice_SIB_oblig | 0.10 | [ 0.00, 0.20] |   1.88 | 0.060

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Authority_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1             |               Parameter2 |     r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------------
MFQ_Authority_Combined | Choice_CUZminusSIB_oblig | -0.03 | [-0.13, 0.08] |  -0.51 | 0.613

Observations: 345

Purity

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Purity_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1          |         Parameter2 |    r |       95% CI | t(352) |      p
--------------------------------------------------------------------------------
MFQ_Purity_Combined | NoChoice_CUZ_oblig | 0.11 | [0.00, 0.21] |   2.06 | 0.040*

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Purity_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1          |         Parameter2 |    r |       95% CI | t(352) |       p
---------------------------------------------------------------------------------
MFQ_Purity_Combined | NoChoice_SIB_oblig | 0.15 | [0.04, 0.25] |   2.76 | 0.006**

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Purity_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1          |                 Parameter2 |     r |        95% CI | t(352) |     p
-----------------------------------------------------------------------------------------
MFQ_Purity_Combined | NoChoice_CUZminusSIB_oblig | -0.04 | [-0.14, 0.07] |  -0.67 | 0.505

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "MFQ_Purity_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1          |       Parameter2 |    r |       95% CI | t(352) |      p
------------------------------------------------------------------------------
MFQ_Purity_Combined | Choice_CUZ_oblig | 0.12 | [0.01, 0.22] |   2.25 | 0.025*

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "MFQ_Purity_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1          |       Parameter2 |    r |       95% CI | t(352) |      p
------------------------------------------------------------------------------
MFQ_Purity_Combined | Choice_SIB_oblig | 0.13 | [0.03, 0.23] |   2.46 | 0.014*

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "MFQ_Purity_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1          |               Parameter2 |     r |        95% CI | t(352) |     p
---------------------------------------------------------------------------------------
MFQ_Purity_Combined | Choice_CUZminusSIB_oblig | -0.05 | [-0.15, 0.06] |  -0.91 | 0.364

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Purity_Combined", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1          |         Parameter2 |    r |        95% CI | t(343) |     p
--------------------------------------------------------------------------------
MFQ_Purity_Combined | NoChoice_CUZ_oblig | 0.02 | [-0.08, 0.13] |   0.44 | 0.657

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Purity_Combined", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1          |         Parameter2 |    r |        95% CI | t(343) |     p
--------------------------------------------------------------------------------
MFQ_Purity_Combined | NoChoice_SIB_oblig | 0.10 | [-0.01, 0.20] |   1.77 | 0.077

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Purity_Combined", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1          |                 Parameter2 |     r |        95% CI | t(343) |     p
-----------------------------------------------------------------------------------------
MFQ_Purity_Combined | NoChoice_CUZminusSIB_oblig | -0.07 | [-0.17, 0.04] |  -1.28 | 0.200

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "MFQ_Purity_Combined", "Choice_CUZ_oblig", method = "Pearson")
Parameter1          |       Parameter2 |         r |        95% CI | t(343) |     p
-----------------------------------------------------------------------------------
MFQ_Purity_Combined | Choice_CUZ_oblig | -9.45e-03 | [-0.11, 0.10] |  -0.17 | 0.861

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "MFQ_Purity_Combined", "Choice_SIB_oblig", method = "Pearson")
Parameter1          |       Parameter2 |         r |        95% CI | t(343) |     p
-----------------------------------------------------------------------------------
MFQ_Purity_Combined | Choice_SIB_oblig | -4.09e-03 | [-0.11, 0.10] |  -0.08 | 0.940

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "MFQ_Purity_Combined", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1          |               Parameter2 |     r |        95% CI | t(343) |     p
---------------------------------------------------------------------------------------
MFQ_Purity_Combined | Choice_CUZminusSIB_oblig | -0.02 | [-0.12, 0.09] |  -0.30 | 0.765

Observations: 345

OUS

Impartial Beneficence

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "OUS_IB", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1 |         Parameter2 |    r |       95% CI | t(352) |      p
-----------------------------------------------------------------------
OUS_IB     | NoChoice_CUZ_oblig | 0.13 | [0.02, 0.23] |   2.42 | 0.016*

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "OUS_IB", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1 |         Parameter2 |    r |       95% CI | t(352) |      p
-----------------------------------------------------------------------
OUS_IB     | NoChoice_SIB_oblig | 0.13 | [0.03, 0.23] |   2.46 | 0.014*

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "OUS_IB", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |                 Parameter2 |         r |        95% CI | t(352) |     p
------------------------------------------------------------------------------------
OUS_IB     | NoChoice_CUZminusSIB_oblig | -4.55e-03 | [-0.11, 0.10] |  -0.09 | 0.932

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "OUS_IB", "Choice_CUZ_oblig", method = "Pearson")
Parameter1 |       Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------
OUS_IB     | Choice_CUZ_oblig | 0.19 | [0.09, 0.29] |   3.59 | < .001***

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "OUS_IB", "Choice_SIB_oblig", method = "Pearson")
Parameter1 |       Parameter2 |    r |       95% CI | t(352) |       p
----------------------------------------------------------------------
OUS_IB     | Choice_SIB_oblig | 0.16 | [0.05, 0.26] |   2.95 | 0.003**

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "OUS_IB", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |               Parameter2 |    r |        95% CI | t(352) |     p
-----------------------------------------------------------------------------
OUS_IB     | Choice_CUZminusSIB_oblig | 0.05 | [-0.06, 0.15] |   0.88 | 0.381

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "OUS_IB", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1 |         Parameter2 |    r |       95% CI | t(343) |      p
-----------------------------------------------------------------------
OUS_IB     | NoChoice_CUZ_oblig | 0.12 | [0.01, 0.22] |   2.18 | 0.030*

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "OUS_IB", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1 |         Parameter2 |    r |        95% CI | t(343) |     p
-----------------------------------------------------------------------
OUS_IB     | NoChoice_SIB_oblig | 0.06 | [-0.04, 0.17] |   1.17 | 0.243

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "OUS_IB", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |                 Parameter2 |    r |        95% CI | t(343) |     p
-------------------------------------------------------------------------------
OUS_IB     | NoChoice_CUZminusSIB_oblig | 0.06 | [-0.04, 0.17] |   1.13 | 0.258

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "OUS_IB", "Choice_CUZ_oblig", method = "Pearson")
Parameter1 |       Parameter2 |    r |       95% CI | t(343) |      p
---------------------------------------------------------------------
OUS_IB     | Choice_CUZ_oblig | 0.12 | [0.01, 0.22] |   2.15 | 0.032*

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "OUS_IB", "Choice_SIB_oblig", method = "Pearson")
Parameter1 |       Parameter2 |    r |       95% CI | t(343) |      p
---------------------------------------------------------------------
OUS_IB     | Choice_SIB_oblig | 0.11 | [0.00, 0.21] |   2.00 | 0.046*

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "OUS_IB", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |               Parameter2 |    r |        95% CI | t(343) |     p
-----------------------------------------------------------------------------
OUS_IB     | Choice_CUZminusSIB_oblig | 0.02 | [-0.08, 0.13] |   0.41 | 0.683

Observations: 345

Instrumental Harm

Stranger-Like

No Choice
# distant pearson's r
cor_test(E2_SL_clean, "OUS_IH", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1 |         Parameter2 |     r |        95% CI | t(352) |     p
------------------------------------------------------------------------
OUS_IH     | NoChoice_CUZ_oblig | -0.01 | [-0.12, 0.09] |  -0.21 | 0.831

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "OUS_IH", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1 |         Parameter2 |     r |        95% CI | t(352) |     p
------------------------------------------------------------------------
OUS_IH     | NoChoice_SIB_oblig | -0.06 | [-0.16, 0.05] |  -1.04 | 0.300

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "OUS_IH", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |                 Parameter2 |    r |        95% CI | t(352) |     p
-------------------------------------------------------------------------------
OUS_IH     | NoChoice_CUZminusSIB_oblig | 0.04 | [-0.06, 0.14] |   0.76 | 0.449

Observations: 354
Choice
# distant pearson's r
cor_test(E2_SL_clean, "OUS_IH", "Choice_CUZ_oblig", method = "Pearson")
Parameter1 |       Parameter2 |    r |        95% CI | t(352) |     p
---------------------------------------------------------------------
OUS_IH     | Choice_CUZ_oblig | 0.02 | [-0.09, 0.12] |   0.34 | 0.736

Observations: 354
# close pearson's r
cor_test(E2_SL_clean, "OUS_IH", "Choice_SIB_oblig", method = "Pearson")
Parameter1 |       Parameter2 |        r |        95% CI | t(352) |     p
-------------------------------------------------------------------------
OUS_IH     | Choice_SIB_oblig | 1.76e-03 | [-0.10, 0.11] |   0.03 | 0.974

Observations: 354
# diff pearson's r
cor_test(E2_SL_clean, "OUS_IH", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |               Parameter2 |    r |        95% CI | t(352) |     p
-----------------------------------------------------------------------------
OUS_IH     | Choice_CUZminusSIB_oblig | 0.04 | [-0.07, 0.14] |   0.70 | 0.487

Observations: 354

Friend-Like

No Choice
# distant pearson's r
cor_test(E2_FL_clean, "OUS_IH", "NoChoice_CUZ_oblig", method = "Pearson")
Parameter1 |         Parameter2 |    r |        95% CI | t(343) |     p
-----------------------------------------------------------------------
OUS_IH     | NoChoice_CUZ_oblig | 0.06 | [-0.04, 0.17] |   1.16 | 0.245

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "OUS_IH", "NoChoice_SIB_oblig", method = "Pearson")
Parameter1 |         Parameter2 |        r |        95% CI | t(343) |     p
---------------------------------------------------------------------------
OUS_IH     | NoChoice_SIB_oblig | 2.63e-03 | [-0.10, 0.11] |   0.05 | 0.961

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "OUS_IH", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |                 Parameter2 |    r |        95% CI | t(343) |     p
-------------------------------------------------------------------------------
OUS_IH     | NoChoice_CUZminusSIB_oblig | 0.06 | [-0.04, 0.17] |   1.18 | 0.238

Observations: 345
Choice
# distant pearson's r
cor_test(E2_FL_clean, "OUS_IH", "Choice_CUZ_oblig", method = "Pearson")
Parameter1 |       Parameter2 |    r |        95% CI | t(343) |     p
---------------------------------------------------------------------
OUS_IH     | Choice_CUZ_oblig | 0.02 | [-0.08, 0.13] |   0.43 | 0.667

Observations: 345
# close pearson's r
cor_test(E2_FL_clean, "OUS_IH", "Choice_SIB_oblig", method = "Pearson")
Parameter1 |       Parameter2 |        r |        95% CI | t(343) |     p
-------------------------------------------------------------------------
OUS_IH     | Choice_SIB_oblig | 8.16e-03 | [-0.10, 0.11] |   0.15 | 0.880

Observations: 345
# diff pearson's r
cor_test(E2_FL_clean, "OUS_IH", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1 |               Parameter2 |    r |        95% CI | t(343) |     p
-----------------------------------------------------------------------------
OUS_IH     | Choice_CUZminusSIB_oblig | 0.05 | [-0.06, 0.15] |   0.84 | 0.400

Observations: 345

Oblig ~ MAC Family Values vs MFT Ingroup Loyalty Tests

Stranger-Like

No Choice

# correlation values are taken from the above analyses
## r.jk = oblig ~ family values corr; r.jh = oblig ~ ingroup loyalty corr; r.kh = family values ~ ingroup loyalty corr

# distant
cocor.dep.groups.overlap(r.jk = .31, r.jh = .21, r.kh = .62, 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.31 and r.jh = 0.21
Difference: r.jk - r.jh = 0.1
Related correlation: r.kh = 0.62
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 2.2437, p-value = 0.0249
  Null hypothesis rejected
# close
cocor.dep.groups.overlap(r.jk = .33, r.jh = .18, r.kh = .62, 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.33 and r.jh = 0.18
Difference: r.jk - r.jh = 0.15
Related correlation: r.kh = 0.62
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 3.3647, p-value = 0.0008
  Null hypothesis rejected
# difference
cocor.dep.groups.overlap(r.jk = -.03, r.jh = .02, r.kh = .62, 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = -0.03 and r.jh = 0.02
Difference: r.jk - r.jh = -0.05
Related correlation: r.kh = 0.62
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -1.0748, p-value = 0.2825
  Null hypothesis retained

Choice

# correlation values are taken from the oblig ~ ind. diffs analyses
## r.jk = oblig ~ family values corr; r.jh = oblig ~ ingroup loyalty corr; r.kh = family values ~ ingroup loyalty corr

# distant
cocor.dep.groups.overlap(r.jk = .37, r.jh = .27, r.kh = .62, 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.37 and r.jh = 0.27
Difference: r.jk - r.jh = 0.1
Related correlation: r.kh = 0.62
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 2.2964, p-value = 0.0217
  Null hypothesis rejected
# close
cocor.dep.groups.overlap(r.jk = .43, r.jh = .28, r.kh = .62, 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.43 and r.jh = 0.28
Difference: r.jk - r.jh = 0.15
Related correlation: r.kh = 0.62
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 3.5083, p-value = 0.0005
  Null hypothesis rejected
# difference
cocor.dep.groups.overlap(r.jk = -.20, r.jh = -.07, r.kh = .62, 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = -0.2 and r.jh = -0.07
Difference: r.jk - r.jh = -0.13
Related correlation: r.kh = 0.62
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -2.8289, p-value = 0.0047
  Null hypothesis rejected

Friend-Like

No Choice

# correlation values are taken from the oblig ~ ind. diffs analyses
## r.jk = oblig ~ family values corr; r.jh = oblig ~ ingroup loyalty corr; r.kh = family values ~ ingroup loyalty corr

# distant
cocor.dep.groups.overlap(r.jk = .25, r.jh = .14, r.kh = .64, 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.25 and r.jh = 0.14
Difference: r.jk - r.jh = 0.11
Related correlation: r.kh = 0.64
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 2.4560, p-value = 0.0140
  Null hypothesis rejected
# close
cocor.dep.groups.overlap(r.jk = .33, r.jh = .19, r.kh = .64, 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.33 and r.jh = 0.19
Difference: r.jk - r.jh = 0.14
Related correlation: r.kh = 0.64
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 3.1879, p-value = 0.0014
  Null hypothesis rejected
# difference
cocor.dep.groups.overlap(r.jk = -.06, r.jh = -.04, r.kh = .64, 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = -0.06 and r.jh = -0.04
Difference: r.jk - r.jh = -0.02
Related correlation: r.kh = 0.64
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -0.4365, p-value = 0.6624
  Null hypothesis retained

Choice

# correlation values are taken from the oblig ~ ind. diffs analyses
## r.jk = oblig ~ family values corr; r.jh = oblig ~ ingroup loyalty corr; r.kh = family values ~ ingroup loyalty corr

# distant
cocor.dep.groups.overlap(r.jk = .29, r.jh = .15, r.kh = .64, 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.29 and r.jh = 0.15
Difference: r.jk - r.jh = 0.14
Related correlation: r.kh = 0.64
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 3.1488, p-value = 0.0016
  Null hypothesis rejected
# close
cocor.dep.groups.overlap(r.jk = .34, r.jh = .17, r.kh = .64, 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.34 and r.jh = 0.17
Difference: r.jk - r.jh = 0.17
Related correlation: r.kh = 0.64
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = 3.8687, p-value = 0.0001
  Null hypothesis rejected
# difference
cocor.dep.groups.overlap(r.jk = -.17, r.jh = -.06, r.kh = .64, 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = -0.17 and r.jh = -0.06
Difference: r.jk - r.jh = -0.11
Related correlation: r.kh = 0.64
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -2.4189, p-value = 0.0156
  Null hypothesis rejected

Oblig Diff ~ Other Pre-Outcome Diff Tests

Relate

Stranger-Like

No Choice

# diff pearson's r
cor_test(E2_SL_clean, "NoChoice_CUZminusSIB_relate", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                  |                 Parameter2 |    r |        95% CI | t(352) |     p
------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_relate | NoChoice_CUZminusSIB_oblig | 0.10 | [ 0.00, 0.21] |   1.95 | 0.052

Observations: 354

Choice

# diff pearson's r
cor_test(E2_SL_clean, "Choice_CUZminusSIB_relate", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                |               Parameter2 |    r |        95% CI | t(352) |     p
--------------------------------------------------------------------------------------------
Choice_CUZminusSIB_relate | Choice_CUZminusSIB_oblig | 0.10 | [ 0.00, 0.21] |   1.95 | 0.052

Observations: 354

Friend-Like

No Choice

# diff pearson's r
cor_test(E2_FL_clean, "NoChoice_CUZminusSIB_relate", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                  |                 Parameter2 |    r |        95% CI | t(343) |     p
------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_relate | NoChoice_CUZminusSIB_oblig | 0.02 | [-0.09, 0.12] |   0.32 | 0.747

Observations: 345

Choice

# diff pearson's r
cor_test(E2_FL_clean, "Choice_CUZminusSIB_relate", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                |               Parameter2 |    r |       95% CI | t(343) |      p
--------------------------------------------------------------------------------------------
Choice_CUZminusSIB_relate | Choice_CUZminusSIB_oblig | 0.13 | [0.02, 0.23] |   2.42 | 0.016*

Observations: 345

Close

Stranger-Like

No Choice

# diff pearson's r
cor_test(E2_SL_clean, "NoChoice_CUZminusSIB_close", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                 |                 Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_close | NoChoice_CUZminusSIB_oblig | 0.22 | [0.12, 0.32] |   4.21 | < .001***

Observations: 354

Choice

# diff pearson's r
cor_test(E2_SL_clean, "Choice_CUZminusSIB_close", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1               |               Parameter2 |    r |       95% CI | t(352) |         p
----------------------------------------------------------------------------------------------
Choice_CUZminusSIB_close | Choice_CUZminusSIB_oblig | 0.37 | [0.28, 0.46] |   7.48 | < .001***

Observations: 354

Friend-Like

No Choice

# diff pearson's r
cor_test(E2_FL_clean, "NoChoice_CUZminusSIB_close", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                 |                 Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_close | NoChoice_CUZminusSIB_oblig | 0.25 | [0.15, 0.35] |   4.79 | < .001***

Observations: 345

Choice

# diff pearson's r
cor_test(E2_FL_clean, "Choice_CUZminusSIB_close", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1               |               Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------------------
Choice_CUZminusSIB_close | Choice_CUZminusSIB_oblig | 0.60 | [0.53, 0.66] |  13.92 | < .001***

Observations: 345

Prior Help

Stranger-Like

No Choice

# diff pearson's r
cor_test(E2_SL_clean, "NoChoice_CUZminusSIB_priorhelp", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                     |                 Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_priorhelp | NoChoice_CUZminusSIB_oblig | 0.21 | [0.10, 0.30] |   3.96 | < .001***

Observations: 354

Choice

# diff pearson's r
cor_test(E2_SL_clean, "Choice_CUZminusSIB_priorhelp", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                   |               Parameter2 |    r |       95% CI | t(352) |         p
--------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_priorhelp | Choice_CUZminusSIB_oblig | 0.42 | [0.33, 0.50] |   8.72 | < .001***

Observations: 354

Friend-Like

No Choice

# diff pearson's r
cor_test(E2_FL_clean, "NoChoice_CUZminusSIB_priorhelp", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                     |                 Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_priorhelp | NoChoice_CUZminusSIB_oblig | 0.26 | [0.16, 0.36] |   5.00 | < .001***

Observations: 345

Choice

# diff pearson's r
cor_test(E2_FL_clean, "Choice_CUZminusSIB_priorhelp", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                   |               Parameter2 |    r |       95% CI | t(343) |         p
--------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_priorhelp | Choice_CUZminusSIB_oblig | 0.56 | [0.49, 0.63] |  12.67 | < .001***

Observations: 345

Future Help

Stranger-Like

No Choice

# diff pearson's r
cor_test(E2_SL_clean, "NoChoice_CUZminusSIB_futurehelp", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                      |                 Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_futurehelp | NoChoice_CUZminusSIB_oblig | 0.36 | [0.27, 0.45] |   7.32 | < .001***

Observations: 354

Choice

# diff pearson's r
cor_test(E2_SL_clean, "Choice_CUZminusSIB_futurehelp", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                    |               Parameter2 |    r |       95% CI | t(352) |         p
---------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_futurehelp | Choice_CUZminusSIB_oblig | 0.51 | [0.43, 0.58] |  11.14 | < .001***

Observations: 354

Friend-Like

No Choice

# diff pearson's r
cor_test(E2_FL_clean, "NoChoice_CUZminusSIB_futurehelp", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                      |                 Parameter2 |    r |       95% CI | t(343) |         p
-------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_futurehelp | NoChoice_CUZminusSIB_oblig | 0.35 | [0.25, 0.44] |   6.84 | < .001***

Observations: 345

Choice

# diff pearson's r
cor_test(E2_FL_clean, "Choice_CUZminusSIB_futurehelp", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                    |               Parameter2 |    r |       95% CI | t(343) |         p
---------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_futurehelp | Choice_CUZminusSIB_oblig | 0.60 | [0.53, 0.66] |  13.86 | < .001***

Observations: 345

Prior Interax

Stranger-Like

No Choice

# diff pearson's r
cor_test(E2_SL_clean, "NoChoice_CUZminusSIB_priorinteract", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                         |                 Parameter2 |    r |       95% CI | t(352) |       p
--------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_priorinteract | NoChoice_CUZminusSIB_oblig | 0.16 | [0.05, 0.26] |   2.96 | 0.003**

Observations: 354

Choice

# diff pearson's r
cor_test(E2_SL_clean, "Choice_CUZminusSIB_priorinteract", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                       |               Parameter2 |    r |       95% CI | t(352) |         p
------------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_priorinteract | Choice_CUZminusSIB_oblig | 0.34 | [0.24, 0.43] |   6.75 | < .001***

Observations: 354

Friend-Like

No Choice

# diff pearson's r
cor_test(E2_FL_clean, "NoChoice_CUZminusSIB_priorinteract", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                         |                 Parameter2 |    r |       95% CI | t(343) |         p
----------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_priorinteract | NoChoice_CUZminusSIB_oblig | 0.26 | [0.16, 0.35] |   4.92 | < .001***

Observations: 345

Choice

# diff pearson's r
cor_test(E2_FL_clean, "Choice_CUZminusSIB_priorinteract", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                       |               Parameter2 |    r |       95% CI | t(343) |         p
------------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_priorinteract | Choice_CUZminusSIB_oblig | 0.45 | [0.36, 0.53] |   9.27 | < .001***

Observations: 345

Future Interax

Stranger-Like

No Choice

# diff pearson's r
cor_test(E2_SL_clean, "NoChoice_CUZminusSIB_futureinteract", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                          |                 Parameter2 |    r |       95% CI | t(352) |         p
-----------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_futureinteract | NoChoice_CUZminusSIB_oblig | 0.19 | [0.09, 0.29] |   3.59 | < .001***

Observations: 354

Choice

# diff pearson's r
cor_test(E2_SL_clean, "Choice_CUZminusSIB_futureinteract", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                        |               Parameter2 |    r |       95% CI | t(352) |         p
-------------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_futureinteract | Choice_CUZminusSIB_oblig | 0.45 | [0.37, 0.53] |   9.52 | < .001***

Observations: 354

Friend-Like

No Choice

# diff pearson's r
cor_test(E2_FL_clean, "NoChoice_CUZminusSIB_futureinteract", "NoChoice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                          |                 Parameter2 |    r |       95% CI | t(343) |         p
-----------------------------------------------------------------------------------------------------------
NoChoice_CUZminusSIB_futureinteract | NoChoice_CUZminusSIB_oblig | 0.19 | [0.09, 0.29] |   3.65 | < .001***

Observations: 345

Choice

# diff pearson's r
cor_test(E2_FL_clean, "Choice_CUZminusSIB_futureinteract", "Choice_CUZminusSIB_oblig", method = "Pearson")
Parameter1                        |               Parameter2 |    r |       95% CI | t(343) |         p
-------------------------------------------------------------------------------------------------------
Choice_CUZminusSIB_futureinteract | Choice_CUZminusSIB_oblig | 0.54 | [0.46, 0.61] |  11.78 | < .001***

Observations: 345

Oblig ~ Relate vs Social Interaction Tests

Close

Stranger-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .22, r.kh = .07, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.22
Difference: r.jk - r.jh = -0.12
Related correlation: r.kh = 0.07
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -1.6826, p-value = 0.0925
  Null hypothesis retained

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .37, r.kh = .15, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.37
Difference: r.jk - r.jh = -0.27
Related correlation: r.kh = 0.15
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -4.0746, p-value = 0.0000
  Null hypothesis rejected

Friend-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .02, r.jh = .25, r.kh = .04, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.02 and r.jh = 0.25
Difference: r.jk - r.jh = -0.23
Related correlation: r.kh = 0.04
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -3.1271, p-value = 0.0018
  Null hypothesis rejected

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .13, r.jh = .60, r.kh = .03, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.13 and r.jh = 0.6
Difference: r.jk - r.jh = -0.47
Related correlation: r.kh = 0.03
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -7.2267, p-value = 0.0000
  Null hypothesis rejected

Prior Help

Stranger-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .21, r.kh = .09, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.21
Difference: r.jk - r.jh = -0.11
Related correlation: r.kh = 0.09
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -1.5568, p-value = 0.1195
  Null hypothesis retained

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .42, r.kh = .15, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.42
Difference: r.jk - r.jh = -0.32
Related correlation: r.kh = 0.15
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -4.8956, p-value = 0.0000
  Null hypothesis rejected

Friend-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .02, r.jh = .26, r.kh = .09, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.02 and r.jh = 0.26
Difference: r.jk - r.jh = -0.24
Related correlation: r.kh = 0.09
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -3.3557, p-value = 0.0008
  Null hypothesis rejected

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .13, r.jh = .56, r.kh = .08, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.13 and r.jh = 0.56
Difference: r.jk - r.jh = -0.43
Related correlation: r.kh = 0.08
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -6.6344, p-value = 0.0000
  Null hypothesis rejected

Future Help

Stranger-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .36, r.kh = .17, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.36
Difference: r.jk - r.jh = -0.26
Related correlation: r.kh = 0.17
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -3.9597, p-value = 0.0001
  Null hypothesis rejected

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .51, r.kh = .13, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.51
Difference: r.jk - r.jh = -0.41
Related correlation: r.kh = 0.13
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -6.3988, p-value = 0.0000
  Null hypothesis rejected

Friend-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .02, r.jh = .35, r.kh = .03, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.02 and r.jh = 0.35
Difference: r.jk - r.jh = -0.33
Related correlation: r.kh = 0.03
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -4.5466, p-value = 0.0000
  Null hypothesis rejected

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .13, r.jh = .60, r.kh = .09, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.13 and r.jh = 0.6
Difference: r.jk - r.jh = -0.47
Related correlation: r.kh = 0.09
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -7.4426, p-value = 0.0000
  Null hypothesis rejected

Prior Interax

Stranger-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .16, r.kh = .14, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.16
Difference: r.jk - r.jh = -0.06
Related correlation: r.kh = 0.14
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -0.8679, p-value = 0.3854
  Null hypothesis retained

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .34, r.kh = .15, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.34
Difference: r.jk - r.jh = -0.24
Related correlation: r.kh = 0.15
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -3.5960, p-value = 0.0003
  Null hypothesis rejected

Friend-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .02, r.jh = .26, r.kh = .08, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.02 and r.jh = 0.26
Difference: r.jk - r.jh = -0.24
Related correlation: r.kh = 0.08
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -3.3376, p-value = 0.0008
  Null hypothesis rejected

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .13, r.jh = .45, r.kh = .06, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.13 and r.jh = 0.45
Difference: r.jk - r.jh = -0.32
Related correlation: r.kh = 0.06
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -4.6708, p-value = 0.0000
  Null hypothesis rejected

Future Interax

Stranger-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .19, r.kh = .18, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.19
Difference: r.jk - r.jh = -0.09
Related correlation: r.kh = 0.18
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -1.3376, p-value = 0.1810
  Null hypothesis retained

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .10, r.jh = .45, r.kh = .15, n = 354, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.1 and r.jh = 0.45
Difference: r.jk - r.jh = -0.35
Related correlation: r.kh = 0.15
Group size: n = 354
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -5.4048, p-value = 0.0000
  Null hypothesis rejected

Friend-Like

No Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .02, r.jh = .19, r.kh = .03, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.02 and r.jh = 0.19
Difference: r.jk - r.jh = -0.17
Related correlation: r.kh = 0.03
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -2.2817, p-value = 0.0225
  Null hypothesis rejected

Choice

# correlation values are taken from the oblig diff ~ pre-outcome analyses
## r.jk = oblig diff ~ relate diff corr; r.jh = oblig diff ~ social interaction diff corr; r.kh = relate diff ~ social interaction diff corr

# difference
cocor.dep.groups.overlap(r.jk = .13, r.jh = .54, r.kh = .08, n = 345, alternative = "two.sided",
                         test = "steiger1980", alpha = 0.05, conf.level = 0.95, null.value = 0)

  Results of a comparison of two overlapping correlations based on dependent groups

Comparison between r.jk = 0.13 and r.jh = 0.54
Difference: r.jk - r.jh = -0.41
Related correlation: r.kh = 0.08
Group size: n = 345
Null hypothesis: r.jk is equal to r.jh
Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
Alpha: 0.05

steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
  z = -6.2662, p-value = 0.0000
  Null hypothesis rejected
LS0tDQp0aXRsZTogIkV4cGVyaW1lbnQgMiINCmF1dGhvcjogIkJMSU5ERUQgRk9SIFBFRVIgUkVWSUVXIg0KZGF0ZTogJ2ByIGZvcm1hdChTeXMudGltZSgpLCAiJUIgJWQsICVZIilgJw0Kb3V0cHV0OiANCiAgaHRtbF9ub3RlYm9vazoNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgdGhlbWU6IGRhcmtseQ0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA1DQogICAgdG9jX2Zsb2F0OiB5ZXMNCi0tLQ0KDQo8YnI+DQoNCiMgRGF0YSBXYXZlcw0KDQpBcyBwcmUtcmVnaXN0ZXJlZCwgd2Ugc291Z2h0IHRvIGNvbGxlY3QgZGF0YSB0byBhdHRhaW4gMzMwIGFuYWx5emFibGUgcmVzcG9uc2VzIGZvciBlYWNoIGJldHdlZW4tc3ViamVjdHMgY29uZGl0aW9uIChpLmUuLCAzMzAgcGFydGljaXBhbnRzIHdobyBwYXNzZWQgdGhlIGF0dGVudGlvbiBjaGVjayBmb3IgZWFjaCBiZXR3ZWVuLXN1YmplY3RzIGNvbmRpdGlvbiwgdG90YWxsaW5nIDY2MCB1c2FibGUgcmVzcG9uc2VzIGFjcm9zcyB0aGUgZW50aXJlIGV4cGVyaW1lbnQpLiANCg0KPGJyPg0KDQpPbiB0aGUgZmlyc3Qgd2F2ZSBvZiBkYXRhIGNvbGxlY3Rpb24gKE4gPSA3MzkpLCBhcHBseWluZyB0aGUgcHJlLXJlZ2lzdGVyZWQgZXhjbHVzaW9uIGNyaXRlcmlvbiBsZWQgdG8gYWRlcXVhdGUgc2FtcGxlcyAoaS5lLiwgTnMgPiAzMzApIGZvciBhbGwgYmV0d2Vlbi1zdWJqZWN0cyBkYXRhc2V0cy4gVGhlcmVmb3JlLCB3ZSBkaWQgbm90IGxhdW5jaCBhIHNlY29uZCB3YXZlIG9mIGRhdGEgY29sbGVjdGlvbi4NCg0KPGJyPg0KDQojIERhdGEgQ2xlYW5pbmcNCg0KQmVmb3JlIGRhdGEgd2VyZSBsb2FkZWQgaW50byBSIChiZWxvdyksIHRoZSBmb2xsb3dpbmcgY2hhbmdlcyB3ZXJlIG1hZGU6DQoNCigxKSBSYXcgdmFyaWFibGUgbmFtZXMgZnJvbSBRdWFsdHJpY3Mgd2VyZSByZW5hbWVkIHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUuDQoNCigyKSBJZiB0aGVyZSB3ZXJlIGFueSByZXNwb25zZXMgZm9yIHRoZSBmaWVsZCAiQm90X0NhdGNoZXIsIiB0aGVzZSBjYXNlcyB3ZXJlIGRlbGV0ZWQuIFRoaXMgZmllbGQgd2FzIGRlc2lnbmVkIHRvIGJlIGFuIGludmlzaWJsZSBxdWVzdGlvbiB0aGF0IG9ubHkgYm90cyB3b3VsZCBhbnN3ZXIgKGFzIGh1bWFuIHJlc3BvbmRlbnRzIHdvdWxkIG5vdCBzZWUgdGhlIGZpZWxkKS4gSG93ZXZlciwgMCBjYXNlcyB3ZXJlIGRldGVjdGVkLg0KDQooMykgRHVwbGljYXRlIElQIGFkZHJlc3NlcyB3ZXJlIHJlbW92ZWQuIFRoZXJlIHdlcmUgb25seSA0IGluc3RhbmNlcyBvZiBhIGR1cGxpY2F0ZSBJUCBhZGRyZXNzLCBsZWFkaW5nIHRvIGFuIE4gPSA3MzUuDQoNCig0KSBBbGwgb3RoZXIgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gd2FzIHJlbW92ZWQgKGUuZy4sIElQIGFkZHJlc3NlcywgbG9uZ2l0dWRlL2xhdGl0dWRlLCBldGMuKS4NCg0KPGJyPg0KDQojIyBMb2FkaW5nIERhdGEvUGFja2FnZXMNCg0KQmVmb3JlIHJ1bm5pbmcgdGhpcyBjaHVuaywgcGxlYXNlIGxvYWQgIkUyX3Jhd19kYXRhLmNzdiIgaW50byB0aGUgUiBlbnZpcm9ubWVudC4NCg0KPGJyPg0KYGBge3J9DQojIHBhY2thZ2VzIHNob3VsZCBiZSBsb2FkZWQgaW4gdGhlIGZvbGxvd2luZyBvcmRlciB0byBhdm9pZCBmdW5jdGlvbiBjb25mbGljdHMNCmxpYnJhcnkocHN5Y2gpICMgZm9yIGRlc2NyaWJpbmcgZGF0YQ0KbGlicmFyeShlZmZzaXplKSAjIGZvciBtZWFuIGRpZmZlcmVuY2UgZWZmZWN0IHNpemVzDQpsaWJyYXJ5KHNqc3RhdHMpICMgZm9yIGV0YS1zcXVhcmVkIGVmZmVjdCBzaXplcw0KbGlicmFyeShjb3JyZWxhdGlvbikgIyBmb3IgY2xlYW5lciBjb3JyZWxhdGlvbiB0ZXN0IG91dHB1dA0KbGlicmFyeShybWNvcnIpICMgZm9yIHJlcGVhdGVkLW1lYXN1cmVzIGNvcnJlbGF0aW9uIHRlc3RzDQpsaWJyYXJ5KGNvY29yKSAjIGZvciBjb21wYXJpbmcgZGVwZW5kZW50IGNvcnJlbGF0aW9uIGNvZWZmaWNpZW50cw0KbGlicmFyeSh0aWR5dmVyc2UpICMgZm9yIGRhdGEgbWFuaXB1bGF0aW9uIGFuZCBwbG90dGluZw0KYGBgDQoNCiMjIERhdGEgU2VwYXJhdGlvbi9SZWNvbWJpbmluZw0KDQpEYXRhIHdlcmUgc2VwYXJhdGVkIGludG8gdHdvIGRpc3RpbmN0IGRhdGEgc2V0cyAoZm9yIGVhY2ggYmV0d2Vlbi1zdWJqZWN0cyBjb25kaXRpb24pLiBUaGVuLCBhIGJldHdlZW4tc3ViamVjdHMgdmFyaWFibGUgd2FzIGNyZWF0ZWQgd2l0aGluIGVhY2ggYmV0d2Vlbi1zdWJqZWN0cyBkYXRhc2V0LiBMYXN0LCBib3RoIGRhdGFzZXRzIHdlcmUgcmVjb21iaW5lZC4NCg0KPGJyPg0KYGBge3J9DQojIGNyZWF0ZXMgZGF0YXNldCB0aGF0IG9ubHkgaGFzIHBhcnRpY2lwYW50cyB3aG8gbWFkZSBqdWRnbWVudHMgb2YgYWdlbnRzIHdobyBoZWxwZWQgc3RyYW5nZXItbGlrZSBmYW1pbHkgbWVtYmVycw0KRTJfU0wgPC0gRTJfcmF3X2RhdGEgJT4lDQogIGZpbHRlcihTTF9DblNfQ19tMSA+PSAwIHwgU0xfQ25TX0NfbTIgPj0gMCkNCg0KIyBjcmVhdGVzIGRhdGFzZXQgdGhhdCBvbmx5IGhhcyBwYXJ0aWNpcGFudHMgd2hvIG1hZGUganVkZ21lbnRzIG9mIGFnZW50cyB3aG8gZnJpZW5kLWxpa2UgZmFtaWx5IG1lbWJlcnMNCkUyX0ZMIDwtIEUyX3Jhd19kYXRhICU+JQ0KICBmaWx0ZXIoRkxfQ25TX0NfbTEgPj0gMCB8IEZMX0NuU19DX20yID49IDApDQoNCiMgY3JlYXRlIGJldHdlZW4tc3ViamVjdHMgY29uZGl0aW9uIHZhcmlhYmxlDQpFMl9TTCRCU3NfY29uZCA8LSByZXAoIlN0cmFuZ2VyLUxpa2UiLCBucm93KEUyX1NMKSkNCkUyX0ZMJEJTc19jb25kIDwtIHJlcCgiRnJpZW5kLUxpa2UiLCBucm93KEUyX0ZMKSkNCg0KIyByZWNvbWJpbmUgYmV0d2Vlbi1zdWJqZWN0cyBkYXRhDQpFMl9hbGwgPC0gcmJpbmQoRTJfU0wsIEUyX0ZMKQ0KYGBgDQoNCiMjIEltcGxlbWVudGluZyBBdHRlbnRpb24gQ2hlY2tzDQoNCkJhc2VkIG9uIG91ciBwcmUtcmVnaXN0ZXJlZCBjcml0ZXJpb24sIHBhcnRpY2lwYW50cyB3aG8gZmFpbGVkIGEgcHJlLW1hbmlwdWxhdGlvbiBhdHRlbnRpb24gY2hlY2sgd2VyZSB0byBiZSBleGNsdWRlZCBmcm9tIGFsbCBhbmFseXNlcy4gVGhlIGF0dGVudGlvbiBjaGVjayB3YXMgZGlzZ3Vpc2VkIGFzIGFuIGV4cGVyaW1lbnRhbCBzY2VuYXJpbzsgaW4gdGhlIHNjZW5hcmlvIHRleHQsIHBhcnRpY2lwYW50cyB3ZXJlIGluc3RydWN0ZWQgdG8gcmVzcG9uZCB3aXRoIHRoZSBsZWZ0LW1vc3Qgb3B0aW9uIG9uIHRoZSBzY2FsZSBmb3IgYWxsIHNldmVuIHByZS1vdXRjb21lIG1lYXN1cmVzLiANCg0KPGJyPg0KDQpQYXJ0aWNpcGFudHMgd2hvIHJlc3BvbmRlZCBvbiBhdmVyYWdlIGFib3ZlIGEgMTAgb24gdGhlIHByZS1vdXRjb21lIDEwMC1wb2ludHMgc2NhbGVzIHdlcmUgZXhjbHVkZWQuIChXZSBjaG9zZSB0byB1c2UgYW4gYXZlcmFnZSBiZWNhdXNlIHdlIHJlYWxpemVkIHRoYXQgYSBzbWFsbCBncm91cCBvZiBwYXJ0aWNpcGFudHMgYW5zd2VyZWQgdGhlIGxlZnQtbW9zdCBvcHRpb24gb24gdGhlIHNjYWxlIGZvciBzaXggb2YgdGhlIHNldmVuIHByZS1vdXRjb21lIG1lYXN1cmVzLCBidXQgZm9yIHRoZSBzZXZlbnRoIHByZS1vdXRjb21lIG1lYXN1cmUsIHRoZXkgYW5zd2VyZWQgd2l0aCBhIG51bWJlciBzbGlnaHRseSBhYm92ZSAxMC4gVGhyb3VnaCB0ZXN0aW5nIGhvdyB0aGlzIGNvdWxkIGhhdmUgaGFwcGVuZWQsIHdlIG5vdGljZWQgdGhhdCBwYXJ0aWNpcGFudHMgdXNpbmcgYSBtb3VzZS1zY3JvbGwgY291bGQgaGF2ZSBhbnN3ZXJlZCB0aGUgc2V2ZW50aCBwcmUtb3V0Y29tZSBtZWFzdXJlIGNvcnJlY3RseSwgYnV0IHRoZWlyIG1vdXNlLXNjcm9sbCBjb3VsZCBoYXZlIGRpc2xvZGdlZCB0aGVpciBsYXN0IGFuc3dlciBpZiB0aGV5IGRpZCBub3QgY2xpY2sgb2ZmIG9mIHRoZSBzbGlkZXIgZmlyc3QuKSBUaGlzIGxlZCB0byBhIGZpbmFsIGFuYWx5emFibGUgTiA9IDY5OSAoYSA5NSUgcmV0ZW50aW9uIHJhdGUpLg0KDQo8YnI+DQpgYGB7cn0NCiMgQ3JlYXRlIGFuIGF0dGVudGlvbiBjaGVjayBhdmVyYWdlIHZhcmlhYmxlDQpFMl9hbGwkQUNfQVZHIDwtICgoRTJfYWxsJEFDX29ibGlnICsgRTJfYWxsJEFDX3JlbGF0ZSArIEUyX2FsbCRBQ19jbG9zZSArIEUyX2FsbCRBQ19wcmlvcmhlbHAgKyBFMl9hbGwkQUNfZnV0dXJlaGVscCArIEUyX2FsbCRBQ19wcmlvcmludGVyYWN0ICsgRTJfYWxsJEFDX2Z1dHVyZWludGVyYWN0KS83KQ0KDQojIENyZWF0ZSBkYXRhc2V0IHRoYXQgZmlsdGVycyBvdXQgaW5hdHRlbnRpdmUgcGFydGljaXBhbnRzDQpFMl9hbGxfY2xlYW4gPC0gRTJfYWxsICU+JQ0KICAjIGV4Y2x1ZGVzIHBhcnRpY2lwYW50cyB3aG8gd2VyZSBub3QgcGF5aW5nIGF0dGVudGlvbg0KICAgIGZpbHRlcihBQ19BVkcgPCAxMCkNCmBgYA0KDQojIyBDcmVhdGluZyBBbmFseXNpcyBWYXJpYWJsZXMNCmBgYHtyfQ0KIyBNYWluIERWcw0KIyBjcmVhdGUgc2luZ2xlIGNvbHVtbiBmb3IgZWFjaCBjb25kaXRpb24ncyB2YXJpYWJsZXMgdGhhdCBjb2xsYXBzZXMgYWNyb3NzIHByZXNlbnRhdGlvbiBvcmRlciBvZiBEVnMNCg0KIyBlLmcuLCBTTF9DblNfQ19vMSA9ICJTdHJhbmdlci1MaWtlIiBmYW1pbHkgbWVtYmVycyBkYXRhc2V0LCAiTm8gQ2hvaWNlIiBjb25kaXRpb24sIENVWiBvYmxpZ2F0aW9uIGp1ZGdtZW50LCBvYmxpZ2F0aW9uIGp1ZGdtZW50IHByZXNlbnRlZCBmaXJzdA0KIyB0byBjbGFyaWZ5LCBhcyBub3RlZCBpbiB0aGUgTWV0aG9kIHNlY3Rpb24gKGFuZCBTT00pLCBzaXggb3RoZXIgcHJlLW91dGNvbWUganVkZ21lbnRzIHdlcmUgY29sbGVjdGVkLCBjb3VudGVyYmFsYW5jZWQgc28gdGhhdCBvYmxpZ2F0aW9uIGp1ZGdtZW50cyB3ZXJlIGVpdGhlciBmaXJzdCBvciBsYXN0ICgxID0gb2JsaWdhdGlvbiBmaXJzdCwgMiA9IG9ibGlnYXRpb24gbGFzdCkNCg0KRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWl9vYmxpZyAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ19vMSIsICJTTF9DblNfQ19vMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NfbzEiLCAiRkxfQ25TX0NfbzIiKV0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWl9yZWxhdGUgIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX0NfcjEiLCAiU0xfQ25TX0NfcjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ19yMSIsICJGTF9DblNfQ19yMiIpXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX2Nsb3NlICA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19DX2MxIiwgIlNMX0NuU19DX2MyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ19jMSIsICJGTF9DblNfQ19jMiIpXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX3ByaW9yaGVscCAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ19waDEiLCAiU0xfQ25TX0NfcGgyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NfcGgxIiwgIkZMX0NuU19DX3BoMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9DVVpfZnV0dXJlaGVscCAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ19maDEiLCAiU0xfQ25TX0NfZmgyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NfZmgxIiwgIkZMX0NuU19DX2ZoMiIpXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX3ByaW9yaW50ZXJhY3QgIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX0NfcGkxIiwgIlNMX0NuU19DX3BpMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19DX3BpMSIsICJGTF9DblNfQ19waTIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX2Z1dHVyZWludGVyYWN0ICA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19DX2ZpMSIsICJTTF9DblNfQ19maTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ19maTEiLCAiRkxfQ25TX0NfZmkyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWl9tb3JhbCAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ19tMSIsICJTTF9DblNfQ19tMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NfbTEiLCAiRkxfQ25TX0NfbTIiKV0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfU0lCX29ibGlnICA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19TX28xIiwgIlNMX0NuU19TX28yIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU19vMSIsICJGTF9DblNfU19vMiIpXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfU0lCX3JlbGF0ZSAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfU19yMSIsICJTTF9DblNfU19yMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19TX3IxIiwgIkZMX0NuU19TX3IyIildLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9TSUJfY2xvc2UgIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX1NfYzEiLCAiU0xfQ25TX1NfYzIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19TX2MxIiwgIkZMX0NuU19TX2MyIildLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9TSUJfcHJpb3JoZWxwICA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19TX3BoMSIsICJTTF9DblNfU19waDIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU19waDEiLCAiRkxfQ25TX1NfcGgyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX1NJQl9mdXR1cmVoZWxwICA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19TX2ZoMSIsICJTTF9DblNfU19maDIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU19maDEiLCAiRkxfQ25TX1NfZmgyIildLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9TSUJfcHJpb3JpbnRlcmFjdCAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfU19waTEiLCAiU0xfQ25TX1NfcGkyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NfcGkxIiwgIkZMX0NuU19TX3BpMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QgIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX1NfZmkxIiwgIlNMX0NuU19TX2ZpMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19TX2ZpMSIsICJGTF9DblNfU19maTIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfU0lCX21vcmFsICA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19TX20xIiwgIlNMX0NuU19TX20yIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU19tMSIsICJGTF9DblNfU19tMiIpXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQoNCiMgZS5nLiwgU0xfQ25TX0NvU19DX28xMSA9ICJTdHJhbmdlci1MaWtlIiBmYW1pbHkgbWVtYmVycyBkYXRhc2V0LCAiQ2hvaWNlIiBjb25kaXRpb24sIENVWiBvYmxpZ2F0aW9uIGp1ZGdtZW50LCBDVVogbWVhc3VyZXMgZmlyc3QsIG9ibGlnYXRpb24ganVkZ21lbnQgcHJlc2VudGVkIGZpcnN0DQojIHRvIGNsYXJpZnksIGFzIG5vdGVkIGluIHRoZSBNZXRob2Qgc2VjdGlvbiwgdHdvIG9ibGlnYXRpb24gKGFuZCBvdGhlciBwcmUtb3V0Y29tZSkganVkZ21lbnRzIHdlcmUgY29sbGVjdGVkIGluIHRoZXNlIGNvbmRpdGlvbnMgLS0gb25lIGZvciBlYWNoIHBvdGVudGlhbCBiZW5lZmljaWFyeSAoZS5nLiwgQ1VaIGFuZCBTSUIpLCBhbmQgdGhleSBnZXQgYXZlcmFnZWQgdG9nZXRoZXIgbGF0ZXIgb24gaW4gdGhpcyBzYW1lIGNvZGUgY2h1bmsNCkUyX2FsbF9jbGVhbiRDVVpvU0lCX0NVWl9vYmxpZyA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Db1NfQ19vMTEiLCAiU0xfQ25TX0NvU19DX28xMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfQ29TX0NfbzIxIiwgIlNMX0NuU19Db1NfQ19vMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19DX28xMSIsICJGTF9DblNfQ29TX0NfbzEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfQ19vMjEiLCAiRkxfQ25TX0NvU19DX28yMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpIA0KRTJfYWxsX2NsZWFuJENVWm9TSUJfQ1VaX3JlbGF0ZSA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Db1NfQ19yMTEiLCAiU0xfQ25TX0NvU19DX3IxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfQ29TX0NfcjIxIiwgIlNMX0NuU19Db1NfQ19yMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19DX3IxMSIsICJGTF9DblNfQ29TX0NfcjEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfQ19yMjEiLCAiRkxfQ25TX0NvU19DX3IyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kQ1Vab1NJQl9DVVpfY2xvc2UgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ29TX0NfYzExIiwgIlNMX0NuU19Db1NfQ19jMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX0NvU19DX2MyMSIsICJTTF9DblNfQ29TX0NfYzIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfQ19jMTEiLCAiRkxfQ25TX0NvU19DX2MxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX0NfYzIxIiwgIkZMX0NuU19Db1NfQ19jMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJENVWm9TSUJfQ1VaX3ByaW9yaGVscCA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Db1NfQ19waDExIiwgIlNMX0NuU19Db1NfQ19waDEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Db1NfQ19waDIxIiwgIlNMX0NuU19Db1NfQ19waDIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfQ19waDExIiwgIkZMX0NuU19Db1NfQ19waDEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfQ19waDIxIiwgIkZMX0NuU19Db1NfQ19waDIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiRDVVpvU0lCX0NVWl9mdXR1cmVoZWxwIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX0NvU19DX2ZoMTEiLCAiU0xfQ25TX0NvU19DX2ZoMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX0NvU19DX2ZoMjEiLCAiU0xfQ25TX0NvU19DX2ZoMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19DX2ZoMTEiLCAiRkxfQ25TX0NvU19DX2ZoMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19DX2ZoMjEiLCAiRkxfQ25TX0NvU19DX2ZoMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJENVWm9TSUJfQ1VaX3ByaW9yaW50ZXJhY3QgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ29TX0NfcGkxMSIsICJTTF9DblNfQ29TX0NfcGkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfQ29TX0NfcGkyMSIsICJTTF9DblNfQ29TX0NfcGkyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX0NfcGkxMSIsICJGTF9DblNfQ29TX0NfcGkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX0NfcGkyMSIsICJGTF9DblNfQ29TX0NfcGkyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kQ1Vab1NJQl9DVVpfZnV0dXJlaW50ZXJhY3QgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ29TX0NfZmkxMSIsICJTTF9DblNfQ29TX0NfZmkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfQ29TX0NfZmkyMSIsICJTTF9DblNfQ29TX0NfZmkyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX0NfZmkxMSIsICJGTF9DblNfQ29TX0NfZmkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX0NfZmkyMSIsICJGTF9DblNfQ29TX0NfZmkyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kQ1Vab1NJQl9TSUJfb2JsaWcgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ29TX1NfbzExIiwgIlNMX0NuU19Db1NfU19vMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX0NvU19TX28yMSIsICJTTF9DblNfQ29TX1NfbzIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfU19vMTEiLCAiRkxfQ25TX0NvU19TX28xMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX1NfbzIxIiwgIkZMX0NuU19Db1NfU19vMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKSANCkUyX2FsbF9jbGVhbiRDVVpvU0lCX1NJQl9yZWxhdGUgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ29TX1NfcjExIiwgIlNMX0NuU19Db1NfU19yMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX0NvU19TX3IyMSIsICJTTF9DblNfQ29TX1NfcjIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfU19yMTEiLCAiRkxfQ25TX0NvU19TX3IxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX1NfcjIxIiwgIkZMX0NuU19Db1NfU19yMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJENVWm9TSUJfU0lCX2Nsb3NlIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX0NvU19TX2MxMSIsICJTTF9DblNfQ29TX1NfYzEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Db1NfU19jMjEiLCAiU0xfQ25TX0NvU19TX2MyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX1NfYzExIiwgIkZMX0NuU19Db1NfU19jMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19TX2MyMSIsICJGTF9DblNfQ29TX1NfYzIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiRDVVpvU0lCX1NJQl9wcmlvcmhlbHAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfQ29TX1NfcGgxMSIsICJTTF9DblNfQ29TX1NfcGgxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfQ29TX1NfcGgyMSIsICJTTF9DblNfQ29TX1NfcGgyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX1NfcGgxMSIsICJGTF9DblNfQ29TX1NfcGgxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX1NfcGgyMSIsICJGTF9DblNfQ29TX1NfcGgyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kQ1Vab1NJQl9TSUJfZnV0dXJlaGVscCA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Db1NfU19maDExIiwgIlNMX0NuU19Db1NfU19maDEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Db1NfU19maDIxIiwgIlNMX0NuU19Db1NfU19maDIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfU19maDExIiwgIkZMX0NuU19Db1NfU19maDEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Db1NfU19maDIxIiwgIkZMX0NuU19Db1NfU19maDIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiRDVVpvU0lCX1NJQl9wcmlvcmludGVyYWN0IDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX0NvU19TX3BpMTEiLCAiU0xfQ25TX0NvU19TX3BpMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX0NvU19TX3BpMjEiLCAiU0xfQ25TX0NvU19TX3BpMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19TX3BpMTEiLCAiRkxfQ25TX0NvU19TX3BpMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19TX3BpMjEiLCAiRkxfQ25TX0NvU19TX3BpMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJENVWm9TSUJfU0lCX2Z1dHVyZWludGVyYWN0IDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX0NvU19TX2ZpMTEiLCAiU0xfQ25TX0NvU19TX2ZpMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX0NvU19TX2ZpMjEiLCAiU0xfQ25TX0NvU19TX2ZpMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19TX2ZpMTEiLCAiRkxfQ25TX0NvU19TX2ZpMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19TX2ZpMjEiLCAiRkxfQ25TX0NvU19TX2ZpMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJENVWm9TSUJfQ1VaX21vcmFsIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX0NvU19DX20xMSIsICJTTF9DblNfQ29TX0NfbTEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Db1NfQ19tMjEiLCAiU0xfQ25TX0NvU19DX20yMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfQ29TX0NfbTExIiwgIkZMX0NuU19Db1NfQ19tMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX0NvU19DX20yMSIsICJGTF9DblNfQ29TX0NfbTIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCg0KRTJfYWxsX2NsZWFuJFNJQm9DVVpfQ1VaX29ibGlnIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX1NvQ19DX28xMSIsICJTTF9DblNfU29DX0NfbzEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Tb0NfQ19vMjEiLCAiU0xfQ25TX1NvQ19DX28yMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX0NfbzExIiwgIkZMX0NuU19Tb0NfQ19vMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19DX28yMSIsICJGTF9DblNfU29DX0NfbzIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkgDQpFMl9hbGxfY2xlYW4kU0lCb0NVWl9DVVpfcmVsYXRlIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX1NvQ19DX3IxMSIsICJTTF9DblNfU29DX0NfcjEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Tb0NfQ19yMjEiLCAiU0xfQ25TX1NvQ19DX3IyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX0NfcjExIiwgIkZMX0NuU19Tb0NfQ19yMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19DX3IyMSIsICJGTF9DblNfU29DX0NfcjIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiRTSUJvQ1VaX0NVWl9jbG9zZSA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Tb0NfQ19jMTEiLCAiU0xfQ25TX1NvQ19DX2MxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfU29DX0NfYzIxIiwgIlNMX0NuU19Tb0NfQ19jMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19DX2MxMSIsICJGTF9DblNfU29DX0NfYzEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfQ19jMjEiLCAiRkxfQ25TX1NvQ19DX2MyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kU0lCb0NVWl9DVVpfcHJpb3JoZWxwIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX1NvQ19DX3BoMTEiLCAiU0xfQ25TX1NvQ19DX3BoMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX1NvQ19DX3BoMjEiLCAiU0xfQ25TX1NvQ19DX3BoMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19DX3BoMTEiLCAiRkxfQ25TX1NvQ19DX3BoMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19DX3BoMjEiLCAiRkxfQ25TX1NvQ19DX3BoMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJFNJQm9DVVpfQ1VaX2Z1dHVyZWhlbHAgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfU29DX0NfZmgxMSIsICJTTF9DblNfU29DX0NfZmgxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfU29DX0NfZmgyMSIsICJTTF9DblNfU29DX0NfZmgyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX0NfZmgxMSIsICJGTF9DblNfU29DX0NfZmgxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX0NfZmgyMSIsICJGTF9DblNfU29DX0NfZmgyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kU0lCb0NVWl9DVVpfcHJpb3JpbnRlcmFjdCA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Tb0NfQ19waTExIiwgIlNMX0NuU19Tb0NfQ19waTEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Tb0NfQ19waTIxIiwgIlNMX0NuU19Tb0NfQ19waTIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfQ19waTExIiwgIkZMX0NuU19Tb0NfQ19waTEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfQ19waTIxIiwgIkZMX0NuU19Tb0NfQ19waTIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiRTSUJvQ1VaX0NVWl9mdXR1cmVpbnRlcmFjdCA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Tb0NfQ19maTExIiwgIlNMX0NuU19Tb0NfQ19maTEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Tb0NfQ19maTIxIiwgIlNMX0NuU19Tb0NfQ19maTIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfQ19maTExIiwgIkZMX0NuU19Tb0NfQ19maTEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfQ19maTIxIiwgIkZMX0NuU19Tb0NfQ19maTIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiRTSUJvQ1VaX1NJQl9vYmxpZyA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Tb0NfU19vMTEiLCAiU0xfQ25TX1NvQ19TX28xMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfU29DX1NfbzIxIiwgIlNMX0NuU19Tb0NfU19vMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19TX28xMSIsICJGTF9DblNfU29DX1NfbzEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfU19vMjEiLCAiRkxfQ25TX1NvQ19TX28yMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpIA0KRTJfYWxsX2NsZWFuJFNJQm9DVVpfU0lCX3JlbGF0ZSA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Tb0NfU19yMTEiLCAiU0xfQ25TX1NvQ19TX3IxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfU29DX1NfcjIxIiwgIlNMX0NuU19Tb0NfU19yMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19TX3IxMSIsICJGTF9DblNfU29DX1NfcjEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfU19yMjEiLCAiRkxfQ25TX1NvQ19TX3IyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kU0lCb0NVWl9TSUJfY2xvc2UgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfU29DX1NfYzExIiwgIlNMX0NuU19Tb0NfU19jMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX1NvQ19TX2MyMSIsICJTTF9DblNfU29DX1NfYzIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfU19jMTEiLCAiRkxfQ25TX1NvQ19TX2MxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX1NfYzIxIiwgIkZMX0NuU19Tb0NfU19jMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJFNJQm9DVVpfU0lCX3ByaW9yaGVscCA8LSByb3dTdW1zKEUyX2FsbF9jbGVhblssIGMoIlNMX0NuU19Tb0NfU19waDExIiwgIlNMX0NuU19Tb0NfU19waDEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMX0NuU19Tb0NfU19waDIxIiwgIlNMX0NuU19Tb0NfU19waDIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfU19waDExIiwgIkZMX0NuU19Tb0NfU19waDEyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfU19waDIxIiwgIkZMX0NuU19Tb0NfU19waDIyIildLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVCkNCkUyX2FsbF9jbGVhbiRTSUJvQ1VaX1NJQl9mdXR1cmVoZWxwIDwtIHJvd1N1bXMoRTJfYWxsX2NsZWFuWywgYygiU0xfQ25TX1NvQ19TX2ZoMTEiLCAiU0xfQ25TX1NvQ19TX2ZoMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX1NvQ19TX2ZoMjEiLCAiU0xfQ25TX1NvQ19TX2ZoMjIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19TX2ZoMTEiLCAiRkxfQ25TX1NvQ19TX2ZoMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkxfQ25TX1NvQ19TX2ZoMjEiLCAiRkxfQ25TX1NvQ19TX2ZoMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KRTJfYWxsX2NsZWFuJFNJQm9DVVpfU0lCX3ByaW9yaW50ZXJhY3QgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfU29DX1NfcGkxMSIsICJTTF9DblNfU29DX1NfcGkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfU29DX1NfcGkyMSIsICJTTF9DblNfU29DX1NfcGkyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX1NfcGkxMSIsICJGTF9DblNfU29DX1NfcGkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX1NfcGkyMSIsICJGTF9DblNfU29DX1NfcGkyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kU0lCb0NVWl9TSUJfZnV0dXJlaW50ZXJhY3QgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfU29DX1NfZmkxMSIsICJTTF9DblNfU29DX1NfZmkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTF9DblNfU29DX1NfZmkyMSIsICJTTF9DblNfU29DX1NfZmkyMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX1NfZmkxMSIsICJGTF9DblNfU29DX1NfZmkxMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX1NfZmkyMSIsICJGTF9DblNfU29DX1NfZmkyMiIpXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYS5ybSA9IFQpDQpFMl9hbGxfY2xlYW4kU0lCb0NVWl9TSUJfbW9yYWwgPC0gcm93U3VtcyhFMl9hbGxfY2xlYW5bLCBjKCJTTF9DblNfU29DX1NfbTExIiwgIlNMX0NuU19Tb0NfU19tMTIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xfQ25TX1NvQ19TX20yMSIsICJTTF9DblNfU29DX1NfbTIyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMX0NuU19Tb0NfU19tMTEiLCAiRkxfQ25TX1NvQ19TX20xMiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGTF9DblNfU29DX1NfbTIxIiwgIkZMX0NuU19Tb0NfU19tMjIiKV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUKQ0KDQoNCkUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VaX29ibGlnICA8LSAoRTJfYWxsX2NsZWFuJENVWm9TSUJfQ1VaX29ibGlnICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJFNJQm9DVVpfQ1VaX29ibGlnKS8yICMgY3JlYXRlcyBwcmUtcmVnJ2QgaW5kZXgNCkUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VaX3JlbGF0ZSAgPC0gKEUyX2FsbF9jbGVhbiRDVVpvU0lCX0NVWl9yZWxhdGUgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJFNJQm9DVVpfQ1VaX3JlbGF0ZSkvMiAjIGNyZWF0ZXMgcHJlLXJlZydkIGluZGV4DQpFMl9hbGxfY2xlYW4kQ2hvaWNlX0NVWl9jbG9zZSAgPC0gKEUyX2FsbF9jbGVhbiRDVVpvU0lCX0NVWl9jbG9zZSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRTSUJvQ1VaX0NVWl9jbG9zZSkvMiAjIGNyZWF0ZXMgcHJlLXJlZydkIGluZGV4DQpFMl9hbGxfY2xlYW4kQ2hvaWNlX0NVWl9wcmlvcmhlbHAgIDwtIChFMl9hbGxfY2xlYW4kQ1Vab1NJQl9DVVpfcHJpb3JoZWxwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRTSUJvQ1VaX0NVWl9wcmlvcmhlbHApLzIgIyBjcmVhdGVzIHByZS1yZWcnZCBpbmRleA0KRTJfYWxsX2NsZWFuJENob2ljZV9DVVpfZnV0dXJlaGVscCAgPC0gKEUyX2FsbF9jbGVhbiRDVVpvU0lCX0NVWl9mdXR1cmVoZWxwICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kU0lCb0NVWl9DVVpfZnV0dXJlaGVscCkvMiAjIGNyZWF0ZXMgcHJlLXJlZydkIGluZGV4DQpFMl9hbGxfY2xlYW4kQ2hvaWNlX0NVWl9wcmlvcmludGVyYWN0ICA8LSAoRTJfYWxsX2NsZWFuJENVWm9TSUJfQ1VaX3ByaW9yaW50ZXJhY3QgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRTSUJvQ1VaX0NVWl9wcmlvcmludGVyYWN0KS8yICMgY3JlYXRlcyBwcmUtcmVnJ2QgaW5kZXgNCkUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VaX2Z1dHVyZWludGVyYWN0ICA8LSAoRTJfYWxsX2NsZWFuJENVWm9TSUJfQ1VaX2Z1dHVyZWludGVyYWN0ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJFNJQm9DVVpfQ1VaX2Z1dHVyZWludGVyYWN0KS8yICMgY3JlYXRlcyBwcmUtcmVnJ2QgaW5kZXgNCkUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VaX21vcmFsICA8LSBFMl9hbGxfY2xlYW4kQ1Vab1NJQl9DVVpfbW9yYWwgIyBzaW5nbGUganVkZ21lbnQgKHBvc3Qtb3V0Y29tZSkNCg0KRTJfYWxsX2NsZWFuJENob2ljZV9TSUJfb2JsaWcgIDwtIChFMl9hbGxfY2xlYW4kQ1Vab1NJQl9TSUJfb2JsaWcgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kU0lCb0NVWl9TSUJfb2JsaWcpLzIgIyBjcmVhdGVzIHByZS1yZWcnZCBpbmRleA0KRTJfYWxsX2NsZWFuJENob2ljZV9TSUJfcmVsYXRlICA8LSAoRTJfYWxsX2NsZWFuJENVWm9TSUJfU0lCX3JlbGF0ZSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kU0lCb0NVWl9TSUJfcmVsYXRlKS8yICMgY3JlYXRlcyBwcmUtcmVnJ2QgaW5kZXgNCkUyX2FsbF9jbGVhbiRDaG9pY2VfU0lCX2Nsb3NlICA8LSAoRTJfYWxsX2NsZWFuJENVWm9TSUJfU0lCX2Nsb3NlICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJFNJQm9DVVpfU0lCX2Nsb3NlKS8yICMgY3JlYXRlcyBwcmUtcmVnJ2QgaW5kZXgNCkUyX2FsbF9jbGVhbiRDaG9pY2VfU0lCX3ByaW9yaGVscCAgPC0gKEUyX2FsbF9jbGVhbiRDVVpvU0lCX1NJQl9wcmlvcmhlbHAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJFNJQm9DVVpfU0lCX3ByaW9yaGVscCkvMiAjIGNyZWF0ZXMgcHJlLXJlZydkIGluZGV4DQpFMl9hbGxfY2xlYW4kQ2hvaWNlX1NJQl9mdXR1cmVoZWxwICA8LSAoRTJfYWxsX2NsZWFuJENVWm9TSUJfU0lCX2Z1dHVyZWhlbHAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRTSUJvQ1VaX1NJQl9mdXR1cmVoZWxwKS8yICMgY3JlYXRlcyBwcmUtcmVnJ2QgaW5kZXgNCkUyX2FsbF9jbGVhbiRDaG9pY2VfU0lCX3ByaW9yaW50ZXJhY3QgIDwtIChFMl9hbGxfY2xlYW4kQ1Vab1NJQl9TSUJfcHJpb3JpbnRlcmFjdCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJFNJQm9DVVpfU0lCX3ByaW9yaW50ZXJhY3QpLzIgIyBjcmVhdGVzIHByZS1yZWcnZCBpbmRleA0KRTJfYWxsX2NsZWFuJENob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QgIDwtIChFMl9hbGxfY2xlYW4kQ1Vab1NJQl9TSUJfZnV0dXJlaW50ZXJhY3QgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kU0lCb0NVWl9TSUJfZnV0dXJlaW50ZXJhY3QpLzIgIyBjcmVhdGVzIHByZS1yZWcnZCBpbmRleA0KRTJfYWxsX2NsZWFuJENob2ljZV9TSUJfbW9yYWwgIDwtIEUyX2FsbF9jbGVhbiRTSUJvQ1VaX1NJQl9tb3JhbCAjIHNpbmdsZSBqdWRnbWVudCAocG9zdC1vdXRjb21lKQ0KDQoNCiMgRGlmZmVyZW5jZSBTY29yZXMNCiMgQ1VabWludXNTSUIgb2JsaWdhdGlvbiB3aXRoaW4gTm8gQ2hvaWNlIG9yIENob2ljZSBjb25kaXRpb25zIChmb3IgZGlmZiBzY29yZSBjb3JycyBhbmQgaW5kLiBkaWZmcyBhbmFseXNlcykNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyA8LSBFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX29ibGlnIC0gRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX1NJQl9vYmxpZw0KRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX3JlbGF0ZSA8LSBFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX3JlbGF0ZSAtIEUyX2FsbF9jbGVhbiROb0Nob2ljZV9TSUJfcmVsYXRlDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfY2xvc2UgPC0gRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWl9jbG9zZSAtIEUyX2FsbF9jbGVhbiROb0Nob2ljZV9TSUJfY2xvc2UNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9DVVptaW51c1NJQl9wcmlvcmhlbHAgPC0gRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWl9wcmlvcmhlbHAgLSBFMl9hbGxfY2xlYW4kTm9DaG9pY2VfU0lCX3ByaW9yaGVscA0KRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWhlbHAgPC0gRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWl9mdXR1cmVoZWxwIC0gRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX1NJQl9mdXR1cmVoZWxwDQpFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfcHJpb3JpbnRlcmFjdCA8LSBFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX3ByaW9yaW50ZXJhY3QgLSBFMl9hbGxfY2xlYW4kTm9DaG9pY2VfU0lCX3ByaW9yaW50ZXJhY3QNCkUyX2FsbF9jbGVhbiROb0Nob2ljZV9DVVptaW51c1NJQl9mdXR1cmVpbnRlcmFjdCA8LSBFMl9hbGxfY2xlYW4kTm9DaG9pY2VfQ1VaX2Z1dHVyZWludGVyYWN0IC0gRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX1NJQl9mdXR1cmVpbnRlcmFjdA0KRTJfYWxsX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX21vcmFsIDwtIEUyX2FsbF9jbGVhbiROb0Nob2ljZV9DVVpfbW9yYWwgLSBFMl9hbGxfY2xlYW4kTm9DaG9pY2VfU0lCX21vcmFsDQoNCkUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VabWludXNTSUJfb2JsaWcgPC0gRTJfYWxsX2NsZWFuJENob2ljZV9DVVpfb2JsaWcgLSBFMl9hbGxfY2xlYW4kQ2hvaWNlX1NJQl9vYmxpZw0KRTJfYWxsX2NsZWFuJENob2ljZV9DVVptaW51c1NJQl9yZWxhdGUgPC0gRTJfYWxsX2NsZWFuJENob2ljZV9DVVpfcmVsYXRlIC0gRTJfYWxsX2NsZWFuJENob2ljZV9TSUJfcmVsYXRlDQpFMl9hbGxfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX2Nsb3NlIDwtIEUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VaX2Nsb3NlIC0gRTJfYWxsX2NsZWFuJENob2ljZV9TSUJfY2xvc2UNCkUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VabWludXNTSUJfcHJpb3JoZWxwIDwtIEUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VaX3ByaW9yaGVscCAtIEUyX2FsbF9jbGVhbiRDaG9pY2VfU0lCX3ByaW9yaGVscA0KRTJfYWxsX2NsZWFuJENob2ljZV9DVVptaW51c1NJQl9mdXR1cmVoZWxwIDwtIEUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VaX2Z1dHVyZWhlbHAgLSBFMl9hbGxfY2xlYW4kQ2hvaWNlX1NJQl9mdXR1cmVoZWxwDQpFMl9hbGxfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaW50ZXJhY3QgPC0gRTJfYWxsX2NsZWFuJENob2ljZV9DVVpfcHJpb3JpbnRlcmFjdCAtIEUyX2FsbF9jbGVhbiRDaG9pY2VfU0lCX3ByaW9yaW50ZXJhY3QNCkUyX2FsbF9jbGVhbiRDaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaW50ZXJhY3QgPC0gRTJfYWxsX2NsZWFuJENob2ljZV9DVVpfZnV0dXJlaW50ZXJhY3QgLSBFMl9hbGxfY2xlYW4kQ2hvaWNlX1NJQl9mdXR1cmVpbnRlcmFjdA0KRTJfYWxsX2NsZWFuJENob2ljZV9DVVptaW51c1NJQl9tb3JhbCA8LSBFMl9hbGxfY2xlYW4kQ2hvaWNlX0NVWl9tb3JhbCAtIEUyX2FsbF9jbGVhbiRDaG9pY2VfU0lCX21vcmFsDQoNCg0KIyBJbmRpdmlkdWFsIERpZmZlcmVuY2UgTWVhc3VyZXMgKGZvciBpbmQuIGRpZmZzIGFuYWx5c2VzKQ0KDQojIE1BQyAoTW9yYWxpdHktYXMtQ29vcGVyYXRpb24gc2NhbGUpIGNvbXBvc2l0ZXMNCiMgZmlyc3QgbmVlZCB0byByZXZlcnNlIHNjb3JlIHByb3BlcnR5IGp1ZGdtZW50IHN1YnNjYWxlIHBlciBDdXJyeSBldCBhbC4gMjAxOQ0KRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTlfciA8LSAoKDEwMiAtIChFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xOSArMSkpIC0gMSkgDQpFMl9hbGxfY2xlYW4kTUFDX0p1ZF8yMF9yIDwtICgoMTAyIC0gKEUyX2FsbF9jbGVhbiRNQUNfSnVkXzIwICsxKSkgLSAxKQ0KRTJfYWxsX2NsZWFuJE1BQ19KdWRfMjFfciA8LSAoKDEwMiAtIChFMl9hbGxfY2xlYW4kTUFDX0p1ZF8yMSArMSkpIC0gMSkNCg0KRTJfYWxsX2NsZWFuJE1BQ19GYW1fQ29tYmluZWQgPC0gKChFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xICsgRTJfYWxsX2NsZWFuJE1BQ19KdWRfMiArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJE1BQ19SZWxfMSArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzIgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF8zKS82KQ0KRTJfYWxsX2NsZWFuJE1BQ19GYW1fSnVkIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19KdWRfMSArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzIgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF8zKS8zKQ0KRTJfYWxsX2NsZWFuJE1BQ19GYW1fUmVsIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19SZWxfMSArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzIgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF8zKS8zKQ0KDQpFMl9hbGxfY2xlYW4kTUFDX0dyb3VwX0NvbWJpbmVkIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19KdWRfNCArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzUgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF82ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzQgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF81ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfNikvNikNCkUyX2FsbF9jbGVhbiRNQUNfR3JvdXBfSnVkIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19KdWRfNCArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzUgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF82KS8zKQ0KRTJfYWxsX2NsZWFuJE1BQ19Hcm91cF9SZWwgPC0gKChFMl9hbGxfY2xlYW4kTUFDX1JlbF80ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfNSArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzYpLzMpDQoNCkUyX2FsbF9jbGVhbiRNQUNfUmVjX0NvbWJpbmVkIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19KdWRfNyArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzggKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF85ICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzcgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF84ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfOSkvNikNCkUyX2FsbF9jbGVhbiRNQUNfUmVjX0p1ZCA8LSAoKEUyX2FsbF9jbGVhbiRNQUNfSnVkXzcgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF84ICsgRTJfYWxsX2NsZWFuJE1BQ19KdWRfOSkvMykNCkUyX2FsbF9jbGVhbiRNQUNfUmVjX1JlbCA8LSAoKEUyX2FsbF9jbGVhbiRNQUNfUmVsXzcgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF84ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfOSkvMykNCg0KRTJfYWxsX2NsZWFuJE1BQ19IZXJvX0NvbWJpbmVkIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTAgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xMSArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzEyICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzEwICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfMTEgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF8xMikvNikNCkUyX2FsbF9jbGVhbiRNQUNfSGVyb19KdWQgPC0gKChFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xMCArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzExICsgRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTIpLzMpDQpFMl9hbGxfY2xlYW4kTUFDX0hlcm9fUmVsIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19SZWxfMTAgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF8xMSArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzEyKS8zKQ0KDQpFMl9hbGxfY2xlYW4kTUFDX0RlZl9Db21iaW5lZCA8LSAoKEUyX2FsbF9jbGVhbiRNQUNfSnVkXzEzICsgRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTQgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xNSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kTUFDX1JlbF8xMyArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzE0ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfMTUpLzYpDQpFMl9hbGxfY2xlYW4kTUFDX0RlZl9KdWQgPC0gKChFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xMyArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzE0ICsgRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTUpLzMpDQpFMl9hbGxfY2xlYW4kTUFDX0RlZl9SZWwgPC0gKChFMl9hbGxfY2xlYW4kTUFDX1JlbF8xMyArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzE0ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfMTUpLzMpDQoNCkUyX2FsbF9jbGVhbiRNQUNfRmFpcl9Db21iaW5lZCA8LSAoKEUyX2FsbF9jbGVhbiRNQUNfSnVkXzE2ICsgRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTcgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xOCArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kTUFDX1JlbF8xNiArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzE3ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfMTgpLzYpDQpFMl9hbGxfY2xlYW4kTUFDX0ZhaXJfSnVkIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTYgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xNyArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzE4KS8zKQ0KRTJfYWxsX2NsZWFuJE1BQ19GYWlyX1JlbCA8LSAoKEUyX2FsbF9jbGVhbiRNQUNfUmVsXzE2ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfMTcgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF8xOCkvMykNCg0KRTJfYWxsX2NsZWFuJE1BQ19Qcm9wX0NvbWJpbmVkIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19KdWRfMTlfciArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzIwX3IgKyBFMl9hbGxfY2xlYW4kTUFDX0p1ZF8yMV9yICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzE5ICsgRTJfYWxsX2NsZWFuJE1BQ19SZWxfMjAgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF8yMSkvNikNCkUyX2FsbF9jbGVhbiRNQUNfUHJvcF9KdWQgPC0gKChFMl9hbGxfY2xlYW4kTUFDX0p1ZF8xOV9yICsgRTJfYWxsX2NsZWFuJE1BQ19KdWRfMjBfciArIEUyX2FsbF9jbGVhbiRNQUNfSnVkXzIxX3IpLzMpDQpFMl9hbGxfY2xlYW4kTUFDX1Byb3BfUmVsIDwtICgoRTJfYWxsX2NsZWFuJE1BQ19SZWxfMTkgKyBFMl9hbGxfY2xlYW4kTUFDX1JlbF8yMCArIEUyX2FsbF9jbGVhbiRNQUNfUmVsXzIxKS8zKQ0KDQoNCiMgTUZRIChNb3JhbCBGb3VuZGF0aW9ucyBUaGVvcnkgc2NhbGUpIGNvbXBvc2l0ZXMNCkUyX2FsbF9jbGVhbiRNRlFfSGFybV9Db21iaW5lZCA8LSAoKEUyX2FsbF9jbGVhbiRNRlFfSnVkXzEgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF8yICsgRTJfYWxsX2NsZWFuJE1GUV9KdWRfMyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kTUZRX1JlbF8xICsgRTJfYWxsX2NsZWFuJE1GUV9SZWxfMiArIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzMpLzYpDQpFMl9hbGxfY2xlYW4kTUZRX0hhcm1fSnVkIDwtICgoRTJfYWxsX2NsZWFuJE1GUV9KdWRfMSArIEUyX2FsbF9jbGVhbiRNRlFfSnVkXzIgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF8zKS8zKQ0KRTJfYWxsX2NsZWFuJE1GUV9IYXJtX1JlbCA8LSAoKEUyX2FsbF9jbGVhbiRNRlFfUmVsXzEgKyBFMl9hbGxfY2xlYW4kTUZRX1JlbF8yICsgRTJfYWxsX2NsZWFuJE1GUV9SZWxfMykvMykNCg0KRTJfYWxsX2NsZWFuJE1GUV9GYWlybmVzc19Db21iaW5lZCA8LSAoKEUyX2FsbF9jbGVhbiRNRlFfSnVkXzQgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF81ICsgRTJfYWxsX2NsZWFuJE1GUV9KdWRfNiArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kTUZRX1JlbF80ICsgRTJfYWxsX2NsZWFuJE1GUV9SZWxfNSArIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzYpLzYpDQpFMl9hbGxfY2xlYW4kTUZRX0ZhaXJuZXNzX0p1ZCA8LSAoKEUyX2FsbF9jbGVhbiRNRlFfSnVkXzQgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF81ICsgRTJfYWxsX2NsZWFuJE1GUV9KdWRfNikvMykNCkUyX2FsbF9jbGVhbiRNRlFfRmFpcm5lc3NfUmVsIDwtICgoRTJfYWxsX2NsZWFuJE1GUV9SZWxfNCArIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzUgKyBFMl9hbGxfY2xlYW4kTUZRX1JlbF82KS8zKQ0KDQpFMl9hbGxfY2xlYW4kTUZRX0xveWFsdHlfQ29tYmluZWQgPC0gKChFMl9hbGxfY2xlYW4kTUZRX0p1ZF83ICsgRTJfYWxsX2NsZWFuJE1GUV9KdWRfOCArIEUyX2FsbF9jbGVhbiRNRlFfSnVkXzkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJE1GUV9SZWxfNyArIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzggKyBFMl9hbGxfY2xlYW4kTUZRX1JlbF85KS82KQ0KRTJfYWxsX2NsZWFuJE1GUV9Mb3lhbHR5X0p1ZCA8LSAoKEUyX2FsbF9jbGVhbiRNRlFfSnVkXzcgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF84ICsgRTJfYWxsX2NsZWFuJE1GUV9KdWRfOSkvMykNCkUyX2FsbF9jbGVhbiRNRlFfTG95YWx0eV9SZWwgPC0gKChFMl9hbGxfY2xlYW4kTUZRX1JlbF83ICsgRTJfYWxsX2NsZWFuJE1GUV9SZWxfOCArIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzkpLzMpDQoNCkUyX2FsbF9jbGVhbiRNRlFfQXV0aG9yaXR5X0NvbWJpbmVkIDwtICgoRTJfYWxsX2NsZWFuJE1GUV9KdWRfMTAgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF8xMSArIEUyX2FsbF9jbGVhbiRNRlFfSnVkXzEyICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzEwICsgRTJfYWxsX2NsZWFuJE1GUV9SZWxfMTEgKyBFMl9hbGxfY2xlYW4kTUZRX1JlbF8xMikvNikNCkUyX2FsbF9jbGVhbiRNRlFfQXV0aG9yaXR5X0p1ZCA8LSAoKEUyX2FsbF9jbGVhbiRNRlFfSnVkXzEwICsgRTJfYWxsX2NsZWFuJE1GUV9KdWRfMTEgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF8xMikvMykNCkUyX2FsbF9jbGVhbiRNRlFfQXV0aG9yaXR5X1JlbCA8LSAoKEUyX2FsbF9jbGVhbiRNRlFfUmVsXzEwICsgRTJfYWxsX2NsZWFuJE1GUV9SZWxfMTEgKyBFMl9hbGxfY2xlYW4kTUZRX1JlbF8xMikvMykNCg0KRTJfYWxsX2NsZWFuJE1GUV9QdXJpdHlfQ29tYmluZWQgPC0gKChFMl9hbGxfY2xlYW4kTUZRX0p1ZF8xMyArIEUyX2FsbF9jbGVhbiRNRlFfSnVkXzE0ICsgRTJfYWxsX2NsZWFuJE1GUV9KdWRfMTUgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJE1GUV9SZWxfMTMgKyBFMl9hbGxfY2xlYW4kTUZRX1JlbF8xNCArIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzE1KS82KQ0KRTJfYWxsX2NsZWFuJE1GUV9QdXJpdHlfSnVkIDwtICgoRTJfYWxsX2NsZWFuJE1GUV9KdWRfMTMgKyBFMl9hbGxfY2xlYW4kTUZRX0p1ZF8xNCArIEUyX2FsbF9jbGVhbiRNRlFfSnVkXzE1KS8zKQ0KRTJfYWxsX2NsZWFuJE1GUV9QdXJpdHlfUmVsIDwtICgoRTJfYWxsX2NsZWFuJE1GUV9SZWxfMTMgKyBFMl9hbGxfY2xlYW4kTUZRX1JlbF8xNCArIEUyX2FsbF9jbGVhbiRNRlFfUmVsXzE1KS8zKQ0KDQojIE9VUyAoT3hmb3JkIFV0aWxpdGFyaWFuaXNtIFNjYWxlKSBjb21wb3NpdGVzDQpFMl9hbGxfY2xlYW4kT1VTX0lCIDwtICgoRTJfYWxsX2NsZWFuJE9VU19JQjEgKyBFMl9hbGxfY2xlYW4kT1VTX0lCMiArIEUyX2FsbF9jbGVhbiRPVVNfSUIzICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfYWxsX2NsZWFuJE9VU19JQjQgKyBFMl9hbGxfY2xlYW4kT1VTX0lCNSkvNSkNCkUyX2FsbF9jbGVhbiRPVVNfSUggPC0gKChFMl9hbGxfY2xlYW4kT1VTX0lIMSArIEUyX2FsbF9jbGVhbiRPVVNfSUgyICsgRTJfYWxsX2NsZWFuJE9VU19JSDMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFMl9hbGxfY2xlYW4kT1VTX0lINCkvNCkNCmBgYA0KDQojIyBDcmVhdGluZyBBbmFseXphYmxlIEJldHdlZW4tU3ViamVjdHMgRGF0YXNldHMNCmBgYHtyfQ0KIyBTdHJhbmdlci1MaWtlIGZhbWlseSBtZW1iZXJzDQpFMl9TTF9jbGVhbiA8LSBFMl9hbGxfY2xlYW4gJT4lDQogIGZpbHRlcihCU3NfY29uZCA9PSAnU3RyYW5nZXItTGlrZScpICU+JQ0KICAjIHNlbGVjdCBvbmx5IHZhcmlhYmxlcyB0aGF0IGFyZSByZWxldmFudCB0byBTdHJhbmdlci1MaWtlIGRhdGENCiAgc2VsZWN0KA0KICAgIFJlc3BvbnNlSWQsICMgc2VsZWN0cyB2YXJpYWJsZQ0KICAgIEFnZTpVcmJhbl9SdXJhbCwgIyBzZWxlY3RzIGRlbW9ncmFwaGljIHZhcmlhYmxlcw0KICAgIE1BQ19KdWRfMTpNQUNfSnVkXzE4LCBNQUNfSnVkXzE5X3I6TUFDX0p1ZF8yMV9yLCBNQUNfUmVsXzE6TUFDX1JlbF8yMSwgDQogICAgTUZRX0p1ZF8xOk1GUV9KdWRfMTUsIE1GUV9SZWxfMTpNRlFfUmVsXzE1LCANCiAgICBPVVNfSUIxOk9VU19JQjUsIE9VU19JSDE6T1VTX0lINCwgIyBzZWxlY3RzIHJhdyBpbmQuIGRpZmYgdmFyaWFibGVzIChmb3IgcmVsaWFiaWx0eSBjaGVjaykNCiAgICBNQUNfRmFtX0NvbWJpbmVkOk9VU19JSCwgIyBzZWxlY3RzIGNvbXBvc2l0ZWQgaW5kLiBkaWZmIHZhcmlhYmxlcw0KICAgIEJTc19jb25kLCAjIHNlbGVjdHMgdmFyaWFibGUgZm9yIGJldHdlZW4tc3ViamVjdHMgY29uZGl0aW9uDQogICAgU0xfRGlzdF9TY2VuOlNMX0Nsb3NlT0Rpc3RfU2NlbiwgIyBzZWxlY3RzIHNjZW5hcmlvLXRvLWNvbmRpdGlvbiB2YXJpYWJsZXMgZm9yIFNMIGRhdGENCiAgICBOb0Nob2ljZV9DVVpfb2JsaWc6Tm9DaG9pY2VfU0lCX21vcmFsLCAjIHNlbGVjdHMgTm9DaG9pY2UgRFZzIGZvciBTTCBkYXRhDQogICAgQ2hvaWNlX0NVWl9vYmxpZzpDaG9pY2VfU0lCX21vcmFsLCAjIHNlbGVjdHMgQ2hvaWNlIERWcyBmb3IgU0wgZGF0YQ0KICAgIE5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnOkNob2ljZV9DVVptaW51c1NJQl9tb3JhbCAjIHNlbGVjdHMgZGlmZmVyZW5jZSBzY29yZSB2YXJpYWJsZXMgZm9yIFNMIGRhdGENCiAgICApDQoNCiMgRnJpZW5kLWxpa2UgZmFtaWx5IG1lbWJlcnMNCkUyX0ZMX2NsZWFuIDwtIEUyX2FsbF9jbGVhbiAlPiUNCiAgZmlsdGVyKEJTc19jb25kID09ICdGcmllbmQtTGlrZScpICU+JQ0KICAjIHNlbGVjdCBvbmx5IHZhcmlhYmxlcyB0aGF0IGFyZSByZWxldmFudCB0byAiRnJpZW5kLUxpa2UiIGRhdGENCiAgc2VsZWN0KA0KICAgIFJlc3BvbnNlSWQsICMgc2VsZWN0cyB2YXJpYWJsZQ0KICAgIEFnZTpVcmJhbl9SdXJhbCwgIyBzZWxlY3RzIGRlbW9ncmFwaGljIHZhcmlhYmxlcw0KICAgIE1BQ19KdWRfMTpNQUNfSnVkXzE4LCBNQUNfSnVkXzE5X3I6TUFDX0p1ZF8yMV9yLCBNQUNfUmVsXzE6TUFDX1JlbF8yMSwgDQogICAgTUZRX0p1ZF8xOk1GUV9KdWRfMTUsIE1GUV9SZWxfMTpNRlFfUmVsXzE1LCANCiAgICBPVVNfSUIxOk9VU19JQjUsIE9VU19JSDE6T1VTX0lINCwgIyBzZWxlY3RzIHJhdyBpbmQuIGRpZmYgdmFyaWFibGVzIChmb3IgcmVsaWFiaWx0eSBjaGVjaykNCiAgICBNQUNfRmFtX0NvbWJpbmVkOk9VU19JSCwgIyBzZWxlY3RzIGNvbXBvc2l0ZWQgaW5kLiBkaWZmIHZhcmlhYmxlcw0KICAgIEJTc19jb25kLCAjIHNlbGVjdHMgdmFyaWFibGUgZm9yIGJldHdlZW4tc3ViamVjdHMgY29uZGl0aW9uDQogICAgRkxfRGlzdF9TY2VuOkZMX0Nsb3NlT0Rpc3RfU2NlbiwgIyBzZWxlY3RzIHNjZW5hcmlvLXRvLWNvbmRpdGlvbiB2YXJpYWJsZXMgZm9yIEZMIGRhdGENCiAgICBOb0Nob2ljZV9DVVpfb2JsaWc6Tm9DaG9pY2VfU0lCX21vcmFsLCAjIHNlbGVjdHMgTm9DaG9pY2UgRFZzIGZvciBGTCBkYXRhDQogICAgQ2hvaWNlX0NVWl9vYmxpZzpDaG9pY2VfU0lCX21vcmFsLCAjIHNlbGVjdHMgQ2hvaWNlIERWcyBmb3IgRkwgZGF0YQ0KICAgIE5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnOkNob2ljZV9DVVptaW51c1NJQl9tb3JhbCAjIHNlbGVjdHMgZGlmZmVyZW5jZSBzY29yZSB2YXJpYWJsZXMgZm9yIEZMIGRhdGENCiAgICApDQpgYGANCg0KIyMgVGlkeWluZyBEYXRhDQpgYGB7cn0NCiMgQ29udmVydCBkYXRhIGZyb20gd2lkZSB0byBsb25nIGZvcm1hdA0KIyBTdHJhbmdlci1MaWtlDQpFMl9TTF9jb25kX2xvbmcgPC0gRTJfU0xfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhTTF9EaXN0X1NjZW4sIFNMX0Nsb3NlX1NjZW4sIFNMX0Rpc3RPQ2xvc2VfU2NlbiwgU0xfQ2xvc2VPRGlzdF9TY2VuKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gIkNvbmRpdGlvbiINCiAgKQ0KDQpFMl9TTF9vYmxpZ19sb25nIDwtIEUyX1NMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VaX29ibGlnLCBOb0Nob2ljZV9TSUJfb2JsaWcsIENob2ljZV9DVVpfb2JsaWcsIENob2ljZV9TSUJfb2JsaWcpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAib2JsaWciDQogICkNCg0KRTJfU0xfcmVsYXRlX2xvbmcgPC0gRTJfU0xfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVpfcmVsYXRlLCBOb0Nob2ljZV9TSUJfcmVsYXRlLCBDaG9pY2VfQ1VaX3JlbGF0ZSwgQ2hvaWNlX1NJQl9yZWxhdGUpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAicmVsYXRlIg0KICApDQoNCkUyX1NMX2Nsb3NlX2xvbmcgPC0gRTJfU0xfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVpfY2xvc2UsIE5vQ2hvaWNlX1NJQl9jbG9zZSwgQ2hvaWNlX0NVWl9jbG9zZSwgQ2hvaWNlX1NJQl9jbG9zZSksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJjbG9zZSINCiAgKQ0KDQpFMl9TTF9wcmlvcmhlbHBfbG9uZyA8LSBFMl9TTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWl9wcmlvcmhlbHAsIE5vQ2hvaWNlX1NJQl9wcmlvcmhlbHAsIENob2ljZV9DVVpfcHJpb3JoZWxwLCBDaG9pY2VfU0lCX3ByaW9yaGVscCksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJwcmlvcmhlbHAiDQogICkNCg0KRTJfU0xfZnV0dXJlaGVscF9sb25nIDwtIEUyX1NMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VaX2Z1dHVyZWhlbHAsIE5vQ2hvaWNlX1NJQl9mdXR1cmVoZWxwLCBDaG9pY2VfQ1VaX2Z1dHVyZWhlbHAsIENob2ljZV9TSUJfZnV0dXJlaGVscCksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJmdXR1cmVoZWxwIg0KICApDQoNCkUyX1NMX3ByaW9yaW50ZXJhY3RfbG9uZyA8LSBFMl9TTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWl9wcmlvcmludGVyYWN0LCBOb0Nob2ljZV9TSUJfcHJpb3JpbnRlcmFjdCwgQ2hvaWNlX0NVWl9wcmlvcmludGVyYWN0LCBDaG9pY2VfU0lCX3ByaW9yaW50ZXJhY3QpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAicHJpb3JpbnRlcmFjdCINCiAgKQ0KDQpFMl9TTF9mdXR1cmVpbnRlcmFjdF9sb25nIDwtIEUyX1NMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VaX2Z1dHVyZWludGVyYWN0LCBOb0Nob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QsIENob2ljZV9DVVpfZnV0dXJlaW50ZXJhY3QsIENob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAiZnV0dXJlaW50ZXJhY3QiDQogICkNCg0KRTJfU0xfbW9yYWxfbG9uZyA8LSBFMl9TTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWl9tb3JhbCwgTm9DaG9pY2VfU0lCX21vcmFsLCBDaG9pY2VfQ1VaX21vcmFsLCBDaG9pY2VfU0lCX21vcmFsKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gIm1vcmFsIg0KICApDQoNCg0KIyBDb21iaW5lIGxvbmcgU0wgZGF0YXNldHMsIHNlbGVjdCBwbG90dGluZyB2YXJpYWJsZXMsIGFuZCBjcmVhdGUgY29uZGl0aW9uIHZhcmlhYmxlIGZvciBlYWNoIGZhY3RvciAoUmVsYXRpb24gKyBDaG9pY2UgQ29udGV4dCkNCkUyX1NMX2xvbmcgPC0gY2JpbmQoRTJfU0xfY29uZF9sb25nLCANCiAgICAgICAgICAgICAgICAgICAgRTJfU0xfb2JsaWdfbG9uZywgRTJfU0xfcmVsYXRlX2xvbmcsIEUyX1NMX2Nsb3NlX2xvbmcsDQogICAgICAgICAgICAgICAgICAgIEUyX1NMX3ByaW9yaGVscF9sb25nLCBFMl9TTF9mdXR1cmVoZWxwX2xvbmcsDQogICAgICAgICAgICAgICAgICAgIEUyX1NMX3ByaW9yaW50ZXJhY3RfbG9uZywgRTJfU0xfZnV0dXJlaW50ZXJhY3RfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgRTJfU0xfbW9yYWxfbG9uZykNCg0KRTJfU0xfbG9uZyA8LSBFMl9TTF9sb25nWywgIWR1cGxpY2F0ZWQoY29sbmFtZXMoRTJfU0xfbG9uZykpXSAlPiUgIyBnZXQgcmlkIG9mIGR1cGxpY2F0ZSBjb2x1bW5zDQogIHNlbGVjdChSZXNwb25zZUlkLA0KICAgICAgICAgQWdlOk9VU19JSCwNCiAgICAgICAgIEJTc19jb25kLA0KICAgICAgICAgV1NzX2NvbmQsDQogICAgICAgICBDb25kaXRpb24sDQogICAgICAgICBvYmxpZywgcmVsYXRlLCBjbG9zZSwgDQogICAgICAgICBwcmlvcmhlbHAsIGZ1dHVyZWhlbHAsDQogICAgICAgICBwcmlvcmludGVyYWN0LCBmdXR1cmVpbnRlcmFjdCwNCiAgICAgICAgIG1vcmFsKSAlPiUNCiAgbXV0YXRlKFJlbGF0aW9uID0gY2FzZV93aGVuKA0KICAgIFdTc19jb25kID09ICJTTF9EaXN0X1NjZW4iIH4gIkRpc3RhbnQiLA0KICAgIFdTc19jb25kID09ICJTTF9DbG9zZV9TY2VuIiB+ICJDbG9zZSIsDQogICAgV1NzX2NvbmQgPT0gIlNMX0Rpc3RPQ2xvc2VfU2NlbiIgfiAiRGlzdGFudCIsDQogICAgV1NzX2NvbmQgPT0gIlNMX0Nsb3NlT0Rpc3RfU2NlbiIgfiAiQ2xvc2UiKSkgJT4lDQogIG11dGF0ZShgQ2hvaWNlIENvbnRleHRgID0gY2FzZV93aGVuKA0KICAgIFdTc19jb25kID09ICJTTF9EaXN0X1NjZW4iIH4gIk5vIENob2ljZSIsDQogICAgV1NzX2NvbmQgPT0gIlNMX0Nsb3NlX1NjZW4iIH4gIk5vIENob2ljZSIsDQogICAgV1NzX2NvbmQgPT0gIlNMX0Rpc3RPQ2xvc2VfU2NlbiIgfiAiQ2hvaWNlIiwNCiAgICBXU3NfY29uZCA9PSAiU0xfQ2xvc2VPRGlzdF9TY2VuIiB+ICJDaG9pY2UiKSkNCg0KIyBSZW9yZGVyL3JlbmFtZSBjb25kaXRpb24gYW5kIHBhcnRpY2lwYW50IGZhY3RvcnMNCkUyX1NMX2xvbmckUmVsYXRpb24gPC0gYXMuZmFjdG9yKEUyX1NMX2xvbmckUmVsYXRpb24pDQpFMl9TTF9sb25nJFJlbGF0aW9uIDwtIG9yZGVyZWQoRTJfU0xfbG9uZyRSZWxhdGlvbiwgbGV2ZWxzID0gYygiRGlzdGFudCIsICJDbG9zZSIpKQ0KRTJfU0xfbG9uZyRgQ2hvaWNlIENvbnRleHRgIDwtIGFzLmZhY3RvcihFMl9TTF9sb25nJGBDaG9pY2UgQ29udGV4dGApDQpFMl9TTF9sb25nJGBDaG9pY2UgQ29udGV4dGAgPC0gb3JkZXJlZChFMl9TTF9sb25nJGBDaG9pY2UgQ29udGV4dGAsIGxldmVscyA9IGMoIk5vIENob2ljZSIsICJDaG9pY2UiKSkNCkUyX1NMX2xvbmckUmVzcG9uc2VJZCA8LSBhcy5mYWN0b3IoRTJfU0xfbG9uZyRSZXNwb25zZUlkKQ0KDQoNCiMgRnJpZW5kLUxpa2UNCkUyX0ZMX2NvbmRfbG9uZyA8LSBFMl9GTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKEZMX0Rpc3RfU2NlbiwgRkxfQ2xvc2VfU2NlbiwgRkxfRGlzdE9DbG9zZV9TY2VuLCBGTF9DbG9zZU9EaXN0X1NjZW4pLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAiQ29uZGl0aW9uIg0KICApDQoNCkUyX0ZMX29ibGlnX2xvbmcgPC0gRTJfRkxfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVpfb2JsaWcsIE5vQ2hvaWNlX1NJQl9vYmxpZywgQ2hvaWNlX0NVWl9vYmxpZywgQ2hvaWNlX1NJQl9vYmxpZyksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJvYmxpZyINCiAgKQ0KDQpFMl9GTF9yZWxhdGVfbG9uZyA8LSBFMl9GTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWl9yZWxhdGUsIE5vQ2hvaWNlX1NJQl9yZWxhdGUsIENob2ljZV9DVVpfcmVsYXRlLCBDaG9pY2VfU0lCX3JlbGF0ZSksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJyZWxhdGUiDQogICkNCg0KRTJfRkxfY2xvc2VfbG9uZyA8LSBFMl9GTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWl9jbG9zZSwgTm9DaG9pY2VfU0lCX2Nsb3NlLCBDaG9pY2VfQ1VaX2Nsb3NlLCBDaG9pY2VfU0lCX2Nsb3NlKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gImNsb3NlIg0KICApDQoNCkUyX0ZMX3ByaW9yaGVscF9sb25nIDwtIEUyX0ZMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VaX3ByaW9yaGVscCwgTm9DaG9pY2VfU0lCX3ByaW9yaGVscCwgQ2hvaWNlX0NVWl9wcmlvcmhlbHAsIENob2ljZV9TSUJfcHJpb3JoZWxwKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gInByaW9yaGVscCINCiAgKQ0KDQpFMl9GTF9mdXR1cmVoZWxwX2xvbmcgPC0gRTJfRkxfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVpfZnV0dXJlaGVscCwgTm9DaG9pY2VfU0lCX2Z1dHVyZWhlbHAsIENob2ljZV9DVVpfZnV0dXJlaGVscCwgQ2hvaWNlX1NJQl9mdXR1cmVoZWxwKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gImZ1dHVyZWhlbHAiDQogICkNCg0KRTJfRkxfcHJpb3JpbnRlcmFjdF9sb25nIDwtIEUyX0ZMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VaX3ByaW9yaW50ZXJhY3QsIE5vQ2hvaWNlX1NJQl9wcmlvcmludGVyYWN0LCBDaG9pY2VfQ1VaX3ByaW9yaW50ZXJhY3QsIENob2ljZV9TSUJfcHJpb3JpbnRlcmFjdCksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJwcmlvcmludGVyYWN0Ig0KICApDQoNCkUyX0ZMX2Z1dHVyZWludGVyYWN0X2xvbmcgPC0gRTJfRkxfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVpfZnV0dXJlaW50ZXJhY3QsIE5vQ2hvaWNlX1NJQl9mdXR1cmVpbnRlcmFjdCwgQ2hvaWNlX0NVWl9mdXR1cmVpbnRlcmFjdCwgQ2hvaWNlX1NJQl9mdXR1cmVpbnRlcmFjdCksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJmdXR1cmVpbnRlcmFjdCINCiAgKQ0KDQpFMl9GTF9tb3JhbF9sb25nIDwtIEUyX0ZMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VaX21vcmFsLCBOb0Nob2ljZV9TSUJfbW9yYWwsIENob2ljZV9DVVpfbW9yYWwsIENob2ljZV9TSUJfbW9yYWwpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAibW9yYWwiDQogICkNCg0KDQojIENvbWJpbmUgbG9uZyBTTCBkYXRhc2V0cywgc2VsZWN0IHBsb3R0aW5nIHZhcmlhYmxlcywgYW5kIGNyZWF0ZSBjb25kaXRpb24gdmFyaWFibGUgZm9yIGVhY2ggZmFjdG9yIChSZWxhdGlvbiArIENob2ljZSBDb250ZXh0KQ0KRTJfRkxfbG9uZyA8LSBjYmluZChFMl9GTF9jb25kX2xvbmcsIA0KICAgICAgICAgICAgICAgICAgICBFMl9GTF9vYmxpZ19sb25nLCBFMl9GTF9yZWxhdGVfbG9uZywgRTJfRkxfY2xvc2VfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgRTJfRkxfcHJpb3JoZWxwX2xvbmcsIEUyX0ZMX2Z1dHVyZWhlbHBfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgRTJfRkxfcHJpb3JpbnRlcmFjdF9sb25nLCBFMl9GTF9mdXR1cmVpbnRlcmFjdF9sb25nLA0KICAgICAgICAgICAgICAgICAgICBFMl9GTF9tb3JhbF9sb25nKQ0KDQpFMl9GTF9sb25nIDwtIEUyX0ZMX2xvbmdbLCAhZHVwbGljYXRlZChjb2xuYW1lcyhFMl9GTF9sb25nKSldICU+JSAjIGdldCByaWQgb2YgZHVwbGljYXRlIGNvbHVtbnMNCiAgc2VsZWN0KFJlc3BvbnNlSWQsDQogICAgICAgICBBZ2U6T1VTX0lILA0KICAgICAgICAgQlNzX2NvbmQsDQogICAgICAgICBXU3NfY29uZCwNCiAgICAgICAgIENvbmRpdGlvbiwNCiAgICAgICAgIG9ibGlnLCByZWxhdGUsIGNsb3NlLCANCiAgICAgICAgIHByaW9yaGVscCwgZnV0dXJlaGVscCwNCiAgICAgICAgIHByaW9yaW50ZXJhY3QsIGZ1dHVyZWludGVyYWN0LA0KICAgICAgICAgbW9yYWwpICU+JQ0KICBtdXRhdGUoUmVsYXRpb24gPSBjYXNlX3doZW4oDQogICAgV1NzX2NvbmQgPT0gIkZMX0Rpc3RfU2NlbiIgfiAiRGlzdGFudCIsDQogICAgV1NzX2NvbmQgPT0gIkZMX0Nsb3NlX1NjZW4iIH4gIkNsb3NlIiwNCiAgICBXU3NfY29uZCA9PSAiRkxfRGlzdE9DbG9zZV9TY2VuIiB+ICJEaXN0YW50IiwNCiAgICBXU3NfY29uZCA9PSAiRkxfQ2xvc2VPRGlzdF9TY2VuIiB+ICJDbG9zZSIpKSAlPiUNCiAgbXV0YXRlKGBDaG9pY2UgQ29udGV4dGAgPSBjYXNlX3doZW4oDQogICAgV1NzX2NvbmQgPT0gIkZMX0Rpc3RfU2NlbiIgfiAiTm8gQ2hvaWNlIiwNCiAgICBXU3NfY29uZCA9PSAiRkxfQ2xvc2VfU2NlbiIgfiAiTm8gQ2hvaWNlIiwNCiAgICBXU3NfY29uZCA9PSAiRkxfRGlzdE9DbG9zZV9TY2VuIiB+ICJDaG9pY2UiLA0KICAgIFdTc19jb25kID09ICJGTF9DbG9zZU9EaXN0X1NjZW4iIH4gIkNob2ljZSIpKQ0KDQojIFJlb3JkZXIvcmVuYW1lIGNvbmRpdGlvbiBhbmQgcGFydGljaXBhbnQgZmFjdG9ycw0KRTJfRkxfbG9uZyRSZWxhdGlvbiA8LSBhcy5mYWN0b3IoRTJfRkxfbG9uZyRSZWxhdGlvbikNCkUyX0ZMX2xvbmckUmVsYXRpb24gPC0gb3JkZXJlZChFMl9GTF9sb25nJFJlbGF0aW9uLCBsZXZlbHMgPSBjKCJEaXN0YW50IiwgIkNsb3NlIikpDQpFMl9GTF9sb25nJGBDaG9pY2UgQ29udGV4dGAgPC0gYXMuZmFjdG9yKEUyX0ZMX2xvbmckYENob2ljZSBDb250ZXh0YCkNCkUyX0ZMX2xvbmckYENob2ljZSBDb250ZXh0YCA8LSBvcmRlcmVkKEUyX0ZMX2xvbmckYENob2ljZSBDb250ZXh0YCwgbGV2ZWxzID0gYygiTm8gQ2hvaWNlIiwgIkNob2ljZSIpKQ0KRTJfRkxfbG9uZyRSZXNwb25zZUlkIDwtIGFzLmZhY3RvcihFMl9GTF9sb25nJFJlc3BvbnNlSWQpDQoNCiMgQ29tYmluZSBpbnRvIG9uZSBkYXRhc2V0IGZvciBsYXRlciBhbmFseXNlcw0KRTJfYWxsX2xvbmcgPC0gcmJpbmQoRTJfU0xfbG9uZywgRTJfRkxfbG9uZykNCiMgUmVvcmRlciBhbGxfbG9uZyBCU3NfY29uZA0KRTJfYWxsX2xvbmckQlNzX2NvbmQgPC0gYXMuZmFjdG9yKEUyX2FsbF9sb25nJEJTc19jb25kKQ0KRTJfYWxsX2xvbmckQlNzX2NvbmQgPC0gb3JkZXJlZChFMl9hbGxfbG9uZyRCU3NfY29uZCwgbGV2ZWxzID0gYygiU3RyYW5nZXItTGlrZSIsICJGcmllbmQtTGlrZSIpKQ0KYGBgDQoNCg0KIyBEZXNjcmlwdGl2ZSBTdGF0aXN0aWNzIHsudGFic2V0fQ0KDQojIyBPYmxpZyB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KZGVzY3JpYmVCeShFMl9TTF9sb25nJG9ibGlnLCBsaXN0KEUyX1NMX2xvbmckUmVsYXRpb24sIEUyX1NMX2xvbmckYENob2ljZSBDb250ZXh0YCksIG1hdCA9IFQpDQpgYGANCiMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX0ZMX2xvbmckb2JsaWcsIGxpc3QoRTJfRkxfbG9uZyRSZWxhdGlvbiwgRTJfRkxfbG9uZyRgQ2hvaWNlIENvbnRleHRgKSwgbWF0ID0gVCkNCmBgYA0KDQojIyBSZWxhdGUgey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlDQpgYGB7cn0NCmRlc2NyaWJlQnkoRTJfU0xfbG9uZyRyZWxhdGUsIGxpc3QoRTJfU0xfbG9uZyRSZWxhdGlvbiwgRTJfU0xfbG9uZyRgQ2hvaWNlIENvbnRleHRgKSwgbWF0ID0gVCkNCmBgYA0KIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCmRlc2NyaWJlQnkoRTJfRkxfbG9uZyRyZWxhdGUsIGxpc3QoRTJfRkxfbG9uZyRSZWxhdGlvbiwgRTJfRkxfbG9uZyRgQ2hvaWNlIENvbnRleHRgKSwgbWF0ID0gVCkNCmBgYA0KDQojIyBDbG9zZSB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KZGVzY3JpYmVCeShFMl9TTF9sb25nJGNsb3NlLCBsaXN0KEUyX1NMX2xvbmckUmVsYXRpb24sIEUyX1NMX2xvbmckYENob2ljZSBDb250ZXh0YCksIG1hdCA9IFQpDQpgYGANCiMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX0ZMX2xvbmckY2xvc2UsIGxpc3QoRTJfRkxfbG9uZyRSZWxhdGlvbiwgRTJfRkxfbG9uZyRgQ2hvaWNlIENvbnRleHRgKSwgbWF0ID0gVCkNCmBgYA0KDQojIyBQcmlvciBIZWxwIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX1NMX2xvbmckcHJpb3JoZWxwLCBsaXN0KEUyX1NMX2xvbmckUmVsYXRpb24sIEUyX1NMX2xvbmckYENob2ljZSBDb250ZXh0YCksIG1hdCA9IFQpDQpgYGANCiMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX0ZMX2xvbmckcHJpb3JoZWxwLCBsaXN0KEUyX0ZMX2xvbmckUmVsYXRpb24sIEUyX0ZMX2xvbmckYENob2ljZSBDb250ZXh0YCksIG1hdCA9IFQpDQpgYGANCg0KIyMgRnV0dXJlIEhlbHAgey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlDQpgYGB7cn0NCmRlc2NyaWJlQnkoRTJfU0xfbG9uZyRmdXR1cmVoZWxwLCBsaXN0KEUyX1NMX2xvbmckUmVsYXRpb24sIEUyX1NMX2xvbmckYENob2ljZSBDb250ZXh0YCksIG1hdCA9IFQpDQpgYGANCiMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX0ZMX2xvbmckZnV0dXJlaGVscCwgbGlzdChFMl9GTF9sb25nJFJlbGF0aW9uLCBFMl9GTF9sb25nJGBDaG9pY2UgQ29udGV4dGApLCBtYXQgPSBUKQ0KYGBgDQoNCiMjIFByaW9yIEludGVyYXggey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlDQpgYGB7cn0NCmRlc2NyaWJlQnkoRTJfU0xfbG9uZyRwcmlvcmludGVyYWN0LCBsaXN0KEUyX1NMX2xvbmckUmVsYXRpb24sIEUyX1NMX2xvbmckYENob2ljZSBDb250ZXh0YCksIG1hdCA9IFQpDQpgYGANCiMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX0ZMX2xvbmckcHJpb3JpbnRlcmFjdCwgbGlzdChFMl9GTF9sb25nJFJlbGF0aW9uLCBFMl9GTF9sb25nJGBDaG9pY2UgQ29udGV4dGApLCBtYXQgPSBUKQ0KYGBgDQoNCiMjIEZ1dHVyZSBJbnRlcmF4IHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX1NMX2xvbmckZnV0dXJlaW50ZXJhY3QsIGxpc3QoRTJfU0xfbG9uZyRSZWxhdGlvbiwgRTJfU0xfbG9uZyRgQ2hvaWNlIENvbnRleHRgKSwgbWF0ID0gVCkNCmBgYA0KIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCmRlc2NyaWJlQnkoRTJfRkxfbG9uZyRmdXR1cmVpbnRlcmFjdCwgbGlzdChFMl9GTF9sb25nJFJlbGF0aW9uLCBFMl9GTF9sb25nJGBDaG9pY2UgQ29udGV4dGApLCBtYXQgPSBUKQ0KYGBgDQoNCiMjIE1vcmFsIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQpkZXNjcmliZUJ5KEUyX1NMX2xvbmckbW9yYWwsIGxpc3QoRTJfU0xfbG9uZyRSZWxhdGlvbiwgRTJfU0xfbG9uZyRgQ2hvaWNlIENvbnRleHRgKSwgbWF0ID0gVCkNCmBgYA0KIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCmRlc2NyaWJlQnkoRTJfRkxfbG9uZyRtb3JhbCwgbGlzdChFMl9GTF9sb25nJFJlbGF0aW9uLCBFMl9GTF9sb25nJGBDaG9pY2UgQ29udGV4dGApLCBtYXQgPSBUKQ0KYGBgDQoNCg0KIyBNZWFuIERpZmZlcmVuY2UgUGxvdHMgey50YWJzZXR9DQpgYGB7cn0NCiMgU2V0IGRvZGdlIGZvciBwbG90dGluZyBjcm9zc2VkIGZhY3RvcnMNCmRvZGdlID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAxKSANCmBgYA0KDQojIyBPYmxpZyB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChvYmxpZ19wbG90X1NMIDwtIGdncGxvdChkYXRhID0gRTJfU0xfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gb2JsaWcsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICB4bGFiKCJDaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aCIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpKSkNCmBgYA0KIyMjIEZyaWVuZC1MaWtlDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQob2JsaWdfcGxvdF9GTCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX0ZMX2xvbmcsIGFlcyh4ID0gYENob2ljZSBDb250ZXh0YCwgeSA9IG9ibGlnLCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIk9ibGlnYXRpb24gU3RyZW5ndGgiKSArIA0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksDQogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSkpDQpgYGANCiMjIyBDb21iaW5lZA0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KG9ibGlnX3Bsb3RfY29tYmluZWQgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gb2JsaWcsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICBmYWNldF93cmFwKH5CU3NfY29uZCwgbnJvdyA9IDIpICsNCiAgICAgICAgeGxhYigiXG5DaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aFxuIikgKw0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxOCksDQogICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmdnc2F2ZSgiRTJfb2JsaWdfcGxvdC5wbmciKQ0KYGBgDQoNCiMjIFJlbGF0ZSB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChyZWxhdGVfcGxvdF9TTCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX1NMX2xvbmcsIGFlcyh4ID0gYENob2ljZSBDb250ZXh0YCwgeSA9IHJlbGF0ZSwgZmlsbCA9IFJlbGF0aW9uKSkgKw0KICAgICAgICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IFJlbGF0aW9uKSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGNvbG9yID0gImJsYWNrIiwgb3V0bGllci5zaGFwZSA9IE5BLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50Iiwgc2hhcGUgPSAxOCwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMywgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIHhsYWIoIkNob2ljZSBDb250ZXh0IikgKw0KICAgICAgICB5bGFiKCJQZXJjZWl2ZWQgUmVsYXRlZG5lc3MiKSArIA0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksDQogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSkpDQpgYGANCiMjIyBGcmllbmQtTGlrZQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KHJlbGF0ZV9wbG90X0ZMIDwtIGdncGxvdChkYXRhID0gRTJfRkxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gcmVsYXRlLCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBSZWxhdGVkbmVzcyIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpKSkNCmBgYA0KIyMjIENvbWJpbmVkDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQocmVsYXRlX3Bsb3RfY29tYmluZWQgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gcmVsYXRlLCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAyLjUsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICBmYWNldF93cmFwKH5CU3NfY29uZCwgbnJvdyA9IDIpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBSZWxhdGVkbmVzcyIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KZ2dzYXZlKCJFMl9yZWxhdGVfcGxvdC5wbmciKQ0KYGBgDQoNCiMjIENsb3NlIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KGNsb3NlX3Bsb3RfU0wgPC0gZ2dwbG90KGRhdGEgPSBFMl9TTF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBjbG9zZSwgZmlsbCA9IFJlbGF0aW9uKSkgKw0KICAgICAgICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IFJlbGF0aW9uKSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGNvbG9yID0gImJsYWNrIiwgb3V0bGllci5zaGFwZSA9IE5BLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50Iiwgc2hhcGUgPSAxOCwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMywgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIHhsYWIoIkNob2ljZSBDb250ZXh0IikgKw0KICAgICAgICB5bGFiKCJQZXJjZWl2ZWQgQ2xvc2VuZXNzIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgRnJpZW5kLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChjbG9zZV9wbG90X0ZMIDwtIGdncGxvdChkYXRhID0gRTJfRkxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gY2xvc2UsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICB4bGFiKCJDaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiUGVyY2VpdmVkIENsb3NlbmVzcyIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpKSkNCmBgYA0KIyMjIENvbWJpbmVkDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQoY2xvc2VfcGxvdF9jb21iaW5lZCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBjbG9zZSwgZmlsbCA9IFJlbGF0aW9uKSkgKw0KICAgICAgICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IFJlbGF0aW9uKSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGNvbG9yID0gImJsYWNrIiwgb3V0bGllci5zaGFwZSA9IE5BLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50Iiwgc2hhcGUgPSAxOCwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMi41LCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgZmFjZXRfd3JhcCh+QlNzX2NvbmQsIG5yb3cgPSAyKSArDQogICAgICAgIHhsYWIoIkNob2ljZSBDb250ZXh0IikgKw0KICAgICAgICB5bGFiKCJQZXJjZWl2ZWQgQ2xvc2VuZXNzIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNikpKQ0KDQpnZ3NhdmUoIkUyX2Nsb3NlX3Bsb3QucG5nIikNCmBgYA0KDQojIyBQcmlvciBIZWxwIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KHByaW9yaGVscF9wbG90X1NMIDwtIGdncGxvdChkYXRhID0gRTJfU0xfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gcHJpb3JoZWxwLCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBGcmVxdWVuY3kgb2YgUHJpb3IgSGVscCIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpKSkNCmBgYA0KIyMjIEZyaWVuZC1MaWtlDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQocHJpb3JoZWxwX3Bsb3RfRkwgPC0gZ2dwbG90KGRhdGEgPSBFMl9GTF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBwcmlvcmhlbHAsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICB4bGFiKCJDaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiUGVyY2VpdmVkIEZyZXF1ZW5jeSBvZiBQcmlvciBIZWxwIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgQ29tYmluZWQNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChwcmlvcmhlbHBfcGxvdF9jb21iaW5lZCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBwcmlvcmhlbHAsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDIuNSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIGZhY2V0X3dyYXAofkJTc19jb25kLCBucm93ID0gMikgKw0KICAgICAgICB4bGFiKCJDaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiUGVyY2VpdmVkIEZyZXF1ZW5jeSBvZiBQcmlvciBIZWxwIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNikpKQ0KDQpnZ3NhdmUoIkUyX3ByaW9yaGVscF9wbG90LnBuZyIpDQpgYGANCg0KIyMgRnV0dXJlIEhlbHAgey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQoZnV0dXJlaGVscF9wbG90X1NMIDwtIGdncGxvdChkYXRhID0gRTJfU0xfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gZnV0dXJlaGVscCwgZmlsbCA9IFJlbGF0aW9uKSkgKw0KICAgICAgICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IFJlbGF0aW9uKSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGNvbG9yID0gImJsYWNrIiwgb3V0bGllci5zaGFwZSA9IE5BLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50Iiwgc2hhcGUgPSAxOCwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMywgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIHhsYWIoIkNob2ljZSBDb250ZXh0IikgKw0KICAgICAgICB5bGFiKCJQZXJjZWl2ZWQgRnJlcXVlbmN5IG9mIEZ1dHVyZSBIZWxwIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgRnJpZW5kLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChmdXR1cmVoZWxwX3Bsb3RfRkwgPC0gZ2dwbG90KGRhdGEgPSBFMl9GTF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBmdXR1cmVoZWxwLCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBGcmVxdWVuY3kgb2YgRnV0dXJlIEhlbHAiKSArIA0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksDQogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSkpDQpgYGANCiMjIyBDb21iaW5lZA0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KGZ1dHVyZWhlbHBfcGxvdF9jb21iaW5lZCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBmdXR1cmVoZWxwLCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAyLjUsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICBmYWNldF93cmFwKH5CU3NfY29uZCwgbnJvdyA9IDIpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBGcmVxdWVuY3kgb2YgRnV0dXJlIEhlbHAiKSArIA0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxOCksDQogICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmdnc2F2ZSgiRTJfZnV0dXJlaGVscF9wbG90LnBuZyIpDQpgYGANCg0KIyMgUHJpb3IgSW50ZXJheCB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChwcmlvcmludGVyYWN0X3Bsb3RfU0wgPC0gZ2dwbG90KGRhdGEgPSBFMl9TTF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBwcmlvcmludGVyYWN0LCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBGcmVxdWVuY3kgb2YgUHJpb3IgSW50ZXJhY3Rpb25zIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgRnJpZW5kLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChwcmlvcmludGVyYWN0X3Bsb3RfRkwgPC0gZ2dwbG90KGRhdGEgPSBFMl9GTF9sb25nLCBhZXMoeCA9IGBDaG9pY2UgQ29udGV4dGAsIHkgPSBwcmlvcmludGVyYWN0LCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAzLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBGcmVxdWVuY3kgb2YgUHJpb3IgSW50ZXJhY3Rpb25zIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgQ29tYmluZWQNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChwcmlvcmludGVyYWN0X3Bsb3RfY29tYmluZWQgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gcHJpb3JpbnRlcmFjdCwgZmlsbCA9IFJlbGF0aW9uKSkgKw0KICAgICAgICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IFJlbGF0aW9uKSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGNvbG9yID0gImJsYWNrIiwgb3V0bGllci5zaGFwZSA9IE5BLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50Iiwgc2hhcGUgPSAxOCwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMi41LCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpICsNCiAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgZmFjZXRfd3JhcCh+QlNzX2NvbmQsIG5yb3cgPSAyKSArDQogICAgICAgIHhsYWIoIkNob2ljZSBDb250ZXh0IikgKw0KICAgICAgICB5bGFiKCJQZXJjZWl2ZWQgRnJlcXVlbmN5IG9mIFByaW9yIEludGVyYWN0aW9ucyIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KZ2dzYXZlKCJFMl9wcmlvcmludGVyYWN0X3Bsb3QucG5nIikNCmBgYA0KDQojIyBGdXR1cmUgSW50ZXJheCB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChmdXR1cmVpbnRlcmFjdF9wbG90X1NMIDwtIGdncGxvdChkYXRhID0gRTJfU0xfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gZnV0dXJlaW50ZXJhY3QsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICB4bGFiKCJDaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiUGVyY2VpdmVkIEZyZXF1ZW5jeSBvZiBGdXR1cmUgSW50ZXJhY3Rpb25zIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgRnJpZW5kLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChmdXR1cmVpbnRlcmFjdF9wbG90X0ZMIDwtIGdncGxvdChkYXRhID0gRTJfRkxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gZnV0dXJlaW50ZXJhY3QsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICB4bGFiKCJDaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiUGVyY2VpdmVkIEZyZXF1ZW5jeSBvZiBGdXR1cmUgSW50ZXJhY3Rpb25zIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgQ29tYmluZWQNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChmdXR1cmVpbnRlcmFjdF9wbG90X2NvbWJpbmVkIDwtIGdncGxvdChkYXRhID0gRTJfYWxsX2xvbmcsIGFlcyh4ID0gYENob2ljZSBDb250ZXh0YCwgeSA9IGZ1dHVyZWludGVyYWN0LCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21fdmlvbGluKGFlcyhmaWxsID0gUmVsYXRpb24pLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIGdlb21fYm94cGxvdCh3aWR0aCA9IDAuMSwgY29sb3IgPSAiYmxhY2siLCBvdXRsaWVyLnNoYXBlID0gTkEsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAicG9pbnQiLCBzaGFwZSA9IDE4LCBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAyLjUsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICBmYWNldF93cmFwKH5CU3NfY29uZCwgbnJvdyA9IDIpICsNCiAgICAgICAgeGxhYigiQ2hvaWNlIENvbnRleHQiKSArDQogICAgICAgIHlsYWIoIlBlcmNlaXZlZCBGcmVxdWVuY3kgb2YgRnV0dXJlIEludGVyYWN0aW9ucyIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KZ2dzYXZlKCJFMl9mdXR1cmVpbnRlcmFjdF9wbG90LnBuZyIpDQpgYGANCg0KIyMgTW9yYWwgey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQobW9yYWxfcGxvdF9TTCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX1NMX2xvbmcsIGFlcyh4ID0gYENob2ljZSBDb250ZXh0YCwgeSA9IG1vcmFsLCBmaWxsID0gUmVsYXRpb24pKSArDQogICAgICAgIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDUwLCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJibGFjayIpICsNCiAgICAgICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSBSZWxhdGlvbiksIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgZ2VvbV9ib3hwbG90KHdpZHRoID0gMC4xLCBjb2xvciA9ICJibGFjayIsIG91dGxpZXIuc2hhcGUgPSBOQSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICBzdGF0X3N1bW1hcnkoZnVuID0gbWVhbiwgZ2VvbSA9ICJwb2ludCIsIHNoYXBlID0gMTgsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMsIHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICB4bGFiKCJDaG9pY2UgQ29udGV4dCIpICsNCiAgICAgICAgeWxhYigiTW9yYWwgQ2hhcmFjdGVyIikgKyANCiAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTQpLA0KICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyMgRnJpZW5kLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChtb3JhbF9wbG90X0ZMIDwtIGdncGxvdChkYXRhID0gRTJfRkxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gbW9yYWwsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gNTAsIGxpbmV0eXBlID0gImRhc2hlZCIsIGNvbG9yID0gImJsYWNrIikgKw0KICAgICAgICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IFJlbGF0aW9uKSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGNvbG9yID0gImJsYWNrIiwgb3V0bGllci5zaGFwZSA9IE5BLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50Iiwgc2hhcGUgPSAxOCwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMywgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIHhsYWIoIkNob2ljZSBDb250ZXh0IikgKw0KICAgICAgICB5bGFiKCJNb3JhbCBDaGFyYWN0ZXIiKSArIA0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksDQogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSkpDQpgYGANCiMjIyBDb21iaW5lZA0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KG1vcmFsX3Bsb3RfY29tYmluZWQgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywgYWVzKHggPSBgQ2hvaWNlIENvbnRleHRgLCB5ID0gbW9yYWwsIGZpbGwgPSBSZWxhdGlvbikpICsNCiAgICAgICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gNTAsIGxpbmV0eXBlID0gImRhc2hlZCIsIGNvbG9yID0gImJsYWNrIikgKw0KICAgICAgICBnZW9tX3Zpb2xpbihhZXMoZmlsbCA9IFJlbGF0aW9uKSwgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjEsIGNvbG9yID0gImJsYWNrIiwgb3V0bGllci5zaGFwZSA9IE5BLCBwb3NpdGlvbiA9IGRvZGdlKSArDQogICAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgIHN0YXRfc3VtbWFyeShmdW4gPSBtZWFuLCBnZW9tID0gInBvaW50Iiwgc2hhcGUgPSAxOCwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMywgcG9zaXRpb24gPSBkb2RnZSkgKw0KICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIGZhY2V0X3dyYXAofkJTc19jb25kLCBucm93ID0gMikgKw0KICAgICAgICB4bGFiKCJcbkNob2ljZSBDb250ZXh0IikgKw0KICAgICAgICB5bGFiKCJNb3JhbCBDaGFyYWN0ZXJcbiIpICsgDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KZ2dzYXZlKCJFMl9tb3JhbF9wbG90LnBuZyIpDQpgYGANCg0KDQojIE1lYW4gRGlmZmVyZW5jZSBUZXN0cyB7LnRhYnNldH0NCg0KPGJyPg0KDQpTZWUgb3VyIHByZS1yZWdpc3RyYXRpb24gKElOU0VSVCBMSU5LIEhFUkUpIGZvciBvdXIgcHJlZGljdGlvbnMgcmVsYXRlZCB0byBvYmxpZ2F0aW9uIGp1ZGdtZW50cyBhbmQgbW9yYWwgY2hhcmFjdGVyIGp1ZGdtZW50cy4NCg0KPGJyPg0KDQojIyBPYmxpZyB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KG9ibGlnIH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKG9ibGlnIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQob2JsaWcgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVpfb2JsaWciLCAiTm9DaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX1NMX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChvYmxpZyB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChvYmxpZyB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKG9ibGlnIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX1NMX2NsZWFuLCAiQ2hvaWNlX0NVWl9vYmxpZyIsICJDaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX1NMX2NsZWFuJENob2ljZV9DVVptaW51c1NJQl9vYmxpZywgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQojIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KG9ibGlnIH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChvYmxpZyB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChvYmxpZyB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVpfb2JsaWciLCAiTm9DaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX0ZMX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChvYmxpZyB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQob2JsaWcgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQob2JsaWcgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX0ZMX2NsZWFuLCAiQ2hvaWNlX0NVWl9vYmxpZyIsICJDaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX0ZMX2NsZWFuJENob2ljZV9DVVptaW51c1NJQl9vYmxpZywgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQoNCiMjIFJlbGF0ZSB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KHJlbGF0ZSB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChyZWxhdGUgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChyZWxhdGUgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVpfcmVsYXRlIiwgIk5vQ2hvaWNlX1NJQl9yZWxhdGUiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfcmVsYXRlLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChyZWxhdGUgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocmVsYXRlIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocmVsYXRlIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX1NMX2NsZWFuLCAiQ2hvaWNlX0NVWl9yZWxhdGUiLCAiQ2hvaWNlX1NJQl9yZWxhdGUiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX3JlbGF0ZSwgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQojIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KHJlbGF0ZSB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocmVsYXRlIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHJlbGF0ZSB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVpfcmVsYXRlIiwgIk5vQ2hvaWNlX1NJQl9yZWxhdGUiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfcmVsYXRlLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChyZWxhdGUgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHJlbGF0ZSB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChyZWxhdGUgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX0ZMX2NsZWFuLCAiQ2hvaWNlX0NVWl9yZWxhdGUiLCAiQ2hvaWNlX1NJQl9yZWxhdGUiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX3JlbGF0ZSwgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQoNCiMjIENsb3NlIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QoY2xvc2UgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoY2xvc2UgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChjbG9zZSB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9TTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWl9jbG9zZSIsICJOb0Nob2ljZV9TSUJfY2xvc2UiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfY2xvc2UsIGJyZWFrcyA9IDEwMCkpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KGNsb3NlIH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGNsb3NlIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoY2xvc2UgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJDaG9pY2VfQ1VaX2Nsb3NlIiwgIkNob2ljZV9TSUJfY2xvc2UiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX2Nsb3NlLCBicmVha3MgPSAxMDApKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QoY2xvc2UgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGNsb3NlIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGNsb3NlIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9GTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWl9jbG9zZSIsICJOb0Nob2ljZV9TSUJfY2xvc2UiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfY2xvc2UsIGJyZWFrcyA9IDEwMCkpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KGNsb3NlIH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChjbG9zZSB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChjbG9zZSB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJDaG9pY2VfQ1VaX2Nsb3NlIiwgIkNob2ljZV9TSUJfY2xvc2UiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX2Nsb3NlLCBicmVha3MgPSAxMDApKQ0KYGBgDQoNCg0KIyMgUHJpb3IgSGVscCB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KHByaW9yaGVscCB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChwcmlvcmhlbHAgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChwcmlvcmhlbHAgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVpfcHJpb3JoZWxwIiwgIk5vQ2hvaWNlX1NJQl9wcmlvcmhlbHAiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfcHJpb3JoZWxwLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChwcmlvcmhlbHAgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocHJpb3JoZWxwIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocHJpb3JoZWxwIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX1NMX2NsZWFuLCAiQ2hvaWNlX0NVWl9wcmlvcmhlbHAiLCAiQ2hvaWNlX1NJQl9wcmlvcmhlbHAiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaGVscCwgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQojIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KHByaW9yaGVscCB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocHJpb3JoZWxwIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHByaW9yaGVscCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVpfcHJpb3JoZWxwIiwgIk5vQ2hvaWNlX1NJQl9wcmlvcmhlbHAiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfcHJpb3JoZWxwLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChwcmlvcmhlbHAgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHByaW9yaGVscCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChwcmlvcmhlbHAgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX0ZMX2NsZWFuLCAiQ2hvaWNlX0NVWl9wcmlvcmhlbHAiLCAiQ2hvaWNlX1NJQl9wcmlvcmhlbHAiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaGVscCwgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQoNCiMjIEZ1dHVyZSBIZWxwIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QoZnV0dXJlaGVscCB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChmdXR1cmVoZWxwIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoZnV0dXJlaGVscCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9TTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWl9mdXR1cmVoZWxwIiwgIk5vQ2hvaWNlX1NJQl9mdXR1cmVoZWxwIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX1NMX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWhlbHAsIGJyZWFrcyA9IDEwMCkpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KGZ1dHVyZWhlbHAgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoZnV0dXJlaGVscCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGZ1dHVyZWhlbHAgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJDaG9pY2VfQ1VaX2Z1dHVyZWhlbHAiLCAiQ2hvaWNlX1NJQl9mdXR1cmVoZWxwIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX1NMX2NsZWFuJENob2ljZV9DVVptaW51c1NJQl9mdXR1cmVoZWxwLCBicmVha3MgPSAxMDApKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QoZnV0dXJlaGVscCB+IFJlbGF0aW9uLCANCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoZnV0dXJlaGVscCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChmdXR1cmVoZWxwIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9GTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWl9mdXR1cmVoZWxwIiwgIk5vQ2hvaWNlX1NJQl9mdXR1cmVoZWxwIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX0ZMX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWhlbHAsIGJyZWFrcyA9IDEwMCkpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KGZ1dHVyZWhlbHAgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGZ1dHVyZWhlbHAgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoZnV0dXJlaGVscCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJDaG9pY2VfQ1VaX2Z1dHVyZWhlbHAiLCAiQ2hvaWNlX1NJQl9mdXR1cmVoZWxwIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX0ZMX2NsZWFuJENob2ljZV9DVVptaW51c1NJQl9mdXR1cmVoZWxwLCBicmVha3MgPSAxMDApKQ0KYGBgDQoNCg0KIyMgUHJpb3IgSW50ZXJheCB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KHByaW9yaW50ZXJhY3QgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocHJpb3JpbnRlcmFjdCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHByaW9yaW50ZXJhY3QgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVpfcHJpb3JpbnRlcmFjdCIsICJOb0Nob2ljZV9TSUJfcHJpb3JpbnRlcmFjdCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDksIGZpZy5oZWlnaHQgPSA2LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KIyByZXR1cm5zIGhpc3RvZ3JhbSBvZiBkaWZmZXJlbmNlcyBzY29yZSB2YXJpYWJsZQ0KcHJpbnQoaGlzdChFMl9TTF9jbGVhbiROb0Nob2ljZV9DVVptaW51c1NJQl9wcmlvcmludGVyYWN0LCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChwcmlvcmludGVyYWN0IH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHByaW9yaW50ZXJhY3QgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChwcmlvcmludGVyYWN0IH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX1NMX2NsZWFuLCAiQ2hvaWNlX0NVWl9wcmlvcmludGVyYWN0IiwgIkNob2ljZV9TSUJfcHJpb3JpbnRlcmFjdCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDksIGZpZy5oZWlnaHQgPSA2LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KIyByZXR1cm5zIGhpc3RvZ3JhbSBvZiBkaWZmZXJlbmNlcyBzY29yZSB2YXJpYWJsZQ0KcHJpbnQoaGlzdChFMl9TTF9jbGVhbiRDaG9pY2VfQ1VabWludXNTSUJfcHJpb3JpbnRlcmFjdCwgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQojIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KHByaW9yaW50ZXJhY3QgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHByaW9yaW50ZXJhY3QgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQocHJpb3JpbnRlcmFjdCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVpfcHJpb3JpbnRlcmFjdCIsICJOb0Nob2ljZV9TSUJfcHJpb3JpbnRlcmFjdCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDksIGZpZy5oZWlnaHQgPSA2LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KIyByZXR1cm5zIGhpc3RvZ3JhbSBvZiBkaWZmZXJlbmNlcyBzY29yZSB2YXJpYWJsZQ0KcHJpbnQoaGlzdChFMl9GTF9jbGVhbiROb0Nob2ljZV9DVVptaW51c1NJQl9wcmlvcmludGVyYWN0LCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIHJldHVybnMgdC10ZXN0IHJlc3VsdHMNCnQudGVzdChwcmlvcmludGVyYWN0IH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChwcmlvcmludGVyYWN0IH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKHByaW9yaW50ZXJhY3QgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBUKSAjIHNldHRpbmcgdGhpcyB0byB0cnVlIGVuc3VyZXMgZC1hdiBpcyBjYWxjdWxhdGVkLCB1c2luZyByYXcgc2NvcmVzDQoNCiMgcmV0dXJucyBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcw0KY29yX3Rlc3QoZGF0YSA9IEUyX0ZMX2NsZWFuLCAiQ2hvaWNlX0NVWl9wcmlvcmludGVyYWN0IiwgIkNob2ljZV9TSUJfcHJpb3JpbnRlcmFjdCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDksIGZpZy5oZWlnaHQgPSA2LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KIyByZXR1cm5zIGhpc3RvZ3JhbSBvZiBkaWZmZXJlbmNlcyBzY29yZSB2YXJpYWJsZQ0KcHJpbnQoaGlzdChFMl9GTF9jbGVhbiRDaG9pY2VfQ1VabWludXNTSUJfcHJpb3JpbnRlcmFjdCwgYnJlYWtzID0gMTAwKSkNCmBgYA0KDQoNCiMjIEZ1dHVyZSBJbnRlcmF4IHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QoZnV0dXJlaW50ZXJhY3QgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoZnV0dXJlaW50ZXJhY3QgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChmdXR1cmVpbnRlcmFjdCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9TTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWl9mdXR1cmVpbnRlcmFjdCIsICJOb0Nob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaW50ZXJhY3QsIGJyZWFrcyA9IDEwMCkpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KGZ1dHVyZWludGVyYWN0IH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGZ1dHVyZWludGVyYWN0IH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQoZnV0dXJlaW50ZXJhY3QgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJDaG9pY2VfQ1VaX2Z1dHVyZWludGVyYWN0IiwgIkNob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfU0xfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWludGVyYWN0LCBicmVha3MgPSAxMDApKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QoZnV0dXJlaW50ZXJhY3QgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGZ1dHVyZWludGVyYWN0IH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKGZ1dHVyZWludGVyYWN0IH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9GTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWl9mdXR1cmVpbnRlcmFjdCIsICJOb0Nob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kTm9DaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaW50ZXJhY3QsIGJyZWFrcyA9IDEwMCkpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KGZ1dHVyZWludGVyYWN0IH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChmdXR1cmVpbnRlcmFjdCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChmdXR1cmVpbnRlcmFjdCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJDaG9pY2VfQ1VaX2Z1dHVyZWludGVyYWN0IiwgIkNob2ljZV9TSUJfZnV0dXJlaW50ZXJhY3QiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSA5LCBmaWcuaGVpZ2h0ID0gNiwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCiMgcmV0dXJucyBoaXN0b2dyYW0gb2YgZGlmZmVyZW5jZXMgc2NvcmUgdmFyaWFibGUNCnByaW50KGhpc3QoRTJfRkxfY2xlYW4kQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWludGVyYWN0LCBicmVha3MgPSAxMDApKQ0KYGBgDQoNCg0KIyMgTW9yYWwgey50YWJzZXR9DQoNCiMjIyBBTk9WQXMgey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQojIHJldHVybnMgMiB4IDIgd2l0aGluLXN1YmplY3QgQU5PVkEgcmVzdWx0cw0KYW92X21vcmFsX1NMIDwtIGFvdihtb3JhbCB+IFJlbGF0aW9uKmBDaG9pY2UgQ29udGV4dGAgKyBFcnJvcihSZXNwb25zZUlkLyhSZWxhdGlvbipgQ2hvaWNlIENvbnRleHRgKSksIA0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lDQogICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikpDQpzdW1tYXJ5KGFvdl9tb3JhbF9TTCkNCg0KIyByZXR1cm5zIGV0YS1zcSBlZmZlY3Qgc2l6ZQ0KZWZmZWN0c2l6ZTo6ZXRhX3NxdWFyZWQoYW92X21vcmFsX1NMLCBwYXJ0aWFsID0gVFJVRSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQojIHJldHVybnMgMiB4IDIgd2l0aGluLXN1YmplY3QgQU5PVkEgcmVzdWx0cw0KYW92X21vcmFsX0ZMIDwtIGFvdihtb3JhbCB+IFJlbGF0aW9uKmBDaG9pY2UgQ29udGV4dGAgKyBFcnJvcihSZXNwb25zZUlkLyhSZWxhdGlvbipgQ2hvaWNlIENvbnRleHRgKSksIA0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lDQogICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpKQ0Kc3VtbWFyeShhb3ZfbW9yYWxfRkwpDQoNCiMgcmV0dXJucyBldGEtc3EgZWZmZWN0IHNpemUNCmVmZmVjdHNpemU6OmV0YV9zcXVhcmVkKGFvdl9tb3JhbF9GTCwgcGFydGlhbCA9IFRSVUUpDQpgYGANCg0KIyMjIHQtdGVzdHMgey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KG1vcmFsIH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKG1vcmFsIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgICAgICAgICAgICBwYWlyZWQgPSBULA0KICAgICAgICAgICAgICAgICB3aXRoaW4gPSBGKSAjIHNldHRpbmcgdGhpcyB0byBmYWxzZSBlbnN1cmVzIGR6IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIGRpZmZlcmVuY2Ugc2NvcmUNCg0KIyByZXR1cm5zIGQtYXYgZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQobW9yYWwgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVpfbW9yYWwiLCAiTm9DaG9pY2VfU0lCX21vcmFsIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX1NMX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX21vcmFsLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QobW9yYWwgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICBwYWlyZWQgPSBUKQ0KDQojIHJldHVybnMgZHogZWZmZWN0IHNpemUgYW5kIDk1JSBDSXMNCmVmZnNpemU6OmNvaGVuLmQobW9yYWwgfiBSZWxhdGlvbiB8IFN1YmplY3QoUmVzcG9uc2VJZCksDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiU3RyYW5nZXItTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIkNob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChtb3JhbCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9TTF9jbGVhbiwgIkNob2ljZV9DVVpfbW9yYWwiLCAiQ2hvaWNlX1NJQl9tb3JhbCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDksIGZpZy5oZWlnaHQgPSA2LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KIyByZXR1cm5zIGhpc3RvZ3JhbSBvZiBkaWZmZXJlbmNlcyBzY29yZSB2YXJpYWJsZQ0KcHJpbnQoaGlzdChFMl9TTF9jbGVhbiRDaG9pY2VfQ1VabWludXNTSUJfbW9yYWwsIGJyZWFrcyA9IDEwMCkpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgcmV0dXJucyB0LXRlc3QgcmVzdWx0cw0KdC50ZXN0KG1vcmFsIH4gUmVsYXRpb24sIA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiTm8gQ2hvaWNlIikgJT4lDQogICAgICAgICBkcm9wbGV2ZWxzKCksIA0KICAgICAgIHBhaXJlZCA9IFQpDQoNCiMgcmV0dXJucyBkeiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChtb3JhbCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IEYpICMgc2V0dGluZyB0aGlzIHRvIGZhbHNlIGVuc3VyZXMgZHogaXMgY2FsY3VsYXRlZCwgdXNpbmcgZGlmZmVyZW5jZSBzY29yZQ0KDQojIHJldHVybnMgZC1hdiBlZmZlY3Qgc2l6ZSBhbmQgOTUlIENJcw0KZWZmc2l6ZTo6Y29oZW4uZChtb3JhbCB+IFJlbGF0aW9uIHwgU3ViamVjdChSZXNwb25zZUlkKSwNCiAgICAgICBkYXRhID0gRTJfYWxsX2xvbmcgJT4lIA0KICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgICAgICAgICAgIHBhaXJlZCA9IFQsDQogICAgICAgICAgICAgICAgIHdpdGhpbiA9IFQpICMgc2V0dGluZyB0aGlzIHRvIHRydWUgZW5zdXJlcyBkLWF2IGlzIGNhbGN1bGF0ZWQsIHVzaW5nIHJhdyBzY29yZXMNCg0KIyByZXR1cm5zIGNvcnJlbGF0aW9uIGJldHdlZW4gdmFyaWFibGVzDQpjb3JfdGVzdChkYXRhID0gRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVpfbW9yYWwiLCAiTm9DaG9pY2VfU0lCX21vcmFsIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gOSwgZmlnLmhlaWdodCA9IDYsIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQojIHJldHVybnMgaGlzdG9ncmFtIG9mIGRpZmZlcmVuY2VzIHNjb3JlIHZhcmlhYmxlDQpwcmludChoaXN0KEUyX0ZMX2NsZWFuJE5vQ2hvaWNlX0NVWm1pbnVzU0lCX21vcmFsLCBicmVha3MgPSAxMDApKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyByZXR1cm5zIHQtdGVzdCByZXN1bHRzDQp0LnRlc3QobW9yYWwgfiBSZWxhdGlvbiwgDQogICAgICAgZGF0YSA9IEUyX2FsbF9sb25nICU+JSANCiAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSAlPiUNCiAgICAgICAgIGRyb3BsZXZlbHMoKSwgDQogICAgICAgcGFpcmVkID0gVCkNCg0KIyByZXR1cm5zIGR6IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKG1vcmFsIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gRikgIyBzZXR0aW5nIHRoaXMgdG8gZmFsc2UgZW5zdXJlcyBkeiBpcyBjYWxjdWxhdGVkLCB1c2luZyBkaWZmZXJlbmNlIHNjb3JlDQoNCiMgcmV0dXJucyBkLWF2IGVmZmVjdCBzaXplIGFuZCA5NSUgQ0lzDQplZmZzaXplOjpjb2hlbi5kKG1vcmFsIH4gUmVsYXRpb24gfCBTdWJqZWN0KFJlc3BvbnNlSWQpLA0KICAgICAgIGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUgDQogICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikgJT4lDQogICAgICAgICAgICAgICAgICAgZHJvcGxldmVscygpLCANCiAgICAgICAgICAgICAgICAgcGFpcmVkID0gVCwNCiAgICAgICAgICAgICAgICAgd2l0aGluID0gVCkgIyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBlbnN1cmVzIGQtYXYgaXMgY2FsY3VsYXRlZCwgdXNpbmcgcmF3IHNjb3Jlcw0KDQojIHJldHVybnMgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMNCmNvcl90ZXN0KGRhdGEgPSBFMl9GTF9jbGVhbiwgIkNob2ljZV9DVVpfbW9yYWwiLCAiQ2hvaWNlX1NJQl9tb3JhbCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDksIGZpZy5oZWlnaHQgPSA2LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KIyByZXR1cm5zIGhpc3RvZ3JhbSBvZiBkaWZmZXJlbmNlcyBzY29yZSB2YXJpYWJsZQ0KcHJpbnQoaGlzdChFMl9GTF9jbGVhbiRDaG9pY2VfQ1VabWludXNTSUJfbW9yYWwsIGJyZWFrcyA9IDEwMCkpDQpgYGANCg0KDQojIE1vcmFsIERpZmYgfiBPYmxpZyBEaWZmIFBsb3RzIHsudGFic2V0fSANCmBgYHtyfQ0KIyBDcmVhdGUgZGlmZmVyZW5jZSBzY29yZSBkYXRhc2V0cyBmb3IgcGxvdHRpbmcgb2YgZGlmZiBzY29yZSBjb3JyZWxhdGlvbnMNCg0KIyBTdHJhbmdlci1MaWtlDQpFMl9kaWZmX1NMX2NvbmRfbG9uZyA8LSBFMl9TTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKFNMX0Rpc3RfU2NlbiwgU0xfQ2xvc2VfU2NlbiksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJDb25kaXRpb24iDQogICkNCg0KRTJfZGlmZl9TTF9vYmxpZ19sb25nIDwtIEUyX1NMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWcsIENob2ljZV9DVVptaW51c1NJQl9vYmxpZyksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJvYmxpZyINCiAgKQ0KDQpFMl9kaWZmX1NMX3JlbGF0ZV9sb25nIDwtIEUyX1NMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VabWludXNTSUJfcmVsYXRlLCBDaG9pY2VfQ1VabWludXNTSUJfcmVsYXRlKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gInJlbGF0ZSINCiAgKQ0KDQpFMl9kaWZmX1NMX2Nsb3NlX2xvbmcgPC0gRTJfU0xfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVptaW51c1NJQl9jbG9zZSwgQ2hvaWNlX0NVWm1pbnVzU0lCX2Nsb3NlKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gImNsb3NlIg0KICApDQoNCkUyX2RpZmZfU0xfcHJpb3JoZWxwX2xvbmcgPC0gRTJfU0xfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVptaW51c1NJQl9wcmlvcmhlbHAsIENob2ljZV9DVVptaW51c1NJQl9wcmlvcmhlbHApLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAicHJpb3JoZWxwIg0KICApDQoNCkUyX2RpZmZfU0xfZnV0dXJlaGVscF9sb25nIDwtIEUyX1NMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaGVscCwgQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWhlbHApLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAiZnV0dXJlaGVscCINCiAgKQ0KDQpFMl9kaWZmX1NMX3ByaW9yaW50ZXJhY3RfbG9uZyA8LSBFMl9TTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaW50ZXJhY3QsIENob2ljZV9DVVptaW51c1NJQl9wcmlvcmludGVyYWN0KSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gInByaW9yaW50ZXJhY3QiDQogICkNCg0KRTJfZGlmZl9TTF9mdXR1cmVpbnRlcmFjdF9sb25nIDwtIEUyX1NMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaW50ZXJhY3QsIENob2ljZV9DVVptaW51c1NJQl9mdXR1cmVpbnRlcmFjdCksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJmdXR1cmVpbnRlcmFjdCINCiAgKQ0KDQpFMl9kaWZmX1NMX21vcmFsX2xvbmcgPC0gRTJfU0xfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVptaW51c1NJQl9tb3JhbCwgQ2hvaWNlX0NVWm1pbnVzU0lCX21vcmFsKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gIm1vcmFsIg0KICApDQoNCiMgQ29tYmluZSBsb25nIFNMIGRhdGFzZXRzLCBzZWxlY3QgcGxvdHRpbmcgdmFyaWFibGVzLCBhbmQgY3JlYXRlIGNvbmRpdGlvbiB2YXJpYWJsZSBmb3IgYENob2ljZSBDb250ZXh0YA0KRTJfZGlmZl9TTF9sb25nIDwtIGNiaW5kKEUyX2RpZmZfU0xfY29uZF9sb25nLCANCiAgICAgICAgICAgICAgICAgICAgICAgICBFMl9kaWZmX1NMX29ibGlnX2xvbmcsIA0KICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2RpZmZfU0xfcmVsYXRlX2xvbmcsIEUyX2RpZmZfU0xfY2xvc2VfbG9uZywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2RpZmZfU0xfcHJpb3JoZWxwX2xvbmcsIEUyX2RpZmZfU0xfZnV0dXJlaGVscF9sb25nLCANCiAgICAgICAgICAgICAgICAgICAgICAgICBFMl9kaWZmX1NMX3ByaW9yaW50ZXJhY3RfbG9uZywgRTJfZGlmZl9TTF9mdXR1cmVpbnRlcmFjdF9sb25nLA0KICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2RpZmZfU0xfbW9yYWxfbG9uZykNCkUyX2RpZmZfU0xfbG9uZyA8LSBFMl9kaWZmX1NMX2xvbmdbLCAhZHVwbGljYXRlZChjb2xuYW1lcyhFMl9kaWZmX1NMX2xvbmcpKV0gIyBnZXQgcmlkIG9mIGR1cGxpY2F0ZSBjb2x1bW5zDQoNCkUyX2RpZmZfU0xfbG9uZyA8LSBFMl9kaWZmX1NMX2xvbmcgJT4lDQogIHNlbGVjdChSZXNwb25zZUlkLA0KICAgICAgICAgQWdlOk9VU19JSCwNCiAgICAgICAgIEJTc19jb25kLA0KICAgICAgICAgV1NzX2NvbmQsDQogICAgICAgICBDb25kaXRpb24sDQogICAgICAgICBvYmxpZywgDQogICAgICAgICByZWxhdGUsIGNsb3NlLCANCiAgICAgICAgIHByaW9yaGVscCwgZnV0dXJlaGVscCwNCiAgICAgICAgIHByaW9yaW50ZXJhY3QsIGZ1dHVyZWludGVyYWN0LA0KICAgICAgICAgbW9yYWwpICU+JQ0KICBtdXRhdGUoYENob2ljZSBDb250ZXh0YCA9IGNhc2Vfd2hlbigNCiAgICBXU3NfY29uZCA9PSAiU0xfRGlzdF9TY2VuIiB+ICJObyBDaG9pY2UiLA0KICAgIFdTc19jb25kID09ICJTTF9DbG9zZV9TY2VuIiB+ICJDaG9pY2UiKSkNCg0KIyBSZW9yZGVyL3JlbmFtZSBjb25kaXRpb24sIGFuZCBwYXJ0aWNpcGFudCBmYWN0b3JzDQpFMl9kaWZmX1NMX2xvbmckYENob2ljZSBDb250ZXh0YCA8LSBhcy5mYWN0b3IoRTJfZGlmZl9TTF9sb25nJGBDaG9pY2UgQ29udGV4dGApDQpFMl9kaWZmX1NMX2xvbmckYENob2ljZSBDb250ZXh0YCA8LSBvcmRlcmVkKEUyX2RpZmZfU0xfbG9uZyRgQ2hvaWNlIENvbnRleHRgLCBsZXZlbHMgPSBjKCJObyBDaG9pY2UiLCAiQ2hvaWNlIikpDQpFMl9kaWZmX1NMX2xvbmckUmVzcG9uc2VJZCA8LSBhcy5mYWN0b3IoRTJfZGlmZl9TTF9sb25nJFJlc3BvbnNlSWQpDQoNCiMgRnJpZW5kLUxpa2UNCkUyX2RpZmZfRkxfY29uZF9sb25nIDwtIEUyX0ZMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoRkxfRGlzdF9TY2VuLCBGTF9DbG9zZV9TY2VuKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gIkNvbmRpdGlvbiINCiAgKQ0KDQpFMl9kaWZmX0ZMX29ibGlnX2xvbmcgPC0gRTJfRkxfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZywgQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnKSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gIm9ibGlnIg0KICApDQoNCkUyX2RpZmZfRkxfcmVsYXRlX2xvbmcgPC0gRTJfRkxfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVptaW51c1NJQl9yZWxhdGUsIENob2ljZV9DVVptaW51c1NJQl9yZWxhdGUpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAicmVsYXRlIg0KICApDQoNCkUyX2RpZmZfRkxfY2xvc2VfbG9uZyA8LSBFMl9GTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWm1pbnVzU0lCX2Nsb3NlLCBDaG9pY2VfQ1VabWludXNTSUJfY2xvc2UpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAiY2xvc2UiDQogICkNCg0KRTJfZGlmZl9GTF9wcmlvcmhlbHBfbG9uZyA8LSBFMl9GTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaGVscCwgQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaGVscCksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJwcmlvcmhlbHAiDQogICkNCg0KRTJfZGlmZl9GTF9mdXR1cmVoZWxwX2xvbmcgPC0gRTJfRkxfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVptaW51c1NJQl9mdXR1cmVoZWxwLCBDaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaGVscCksDQogICAgbmFtZXNfdG8gPSAiV1NzX2NvbmQiLA0KICAgIHZhbHVlc190byA9ICJmdXR1cmVoZWxwIg0KICApDQoNCkUyX2RpZmZfRkxfcHJpb3JpbnRlcmFjdF9sb25nIDwtIEUyX0ZMX2NsZWFuICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGMoTm9DaG9pY2VfQ1VabWludXNTSUJfcHJpb3JpbnRlcmFjdCwgQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaW50ZXJhY3QpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAicHJpb3JpbnRlcmFjdCINCiAgKQ0KDQpFMl9kaWZmX0ZMX2Z1dHVyZWludGVyYWN0X2xvbmcgPC0gRTJfRkxfY2xlYW4gJT4lDQogIHBpdm90X2xvbmdlcigNCiAgICBjb2xzID0gYyhOb0Nob2ljZV9DVVptaW51c1NJQl9mdXR1cmVpbnRlcmFjdCwgQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWludGVyYWN0KSwNCiAgICBuYW1lc190byA9ICJXU3NfY29uZCIsDQogICAgdmFsdWVzX3RvID0gImZ1dHVyZWludGVyYWN0Ig0KICApDQoNCkUyX2RpZmZfRkxfbW9yYWxfbG9uZyA8LSBFMl9GTF9jbGVhbiAlPiUNCiAgcGl2b3RfbG9uZ2VyKA0KICAgIGNvbHMgPSBjKE5vQ2hvaWNlX0NVWm1pbnVzU0lCX21vcmFsLCBDaG9pY2VfQ1VabWludXNTSUJfbW9yYWwpLA0KICAgIG5hbWVzX3RvID0gIldTc19jb25kIiwNCiAgICB2YWx1ZXNfdG8gPSAibW9yYWwiDQogICkNCg0KIyBDb21iaW5lIGxvbmcgU0wgZGF0YXNldHMsIHNlbGVjdCBwbG90dGluZyB2YXJpYWJsZXMsIGFuZCBjcmVhdGUgY29uZGl0aW9uIHZhcmlhYmxlIGZvciBgQ2hvaWNlIENvbnRleHRgDQpFMl9kaWZmX0ZMX2xvbmcgPC0gY2JpbmQoRTJfZGlmZl9GTF9jb25kX2xvbmcsIA0KICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2RpZmZfRkxfb2JsaWdfbG9uZywgDQogICAgICAgICAgICAgICAgICAgICAgICAgRTJfZGlmZl9GTF9yZWxhdGVfbG9uZywgRTJfZGlmZl9GTF9jbG9zZV9sb25nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRTJfZGlmZl9GTF9wcmlvcmhlbHBfbG9uZywgRTJfZGlmZl9GTF9mdXR1cmVoZWxwX2xvbmcsIA0KICAgICAgICAgICAgICAgICAgICAgICAgIEUyX2RpZmZfRkxfcHJpb3JpbnRlcmFjdF9sb25nLCBFMl9kaWZmX0ZMX2Z1dHVyZWludGVyYWN0X2xvbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgRTJfZGlmZl9GTF9tb3JhbF9sb25nKQ0KRTJfZGlmZl9GTF9sb25nIDwtIEUyX2RpZmZfRkxfbG9uZ1ssICFkdXBsaWNhdGVkKGNvbG5hbWVzKEUyX2RpZmZfRkxfbG9uZykpXSAjIGdldCByaWQgb2YgZHVwbGljYXRlIGNvbHVtbnMNCg0KRTJfZGlmZl9GTF9sb25nIDwtIEUyX2RpZmZfRkxfbG9uZyAlPiUNCiAgc2VsZWN0KFJlc3BvbnNlSWQsDQogICAgICAgICBBZ2U6T1VTX0lILA0KICAgICAgICAgQlNzX2NvbmQsDQogICAgICAgICBXU3NfY29uZCwNCiAgICAgICAgIENvbmRpdGlvbiwNCiAgICAgICAgIG9ibGlnLCANCiAgICAgICAgIHJlbGF0ZSwgY2xvc2UsIA0KICAgICAgICAgcHJpb3JoZWxwLCBmdXR1cmVoZWxwLA0KICAgICAgICAgcHJpb3JpbnRlcmFjdCwgZnV0dXJlaW50ZXJhY3QsDQogICAgICAgICBtb3JhbCkgJT4lDQogIG11dGF0ZShgQ2hvaWNlIENvbnRleHRgID0gY2FzZV93aGVuKA0KICAgIFdTc19jb25kID09ICJGTF9EaXN0X1NjZW4iIH4gIk5vIENob2ljZSIsDQogICAgV1NzX2NvbmQgPT0gIkZMX0Nsb3NlX1NjZW4iIH4gIkNob2ljZSIpKQ0KDQojIFJlb3JkZXIvcmVuYW1lIGNvbmRpdGlvbiwgYW5kIHBhcnRpY2lwYW50IGZhY3RvcnMNCkUyX2RpZmZfRkxfbG9uZyRgQ2hvaWNlIENvbnRleHRgIDwtIGFzLmZhY3RvcihFMl9kaWZmX0ZMX2xvbmckYENob2ljZSBDb250ZXh0YCkNCkUyX2RpZmZfRkxfbG9uZyRgQ2hvaWNlIENvbnRleHRgIDwtIG9yZGVyZWQoRTJfZGlmZl9GTF9sb25nJGBDaG9pY2UgQ29udGV4dGAsIGxldmVscyA9IGMoIk5vIENob2ljZSIsICJDaG9pY2UiKSkNCkUyX2RpZmZfRkxfbG9uZyRSZXNwb25zZUlkIDwtIGFzLmZhY3RvcihFMl9kaWZmX0ZMX2xvbmckUmVzcG9uc2VJZCkNCg0KDQojIENvbWJpbmUgaW50byBvbmUgZGF0YXNldCBmb3IgcGxvdHRpbmcNCkUyX2RpZmZfYWxsX2xvbmcgPC0gcmJpbmQoRTJfZGlmZl9TTF9sb25nLCBFMl9kaWZmX0ZMX2xvbmcpDQojIFJlb3JkZXIgQWxsX2xvbmcgQlNzX2NvbmQNCkUyX2RpZmZfYWxsX2xvbmckQlNzX2NvbmQgPC0gYXMuZmFjdG9yKEUyX2RpZmZfYWxsX2xvbmckQlNzX2NvbmQpDQpFMl9kaWZmX2FsbF9sb25nJEJTc19jb25kIDwtIG9yZGVyZWQoRTJfZGlmZl9hbGxfbG9uZyRCU3NfY29uZCwgbGV2ZWxzID0gYygiU3RyYW5nZXItTGlrZSIsICJGcmllbmQtTGlrZSIpKQ0KYGBgDQoNCiMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChvYmxpZ19tb3JhbF9kaWZmX3Bsb3RfU0wgPC0gZ2dwbG90KGRhdGEgPSBFMl9kaWZmX1NMX2xvbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBvYmxpZywgeSA9IG1vcmFsKSkgKw0KICAgICAgICBnZW9tX2ppdHRlcihjb2xvciA9ICJkYXJrb3JjaGlkMSIsIGFscGhhID0gMC41KSArDQogICAgICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICdsbScsIGNvbG9yID0gImRhcmtvcmNoaWQxIikgKw0KICAgICAgICBmYWNldF93cmFwKH5gQ2hvaWNlIENvbnRleHRgKSArDQogICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC0xMDEsMTAxKSwgYnJlYWtzID0gYygtMTAwLC01MCwwLDUwLDEwMCkpICsNCiAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEwMSwxMDEpLCBicmVha3MgPSBjKC0xMDAsLTUwLDAsNTAsMTAwKSkgKw0KICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICB4bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoIERpZmZlcmVuY2UgKERpc3RhbnQgLSBDbG9zZSkiKSArDQogICAgICAgIHlsYWIoIk1vcmFsIENoYXJhY3RlciBEaWZmZXJlbmNlIChEaXN0YW50IC0gQ2xvc2UpIikgKw0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMikpKQ0KYGBgDQojIyBGcmllbmQtTGlrZQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KG9ibGlnX21vcmFsX2RpZmZfcGxvdF9GTCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2RpZmZfRkxfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IG9ibGlnLCB5ID0gbW9yYWwpKSArDQogICAgICAgIGdlb21faml0dGVyKGNvbG9yID0gImRhcmtvcmNoaWQxIiwgYWxwaGEgPSAwLjUpICsNCiAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJywgY29sb3IgPSAiZGFya29yY2hpZDEiKSArDQogICAgICAgIGZhY2V0X3dyYXAofmBDaG9pY2UgQ29udGV4dGApICsNCiAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEwMSwxMDEpLCBicmVha3MgPSBjKC0xMDAsLTUwLDAsNTAsMTAwKSkgKw0KICAgICAgICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtMTAxLDEwMSksIGJyZWFrcyA9IGMoLTEwMCwtNTAsMCw1MCwxMDApKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIHhsYWIoIk9ibGlnYXRpb24gU3RyZW5ndGggRGlmZmVyZW5jZSAoRGlzdGFudCAtIENsb3NlKSIpICsNCiAgICAgICAgeWxhYigiTW9yYWwgQ2hhcmFjdGVyIERpZmZlcmVuY2UgKERpc3RhbnQgLSBDbG9zZSkiKSArDQogICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLCANCiAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwgDQogICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSkpDQpgYGANCiMjIENvbWJpbmVkDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQob2JsaWdfbW9yYWxfZGlmZl9wbG90X2NvbWJpbmVkIDwtIGdncGxvdChkYXRhID0gRTJfZGlmZl9hbGxfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IG9ibGlnLCB5ID0gbW9yYWwpKSArDQogICAgICAgIGdlb21faml0dGVyKGNvbG9yID0gImRhcmtvcmNoaWQxIiwgYWxwaGEgPSAwLjUpICsNCiAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJywgY29sb3IgPSAiZGFya29yY2hpZDEiKSArDQogICAgICAgIGZhY2V0X3dyYXAoQlNzX2NvbmR+YENob2ljZSBDb250ZXh0YCwgbnJvdyA9IDIpICsNCiAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEwMSwxMDEpLCBicmVha3MgPSBjKC0xMDAsLTUwLDAsNTAsMTAwKSkgKw0KICAgICAgICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtMTAxLDEwMSksIGJyZWFrcyA9IGMoLTEwMCwtNTAsMCw1MCwxMDApKSArDQogICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgIHhsYWIoIlxuT2JsaWdhdGlvbiBTdHJlbmd0aCBEaWZmZXJlbmNlIChEaXN0YW50IC0gQ2xvc2UpIikgKw0KICAgICAgICB5bGFiKCJNb3JhbCBDaGFyYWN0ZXIgRGlmZmVyZW5jZSAoRGlzdGFudCAtIENsb3NlKVxuIikgKw0KICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwgDQogICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksIA0KICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNikpKQ0KDQpnZ3NhdmUoIkUyX21vcmFsfm9ibGlnX3Bsb3QucG5nIikNCmBgYA0KDQoNCiMgTW9yYWwgRGlmZiB+IE9ibGlnIERpZmYgVGVzdHMgey50YWJzZXR9DQoNCjxicj4NCg0KU2VlIG91ciBwcmUtcmVnaXN0cmF0aW9uIChJTlNFUlQgTElOSykgYW5kIG1hbnVzY3JpcHQgZm9yIG91ciBwcmVkaWN0aW9ucyBhYm91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gb2JsaWdhdGlvbiBkaWZmZXJlbmNlcyBhbmQgbW9yYWwgY2hhcmFjdGVyIGRpZmZlcmVuY2VzLg0KDQo8YnI+DQoNCiMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9tb3JhbCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIENob2ljZQ0KYGBge3J9DQojIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsICJDaG9pY2VfQ1VabWludXNTSUJfbW9yYWwiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9tb3JhbCIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIENob2ljZQ0KYGBge3J9DQojIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsICJDaG9pY2VfQ1VabWludXNTSUJfbW9yYWwiLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KDQojIE1vcmFsIH4gT2JsaWcgUi1NIFBsb3RzIHsudGFic2V0fQ0KDQojIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCnJtY29ycl9TTF9Ob0Nob2ljZSA8LSBybWNvcnIocGFydGljaXBhbnQgPSBSZXNwb25zZUlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlMSA9IG9ibGlnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlMiA9IG1vcmFsLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhc2V0ID0gRTJfYWxsX2xvbmcgJT4lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSkNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KHJtY29ycl9wbG90X1NMX05vQ2hvaWNlIDwtIGdncGxvdChkYXRhID0gRTJfYWxsX2xvbmcgJT4lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gb2JsaWcsIHkgPSBtb3JhbCwgZ3JvdXAgPSBSZXNwb25zZUlkLCBjb2xvciA9IFJlc3BvbnNlSWQpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21fcG9pbnQoYWVzKGNvbG9yID0gUmVzcG9uc2VJZCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9saW5lKGFlcyh5ID0gcm1jb3JyX1NMX05vQ2hvaWNlJG1vZGVsJGZpdHRlZC52YWx1ZXMpLCBsaW5ldHlwZSA9IDEpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTUsMTA1KSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTUsMTA1KSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aCIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWxhYigiTW9yYWwgQ2hhcmFjdGVyIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikpDQpgYGANCiMjIyBDaG9pY2UNCmBgYHtyfQ0Kcm1jb3JyX1NMX0Nob2ljZSA8LSBybWNvcnIocGFydGljaXBhbnQgPSBSZXNwb25zZUlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlMSA9IG9ibGlnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlMiA9IG1vcmFsLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhc2V0ID0gRTJfYWxsX2xvbmcgJT4lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIlN0cmFuZ2VyLUxpa2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSkNCmBgYA0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KHJtY29ycl9wbG90X1NMX0Nob2ljZSA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nICU+JQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJTdHJhbmdlci1MaWtlIikgJT4lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IG9ibGlnLCB5ID0gbW9yYWwsIGdyb3VwID0gUmVzcG9uc2VJZCwgY29sb3IgPSBSZXNwb25zZUlkKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3BvaW50KGFlcyhjb2xvciA9IFJlc3BvbnNlSWQpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21fbGluZShhZXMoeSA9IHJtY29ycl9TTF9DaG9pY2UkbW9kZWwkZml0dGVkLnZhbHVlcyksIGxpbmV0eXBlID0gMSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygtNSwxMDUpLCBicmVha3MgPSBjKDAsMjUsNTAsNzUsMTAwKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtNSwxMDUpLCBicmVha3MgPSBjKDAsMjUsNTAsNzUsMTAwKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bGFiKCJNb3JhbCBDaGFyYWN0ZXIiKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDEyKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSkNCmBgYA0KDQojIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIE5vIENob2ljZQ0KYGBge3J9DQpybWNvcnJfRkxfTm9DaG9pY2UgPC0gcm1jb3JyKHBhcnRpY2lwYW50ID0gUmVzcG9uc2VJZCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZTEgPSBvYmxpZywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZTIgPSBtb3JhbCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXNldCA9IEUyX2FsbF9sb25nICU+JQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKEJTc19jb25kID09ICJGcmllbmQtTGlrZSIpICU+JQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGBDaG9pY2UgQ29udGV4dGAgPT0gIk5vIENob2ljZSIpKQ0KYGBgDQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQocm1jb3JyX3Bsb3RfRkxfTm9DaG9pY2UgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJObyBDaG9pY2UiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gb2JsaWcsIHkgPSBtb3JhbCwgZ3JvdXAgPSBSZXNwb25zZUlkLCBjb2xvciA9IFJlc3BvbnNlSWQpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21fcG9pbnQoYWVzKGNvbG9yID0gUmVzcG9uc2VJZCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9saW5lKGFlcyh5ID0gcm1jb3JyX0ZMX05vQ2hvaWNlJG1vZGVsJGZpdHRlZC52YWx1ZXMpLCBsaW5ldHlwZSA9IDEpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTUsMTA1KSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTUsMTA1KSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aCIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWxhYigiTW9yYWwgQ2hhcmFjdGVyIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikpDQpgYGANCiMjIyBDaG9pY2UNCmBgYHtyfQ0Kcm1jb3JyX0ZMX0Nob2ljZSA8LSBybWNvcnIocGFydGljaXBhbnQgPSBSZXNwb25zZUlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlMSA9IG9ibGlnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlMiA9IG1vcmFsLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhc2V0ID0gRTJfYWxsX2xvbmcgJT4lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoQlNzX2NvbmQgPT0gIkZyaWVuZC1MaWtlIikgJT4lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoYENob2ljZSBDb250ZXh0YCA9PSAiQ2hvaWNlIikpDQpgYGANCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChybWNvcnJfcGxvdF9GTF9DaG9pY2UgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZyAlPiUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihCU3NfY29uZCA9PSAiRnJpZW5kLUxpa2UiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihgQ2hvaWNlIENvbnRleHRgID09ICJDaG9pY2UiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gb2JsaWcsIHkgPSBtb3JhbCwgZ3JvdXAgPSBSZXNwb25zZUlkLCBjb2xvciA9IFJlc3BvbnNlSWQpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21fcG9pbnQoYWVzKGNvbG9yID0gUmVzcG9uc2VJZCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9saW5lKGFlcyh5ID0gcm1jb3JyX0ZMX0Nob2ljZSRtb2RlbCRmaXR0ZWQudmFsdWVzKSwgbGluZXR5cGUgPSAxKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC01LDEwNSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC01LDEwNSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsYWIoIk9ibGlnYXRpb24gU3RyZW5ndGgiKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlsYWIoIk1vcmFsIENoYXJhY3RlciIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpKQ0KYGBgDQoNCg0KIyBNb3JhbCB+IE9ibGlnIFItTSBUZXN0cyB7LnRhYnNldH0NCg0KPGJyPg0KDQpTZWUgb3VyIHByZS1yZWdpc3RyYXRpb24gKElOU0VSVCBMSU5LKSBmb3Igb3VyIHByZWRpY3Rpb25zIGFib3V0IHRoZSB3aXRoaW4taW5kaXZpZHVhbCByZWxhdGlvbnNoaXAgYmV0d2VlbiBvYmxpZ2F0aW9uIGp1ZGdtZW50cyBhbmQgbW9yYWwgY2hhcmFjdGVyIGp1ZGdtZW50cy4NCg0KPGJyPg0KDQojIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCnByaW50KHJtY29ycl9TTF9Ob0Nob2ljZSkNCmBgYA0KIyMjIENob2ljZQ0KYGBge3J9DQpwcmludChybWNvcnJfU0xfQ2hvaWNlKQ0KYGBgDQoNCiMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCnByaW50KHJtY29ycl9GTF9Ob0Nob2ljZSkNCmBgYA0KIyMjIENob2ljZQ0KYGBge3J9DQpwcmludChybWNvcnJfRkxfQ2hvaWNlKQ0KYGBgDQoNCg0KIyBJbmQuIERpZmYgSW50ZXJuYWwgUmVsaWFiaWxpdHkgVGVzdHMgey50YWJzZXR9DQoNCiMjIE1BQyB7LnRhYnNldH0NCg0KIyMjIEZhbWlseSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlDQpgYGB7cn0NCiMgY3JlYXRlIGRhdGFzZXQgd2l0aCBvbmx5IE1BQyBGYW1pbHkgVmFsdWVzIHZhcmlhYmxlcw0KRTJfU0xfY2xlYW5fTUFDX0ZhbV9vbmx5IDwtIEUyX1NMX2NsZWFuICU+JSBzZWxlY3QoTUFDX0p1ZF8xOk1BQ19KdWRfMywgTUFDX1JlbF8xOk1BQ19SZWxfMykNCg0KcHN5Y2g6OmFscGhhKEUyX1NMX2NsZWFuX01BQ19GYW1fb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQojIGNyZWF0ZSBkYXRhc2V0IHdpdGggb25seSBNQUMgRmFtaWx5IFZhbHVlcyB2YXJpYWJsZXMNCkUyX0ZMX2NsZWFuX01BQ19GYW1fb25seSA8LSBFMl9GTF9jbGVhbiAlPiUgc2VsZWN0KE1BQ19KdWRfMTpNQUNfSnVkXzMsIE1BQ19SZWxfMTpNQUNfUmVsXzMpDQoNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9NQUNfRmFtX29ubHkpDQpgYGANCg0KIyMjIEdyb3VwIHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KIyBjcmVhdGUgZGF0YXNldCB3aXRoIG9ubHkgTUFDIEdyb3VwaWx5IFZhbHVlcyB2YXJpYWJsZXMNCkUyX1NMX2NsZWFuX01BQ19Hcm91cF9vbmx5IDwtIEUyX1NMX2NsZWFuICU+JSBzZWxlY3QoTUFDX0p1ZF80Ok1BQ19KdWRfNiwgTUFDX1JlbF80Ok1BQ19SZWxfNikNCg0KcHN5Y2g6OmFscGhhKEUyX1NMX2NsZWFuX01BQ19Hcm91cF9vbmx5KQ0KYGBgDQojIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCiMgY3JlYXRlIGRhdGFzZXQgd2l0aCBvbmx5IE1BQyBHcm91cGlseSBWYWx1ZXMgdmFyaWFibGVzDQpFMl9GTF9jbGVhbl9NQUNfR3JvdXBfb25seSA8LSBFMl9GTF9jbGVhbiAlPiUgc2VsZWN0KE1BQ19KdWRfNDpNQUNfSnVkXzYsIE1BQ19SZWxfNDpNQUNfUmVsXzYpDQoNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9NQUNfR3JvdXBfb25seSkNCmBgYA0KDQojIyMgUmVjaXByb2NpdHkgey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQojIGNyZWF0ZSBkYXRhc2V0IHdpdGggb25seSBNQUMgUmVjaWx5IFZhbHVlcyB2YXJpYWJsZXMNCkUyX1NMX2NsZWFuX01BQ19SZWNfb25seSA8LSBFMl9TTF9jbGVhbiAlPiUgc2VsZWN0KE1BQ19KdWRfNzpNQUNfSnVkXzksIE1BQ19SZWxfNzpNQUNfUmVsXzkpDQoNCnBzeWNoOjphbHBoYShFMl9TTF9jbGVhbl9NQUNfUmVjX29ubHkpDQpgYGANCiMjIyMgRnJpZW5kLUxpa2UNCmBgYHtyfQ0KIyBjcmVhdGUgZGF0YXNldCB3aXRoIG9ubHkgTUFDIFJlY2lseSBWYWx1ZXMgdmFyaWFibGVzDQpFMl9GTF9jbGVhbl9NQUNfUmVjX29ubHkgPC0gRTJfRkxfY2xlYW4gJT4lIHNlbGVjdChNQUNfSnVkXzc6TUFDX0p1ZF85LCBNQUNfUmVsXzc6TUFDX1JlbF85KQ0KDQpwc3ljaDo6YWxwaGEoRTJfRkxfY2xlYW5fTUFDX1JlY19vbmx5KQ0KYGBgDQoNCiMjIyBIZXJvaXNtIHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KIyBjcmVhdGUgZGF0YXNldCB3aXRoIG9ubHkgTUFDIEhlcm9pbHkgVmFsdWVzIHZhcmlhYmxlcw0KRTJfU0xfY2xlYW5fTUFDX0hlcm9fb25seSA8LSBFMl9TTF9jbGVhbiAlPiUgc2VsZWN0KE1BQ19KdWRfMTA6TUFDX0p1ZF8xMiwgTUFDX1JlbF8xMDpNQUNfUmVsXzEyKQ0KDQpwc3ljaDo6YWxwaGEoRTJfU0xfY2xlYW5fTUFDX0hlcm9fb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQojIGNyZWF0ZSBkYXRhc2V0IHdpdGggb25seSBNQUMgSGVyb2lseSBWYWx1ZXMgdmFyaWFibGVzDQpFMl9GTF9jbGVhbl9NQUNfSGVyb19vbmx5IDwtIEUyX0ZMX2NsZWFuICU+JSBzZWxlY3QoTUFDX0p1ZF8xMDpNQUNfSnVkXzEyLCBNQUNfUmVsXzEwOk1BQ19SZWxfMTIpDQoNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9NQUNfSGVyb19vbmx5KQ0KYGBgDQoNCiMjIyBBdXRob3JpdHkgey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQojIGNyZWF0ZSBkYXRhc2V0IHdpdGggb25seSBNQUMgQXV0aGlseSBWYWx1ZXMgdmFyaWFibGVzDQpFMl9TTF9jbGVhbl9NQUNfQXV0aF9vbmx5IDwtIEUyX1NMX2NsZWFuICU+JSBzZWxlY3QoTUFDX0p1ZF8xMzpNQUNfSnVkXzE1LCBNQUNfUmVsXzEzOk1BQ19SZWxfMTUpDQoNCnBzeWNoOjphbHBoYShFMl9TTF9jbGVhbl9NQUNfQXV0aF9vbmx5KQ0KYGBgDQojIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCiMgY3JlYXRlIGRhdGFzZXQgd2l0aCBvbmx5IE1BQyBBdXRoaWx5IFZhbHVlcyB2YXJpYWJsZXMNCkUyX0ZMX2NsZWFuX01BQ19BdXRoX29ubHkgPC0gRTJfRkxfY2xlYW4gJT4lIHNlbGVjdChNQUNfSnVkXzEzOk1BQ19KdWRfMTUsIE1BQ19SZWxfMTM6TUFDX1JlbF8xNSkNCg0KcHN5Y2g6OmFscGhhKEUyX0ZMX2NsZWFuX01BQ19BdXRoX29ubHkpDQpgYGANCg0KIyMjIEZhaXJuZXNzIHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KIyBjcmVhdGUgZGF0YXNldCB3aXRoIG9ubHkgTUFDIEZhaXJpbHkgVmFsdWVzIHZhcmlhYmxlcw0KRTJfU0xfY2xlYW5fTUFDX0ZhaXJfb25seSA8LSBFMl9TTF9jbGVhbiAlPiUgc2VsZWN0KE1BQ19KdWRfMTY6TUFDX0p1ZF8xOCwgTUFDX1JlbF8xNjpNQUNfUmVsXzE4KQ0KDQpwc3ljaDo6YWxwaGEoRTJfU0xfY2xlYW5fTUFDX0ZhaXJfb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQojIGNyZWF0ZSBkYXRhc2V0IHdpdGggb25seSBNQUMgRmFpcmlseSBWYWx1ZXMgdmFyaWFibGVzDQpFMl9GTF9jbGVhbl9NQUNfRmFpcl9vbmx5IDwtIEUyX0ZMX2NsZWFuICU+JSBzZWxlY3QoTUFDX0p1ZF8xNjpNQUNfSnVkXzE4LCBNQUNfUmVsXzE2Ok1BQ19SZWxfMTgpDQoNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9NQUNfRmFpcl9vbmx5KQ0KYGBgDQoNCiMjIyBQcm9wZXJ0eSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlDQpgYGB7cn0NCiMgY3JlYXRlIGRhdGFzZXQgd2l0aCBvbmx5IE1BQyBQcm9waWx5IFZhbHVlcyB2YXJpYWJsZXMNCkUyX1NMX2NsZWFuX01BQ19Qcm9wX29ubHkgPC0gRTJfU0xfY2xlYW4gJT4lIHNlbGVjdChNQUNfSnVkXzE5X3I6TUFDX0p1ZF8yMV9yLCBNQUNfUmVsXzE5Ok1BQ19SZWxfMjEpDQoNCnBzeWNoOjphbHBoYShFMl9TTF9jbGVhbl9NQUNfUHJvcF9vbmx5KQ0KYGBgDQojIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCiMgY3JlYXRlIGRhdGFzZXQgd2l0aCBvbmx5IE1BQyBQcm9waWx5IFZhbHVlcyB2YXJpYWJsZXMNCkUyX0ZMX2NsZWFuX01BQ19Qcm9wX29ubHkgPC0gRTJfRkxfY2xlYW4gJT4lIHNlbGVjdChNQUNfSnVkXzE5X3I6TUFDX0p1ZF8yMV9yLCBNQUNfUmVsXzE5Ok1BQ19SZWxfMjEpDQoNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9NQUNfUHJvcF9vbmx5KQ0KYGBgDQoNCiMjIE1GVCB7LnRhYnNldH0NCg0KIyMjIEhhcm0gey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQpFMl9TTF9jbGVhbl9NRlFfSGFybV9vbmx5IDwtIEUyX1NMX2NsZWFuICU+JSBzZWxlY3QoTUZRX0p1ZF8xOk1GUV9KdWRfMywgTUZRX1JlbF8xOk1GUV9SZWxfMykNCnBzeWNoOjphbHBoYShFMl9TTF9jbGVhbl9NRlFfSGFybV9vbmx5KQ0KYGBgDQojIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCkUyX0ZMX2NsZWFuX01GUV9IYXJtX29ubHkgPC0gRTJfRkxfY2xlYW4gJT4lIHNlbGVjdChNRlFfSnVkXzE6TUZRX0p1ZF8zLCBNRlFfUmVsXzE6TUZRX1JlbF8zKQ0KcHN5Y2g6OmFscGhhKEUyX0ZMX2NsZWFuX01GUV9IYXJtX29ubHkpDQpgYGANCg0KIyMjIEZhaXJuZXNzIHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KRTJfU0xfY2xlYW5fTUZRX0ZhaXJfb25seSA8LSBFMl9TTF9jbGVhbiAlPiUgc2VsZWN0KE1GUV9KdWRfNDpNRlFfSnVkXzYsIE1GUV9SZWxfNDpNRlFfUmVsXzYpDQpwc3ljaDo6YWxwaGEoRTJfU0xfY2xlYW5fTUZRX0ZhaXJfb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpFMl9GTF9jbGVhbl9NRlFfRmFpcl9vbmx5IDwtIEUyX0ZMX2NsZWFuICU+JSBzZWxlY3QoTUZRX0p1ZF80Ok1GUV9KdWRfNiwgTUZRX1JlbF80Ok1GUV9SZWxfNikNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9NRlFfRmFpcl9vbmx5KQ0KYGBgDQoNCiMjIyBMb3lhbHR5IHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KRTJfU0xfY2xlYW5fTUZRX0xveWFsdHlfb25seSA8LSBFMl9TTF9jbGVhbiAlPiUgc2VsZWN0KE1GUV9KdWRfNzpNRlFfSnVkXzksIE1GUV9SZWxfNzpNRlFfUmVsXzkpDQpwc3ljaDo6YWxwaGEoRTJfU0xfY2xlYW5fTUZRX0xveWFsdHlfb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpFMl9GTF9jbGVhbl9NRlFfTG95YWx0eV9vbmx5IDwtIEUyX0ZMX2NsZWFuICU+JSBzZWxlY3QoTUZRX0p1ZF83Ok1GUV9KdWRfOSwgTUZRX1JlbF83Ok1GUV9SZWxfOSkNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9NRlFfTG95YWx0eV9vbmx5KQ0KYGBgDQoNCiMjIyBBdXRob3JpdHkgey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQpFMl9TTF9jbGVhbl9NRlFfQXV0aF9vbmx5IDwtIEUyX1NMX2NsZWFuICU+JSBzZWxlY3QoTUZRX0p1ZF8xMDpNRlFfSnVkXzEyLCBNRlFfUmVsXzEwOk1GUV9SZWxfMTIpDQpwc3ljaDo6YWxwaGEoRTJfU0xfY2xlYW5fTUZRX0F1dGhfb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpFMl9GTF9jbGVhbl9NRlFfQXV0aF9vbmx5IDwtIEUyX0ZMX2NsZWFuICU+JSBzZWxlY3QoTUZRX0p1ZF8xMDpNRlFfSnVkXzEyLCBNRlFfUmVsXzEwOk1GUV9SZWxfMTIpDQpwc3ljaDo6YWxwaGEoRTJfRkxfY2xlYW5fTUZRX0F1dGhfb25seSkNCmBgYA0KDQojIyMgUHVyaXR5IHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2UNCmBgYHtyfQ0KRTJfU0xfY2xlYW5fTUZRX1B1cml0eV9vbmx5IDwtIEUyX1NMX2NsZWFuICU+JSBzZWxlY3QoTUZRX0p1ZF8xMzpNRlFfSnVkXzE1LCBNRlFfUmVsXzEzOk1GUV9SZWxfMTUpDQpwc3ljaDo6YWxwaGEoRTJfU0xfY2xlYW5fTUZRX1B1cml0eV9vbmx5KQ0KYGBgDQojIyMjIEZyaWVuZC1MaWtlDQpgYGB7cn0NCkUyX0ZMX2NsZWFuX01GUV9QdXJpdHlfb25seSA8LSBFMl9GTF9jbGVhbiAlPiUgc2VsZWN0KE1GUV9KdWRfMTM6TUZRX0p1ZF8xNSwgTUZRX1JlbF8xMzpNRlFfUmVsXzE1KQ0KcHN5Y2g6OmFscGhhKEUyX0ZMX2NsZWFuX01GUV9QdXJpdHlfb25seSkNCmBgYA0KDQojIyBPVVMgey50YWJzZXR9DQoNCiMjIyBJbXBhcnRpYWwgQmVuZWZpY2VuY2Ugey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQpFMl9TTF9jbGVhbl9PVVNfSUJfb25seSA8LSBFMl9TTF9jbGVhbiAlPiUgc2VsZWN0KE9VU19JQjE6T1VTX0lCNSkNCnBzeWNoOjphbHBoYShFMl9TTF9jbGVhbl9PVVNfSUJfb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpFMl9GTF9jbGVhbl9PVVNfSUJfb25seSA8LSBFMl9GTF9jbGVhbiAlPiUgc2VsZWN0KE9VU19JQjE6T1VTX0lCNSkNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9PVVNfSUJfb25seSkNCmBgYA0KDQojIyMgSW5zdHJ1bWVudGFsIEhhcm0gey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZQ0KYGBge3J9DQpFMl9TTF9jbGVhbl9PVVNfSUhfb25seSA8LSBFMl9TTF9jbGVhbiAlPiUgc2VsZWN0KE9VU19JSDE6T1VTX0lINCkNCnBzeWNoOjphbHBoYShFMl9TTF9jbGVhbl9PVVNfSUhfb25seSkNCmBgYA0KIyMjIyBGcmllbmQtTGlrZQ0KYGBge3J9DQpFMl9GTF9jbGVhbl9PVVNfSUhfb25seSA8LSBFMl9GTF9jbGVhbiAlPiUgc2VsZWN0KE9VU19JSDE6T1VTX0lINCkNCnBzeWNoOjphbHBoYShFMl9GTF9jbGVhbl9PVVNfSUhfb25seSkNCmBgYA0KDQoNCiMgT2JsaWcgfiBJbmQuIERpZmYgUGxvdHMgey50YWJzZXR9DQoNCiMjIE1BQyB7LnRhYnNldH0NCg0KIyMjIEZhbWlseSB7LnRhYnNldH0NCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChvYmxpZ19tYWNfRmFtX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IE1BQ19GYW1fQ29tYmluZWQsIHkgPSBvYmxpZywgY29sb3IgPSBSZWxhdGlvbikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9qaXR0ZXIoYWVzKGNvbG9yID0gUmVsYXRpb24pLCBhbHBoYSA9IDAuNSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJykgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldF93cmFwKEJTc19jb25kfmBDaG9pY2UgQ29udGV4dGAsIG5jb2wgPSAyKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsYWIoIlxuTUFDIEZhbWlseSBDb21wb3NpdGUiKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlsYWIoIk9ibGlnYXRpb24gU3RyZW5ndGhcbiIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KZ2dzYXZlKCJFMl9vYmxpZ35NQUNfcGxvdC5wbmciKQ0KYGBgDQojIyMgR3JvdXAgey50YWJzZXR9DQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQob2JsaWdfbWFjX0dyb3VwX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IE1BQ19Hcm91cF9Db21iaW5lZCwgeSA9IG9ibGlnLCBjb2xvciA9IFJlbGF0aW9uKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX2ppdHRlcihhZXMoY29sb3IgPSBSZWxhdGlvbiksIGFscGhhID0gMC41KSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3Ntb290aChtZXRob2QgPSAnbG0nKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0X3dyYXAoQlNzX2NvbmR+YENob2ljZSBDb250ZXh0YCwgbmNvbCA9IDIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiXG5NQUMgR3JvdXAgQ29tcG9zaXRlIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoXG4iKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmBgYA0KIyMjIFJlY2lwcm9jaXR5IHsudGFic2V0fQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KG9ibGlnX21hY19SZWNfcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gTUFDX1JlY19Db21iaW5lZCwgeSA9IG9ibGlnLCBjb2xvciA9IFJlbGF0aW9uKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX2ppdHRlcihhZXMoY29sb3IgPSBSZWxhdGlvbiksIGFscGhhID0gMC41KSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3Ntb290aChtZXRob2QgPSAnbG0nKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0X3dyYXAoQlNzX2NvbmR+YENob2ljZSBDb250ZXh0YCwgbmNvbCA9IDIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiXG5NQUMgUmVjaXByb2NpdHkgQ29tcG9zaXRlIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoXG4iKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmBgYA0KIyMjIEhlcm9pc20gey50YWJzZXR9DQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQob2JsaWdfbWFjX0hlcm9fcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gTUFDX0hlcm9fQ29tYmluZWQsIHkgPSBvYmxpZywgY29sb3IgPSBSZWxhdGlvbikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9qaXR0ZXIoYWVzKGNvbG9yID0gUmVsYXRpb24pLCBhbHBoYSA9IDAuNSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJykgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldF93cmFwKEJTc19jb25kfmBDaG9pY2UgQ29udGV4dGAsIG5jb2wgPSAyKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsYWIoIlxuTUFDIEhlcm9pc20gQ29tcG9zaXRlIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoXG4iKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmBgYA0KIyMjIEF1dGhvcml0eSB7LnRhYnNldH0NCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChvYmxpZ19tYWNfQXV0aF9wbG90IDwtIGdncGxvdChkYXRhID0gRTJfYWxsX2xvbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBNQUNfRGVmX0NvbWJpbmVkLCB5ID0gb2JsaWcsIGNvbG9yID0gUmVsYXRpb24pKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21faml0dGVyKGFlcyhjb2xvciA9IFJlbGF0aW9uKSwgYWxwaGEgPSAwLjUpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICdsbScpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjZXRfd3JhcChCU3NfY29uZH5gQ2hvaWNlIENvbnRleHRgLCBuY29sID0gMikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygtMSwxMDEpLCBicmVha3MgPSBjKDAsMjUsNTAsNzUsMTAwKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtMSwxMDEpLCBicmVha3MgPSBjKDAsMjUsNTAsNzUsMTAwKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bGFiKCJcbk1BQyBBdXRob3JpdHkgQ29tcG9zaXRlIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoXG4iKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmBgYA0KIyMjIEZhaXJuZXNzIHsudGFic2V0fQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KG9ibGlnX21hY19GYWlyX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IE1BQ19GYWlyX0NvbWJpbmVkLCB5ID0gb2JsaWcsIGNvbG9yID0gUmVsYXRpb24pKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21faml0dGVyKGFlcyhjb2xvciA9IFJlbGF0aW9uKSwgYWxwaGEgPSAwLjUpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICdsbScpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjZXRfd3JhcChCU3NfY29uZH5gQ2hvaWNlIENvbnRleHRgLCBuY29sID0gMikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygtMSwxMDEpLCBicmVha3MgPSBjKDAsMjUsNTAsNzUsMTAwKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtMSwxMDEpLCBicmVha3MgPSBjKDAsMjUsNTAsNzUsMTAwKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZV9jbGFzc2ljKCkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bGFiKCJcbk1BQyBGYWlybmVzcyBDb21wb3NpdGUiKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlsYWIoIk9ibGlnYXRpb24gU3RyZW5ndGhcbiIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KYGBgDQojIyMgUHJvcGVydHkgey50YWJzZXR9DQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQob2JsaWdfbWFjX1Byb3BfcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gTUFDX1Byb3BfQ29tYmluZWQsIHkgPSBvYmxpZywgY29sb3IgPSBSZWxhdGlvbikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9qaXR0ZXIoYWVzKGNvbG9yID0gUmVsYXRpb24pLCBhbHBoYSA9IDAuNSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJykgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldF93cmFwKEJTc19jb25kfmBDaG9pY2UgQ29udGV4dGAsIG5jb2wgPSAyKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsYWIoIlxuTUFDIFByb3BlcnR5IENvbXBvc2l0ZSIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aFxuIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNikpKQ0KDQpgYGANCg0KIyMgTUZUIHsudGFic2V0fQ0KDQojIyMgSGFybSB7LnRhYnNldH0NCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChvYmxpZ19tZnRfSGFybV9wbG90IDwtIGdncGxvdChkYXRhID0gRTJfYWxsX2xvbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBNRlFfSGFybV9Db21iaW5lZCwgeSA9IG9ibGlnLCBjb2xvciA9IFJlbGF0aW9uKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX2ppdHRlcihhZXMoY29sb3IgPSBSZWxhdGlvbiksIGFscGhhID0gMC41KSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3Ntb290aChtZXRob2QgPSAnbG0nKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0X3dyYXAoQlNzX2NvbmR+YENob2ljZSBDb250ZXh0YCwgbmNvbCA9IDIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLjUsNi41KSwgYnJlYWtzID0gYygxLDIsMyw0LDUsNikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiXG5NRlQgSGFybSBDb21wb3NpdGUiKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlsYWIoIk9ibGlnYXRpb24gU3RyZW5ndGhcbiIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KYGBgDQojIyMgRmFpcm5lc3Mgey50YWJzZXR9DQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQob2JsaWdfbWZ0X0ZhaXJuZXNzX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IE1GUV9GYWlybmVzc19Db21iaW5lZCwgeSA9IG9ibGlnLCBjb2xvciA9IFJlbGF0aW9uKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX2ppdHRlcihhZXMoY29sb3IgPSBSZWxhdGlvbiksIGFscGhhID0gMC41KSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3Ntb290aChtZXRob2QgPSAnbG0nKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0X3dyYXAoQlNzX2NvbmR+YENob2ljZSBDb250ZXh0YCwgbmNvbCA9IDIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLjUsNi41KSwgYnJlYWtzID0gYygxLDIsMyw0LDUsNikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiXG5NRlQgRmFpcm5lc3MgQ29tcG9zaXRlIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoXG4iKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmBgYA0KIyMjIExveWFsdHkgey50YWJzZXR9DQpgYGB7ciwgZmlnLndpZHRoID0gMTQsIGZpZy5oZWlnaHQgPSA5LCBvdXQud2lkdGggPSAiNzUlIiwgb3V0LmhlaWdodCA9ICI3NSUifQ0KcHJpbnQob2JsaWdfbWZ0X0xveWFsdHlfcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gTUZRX0xveWFsdHlfQ29tYmluZWQsIHkgPSBvYmxpZywgY29sb3IgPSBSZWxhdGlvbikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9qaXR0ZXIoYWVzKGNvbG9yID0gUmVsYXRpb24pLCBhbHBoYSA9IDAuNSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJykgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldF93cmFwKEJTc19jb25kfmBDaG9pY2UgQ29udGV4dGAsIG5jb2wgPSAyKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC41LDYuNSksIGJyZWFrcyA9IGMoMSwyLDMsNCw1LDYpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsYWIoIlxuTUZUIExveWFsdHkgQ29tcG9zaXRlIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bGFiKCJPYmxpZ2F0aW9uIFN0cmVuZ3RoXG4iKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUoYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSkpDQoNCmdnc2F2ZSgiRTJfb2JsaWd+TUZUX3Bsb3QucG5nIikNCmBgYA0KIyMjIEF1dGhvcml0eSB7LnRhYnNldH0NCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChvYmxpZ19tZnRfQXV0aG9yaXR5X3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSBFMl9hbGxfbG9uZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IE1GUV9BdXRob3JpdHlfQ29tYmluZWQsIHkgPSBvYmxpZywgY29sb3IgPSBSZWxhdGlvbikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9qaXR0ZXIoYWVzKGNvbG9yID0gUmVsYXRpb24pLCBhbHBoYSA9IDAuNSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJykgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldF93cmFwKEJTc19jb25kfmBDaG9pY2UgQ29udGV4dGAsIG5jb2wgPSAyKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC41LDYuNSksIGJyZWFrcyA9IGMoMSwyLDMsNCw1LDYpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsYWIoIlxuTUZUIEF1dGhvcml0eSBDb21wb3NpdGUiKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlsYWIoIk9ibGlnYXRpb24gU3RyZW5ndGhcbiIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxOCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpKSkNCg0KYGBgDQojIyMgUHVyaXR5IHsudGFic2V0fQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KG9ibGlnX21mdF9QdXJpdHlfcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gTUZRX1B1cml0eV9Db21iaW5lZCwgeSA9IG9ibGlnLCBjb2xvciA9IFJlbGF0aW9uKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX2ppdHRlcihhZXMoY29sb3IgPSBSZWxhdGlvbiksIGFscGhhID0gMC41KSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJsaWdodHNreWJsdWUzIiwgImluZGlhbnJlZDMiKSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3Ntb290aChtZXRob2QgPSAnbG0nKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0X3dyYXAoQlNzX2NvbmR+YENob2ljZSBDb250ZXh0YCwgbmNvbCA9IDIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLjUsNi41KSwgYnJlYWtzID0gYygxLDIsMyw0LDUsNikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiXG5NRlQgUHVyaXR5IENvbXBvc2l0ZSIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aFxuIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNikpKQ0KDQpgYGANCg0KIyMgT1VTIHsudGFic2V0fQ0KDQojIyMgSW1wYXJ0aWFsIEJlbmVmaWNlbmNlIHsudGFic2V0fQ0KYGBge3IsIGZpZy53aWR0aCA9IDE0LCBmaWcuaGVpZ2h0ID0gOSwgb3V0LndpZHRoID0gIjc1JSIsIG91dC5oZWlnaHQgPSAiNzUlIn0NCnByaW50KG9ibGlnX291c19pYl9wbG90IDwtIGdncGxvdChkYXRhID0gRTJfYWxsX2xvbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBPVVNfSUIsIHkgPSBvYmxpZywgY29sb3IgPSBSZWxhdGlvbikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9qaXR0ZXIoYWVzKGNvbG9yID0gUmVsYXRpb24pLCBhbHBoYSA9IDAuNSkgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygibGlnaHRza3libHVlMyIsICJpbmRpYW5yZWQzIikpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gJ2xtJykgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldF93cmFwKEJTc19jb25kfmBDaG9pY2UgQ29udGV4dGAsIG5jb2wgPSAyKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC41LDcuNSksIGJyZWFrcyA9IGMoMSwyLDMsNCw1LDYsNykpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsMTAxKSwgYnJlYWtzID0gYygwLDI1LDUwLDc1LDEwMCkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfY2xhc3NpYygpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYigiXG5PVVMgSW1wYXJ0aWFsIEJlbmVmaWNlbmNlIENvbXBvc2l0ZSIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aFxuIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNikpKQ0KDQpnZ3NhdmUoIkUyX29ibGlnfk9VU19wbG90LnBuZyIpDQpgYGANCiMjIyBJbnN0cnVtZW50YWwgSGFybSB7LnRhYnNldH0NCmBgYHtyLCBmaWcud2lkdGggPSAxNCwgZmlnLmhlaWdodCA9IDksIG91dC53aWR0aCA9ICI3NSUiLCBvdXQuaGVpZ2h0ID0gIjc1JSJ9DQpwcmludChvYmxpZ19vdXNfaWhfcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IEUyX2FsbF9sb25nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gT1VTX0lILCB5ID0gb2JsaWcsIGNvbG9yID0gUmVsYXRpb24pKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21faml0dGVyKGFlcyhjb2xvciA9IFJlbGF0aW9uKSwgYWxwaGEgPSAwLjUpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoImxpZ2h0c2t5Ymx1ZTMiLCAiaW5kaWFucmVkMyIpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICdsbScpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjZXRfd3JhcChCU3NfY29uZH5gQ2hvaWNlIENvbnRleHRgLCBuY29sID0gMikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYyguNSw3LjUpLCBicmVha3MgPSBjKDEsMiwzLDQsNSw2LDcpKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKC0xLDEwMSksIGJyZWFrcyA9IGMoMCwyNSw1MCw3NSwxMDApKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lX2NsYXNzaWMoKSArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsYWIoIlxuT1VTIEluc3RydW1lbnRhbCBIYXJtIENvbXBvc2l0ZSIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWxhYigiT2JsaWdhdGlvbiBTdHJlbmd0aFxuIikgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTgpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNiksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDE4KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNikpKQ0KDQpgYGANCg0KDQojIE9ibGlnIH4gSW5kLiBEaWZmIFRlc3RzIHsudGFic2V0fQ0KDQo8YnI+DQoNClNlZSBvdXIgcHJlLXJlZ2lzdHJhdGlvbiAoSU5TRVJUIExJTkspIGFuZCBtYW51c2NyaXB0IGZvciBvdXIgcHJlZGljdGlvbnMgYWJvdXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGluZGl2aWR1YWwgZGlmZmVyZW5jZXMgYW5kIG9ibGlnYXRpb24ganVkZ21lbnRzLg0KDQo8YnI+DQoNCiMjIE1BQyB7LnRhYnNldH0NCg0KIyMjIEZhbWlseSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19GYW1fQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19GYW1fQ29tYmluZWQiLCAiTm9DaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0ZhbV9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNQUNfRmFtX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0ZhbV9Db21iaW5lZCIsICJDaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0ZhbV9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfRmFtX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfRmFtX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19GYW1fQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUFDX0ZhbV9Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19GYW1fQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19GYW1fQ29tYmluZWQiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBHcm91cCB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19Hcm91cF9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0dyb3VwX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19Hcm91cF9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNQUNfR3JvdXBfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNQUNfR3JvdXBfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19Hcm91cF9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfR3JvdXBfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19Hcm91cF9Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfR3JvdXBfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUFDX0dyb3VwX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUFDX0dyb3VwX0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfR3JvdXBfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBSZWNpcHJvY2l0eSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19SZWNfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19SZWNfQ29tYmluZWQiLCAiTm9DaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX1JlY19Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNQUNfUmVjX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX1JlY19Db21iaW5lZCIsICJDaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX1JlY19Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfUmVjX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfUmVjX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19SZWNfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUFDX1JlY19Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19SZWNfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19SZWNfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBIZXJvaXNtIHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0hlcm9fQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19IZXJvX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19IZXJvX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19IZXJvX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0hlcm9fQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19IZXJvX0NvbWJpbmVkIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19IZXJvX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfSGVyb19Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfSGVyb19Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfSGVyb19Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19IZXJvX0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfSGVyb19Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KDQojIyMgQXV0aG9yaXR5IHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0RlZl9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0RlZl9Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNQUNfRGVmX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19EZWZfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNQUNfRGVmX0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNQUNfRGVmX0NvbWJpbmVkIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19EZWZfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19EZWZfQ29tYmluZWQiLCAiTm9DaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUFDX0RlZl9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfRGVmX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUFDX0RlZl9Db21iaW5lZCIsICJDaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUFDX0RlZl9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIEZhaXJuZXNzIHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0ZhaXJfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19GYWlyX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19GYWlyX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19GYWlyX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX0ZhaXJfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19GYWlyX0NvbWJpbmVkIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19GYWlyX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfRmFpcl9Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfRmFpcl9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfRmFpcl9Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19GYWlyX0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfRmFpcl9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIFByb3BlcnR5IHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX1Byb3BfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19Qcm9wX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19Qcm9wX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19Qcm9wX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUFDX1Byb3BfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1BQ19Qcm9wX0NvbWJpbmVkIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19Qcm9wX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfUHJvcF9Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfUHJvcF9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfUHJvcF9Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1BQ19Qcm9wX0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNQUNfUHJvcF9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMgTUZUIHsudGFic2V0fQ0KDQojIyMgSGFybSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9IYXJtX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfSGFybV9Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfSGFybV9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfSGFybV9Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9IYXJtX0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfSGFybV9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfSGFybV9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX0hhcm1fQ29tYmluZWQiLCAiTm9DaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX0hhcm1fQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX0hhcm1fQ29tYmluZWQiLCAiQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfSGFybV9Db21iaW5lZCIsICJDaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX0hhcm1fQ29tYmluZWQiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBGYWlybmVzcyB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9GYWlybmVzc19Db21iaW5lZCIsICJOb0Nob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUZRX0ZhaXJuZXNzX0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9GYWlybmVzc19Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfRmFpcm5lc3NfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfRmFpcm5lc3NfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9GYWlybmVzc19Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfRmFpcm5lc3NfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1GUV9GYWlybmVzc19Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfRmFpcm5lc3NfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX0ZhaXJuZXNzX0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX0ZhaXJuZXNzX0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfRmFpcm5lc3NfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBMb3lhbHR5IHsudGFic2V0fQ0KDQojIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUZRX0xveWFsdHlfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9Mb3lhbHR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9Mb3lhbHR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9Mb3lhbHR5X0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUZRX0xveWFsdHlfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9Mb3lhbHR5X0NvbWJpbmVkIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1GUV9Mb3lhbHR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfTG95YWx0eV9Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfTG95YWx0eV9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfTG95YWx0eV9Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1GUV9Mb3lhbHR5X0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfTG95YWx0eV9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIEF1dGhvcml0eSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9BdXRob3JpdHlfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9BdXRob3JpdHlfQ29tYmluZWQiLCAiTm9DaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUZRX0F1dGhvcml0eV9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfQXV0aG9yaXR5X0NvbWJpbmVkIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUZRX0F1dGhvcml0eV9Db21iaW5lZCIsICJDaG9pY2VfU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUZRX0F1dGhvcml0eV9Db21iaW5lZCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfQXV0aG9yaXR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfQXV0aG9yaXR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1GUV9BdXRob3JpdHlfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX0F1dGhvcml0eV9Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1GUV9BdXRob3JpdHlfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1GUV9BdXRob3JpdHlfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBQdXJpdHkgey50YWJzZXR9DQoNCiMjIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfUHVyaXR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJNRlFfUHVyaXR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9QdXJpdHlfQ29tYmluZWQiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTUZRX1B1cml0eV9Db21iaW5lZCIsICJDaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9QdXJpdHlfQ29tYmluZWQiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk1GUV9QdXJpdHlfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX1B1cml0eV9Db21iaW5lZCIsICJOb0Nob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiTUZRX1B1cml0eV9Db21iaW5lZCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfUHVyaXR5X0NvbWJpbmVkIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk1GUV9QdXJpdHlfQ29tYmluZWQiLCAiQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfUHVyaXR5X0NvbWJpbmVkIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJNRlFfUHVyaXR5X0NvbWJpbmVkIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQoNCiMjIE9VUyB7LnRhYnNldH0NCg0KIyMjIEltcGFydGlhbCBCZW5lZmljZW5jZSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk9VU19JQiIsICJOb0Nob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiT1VTX0lCIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk9VU19JQiIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJPVVNfSUIiLCAiQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJPVVNfSUIiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk9VU19JQiIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJPVVNfSUIiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk9VU19JQiIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJPVVNfSUIiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiT1VTX0lCIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiT1VTX0lCIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJPVVNfSUIiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBJbnN0cnVtZW50YWwgSGFybSB7LnRhYnNldH0NCg0KIyMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaXN0YW50IHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk9VU19JSCIsICJOb0Nob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiT1VTX0lIIiwgIk5vQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk9VU19JSCIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJPVVNfSUgiLCAiQ2hvaWNlX0NVWl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBjbG9zZSBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJPVVNfSUgiLCAiQ2hvaWNlX1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCg0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk9VU19JSCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlzdGFudCBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJPVVNfSUgiLCAiTm9DaG9pY2VfQ1VaX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KDQojIGNsb3NlIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk9VU19JSCIsICJOb0Nob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJPVVNfSUgiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMjIENob2ljZQ0KYGBge3J9DQojIGRpc3RhbnQgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiT1VTX0lIIiwgIkNob2ljZV9DVVpfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgY2xvc2UgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiT1VTX0lIIiwgIkNob2ljZV9TSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQoNCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJPVVNfSUgiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMgT2JsaWcgfiBNQUMgRmFtaWx5IFZhbHVlcyB2cyBNRlQgSW5ncm91cCBMb3lhbHR5IFRlc3RzIHsudGFic2V0fQ0KDQojIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyB+IGluZC4gZGlmZnMgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyB+IGZhbWlseSB2YWx1ZXMgY29ycjsgci5qaCA9IG9ibGlnIH4gaW5ncm91cCBsb3lhbHR5IGNvcnI7IHIua2ggPSBmYW1pbHkgdmFsdWVzIH4gaW5ncm91cCBsb3lhbHR5IGNvcnINCg0KIyBkaXN0YW50DQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4zMSwgci5qaCA9IC4yMSwgci5raCA9IC42MiwgMzU0LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCg0KIyBjbG9zZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMzMsIHIuamggPSAuMTgsIHIua2ggPSAuNjIsIDM1NCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAtLjAzLCByLmpoID0gLjAyLCByLmtoID0gLjYyLCAzNTQsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQojIyMgQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyB+IGluZC4gZGlmZnMgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyB+IGZhbWlseSB2YWx1ZXMgY29ycjsgci5qaCA9IG9ibGlnIH4gaW5ncm91cCBsb3lhbHR5IGNvcnI7IHIua2ggPSBmYW1pbHkgdmFsdWVzIH4gaW5ncm91cCBsb3lhbHR5IGNvcnINCg0KIyBkaXN0YW50DQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4zNywgci5qaCA9IC4yNywgci5raCA9IC42MiwgMzU0LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCg0KIyBjbG9zZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuNDMsIHIuamggPSAuMjgsIHIua2ggPSAuNjIsIDM1NCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAtLjIwLCByLmpoID0gLS4wNywgci5raCA9IC42MiwgMzU0LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCmBgYA0KDQojIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGNvcnJlbGF0aW9uIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgb2JsaWcgfiBpbmQuIGRpZmZzIGFuYWx5c2VzDQojIyByLmprID0gb2JsaWcgfiBmYW1pbHkgdmFsdWVzIGNvcnI7IHIuamggPSBvYmxpZyB+IGluZ3JvdXAgbG95YWx0eSBjb3JyOyByLmtoID0gZmFtaWx5IHZhbHVlcyB+IGluZ3JvdXAgbG95YWx0eSBjb3JyDQoNCiMgZGlzdGFudA0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMjUsIHIuamggPSAuMTQsIHIua2ggPSAuNjQsIDM0NSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQoNCiMgY2xvc2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjMzLCByLmpoID0gLjE5LCByLmtoID0gLjY0LCAzNDUsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KDQojIGRpZmZlcmVuY2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLS4wNiwgci5qaCA9IC0uMDQsIHIua2ggPSAuNjQsIDM0NSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCiMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIH4gaW5kLiBkaWZmcyBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIH4gZmFtaWx5IHZhbHVlcyBjb3JyOyByLmpoID0gb2JsaWcgfiBpbmdyb3VwIGxveWFsdHkgY29ycjsgci5raCA9IGZhbWlseSB2YWx1ZXMgfiBpbmdyb3VwIGxveWFsdHkgY29ycg0KDQojIGRpc3RhbnQNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjI5LCByLmpoID0gLjE1LCByLmtoID0gLjY0LCAzNDUsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KDQojIGNsb3NlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4zNCwgci5qaCA9IC4xNywgci5raCA9IC42NCwgMzQ1LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC0uMTcsIHIuamggPSAtLjA2LCByLmtoID0gLjY0LCAzNDUsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQoNCg0KIyBPYmxpZyBEaWZmIH4gT3RoZXIgUHJlLU91dGNvbWUgRGlmZiBUZXN0cyB7LnRhYnNldH0NCg0KIyMgUmVsYXRlIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX3JlbGF0ZSIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIkNob2ljZV9DVVptaW51c1NJQl9yZWxhdGUiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX3JlbGF0ZSIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIkNob2ljZV9DVVptaW51c1NJQl9yZWxhdGUiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIENsb3NlIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9TTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX2Nsb3NlIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX2Nsb3NlIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVptaW51c1NJQl9jbG9zZSIsICJOb0Nob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIkNob2ljZV9DVVptaW51c1NJQl9jbG9zZSIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMgUHJpb3IgSGVscCB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVptaW51c1NJQl9wcmlvcmhlbHAiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJDaG9pY2VfQ1VabWludXNTSUJfcHJpb3JoZWxwIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJOb0Nob2ljZV9DVVptaW51c1NJQl9wcmlvcmhlbHAiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJDaG9pY2VfQ1VabWludXNTSUJfcHJpb3JoZWxwIiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQojIyBGdXR1cmUgSGVscCB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVptaW51c1NJQl9mdXR1cmVoZWxwIiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWhlbHAiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWhlbHAiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJDaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaGVscCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMgUHJpb3IgSW50ZXJheCB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJOb0Nob2ljZV9DVVptaW51c1NJQl9wcmlvcmludGVyYWN0IiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaW50ZXJhY3QiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX3ByaW9yaW50ZXJhY3QiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfRkxfY2xlYW4sICJDaG9pY2VfQ1VabWludXNTSUJfcHJpb3JpbnRlcmFjdCIsICJDaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCg0KIyMgRnV0dXJlIEludGVyYXggey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX1NMX2NsZWFuLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaW50ZXJhY3QiLCAiTm9DaG9pY2VfQ1VabWludXNTSUJfb2JsaWciLCBtZXRob2QgPSAiUGVhcnNvbiIpDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgZGlmZiBwZWFyc29uJ3Mgcg0KY29yX3Rlc3QoRTJfU0xfY2xlYW4sICJDaG9pY2VfQ1VabWludXNTSUJfZnV0dXJlaW50ZXJhY3QiLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBkaWZmIHBlYXJzb24ncyByDQpjb3JfdGVzdChFMl9GTF9jbGVhbiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWludGVyYWN0IiwgIk5vQ2hvaWNlX0NVWm1pbnVzU0lCX29ibGlnIiwgbWV0aG9kID0gIlBlYXJzb24iKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIGRpZmYgcGVhcnNvbidzIHINCmNvcl90ZXN0KEUyX0ZMX2NsZWFuLCAiQ2hvaWNlX0NVWm1pbnVzU0lCX2Z1dHVyZWludGVyYWN0IiwgIkNob2ljZV9DVVptaW51c1NJQl9vYmxpZyIsIG1ldGhvZCA9ICJQZWFyc29uIikNCmBgYA0KDQoNCiMgT2JsaWcgfiBSZWxhdGUgdnMgU29jaWFsIEludGVyYWN0aW9uIFRlc3RzIHsudGFic2V0fQ0KDQojIyBDbG9zZSB7LnRhYnNldH0NCg0KIyMjIFN0cmFuZ2VyLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyBkaWZmIH4gcHJlLW91dGNvbWUgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyBkaWZmIH4gcmVsYXRlIGRpZmYgY29ycjsgci5qaCA9IG9ibGlnIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyOyByLmtoID0gcmVsYXRlIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMTAsIHIuamggPSAuMjIsIHIua2ggPSAuMDcsIG4gPSAzNTQsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIGNvcnJlbGF0aW9uIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgb2JsaWcgZGlmZiB+IHByZS1vdXRjb21lIGFuYWx5c2VzDQojIyByLmprID0gb2JsaWcgZGlmZiB+IHJlbGF0ZSBkaWZmIGNvcnI7IHIuamggPSBvYmxpZyBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycjsgci5raCA9IHJlbGF0ZSBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycg0KDQojIGRpZmZlcmVuY2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjEwLCByLmpoID0gLjM3LCByLmtoID0gLjE1LCBuID0gMzU0LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCmBgYA0KDQojIyMgRnJpZW5kLUxpa2Ugey50YWJzZXR9DQoNCiMjIyMgTm8gQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyBkaWZmIH4gcHJlLW91dGNvbWUgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyBkaWZmIH4gcmVsYXRlIGRpZmYgY29ycjsgci5qaCA9IG9ibGlnIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyOyByLmtoID0gcmVsYXRlIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMDIsIHIuamggPSAuMjUsIHIua2ggPSAuMDQsIG4gPSAzNDUsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQojIyMjIENob2ljZQ0KYGBge3J9DQojIGNvcnJlbGF0aW9uIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgb2JsaWcgZGlmZiB+IHByZS1vdXRjb21lIGFuYWx5c2VzDQojIyByLmprID0gb2JsaWcgZGlmZiB+IHJlbGF0ZSBkaWZmIGNvcnI7IHIuamggPSBvYmxpZyBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycjsgci5raCA9IHJlbGF0ZSBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycg0KDQojIGRpZmZlcmVuY2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjEzLCByLmpoID0gLjYwLCByLmtoID0gLjAzLCBuID0gMzQ1LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCmBgYA0KDQojIyBQcmlvciBIZWxwIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4xMCwgci5qaCA9IC4yMSwgci5raCA9IC4wOSwgbiA9IDM1NCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyBkaWZmIH4gcHJlLW91dGNvbWUgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyBkaWZmIH4gcmVsYXRlIGRpZmYgY29ycjsgci5qaCA9IG9ibGlnIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyOyByLmtoID0gcmVsYXRlIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMTAsIHIuamggPSAuNDIsIHIua2ggPSAuMTUsIG4gPSAzNTQsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4wMiwgci5qaCA9IC4yNiwgci5raCA9IC4wOSwgbiA9IDM0NSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyBkaWZmIH4gcHJlLW91dGNvbWUgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyBkaWZmIH4gcmVsYXRlIGRpZmYgY29ycjsgci5qaCA9IG9ibGlnIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyOyByLmtoID0gcmVsYXRlIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMTMsIHIuamggPSAuNTYsIHIua2ggPSAuMDgsIG4gPSAzNDUsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQoNCiMjIEZ1dHVyZSBIZWxwIHsudGFic2V0fQ0KDQojIyMgU3RyYW5nZXItTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4xMCwgci5qaCA9IC4zNiwgci5raCA9IC4xNywgbiA9IDM1NCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyBkaWZmIH4gcHJlLW91dGNvbWUgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyBkaWZmIH4gcmVsYXRlIGRpZmYgY29ycjsgci5qaCA9IG9ibGlnIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyOyByLmtoID0gcmVsYXRlIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMTAsIHIuamggPSAuNTEsIHIua2ggPSAuMTMsIG4gPSAzNTQsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQoNCiMjIyBGcmllbmQtTGlrZSB7LnRhYnNldH0NCg0KIyMjIyBObyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4wMiwgci5qaCA9IC4zNSwgci5raCA9IC4wMywgbiA9IDM0NSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCiMjIyMgQ2hvaWNlDQpgYGB7cn0NCiMgY29ycmVsYXRpb24gdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBvYmxpZyBkaWZmIH4gcHJlLW91dGNvbWUgYW5hbHlzZXMNCiMjIHIuamsgPSBvYmxpZyBkaWZmIH4gcmVsYXRlIGRpZmYgY29ycjsgci5qaCA9IG9ibGlnIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyOyByLmtoID0gcmVsYXRlIGRpZmYgfiBzb2NpYWwgaW50ZXJhY3Rpb24gZGlmZiBjb3JyDQoNCiMgZGlmZmVyZW5jZQ0KY29jb3IuZGVwLmdyb3Vwcy5vdmVybGFwKHIuamsgPSAuMTMsIHIuamggPSAuNjAsIHIua2ggPSAuMDksIG4gPSAzNDUsIGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9ICJzdGVpZ2VyMTk4MCIsIGFscGhhID0gMC4wNSwgY29uZi5sZXZlbCA9IDAuOTUsIG51bGwudmFsdWUgPSAwKQ0KYGBgDQoNCiMjIFByaW9yIEludGVyYXggey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGNvcnJlbGF0aW9uIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgb2JsaWcgZGlmZiB+IHByZS1vdXRjb21lIGFuYWx5c2VzDQojIyByLmprID0gb2JsaWcgZGlmZiB+IHJlbGF0ZSBkaWZmIGNvcnI7IHIuamggPSBvYmxpZyBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycjsgci5raCA9IHJlbGF0ZSBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycg0KDQojIGRpZmZlcmVuY2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjEwLCByLmpoID0gLjE2LCByLmtoID0gLjE0LCBuID0gMzU0LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCmBgYA0KIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4xMCwgci5qaCA9IC4zNCwgci5raCA9IC4xNSwgbiA9IDM1NCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCg0KIyMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGNvcnJlbGF0aW9uIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgb2JsaWcgZGlmZiB+IHByZS1vdXRjb21lIGFuYWx5c2VzDQojIyByLmprID0gb2JsaWcgZGlmZiB+IHJlbGF0ZSBkaWZmIGNvcnI7IHIuamggPSBvYmxpZyBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycjsgci5raCA9IHJlbGF0ZSBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycg0KDQojIGRpZmZlcmVuY2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjAyLCByLmpoID0gLjI2LCByLmtoID0gLjA4LCBuID0gMzQ1LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCmBgYA0KIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4xMywgci5qaCA9IC40NSwgci5raCA9IC4wNiwgbiA9IDM0NSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCg0KIyMgRnV0dXJlIEludGVyYXggey50YWJzZXR9DQoNCiMjIyBTdHJhbmdlci1MaWtlIHsudGFic2V0fQ0KDQojIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGNvcnJlbGF0aW9uIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgb2JsaWcgZGlmZiB+IHByZS1vdXRjb21lIGFuYWx5c2VzDQojIyByLmprID0gb2JsaWcgZGlmZiB+IHJlbGF0ZSBkaWZmIGNvcnI7IHIuamggPSBvYmxpZyBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycjsgci5raCA9IHJlbGF0ZSBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycg0KDQojIGRpZmZlcmVuY2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjEwLCByLmpoID0gLjE5LCByLmtoID0gLjE4LCBuID0gMzU0LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCmBgYA0KIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4xMCwgci5qaCA9IC40NSwgci5raCA9IC4xNSwgbiA9IDM1NCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCg0KIyMjIEZyaWVuZC1MaWtlIHsudGFic2V0fQ0KDQojIyMjIE5vIENob2ljZQ0KYGBge3J9DQojIGNvcnJlbGF0aW9uIHZhbHVlcyBhcmUgdGFrZW4gZnJvbSB0aGUgb2JsaWcgZGlmZiB+IHByZS1vdXRjb21lIGFuYWx5c2VzDQojIyByLmprID0gb2JsaWcgZGlmZiB+IHJlbGF0ZSBkaWZmIGNvcnI7IHIuamggPSBvYmxpZyBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycjsgci5raCA9IHJlbGF0ZSBkaWZmIH4gc29jaWFsIGludGVyYWN0aW9uIGRpZmYgY29ycg0KDQojIGRpZmZlcmVuY2UNCmNvY29yLmRlcC5ncm91cHMub3ZlcmxhcChyLmprID0gLjAyLCByLmpoID0gLjE5LCByLmtoID0gLjAzLCBuID0gMzQ1LCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSAic3RlaWdlcjE5ODAiLCBhbHBoYSA9IDAuMDUsIGNvbmYubGV2ZWwgPSAwLjk1LCBudWxsLnZhbHVlID0gMCkNCmBgYA0KIyMjIyBDaG9pY2UNCmBgYHtyfQ0KIyBjb3JyZWxhdGlvbiB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIG9ibGlnIGRpZmYgfiBwcmUtb3V0Y29tZSBhbmFseXNlcw0KIyMgci5qayA9IG9ibGlnIGRpZmYgfiByZWxhdGUgZGlmZiBjb3JyOyByLmpoID0gb2JsaWcgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnI7IHIua2ggPSByZWxhdGUgZGlmZiB+IHNvY2lhbCBpbnRlcmFjdGlvbiBkaWZmIGNvcnINCg0KIyBkaWZmZXJlbmNlDQpjb2Nvci5kZXAuZ3JvdXBzLm92ZXJsYXAoci5qayA9IC4xMywgci5qaCA9IC41NCwgci5raCA9IC4wOCwgbiA9IDM0NSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gInN0ZWlnZXIxOTgwIiwgYWxwaGEgPSAwLjA1LCBjb25mLmxldmVsID0gMC45NSwgbnVsbC52YWx1ZSA9IDApDQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg==