library(tidyverse)
library(readxl)
thesis <- read_excel("SampleThesisData.xlsx", na = "-")
thesis
- A correlation test is used to determine the relationship between age and GPA1. A correlation test is used because both variables are continuous.
cor.test(thesis$Age, thesis$GPA1)
Pearson's product-moment correlation
data: thesis$Age and thesis$GPA1
t = 0.25668, df = 39, p-value = 0.7988
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.2699939 0.3443673
sample estimates:
cor
0.04106779
The correlation between age and GPA1 is not statistically significant, r(39) = .80, ns.
The following scatterplot demonstrates the relationship between age and GPA1.
thesis %>%
drop_na(Age, GPA1) %>%
ggplot(aes(Age, GPA1)) +
geom_point() +
theme_minimal() +
geom_smooth(formula = y~x, method = lm, se = FALSE) +
labs(title = "Relationship Between Age and GPA1",
x = "Age",
y = "GPA1")

- To determine if there is a difference between GPA1 of students in the Business college from students in the Arts and Science college, a T-test is used. A T-test is used because there is a continuous dependent variable (GPA1) and an independent categorical variable (college).
t.test(thesis$GPA1 ~ thesis$College)
Welch Two Sample t-test
data: thesis$GPA1 by thesis$College
t = -1.2753, df = 38.772, p-value = 0.2098
alternative hypothesis: true difference in means between group AS and group BU is not equal to 0
95 percent confidence interval:
-0.7143396 0.1619586
sample estimates:
mean in group AS mean in group BU
3.02381 3.30000
The students in the Arts and Sciences college (M = 3.02) had a lower average GPA than the students in the Business college (M = 3.30) and the differences in the GPAs are not statistically significantly different, t(38.77) = 1.28, ns. The following boxplot shows the relationship between the Business college and the Arts and Sciences college and GPA1.
thesis %>%
drop_na(College, GPA1) %>%
ggplot(aes(x = College, y = GPA1)) +
geom_boxplot() +
geom_jitter(width = .1) +
theme_minimal() +
labs(title = "GPA1 by College", x = "College", y = "GPA1")

- The following shows the relationship between the GPA1 of students in accounting versus communications. To do this, a T-test and filter are used.
thesis %>%
filter(Major == "Account" | Major == "Comm") -> AccCommMajor
t.test(AccCommMajor$GPA1 ~ AccCommMajor$Major)
Welch Two Sample t-test
data: AccCommMajor$GPA1 by AccCommMajor$Major
t = 0.95153, df = 5.297, p-value = 0.3827
alternative hypothesis: true difference in means between group Account and group Comm is not equal to 0
95 percent confidence interval:
-0.7868789 1.7368789
sample estimates:
mean in group Account mean in group Comm
3.675 3.200
The accounting major students (M = 3.68) have a higher average GPA than the communications major students (M = 3.20), however, the difference is not statistically significantly different, t(5.30) = 0.95, ns. The following is a boxplot to show the relationship between the two majors and GPA1.
AccCommMajor %>%
ggplot(aes(x = Major, y = GPA1)) +
geom_boxplot() +
geom_jitter(width = .2) +
theme_minimal() +
labs(title = "GPA of Accounting and Communications Majors", x = "Major", y = "GPA1")

- To determine if there is a difference between Mood1 and Mood2, a paired-samples T-test is used. This test is used because Mood1 and Mood2 are two continuous variables measured at two different times.
t.test(thesis$Mood1, thesis$Mood2, paired = T)
Paired t-test
data: thesis$Mood1 and thesis$Mood2
t = -2.1686, df = 40, p-value = 0.03611
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.80105415 -0.02821414
sample estimates:
mean of the differences
-0.4146341
Moods were statistically significantly lower at time 1 (M = -0.24) than at time 2 (M = 0.24), t(40) = 2.17, p < .05. The following is a boxplot of the relationship between Mood1 and Mood2.
thesis %>%
pivot_longer(cols = c(Mood1, Mood2), names_to = "Time", values_to = "Mood") %>%
select(Time, Mood)
thesis %>%
pivot_longer(cols = c(Mood1, Mood2), names_to = "Time", values_to = "Mood") %>%
ggplot(aes(x = Time, y = Mood)) +
geom_boxplot() +
geom_jitter(width = .2) +
theme_minimal() +
labs(title = "Relationship Between Mood and Time", x = "Time", y = "Mood Calculation")
Warning: Removed 2 rows containing non-finite values (stat_boxplot).
Warning: Removed 2 rows containing missing values (geom_point).

- To determine if there is a relationship between where students are from and where they go to college, a chi-square test is used. This test is used because both variables are categorical.
table(thesis$Home, thesis$College)
AS BU
Billings 5 6
OtherMT 11 7
OutofState 6 6
chisq.test(thesis$Home, thesis$College)
Pearson's Chi-squared test
data: thesis$Home and thesis$College
X-squared = 0.76438, df = 2, p-value = 0.6824
There is not a statistically significant relationship between where students home is and where they attend college, chi-square(2) = 0.76, ns. The following is a bargraph showing the relationship between college and home.
thesis %>%
drop_na(College, Home) %>%
mutate(Home = as_factor(Home)) %>%
mutate(Home = fct_recode(Home,
"Billings" = "Billings",
"City/town in Montana" = "OtherMT",
"City/town out of Montana" = "OutofState")) %>%
mutate(College = as_factor(College)) %>%
mutate(College = fct_recode(College,
"Business College" = "BU",
"Arts and Sciences College" = "AS")) %>%
ggplot(aes(x = College, fill = Home)) +
geom_bar(position = "fill") +
scale_fill_viridis_d() + # use scale_fill_grey() here if you don't want color
theme_minimal() +
coord_flip() +
labs(title = "College by Home",
y = "Proportion of Different Homes")

- To determine if there is a relationship between self-esteem and where a student comes from, an analysis of variance (ANOVA) is used. An ANOVA is used instead of a T-test because the categorical independent variable has more than two factors.
thesis %>%
drop_na(Home, SelfEsteem) %>%
group_by(Home) %>%
summarize(Mean = mean(SelfEsteem),
"Std Dev" = sd(SelfEsteem),
N = n())
NA
Home_ANOVA <- aov(thesis$SelfEsteem ~ thesis$Home)
summary(Home_ANOVA)
Df Sum Sq Mean Sq F value Pr(>F)
thesis$Home 2 15.76 7.879 1.043 0.362
Residuals 39 294.53 7.552
1 observation deleted due to missingness
There were no statistically significant differences in self-esteem by where a student came from (home), F(2, 39) = 1.04, ns. A post hoc test is used for comparisons between individual groups.
TukeyHSD(Home_ANOVA)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = thesis$SelfEsteem ~ thesis$Home)
$`thesis$Home`
diff lwr upr p adj
OtherMT-Billings -1.27777778 -3.772928 1.217373 0.4329248
OutofState-Billings -0.08333333 -2.816634 2.649967 0.9969630
OutofState-OtherMT 1.19444444 -1.300706 3.689595 0.4800845
The following is a boxplot of the relationship between self-esteem and home.
thesis %>%
drop_na(SelfEsteem, Home) %>%
mutate(Home = as_factor(Home)) %>%
mutate(Home = fct_recode(Home,
"Billings" = "Billings",
"City/town in Montana" = "OtherMT",
"City/town out of Montana " = "OutofState")) %>%
ggplot(aes(x = Home, y = SelfEsteem)) +
geom_boxplot() +
geom_jitter(width = .2) +
theme_minimal() +
labs(title = "Self-Esteem by Home",
y = "Self-Esteem")

LS0tCnRpdGxlOiAiQmFzaWMgU3RhdHMgaW4gUiIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHJlYWR4bCkKCmBgYAoKYGBge3J9CnRoZXNpcyA8LSByZWFkX2V4Y2VsKCJTYW1wbGVUaGVzaXNEYXRhLnhsc3giLCBuYSA9ICItIikKCnRoZXNpcwpgYGAKCjEuICBBIGNvcnJlbGF0aW9uIHRlc3QgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFnZSBhbmQgR1BBMS4gQSBjb3JyZWxhdGlvbiB0ZXN0IGlzIHVzZWQgYmVjYXVzZSBib3RoIHZhcmlhYmxlcyBhcmUgY29udGludW91cy4KCmBgYHtyfQpjb3IudGVzdCh0aGVzaXMkQWdlLCB0aGVzaXMkR1BBMSkKCmBgYApUaGUgY29ycmVsYXRpb24gYmV0d2VlbiBhZ2UgYW5kIEdQQTEgaXMgbm90IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQsICpyKigzOSkgPSAuODAsICpucyouCgpUaGUgZm9sbG93aW5nIHNjYXR0ZXJwbG90IGRlbW9uc3RyYXRlcyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYWdlIGFuZCBHUEExLiAKYGBge3J9CnRoZXNpcyAlPiUgCiAgZHJvcF9uYShBZ2UsIEdQQTEpICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBnZ3Bsb3QoYWVzKEFnZSwgR1BBMSkpICsKICBnZW9tX3BvaW50KCkgKwogIHRoZW1lX21pbmltYWwoKSArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBnZW9tX3Ntb290aChmb3JtdWxhID0geX54LCBtZXRob2QgPSBsbSwgc2UgPSBGQUxTRSkgKyAgICAgICAgCiAgbGFicyh0aXRsZSA9ICJSZWxhdGlvbnNoaXAgQmV0d2VlbiBBZ2UgYW5kIEdQQTEiLCAgICAgIAogICAgICAgeCA9ICJBZ2UiLAogICAgICAgeSA9ICJHUEExIikKYGBgCgoyLiBUbyBkZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSBkaWZmZXJlbmNlIGJldHdlZW4gR1BBMSBvZiBzdHVkZW50cyBpbiB0aGUgQnVzaW5lc3MgY29sbGVnZSBmcm9tIHN0dWRlbnRzIGluIHRoZSBBcnRzIGFuZCBTY2llbmNlIGNvbGxlZ2UsIGEgVC10ZXN0IGlzIHVzZWQuIEEgVC10ZXN0IGlzIHVzZWQgYmVjYXVzZSB0aGVyZSBpcyBhIGNvbnRpbnVvdXMgZGVwZW5kZW50IHZhcmlhYmxlIChHUEExKSBhbmQgYW4gaW5kZXBlbmRlbnQgY2F0ZWdvcmljYWwgdmFyaWFibGUgKGNvbGxlZ2UpLiAKYGBge3J9CnQudGVzdCh0aGVzaXMkR1BBMSB+IHRoZXNpcyRDb2xsZWdlKQpgYGAKVGhlIHN0dWRlbnRzIGluIHRoZSBBcnRzIGFuZCBTY2llbmNlcyBjb2xsZWdlICgqTSogPSAzLjAyKSBoYWQgYSBsb3dlciBhdmVyYWdlIEdQQSB0aGFuIHRoZSBzdHVkZW50cyBpbiB0aGUgQnVzaW5lc3MgY29sbGVnZSAoKk0qID0gMy4zMCkgYW5kIHRoZSBkaWZmZXJlbmNlcyBpbiB0aGUgR1BBcyBhcmUgbm90IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQsICp0KigzOC43NykgPSAxLjI4LCAqbnMqLiAKVGhlIGZvbGxvd2luZyBib3hwbG90IHNob3dzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgQnVzaW5lc3MgY29sbGVnZSBhbmQgdGhlIEFydHMgYW5kIFNjaWVuY2VzIGNvbGxlZ2UgYW5kIEdQQTEuCmBgYHtyfQp0aGVzaXMgJT4lIAogIGRyb3BfbmEoQ29sbGVnZSwgR1BBMSkgJT4lICAgCiAgZ2dwbG90KGFlcyh4ID0gQ29sbGVnZSwgeSA9IEdQQTEpKSArCiAgZ2VvbV9ib3hwbG90KCkgKwogIGdlb21faml0dGVyKHdpZHRoID0gLjEpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIGxhYnModGl0bGUgPSAiR1BBMSBieSBDb2xsZWdlIiwgeCA9ICJDb2xsZWdlIiwgeSA9ICJHUEExIikKYGBgCgozLiBUaGUgZm9sbG93aW5nIHNob3dzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgR1BBMSBvZiBzdHVkZW50cyBpbiBhY2NvdW50aW5nIHZlcnN1cyBjb21tdW5pY2F0aW9ucy4gVG8gZG8gdGhpcywgYSBULXRlc3QgYW5kIGZpbHRlciBhcmUgdXNlZC4gCmBgYHtyfQp0aGVzaXMgJT4lIAogIGZpbHRlcihNYWpvciA9PSAiQWNjb3VudCIgfCBNYWpvciA9PSAiQ29tbSIpIC0+IEFjY0NvbW1NYWpvcgoKdC50ZXN0KEFjY0NvbW1NYWpvciRHUEExIH4gQWNjQ29tbU1ham9yJE1ham9yKQpgYGAKVGhlIGFjY291bnRpbmcgbWFqb3Igc3R1ZGVudHMgKCpNKiA9IDMuNjgpIGhhdmUgYSBoaWdoZXIgYXZlcmFnZSBHUEEgdGhhbiB0aGUgY29tbXVuaWNhdGlvbnMgbWFqb3Igc3R1ZGVudHMgKCpNKiA9IDMuMjApLCBob3dldmVyLCB0aGUgZGlmZmVyZW5jZSBpcyBub3Qgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCwgICp0Kig1LjMwKSA9IDAuOTUsICpucyouIApUaGUgZm9sbG93aW5nIGlzIGEgYm94cGxvdCB0byBzaG93IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgdHdvIG1ham9ycyBhbmQgR1BBMS4KYGBge3J9CkFjY0NvbW1NYWpvciAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gTWFqb3IsIHkgPSBHUEExKSkgKwogIGdlb21fYm94cGxvdCgpICsKICBnZW9tX2ppdHRlcih3aWR0aCA9IC4yKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICBsYWJzKHRpdGxlID0gIkdQQSBvZiBBY2NvdW50aW5nIGFuZCBDb21tdW5pY2F0aW9ucyBNYWpvcnMiLCB4ID0gIk1ham9yIiwgeSA9ICJHUEExIikKYGBgCgo0LiBUbyBkZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSBkaWZmZXJlbmNlIGJldHdlZW4gTW9vZDEgYW5kIE1vb2QyLCBhIHBhaXJlZC1zYW1wbGVzIFQtdGVzdCBpcyB1c2VkLiBUaGlzIHRlc3QgaXMgdXNlZCBiZWNhdXNlIE1vb2QxIGFuZCBNb29kMiBhcmUgdHdvIGNvbnRpbnVvdXMgdmFyaWFibGVzIG1lYXN1cmVkIGF0IHR3byBkaWZmZXJlbnQgdGltZXMuIApgYGB7cn0KdC50ZXN0KHRoZXNpcyRNb29kMSwgdGhlc2lzJE1vb2QyLCBwYWlyZWQgPSBUKQpgYGAKTW9vZHMgd2VyZSBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50bHkgbG93ZXIgYXQgdGltZSAxICgqTSogPSAtMC4yNCkgdGhhbiBhdCB0aW1lIDIgKCpNKiA9IDAuMjQpLCAqdCooNDApID0gMi4xNywgKnAqIDwgLjA1LgpUaGUgZm9sbG93aW5nIGlzIGEgYm94cGxvdCBvZiB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gTW9vZDEgYW5kIE1vb2QyLgpgYGB7cn0KdGhlc2lzICU+JSAKICBwaXZvdF9sb25nZXIoY29scyA9IGMoTW9vZDEsIE1vb2QyKSwgbmFtZXNfdG8gPSAiVGltZSIsIHZhbHVlc190byA9ICJNb29kIikgJT4lIAogIHNlbGVjdChUaW1lLCBNb29kKQpgYGAKYGBge3J9CnRoZXNpcyAlPiUgCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBjKE1vb2QxLCBNb29kMiksIG5hbWVzX3RvID0gIlRpbWUiLCB2YWx1ZXNfdG8gPSAiTW9vZCIpICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBUaW1lLCB5ID0gTW9vZCkpICsKICBnZW9tX2JveHBsb3QoKSArCiAgZ2VvbV9qaXR0ZXIod2lkdGggPSAuMikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgbGFicyh0aXRsZSA9ICJSZWxhdGlvbnNoaXAgQmV0d2VlbiBNb29kIGFuZCBUaW1lIiwgeCA9ICJUaW1lIiwgeSA9ICJNb29kIENhbGN1bGF0aW9uIikKYGBgCgo1LiBUbyBkZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiB3aGVyZSBzdHVkZW50cyBhcmUgZnJvbSBhbmQgd2hlcmUgdGhleSBnbyB0byBjb2xsZWdlLCBhIGNoaS1zcXVhcmUgdGVzdCBpcyB1c2VkLiBUaGlzIHRlc3QgaXMgdXNlZCBiZWNhdXNlIGJvdGggdmFyaWFibGVzIGFyZSBjYXRlZ29yaWNhbC4gIApgYGB7cn0KdGFibGUodGhlc2lzJEhvbWUsIHRoZXNpcyRDb2xsZWdlKQpjaGlzcS50ZXN0KHRoZXNpcyRIb21lLCB0aGVzaXMkQ29sbGVnZSkKYGBgClRoZXJlIGlzIG5vdCBhIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gd2hlcmUgc3R1ZGVudHMgaG9tZSBpcyBhbmQgd2hlcmUgdGhleSBhdHRlbmQgY29sbGVnZSwgKmNoaS1zcXVhcmUqKDIpID0gMC43NiwgKm5zKi4KVGhlIGZvbGxvd2luZyBpcyBhIGJhcmdyYXBoIHNob3dpbmcgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGNvbGxlZ2UgYW5kIGhvbWUuCmBgYHtyfQp0aGVzaXMgJT4lIAogIGRyb3BfbmEoQ29sbGVnZSwgSG9tZSkgJT4lIAogIG11dGF0ZShIb21lID0gYXNfZmFjdG9yKEhvbWUpKSAlPiUgCiAgbXV0YXRlKEhvbWUgPSBmY3RfcmVjb2RlKEhvbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJCaWxsaW5ncyIgPSAiQmlsbGluZ3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNpdHkvdG93biBpbiBNb250YW5hIiA9ICJPdGhlck1UIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDaXR5L3Rvd24gb3V0IG9mIE1vbnRhbmEiID0gIk91dG9mU3RhdGUiKSkgICU+JSAKICBtdXRhdGUoQ29sbGVnZSA9IGFzX2ZhY3RvcihDb2xsZWdlKSkgJT4lIAogIG11dGF0ZShDb2xsZWdlID0gZmN0X3JlY29kZShDb2xsZWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICJCdXNpbmVzcyBDb2xsZWdlIiA9ICJCVSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkFydHMgYW5kIFNjaWVuY2VzIENvbGxlZ2UiID0gIkFTIikpICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBDb2xsZWdlLCBmaWxsID0gSG9tZSkpICsKICBnZW9tX2Jhcihwb3NpdGlvbiA9ICJmaWxsIikgKwogIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkgKyAgICAgICAgICAgICAgICAgICAgICAgICMgdXNlIHNjYWxlX2ZpbGxfZ3JleSgpIGhlcmUgaWYgeW91IGRvbid0IHdhbnQgY29sb3IKICB0aGVtZV9taW5pbWFsKCkgKwogIGNvb3JkX2ZsaXAoKSArCiAgbGFicyh0aXRsZSA9ICJDb2xsZWdlIGJ5IEhvbWUiLAogICAgICB5ID0gIlByb3BvcnRpb24gb2YgRGlmZmVyZW50IEhvbWVzIikKCmBgYAo2LiBUbyBkZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzZWxmLWVzdGVlbSBhbmQgd2hlcmUgYSBzdHVkZW50IGNvbWVzIGZyb20sIGFuIGFuYWx5c2lzIG9mIHZhcmlhbmNlIChBTk9WQSkgaXMgdXNlZC4gQW4gQU5PVkEgaXMgdXNlZCBpbnN0ZWFkIG9mIGEgVC10ZXN0IGJlY2F1c2UgdGhlIGNhdGVnb3JpY2FsIGluZGVwZW5kZW50IHZhcmlhYmxlIGhhcyBtb3JlIHRoYW4gdHdvIGZhY3RvcnMuCmBgYHtyfQp0aGVzaXMgJT4lIAogIGRyb3BfbmEoSG9tZSwgU2VsZkVzdGVlbSkgJT4lIAogIGdyb3VwX2J5KEhvbWUpICU+JSAKICBzdW1tYXJpemUoTWVhbiA9IG1lYW4oU2VsZkVzdGVlbSksIAogICAgICAgICAgICAiU3RkIERldiIgPSBzZChTZWxmRXN0ZWVtKSwKICAgICAgICAgICAgTiA9IG4oKSkKCmBgYApgYGB7cn0KSG9tZV9BTk9WQSA8LSBhb3YodGhlc2lzJFNlbGZFc3RlZW0gfiB0aGVzaXMkSG9tZSkKc3VtbWFyeShIb21lX0FOT1ZBKQoKCmBgYApUaGVyZSB3ZXJlIG5vIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZXMgaW4gc2VsZi1lc3RlZW0gYnkgd2hlcmUgYSBzdHVkZW50IGNhbWUgZnJvbSAoaG9tZSksICpGKigyLCAzOSkgPSAxLjA0LCAqbnMqLgpBIHBvc3QgaG9jIHRlc3QgaXMgdXNlZCBmb3IgY29tcGFyaXNvbnMgYmV0d2VlbiBpbmRpdmlkdWFsIGdyb3Vwcy4gCmBgYHtyfQpUdWtleUhTRChIb21lX0FOT1ZBKQpgYGAKVGhlIGZvbGxvd2luZyBpcyBhIGJveHBsb3Qgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHNlbGYtZXN0ZWVtIGFuZCBob21lLgpgYGB7cn0KdGhlc2lzICU+JSAKICBkcm9wX25hKFNlbGZFc3RlZW0sIEhvbWUpICU+JSAKICBtdXRhdGUoSG9tZSA9IGFzX2ZhY3RvcihIb21lKSkgJT4lIAogIG11dGF0ZShIb21lID0gZmN0X3JlY29kZShIb21lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJpbGxpbmdzIiA9ICJCaWxsaW5ncyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2l0eS90b3duIGluIE1vbnRhbmEiID0gIk90aGVyTVQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNpdHkvdG93biBvdXQgb2YgTW9udGFuYSAiID0gIk91dG9mU3RhdGUiKSkgICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBIb21lLCB5ID0gU2VsZkVzdGVlbSkpICsKICBnZW9tX2JveHBsb3QoKSArCiAgZ2VvbV9qaXR0ZXIod2lkdGggPSAuMikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgbGFicyh0aXRsZSA9ICJTZWxmLUVzdGVlbSBieSBIb21lIiwKICAgICAgIHkgPSAiU2VsZi1Fc3RlZW0iKSAKYGBgCgoKCg==