ACCT 426 / BUDA 451
Your name: Paul McCoy
Before submitting to eCampus, publish your results to
rpubs
RPubs URL: ________________________
Instructions:
- This is an open book exam. You may use any resources you like, but
you must do the work yourself.
- You may not work with anyone else.
- The below code attempts to use body measurements to predict weight.
It has a number of issues.
- You need to fix the code, and answer the questions below.
- Be sure to answer the given questions! This exam is graded on the
quality of your analysis and your explanations.
Overview
The body measurements dataset is a dataset of body measurements and
weight. The t_measurements dataset contains the following variables:
- subject_id
- ankle
- arm-length
- bicep
- calf
- chest
- forearm
- height
- hip
- leg-length
- shoulder-breadth
- shoulder-to-crotch
- thigh
- waist
- wrist
A second datafile called height / weight also includes:
- subject_id
- gender
- height_cm
- weight_kg
To get started, join the datasets and change all variables to pounds
and inches. You probably also want to adjust the gender variable into a
flag 1/0 value.
Q1: Summarize variables
Create a graph of each significant variable in the dataset. Create a
correlation matrix of the variables.
Are there any variables that are so highly correlated that they may
throw off our model? If so, remove them from your dataset before
continuing.
Answer: No, all data pairings tested below the set threshold of .95
correlation.
Correlation computed with
• Method: 'pearson'
• Missing treated using: 'pairwise.complete.obs'
Q2: PCA
There are a lot of similar dimensions. Use PCA to see if we can
reduce the numbers of body measurements. Explain the overall
results, and well as each variable’s impact. In particular, what is the
difference between PCA1 and PCA2?
Answer: The pca results reduced 16 body measurement variables into a
set of two that capture the majority of variability in the dataset. PC1
(overall body size) explains 64.4% of total variance. All of the other
measurement variables likely influence positively and heavily on pc1.
PC2 explains 18.8% of total variance and measures differences in shape
or proportion
Importance of components:
PC1 PC2 PC3
Standard deviation 3.2101 1.7357 0.92547
Proportion of Variance 0.6441 0.1883 0.05353
Cumulative Proportion 0.6441 0.8324 0.88588
PC4 PC5 PC6
Standard deviation 0.70985 0.57565 0.50366
Proportion of Variance 0.03149 0.02071 0.01585
Cumulative Proportion 0.91737 0.93808 0.95394
PC7 PC8 PC9
Standard deviation 0.39715 0.35086 0.32870
Proportion of Variance 0.00986 0.00769 0.00675
Cumulative Proportion 0.96379 0.97149 0.97824
PC10 PC11 PC12
Standard deviation 0.31043 0.2622 0.23050
Proportion of Variance 0.00602 0.0043 0.00332
Cumulative Proportion 0.98426 0.9886 0.99188
PC13 PC14 PC15
Standard deviation 0.21106 0.20321 0.1650
Proportion of Variance 0.00278 0.00258 0.0017
Cumulative Proportion 0.99467 0.99725 0.9990
PC16
Standard deviation 0.12964
Proportion of Variance 0.00105
Cumulative Proportion 1.00000
Q3: Linear Model
Create two linear regression model that predict weight.
Start by using any many variables as possible. Then, use a simpler
model with as few variables as possible.
Compare the results and explain which you would want to use in a
situation where gathering data is very expensive.
Use RSME to compare your results, as well as adjusted R squared.
Answer: In a situation where data collection is expensive, the
smaller model is the best way to go. You get an excellent r^2 score for
a fraction of the price.
Q4: Other Model
Use a different model to predict waist. Show a visualization of your
results, and explain what they tell us about the data. Should we use a
linear regression model or this alternative approach? Use RSME to
explain your results.
Answer: I think going with a tight linear regression model would be
the best way to go. It posted an rsme score of 1.5 while my tree method
posted a score of 2.0, close, but marginally better.

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIEV4YW0gNCwgU3ByaW5nIDIwMjUNCiMgQUNDVCA0MjYgLyBCVURBIDQ1MQ0KDQoNCllvdXIgbmFtZTogUGF1bCBNY0NveQ0KDQpCZWZvcmUgc3VibWl0dGluZyB0byBlQ2FtcHVzLCAqcHVibGlzaCB5b3VyIHJlc3VsdHMgdG8gcnB1YnMqIA0KDQpSUHVicyBVUkw6IF9fX19fX19fX19fX19fX19fX19fX19fXw0KDQpJbnN0cnVjdGlvbnM6DQoNCi0gVGhpcyBpcyBhbiBvcGVuIGJvb2sgZXhhbS4gWW91IG1heSB1c2UgYW55IHJlc291cmNlcyB5b3UgbGlrZSwgYnV0IHlvdSBtdXN0IGRvIHRoZSB3b3JrIHlvdXJzZWxmLg0KLSBZb3UgbWF5IG5vdCB3b3JrIHdpdGggYW55b25lIGVsc2UuDQotIFRoZSBiZWxvdyBjb2RlIGF0dGVtcHRzIHRvIHVzZSBib2R5IG1lYXN1cmVtZW50cyB0byBwcmVkaWN0IHdlaWdodC4gSXQgaGFzIGEgbnVtYmVyIG9mIGlzc3Vlcy4NCi0gWW91IG5lZWQgdG8gZml4IHRoZSBjb2RlLCBhbmQgYW5zd2VyIHRoZSBxdWVzdGlvbnMgYmVsb3cuDQotIEJlIHN1cmUgdG8gYW5zd2VyIHRoZSBnaXZlbiBxdWVzdGlvbnMhIFRoaXMgZXhhbSBpcyBncmFkZWQgb24gdGhlIHF1YWxpdHkgb2YgeW91ciBhbmFseXNpcyAqYW5kKiB5b3VyIGV4cGxhbmF0aW9ucy4NCg0KIyMgT3ZlcnZpZXcNCg0KVGhlIGJvZHkgbWVhc3VyZW1lbnRzIGRhdGFzZXQgaXMgYSBkYXRhc2V0IG9mIGJvZHkgbWVhc3VyZW1lbnRzIGFuZCB3ZWlnaHQuIFRoZSB0X21lYXN1cmVtZW50cyBkYXRhc2V0IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOg0KDQotIHN1YmplY3RfaWQNCi0gYW5rbGUNCi0gYXJtLWxlbmd0aAkNCi0gYmljZXAJDQotIGNhbGYJDQotIGNoZXN0CQ0KLSBmb3JlYXJtDQotIGhlaWdodA0KLSBoaXANCi0gbGVnLWxlbmd0aA0KLSBzaG91bGRlci1icmVhZHRoDQotIHNob3VsZGVyLXRvLWNyb3RjaA0KLSB0aGlnaA0KLSB3YWlzdA0KLSB3cmlzdA0KDQpBIHNlY29uZCBkYXRhZmlsZSBjYWxsZWQgaGVpZ2h0IC8gd2VpZ2h0IGFsc28gaW5jbHVkZXM6DQoNCi0gc3ViamVjdF9pZA0KLSBnZW5kZXINCi0gaGVpZ2h0X2NtDQotIHdlaWdodF9rZw0KDQpUbyBnZXQgc3RhcnRlZCwgam9pbiB0aGUgZGF0YXNldHMgYW5kIGNoYW5nZSBhbGwgdmFyaWFibGVzIHRvIHBvdW5kcyBhbmQgaW5jaGVzLiBZb3UgcHJvYmFibHkgYWxzbyB3YW50IHRvIGFkanVzdCB0aGUgZ2VuZGVyIHZhcmlhYmxlIGludG8gYSBmbGFnIDEvMCB2YWx1ZS4NCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0Kb3B0aW9ucyhzY2lwZW4gPSA5OSkNCg0KDQp0X21lYXN1cmVtZW50c19yYXcgPC0gcmVhZF9jc3YoJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9wcm9mZ2FycmV0dC9wcm9mZ2FycmV0dGRhdGEvcmVmcy9oZWFkcy9tYWluL2JvZHlNX2hlaWdodF93ZWlnaHRfdHJhaW5fZGF0YS5jc3YnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9ICcjJykNCg0KdF9oZWlnaHRfd2VpZ2h0X3JhdyA8LSByZWFkX2NzdignaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Byb2ZnYXJyZXR0L3Byb2ZnYXJyZXR0ZGF0YS9yZWZzL2hlYWRzL21haW4vYm9keU1fbWVhc3VyZW1lbnRzLmNzdicpDQoNCnQgPC0gbGVmdF9qb2luKHRfbWVhc3VyZW1lbnRzX3Jhdyx0X2hlaWdodF93ZWlnaHRfcmF3LCBieT0ic3ViamVjdF9pZCIpICU+JSANCiAgbXV0YXRlKGdlbmRlcj1pZl9lbHNlKGdlbmRlcj09Im1hbGUiLDEsMCkpICU+JSBtdXRhdGUod2VpZ2h0X2tnID0gd2VpZ2h0X2tnICoyLjIwNDYyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfY20gPSBoZWlnaHRfY20qLjM5MzcwMSkgJT4lIA0KICByZW5hbWUod2VpZ2h0X2xicz13ZWlnaHRfa2csDQogICAgICAgICBoZWlnaHRfaW49aGVpZ2h0X2NtKSAlPiUgDQogbXV0YXRlKA0KICAgIGFjcm9zcygNCiAgICAgIGMoYGFua2xlYCwgYGFybS1sZW5ndGhgLCBgYmljZXBgLCBgY2FsZmAsIGBjaGVzdGAsIGBmb3JlYXJtYCwgYGhpcGAsDQogICAgICAgIGBsZWctbGVuZ3RoYCwgYHNob3VsZGVyLWJyZWFkdGhgLCBgc2hvdWxkZXItdG8tY3JvdGNoYCwgYHRoaWdoYCwNCiAgICAgICAgYHdhaXN0YCwgYHdyaXN0YCksDQogICAgICB+IC54ICogMC4zOTM3MDENCiAgICApDQogICkgJT4lIA0KICBzZWxlY3QoLWhlaWdodCkNCmBgYA0KDQoNCiMjIFExOiBTdW1tYXJpemUgdmFyaWFibGVzDQoNCkNyZWF0ZSBhIGdyYXBoIG9mIGVhY2ggc2lnbmlmaWNhbnQgdmFyaWFibGUgaW4gdGhlIGRhdGFzZXQuIA0KQ3JlYXRlIGEgY29ycmVsYXRpb24gbWF0cml4IG9mIHRoZSB2YXJpYWJsZXMuDQoNCkFyZSB0aGVyZSBhbnkgdmFyaWFibGVzIHRoYXQgYXJlIHNvIGhpZ2hseSBjb3JyZWxhdGVkIHRoYXQgdGhleSBtYXkgdGhyb3cgb2ZmIG91ciBtb2RlbD8gSWYgc28sIHJlbW92ZSB0aGVtIGZyb20geW91ciBkYXRhc2V0IGJlZm9yZSBjb250aW51aW5nLg0KDQpBbnN3ZXI6IE5vLCBhbGwgZGF0YSBwYWlyaW5ncyB0ZXN0ZWQgYmVsb3cgdGhlIHNldCB0aHJlc2hvbGQgb2YgLjk1IGNvcnJlbGF0aW9uLiAgDQoNCmBgYHtyIGVjaG89RkFMU0V9DQoNCmhpc3QodCRoZWlnaHRfaW4pDQpoaXN0KHQkd2VpZ2h0X2xicykNCmhpc3QodCR3YWlzdCkNCmhpc3QodCRgbGVnLWxlbmd0aGApDQoNCmxpYnJhcnkoZ2djb3JycGxvdCkNCmxpYnJhcnkoY29ycnIpDQoNCm51bWVyaWNfdmFycyA8LSB0ICU+JQ0KICBzZWxlY3Qod2hlcmUoaXMubnVtZXJpYykpDQoNCmNvcl9tYXRyaXggPC0gY29yKG51bWVyaWNfdmFycyx1c2U9InBhaXJ3aXNlLmNvbXBsZXRlLm9icyIpDQoNCmNvcl9wbG90IDwtIGdnY29ycnBsb3QoY29yX21hdHJpeCwNCiAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gImNpcmNsZSIsDQogICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAibG93ZXIiLA0KICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9ICJDb3JyZWxhdGlvbiBNYXRyaXgiLA0KICAgICAgICAgICAgICAgICAgICAgICBnZ3RoZW1lID0gdGhlbWVfbWluaW1hbCgpLA0KICAgICAgICAgICAgICAgICAgICAgICBjb2xvcnMgPSBjKCJyZWQiLCAid2hpdGUiLCAiYmx1ZSIpLA0KICAgICAgICAgICAgICAgICAgICAgICBsYWIgPSBUUlVFLA0KICAgICAgICAgICAgICAgICAgICAgICBsYWJfc2l6ZSA9IDMsDQogICAgICAgICAgICAgICAgICAgICAgIHNob3cubGVnZW5kID0gVFJVRSkgKw0KICBsYWJzKGZpbGwgPSAiQ29ycmVsYXRpb24gQ29lZmZpY2llbnQiKQ0KDQpjb3JfbWF0cml4MSA8LSBudW1lcmljX3ZhcnMgJT4lIGNvcnJlbGF0ZSh1c2U9InBhaXJ3aXNlLmNvbXBsZXRlLm9icyIpDQoNCmhpZ2hfY29ycl9wYWlycyA8LSBjb3JfbWF0cml4MSAlPiUNCiAgc3RyZXRjaCgpICU+JQ0KICBmaWx0ZXIoYWJzKHIpID4gMC45NSAmIHggIT0geSkNCg0KYGBgDQoNCg0KDQoNCg0KIyMgUTI6IFBDQQ0KDQpUaGVyZSBhcmUgYSBsb3Qgb2Ygc2ltaWxhciBkaW1lbnNpb25zLiBVc2UgUENBIHRvIHNlZSBpZiB3ZSBjYW4gcmVkdWNlIHRoZSBudW1iZXJzIG9mIGJvZHkgbWVhc3VyZW1lbnRzLg0KKkV4cGxhaW4gdGhlIG92ZXJhbGwgcmVzdWx0cywgYW5kIHdlbGwgYXMgZWFjaCB2YXJpYWJsZSdzIGltcGFjdC4gSW4gcGFydGljdWxhciwgd2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIFBDQTEgYW5kIFBDQTI/Kg0KDQpBbnN3ZXI6IFRoZSBwY2EgcmVzdWx0cyByZWR1Y2VkIDE2IGJvZHkgbWVhc3VyZW1lbnQgdmFyaWFibGVzIGludG8gYSBzZXQgb2YgdHdvIHRoYXQgY2FwdHVyZSB0aGUgbWFqb3JpdHkgb2YgdmFyaWFiaWxpdHkgaW4gdGhlIGRhdGFzZXQuIFBDMSAob3ZlcmFsbCBib2R5IHNpemUpIGV4cGxhaW5zIDY0LjQlIG9mIHRvdGFsIHZhcmlhbmNlLiBBbGwgb2YgdGhlIG90aGVyIG1lYXN1cmVtZW50IHZhcmlhYmxlcyBsaWtlbHkgaW5mbHVlbmNlIHBvc2l0aXZlbHkgYW5kIGhlYXZpbHkgb24gcGMxLiBQQzIgZXhwbGFpbnMgMTguOCUgb2YgdG90YWwgdmFyaWFuY2UgYW5kIG1lYXN1cmVzIGRpZmZlcmVuY2VzIGluIHNoYXBlIG9yIHByb3BvcnRpb24NCg0KYGBge3VuZGVmaW5lZCBlY2hvPUZBTFNFfQ0KYm9keV9kYXRhIDwtIHQgJT4lIHNlbGVjdCh3aGVyZShpcy5udW1lcmljKSkgJT4lIG5hLm9taXQoKQ0KDQpwY2FfcmVzdWx0IDwtIHByY29tcChib2R5X2RhdGEsIHNjYWxlLiA9IFRSVUUpDQoNCnN1bW1hcnkocGNhX3Jlc3VsdCkNCg0KYGBgDQoNCg0KDQojIyBRMzogTGluZWFyIE1vZGVsIA0KDQpDcmVhdGUgdHdvIGxpbmVhciByZWdyZXNzaW9uIG1vZGVsIHRoYXQgcHJlZGljdCB3ZWlnaHQuDQoNClN0YXJ0IGJ5IHVzaW5nIGFueSBtYW55IHZhcmlhYmxlcyBhcyBwb3NzaWJsZS4gVGhlbiwgdXNlIGEgc2ltcGxlciBtb2RlbCB3aXRoIGFzIGZldyB2YXJpYWJsZXMgYXMgcG9zc2libGUuIA0KDQpDb21wYXJlIHRoZSByZXN1bHRzIGFuZCBleHBsYWluIHdoaWNoIHlvdSB3b3VsZCB3YW50IHRvIHVzZSBpbiBhIHNpdHVhdGlvbiB3aGVyZSBnYXRoZXJpbmcgZGF0YSBpcyB2ZXJ5IGV4cGVuc2l2ZS4gDQoNClVzZSBSU01FIHRvIGNvbXBhcmUgeW91ciByZXN1bHRzLCBhcyB3ZWxsIGFzIGFkanVzdGVkIFIgc3F1YXJlZC4NCg0KQW5zd2VyOiBJbiBhIHNpdHVhdGlvbiB3aGVyZSBkYXRhIGNvbGxlY3Rpb24gaXMgZXhwZW5zaXZlLCB0aGUgc21hbGxlciBtb2RlbCBpcyB0aGUgYmVzdCB3YXkgdG8gZ28uIFlvdSBnZXQgYW4gZXhjZWxsZW50IHJeMiBzY29yZSBmb3IgYSBmcmFjdGlvbiBvZiB0aGUgcHJpY2UuIA0KDQpgYGB7dW5kZWZpbmVkIGluY2x1ZGU9RkFMU0V9DQoNCnJlZ19iaWcgPC0gbG0od2VpZ2h0X2xicyB+IC4sIGRhdGEgPSB0KQ0KDQpzdW1tYXJ5KHJlZ19iaWcpDQoNCnJlZ19zbWFsbCA8LSBsbSh3ZWlnaHRfbGJzIH4gY2hlc3QgKyB3YWlzdCArIGhpcCwgZGF0YSA9IHQpDQoNCnN1bW1hcnkocmVnX3NtYWxsKQ0KDQoNCnJtc2VfYmlnIDwtIHNxcnQobWVhbihyZWdfYmlnJHJlc2lkdWFsc14yKSkNCnJtc2Vfc21hbGwgPC0gc3FydChtZWFuKHJlZ19zbWFsbCRyZXNpZHVhbHNeMikpDQoNCmFkal9yMl9iaWcgPC0gc3VtbWFyeShyZWdfYmlnKSRhZGouci5zcXVhcmVkDQphZGpfcjJfc21hbGwgPC0gc3VtbWFyeShyZWdfc21hbGwpJGFkai5yLnNxdWFyZWQNCg0KYGBgDQoNCg0KDQojIyBRNDogT3RoZXIgTW9kZWwNCg0KVXNlIGEgZGlmZmVyZW50IG1vZGVsIHRvIHByZWRpY3Qgd2Fpc3QuIFNob3cgYSB2aXN1YWxpemF0aW9uIG9mIHlvdXIgcmVzdWx0cywgYW5kIGV4cGxhaW4gd2hhdCB0aGV5IHRlbGwgdXMgYWJvdXQgdGhlIGRhdGEuIFNob3VsZCB3ZSB1c2UgYSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCBvciB0aGlzIGFsdGVybmF0aXZlIGFwcHJvYWNoPyBVc2UgUlNNRSB0byBleHBsYWluIHlvdXIgcmVzdWx0cy4NCg0KQW5zd2VyOiBJIHRoaW5rIGdvaW5nIHdpdGggYSB0aWdodCBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCB3b3VsZCBiZSB0aGUgYmVzdCB3YXkgdG8gZ28uIEl0IHBvc3RlZCBhbiByc21lIHNjb3JlIG9mIDEuNSB3aGlsZSBteSB0cmVlIG1ldGhvZCBwb3N0ZWQgYSBzY29yZSBvZiAyLjAsIGNsb3NlLCBidXQgbWFyZ2luYWxseSBiZXR0ZXIuIA0KDQpgYGB7dW5kZWZpbmVkIGVjaG89RkFMU0V9DQpsaWJyYXJ5KHJwYXJ0KQ0KbGlicmFyeShycGFydC5wbG90KQ0KbGlicmFyeShnZ3Bsb3QyKQ0KDQpkZiA8LSB0ICU+JQ0KICBzZWxlY3Qod2Fpc3QsIGFua2xlLCBgYXJtLWxlbmd0aGAsIGJpY2VwLCBjYWxmLCBjaGVzdCwgZm9yZWFybSwgaGlwLA0KICAgICAgICAgYGxlZy1sZW5ndGhgLCBgc2hvdWxkZXItYnJlYWR0aGAsIGBzaG91bGRlci10by1jcm90Y2hgLCB0aGlnaCwgd3Jpc3QpICU+JQ0KICBuYS5vbWl0KCkNCg0Kc2V0LnNlZWQoMTIzKQ0KbiA8LSBucm93KGRmKQ0KdHJhaW5faW5kaWNlcyA8LSBzYW1wbGUoMTpuLCBzaXplID0gMC44ICogbikNCg0KdHJhaW4gPC0gZGZbdHJhaW5faW5kaWNlcywgXQ0KdGVzdCA8LSBkZlstdHJhaW5faW5kaWNlcywgXQ0KDQp0cmVlX21vZGVsIDwtIHJwYXJ0KHdhaXN0IH4gLiwgZGF0YSA9IHRyYWluLCBtZXRob2QgPSAiYW5vdmEiKQ0KDQpycGFydC5wbG90KHRyZWVfbW9kZWwpDQoNCnByZWRfdHJlZSA8LSBwcmVkaWN0KHRyZWVfbW9kZWwsIG5ld2RhdGEgPSB0ZXN0KQ0KDQpybXNlX3RyZWUgPC0gc3FydChtZWFuKChwcmVkX3RyZWUgLSB0ZXN0JHdhaXN0KV4yKSkNCmNhdCgiRGVjaXNpb24gVHJlZSBSTVNFOiIsIHJvdW5kKHJtc2VfdHJlZSwgMiksICJcbiIpDQoNCmxtX21vZGVsIDwtIGxtKHdhaXN0IH4gLiwgZGF0YSA9IHRyYWluKQ0KcHJlZF9sbSA8LSBwcmVkaWN0KGxtX21vZGVsLCBuZXdkYXRhID0gdGVzdCkNCnJtc2VfbG0gPC0gc3FydChtZWFuKChwcmVkX2xtIC0gdGVzdCR3YWlzdCleMikpDQpjYXQoIkxpbmVhciBSZWdyZXNzaW9uIFJNU0U6Iiwgcm91bmQocm1zZV9sbSwgMiksICJcbiIpDQoNCnJlc3VsdHMgPC0gZGF0YS5mcmFtZSgNCiAgQWN0dWFsID0gdGVzdCR3YWlzdCwNCiAgVHJlZSA9IHByZWRfdHJlZSwNCiAgTGluZWFyID0gcHJlZF9sbQ0KKQ0KDQpnZ3Bsb3QocmVzdWx0cywgYWVzKHggPSBUcmVlLCB5ID0gQWN0dWFsKSkgKw0KICBnZW9tX3BvaW50KGFlcyhjb2xvciA9ICJEZWNpc2lvbiBUcmVlIikpICsNCiAgZ2VvbV9wb2ludChhZXMoeCA9IExpbmVhciwgeSA9IEFjdHVhbCwgY29sb3IgPSAiTGluZWFyIFJlZ3Jlc3Npb24iKSkgKw0KICBnZW9tX2FibGluZShzbG9wZSA9IDEsIGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gImRhc2hlZCIpICsNCiAgbGFicyh4ID0gIlByZWRpY3RlZCBXYWlzdCIsIHkgPSAiQWN0dWFsIFdhaXN0IiwgdGl0bGUgPSAiUHJlZGljdGVkIHZzIEFjdHVhbCBXYWlzdCIpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIkRlY2lzaW9uIFRyZWUiID0gImdyZWVuIiwgIkxpbmVhciBSZWdyZXNzaW9uIiA9ICJyZWQiKSkNCg0KDQpgYGA=