1 Executive Summary

The aim of this report is to investigate retail store performance by exploring two key variables anticipated to influence monthly sales revenue. Product Variety and store size were selected as predictor factors and underwent a linear regression analysis. Based on the strength of the models for both variables, significant correlations were evident. These findings supported the hypothesis that bigger stores and increased product variety drive greater sales. However, a limitation of the model is the exclusion of external factors like economic conditions that may contribute to revenue. Based on the findings, the recommendations are that businesses should maximize store size and product variety to optimize revenue. Future studies could integrate additional conditions for better insights.

2 Initial Data Analysis (IDA)

This data focuses on retail store performance indicators that demonstrate business success. The dataset to be analysed is public data from data.gov.au, the central source of Australian government data and a credible site of trusted data collection. The data covers a large range of businesses based in the US suitable for global and regional analyses. There is adequate metadata provided, which provides sufficient transparency. Thus, the data is valid. Exploration of the data made clear the presence of all values, decreasing the possibility of limitations around incomplete data sets. This retains data integrity and provides a strong basis for analysis.

While comprehensive, potential limitations may exist in the dataset’s geographical or industry-specific biases. This could limit generalisability to all retail environments. In addition, external factors like customer demographics or marketing efforts are not included, which may also heavily influence revenue yet not explored in this analysis. Finally, data accuracy is determined by how businesses originally reported their performance, possibly introducing inconsistencies.

The dataset consists of nine variables which make up various indicators of retail store performance. The variables analysed in this report are summarized below:

  • Store Size: The physical size of the store in square meters.

  • Marketing Spend: Monthly expenditure on marketing activities, measured in thousands of dollars.

  • Customer Footfall: The total number of customers visiting the store each month.

  • Product Variety: The number of unique products available in the store.

  • Employee Efficiency: Average efficiency score of employees, scaled from 0 to 100.

  • Store Age: The number of years the store has been in operation.

  • Competitor Distance: Distance to the nearest competitor in kilometers.

  • Promotions Count: The number of promotional events conducted by the store monthly.

  • Economic Indicator: A regional economic activity index reflecting local market conditions.

  • Store Location: The city or region where the store is located.

  • Store Category: The type of store (e.g., “Grocery,” “Electronics,” or “Clothing”).

  • Monthly Sales Revenue: Total monthly sales revenue, measured in thousands of dollars.

This analysis will produce actionable insights to shape business approaches and help stakeholders optimize their revenue via informed strategies. For the purpose of our investigation, Product Variety and Store Size were selected as strong predictors of store success, established through correlation analysis in the initial data exploration against the alternative variables.

3 Data Analysis

Based on exploration, we established strongest correlation with Product Variety, now code for scatter plot.

## `geom_smooth()` using formula = 'y ~ x'

## 
## Call:
## lm(formula = MonthlySalesRevenue ~ ProductVariety, data = df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -120.007  -35.165   -1.606   34.856  115.850 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.498e+02  4.207e+00   35.60   <2e-16 ***
## ProductVariety 2.984e-01  8.055e-03   37.05   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 48.43 on 1648 degrees of freedom
## Multiple R-squared:  0.4545, Adjusted R-squared:  0.4541 
## F-statistic:  1373 on 1 and 1648 DF,  p-value: < 2.2e-16

So p-value < 2.2e-16 < 0.05 = strong correlation

Based on data exploration, store size appears to also have a relationship with revenue. Now to repeat scatter plot and regression test with a new variable.

## `geom_smooth()` using formula = 'y ~ x'

## 
## Call:
## lm(formula = MonthlySalesRevenue ~ StoreSize, data = df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -151.528  -35.369    0.369   34.160  189.331 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 2.169e+02  2.976e+00   72.89   <2e-16 ***
## StoreSize   3.016e-01  9.828e-03   30.68   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 52.3 on 1648 degrees of freedom
## Multiple R-squared:  0.3636, Adjusted R-squared:  0.3632 
## F-statistic: 941.6 on 1 and 1648 DF,  p-value: < 2.2e-16

4 Hypothesis Test

Hypotheses

4.0.0.1 Q1: Product Variety and Monthly Revenue

  • H0 (Null Hypothesis): There is no significant relationship between product variety and monthly sales revenue.

  • H1 (Alternative Hypothesis): There is a significant relationship between product variety and monthly sales revenue.

4.0.0.2 Q2: Store Size and Monthly Revenue

  • H0 (Null Hypothesis): There is no significant relationship between store size and monthly sales revenue.

  • H1​ (Alternative Hypothesis): There is a significant relationship between store size and monthly sales revenue.

Assumptions

For both models:

  • The variables are linearly related.

  • The errors are independent, homoscedastic (constant residual variance) and normally distributed.

This study uses linear regression to model the relationship between independent variables (product variety and store size) and the dependent variable (monthly revenue). The model is specified as:

Y=β0+β0​X

Y: dependent variable,

X: independent variable

β0: intercept

β1: regression coefficient

Thus, the models for each question are as follows:

Q1) y = 1.498e+02 + 2.984e-01x

Q2) y = 2.169e+02 + 3.016e-01x

P-value:

By extrapolating the data, the following findings are demonstrated:

Q1) There is a statistically significant relationship between product variety and monthly revenue (p < 0.05). We reject the null hypothesis that they share no correlation.

Q2) There is a statistically significant relationship between store size and monthly revenue (p < 0.05). We reject the null hypothesis that they share no correlation.

Test Statistic:

Q1) t=37.05

Q2) t=30.68

  • Both t-values are large and their corresponding p-values are < 2.2e-16,

  • Significantly below 0.05, so we reject the null hypothesis in both cases.

  • These findings demonstrate both product variety and store size’s statistically significant and positive impact on monthly revenue.

5 Recommendations

  • Based on our statistically significant results and current literature, a number of recommendations can be made.

  • Research suggests that widening product variety can promote a business’ capacity to meet diverse consumer needs, potentially resulting in increased sales and profits.

  • It’s important to consider the balance of associated costs, including greater inventory and supply chain complexity that comes with a wider variety.

  • A study published in the European Journal of Operational Research Research suggests that expansions in product variety result in higher inventory levels (Thonemann & Bradley, 2002).

  • Research suggests a positive correlation between store size and profitability.

  • A larger store size can potentially increase profitability by allowing for a wider product selection, improved customer experience and a larger customer base.

  • For example, a study examining the textile business in Pakistan found that firm profitability was positively correlated with firm size and sales growth (Azhar & Ahmad, 2019).

Overall, these studies support the notion that both product variety and store size can significantly influence a company’s profitability, aliging with the statistically signfiicant findings present in the analysis. These variables are key promoters of retail store performance and must be be taken into account by stakeholders and business owners to strategically guide their economic success.

6 References

Azhar, K., & Ahmad, N. (2019). Relationship between firm size and profitability: Investigation from textile sector of Pakistan. Journal Name, 11(X), 63–73

Thonemann, U., & Bradley, J. (2002). The effect of product variety on supply-chain performance. European Journal of Operational Research, 143(3), 548–569. https://doi.org/10.1016/S0377- 2217(01)00343-5

LS0tDQp0aXRsZTogIlJlcG9ydDogUmV0YWlsIFN0b3JlIFBlcmZvcm1hbmNlIg0KYXV0aG9yOiAiU3R1ZGVudC9zIFNJRDo1MTAzNzgyMjIiDQpzdWJ0aXRsZTogIlByb2plY3QgMiINCmRhdGU6ICJVbml2ZXJzaXR5IG9mIFN5ZG5leSB8IE1BVEgxMTE1IHwgYHIgZm9ybWF0KFN5cy50aW1lKCksICclQiAlWScpYCINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUgICMgZG9uJ3QgY2hhbmdlIHRoaXMNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlICMgZW1iZWQgLlJtZCBmaWxlDQogICAgdG9jOiB0cnVlICAjIHRhYmxlIG9mIGNvbnRlbnRzDQogICAgdG9jX2RlcHRoOiAzDQogICAgdG9jX2Zsb2F0OiB0cnVlICMgdG9jIGlzIGFsd2F5cyB2aXNpYmxlIHdoZW4gc2Nyb2xsZWQNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUgIyBhZGQgc2VjdGlvbiBudW1iZXJzIHRvIGhlYWRpbmdzIA0KICAgIGRmX3ByaW50OiBwYWdlZCAjIGZvcm1hdCBkYXRhIGZyYW1lIG91dHB1dHMgYXV0b21hdGljYWxseQ0KICAgIHRoZW1lOiBzYW5kc3RvbmUgIyB0aGVtZSB0aGUgZG9jDQogICAgaGlnaGxpZ2h0OiB0YW5nbyAjIHRoZW1lIHN5bnRheCBjb2xvdXJpbmcNCi0tLQ0KDQpgYGB7Y3NzIG5ld3N0eWxlcywgZWNobz1GQUxTRX0NCmJvZHkgew0KICBjb2xvcjogYmxhY2s7DQp9DQpgYGANCg0KIyBFeGVjdXRpdmUgU3VtbWFyeQ0KDQpUaGUgYWltIG9mIHRoaXMgcmVwb3J0IGlzIHRvIGludmVzdGlnYXRlIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZSBieSBleHBsb3JpbmcgdHdvIGtleSB2YXJpYWJsZXMgYW50aWNpcGF0ZWQgdG8gaW5mbHVlbmNlIG1vbnRobHkgc2FsZXMgcmV2ZW51ZS4gUHJvZHVjdCBWYXJpZXR5IGFuZCBzdG9yZSBzaXplIHdlcmUgc2VsZWN0ZWQgYXMgcHJlZGljdG9yIGZhY3RvcnMgYW5kIHVuZGVyd2VudCBhIGxpbmVhciByZWdyZXNzaW9uIGFuYWx5c2lzLiBCYXNlZCBvbiB0aGUgc3RyZW5ndGggb2YgdGhlIG1vZGVscyBmb3IgYm90aCB2YXJpYWJsZXMsIHNpZ25pZmljYW50IGNvcnJlbGF0aW9ucyB3ZXJlIGV2aWRlbnQuIFRoZXNlIGZpbmRpbmdzIHN1cHBvcnRlZCB0aGUgaHlwb3RoZXNpcyB0aGF0IGJpZ2dlciBzdG9yZXMgYW5kIGluY3JlYXNlZCBwcm9kdWN0IHZhcmlldHkgZHJpdmUgZ3JlYXRlciBzYWxlcy4gSG93ZXZlciwgYSBsaW1pdGF0aW9uIG9mIHRoZSBtb2RlbCBpcyB0aGUgZXhjbHVzaW9uIG9mIGV4dGVybmFsIGZhY3RvcnMgbGlrZSBlY29ub21pYyBjb25kaXRpb25zIHRoYXQgbWF5IGNvbnRyaWJ1dGUgdG8gcmV2ZW51ZS4gQmFzZWQgb24gdGhlIGZpbmRpbmdzLCB0aGUgcmVjb21tZW5kYXRpb25zIGFyZSB0aGF0IGJ1c2luZXNzZXMgc2hvdWxkIG1heGltaXplIHN0b3JlIHNpemUgYW5kIHByb2R1Y3QgdmFyaWV0eSB0byBvcHRpbWl6ZSByZXZlbnVlLiBGdXR1cmUgc3R1ZGllcyBjb3VsZCBpbnRlZ3JhdGUgYWRkaXRpb25hbCBjb25kaXRpb25zIGZvciBiZXR0ZXIgaW5zaWdodHMuDQoNCiMgSW5pdGlhbCBEYXRhIEFuYWx5c2lzIChJREEpDQoNClRoaXMgZGF0YSBmb2N1c2VzIG9uIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZSBpbmRpY2F0b3JzIHRoYXQgZGVtb25zdHJhdGUgYnVzaW5lc3Mgc3VjY2Vzcy4gVGhlIGRhdGFzZXQgdG8gYmUgYW5hbHlzZWQgaXMgcHVibGljIGRhdGEgZnJvbSBkYXRhLmdvdi5hdSwgdGhlIGNlbnRyYWwgc291cmNlIG9mIEF1c3RyYWxpYW4gZ292ZXJubWVudCBkYXRhIGFuZCBhIGNyZWRpYmxlIHNpdGUgb2YgdHJ1c3RlZCBkYXRhIGNvbGxlY3Rpb24uIFRoZSBkYXRhIGNvdmVycyBhIGxhcmdlIHJhbmdlIG9mIGJ1c2luZXNzZXMgYmFzZWQgaW4gdGhlIFVTIHN1aXRhYmxlIGZvciBnbG9iYWwgYW5kIHJlZ2lvbmFsIGFuYWx5c2VzLiBUaGVyZSBpcyBhZGVxdWF0ZSBtZXRhZGF0YSBwcm92aWRlZCwgd2hpY2ggcHJvdmlkZXMgc3VmZmljaWVudCB0cmFuc3BhcmVuY3kuIFRodXMsIHRoZSBkYXRhIGlzIHZhbGlkLsKgRXhwbG9yYXRpb24gb2YgdGhlIGRhdGEgbWFkZSBjbGVhciB0aGUgcHJlc2VuY2Ugb2YgYWxsIHZhbHVlcywgZGVjcmVhc2luZyB0aGUgcG9zc2liaWxpdHkgb2YgbGltaXRhdGlvbnMgYXJvdW5kIGluY29tcGxldGUgZGF0YSBzZXRzLiBUaGlzIHJldGFpbnMgZGF0YSBpbnRlZ3JpdHkgYW5kIHByb3ZpZGVzIGEgc3Ryb25nIGJhc2lzIGZvciBhbmFseXNpcy4NCg0KV2hpbGUgY29tcHJlaGVuc2l2ZSwgcG90ZW50aWFsIGxpbWl0YXRpb25zIG1heSBleGlzdCBpbiB0aGUgZGF0YXNldCdzIGdlb2dyYXBoaWNhbCBvciBpbmR1c3RyeS1zcGVjaWZpYyBiaWFzZXMuIFRoaXMgY291bGQgbGltaXQgZ2VuZXJhbGlzYWJpbGl0eSB0byBhbGwgcmV0YWlsIGVudmlyb25tZW50cy4gSW4gYWRkaXRpb24sIGV4dGVybmFsIGZhY3RvcnMgbGlrZSBjdXN0b21lciBkZW1vZ3JhcGhpY3Mgb3IgbWFya2V0aW5nIGVmZm9ydHMgYXJlIG5vdCBpbmNsdWRlZCwgd2hpY2ggbWF5IGFsc28gaGVhdmlseSBpbmZsdWVuY2UgcmV2ZW51ZSB5ZXQgbm90IGV4cGxvcmVkIGluIHRoaXMgYW5hbHlzaXMuIEZpbmFsbHksIGRhdGEgYWNjdXJhY3kgaXMgZGV0ZXJtaW5lZCBieSBob3cgYnVzaW5lc3NlcyBvcmlnaW5hbGx5IHJlcG9ydGVkIHRoZWlyIHBlcmZvcm1hbmNlLCBwb3NzaWJseSBpbnRyb2R1Y2luZyBpbmNvbnNpc3RlbmNpZXMuDQoNClRoZSBkYXRhc2V0IGNvbnNpc3RzIG9mIG5pbmUgdmFyaWFibGVzIHdoaWNoIG1ha2UgdXAgdmFyaW91cyBpbmRpY2F0b3JzIG9mIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZS4gVGhlIHZhcmlhYmxlcyBhbmFseXNlZCBpbiB0aGlzIHJlcG9ydCBhcmUgc3VtbWFyaXplZCBiZWxvdzoNCg0KLSAgIFN0b3JlIFNpemU6IFRoZSBwaHlzaWNhbCBzaXplIG9mIHRoZSBzdG9yZSBpbiBzcXVhcmUgbWV0ZXJzLg0KDQotICAgTWFya2V0aW5nIFNwZW5kOiBNb250aGx5IGV4cGVuZGl0dXJlIG9uIG1hcmtldGluZyBhY3Rpdml0aWVzLCBtZWFzdXJlZCBpbiB0aG91c2FuZHMgb2YgZG9sbGFycy4NCg0KLSAgIEN1c3RvbWVyIEZvb3RmYWxsOiBUaGUgdG90YWwgbnVtYmVyIG9mIGN1c3RvbWVycyB2aXNpdGluZyB0aGUgc3RvcmUgZWFjaCBtb250aC4NCg0KLSAgIFByb2R1Y3QgVmFyaWV0eTogVGhlIG51bWJlciBvZiB1bmlxdWUgcHJvZHVjdHMgYXZhaWxhYmxlIGluIHRoZSBzdG9yZS4NCg0KLSAgIEVtcGxveWVlIEVmZmljaWVuY3k6IEF2ZXJhZ2UgZWZmaWNpZW5jeSBzY29yZSBvZiBlbXBsb3llZXMsIHNjYWxlZCBmcm9tIDAgdG8gMTAwLg0KDQotICAgU3RvcmUgQWdlOiBUaGUgbnVtYmVyIG9mIHllYXJzIHRoZSBzdG9yZSBoYXMgYmVlbiBpbiBvcGVyYXRpb24uDQoNCi0gICBDb21wZXRpdG9yIERpc3RhbmNlOiBEaXN0YW5jZSB0byB0aGUgbmVhcmVzdCBjb21wZXRpdG9yIGluIGtpbG9tZXRlcnMuDQoNCi0gICBQcm9tb3Rpb25zIENvdW50OiBUaGUgbnVtYmVyIG9mIHByb21vdGlvbmFsIGV2ZW50cyBjb25kdWN0ZWQgYnkgdGhlIHN0b3JlIG1vbnRobHkuDQoNCi0gICBFY29ub21pYyBJbmRpY2F0b3I6IEEgcmVnaW9uYWwgZWNvbm9taWMgYWN0aXZpdHkgaW5kZXggcmVmbGVjdGluZyBsb2NhbCBtYXJrZXQgY29uZGl0aW9ucy4NCg0KLSAgIFN0b3JlIExvY2F0aW9uOiBUaGUgY2l0eSBvciByZWdpb24gd2hlcmUgdGhlIHN0b3JlIGlzIGxvY2F0ZWQuDQoNCi0gICBTdG9yZSBDYXRlZ29yeTogVGhlIHR5cGUgb2Ygc3RvcmUgKGUuZy4sICJHcm9jZXJ5LCIgIkVsZWN0cm9uaWNzLCIgb3IgIkNsb3RoaW5nIikuDQoNCi0gICBNb250aGx5IFNhbGVzIFJldmVudWU6IFRvdGFsIG1vbnRobHkgc2FsZXMgcmV2ZW51ZSwgbWVhc3VyZWQgaW4gdGhvdXNhbmRzIG9mIGRvbGxhcnMuDQoNClRoaXMgYW5hbHlzaXMgd2lsbCBwcm9kdWNlIGFjdGlvbmFibGUgaW5zaWdodHMgdG8gc2hhcGUgYnVzaW5lc3MgYXBwcm9hY2hlcyBhbmQgaGVscCBzdGFrZWhvbGRlcnMgb3B0aW1pemUgdGhlaXIgcmV2ZW51ZSB2aWEgaW5mb3JtZWQgc3RyYXRlZ2llcy4gRm9yIHRoZSBwdXJwb3NlIG9mIG91ciBpbnZlc3RpZ2F0aW9uLCBQcm9kdWN0IFZhcmlldHkgYW5kIFN0b3JlIFNpemUgd2VyZSBzZWxlY3RlZCBhcyBzdHJvbmcgcHJlZGljdG9ycyBvZiBzdG9yZSBzdWNjZXNzLCBlc3RhYmxpc2hlZCB0aHJvdWdoIGNvcnJlbGF0aW9uIGFuYWx5c2lzIGluIHRoZSBpbml0aWFsIGRhdGEgZXhwbG9yYXRpb24gYWdhaW5zdCB0aGUgYWx0ZXJuYXRpdmUgdmFyaWFibGVzLg0KDQpgYGB7ciBzZXR1cCwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KZGYgPC0gcmVhZF9jc3YoIkM6L1VzZXJzL2F2YWxvL09uZURyaXZlL0RvY3VtZW50cy9NQVRIMTExNS9SZXRhaWwgU3RvcmUgUGVyZm9ybWFuY2UgRGF0YS5jc3YiKQ0KZGYgPC0gZGYgJT4lIGRyb3BfbmEoKQ0KY29yX21hdHJpeCA8LSBjb3IoZGYgJT4lIHNlbGVjdF9pZihpcy5udW1lcmljKSwgdXNlID0gImNvbXBsZXRlLm9icyIpDQoNCg0KYGBgDQoNCiMgRGF0YSBBbmFseXNpcw0KDQpCYXNlZCBvbiBleHBsb3JhdGlvbiwgd2UgZXN0YWJsaXNoZWQgc3Ryb25nZXN0IGNvcnJlbGF0aW9uIHdpdGggUHJvZHVjdCBWYXJpZXR5LCBub3cgY29kZSBmb3Igc2NhdHRlciBwbG90Lg0KDQpgYGB7ciBzY2F0dGVyX3Bsb3RfMSwgZWNobz1GQUxTRX0NCiMgRW5zdXJlIGxpYnJhcmllcyBhcmUgbG9hZGVkIGluIHNldHVwIGNodW5rDQpnZ3Bsb3QoZGYsIGFlcyh4ID0gUHJvZHVjdFZhcmlldHksIHkgPSBNb250aGx5U2FsZXNSZXZlbnVlKSkgKw0KICBnZW9tX3BvaW50KGFscGhhID0gMC41LCBjb2xvciA9ICJzdGVlbGJsdWUiKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIHNlID0gRkFMU0UsIGNvbG9yID0gIm9yYW5nZSIpICsNCiAgbGFicyh0aXRsZSA9ICJQcm9kdWN0IFZhcmlldHkgdnMuIE1vbnRobHkgU2FsZXMgUmV2ZW51ZSIsDQogICAgICAgeCA9ICJQcm9kdWN0IFZhcmlldHkiLA0KICAgICAgIHkgPSAiTW9udGhseSBTYWxlcyBSZXZlbnVlIChUaG91c2FuZHMgb2YgRG9sbGFycykiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQojIFJ1biB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gYW5hbHlzaXMNCm1vZGVsIDwtIGxtKE1vbnRobHlTYWxlc1JldmVudWUgfiBQcm9kdWN0VmFyaWV0eSwgZGF0YSA9IGRmKQ0Kc3VtbWFyeShtb2RlbCkNCg0KYGBgDQoNClNvIHAtdmFsdWUgXDwgMi4yZS0xNiBcPCAwLjA1ID0gc3Ryb25nIGNvcnJlbGF0aW9uDQoNCkJhc2VkIG9uIGRhdGEgZXhwbG9yYXRpb24sIHN0b3JlIHNpemUgYXBwZWFycyB0byBhbHNvIGhhdmUgYSByZWxhdGlvbnNoaXAgd2l0aCByZXZlbnVlLiBOb3cgdG8gcmVwZWF0IHNjYXR0ZXIgcGxvdCBhbmQgcmVncmVzc2lvbiB0ZXN0IHdpdGggYSBuZXcgdmFyaWFibGUuDQoNCmBgYHtyIHN0b3JlX3NpemVfcGxvdF8yLCBlY2hvPUZBTFNFfQ0KZ2dwbG90KGRmLCBhZXMoeCA9IFN0b3JlU2l6ZSwgeSA9IE1vbnRobHlTYWxlc1JldmVudWUpKSArDQogIGdlb21fcG9pbnQoYWxwaGEgPSAwLjUsIGNvbG9yID0gInN0ZWVsYmx1ZSIpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgc2UgPSBGQUxTRSwgY29sb3IgPSAicGluayIpICsNCiAgbGFicyh0aXRsZSA9ICJTdG9yZSBTaXplIHZzLiBNb250aGx5IFNhbGVzIFJldmVudWUiLA0KICAgICAgIHggPSAiU3RvcmUgU2l6ZSAoU3F1YXJlIE1ldGVycykiLA0KICAgICAgIHkgPSAiTW9udGhseSBTYWxlcyBSZXZlbnVlIChUaG91c2FuZHMgb2YgRG9sbGFycykiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQojIFJ1biB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gbW9kZWwNCm1vZGVsIDwtIGxtKE1vbnRobHlTYWxlc1JldmVudWUgfiBTdG9yZVNpemUsIGRhdGEgPSBkZikNCnN1bW1hcnkobW9kZWwpDQpgYGANCg0KIyBIeXBvdGhlc2lzIFRlc3QNCg0KKipIeXBvdGhlc2VzKioNCg0KIyMjIyAqKlExOiBQcm9kdWN0IFZhcmlldHkgYW5kIE1vbnRobHkgUmV2ZW51ZSoqDQoNCi0gICBIMCAoTnVsbCBIeXBvdGhlc2lzKTogVGhlcmUgaXMgbm8gc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvZHVjdCB2YXJpZXR5IGFuZCBtb250aGx5IHNhbGVzIHJldmVudWUuDQoNCi0gICBIMSAoQWx0ZXJuYXRpdmUgSHlwb3RoZXNpcyk6IFRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvZHVjdCB2YXJpZXR5IGFuZCBtb250aGx5IHNhbGVzIHJldmVudWUuDQoNCiMjIyMgKipRMjogU3RvcmUgU2l6ZSBhbmQgTW9udGhseSBSZXZlbnVlKioNCg0KLSAgIEgwIChOdWxsIEh5cG90aGVzaXMpOiBUaGVyZSBpcyBubyBzaWduaWZpY2FudCByZWxhdGlvbnNoaXAgYmV0d2VlbiBzdG9yZSBzaXplIGFuZCBtb250aGx5IHNhbGVzIHJldmVudWUuDQoNCi0gICBIMeKAiyAoQWx0ZXJuYXRpdmUgSHlwb3RoZXNpcyk6IFRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gc3RvcmUgc2l6ZSBhbmQgbW9udGhseSBzYWxlcyByZXZlbnVlLg0KDQoqKkFzc3VtcHRpb25zKioNCg0KRm9yIGJvdGggbW9kZWxzOg0KDQotICAgVGhlIHZhcmlhYmxlcyBhcmUgbGluZWFybHkgcmVsYXRlZC4NCg0KLSAgIFRoZSBlcnJvcnMgYXJlIGluZGVwZW5kZW50LCBob21vc2NlZGFzdGljIChjb25zdGFudCByZXNpZHVhbCB2YXJpYW5jZSkgYW5kIG5vcm1hbGx5IGRpc3RyaWJ1dGVkLg0KDQpUaGlzIHN0dWR5IHVzZXMgbGluZWFyIHJlZ3Jlc3Npb24gdG8gbW9kZWwgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGluZGVwZW5kZW50IHZhcmlhYmxlcyAocHJvZHVjdCB2YXJpZXR5IGFuZCBzdG9yZSBzaXplKSBhbmQgdGhlIGRlcGVuZGVudCB2YXJpYWJsZSAobW9udGhseSByZXZlbnVlKS4gVGhlIG1vZGVsIGlzIHNwZWNpZmllZCBhczoNCg0KWSoqPSoqzrIqKjArKirOsioqMOKAiyoqWA0KDQpZOiBkZXBlbmRlbnQgdmFyaWFibGUsDQoNClg6IGluZGVwZW5kZW50IHZhcmlhYmxlDQoNCs6yMDogaW50ZXJjZXB0DQoNCs6yMTogcmVncmVzc2lvbiBjb2VmZmljaWVudA0KDQpUaHVzLCB0aGUgbW9kZWxzIGZvciBlYWNoIHF1ZXN0aW9uIGFyZSBhcyBmb2xsb3dzOg0KDQpRMSkgeSA9IDEuNDk4ZSswMiArIDIuOTg0ZS0wMXgNCg0KUTIpIHkgPSAyLjE2OWUrMDIgKyAzLjAxNmUtMDF4DQoNCioqUC12YWx1ZToqKg0KDQpCeSBleHRyYXBvbGF0aW5nIHRoZSBkYXRhLCB0aGUgZm9sbG93aW5nIGZpbmRpbmdzIGFyZSBkZW1vbnN0cmF0ZWQ6DQoNClExKSBUaGVyZSBpcyBhIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvZHVjdCB2YXJpZXR5IGFuZCBtb250aGx5IHJldmVudWUgKHAgXDwgMC4wNSkuIFdlIHJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzIHRoYXQgdGhleSBzaGFyZSBubyBjb3JyZWxhdGlvbi4NCg0KUTIpIFRoZXJlIGlzIGEgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCByZWxhdGlvbnNoaXAgYmV0d2VlbiBzdG9yZSBzaXplIGFuZCBtb250aGx5IHJldmVudWUgKHAgXDwgMC4wNSkuIFdlIHJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzIHRoYXQgdGhleSBzaGFyZSBubyBjb3JyZWxhdGlvbi4NCg0KKipUZXN0IFN0YXRpc3RpYyoqOg0KDQpRMSkgdD0zNy4wNQ0KDQpRMikgdD0zMC42OA0KDQotICAgQm90aCB0LXZhbHVlcyBhcmUgbGFyZ2UgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgcC12YWx1ZXMgYXJlIFw8IDIuMmUtMTYsDQoNCi0gICBTaWduaWZpY2FudGx5IGJlbG93IDAuMDUsIHNvIHdlIHJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzIGluIGJvdGggY2FzZXMuDQoNCi0gICBUaGVzZSBmaW5kaW5ncyBkZW1vbnN0cmF0ZSBib3RoIHByb2R1Y3QgdmFyaWV0eSBhbmQgc3RvcmUgc2l6ZSdzIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgYW5kIHBvc2l0aXZlIGltcGFjdCBvbiBtb250aGx5IHJldmVudWUuDQoNCiMgUmVjb21tZW5kYXRpb25zDQoNCi0gICBCYXNlZCBvbiBvdXIgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCByZXN1bHRzIGFuZCBjdXJyZW50IGxpdGVyYXR1cmUsIGEgbnVtYmVyIG9mIHJlY29tbWVuZGF0aW9ucyBjYW4gYmUgbWFkZS4NCg0KLSAgIFJlc2VhcmNoIHN1Z2dlc3RzIHRoYXQgd2lkZW5pbmcgcHJvZHVjdCB2YXJpZXR5IGNhbiBwcm9tb3RlIGEgYnVzaW5lc3MnIGNhcGFjaXR5IHRvIG1lZXQgZGl2ZXJzZSBjb25zdW1lciBuZWVkcywgcG90ZW50aWFsbHkgcmVzdWx0aW5nIGluIGluY3JlYXNlZCBzYWxlcyBhbmQgcHJvZml0cy4NCg0KLSAgIEl0J3MgaW1wb3J0YW50IHRvIGNvbnNpZGVyIHRoZSBiYWxhbmNlIG9mIGFzc29jaWF0ZWQgY29zdHMsIGluY2x1ZGluZyBncmVhdGVyIGludmVudG9yeSBhbmQgc3VwcGx5IGNoYWluIGNvbXBsZXhpdHkgdGhhdCBjb21lcyB3aXRoIGEgd2lkZXIgdmFyaWV0eS4NCg0KLSAgIEEgc3R1ZHkgcHVibGlzaGVkIGluIHRoZSAqRXVyb3BlYW4gSm91cm5hbCBvZiBPcGVyYXRpb25hbCBSZXNlYXJjaCogKlJlc2VhcmNoKiBzdWdnZXN0cyB0aGF0IGV4cGFuc2lvbnMgaW4gcHJvZHVjdCB2YXJpZXR5IHJlc3VsdCBpbiBoaWdoZXIgaW52ZW50b3J5IGxldmVscyAoVGhvbmVtYW5uICYgQnJhZGxleSwgMjAwMikuDQoNCi0gICBSZXNlYXJjaCBzdWdnZXN0cyBhIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJldHdlZW4gc3RvcmUgc2l6ZSBhbmQgcHJvZml0YWJpbGl0eS4NCg0KLSAgIEEgbGFyZ2VyIHN0b3JlIHNpemUgY2FuIHBvdGVudGlhbGx5IGluY3JlYXNlIHByb2ZpdGFiaWxpdHkgYnnCoGFsbG93aW5nIGZvciBhIHdpZGVyIHByb2R1Y3Qgc2VsZWN0aW9uLCBpbXByb3ZlZCBjdXN0b21lciBleHBlcmllbmNlIGFuZCBhIGxhcmdlciBjdXN0b21lciBiYXNlLg0KDQotICAgRm9yIGV4YW1wbGUsIGEgc3R1ZHkgZXhhbWluaW5nIHRoZSB0ZXh0aWxlIGJ1c2luZXNzIGluIFBha2lzdGFuIGZvdW5kIHRoYXQgZmlybSBwcm9maXRhYmlsaXR5IHdhcyBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBmaXJtIHNpemUgYW5kIHNhbGVzIGdyb3d0aCAoQXpoYXIgJiBBaG1hZCwgMjAxOSkuDQoNCk92ZXJhbGwsIHRoZXNlIHN0dWRpZXMgc3VwcG9ydCB0aGUgbm90aW9uIHRoYXQgYm90aCBwcm9kdWN0IHZhcmlldHkgYW5kIHN0b3JlIHNpemUgY2FuIHNpZ25pZmljYW50bHkgaW5mbHVlbmNlIGEgY29tcGFueSdzIHByb2ZpdGFiaWxpdHksIGFsaWdpbmcgd2l0aCB0aGUgc3RhdGlzdGljYWxseSBzaWduZmlpY2FudCBmaW5kaW5ncyBwcmVzZW50IGluIHRoZSBhbmFseXNpcy4gVGhlc2UgdmFyaWFibGVzIGFyZSBrZXkgcHJvbW90ZXJzIG9mIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZSBhbmQgbXVzdCBiZSBiZSB0YWtlbiBpbnRvIGFjY291bnQgYnkgc3Rha2Vob2xkZXJzIGFuZCBidXNpbmVzcyBvd25lcnMgdG8gc3RyYXRlZ2ljYWxseSBndWlkZSB0aGVpciBlY29ub21pYyBzdWNjZXNzLg0KDQojIFJlZmVyZW5jZXMNCg0KQXpoYXIsIEsuLCAmIEFobWFkLCBOLiAoMjAxOSkuIFJlbGF0aW9uc2hpcCBiZXR3ZWVuIGZpcm0gc2l6ZSBhbmQgcHJvZml0YWJpbGl0eTogSW52ZXN0aWdhdGlvbiBmcm9tIHRleHRpbGUgc2VjdG9yIG9mIFBha2lzdGFuLiAqSm91cm5hbCBOYW1lKiwgKjExKihYKSwgNjPigJM3Mw0KDQpUaG9uZW1hbm4sIFUuLCAmIEJyYWRsZXksIEouICgyMDAyKS4gVGhlIGVmZmVjdCBvZiBwcm9kdWN0IHZhcmlldHkgb24gc3VwcGx5LWNoYWluIHBlcmZvcm1hbmNlLiAqRXVyb3BlYW4gSm91cm5hbCBvZiBPcGVyYXRpb25hbCBSZXNlYXJjaCwgMTQzKigzKSwgNTQ44oCTNTY5LiBodHRwczovL2RvaS5vcmcvMTAuMTAxNi9TMDM3Ny0gMjIxNygwMSkwMDM0My01DQo=