Introduction

Introduce the dataset in your own words. Discuss, briefly, the motivation and curiousity behind your choice of research questions.

Is there a correlation between median income and the crime happening in those neighborhoods at night?

Research Summary: To explore whether income is linked to neighborhood safety, we examined the relationship between median household income and the number of nighttime crimes (defined as incidents between 8:00 PM and 6:00 AM). We first cleaned the data by filtering out incomplete crime reports, then grouped the valid records by neighborhood and calculated total nighttime crimes. These counts were paired with the corresponding median income for each neighborhood.

We are interested in ρ (rho), the population correlation coefficient between median income and nighttime crime. This parameter quantifies the direction and strength of a linear relationship between the two variables.

Hypotheses:

Null (H₀): ρ = 0 (no linear correlation)

Alternative (Hₐ): ρ ≠ 0 (there is a linear correlation)

We created a scatter plot showing each neighborhood’s median income (x-axis) and total nighttime crime count (y-axis). This visualization allows us to assess any potential trends. Although there appears to be a slight downward slope, the spread is wide, suggesting a weak or unclear relationship.

We used a Pearson correlation test to quantify the linear relationship. The correlation coefficient was -0.14, indicating a very weak negative trend, and the p-value was 0.2226. This p-value is much higher than 0.05, so we fail to reject the null hypothesis.

There is no strong statistical evidence of a linear relationship between median income and nighttime crime rates in these neighborhoods. While the data suggest a slight negative trend (lower-income areas may have slightly more nighttime crime), the correlation is weak and not statistically significant

Is there more theft happening October through March or April through September?

Research Summary: To explore this question, we created a new categorical variable called Monthtype, which grouped months into “Cold” (October through March) and “Warm” (April through September). We then filtered the dataset to isolate theft-related incidents and calculated the total number of thefts during each seasonal period. Using these values, we compared the proportion of crimes that were classified as thefts in colder months versus warmer ones

Hypotheses:

Null hypothesis (H₀): The proportion of thefts is the same in cold and warm months (P₁ = P₂).

Alternative hypothesis (Hₐ): The proportions differ between the two seasonal groups (P₁ ≠ P₂).

The parameter of interest is the difference in population proportions of thefts (relative to all crimes) between cold and warm months.

To visualize this, we created a bar chart displaying theft and non-theft crime counts across the two Monthtypes. From the graph, we can see that while both types of crime are more common in warm months overall, theft specifically makes up a larger proportion of total crimes during the colder months. This suggests a possible seasonal trend.

To test whether this difference is statistically significant, we performed a two-proportion z-test with continuity correction. The results were striking: the p-value was less than 2.2e-16, and the 95% confidence interval for the difference in proportions was [0.1768, 0.1906]. The estimated proportion of thefts in cold months was approximately 0.61, compared to just 0.43 in warm months.

In conclusion, we have extremely strong evidence that theft makes up a significantly larger share of total crimes in colder months than in warmer months. Whether it’s due to darker evenings, holiday-related pressures, or other seasonal factors, theft seems to favor the chill. This insight adds a valuable seasonal lens to understanding crime patterns.

Figures

`summarise()` has grouped output by 'nbrhd_name'. You can override using the `.groups` argument.

Appendix

Put your R code to perform the hypothesis tests here. It must appear in your report with the output

cor.test(crime ~ median_earn, data = data1)

    Pearson's product-moment correlation

data:  crime and median_earn
t = -1.2299, df = 74, p-value = 0.2226
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.35563869  0.08669053
sample estimates:
       cor 
-0.1415312 
mymodel <- lm(crime ~ median_earn, data = data1)
summary(mymodel)

Call:
lm(formula = crime ~ median_earn, data = data1)

Residuals:
   Min     1Q Median     3Q    Max 
-70.90 -45.86 -29.39   7.49 317.49 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.026e+02  2.476e+01   4.146  8.9e-05 ***
median_earn -5.410e-04  4.399e-04  -1.230    0.223    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 76.39 on 74 degrees of freedom
Multiple R-squared:  0.02003,   Adjusted R-squared:  0.006788 
F-statistic: 1.513 on 1 and 74 DF,  p-value: 0.2226
theft <- RawData |> select("month", "offense_type_id") |> filter(grepl("theft", offense_type_id)) |> mutate(Monthtype = case_when(month == "Oct" | month == "Nov" |month == "Dec"|month == "Jan"|month == "Feb"|month == "Mar"| month == "Sep" ~ "Cold", .default = "Warm")) |> mutate(Theft = case_when(offense_type_id != "theft" & Monthtype == "Cold" ~"ColdTheft", .default = "WarmTheft")) 
crime <- RawData |> select("month", "offense_type_id") |> mutate(Monthtype = case_when(month == "Oct" | month == "Nov" |month == "Dec"|month == "Jan"|month == "Feb"|month == "Mar" ~ "Cold", .default = "Warm"))|> mutate(Crime = case_when(offense_type_id != "notcrime" & Monthtype == "Cold" ~ "Coldcrime", .default = "Warmcrime"))
crimeyn <- RawData |> select("month", "offense_type_id") |> mutate(Monthtype = case_when(month == "Oct" | month == "Nov" |month == "Dec"|month == "Jan"|month == "Feb"|month == "Mar" ~ "Cold", .default = "Warm"))|> mutate(Crime = case_when(offense_type_id == "theft-of-motor-vehicle" | offense_type_id == "theft-items-from-vehicle" | offense_type_id == "theft-parts-from-vehicle" | offense_type_id == "theft-shoplift" | offense_type_id ==
"theft-from-bldg" | offense_type_id ==
"theft-other" | offense_type_id ==
"burg-auto-theft-resd-no-force" | offense_type_id ==
"theft-fail-return-rent-veh"| offense_type_id ==
"theft-bicycle" | offense_type_id == "theft-unauth-use-of-ftd" | offense_type_id == "theft-of-services" | offense_type_id ==
"theft-purse-snatch-no-force" | offense_type_id ==
"theft-from-mails" | offense_type_id ==
"theft-stln-vehicle-trailer" | offense_type_id ==
"burg-auto-theft-busn-no-force" | offense_type_id ==
"burg-auto-theft-busn-w-force" | offense_type_id ==
"theft-gas-drive-off" | offense_type_id ==
"theft-pick-pocket" | offense_type_id ==
"theft-stln-veh-const-eqpt" | offense_type_id ==
"theft-embezzle" | offense_type_id == "burg-auto-theft-resd-w-force" | offense_type_id ==
"theft-of-rental-property" | offense_type_id ==
"theft-confidence-game" ~ "Theft", .default = "NotTheft"))
tally(Theft~ Monthtype, data = theft) 
           Monthtype
Theft        Cold  Warm
  ColdTheft 21976     0
  WarmTheft     0 16596
tally(Crime ~ Monthtype, data = crime) 
           Monthtype
Crime        Cold  Warm
  Coldcrime 36036     0
  Warmcrime     0 38964
prop.test(c(21976, 16596), c(36036,38964)) 

    2-sample test for equality of proportions with continuity correction

data:  c out of c21976 out of 3603616596 out of 38964
X-squared = 2534, df = 1, p-value < 2.2e-16
alternative hypothesis: two.sided
95 percent confidence interval:
 0.1768427 0.1909632
sample estimates:
   prop 1    prop 2 
0.6098346 0.4259316 

```

LS0tCnRpdGxlOiAiR3JvdXAgUHJvamVjdCIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7cn0KIyBDbGVhciB3b3Jrc3BhY2UKcm0obGlzdCA9IGxzKCkpIAoKIyB5b3VyIGNvZGUgd2lsbCBOT1QgYmUgaW5jbHVkZWQgaW4gdGhlIGh0bWwgZm9yIHRoaXMgYXNzaWdubWVudAprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobz1GQUxTRSkgCiMgeW91ciBvdXRwdXQgd2lsbCBOT1QgYmUgaW5jbHVkZWQgaW4gdGhlIGh0bWwgZm9yIHRoaXMgYXNzaWdubWVudCAoZXhjZXB0IGZpZ3VyZXMgYXQgdGhlIGVuZCkKa25pdHI6Om9wdHNfY2h1bmskc2V0KGluY2x1ZGU9RkFMU0UpIAoKIyBsb2FkIHBhY2thZ2VzIHdlIG5lZWQgZm9yIHRoaXMgbGFiCmxpYnJhcnkobW9zYWljLCB3YXJuLmNvbmZsaWN0cyA9IEZBTFNFKSAKbGlicmFyeShnZ2Zvcm11bGEsIHdhcm4uY29uZmxpY3RzID0gRkFMU0UpCmxpYnJhcnkoTG9jazVEYXRhLCB3YXJuLmNvbmZsaWN0cyA9IEZBTFNFKQpsaWJyYXJ5KGRwbHlyLCB3YXJuLmNvbmZsaWN0cyA9IEZBTFNFKQoKCiMgTG9hZCB5b3VyIGRhdGEKUmF3RGF0YSA8LSByZWFkLmNzdihmaWxlLmNob29zZSgpKQoKIyBQZXJmb3JtIGFueSBuZWNlc3NhcnkgdHJhbnNmb3JtYXRpb25zCgoKYGBgCgoKIyMgSW50cm9kdWN0aW9uCgoqSW50cm9kdWNlIHRoZSBkYXRhc2V0IGluIHlvdXIgb3duIHdvcmRzLiAgRGlzY3VzcywgYnJpZWZseSwgdGhlIG1vdGl2YXRpb24gYW5kIGN1cmlvdXNpdHkgYmVoaW5kIHlvdXIgY2hvaWNlIG9mIHJlc2VhcmNoIHF1ZXN0aW9ucy4gICogIAogIAojIyBJcyB0aGVyZSBhIGNvcnJlbGF0aW9uIGJldHdlZW4gbWVkaWFuIGluY29tZSBhbmQgdGhlIGNyaW1lIGhhcHBlbmluZyBpbiB0aG9zZSBuZWlnaGJvcmhvb2RzIGF0IG5pZ2h0PwoKCipSZXNlYXJjaCBTdW1tYXJ5OioKKlRvIGV4cGxvcmUgd2hldGhlciBpbmNvbWUgaXMgbGlua2VkIHRvIG5laWdoYm9yaG9vZCBzYWZldHksIHdlIGV4YW1pbmVkIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZWRpYW4gaG91c2Vob2xkIGluY29tZSBhbmQgdGhlIG51bWJlciBvZiBuaWdodHRpbWUgY3JpbWVzIChkZWZpbmVkIGFzIGluY2lkZW50cyBiZXR3ZWVuIDg6MDAgUE0gYW5kIDY6MDAgQU0pLiBXZSBmaXJzdCBjbGVhbmVkIHRoZSBkYXRhIGJ5IGZpbHRlcmluZyBvdXQgaW5jb21wbGV0ZSBjcmltZSByZXBvcnRzLCB0aGVuIGdyb3VwZWQgdGhlIHZhbGlkIHJlY29yZHMgYnkgbmVpZ2hib3Job29kIGFuZCBjYWxjdWxhdGVkIHRvdGFsIG5pZ2h0dGltZSBjcmltZXMuIFRoZXNlIGNvdW50cyB3ZXJlIHBhaXJlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIG1lZGlhbiBpbmNvbWUgZm9yIGVhY2ggbmVpZ2hib3Job29kLioKCipXZSBhcmUgaW50ZXJlc3RlZCBpbiDPgSAocmhvKSwgdGhlIHBvcHVsYXRpb24gY29ycmVsYXRpb24gY29lZmZpY2llbnQgYmV0d2VlbiBtZWRpYW4gaW5jb21lIGFuZCBuaWdodHRpbWUgY3JpbWUuIFRoaXMgcGFyYW1ldGVyIHF1YW50aWZpZXMgdGhlIGRpcmVjdGlvbiBhbmQgc3RyZW5ndGggb2YgYSBsaW5lYXIgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIHR3byB2YXJpYWJsZXMuKgoKKkh5cG90aGVzZXM6KgoKKk51bGwgKEjigoApOiDPgSA9IDAgKG5vIGxpbmVhciBjb3JyZWxhdGlvbikqCgoqQWx0ZXJuYXRpdmUgKEjigpApOiDPgSDiiaAgMCAodGhlcmUgaXMgYSBsaW5lYXIgY29ycmVsYXRpb24pKgoKKldlIGNyZWF0ZWQgYSBzY2F0dGVyIHBsb3Qgc2hvd2luZyBlYWNoIG5laWdoYm9yaG9vZOKAmXMgbWVkaWFuIGluY29tZSAoeC1heGlzKSBhbmQgdG90YWwgbmlnaHR0aW1lIGNyaW1lIGNvdW50ICh5LWF4aXMpLiBUaGlzIHZpc3VhbGl6YXRpb24gYWxsb3dzIHVzIHRvIGFzc2VzcyBhbnkgcG90ZW50aWFsIHRyZW5kcy4gQWx0aG91Z2ggdGhlcmUgYXBwZWFycyB0byBiZSBhIHNsaWdodCBkb3dud2FyZCBzbG9wZSwgdGhlIHNwcmVhZCBpcyB3aWRlLCBzdWdnZXN0aW5nIGEgd2VhayBvciB1bmNsZWFyIHJlbGF0aW9uc2hpcC4qCgoqV2UgdXNlZCBhIFBlYXJzb24gY29ycmVsYXRpb24gdGVzdCB0byBxdWFudGlmeSB0aGUgbGluZWFyIHJlbGF0aW9uc2hpcC4gVGhlIGNvcnJlbGF0aW9uIGNvZWZmaWNpZW50IHdhcyAtMC4xNCwgaW5kaWNhdGluZyBhIHZlcnkgd2VhayBuZWdhdGl2ZSB0cmVuZCwgYW5kIHRoZSBwLXZhbHVlIHdhcyAwLjIyMjYuIFRoaXMgcC12YWx1ZSBpcyBtdWNoIGhpZ2hlciB0aGFuIDAuMDUsIHNvIHdlIGZhaWwgdG8gcmVqZWN0IHRoZSBudWxsIGh5cG90aGVzaXMuKgoKKlRoZXJlIGlzIG5vIHN0cm9uZyBzdGF0aXN0aWNhbCBldmlkZW5jZSBvZiBhIGxpbmVhciByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZWRpYW4gaW5jb21lIGFuZCBuaWdodHRpbWUgY3JpbWUgcmF0ZXMgaW4gdGhlc2UgbmVpZ2hib3Job29kcy4gV2hpbGUgdGhlIGRhdGEgc3VnZ2VzdCBhIHNsaWdodCBuZWdhdGl2ZSB0cmVuZCAobG93ZXItaW5jb21lIGFyZWFzIG1heSBoYXZlIHNsaWdodGx5IG1vcmUgbmlnaHR0aW1lIGNyaW1lKSwgdGhlIGNvcnJlbGF0aW9uIGlzIHdlYWsgYW5kIG5vdCBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50KgoKCgogCiAgCiMjIElzIHRoZXJlIG1vcmUgdGhlZnQgaGFwcGVuaW5nIE9jdG9iZXIgdGhyb3VnaCBNYXJjaCBvciBBcHJpbCB0aHJvdWdoIFNlcHRlbWJlcj8KCipSZXNlYXJjaCBTdW1tYXJ5OioKKlRvIGV4cGxvcmUgdGhpcyBxdWVzdGlvbiwgd2UgY3JlYXRlZCBhIG5ldyBjYXRlZ29yaWNhbCB2YXJpYWJsZSBjYWxsZWQgTW9udGh0eXBlLCB3aGljaCBncm91cGVkIG1vbnRocyBpbnRvICJDb2xkIiAoT2N0b2JlciB0aHJvdWdoIE1hcmNoKSBhbmQgIldhcm0iIChBcHJpbCB0aHJvdWdoIFNlcHRlbWJlcikuIFdlIHRoZW4gZmlsdGVyZWQgdGhlIGRhdGFzZXQgdG8gaXNvbGF0ZSB0aGVmdC1yZWxhdGVkIGluY2lkZW50cyBhbmQgY2FsY3VsYXRlZCB0aGUgdG90YWwgbnVtYmVyIG9mIHRoZWZ0cyBkdXJpbmcgZWFjaCBzZWFzb25hbCBwZXJpb2QuIFVzaW5nIHRoZXNlIHZhbHVlcywgd2UgY29tcGFyZWQgdGhlIHByb3BvcnRpb24gb2YgY3JpbWVzIHRoYXQgd2VyZSBjbGFzc2lmaWVkIGFzIHRoZWZ0cyBpbiBjb2xkZXIgbW9udGhzIHZlcnN1cyB3YXJtZXIgb25lcyAqICAKCipIeXBvdGhlc2VzOioKCipOdWxsIGh5cG90aGVzaXMgKEjigoApOiBUaGUgcHJvcG9ydGlvbiBvZiB0aGVmdHMgaXMgdGhlIHNhbWUgaW4gY29sZCBhbmQgd2FybSBtb250aHMgKFDigoEgPSBQ4oKCKS4qCgoqQWx0ZXJuYXRpdmUgaHlwb3RoZXNpcyAoSOKCkCk6IFRoZSBwcm9wb3J0aW9ucyBkaWZmZXIgYmV0d2VlbiB0aGUgdHdvIHNlYXNvbmFsIGdyb3VwcyAoUOKCgSDiiaAgUOKCgikuKgoKCipUaGUgcGFyYW1ldGVyIG9mIGludGVyZXN0IGlzIHRoZSBkaWZmZXJlbmNlIGluIHBvcHVsYXRpb24gcHJvcG9ydGlvbnMgb2YgdGhlZnRzIChyZWxhdGl2ZSB0byBhbGwgY3JpbWVzKSBiZXR3ZWVuIGNvbGQgYW5kIHdhcm0gbW9udGhzLioKCipUbyB2aXN1YWxpemUgdGhpcywgd2UgY3JlYXRlZCBhIGJhciBjaGFydCBkaXNwbGF5aW5nIHRoZWZ0IGFuZCBub24tdGhlZnQgY3JpbWUgY291bnRzIGFjcm9zcyB0aGUgdHdvIE1vbnRodHlwZXMuIEZyb20gdGhlIGdyYXBoLCB3ZSBjYW4gc2VlIHRoYXQgd2hpbGUgYm90aCB0eXBlcyBvZiBjcmltZSBhcmUgbW9yZSBjb21tb24gaW4gd2FybSBtb250aHMgb3ZlcmFsbCwgdGhlZnQgc3BlY2lmaWNhbGx5IG1ha2VzIHVwIGEgbGFyZ2VyIHByb3BvcnRpb24gb2YgdG90YWwgY3JpbWVzIGR1cmluZyB0aGUgY29sZGVyIG1vbnRocy4gVGhpcyBzdWdnZXN0cyBhIHBvc3NpYmxlIHNlYXNvbmFsIHRyZW5kLioKCipUbyB0ZXN0IHdoZXRoZXIgdGhpcyBkaWZmZXJlbmNlIGlzIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQsIHdlIHBlcmZvcm1lZCBhIHR3by1wcm9wb3J0aW9uIHotdGVzdCB3aXRoIGNvbnRpbnVpdHkgY29ycmVjdGlvbi4gVGhlIHJlc3VsdHMgd2VyZSBzdHJpa2luZzogdGhlIHAtdmFsdWUgd2FzIGxlc3MgdGhhbiAyLjJlLTE2LCBhbmQgdGhlIDk1JSBjb25maWRlbmNlIGludGVydmFsIGZvciB0aGUgZGlmZmVyZW5jZSBpbiBwcm9wb3J0aW9ucyB3YXMgWzAuMTc2OCwgMC4xOTA2XS4gVGhlIGVzdGltYXRlZCBwcm9wb3J0aW9uIG9mIHRoZWZ0cyBpbiBjb2xkIG1vbnRocyB3YXMgYXBwcm94aW1hdGVseSAwLjYxLCBjb21wYXJlZCB0byBqdXN0IDAuNDMgaW4gd2FybSBtb250aHMuKgoKKkluIGNvbmNsdXNpb24sIHdlIGhhdmUgZXh0cmVtZWx5IHN0cm9uZyBldmlkZW5jZSB0aGF0IHRoZWZ0IG1ha2VzIHVwIGEgc2lnbmlmaWNhbnRseSBsYXJnZXIgc2hhcmUgb2YgdG90YWwgY3JpbWVzIGluIGNvbGRlciBtb250aHMgdGhhbiBpbiB3YXJtZXIgbW9udGhzLiBXaGV0aGVyIGl0J3MgZHVlIHRvIGRhcmtlciBldmVuaW5ncywgaG9saWRheS1yZWxhdGVkIHByZXNzdXJlcywgb3Igb3RoZXIgc2Vhc29uYWwgZmFjdG9ycywgdGhlZnQgc2VlbXMgdG8gZmF2b3IgdGhlIGNoaWxsLiBUaGlzIGluc2lnaHQgYWRkcyBhIHZhbHVhYmxlIHNlYXNvbmFsIGxlbnMgdG8gdW5kZXJzdGFuZGluZyBjcmltZSBwYXR0ZXJucy4qCgpcbmV3cGFnZQoKIyMgRmlndXJlcwoKYGBge3IsIGluY2x1ZGUgPSBUfQpRb25lIDwtIFJhd0RhdGEgfD4gZmlsdGVyKGhvdXIgPj0gNiAmIGhvdXIgPD0gOCkgCmRhdGExIDwtIFFvbmUgfD4gZ3JvdXBfYnkobmJyaGRfbmFtZSwgbWVkaWFuX2Vhcm4pfD4gc3VtbWFyaXplKGNyaW1lPSBuKCkpIApwbG90KGNyaW1lIH4gbWVkaWFuX2Vhcm4sIGRhdGEgPSBkYXRhMSkgCgpteW1vZGVsIDwtIGxtKGNyaW1lIH4gbWVkaWFuX2Vhcm4sIGRhdGEgPSBkYXRhMSkKCnBsb3QobXltb2RlbCwgd2hpY2ggPSAxKQpwbG90KG15bW9kZWwsIHdoaWNoID0gMikKI0lmIHdhbnQgdG8gZG8gYWxsIGNyaW1lOgoKYGBgCgpgYGB7ciwgaW5jbHVkZSA9IFR9CiBnZl9iYXIofk1vbnRodHlwZSwgZmlsbCA9IH5DcmltZSwgZGF0YSA9IGNyaW1leW4sIHBvc2l0aW9uID0gImRvZGdlIiwgeWxhYiA9ICJDcmltZSBDb3VudCIpCgoKYGBgCgojIEFwcGVuZGl4CgoqUHV0IHlvdXIgUiBjb2RlIHRvIHBlcmZvcm0gdGhlIGh5cG90aGVzaXMgdGVzdHMgaGVyZS4gIEl0IG11c3QgYXBwZWFyIGluIHlvdXIgcmVwb3J0IHdpdGggdGhlIG91dHB1dCoKCmBgYHtyLCBpbmNsdWRlID0gVCwgZWNobyA9IFR9CmNvci50ZXN0KGNyaW1lIH4gbWVkaWFuX2Vhcm4sIGRhdGEgPSBkYXRhMSkKbXltb2RlbCA8LSBsbShjcmltZSB+IG1lZGlhbl9lYXJuLCBkYXRhID0gZGF0YTEpCnN1bW1hcnkobXltb2RlbCkKCmBgYAoKYGBge3IsIGluY2x1ZGUgPSBULCBlY2hvID0gVH0KdGhlZnQgPC0gUmF3RGF0YSB8PiBzZWxlY3QoIm1vbnRoIiwgIm9mZmVuc2VfdHlwZV9pZCIpIHw+IGZpbHRlcihncmVwbCgidGhlZnQiLCBvZmZlbnNlX3R5cGVfaWQpKSB8PiBtdXRhdGUoTW9udGh0eXBlID0gY2FzZV93aGVuKG1vbnRoID09ICJPY3QiIHwgbW9udGggPT0gIk5vdiIgfG1vbnRoID09ICJEZWMifG1vbnRoID09ICJKYW4ifG1vbnRoID09ICJGZWIifG1vbnRoID09ICJNYXIifCBtb250aCA9PSAiU2VwIiB+ICJDb2xkIiwgLmRlZmF1bHQgPSAiV2FybSIpKSB8PiBtdXRhdGUoVGhlZnQgPSBjYXNlX3doZW4ob2ZmZW5zZV90eXBlX2lkICE9ICJ0aGVmdCIgJiBNb250aHR5cGUgPT0gIkNvbGQiIH4iQ29sZFRoZWZ0IiwgLmRlZmF1bHQgPSAiV2FybVRoZWZ0IikpIApjcmltZSA8LSBSYXdEYXRhIHw+IHNlbGVjdCgibW9udGgiLCAib2ZmZW5zZV90eXBlX2lkIikgfD4gbXV0YXRlKE1vbnRodHlwZSA9IGNhc2Vfd2hlbihtb250aCA9PSAiT2N0IiB8IG1vbnRoID09ICJOb3YiIHxtb250aCA9PSAiRGVjInxtb250aCA9PSAiSmFuInxtb250aCA9PSAiRmViInxtb250aCA9PSAiTWFyIiB+ICJDb2xkIiwgLmRlZmF1bHQgPSAiV2FybSIpKXw+IG11dGF0ZShDcmltZSA9IGNhc2Vfd2hlbihvZmZlbnNlX3R5cGVfaWQgIT0gIm5vdGNyaW1lIiAmIE1vbnRodHlwZSA9PSAiQ29sZCIgfiAiQ29sZGNyaW1lIiwgLmRlZmF1bHQgPSAiV2FybWNyaW1lIikpCmNyaW1leW4gPC0gUmF3RGF0YSB8PiBzZWxlY3QoIm1vbnRoIiwgIm9mZmVuc2VfdHlwZV9pZCIpIHw+IG11dGF0ZShNb250aHR5cGUgPSBjYXNlX3doZW4obW9udGggPT0gIk9jdCIgfCBtb250aCA9PSAiTm92IiB8bW9udGggPT0gIkRlYyJ8bW9udGggPT0gIkphbiJ8bW9udGggPT0gIkZlYiJ8bW9udGggPT0gIk1hciIgfiAiQ29sZCIsIC5kZWZhdWx0ID0gIldhcm0iKSl8PiBtdXRhdGUoQ3JpbWUgPSBjYXNlX3doZW4ob2ZmZW5zZV90eXBlX2lkID09ICJ0aGVmdC1vZi1tb3Rvci12ZWhpY2xlIiB8IG9mZmVuc2VfdHlwZV9pZCA9PSAidGhlZnQtaXRlbXMtZnJvbS12ZWhpY2xlIiB8IG9mZmVuc2VfdHlwZV9pZCA9PSAidGhlZnQtcGFydHMtZnJvbS12ZWhpY2xlIiB8IG9mZmVuc2VfdHlwZV9pZCA9PSAidGhlZnQtc2hvcGxpZnQiIHwgb2ZmZW5zZV90eXBlX2lkID09CiJ0aGVmdC1mcm9tLWJsZGciIHwgb2ZmZW5zZV90eXBlX2lkID09CiJ0aGVmdC1vdGhlciIgfCBvZmZlbnNlX3R5cGVfaWQgPT0KImJ1cmctYXV0by10aGVmdC1yZXNkLW5vLWZvcmNlIiB8IG9mZmVuc2VfdHlwZV9pZCA9PQoidGhlZnQtZmFpbC1yZXR1cm4tcmVudC12ZWgifCBvZmZlbnNlX3R5cGVfaWQgPT0KInRoZWZ0LWJpY3ljbGUiIHwgb2ZmZW5zZV90eXBlX2lkID09ICJ0aGVmdC11bmF1dGgtdXNlLW9mLWZ0ZCIgfCBvZmZlbnNlX3R5cGVfaWQgPT0gInRoZWZ0LW9mLXNlcnZpY2VzIiB8IG9mZmVuc2VfdHlwZV9pZCA9PQoidGhlZnQtcHVyc2Utc25hdGNoLW5vLWZvcmNlIiB8IG9mZmVuc2VfdHlwZV9pZCA9PQoidGhlZnQtZnJvbS1tYWlscyIgfCBvZmZlbnNlX3R5cGVfaWQgPT0KInRoZWZ0LXN0bG4tdmVoaWNsZS10cmFpbGVyIiB8IG9mZmVuc2VfdHlwZV9pZCA9PQoiYnVyZy1hdXRvLXRoZWZ0LWJ1c24tbm8tZm9yY2UiIHwgb2ZmZW5zZV90eXBlX2lkID09CiJidXJnLWF1dG8tdGhlZnQtYnVzbi13LWZvcmNlIiB8IG9mZmVuc2VfdHlwZV9pZCA9PQoidGhlZnQtZ2FzLWRyaXZlLW9mZiIgfCBvZmZlbnNlX3R5cGVfaWQgPT0KInRoZWZ0LXBpY2stcG9ja2V0IiB8IG9mZmVuc2VfdHlwZV9pZCA9PQoidGhlZnQtc3Rsbi12ZWgtY29uc3QtZXFwdCIgfCBvZmZlbnNlX3R5cGVfaWQgPT0KInRoZWZ0LWVtYmV6emxlIiB8IG9mZmVuc2VfdHlwZV9pZCA9PSAiYnVyZy1hdXRvLXRoZWZ0LXJlc2Qtdy1mb3JjZSIgfCBvZmZlbnNlX3R5cGVfaWQgPT0KInRoZWZ0LW9mLXJlbnRhbC1wcm9wZXJ0eSIgfCBvZmZlbnNlX3R5cGVfaWQgPT0KInRoZWZ0LWNvbmZpZGVuY2UtZ2FtZSIgfiAiVGhlZnQiLCAuZGVmYXVsdCA9ICJOb3RUaGVmdCIpKQp0YWxseShUaGVmdH4gTW9udGh0eXBlLCBkYXRhID0gdGhlZnQpIAp0YWxseShDcmltZSB+IE1vbnRodHlwZSwgZGF0YSA9IGNyaW1lKSAKCnByb3AudGVzdChjKDIxOTc2LCAxNjU5NiksIGMoMzYwMzYsMzg5NjQpKSAKCmBgYApgYGAKCgoKCg==