Introduction - April 2018

Does confidence in the economy translate into real economic growth? Economists in Brazil (usually the more optimistic) pay much attention to confidence indexes as indicators of turnarounds in the business cycle. One of the most important of these (shown in the figure below) is maintained in Brazil and published by the OECD. (http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/MEI_BTS_COS). The vertical lines mark off the Brazilian presidencies since 1995. The last two lines represent the beginning of impeachment proceedings against Dilma Rouseff in April of 2016 and the new presidency of Michel Temer in September of the same year. Note that the most recent upturn in confidence begins in 2015. There are at least 3 low points in the confidence index that are followed by rapid ascents.

In January of 1999, Cardoso begins his second term at the lowest point in confidence index history. Cardoso´s first term was characterized by several corruption scandals still unresolved even today. Furthermore, three notable economic crises undermined world commerce during Cardoso´s first presidency, originating from Mexico, Asia and Russia. The resulting economic policies that were implemented in Brazil were mostly recessionary including an interest rate increase causing a dramatic increase in unemployment.

In January of 2009, the american credit crisis reaches Brazil however the immediate effects were felt more intensely on the confidence index rather than on the real economy.

The economy peaked in the middle of 2013. Shortly afterwards, there were ongoing manifestations of political unrest throughout Brazil, greatly motivated by the monopoly news media. By August of 2015 the index had sunk to another minimum value due to widespread economic deterioration and the growing distaste for the Rouseff presidency. By the time President Rouseff is finally deposed by the Congress and Michel Temer takes office in September of 2016, the Confidence index had already been rising for more than a year.

But the main question remains, what is the effect of confidence (as measured by the index) on the real economy? It seems rather obvious that business confidence should be a factor in an economic upswing, but does this index show that? What exactly is this index good for? And should this line of research be explored?

The GDP nominal data has been adjusted for inflation with the IPCA - Consumer price index (https://www3.bcb.gov.br/sgspub). Growth had been relatively steady during the period 1995 to 2014. The all time GDP record peak is during the Rouseff presidency in 2014. The low point for the GDP index in recent times is in the month that Michel Temer takes the presidency, setember 2016. In the last several months, real GDP is erratic with no clear tendency, as shown in the results below.

The plot demonstrates that a causal relationship between GDP and confidence is not apparently clear. In fact the two seem independent. Some statistical tests may clarify the situation.

Skip this part if you do not like Statistics. See the HTML document for the full procedure and all R code.

  1. The data was tidied up and first differences calculated to respect stationarity.

  2. Cointegration was found between the two indexes and included in the analysis.

  3. The best variables and lags were chosen using regression analysis and a stepwise procedure.

  4. Forecasting was done with extremely favorable confidence indexes.

  5. These forecasts were compared with a straightforward univariate seasonal ARIMA model.

The figure above shows forecasts based on a univariate seasonal ARIMA model for the (approximate) percentage change in the GDP index, no independent variables are present in the analysis. In other words, the confidence index has been ignored in the above estimates. Note that the GDP index demonstrates considerable negative economic activity for 2018 (where results are below the horizontal line).

This last figure is essentially the same ARIMA model as before, with the diference that the confidence index now enters as an exogenous, along with an error correction term. The two sets of forecasts are very similar but generated with different supositions. At first sight they may appear identical, but they are not. The first model completely ignores the confidence index while the second model is partially determined by the inclusion of confidence as an exogenous variable. In the second model, the confidence index is allowed to increase at the overly optimistic rate at 10% per month. Apparently, the confidence index has little to no efect on the growth of GDP. Conclusion, the confidence index is a poor, very low quality, indicator of future growth. Naturally, this result uncovers two questions: How could the confidence index be better modified, and furthermore which macro-variables are readily available to researchers from open sources to reflect future movements in economic activiy?

LS0tDQp0aXRsZTogIkJyYXppbGlhbiBHRFAgYW5kIHRoZSBCdXNpbmVzcyBDb25maWRlbmNlIEluZGV4Ig0KYXV0aG9yOiAiUm9iZXJ0IFNhbW9oeWwgKHJvYmVydC5zYW1vaHlsQHVmc2MuYnIpIg0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50OiBkZWZhdWx0DQogIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQNCi0tLQ0KYGBge3IsIGluY2x1ZGU9RkFMU0V9DQojQ2hhbmdlIHRvIHlvdXIgd29ya2luZyBkaXJlY3RvcnkNCnNldHdkKCJDOi9Vc2Vycy9TYW1vaHlsL0Rlc2t0b3AvVHJlaW5hbWVudG9QcmV2aXNhbyIpDQpybShsaXN0ID0gbHMoKSkNCiNyZXF1aXJlKGR5bmxtKQ0KcmVxdWlyZShmb3JlY2FzdCkNCnJlcXVpcmUocmVhZHIpDQpyZXF1aXJlKFF1YW5kbCkNCmBgYA0KIyNJbnRyb2R1Y3Rpb24gLSBBcHJpbCAyMDE4DQpEb2VzIGNvbmZpZGVuY2UgaW4gdGhlIGVjb25vbXkgdHJhbnNsYXRlIGludG8gcmVhbCBlY29ub21pYyBncm93dGg/IEVjb25vbWlzdHMgaW4gQnJhemlsICh1c3VhbGx5IHRoZSBtb3JlIG9wdGltaXN0aWMpIHBheSBtdWNoIGF0dGVudGlvbiB0byBjb25maWRlbmNlIGluZGV4ZXMgYXMgaW5kaWNhdG9ycyBvZiB0dXJuYXJvdW5kcyBpbiB0aGUgYnVzaW5lc3MgY3ljbGUuIE9uZSBvZiB0aGUgbW9zdCBpbXBvcnRhbnQgb2YgdGhlc2UgKHNob3duIGluIHRoZSBmaWd1cmUgYmVsb3cpIGlzIG1haW50YWluZWQgaW4gQnJhemlsIGFuZCBwdWJsaXNoZWQgYnkgdGhlIE9FQ0QuDQooaHR0cDovL3N0YXRzLm9lY2Qub3JnL3Jlc3RzZG14L3NkbXguYXNoeC9HZXREYXRhL01FSV9CVFNfQ09TKS4NClRoZSB2ZXJ0aWNhbCBsaW5lcyBtYXJrIG9mZiB0aGUgQnJhemlsaWFuIHByZXNpZGVuY2llcyBzaW5jZSAxOTk1LiBUaGUgbGFzdCB0d28gbGluZXMgcmVwcmVzZW50IHRoZSBiZWdpbm5pbmcgb2YgaW1wZWFjaG1lbnQgcHJvY2VlZGluZ3MgYWdhaW5zdCBEaWxtYSBSb3VzZWZmIGluIEFwcmlsIG9mIDIwMTYgYW5kIHRoZSBuZXcgcHJlc2lkZW5jeSBvZiBNaWNoZWwgVGVtZXIgaW4gU2VwdGVtYmVyIG9mIHRoZSBzYW1lIHllYXIuIE5vdGUgdGhhdCB0aGUgbW9zdCByZWNlbnQgdXB0dXJuIGluIGNvbmZpZGVuY2UgYmVnaW5zIGluIDIwMTUuIFRoZXJlIGFyZSBhdCBsZWFzdCAzIGxvdyBwb2ludHMgaW4gdGhlIGNvbmZpZGVuY2UgaW5kZXggdGhhdCBhcmUgZm9sbG93ZWQgYnkgcmFwaWQgYXNjZW50cy4gDQoNCkluIEphbnVhcnkgb2YgMTk5OSwgQ2FyZG9zbyBiZWdpbnMgaGlzIHNlY29uZCB0ZXJtIGF0IHRoZSBsb3dlc3QgcG9pbnQgaW4gY29uZmlkZW5jZSBpbmRleCBoaXN0b3J5LiBDYXJkb3NvtHMgZmlyc3QgdGVybSB3YXMgY2hhcmFjdGVyaXplZCBieSBzZXZlcmFsIGNvcnJ1cHRpb24gc2NhbmRhbHMgc3RpbGwgdW5yZXNvbHZlZCBldmVuIHRvZGF5LiBGdXJ0aGVybW9yZSwgdGhyZWUgIG5vdGFibGUgZWNvbm9taWMgY3Jpc2VzIHVuZGVybWluZWQgd29ybGQgY29tbWVyY2UgZHVyaW5nIENhcmRvc2+0cyBmaXJzdCBwcmVzaWRlbmN5LCBvcmlnaW5hdGluZyBmcm9tIE1leGljbywgQXNpYSBhbmQgUnVzc2lhLiBUaGUgcmVzdWx0aW5nIGVjb25vbWljIHBvbGljaWVzIHRoYXQgd2VyZSBpbXBsZW1lbnRlZCBpbiBCcmF6aWwgd2VyZSBtb3N0bHkgcmVjZXNzaW9uYXJ5IGluY2x1ZGluZyBhbiBpbnRlcmVzdCByYXRlIGluY3JlYXNlIGNhdXNpbmcgYSBkcmFtYXRpYyBpbmNyZWFzZSBpbiB1bmVtcGxveW1lbnQuDQoNCkluIEphbnVhcnkgb2YgMjAwOSwgdGhlIGFtZXJpY2FuIGNyZWRpdCBjcmlzaXMgcmVhY2hlcyBCcmF6aWwgaG93ZXZlciB0aGUgaW1tZWRpYXRlIGVmZmVjdHMgd2VyZSBmZWx0IG1vcmUgaW50ZW5zZWx5IG9uIHRoZSBjb25maWRlbmNlIGluZGV4IHJhdGhlciB0aGFuIG9uIHRoZSByZWFsIGVjb25vbXkuIA0KDQpUaGUgZWNvbm9teSBwZWFrZWQgaW4gdGhlIG1pZGRsZSBvZiAyMDEzLiBTaG9ydGx5IGFmdGVyd2FyZHMsIHRoZXJlIHdlcmUgb25nb2luZyBtYW5pZmVzdGF0aW9ucyBvZiBwb2xpdGljYWwgdW5yZXN0IHRocm91Z2hvdXQgQnJhemlsLCBncmVhdGx5IG1vdGl2YXRlZCBieSB0aGUgbW9ub3BvbHkgbmV3cyBtZWRpYS4gQnkgQXVndXN0IG9mIDIwMTUgdGhlIGluZGV4IGhhZCBzdW5rIHRvIGFub3RoZXIgbWluaW11bSB2YWx1ZSBkdWUgdG8gd2lkZXNwcmVhZCBlY29ub21pYyBkZXRlcmlvcmF0aW9uIGFuZCB0aGUgZ3Jvd2luZyBkaXN0YXN0ZSBmb3IgdGhlIFJvdXNlZmYgcHJlc2lkZW5jeS4gQnkgdGhlIHRpbWUgUHJlc2lkZW50IFJvdXNlZmYgaXMgZmluYWxseSBkZXBvc2VkIGJ5IHRoZSBDb25ncmVzcyBhbmQgTWljaGVsIFRlbWVyIHRha2VzIG9mZmljZSBpbiBTZXB0ZW1iZXIgb2YgMjAxNiwgdGhlIENvbmZpZGVuY2UgaW5kZXggaGFkIGFscmVhZHkgYmVlbiByaXNpbmcgZm9yIG1vcmUgdGhhbiBhIHllYXIuIA0KDQpCdXQgdGhlIG1haW4gcXVlc3Rpb24gcmVtYWlucywgd2hhdCBpcyB0aGUgZWZmZWN0IG9mIGNvbmZpZGVuY2UgKGFzIG1lYXN1cmVkIGJ5IHRoZSBpbmRleCkgb24gdGhlIHJlYWwgZWNvbm9teT8gSXQgc2VlbXMgcmF0aGVyIG9idmlvdXMgdGhhdCBidXNpbmVzcyBjb25maWRlbmNlIHNob3VsZCBiZSBhIGZhY3RvciBpbiBhbiBlY29ub21pYyB1cHN3aW5nLCBidXQgZG9lcyB0aGlzIGluZGV4IHNob3cgdGhhdD8gV2hhdCBleGFjdGx5IGlzIHRoaXMgaW5kZXggZ29vZCBmb3I/IEFuZCBzaG91bGQgdGhpcyBsaW5lIG9mIHJlc2VhcmNoIGJlIGV4cGxvcmVkPw0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KI1JlYWRpbmcgaW4gQ29uZmlkZW5jZSBEYXRhDQpjb25mPVF1YW5kbCgiT0VDRC9NRUlfQlRTX0NPU19CU0NJX0JSQV9CTFNBX00iLCBhcGlfa2V5PSJTR1hhcHEzYno1dTltdUZrUlhucSIpDQp0ZW1wPWNvbmZbKG5yb3coY29uZik6MSksXQ0KdGVtcC50cz10cyh0ZW1wWywyXSxmcmVxdWVuY3kgPSAxMixzdGFydD1jKDE5OTUsNCkpDQp0ZW1waS50cz10ZW1wLnRzK2FicyhtaW4odGVtcC50cykpDQpjb25mLnRzPXRlbXBpLnRzL3RlbXBpLnRzW2xlbmd0aCh0ZW1waS50cyldOyN0YWlsKGNvbmYudHMpDQpwbG90KGNvbmYudHMsY29sPSJibHVlIixsd2Q9Myx5bGFiPSJCcmF6aWwgQ29uZmlkZW5jZSBJbmRleCAiLHhsYWI9InllYXIiKTsNCmFibGluZSh2PWMoMTk5NS4wLDIwMDMuMCwyMDExLjAsMjAxNi4zNCwyMDE2Ljc1KSk7DQphYmxpbmUoaD0xKQ0KYGBgDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCiMjUElCIG5vbWluYWwgQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwgaGVyZSBjb252ZXJ0ZWQgaW50byBpbmRleC4NClBJQm49UXVhbmRsKCJCQ0IvNDM4MCIsIGFwaV9rZXk9IlNHWGFwcTNiejV1OW11RmtSWG5xIiwgY29sbGFwc2U9Im1vbnRobHkiKQ0KaGVhZChQSUJuKTt0YWlsKFBJQm4pDQp0ZW1wPVBJQm5bKG5yb3coUElCbik6MSksXQ0KUElCbi50cz10cyh0ZW1wWywyXS90ZW1wW25yb3coUElCbiksMl0sZnJlcXVlbmN5PTEyLHN0YXJ0PWMoMTk5MCwxKSkNCnBsb3QoUElCbi50cyx4bGltPWMoMTk5NSwyMDE5KSk7YWJsaW5lKHY9YygxOTk1LjAsMjAwMy4wLDIwMTEuMCwyMDE2LjM0LDIwMTYuNzUpKTsNCmBgYA0KDQoNCmBgYHtyIEluZGV4aW5nIHRoZSBJUENBLCBpbmNsdWRlPUZBTFNFfQ0KI0lQQ0EgZnJvbSBCYW5jbyBDZW50cmFsIGluIFF1YW5kbA0KSVBDQVF1YW5kbD1RdWFuZGwoIkJDQi8xMDg0MSIsIGFwaV9rZXk9IlNHWGFwcTNiejV1OW11RmtSWG5xIikNCiNUaGUgdGltZSBzZXJpZXMgbmVlZHMgdG8gYmUgcmV2ZXJzZWQuDQp0ZW1wPUlQQ0FRdWFuZGxbKG5yb3coSVBDQVF1YW5kbCk6MSksXTsNCmhlYWQodGVtcCk7dGFpbCh0ZW1wKQ0KSVBDQXBjPXRlbXBbLDJdLzEwMA0KSVBDQT1jdW1wcm9kKDErSVBDQXBjKTsNCklQQ0EudHM9dHMoSVBDQS9JUENBW2xlbmd0aChJUENBKV0sZnJlcXVlbmN5ID0gMTIsc3RhcnQ9YygxOTkyLDEpKQ0KaGVhZChJUENBLnRzKTt0YWlsKElQQ0EudHMpDQpwbG90KElQQ0EudHMseGxpbT1jKDE5OTUsMjAxOSkpO2FibGluZSh2PWMoMTk5NS4wLDIwMDMuMCwyMDExLjAsMjAxNi4zNCwyMDE2Ljc1KSk7DQpgYGANCg0KYGBge3IgQ2FsY3VsYXRpbmcgYW5kIHBsb3R0aW5nIHJlYWwgR0RQLCBpbmNsdWRlPUZBTFNFfQ0KZGF0YT1uYS5vbWl0KHRzLmludGVyc2VjdChjb25mLnRzLFBJQm4udHMsSVBDQS50cykpOw0KaGVhZChkYXRhKTt0YWlsKGRhdGEpOyBzdW1tYXJ5KGRhdGEpDQpQSUJyLnRzPWRhdGFbLDJdL2RhdGFbLDNdOw0KUElCci50cz1QSUJyLnRzL1BJQnIudHNbbGVuZ3RoKFBJQnIudHMpXQ0KcGxvdChQSUJyLnRzLHlsYWI9IkluZGV4IG9mIHJlYWwgR0RQIiwgY29sPSJyZWQiLCBsd2Q9Myx4bGltPWMoMTk5NS4zMzMsMjAxOSkpO2FibGluZSh2PWMoMTk5NS4wLDIwMDMuMCwyMDExLjAsMjAxNi4zNCwyMDE2Ljc1KSk7DQojSW5zdENhcFV0aWw9UXVhbmRsKEJDQi8xMzQ0LCBhcGlfa2V5PSJTR1hhcHEzYno1dTltdUZrUlhucSIpDQojVW5lbXBsb3ltZW50UmF0ZVBOQURDPVF1YW5kbCgiQkNCLzI0MzY5IiwgYXBpX2tleT0iU0dYYXBxM2J6NXU5bXVGa1JYbnEiKQ0KYGBgDQpUaGUgR0RQIG5vbWluYWwgZGF0YSBoYXMgYmVlbiBhZGp1c3RlZCBmb3IgaW5mbGF0aW9uIHdpdGggdGhlIElQQ0EgLSBDb25zdW1lciBwcmljZSBpbmRleCAoaHR0cHM6Ly93d3czLmJjYi5nb3YuYnIvc2dzcHViKS4gR3Jvd3RoIGhhZCBiZWVuIHJlbGF0aXZlbHkgc3RlYWR5IGR1cmluZyB0aGUgcGVyaW9kIDE5OTUgdG8gMjAxNC4gVGhlIGFsbCB0aW1lIEdEUCByZWNvcmQgcGVhayBpcyBkdXJpbmcgdGhlIFJvdXNlZmYgcHJlc2lkZW5jeSBpbiAyMDE0LiBUaGUgbG93IHBvaW50IGZvciB0aGUgR0RQIGluZGV4IGluIHJlY2VudCB0aW1lcyBpcyBpbiB0aGUgbW9udGggdGhhdCBNaWNoZWwgVGVtZXIgdGFrZXMgdGhlIHByZXNpZGVuY3ksIHNldGVtYmVyIDIwMTYuIEluIHRoZSBsYXN0IHNldmVyYWwgbW9udGhzLCByZWFsIEdEUCBpcyBlcnJhdGljIHdpdGggbm8gY2xlYXIgdGVuZGVuY3ksIGFzIHNob3duIGluIHRoZSByZXN1bHRzIGJlbG93Lg0KYGBge3IgZWNobz1GQUxTRX0NCnBsb3QoKGNvbmYudHMpLHlsYWI9IiIsIGNvbD0icmVkIiwgbHdkPTMsdHlwZT0ibCIsIA0KYXhlcz1GLCAgbWFpbj0iQ29uZmlkZW5jZSBJbmRleCAocmVkKSB4IFJFQUwgR0RQIChibHVlKSAiKQ0KYWJsaW5lKHY9YygxOTk1LjAsMjAwMy4wLDIwMTEuMCwyMDE2LjM0LDIwMTYuNzUpKTsNCiNhYmxpbmUoaD0wKQ0KYXhpcygxLHhsaW09YygxOTk1LjMzMywyMDIwKSkNCmF4aXMoMiwgY29sPSJyZWQiKQ0KcGFyKG5ldz1UUlVFKQ0KcGxvdCgoUElCci50cyksIGNvbD0iYmx1ZSIsIGx3ZD0zLHR5cGU9ImwiLCANCmF4ZXM9RiwgDQp4bGFiPSIiLCB5bGFiPSIiLCBtYWluPSIiKQ0KYXhpcyg0LCBjb2w9ImJsdWUiKQ0KbXRleHQoIiIsICAyLCBsaW5lPTIsIGNvbD0icmVkIikNCm10ZXh0KCJSZWFsIEdEUCIsIDQsIGxpbmU9MiwgY29sPSJibHVlIikNCmBgYA0KDQoNClRoZSBwbG90IGRlbW9uc3RyYXRlcyB0aGF0IGEgY2F1c2FsIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIEdEUCBhbmQgY29uZmlkZW5jZSBpcyBub3QgYXBwYXJlbnRseSBjbGVhci4gSW4gZmFjdCB0aGUgdHdvIHNlZW0gaW5kZXBlbmRlbnQuIFNvbWUgc3RhdGlzdGljYWwgdGVzdHMgbWF5IGNsYXJpZnkgdGhlIHNpdHVhdGlvbi4gDQoNClNraXAgdGhpcyBwYXJ0IGlmIHlvdSBkbyBub3QgbGlrZSBTdGF0aXN0aWNzLiBTZWUgdGhlIEhUTUwgZG9jdW1lbnQgZm9yIHRoZSBmdWxsIHByb2NlZHVyZSBhbmQgYWxsIFIgY29kZS4NCg0KMS4gVGhlIGRhdGEgd2FzIHRpZGllZCB1cCBhbmQgZmlyc3QgZGlmZmVyZW5jZXMgY2FsY3VsYXRlZCB0byByZXNwZWN0IHN0YXRpb25hcml0eS4NCg0KMi4gQ29pbnRlZ3JhdGlvbiB3YXMgZm91bmQgYmV0d2VlbiB0aGUgdHdvIGluZGV4ZXMgYW5kIGluY2x1ZGVkIGluIHRoZSBhbmFseXNpcy4NCg0KMy4gVGhlIGJlc3QgdmFyaWFibGVzIGFuZCBsYWdzIHdlcmUgY2hvc2VuIHVzaW5nIHJlZ3Jlc3Npb24gYW5hbHlzaXMgYW5kIGEgc3RlcHdpc2UgcHJvY2VkdXJlLg0KDQo0LiBGb3JlY2FzdGluZyB3YXMgZG9uZSB3aXRoIGV4dHJlbWVseSBmYXZvcmFibGUgY29uZmlkZW5jZSBpbmRleGVzLg0KDQo1LiBUaGVzZSBmb3JlY2FzdHMgd2VyZSBjb21wYXJlZCB3aXRoIGEgc3RyYWlnaHRmb3J3YXJkIHVuaXZhcmlhdGUgc2Vhc29uYWwgQVJJTUEgbW9kZWwuDQpgYGB7ciBMYWdnaW5nIHZhcmlhYmxlcywgaW5jbHVkZT1GQUxTRX0NCiMjRG9lcyBjYXVzYWxpdHkgZXhpc3QgYmV0d2VlbiB0aGUgQ29uZmlkZW5jZSBpbmRleCBhbmQgcmVhbCBHRFANCiMjTGFnZ2VkIFZhcmlhYmxlcyBDb25zaWRlciBsb2dzDQpkYXRhcD1uYS5vbWl0KHRzLmludGVyc2VjdChQSUJyLnRzLGNvbmYudHMpKTsNCiNoZWFkKGRhdGFwKTt0YWlsKGRhdGFwKQ0KeT10cyhkYXRhcFssMV0sZnJlcXVlbmN5PTEyLHN0YXJ0PWMoMTk5NSw0KSkNCmwxeT1jKE5BLHlbMToobGVuZ3RoKHkpLTEpXSk7ICAjcGxvdChkeSxkbDF5KTtsbShkeX5kbDF5KQ0KbDJ5PWMoTkEsTkEseVsxOihsZW5ndGgoeSktMildKTsNCmwzeT1jKE5BLE5BLE5BLHlbMToobGVuZ3RoKHkpLTMpXSk7IA0KbDR5PWMoTkEsTkEsTkEsTkEseVsxOihsZW5ndGgoeSktNCldKTsNCmw2eT1jKE5BLE5BLE5BLE5BLE5BLE5BLHlbMToobGVuZ3RoKHkpLTYpXSk7DQpsN3k9YyhOQSxOQSxOQSxOQSxOQSxOQSxOQSx5WzE6KGxlbmd0aCh5KS03KV0pOw0KbDEyeT1hcy5udW1lcmljKGMocmVwKCJOQSIsMTIpLHlbMToobGVuZ3RoKHkpLTEyKV0pKTsNCmwxM3k9YXMubnVtZXJpYyhjKHJlcCgiTkEiLDEzKSx5WzE6KGxlbmd0aCh5KS0xMyldKSk7DQpsMjR5PWFzLm51bWVyaWMoYyhyZXAoIk5BIiwyNCkseVsxOihsZW5ndGgoeSktMjQpXSkpOw0KbDI1eT1hcy5udW1lcmljKGMocmVwKCJOQSIsMjUpLHlbMToobGVuZ3RoKHkpLTI1KV0pKTsNCmR5PWRpZmYoeSkgDQpkbDF5PWwxeS1sMnkNCmRsMnk9bDJ5LWwzeQ0KZGwzeT1sM3ktbDR5DQpkbDZ5PWw2eS1sN3kNCmRsMTJ5PWwxMnktbDEzeQ0KZGwyNHk9bDI0eS1sMjV5DQp4PXRzKGRhdGFwWywyXSxmcmVxdWVuY3k9MTIsc3RhcnQ9YygxOTk1LDQpKTsNCmR4PWRpZmYoeCkNCmwxeD1jKE5BLHhbMToobGVuZ3RoKHgpLTEpXSk7DQpsMng9YyhOQSxOQSx4WzE6KGxlbmd0aCh4KS0yKV0pOw0KbDN4PWMoTkEsTkEsTkEseFsxOihsZW5ndGgoeCktMyldKTsgDQpsNHg9YXMubnVtZXJpYyhjKHJlcCgiTkEiLDQpLHhbMToobGVuZ3RoKHgpLTQpXSkpOw0KbDZ4PWMoTkEsTkEsTkEsTkEsTkEsTkEseFsxOihsZW5ndGgoeCktNildKTsNCmw3eD1hcy5udW1lcmljKGMocmVwKCJOQSIsNykseFsxOihsZW5ndGgoeCktNyldKSk7DQpsMTJ4PWFzLm51bWVyaWMoYyhyZXAoIk5BIiwxMikseFsxOihsZW5ndGgoeCktMTIpXSkpOw0KbDEzeD1hcy5udW1lcmljKGMocmVwKCJOQSIsMTMpLHhbMToobGVuZ3RoKHgpLTEzKV0pKTsNCmwyNHg9YXMubnVtZXJpYyhjKHJlcCgiTkEiLDI0KSx4WzE6KGxlbmd0aCh4KS0yNCldKSk7DQpsMjV4PWFzLm51bWVyaWMoYyhyZXAoIk5BIiwyNSkseFsxOihsZW5ndGgoeCktMjUpXSkpOw0KZGwxeD1sMXgtbDJ4DQpkbDJ4PWwyeC1sM3gNCmRsM3g9bDN4LWw0eA0KZGw2eD1sNngtbDd4DQpkbDEyeD1sMTJ4LWwxM3gNCmRsMjR4PWwyNHgtbDI1eA0KcmVzPWxtKHl+eCkkcmVzaWR1YWxzDQpsMXJlcz1jKE5BLHJlc1sxOihsZW5ndGgocmVzKS0xKV0pDQpsMnJlcz1jKE5BLE5BLHJlc1sxOihsZW5ndGgocmVzKS0yKV0pDQpsM3Jlcz1jKE5BLE5BLE5BLHJlc1sxOihsZW5ndGgocmVzKS0zKV0pDQpkYXRhbD1OVUxMO2RhdGFsPW5hLm9taXQodHMudW5pb24oDQogIHksZHksZGwxeSxkbDJ5LGRsM3ksZGw2eSxkbDEyeSxkbDI0eSwNCiAgeCxkeCxkbDF4LGRsMngsZGwzeCxkbDZ4LGRsMTJ4LGRsMjR4LA0KICByZXMsbDFyZXMsbDJyZXMsbDNyZXMpKQ0KaXMudHMoZGF0YWwpO3RhaWwoZGF0YWwsMyk7aGVhZChkYXRhbCwzKQ0KI0NoYW5nZSB0byB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5DQojd3JpdGUuY3N2KGRhdGFsLCBmaWxlID0gIkM6L1VzZXJzL1NhbW9oeWwvRGVza3RvcC9UcmVpbmFtZW50b1ByZXZpc2FvL2RhdGFsLmNzdiIpDQojcmVhZC5jc3YoZGF0YWwsZmlsZT0iQzovVXNlcnMvU2Ftb2h5bC9EZXNrdG9wL1RyZWluYW1lbnRvUHJldmlzYW8vZGF0YWwuY3N2IikNCiNsMXksbDJ5LGwzeSxsNnksbDEyeSxsMjR5LGwxeCxsMngsbDN4LGw2eCxsMTJ4LGwyNHgsDQoNCmBgYA0KDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQojI1RoZSBlc3RpbWF0ZWQgZXF1YXRpb24NCm5kaWZmcyh5LGFscGhhPTAuMDEpO25kaWZmcyh4LGFscGhhPTAuMDEpO25kaWZmcyhyZXMsYWxwaGE9MC4wMSkNCnJlc3VsdHk9dHNsbShkeX50cmVuZCtzZWFzb24rZGwxeStkbDJ5K2R4K2RsMXgrZGwyeCtkbDN4K2RsNngrZGwxMngrZGwyNHgrbDFyZXMrbDJyZXMrbDNyZXMsZGF0YT1kYXRhbCkNCnN1bW1hcnkocmVzdWx0eSkNCnN0ZXB5PXN0ZXAocmVzdWx0eSwgdHJhY2UgPSAwLGRpcmVjdGlvbiA9ICJib3RoIikNCnN1bW1hcnkoc3RlcHkpDQpucm93KGRhdGFsKQ0KI25ld2RhdGE9ZGF0YS5mcmFtZSgNCiAgI3NlcSgobnJvdyhkYXRhbCkrMSk6KG5yb3coZGF0YWwpKzEyKSksDQogICNzZWFzb25hbGR1bW15KGRhdGFsLGg9MTIpLA0KICAjc2VxKDE6MTIpLA0KICAjdGFpbCh4LDEyKSkgICAgIA0KI3ByZWRpY3Qoc3RlcHksbmV3ZGF0YSkNCmBgYA0KDQoNCmBgYHtyIGVjaG89RkFMU0V9DQojI1NpbXVsYXRpb24gQVJJTUEgd2l0aCB4cmVnDQojU2Vhc29uYWwgQVJJTUEgd2l0aCBubyBpbmRlcGVuZGVudCB2YXJpYWJsZXMNCmFhZHk9YXV0by5hcmltYShkeSk7I3N1bW1hcnkoYWFkeSk7DQpwbG90KGZvcmVjYXN0KGFhZHksaD0xMikseGxpbT1jKDIwMTYsMjAxOSksbWFpbj0iRm9yZWNhc3RzIEdEUCB1bml2YXJpYXRlIG1vZGVsIix5bGFiPSJjaGFuZ2UgaW4gbW9udGhseSBHRFAgaW5kZXgiKQ0KYWJsaW5lKGg9MCkNCmBgYA0KDQoNClRoZSBmaWd1cmUgYWJvdmUgc2hvd3MgZm9yZWNhc3RzIGJhc2VkIG9uIGEgdW5pdmFyaWF0ZSBzZWFzb25hbCBBUklNQSBtb2RlbCBmb3IgdGhlIChhcHByb3hpbWF0ZSkgcGVyY2VudGFnZSBjaGFuZ2UgaW4gdGhlIEdEUCBpbmRleCwgbm8gaW5kZXBlbmRlbnQgdmFyaWFibGVzIGFyZSBwcmVzZW50IGluIHRoZSBhbmFseXNpcy4gSW4gb3RoZXIgd29yZHMsIHRoZSBjb25maWRlbmNlIGluZGV4IGhhcyBiZWVuIGlnbm9yZWQgaW4gdGhlIGFib3ZlIGVzdGltYXRlcy4gTm90ZSB0aGF0IHRoZSBHRFAgaW5kZXggZGVtb25zdHJhdGVzIGNvbnNpZGVyYWJsZSBuZWdhdGl2ZSBlY29ub21pYyBhY3Rpdml0eSBmb3IgMjAxOCAod2hlcmUgcmVzdWx0cyBhcmUgYmVsb3cgdGhlIGhvcml6b250YWwgbGluZSkuDQoNCmBgYHtyIGVjaG89RkFMU0V9DQojVGhlIGV4b2dlbm91cyB2YXJpYWJsZXMgd2VyZSBjaG9zZW4gYmFzZWQgb24gdGhlIGNvaW50ZWdyYXRpbmcgcmVncmVzc2lvbi4NCnRzZGwyeCA9dHMoZGwyeFsxOjI3NF0sZnJlcXVlbmN5PTEyLGVuZD1jKDIwMTgsMikpDQp0c2RsMTJ4PXRzKGRsMTJ4WzE6Mjc0XSxmcmVxdWVuY3k9MTIsZW5kPWMoMjAxOCwyKSkNCnRzZGwyNHg9dHMoZGwyNHhbMToyNzRdLGZyZXF1ZW5jeT0xMixlbmQ9YygyMDE4LDIpKQ0KdHNsMXJlcz10cyhsMXJlc1sxOjI3NF0sZnJlcXVlbmN5PTEyLGVuZD1jKDIwMTgsMikpDQpleG9nPXRzLnVuaW9uKHRzZGwyeCx0c2RsMTJ4LHRzZGwyNHgsdHNsMXJlcykNCmFhPWF1dG8uYXJpbWEoZHksIHhyZWc9ZXhvZykgOyNzdW1tYXJ5KGFhKQ0KI3BhcihuZXc9VFJVRSkNCiN0YWlsKGR4LDI0KQ0Kc2ltPWNiaW5kKCANCiAgYyhkeFsobGVuZ3RoKGR4KS0xKTpsZW5ndGgoZHgpXSxyZXAoLjEsMTApKSwgICAgICAgICANCiAgICBkeFsobGVuZ3RoKGR4KS0xMSk6KGxlbmd0aChkeCkpXSwgICAgICAgICAgIA0KICAgIGR4WyhsZW5ndGgoZHgpLTIzKToobGVuZ3RoKGR4KS0xMildLA0KICBjKHJlc1tsZW5ndGgocmVzKS0xXSxyZXNbbGVuZ3RoKHJlcyldLA0KICAgIHJlcChtZWFuKHJlc1sobGVuZ3RoKHJlcyktNik6bGVuZ3RoKHJlcyldKSw0KSkNCiAgKQ0KcGxvdChmb3JlY2FzdChhYSx4cmVnPXNpbSkseGxpbT1jKDIwMTYsMjAxOSksbWFpbj0iRm9yZWNhc3RzIGZvciAyMDE4LCBvcHRpbWlzdGljIGNvbmZpZGVuY2UgZ3Jvd3RoIiwgeWxhYj0iY2hhbmdlIGluIG1vbnRobHkgR0RQIGluZGV4IiwgeGxhYj0iQXNzdW1lIDEwJSBwZXIgbW9udGggaW5jcmVhc2UgaW4gY29uZmlkZW5jZSAgMjAxOCIpO2FibGluZShoPTApDQpgYGANCg0KDQpUaGlzIGxhc3QgZmlndXJlIGlzIGVzc2VudGlhbGx5IHRoZSBzYW1lIEFSSU1BIG1vZGVsIGFzIGJlZm9yZSwgd2l0aCB0aGUgZGlmZXJlbmNlIHRoYXQgdGhlIGNvbmZpZGVuY2UgaW5kZXggbm93IGVudGVycyBhcyBhbiBleG9nZW5vdXMsIGFsb25nIHdpdGggYW4gZXJyb3IgY29ycmVjdGlvbiB0ZXJtLiBUaGUgdHdvIHNldHMgb2YgZm9yZWNhc3RzIGFyZSB2ZXJ5IHNpbWlsYXIgYnV0IGdlbmVyYXRlZCB3aXRoIGRpZmZlcmVudCBzdXBvc2l0aW9ucy4gQXQgZmlyc3Qgc2lnaHQgdGhleSBtYXkgYXBwZWFyIGlkZW50aWNhbCwgYnV0IHRoZXkgYXJlIG5vdC4gVGhlIGZpcnN0IG1vZGVsIGNvbXBsZXRlbHkgaWdub3JlcyB0aGUgY29uZmlkZW5jZSBpbmRleCB3aGlsZSB0aGUgc2Vjb25kIG1vZGVsIGlzIHBhcnRpYWxseSBkZXRlcm1pbmVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgY29uZmlkZW5jZSBhcyBhbiBleG9nZW5vdXMgdmFyaWFibGUuIEluIHRoZSBzZWNvbmQgbW9kZWwsIHRoZSBjb25maWRlbmNlIGluZGV4IGlzIGFsbG93ZWQgdG8gaW5jcmVhc2UgYXQgdGhlIG92ZXJseSBvcHRpbWlzdGljIHJhdGUgYXQgMTAlIHBlciBtb250aC4gQXBwYXJlbnRseSwgdGhlIGNvbmZpZGVuY2UgaW5kZXggaGFzIGxpdHRsZSB0byBubyBlZmVjdCBvbiB0aGUgZ3Jvd3RoIG9mIEdEUC4gQ29uY2x1c2lvbiwgdGhlIGNvbmZpZGVuY2UgaW5kZXggaXMgYSBwb29yLCB2ZXJ5IGxvdyBxdWFsaXR5LCBpbmRpY2F0b3Igb2YgZnV0dXJlIGdyb3d0aC4gTmF0dXJhbGx5LCB0aGlzIHJlc3VsdCB1bmNvdmVycyB0d28gcXVlc3Rpb25zOiBIb3cgY291bGQgdGhlIGNvbmZpZGVuY2UgaW5kZXggYmUgYmV0dGVyIG1vZGlmaWVkLCAgYW5kIGZ1cnRoZXJtb3JlIHdoaWNoIG1hY3JvLXZhcmlhYmxlcyBhcmUgcmVhZGlseSBhdmFpbGFibGUgdG8gcmVzZWFyY2hlcnMgZnJvbSBvcGVuIHNvdXJjZXMgdG8gcmVmbGVjdCBmdXR1cmUgbW92ZW1lbnRzIGluIGVjb25vbWljIGFjdGl2aXk/ICAgDQo=