RESTATEMENTS AND FILINGS Descriptive Statistics
The first table below shows the number of companies with low audit
quality as indicated by each discrete proxy for all the companies
included in the primary sample. The percentage in parenthesis indicates
the percentage of all companies. The second table shows the same
statitics on the final model sample (after excluding observations with
missing values on any of the control variables and companies from the
Financial Services Industry). The plots illustrate percentages from the
tables.
3644
Discrete Proxies including GAO
4051
4319
6338 RobustnessCheck 9: new dependent variables for discrete Table
50: Discrete Proxies Logistic Regression Models, Missing PSS excluded
from Modelling
6428 PSS + n_NEWS
Regression Results
|
|
|
|
Dependent variable:
|
|
|
|
|
|
GAO
|
Audit Analytics
|
SCAC
|
AAERs
|
|
|
(1)
|
(2)
|
(3)
|
(4)
|
|
|
|
Intercept
|
1.63*
|
0.75**
|
8.83***
|
3.82***
|
|
|
(0.87)
|
(0.37)
|
(0.83)
|
(1.08)
|
|
|
|
|
|
|
|
MSS
|
-0.05***
|
-0.03***
|
-0.17***
|
-0.11***
|
|
|
(0.02)
|
(0.01)
|
(0.02)
|
(0.02)
|
|
|
|
|
|
|
|
Number of Media Articles
|
0.39***
|
0.26***
|
-0.05
|
0.07
|
|
|
(0.08)
|
(0.03)
|
(0.05)
|
(0.08)
|
|
|
|
|
|
|
|
Cash Flows
|
-1.19*
|
0.41**
|
-0.31
|
-0.46
|
|
|
(0.62)
|
(0.18)
|
(0.42)
|
(0.59)
|
|
|
|
|
|
|
|
Leverage
|
0.12
|
0.08*
|
0.08
|
0.02
|
|
|
(0.43)
|
(0.05)
|
(0.17)
|
(0.09)
|
|
|
|
|
|
|
|
Firm Growth
|
-0.06
|
-0.03
|
0.04
|
0.15
|
|
|
(0.08)
|
(0.03)
|
(0.06)
|
(0.10)
|
|
|
|
|
|
|
|
Return
|
0.27
|
-0.08
|
0.41
|
0.07
|
|
|
(0.44)
|
(0.08)
|
(0.29)
|
(0.21)
|
|
|
|
|
|
|
|
Loss
|
0.13
|
-0.05
|
-0.11
|
-0.12
|
|
|
(0.15)
|
(0.06)
|
(0.13)
|
(0.18)
|
|
|
|
|
|
|
|
Firm Size (USD million)
|
0.0000
|
0.0000
|
0.0000
|
-0.0000
|
|
|
(0.0000)
|
(0.0000)
|
(0.0000)
|
(0.0000)
|
|
|
|
|
|
|
|
|
|
Observations
|
1,201
|
6,269
|
1,454
|
1,557
|
|
Log Likelihood
|
-736.62
|
-4,222.08
|
-926.56
|
-539.95
|
|
Akaike Inf. Crit.
|
1,491.24
|
8,462.16
|
1,871.11
|
1,097.90
|
|
|
|
Note:
|
p<0.1; p<0.05;
p<0.01
|
Regression Results
|
|
|
|
Dependent variable:
|
|
|
|
|
|
Low_Audit_Quality
|
|
|
(1)
|
(2)
|
(3)
|
|
|
|
Intercept
|
2.48***
|
3.22***
|
-0.80***
|
|
|
(0.29)
|
(0.24)
|
(0.03)
|
|
|
|
|
|
|
MSS
|
-0.06***
|
-0.07***
|
|
|
|
(0.01)
|
(0.005)
|
|
|
|
|
|
|
|
Number of Media Articles
|
0.23***
|
|
0.25***
|
|
|
(0.02)
|
|
(0.02)
|
|
|
|
|
|
|
Cash Flows
|
0.20
|
|
|
|
|
(0.15)
|
|
|
|
|
|
|
|
|
Leverage
|
0.05
|
|
|
|
|
(0.04)
|
|
|
|
|
|
|
|
|
Firm Growth
|
-0.01
|
|
|
|
|
(0.02)
|
|
|
|
|
|
|
|
|
Return
|
-0.001
|
|
|
|
|
(0.06)
|
|
|
|
|
|
|
|
|
Loss
|
-0.04
|
|
|
|
|
(0.05)
|
|
|
|
|
|
|
|
|
Firm Size (USD million)
|
-0.0000
|
|
|
|
|
(0.0000)
|
|
|
|
|
|
|
|
|
|
|
Observations
|
10,481
|
11,640
|
11,640
|
|
Log Likelihood
|
-6,796.25
|
-7,698.99
|
-7,690.82
|
|
Akaike Inf. Crit.
|
13,610.50
|
15,401.99
|
15,385.64
|
|
|
|
Note:
|
p<0.1; p<0.05;
p<0.01
|
6603 ### Differenced controls (current - lag)
10467 Sensitivity Analysis: Non Big 4 Auditors Only Table 100:
Discrete Proxies Logistic Regression Models, Missing PSS excluded from
Modelling
11252 Sensitivity Analysis: Bottom 30% by Firm Size (Firm Size less
than 100) Table 110: Discrete Proxies Logistic Regression Models,
Missing PSS excluded from Modelling
12025 Sensitivity Analysis: Excluding years 2001,2002,2007 & 2008
Table 120: Discrete Proxies Logistic Regression Models, Missing PSS
excluded from Modelling
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQotLS0NCnRpdGxlOiAiQXVkaXQgYW5kIHRoZSBwcmVzcyINCnN1YnRpdGxlOiAiSG93IG5lZ2F0aXZlIHB1YmxpY2l0eSBpbmZsdWVuY2VzIGF1ZGl0IHF1YWxpdHkiDQpoZWFkZXItaW5jbHVkZXM6DQotIFx1c2VwYWNrYWdle3BkZmxzY2FwZX0NCi0gXG5ld2NvbW1hbmR7XGJsYW5kc2NhcGV9e1xiZWdpbntsYW5kc2NhcGV9fQ0KLSBcbmV3Y29tbWFuZHtcZWxhbmRzY2FwZX17XGVuZHtsYW5kc2NhcGV9fQ0Kb3V0cHV0Og0KICBwZGZfZG9jdW1lbnQ6DQogICAgZmlnX2NhcHRpb246IHllcw0KDQojIG91dHB1dDoNCiMgICB3b3JkX2RvY3VtZW50Og0KIyAgICAgcmVmZXJlbmNlX2RvY3g6IHN0eWxlX2d1aWRlLmRvY3gNCiMgICAgICBmaWdfY2FwdGlvbjogeWVzDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IEZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLGVycm9yPUZBTFNFKQ0KZG9jdW1lbnRfZm9ybWF0PC0iUERGIg0KIyJQREYiIG9yICJXT1JEIg0KDQpgYGANCg0KYGBge3J9DQpNaW5pbXVtX0FydGljbGVzX05vPC0xMA0KbGlicmFyeShhcnNlbmFsKQ0KcmVxdWlyZShkYXRhLnRhYmxlKQ0KbGlicmFyeShmbGV4dGFibGUpDQpsaWJyYXJ5KG9mZmljZXIpDQpyZXF1aXJlKHRpZHl2ZXJzZSkNCnJlcXVpcmUoc2pQbG90KQ0KbGlicmFyeShzam1pc2MpDQpyZXF1aXJlKHN0YXJnYXplcikNCmxpYnJhcnkoRGVzY1Rvb2xzKSANCnJlcXVpcmUodGV4cmVnKQ0KcmVxdWlyZShwYXBhamEpDQpyZXF1aXJlKHBhbmRlcikNCnJlcXVpcmUoa25pdHIpDQpyZXF1aXJlKGthYmxlRXh0cmEpDQoNCmxpYnJhcnkoZGV2dG9vbHMpDQojbGlicmFyeShjYXB0aW9uZXIpDQpyZXF1aXJlKHh0YWJsZSkNCg0KcmVxdWlyZShwbG0pDQpyZXF1aXJlKHBnbG0pDQoNCm9wdGlvbnMoa25pdHIua2FibGUuTkEgPSAnJykNCg0KI3RhYmxlX251bXMgPC0gY2FwdGlvbmVyKHByZWZpeCA9ICJUYWJsZSIpDQojZmlndXJlX251bXMgPC0gY2FwdGlvbmVyKHByZWZpeCA9ICJGaWd1cmUiKQ0KDQoNCmZueCA9IGZ1bmN0aW9uKHgpe3ByaW50KGZvcm1hdEMoeCwgZm9ybWF0PSJkIiwgYmlnLm1hcms9IiAiLGRpZ2l0cz0yKSwgcXVvdGU9Ril9DQoNCmBgYA0KDQpgYGB7ciBmb3IgdGhlIHRleHJlZyBwYWNrYWdlIHRvIHdvcmt9DQojaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDIxNjExMjkvci1zdGFyZ2F6ZXItd2l0aC1wZ2xtLW1vZGVsLWNvbnZlcnQtYmlub21pbmFsLXBnbG0tbW9kZWwtaW4tcGxtLW1vZGVsDQpleHRyYWN0LnBnbG0gPC0gZnVuY3Rpb24gKG1vZGVsLCBpbmNsdWRlLm5vYnMgPSBUUlVFLCBpbmNsdWRlLmxvZ2xpayA9IFRSVUUsIC4uLikgew0KICAgcyA8LSBzdW1tYXJ5KG1vZGVsLCAuLi4pDQogICBjb2VmZmljaWVudC5uYW1lcyA8LSByb3duYW1lcyhzJGVzdGltYXRlKQ0KICAgY29lZmZpY2llbnRzIDwtIHMkZXN0aW1hdGVbLCAxXQ0KICAgc3RhbmRhcmQuZXJyb3JzIDwtIHMkZXN0aW1hdGVbLCAyXQ0KICAgc2lnbmlmaWNhbmNlIDwtIHMkZXN0aW1hdGVbLCA0XQ0KICAgbG9nbGlrLnZhbHVlIDwtIHMkbG9nbGlrDQogICBuIDwtIG5yb3cobW9kZWwkbW9kZWwpDQogICBnb2YgPC0gbnVtZXJpYygpDQogICBnb2YubmFtZXMgPC0gY2hhcmFjdGVyKCkNCiAgIGdvZi5kZWNpbWFsIDwtIGxvZ2ljYWwoKQ0KICAgaWYgKGluY2x1ZGUubG9nbGlrID09IFRSVUUpIHsNCiAgICAgIGdvZiA8LSBjKGdvZiwgbG9nbGlrLnZhbHVlKQ0KICAgICAgZ29mLm5hbWVzIDwtIGMoZ29mLm5hbWVzLCAiTG9nLUxpa2VsaWhvb2QiKQ0KICAgICAgZ29mLmRlY2ltYWwgPC0gYyhnb2YuZGVjaW1hbCwgVFJVRSkNCiAgIH0NCiAgIGlmIChpbmNsdWRlLm5vYnMgPT0gVFJVRSkgew0KICAgICAgZ29mIDwtIGMoZ29mLCBuKQ0KICAgICAgZ29mLm5hbWVzIDwtIGMoZ29mLm5hbWVzLCAiTnVtLiBvYnMuIikNCiAgICAgIGdvZi5kZWNpbWFsIDwtIGMoZ29mLmRlY2ltYWwsIEZBTFNFKQ0KICAgfQ0KICAgdHIgPC0gY3JlYXRldGV4cmVnKGZsb2F0LnBvcz0iaCEiLGNvZWYubmFtZXMgPSBjb2VmZmljaWVudC5uYW1lcywgY29lZiA9IGNvZWZmaWNpZW50cywgDQogICAgICAgICAgICAgICAgIHNlID0gc3RhbmRhcmQuZXJyb3JzLCBwdmFsdWVzID0gc2lnbmlmaWNhbmNlLCBnb2YubmFtZXMgPSBnb2YubmFtZXMsIA0KICAgICAgICAgICAgICAgICBnb2YgPSBnb2YsIGdvZi5kZWNpbWFsID0gZ29mLmRlY2ltYWwpDQogICByZXR1cm4odHIpDQp9DQoNCnNldE1ldGhvZCgiZXh0cmFjdCIsIHNpZ25hdHVyZSA9IGNsYXNzTmFtZSgibWF4TGlrIiwgIm1heExpayIpLCANCiAgICAgIGRlZmluaXRpb24gPSBleHRyYWN0LnBnbG0pDQoNCmNvcnN0YXJzbCA8LSBmdW5jdGlvbih4LG1ldGhvZCl7IA0KICByZXF1aXJlKEhtaXNjKSANCiAgeCA8LSBhcy5tYXRyaXgoeCkgDQogIFIgPC0gcmNvcnIoeCx0eXBlPW1ldGhvZCkkciANCiAgcCA8LSByY29ycih4LHR5cGU9bWV0aG9kKSRQIA0KICANCiAgIyMgZGVmaW5lIG5vdGlvbnMgZm9yIHNpZ25pZmljYW5jZSBsZXZlbHM7IHNwYWNpbmcgaXMgaW1wb3J0YW50Lg0KICBteXN0YXJzIDwtIGlmZWxzZShwIDwgLjAwMSwgIioqKiIsIGlmZWxzZShwIDwgLjAxLCAiKiogIiwgaWZlbHNlKHAgPCAuMDUsICIqICIsICIgIikpKQ0KICANCiAgIyMgdHJ1bmN0dWF0ZSB0aGUgbWF0cml4IHRoYXQgaG9sZHMgdGhlIGNvcnJlbGF0aW9ucyB0byB0d28gZGVjaW1hbA0KICBSIDwtIGZvcm1hdChyb3VuZChjYmluZChyZXAoLTEuMTEsIG5jb2woeCkpLCBSKSwgMikpWywtMV0gDQogIA0KICAjIyBidWlsZCBhIG5ldyBtYXRyaXggdGhhdCBpbmNsdWRlcyB0aGUgY29ycmVsYXRpb25zIHdpdGggdGhlaXIgYXByb3ByaWF0ZSBzdGFycyANCiAgUm5ldyA8LSBtYXRyaXgocGFzdGUoUiwgbXlzdGFycywgc2VwPSIiKSwgbmNvbD1uY29sKHgpKSANCiAgZGlhZyhSbmV3KSA8LSBwYXN0ZShkaWFnKFIpLCAiICIsIHNlcD0iIikgDQogIHJvd25hbWVzKFJuZXcpIDwtIGNvbG5hbWVzKHgpIA0KICBjb2xuYW1lcyhSbmV3KSA8LSBwYXN0ZShjb2xuYW1lcyh4KSwgIiIsIHNlcD0iIikgDQogIA0KICAjIyByZW1vdmUgdXBwZXIgdHJpYW5nbGUNCiAgUm5ldyA8LSBhcy5tYXRyaXgoUm5ldykNCiAgUm5ld1t1cHBlci50cmkoUm5ldywgZGlhZyA9IFRSVUUpXSA8LSAiIg0KICBSbmV3IDwtIGFzLmRhdGEuZnJhbWUoUm5ldykgDQogIA0KICAjIyByZW1vdmUgbGFzdCBjb2x1bW4gYW5kIHJldHVybiB0aGUgbWF0cml4ICh3aGljaCBpcyBub3cgYSBkYXRhIGZyYW1lKQ0KICBSbmV3IDwtIGNiaW5kKFJuZXdbMTpsZW5ndGgoUm5ldyktMV0pDQogIHJldHVybihSbmV3KSANCn0NCg0KDQpgYGANCg0KDQpgYGB7cn0NCmR0PC1yZWFkUkRTKCdGaW5hbF9TYW1wbGUuUkRTJykNCg0KRGlzY3JldGVfb2ZmZnNldG1pbnVzMTwtcmVhZFJEUygnRGlzY3JldGVfb2Zmc2V0bWludXMxLlJEUycpDQpEaXNjcmV0ZV9vZmZmc2V0MDwtcmVhZFJEUygnRGlzY3JldGVfb2ZmZnNldDAuUkRTJykNCkRpc2NyZXRlX29mZmZzZXQxPC1yZWFkUkRTKCdEaXNjcmV0ZV9vZmZmc2V0MS5SRFMnKQ0KRGlzY3JldGVfb2ZmZnNldDI8LXJlYWRSRFMoJ0Rpc2NyZXRlX29mZmZzZXQyLlJEUycpDQpEaXNjcmV0ZV9vZmZmc2V0MzwtcmVhZFJEUygnRGlzY3JldGVfb2ZmZnNldDMuUkRTJykNCg0Kc2V0a2V5KERpc2NyZXRlX29mZmZzZXRtaW51czEsQ0lLLFJlcG9ydGluZ19ZZWFyKQ0Kc2V0a2V5KERpc2NyZXRlX29mZmZzZXQwLENJSyxSZXBvcnRpbmdfWWVhcikNCnNldGtleShEaXNjcmV0ZV9vZmZmc2V0MSxDSUssUmVwb3J0aW5nX1llYXIpDQpzZXRrZXkoRGlzY3JldGVfb2ZmZnNldDIsQ0lLLFJlcG9ydGluZ19ZZWFyKQ0Kc2V0a2V5KERpc2NyZXRlX29mZmZzZXQzLENJSyxSZXBvcnRpbmdfWWVhcikNCg0Kc2V0a2V5KGR0LENJSyxSZXBvcnRpbmdfWWVhcikNCg0KZHQ8LURpc2NyZXRlX29mZmZzZXRtaW51czFbZHRdDQpkdDwtRGlzY3JldGVfb2ZmZnNldDBbZHRdDQpkdDwtRGlzY3JldGVfb2ZmZnNldDFbZHRdDQpkdDwtRGlzY3JldGVfb2ZmZnNldDJbZHRdDQpkdDwtRGlzY3JldGVfb2ZmZnNldDNbZHRdDQoNCg0KIyAgV2Ugc2hvdWxkIGhhdmUgMW1vbnRoIG9mZnNldCBmb3IgR0FPIGFuZCBBQUVSUyBhbmQgMCBtb250aCBvZmZzZXQgZm9yIHNlYyAmIHJlcyBpbiBhbGwgdGhlIHRhYmxlcw0KIyAgZm9yIHNlYyBhbmQgcmVzIHdlIGp1c3Qgd2FudCB0aGUgMCB2ZXJzaW9uLCBub25lIG90aGVycw0KZHRbLCc6PScoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfNT1Mb3dfQXVkaXRfUXVhbGl0eV9TRUMyLA0KICAgTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF81PSBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHMsDQogICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8xPSBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX29mZmZzZXQxICAsDQogICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkXzE9IGR0JExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19vZmZmc2V0MSwNCiAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkXzM9IExvd19BdWRpdF9RdWFsaXR5X1NFQzJfb2ZmZnNldDMgICwNCiAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfMz0gZHQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX29mZmZzZXQzLA0KICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWQ9IExvd19BdWRpdF9RdWFsaXR5X1NFQzJfb2ZmZnNldDAgICwNCiAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWQ9IGR0JExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19vZmZmc2V0MCwNCiAgIA0KICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX29mZmZzZXQ1PUxvd19BdWRpdF9RdWFsaXR5X0dBTywNCiAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yX29mZmZzZXQ1PUxvd19BdWRpdF9RdWFsaXR5X0dBT18yLA0KICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfb2ZmZnNldDU9TG93X0F1ZGl0X1F1YWxpdHlfQUFFUlMsDQogICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX29mZmZzZXQ1PUxvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzINCiAgIA0KICAgDQoNCiAgIA0KICAgKV0NCg0KDQoNCmR0WywnOj0nKA0KIyB0aGUgZGVmYXVsdCB2ZXJzaW9ucw0KICAjIGZvciBTRUMgJiBSRVMgLSAwIG9mZnNldCwgYmFkIGF1ZGl0IHF1YWxpdHkgaXMgb25seSBkdXJpbmcgdGhlIHJlc3RhdGVkIHBlcmlvZA0KICAjIGZvciBBQUVSUyAmIEdBTyAtIDEgbW9udGggb2Zmc2V0DQogICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyPUxvd19BdWRpdF9RdWFsaXR5X1NFQzJfb2ZmZnNldDAsDQogICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHM9IExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19vZmZmc2V0MCwNCiAgIExvd19BdWRpdF9RdWFsaXR5X0dBTz1Mb3dfQXVkaXRfUXVhbGl0eV9HQU9fb2ZmZnNldDEsDQogICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMj1Mb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9vZmZmc2V0MSwNCiAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTPUxvd19BdWRpdF9RdWFsaXR5X0FBRVJTX29mZmZzZXQxLA0KICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX29mZmZzZXQxLA0KICAgDQogICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyXzE9TG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9maW5hbF9vZmZmc2V0MSwNCiAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c18xPSBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfZmluYWxfb2ZmZnNldDEsDQogICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyXzM9TG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9maW5hbF9vZmZmc2V0MywNCiAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c18zPSBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfZmluYWxfb2ZmZnNldDMpXQ0KDQpkYXRhX25lZWRlZDwtZHRbIWlzLm5hKEFibm9ybWFsX0FjY3J1YWwpfCFpcy5uYShEaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzIpfCFpcy5uYShEaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzMpfA0KICAgICAgICAgICAgICAgICAgICFpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyKXwhaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzKXwhaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPKQ0KICAgICAgICAgICAgICAgIHwhaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzIpDQogICAgICAgICAgICAgICAgfCFpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSUykNCiAgICAgICAgICAgICAgICB8IWlzLm5hKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzIpLC4oQ0lLKV0NCg0KZGF0YV9uZWVkZWQ8LWR0WyxjKCJDSUsiLCJDVVNJUF9DTEVBTl8xIiwiQ1VTSVBfQ0xFQU5fMiINCiwiQ1VTSVBfQ0xFQU5fMyIgICAgICAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNVU0lQX0NMRUFOXzQiDQosIkNPTVBBTllfTkFNRSIgICAgICAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUSUNLRVJfMSINCiAsIlRJQ0tFUl8yIiAgICAgICwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUSUNLRVJfMyINCiAsImkuQ09NUEFOWV9OQU1FIiAgLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaWNrZXJfMSINCiwiVGlja2VyXzIiICksd2l0aD1GQUxTRV0NCg0KI2RhdGFfbmVlZGVkW2FzLm51bWVyaWMoQ0lLKTw9MTAsQ0lLOj1OQV0NCmRhdGFfbmVlZGVkPC11bmlxdWUoZGF0YV9uZWVkZWQpDQojd3JpdGUuY3N2KGRhdGFfbmVlZGVkLCdDSUtzLmNzdicpDQoNCkNJS19DdXNpcF9tYXBwaW5nPC1kYXRhX25lZWRlZFthcy5udW1lcmljKENJSyk8PTEwLC4oQ1VTSVBfQ0xFQU5fMSxDSUtfZmlsbD1DSUspXQ0KDQpDb250cm9sX1ZhcmlhYmxlczIwMDAgPC0gcmVhZF9jc3YoIkNvbnRyb2wgVmFyaWFibGVzIC0gUmVzdWx0cy1jb3JyZWN0ZWQuY3N2IiklPiVkYXRhLnRhYmxlKCkNCg0KQ29udHJvbF9WYXJpYWJsZXMyMDAwIDwtIENvbnRyb2xfVmFyaWFibGVzMjAwMFssLihDSUs9YXMuY2hhcmFjdGVyKENJSyksQ1VTSVBfQ0xFQU5fMSxSZXBvcnRpbmdfWWVhcj0iMjAwMCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xfVmFyaWFibGVfMT1gQ29udHJvbCBWYXJpYWJsZSAxICgyMDAwKWAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xfVmFyaWFibGVfMj1gQ29udHJvbCBWYXJpYWJsZSAyICgyMDAwKWAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xfVmFyaWFibGVfMz1gQ29udHJvbCBWYXJpYWJsZSAzICgyMDAwKWAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xfVmFyaWFibGVfND1gQ29udHJvbCBWYXJpYWJsZSA0ICgyMDAwKWAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xfVmFyaWFibGVfNT1gQ29udHJvbCBWYXJpYWJsZSA1ICgyMDAwKWAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xfVmFyaWFibGVfNj1gQ29udHJvbCBWYXJpYWJsZSA2ICgyMDAwKWApXQ0Kc2V0a2V5KENvbnRyb2xfVmFyaWFibGVzMjAwMCxDVVNJUF9DTEVBTl8xKQ0Kc2V0a2V5KENJS19DdXNpcF9tYXBwaW5nLENVU0lQX0NMRUFOXzEpDQoNCkNvbnRyb2xfVmFyaWFibGVzMjAwMDwtQ0lLX0N1c2lwX21hcHBpbmdbQ29udHJvbF9WYXJpYWJsZXMyMDAwXQ0KY2hlY2s8LUNvbnRyb2xfVmFyaWFibGVzMjAwMFtpcy5uYShDSUspXQ0KQ29udHJvbF9WYXJpYWJsZXMyMDAwW2lzLm5hKENJSykmIWlzLm5hKENJS19maWxsKSxDSUs6PUNJS19maWxsXQ0KQ29udHJvbF9WYXJpYWJsZXMyMDAwWyxgOj1gKENJS19maWxsPU5VTEwsQ1VTSVBfQ0xFQU5fMT1OVUxMKV0NCkNvbnRyb2xfVmFyaWFibGVzMjAwMDwtdW5pcXVlKENvbnRyb2xfVmFyaWFibGVzMjAwMCkNCkNvbnRyb2xfVmFyaWFibGVzMjAwMDwtQ29udHJvbF9WYXJpYWJsZXMyMDAwWyFpcy5uYShDSUspXQ0KDQoNCmR0PC1yYmluZChDb250cm9sX1ZhcmlhYmxlczIwMDAsZHQsZmlsbD1UUlVFKQ0KDQoNCg0KQXVkaXRvcl9Db2RlPC1yZWFkUkRTKCdBdWRpdG9yX0NvZGVfYnlfQ0lLLlJEUycpDQpzcHI8LWR0WywuTixjKCJMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMiIsIlJlcG9ydGluZ19ZZWFyIildDQoNCg0KZHRbIWlzLm5hKFllYXJfZW5kX01vbnRoKSxgOj1gKE5fTmVnYXRpdmVfMW1fSW1wdXRlZF93aXRoXzA9Y29hbGVzY2UoUFNTX3dlaWdodF9ib3R0b21fbmVnYXRpdmVfMW0sMCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTl9hbGxfMW1fSW1wdXRlZF93aXRoXzA9Y29hbGVzY2UoUFNTX3dlaWdodF9ib3R0b21fMW0sMCkpXQ0KZHRbLGA6PWAoYXZnX05fTmVnYXRpdmVfMW1fSW1wdXRlZF93aXRoXzA9bWVhbihOX05lZ2F0aXZlXzFtX0ltcHV0ZWRfd2l0aF8wLG5hLnJtPVRSVUUpLA0KICAgICAgICAgYXZnX05fYWxsXzFtX0ltcHV0ZWRfd2l0aF8wPW1lYW4oTl9hbGxfMW1fSW1wdXRlZF93aXRoXzAsbmEucm09VFJVRSkpLENJS10NCg0KZGJsY2hlY2s8LWR0WywuKENJSyxSZXBvcnRpbmdfWWVhcixhdmdfTl9OZWdhdGl2ZV8xbV9JbXB1dGVkX3dpdGhfMCwNCiAgICAgICAgICAgICAgICAgTl9OZWdhdGl2ZV8xbV9JbXB1dGVkX3dpdGhfMCxhdmdfTl9hbGxfMW1fSW1wdXRlZF93aXRoXzAsTl9hbGxfMW1fSW1wdXRlZF93aXRoXzApXQ0KDQpkdFtpcy5pbmZpbml0ZShhdmdfTl9OZWdhdGl2ZV8xbV9JbXB1dGVkX3dpdGhfMCl8aXMubmFuKGF2Z19OX05lZ2F0aXZlXzFtX0ltcHV0ZWRfd2l0aF8wKSwNCiAgIGF2Z19OX05lZ2F0aXZlXzFtX0ltcHV0ZWRfd2l0aF8wOj1OQV0NCg0KZHRbaXMuaW5maW5pdGUoYXZnX05fYWxsXzFtX0ltcHV0ZWRfd2l0aF8wKXxpcy5uYW4oYXZnX05fYWxsXzFtX0ltcHV0ZWRfd2l0aF8wKSwNCiAgIGF2Z19OX2FsbF8xbV9JbXB1dGVkX3dpdGhfMDo9TkFdDQoNCiAgICAgICANCiMgc3ByPC1kdFtMb3dfQXVkaXRfUXVhbGl0eV9BQUVSUz09MXxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yPT0xLC4oQ0lLLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTPW1heChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSUyxuYS5ybT1UUlVFKSxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yPW1heChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yLG5hLnJtPVRSVUUpKSxDSUtdW0xvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzIhPUxvd19BdWRpdF9RdWFsaXR5X0FBRVJTXQ0KDQojIGV4Y2x1c2lvbnMgYmFzZWQgb24gZGF0YSBhdmFpbGFiaWxpdHkNCmR0W1JlcG9ydGluZ19ZZWFyPDIwMDEgfCBSZXBvcnRpbmdfWWVhcj4yMDA2IHwgKFJlcG9ydGluZ19ZZWFyPT0yMDA2ICYgWWVhcl9lbmRfTW9udGg+NiksDQogICAnOj0nKExvd19BdWRpdF9RdWFsaXR5X0dBTz1OQSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMj1OQSldDQoNCmR0W1JlcG9ydGluZ19ZZWFyPj0yMDAxICYgKFJlcG9ydGluZ19ZZWFyPDIwMDYgfCAoUmVwb3J0aW5nX1llYXI9PTIwMDYgJiBZZWFyX2VuZF9Nb250aDw9NikpLEdBT19DT1VOVEVSOj0xXQ0KI3NwcjwtZHRbKCFpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9HQU8pfCFpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMikpJmlzLm5hKEdBT19DT1VOVEVSKSwNCiAgICAgICAjIC4oR0FPX0NPVU5URVIsTG93X0F1ZGl0X1F1YWxpdHlfR0FPLExvd19BdWRpdF9RdWFsaXR5X0dBT18yKV0NCiMgc3ByPC1kdFsoUmVwb3J0aW5nX1llYXI8MjAwMSB8IFJlcG9ydGluZ19ZZWFyPjIwMTYgfCAoUmVwb3J0aW5nX1llYXI9PTIwMTYgJiBZZWFyX2VuZF9Nb250aD42KSkmIWlzLm5hKExvd19BdWRpdF9RdWFsaXR5X0dBTyldDQpkdDwtZHRbKFJlcG9ydGluZ19ZZWFyPj0yMDAwICYgUmVwb3J0aW5nX1llYXI8MjAxOSApIHwgKFJlcG9ydGluZ19ZZWFyPT0yMDE5ICYgWWVhcl9lbmRfTW9udGg8MyksXQ0KZHRbLENPVU5URVI6PTFdDQoNCg0KDQpkdFtMb3dfQXVkaXRfUXVhbGl0eV9BQUVSUz09MXxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yPT0xfA0KICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMj09MXxMb3dfQXVkaXRfUXVhbGl0eV9HQU89PTF8DQogICAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzI9PTF8TG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzPT0xLEFueV9EaXNjcmV0ZTo9MV0NCmR0W0xvd19BdWRpdF9RdWFsaXR5X0FBRVJTPT0wfExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzI9PTB8DQogICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yPT0wfExvd19BdWRpdF9RdWFsaXR5X0dBTz09MHwNCiAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMj09MHxMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHM9PTAsQW55X0Rpc2NyZXRlOj0wXQ0KDQoNCg0KDQoNCg0KZHRfd2luc29yaXplZDwtYXMuZGF0YS50YWJsZShsYXBwbHkoZHRbLC4oDQogICAjIEFic29sdXRlX0Fibm9ybWFsX0FjY3J1YWxzLA0KICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYnNvbHV0ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzIsDQogICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFic29sdXRlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWJub3JtYWxfQWNjcnVhbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMywNCiAgICAgICAgICAgICBDb250cm9sX1ZhcmlhYmxlXzEsQ29udHJvbF9WYXJpYWJsZV8yLENvbnRyb2xfVmFyaWFibGVfMywNCiAgICAgICAgICAgICBDb250cm9sX1ZhcmlhYmxlXzQsQ29udHJvbF9WYXJpYWJsZV81LENvbnRyb2xfVmFyaWFibGVfNg0KICAgICAgICAgICAgICldLA0KICAgICAgICAgICAgIFdpbnNvcml6ZSwgcHJvYnMgPSBjKDAuMDEsIDAuOTkpLCBuYS5ybSA9IFRSVUUpKQ0KDQpkdF93aW5zb3JpemVkWywnOj0nKEFic29sdXRlX0Fibm9ybWFsX0FjY3J1YWxzPWFicyhBYm5vcm1hbF9BY2NydWFsKSwNCiAgICAgICAgIEFic29sdXRlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMj1hYnMoRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyKSwNCiAgICAgICAgIEFic29sdXRlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMz1hYnMoRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzKSldDQoNCg0KZHRfd2luc29yaXplZCRHQU9fQ09VTlRFUjwtZHQkR0FPX0NPVU5URVINCmR0X3dpbnNvcml6ZWQkQ0lLPC1kdCRDSUsNCmR0X3dpbnNvcml6ZWQkUmVwb3J0aW5nX1llYXI8LWR0JFJlcG9ydGluZ19ZZWFyDQpkdF93aW5zb3JpemVkJENPTVBBTllfTkFNRTwtZHQkQ09NUEFOWV9OQU1FDQpkdF93aW5zb3JpemVkJFllYXJfZW5kX01vbnRoPC1kdCRDT01QQU5ZX05BTUUNCg0KZHRfd2luc29yaXplZCRQU1M8LWR0JFBTUw0KZHRfd2luc29yaXplZCRQU1NfMW08LWR0JFBTU18xbQ0KZHRfd2luc29yaXplZCRQU1NfMm08LWR0JFBTU18ybQ0KZHRfd2luc29yaXplZCRQU1NfM208LWR0JFBTU18zbQ0KDQojIHdlIHdhbnQgdG8gd2VpZ2h0IE5fYWxsIGJ5IHJlbGV2YW5jZS4NCmR0X3dpbnNvcml6ZWQkTl9hbGw8LWR0JFBTU193ZWlnaHRfYm90dG9tDQpkdF93aW5zb3JpemVkJE5fYWxsXzFtPC1kdCRQU1Nfd2VpZ2h0X2JvdHRvbV8xbQ0KZHRfd2luc29yaXplZCROX2FsbF8ybTwtZHQkUFNTX3dlaWdodF9ib3R0b21fMm0NCmR0X3dpbnNvcml6ZWQkTl9hbGxfM208LWR0JFBTU193ZWlnaHRfYm90dG9tXzNtDQoNCg0KZHRfd2luc29yaXplZCROX2FsbF8xbV9VTldFSUdIVEVEPC1kdCROX2FsbF8xbQ0KZHRfd2luc29yaXplZCROX2FsbF8ybV9VTldFSUdIVEVEPC1kdCROX2FsbF8ybQ0KZHRfd2luc29yaXplZCROX2FsbF8zbV9VTldFSUdIVEVEPC1kdCROX2FsbF8zbQ0KDQpkdCROX2FsbF8xbV9VTldFSUdIVEVEPC1kdCROX2FsbF8xbQ0KZHQkTl9hbGxfMm1fVU5XRUlHSFRFRDwtZHQkTl9hbGxfMm0NCmR0JE5fYWxsXzNtX1VOV0VJR0hURUQ8LWR0JE5fYWxsXzNtDQoNCiMgZHRfd2luc29yaXplZFtpcy5uYShOX2FsbCksTl9hbGw6PTBdDQojIGR0X3dpbnNvcml6ZWRbaXMubmEoTl9hbGxfMW0pLE5fYWxsXzFtOj0wXQ0KIyBkdF93aW5zb3JpemVkW2lzLm5hKE5fYWxsXzJtKSxOX2FsbF8ybTo9MF0NCiMgZHRfd2luc29yaXplZFtpcy5uYShOX2FsbF8zbSksTl9hbGxfM206PTBdDQoNCg0KZHRfd2luc29yaXplZCROX05lZ2F0aXZlPC1kdCRQU1Nfd2VpZ2h0X2JvdHRvbV9uZWdhdGl2ZQ0KZHRfd2luc29yaXplZCROX05lZ2F0aXZlXzFtPC1kdCRQU1Nfd2VpZ2h0X2JvdHRvbV9uZWdhdGl2ZV8xbQ0KZHRfd2luc29yaXplZCROX05lZ2F0aXZlXzJtPC1kdCRQU1Nfd2VpZ2h0X2JvdHRvbV9uZWdhdGl2ZV8ybQ0KZHRfd2luc29yaXplZCROX05lZ2F0aXZlXzNtPC1kdCRQU1Nfd2VpZ2h0X2JvdHRvbV9uZWdhdGl2ZV8zbQ0KDQpkdF93aW5zb3JpemVkJE5fTmVnYXRpdmVfMW1fVU5XRUlHSFRFRDwtZHQkTl9OZWdhdGl2ZV8xbQ0KZHQkTl9OZWdhdGl2ZV8xbV9VTldFSUdIVEVEPC1kdCROX05lZ2F0aXZlXzFtDQoNCmR0X3dpbnNvcml6ZWQkYXZnX05fTmVnYXRpdmVfMW1fSW1wdXRlZF93aXRoXzA8LWR0JGF2Z19OX05lZ2F0aXZlXzFtX0ltcHV0ZWRfd2l0aF8wDQpkdF93aW5zb3JpemVkJE5fTmVnYXRpdmVfMW1fSW1wdXRlZF93aXRoXzA8LWR0JE5fTmVnYXRpdmVfMW1fSW1wdXRlZF93aXRoXzANCmR0X3dpbnNvcml6ZWQkYXZnX05fYWxsXzFtX0ltcHV0ZWRfd2l0aF8wPC1kdCRhdmdfTl9hbGxfMW1fSW1wdXRlZF93aXRoXzANCmR0X3dpbnNvcml6ZWQkTl9hbGxfMW1fSW1wdXRlZF93aXRoXzA8LWR0JE5fYWxsXzFtX0ltcHV0ZWRfd2l0aF8wDQoNCg0KDQoNCiMgZHRfd2luc29yaXplZFtpcy5uYShOX05lZ2F0aXZlKSxOX05lZ2F0aXZlOj0wXQ0KIyBkdF93aW5zb3JpemVkW2lzLm5hKE5fTmVnYXRpdmVfMW0pLE5fTmVnYXRpdmVfMW06PTBdDQojIGR0X3dpbnNvcml6ZWRbaXMubmEoTl9OZWdhdGl2ZV8ybSksTl9OZWdhdGl2ZV8ybTo9MF0NCiMgZHRfd2luc29yaXplZFtpcy5uYShOX05lZ2F0aXZlXzNtKSxOX05lZ2F0aXZlXzNtOj0wXQ0KDQoNCmR0X3dpbnNvcml6ZWQkUFNTX25lZ2F0aXZlPC1kdCRQU1NfbmVnYXRpdmUNCmR0X3dpbnNvcml6ZWQkUFNTX25lZ2F0aXZlXzFtPC1kdCRQU1NfbmVnYXRpdmVfMW0NCmR0X3dpbnNvcml6ZWQkUFNTX25lZ2F0aXZlXzJtPC1kdCRQU1NfbmVnYXRpdmVfMm0NCmR0X3dpbnNvcml6ZWQkUFNTX25lZ2F0aXZlXzNtPC1kdCRQU1NfbmVnYXRpdmVfM20NCg0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0dBTzwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0FBRVJTPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSUw0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMjwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzINCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMjwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMg0KDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0dBT18xPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fb2ZmZnNldDENCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfb2ZmZnNldDENCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfMTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfb2ZmZnNldDENCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl8xPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX29mZmZzZXQxDQoNCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzM8LWR0JExvd19BdWRpdF9RdWFsaXR5X0dBT19vZmZmc2V0Mw0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18zPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19vZmZmc2V0Mw0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl8zPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9vZmZmc2V0Mw0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXzM8LWR0JExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfb2ZmZnNldDMNCg0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fNTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPX29mZmZzZXQ1DQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzU8LWR0JExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX29mZmZzZXQ1DQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0dBT18yXzU8LWR0JExvd19BdWRpdF9RdWFsaXR5X0dBT18yX29mZmZzZXQ1DQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfNTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9vZmZmc2V0NQ0KDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0dBT18yPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fb2ZmZnNldDINCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMjwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfb2ZmZnNldDINCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfMjwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfb2ZmZnNldDINCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl8yPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX29mZmZzZXQyDQoNCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzA8LWR0JExvd19BdWRpdF9RdWFsaXR5X0dBT19vZmZmc2V0MA0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18wPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19vZmZmc2V0MA0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl8wPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9vZmZmc2V0MA0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXzA8LWR0JExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfb2ZmZnNldDANCg0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fbWludXMxPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9HQU9fb2Zmc2V0bWludXMxDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX21pbnVzMTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfb2Zmc2V0bWludXMxDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0dBT18yX21pbnVzMTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfb2Zmc2V0bWludXMxDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfbWludXMxPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX29mZnNldG1pbnVzMQ0KDQoNCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHMNCmR0X3dpbnNvcml6ZWQkQW55X0Rpc2NyZXRlPC1kdCRBbnlfRGlzY3JldGUNCg0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZDwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWQNCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZDwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZA0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8xPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8xDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfMTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8xDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkXzM8LWR0JExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkXzMNCmR0X3dpbnNvcml6ZWQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8zPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkXzMNCg0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50czwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X1NFQzJfMTwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl8xDQpkdF93aW5zb3JpemVkJExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c18xPC1kdCRMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfMQ0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9TRUMyXzM8LWR0JExvd19BdWRpdF9RdWFsaXR5X1NFQzJfMw0KZHRfd2luc29yaXplZCRMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfMzwtZHQkTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzXzMNCg0KDQoNCg0KZHRfd2luc29yaXplZCRTSUNfQ29kZTwtZHQkU0lDX0NvZGUNCmR0X3dpbnNvcml6ZWQkU0lDX0NvZGVfMjwtZHQkU0lDX0NvZGVfMg0KZHRfd2luc29yaXplZCRTSUNfQ29kZV8zPC1kdCRTSUNfQ29kZV8zDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZDo9TG93X0F1ZGl0X1F1YWxpdHlfU0VDMl0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMiksTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkOj0wXQ0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkXzE6PUxvd19BdWRpdF9RdWFsaXR5X1NFQzJfMV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl8xKSxMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfMTo9MF0NCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZF8zOj1Mb3dfQXVkaXRfUXVhbGl0eV9TRUMyXzNdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfMyksTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkXzM6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWQ6PUxvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZCksTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZDo9MF0NCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfMTo9TG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfMV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfMSksTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF8xOj0wXQ0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF8zOj1Mb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8zXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8zKSxMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzM6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkOj1Mb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50cyksTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHV0ZWQ6PTBdDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF8xOj1Mb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfMV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzXzEpLExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkXzE6PTBdDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF8zOj1Mb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfM10NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzXzMpLExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkXzM6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZDo9TG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZCksTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkOj0wXQ0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzE6PUxvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfMV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF8xKSxMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfMTo9MF0NCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF8zOj1Mb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkXzNdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfMyksTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzM6PTBdDQoNCg0KDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWQ6PUxvd19BdWRpdF9RdWFsaXR5X0FBRVJTXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSUyksTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZDo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkOj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yKSxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWQ6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWQ6PUxvd19BdWRpdF9RdWFsaXR5X0dBT18yXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMiksTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZDo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWQ6PUxvd19BdWRpdF9RdWFsaXR5X0dBT10NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPKSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZDo9MF0NCg0KDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzE6PUxvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzFdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzEpLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfMTo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzE6PUxvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfMV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl8xKSxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfMTo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8xOj1Mb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl8xXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl8xKSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzE6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzE6PUxvd19BdWRpdF9RdWFsaXR5X0dBT18xXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMSksTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMTo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF8zOj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18zXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18zKSxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzM6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8zOj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXzNdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfMyksTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzM6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfMzo9TG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfM10NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfMyksTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8zOj0wXQ0KDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF8zOj1Mb3dfQXVkaXRfUXVhbGl0eV9HQU9fM10NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzMpLExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzM6PTBdDQoNCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF81Oj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU181XQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU181KSxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzU6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF81Oj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXzVdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfNSksTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzU6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfNTo9TG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfNV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfNSksTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF81Oj0wXQ0KDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF81Oj1Mb3dfQXVkaXRfUXVhbGl0eV9HQU9fNV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzUpLExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzU6PTBdDQoNCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF8yOj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yKSxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzI6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8yOj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXzJdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfMiksTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzI6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfMjo9TG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfMl0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfMiksTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8yOj0wXQ0KDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF8yOj1Mb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzIpLExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzI6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfMDo9TG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMF0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMCksTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF8wOj0wXQ0KDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfMDo9TG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl8wXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yXzApLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8wOj0wXQ0KDQpkdF93aW5zb3JpemVkWyxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzA6PUxvd19BdWRpdF9RdWFsaXR5X0dBT18yXzBdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X0dBT18yXzApLExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfMDo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMDo9TG93X0F1ZGl0X1F1YWxpdHlfR0FPXzBdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X0dBT18wKSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF8wOj0wXQ0KDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbWludXMxOj1Mb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19taW51czFdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX21pbnVzMSksTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9taW51czE6PTBdDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9taW51czE6PUxvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfbWludXMxXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX21pbnVzMSksTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX21pbnVzMTo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9taW51czE6PUxvd19BdWRpdF9RdWFsaXR5X0dBT18yX21pbnVzMV0NCmR0X3dpbnNvcml6ZWRbaXMubmEoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfbWludXMxKSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX21pbnVzMTo9MF0NCg0KZHRfd2luc29yaXplZFssTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbWludXMxOj1Mb3dfQXVkaXRfUXVhbGl0eV9HQU9fbWludXMxXQ0KZHRfd2luc29yaXplZFtpcy5uYShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fbWludXMxKSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9taW51czE6PTBdDQoNCg0KDQoNCg0KZHRfd2luc29yaXplZFtSZXBvcnRpbmdfWWVhcjwyMDAxIHwgUmVwb3J0aW5nX1llYXI+MjAwNiB8IChSZXBvcnRpbmdfWWVhcj09MjAwNiAmIFllYXJfZW5kX01vbnRoPjYpLA0KICAgJzo9JyhMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZD1OQSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkPU5BLA0KICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF8xPU5BLExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfMT1OQSwNCiAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMz1OQSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzM9TkEsDQogICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX21pbnVzMT1OQSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX21pbnVzMT1OQSwNCiAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMD1OQSxMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzA9TkEsDQogICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzI9TkEsTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8yPU5BLA0KICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF81PU5BLExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfNT1OQSldDQoNCmR0X3dpbnNvcml6ZWRbLExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkOj1Mb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNdDQpkdF93aW5zb3JpemVkW2lzLm5hKExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50cyksTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHV0ZWQ6PTBdDQoNCmR0X3dpbnNvcml6ZWRbaXMubmEoQW55X0Rpc2NyZXRlKSxBbnlfRGlzY3JldGU6PTBdDQoNCmR0X3dpbnNvcml6ZWQkUFNTX25lZ2F0aXZlXzFtX0ltcHV0ZWQ8LWR0JFBTU19uZWdhdGl2ZV8xbQ0KZHRfd2luc29yaXplZCRQU1NfbmVnYXRpdmVfMm1fSW1wdXRlZDwtZHQkUFNTX25lZ2F0aXZlXzJtDQpkdF93aW5zb3JpemVkJFBTU19uZWdhdGl2ZV8zbV9JbXB1dGVkPC1kdCRQU1NfbmVnYXRpdmVfM20NCg0KZHRfd2luc29yaXplZFtpcy5uYShQU1NfbmVnYXRpdmVfMW1fSW1wdXRlZCksUFNTX25lZ2F0aXZlXzFtX0ltcHV0ZWQ6PTUwXQ0KZHRfd2luc29yaXplZFtpcy5uYShQU1NfbmVnYXRpdmVfMm1fSW1wdXRlZCksUFNTX25lZ2F0aXZlXzJtX0ltcHV0ZWQ6PTUwXQ0KZHRfd2luc29yaXplZFtpcy5uYShQU1NfbmVnYXRpdmVfM21fSW1wdXRlZCksUFNTX25lZ2F0aXZlXzNtX0ltcHV0ZWQ6PTUwXQ0KDQoNCmR0X3dpbnNvcml6ZWQkUFNTXzFtX0ltcHV0ZWQ8LWR0JFBTU18xbQ0KZHRfd2luc29yaXplZCRQU1NfMm1fSW1wdXRlZDwtZHQkUFNTXzJtDQpkdF93aW5zb3JpemVkJFBTU18zbV9JbXB1dGVkPC1kdCRQU1NfM20NCg0KZHRfd2luc29yaXplZFtpcy5uYShQU1NfMW1fSW1wdXRlZCksUFNTXzFtX0ltcHV0ZWQ6PTUwXQ0KZHRfd2luc29yaXplZFtpcy5uYShQU1NfMm1fSW1wdXRlZCksUFNTXzJtX0ltcHV0ZWQ6PTUwXQ0KZHRfd2luc29yaXplZFtpcy5uYShQU1NfM21fSW1wdXRlZCksUFNTXzNtX0ltcHV0ZWQ6PTUwXQ0KDQoNCmBgYA0KDQoNCg0KDQpgYGB7cn0NCmR0X3dpbnNvcml6ZWRbLCc6PScoDQogICAgICAgICAgICAgICBQb3NpdGl2ZV9BYm5vcm1hbF9BY2NydWFscz1pZmVsc2UoQWJub3JtYWxfQWNjcnVhbD4wLEFibm9ybWFsX0FjY3J1YWwsTkEpLA0KICAgICAgICAgICAgICAgTmVnYXRpdmVfQWJub3JtYWxfQWNjcnVhbHM9aWZlbHNlKEFibm9ybWFsX0FjY3J1YWw8MCwtQWJub3JtYWxfQWNjcnVhbCxOQSksDQogICAgICAgICAgICAgICBOZXV0cmFsX0Fibm9ybWFsX0FjY3J1YWxzPWlmZWxzZShBYm5vcm1hbF9BY2NydWFsPT0wLEFibm9ybWFsX0FjY3J1YWwsTkEpLA0KICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgIFBvc2l0aXZlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMj1pZmVsc2UoRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyPjAsRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyLE5BKSxOZXV0cmFsX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMj1pZmVsc2UoRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyPT0wLERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMixOQSksDQogICAgICAgICAgICAgICBOZWdhdGl2ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzI9aWZlbHNlKERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMjwwLC1EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzIsTkEpLA0KICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgIFBvc2l0aXZlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMz1pZmVsc2UoRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzPjAsRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzLE5BKSxOZXV0cmFsX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMz1pZmVsc2UoRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzPT0wLERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMyxOQSksDQogICAgICAgICAgICAgICBOZWdhdGl2ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzM9aWZlbHNlKERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMzwwLC1EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzMsTkEpICANCiAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgKV0NCg0KDQpgYGANCg0KDQpgYGB7ciBjYWxjdWxhdGUgbGFnc30NCnNldG9yZGVyKGR0LENJSyxSZXBvcnRpbmdfWWVhcikNCmR0WyxsYWdfUmVwb3J0aW5nX1llYXI6PXNoaWZ0KFJlcG9ydGluZ19ZZWFyLHR5cGU9ImxhZyIpLGJ5PUNJS10NCmR0WywnOj0nKGxhZ19Db250cm9sX1ZhcmlhYmxlXzE9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQ29udHJvbF9WYXJpYWJsZV8xLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIGxhZ19Db250cm9sX1ZhcmlhYmxlXzI9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQ29udHJvbF9WYXJpYWJsZV8yLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIGxhZ19Db250cm9sX1ZhcmlhYmxlXzM9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQ29udHJvbF9WYXJpYWJsZV8zLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIGxhZ19Db250cm9sX1ZhcmlhYmxlXzQ9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQ29udHJvbF9WYXJpYWJsZV80LHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIGxhZ19Db250cm9sX1ZhcmlhYmxlXzU9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQ29udHJvbF9WYXJpYWJsZV81LHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIGxhZ19Db250cm9sX1ZhcmlhYmxlXzY9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQ29udHJvbF9WYXJpYWJsZV82LHR5cGU9ImxhZyIpLE5BKQ0KICAgICAgICApLGJ5PUNJS10NCg0KDQoNCiNjaGVja19ob2xlczwtZHRbIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcildDQpzZXRvcmRlcihkdF93aW5zb3JpemVkLENJSyxSZXBvcnRpbmdfWWVhcikNCmR0X3dpbnNvcml6ZWRbLGxhZ19SZXBvcnRpbmdfWWVhcjo9c2hpZnQoUmVwb3J0aW5nX1llYXIsdHlwZT0ibGFnIiksYnk9Q0lLXQ0KZHRfd2luc29yaXplZFssbGVhZF9SZXBvcnRpbmdfWWVhcjo9c2hpZnQoUmVwb3J0aW5nX1llYXIsdHlwZT0ibGVhZCIpLGJ5PUNJS10NCnNldG9yZGVyKGR0X3dpbnNvcml6ZWQsQ0lLLFJlcG9ydGluZ19ZZWFyKQ0KZHRfd2luc29yaXplZFssJzo9JyhsYWdfQ29udHJvbF9WYXJpYWJsZV8xPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KENvbnRyb2xfVmFyaWFibGVfMSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBsYWdfQ29udHJvbF9WYXJpYWJsZV8yPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KENvbnRyb2xfVmFyaWFibGVfMix0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBsYWdfQ29udHJvbF9WYXJpYWJsZV8zPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KENvbnRyb2xfVmFyaWFibGVfMyx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBsYWdfQ29udHJvbF9WYXJpYWJsZV80PWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KENvbnRyb2xfVmFyaWFibGVfNCx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBsYWdfQ29udHJvbF9WYXJpYWJsZV81PWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KENvbnRyb2xfVmFyaWFibGVfNSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBsYWdfQ29udHJvbF9WYXJpYWJsZV82PWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KENvbnRyb2xfVmFyaWFibGVfNix0eXBlPSJsYWciKSxOQSkNCiAgICAgICAgKSxieT1DSUtdDQoNCg0KZHRbY29tcGxldGUuY2FzZXMoZHRbLC4obGFnX0NvbnRyb2xfVmFyaWFibGVfMSxsYWdfQ29udHJvbF9WYXJpYWJsZV8yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFnX0NvbnRyb2xfVmFyaWFibGVfMyxsYWdfQ29udHJvbF9WYXJpYWJsZV80LGxhZ19Db250cm9sX1ZhcmlhYmxlXzUsbGFnX0NvbnRyb2xfVmFyaWFibGVfNildKSxDb21wbGV0ZV9Db250cm9sczo9MV0NCg0KZHRbY29tcGxldGUuY2FzZXMoZHRbLC4oQ29udHJvbF9WYXJpYWJsZV8xLENvbnRyb2xfVmFyaWFibGVfMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xfVmFyaWFibGVfMyxDb250cm9sX1ZhcmlhYmxlXzQsQ29udHJvbF9WYXJpYWJsZV81LENvbnRyb2xfVmFyaWFibGVfNildKSxDb21wbGV0ZV9Db250cm9sc19DdXJyZW50Oj0xXQ0KDQoNCg0KDQpkdF93aW5zb3JpemVkW2NvbXBsZXRlLmNhc2VzKGR0X3dpbnNvcml6ZWRbLC4obGFnX0NvbnRyb2xfVmFyaWFibGVfMSxsYWdfQ29udHJvbF9WYXJpYWJsZV8yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFnX0NvbnRyb2xfVmFyaWFibGVfMyxsYWdfQ29udHJvbF9WYXJpYWJsZV80LGxhZ19Db250cm9sX1ZhcmlhYmxlXzUsbGFnX0NvbnRyb2xfVmFyaWFibGVfNildKSxDb21wbGV0ZV9Db250cm9sczo9MV0NCg0KZHRfd2luc29yaXplZFtjb21wbGV0ZS5jYXNlcyhkdF93aW5zb3JpemVkWywuKENvbnRyb2xfVmFyaWFibGVfMSxDb250cm9sX1ZhcmlhYmxlXzIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sX1ZhcmlhYmxlXzMsQ29udHJvbF9WYXJpYWJsZV80LENvbnRyb2xfVmFyaWFibGVfNSxDb250cm9sX1ZhcmlhYmxlXzYpXSksQ29tcGxldGVfQ29udHJvbHNfQ3VycmVudDo9MV0NCg0KIyMjIGdldCByaWQgb2YgMjAwMCwgd2hpY2ggd2FzIHVzZWQganVzdCBmcm8gdGhlIGxhZ3MgZm9yIGNvbnRyb2wgdmFyaWFibGVzDQpkdF93aW5zb3JpemVkPC1kdF93aW5zb3JpemVkW1JlcG9ydGluZ19ZZWFyPj0yMDAxXQ0KZHQ8LWR0W1JlcG9ydGluZ19ZZWFyPj0yMDAxXQ0KDQojaGVyZSBuZXchISENCiAgICAgICAgICAgICAgICAgICAgDQpkdF93aW5zb3JpemVkWywnOj0nKExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZCx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGFnXzE9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX2xhZ18xPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfMSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX2xhZ18zPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sYWdfMz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGFnXzU9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfNSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX2xhZ181PWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfNSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9sYWdfMD1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF8wLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGFnXzA9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8wLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGFnXzI9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMix0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX2xhZ18yPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfMix0eXBlPSJsYWciKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX2xhZ19taW51czE9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbWludXMxLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGFnX21pbnVzMT1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX21pbnVzMSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICANCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWdfMT1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzEsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xhZ18xPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8xLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWdfMz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xhZ18zPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8zLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWdfbWludXMxPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbWludXMxLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9sYWdfbWludXMxPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9taW51czEsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkX2xhZ18wPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfMCx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGFnXzA9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzAsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkX2xhZ18yPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfMix0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGFnXzI9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzIsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbGFnXzU9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF81LHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9sYWdfNT1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfNSx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWQsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkX2xhZ18xPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZF8xLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZF9sYWdfMz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfMyx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfbGFnPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWQsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sYWdfMT1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzEsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sYWdfMz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgDQogICAgICAgICANCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZCx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF9sYWdfMT1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF8xLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkX2xhZ18zPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkXzMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgDQogICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfbGFnPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZCx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfbGFnXzE9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzEsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkX2xhZ18zPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF8zLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgDQogICAgICAgICANCiAgICAgICAgIA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWc9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZCx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGFnPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZCx0eXBlPSJsYWciKSxOQSkNCiAgICAgICAgKSxieT1DSUtdDQoNCg0KZHRfd2luc29yaXplZFssJzo9JyhMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9sZWFkPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKSsxKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWQsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGVhZD1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhcikrMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWQsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX2xlYWRfMT1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzEsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGVhZF8xPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8xLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX2xlYWRfMz1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkXzMsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGVhZF8zPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8zLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGVhZF9taW51czE9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9taW51czEsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGVhZF9taW51czE9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX21pbnVzMSx0eXBlPSJsZWFkIiksTkEpLCANCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGVhZF8wPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMCx0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sZWFkXzA9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzAsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGVhZF8yPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMix0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sZWFkXzI9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzIsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGVhZF81PWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfNSx0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sZWFkXzU9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzUsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgDQogICAgICAgICANCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sZWFkXzE9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzEsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9sZWFkXzE9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfMSx0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgDQogICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkX2xlYWRfMz1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfMyx0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xlYWRfMz1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8zLHR5cGU9ImxlYWQiKSxOQSksDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkX2xlYWRfMj1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfMix0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xlYWRfMj1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8yLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbGVhZF8wPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF8wLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGVhZF8wPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzAsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sZWFkX21pbnVzMT1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbWludXMxLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGVhZF9taW51czE9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbWludXMxLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbGVhZF81PWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF81LHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGVhZF81PWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzUsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgDQogICAgICAgICANCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sZWFkPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKSsxKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZCx0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xlYWQ9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpKzEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWQsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfbGVhZD1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZCx0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkX2xlYWRfMT1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZF8xLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfbGVhZF8zPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkXzMsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sZWFkPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZCx0eXBlPSJsZWFkIiksTkEpLA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sZWFkXzE9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzEsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfbGVhZF8zPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF8zLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICANCiAgICAgICAgIA0KICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHV0ZWRfbGVhZD1pZmVsc2UoIWlzLm5hKGxlYWRfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxlYWRfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF9sZWFkXzE9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF8xLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF9sZWFkXzM9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF8zLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICANCiAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sZWFkPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkLHR5cGU9ImxlYWQiKSxOQSksDQogICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfbGVhZF8xPWlmZWxzZSghaXMubmEobGVhZF9SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGVhZF9SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzEsdHlwZT0ibGVhZCIpLE5BKSwNCiAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sZWFkXzM9aWZlbHNlKCFpcy5uYShsZWFkX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsZWFkX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfMyx0eXBlPSJsZWFkIiksTkEpDQogICAgICAgICANCiAgICAgICANCiAgICAgICAgKSxieT1DSUtdDQoNCmR0X3dpbnNvcml6ZWRbLCc6PScoUG9zaXRpdmVfQWJub3JtYWxfQWNjcnVhbHNfbGFnPWlmZWxzZSghaXMubmEobGFnX1JlcG9ydGluZ19ZZWFyKSYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMuaW50ZWdlcihsYWdfUmVwb3J0aW5nX1llYXIpPT0oYXMuaW50ZWdlcihSZXBvcnRpbmdfWWVhciktMSksICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KFBvc2l0aXZlX0Fibm9ybWFsX0FjY3J1YWxzLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIE5lZ2F0aXZlX0Fibm9ybWFsX0FjY3J1YWxzX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChOZWdhdGl2ZV9BYm5vcm1hbF9BY2NydWFscyx0eXBlPSJsYWciKSxOQSksDQogICAgICAgICBBYnNvbHV0ZV9BYm5vcm1hbF9BY2NydWFsc19sYWc9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQWJzb2x1dGVfQWJub3JtYWxfQWNjcnVhbHMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgDQogICAgICAgICANCiAgICAgICAgIFBvc2l0aXZlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMl9sYWc9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoUG9zaXRpdmVfRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIE5lZ2F0aXZlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMl9sYWc9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTmVnYXRpdmVfRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIEFic29sdXRlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMl9sYWc9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoQWJzb2x1dGVfRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyLHR5cGU9ImxhZyIpLE5BKSwNCiAgICAgICAgIA0KICAgICAgICAgUG9zaXRpdmVfRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChQb3NpdGl2ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgTmVnYXRpdmVfRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChOZWdhdGl2ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzMsdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgQWJzb2x1dGVfRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChBYnNvbHV0ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzMsdHlwZT0ibGFnIiksTkEpDQogICAgICAgICANCiAgICAgICAgKSxieT1DSUtdDQoNCmR0X3dpbnNvcml6ZWRbLCc6PScoUFNTXzFtX2xhZz1pZmVsc2UoIWlzLm5hKGxhZ19SZXBvcnRpbmdfWWVhcikmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmludGVnZXIobGFnX1JlcG9ydGluZ19ZZWFyKT09KGFzLmludGVnZXIoUmVwb3J0aW5nX1llYXIpLTEpLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdChQU1NfMW0sdHlwZT0ibGFnIiksTkEpLA0KICAgICAgICAgICAgICAgICAgICBOX2FsbF8xbV9sYWc9aWZlbHNlKCFpcy5uYShsYWdfUmVwb3J0aW5nX1llYXIpJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5pbnRlZ2VyKGxhZ19SZXBvcnRpbmdfWWVhcik9PShhcy5pbnRlZ2VyKFJlcG9ydGluZ19ZZWFyKS0xKSwgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoTl9hbGxfMW0sdHlwZT0ibGFnIiksTkEpDQogICAgICAgICAgICAgICAgICAgICksYnk9Q0lLXQ0KDQpgYGANCg0KDQoNCg0KDQpgYGB7cn0NCnNldGtleShkdF93aW5zb3JpemVkLENJSyxSZXBvcnRpbmdfWWVhcikNCkF1ZGl0b3JfQ29kZVssUmVwb3J0aW5nX1llYXI6PWFzLmNoYXJhY3RlcihSZXBvcnRpbmdfWWVhcildDQoNCmNoZWNrPC1BdWRpdG9yX0NvZGVbLC5OLGJ5PWMoIkNJSyIsIlJlcG9ydGluZ19ZZWFyIildW04+MV0NCnNwcjwtQXVkaXRvcl9Db2RlW0NJSz09IjgxMjcwMSIsXQ0KQXVkaXRvcl9Db2RlPC1BdWRpdG9yX0NvZGVbLCAuU0RbMV0sIGMoIkNJSyIsIlJlcG9ydGluZ19ZZWFyIildDQoNCnNldGtleShBdWRpdG9yX0NvZGUsQ0lLLFJlcG9ydGluZ19ZZWFyKQ0Kc2V0a2V5KGR0LENJSyxSZXBvcnRpbmdfWWVhcikNCg0KZHRfd2luc29yaXplZDwtQXVkaXRvcl9Db2RlW2R0X3dpbnNvcml6ZWRdDQpkdDwtQXVkaXRvcl9Db2RlW2R0XQ0KDQpkdF9maW5hbDwtZHRbY29tcGxldGUuY2FzZXMoZHRbLC4obGFnX0NvbnRyb2xfVmFyaWFibGVfMSxsYWdfQ29udHJvbF9WYXJpYWJsZV8yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFnX0NvbnRyb2xfVmFyaWFibGVfMyxsYWdfQ29udHJvbF9WYXJpYWJsZV80LGxhZ19Db250cm9sX1ZhcmlhYmxlXzUsbGFnX0NvbnRyb2xfVmFyaWFibGVfNildKV0NCmR0X2ZpbmFsX2JlZm9yZV9BcnRpY2xlczwtZHRfZmluYWxbKGlzLm5hKEF1ZGl0b3IpfEF1ZGl0b3IhPSJVbmF1ZGl0ZWQiKSYoU0lDX0NvZGVfMjw2MHxTSUNfQ29kZV8yPjY5KSAmIWlzLm5hKFNJQ19Db2RlXzIpLF0gDQpkdF9maW5hbDwtZHRfZmluYWxfYmVmb3JlX0FydGljbGVzW05fYWxsXzFtX1VOV0VJR0hURUQ+PU1pbmltdW1fQXJ0aWNsZXNfTm8sXSANCg0KZHRfd2luc29yaXplZF9maW5hbDwtZHRfd2luc29yaXplZFtjb21wbGV0ZS5jYXNlcyhkdF93aW5zb3JpemVkWywuKGxhZ19Db250cm9sX1ZhcmlhYmxlXzEsbGFnX0NvbnRyb2xfVmFyaWFibGVfMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhZ19Db250cm9sX1ZhcmlhYmxlXzMsbGFnX0NvbnRyb2xfVmFyaWFibGVfNCxsYWdfQ29udHJvbF9WYXJpYWJsZV81LGxhZ19Db250cm9sX1ZhcmlhYmxlXzYpXSldDQpkdF93aW5zb3JpemVkX2ZpbmFsX2JlZm9yZV9BcnRpY2xlczwtZHRfd2luc29yaXplZF9maW5hbFsoaXMubmEoQXVkaXRvcil8QXVkaXRvciE9IlVuYXVkaXRlZCIpJihTSUNfQ29kZV8yPDYwfFNJQ19Db2RlXzI+NjkpJiFpcy5uYShTSUNfQ29kZV8yKSxdDQoNCmR0X3dpbnNvcml6ZWRfZmluYWw8LWR0X3dpbnNvcml6ZWRfZmluYWxfYmVmb3JlX0FydGljbGVzW05fYWxsXzFtX1VOV0VJR0hURUQ+PU1pbmltdW1fQXJ0aWNsZXNfTm8sXQ0KDQoNCg0KDQogICAgICAgICAgICAgICAgICAgDQpkdF93aW5zb3JpemVkWywnOj0nKExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZD09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wcm92ZW1lbnQ9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHJvdmVtZW50XzE9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX2xhZ18xPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF8xPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXByb3ZlbWVudF8xPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX2xhZ18xPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzE9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXByb3ZlbWVudF8zPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9sYWdfMz09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMz09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wcm92ZW1lbnRfMz1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sYWdfMz09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8zPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXByb3ZlbWVudF81PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9sYWdfNT09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfNT09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wcm92ZW1lbnRfNT1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sYWdfNT09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF81PT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHJvdmVtZW50XzA9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkX2xhZ18wPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF8wPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXByb3ZlbWVudF8wPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkX2xhZ18wPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkXzA9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXByb3ZlbWVudF8yPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9sYWdfMj09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfMj09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wcm92ZW1lbnRfMj1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sYWdfMj09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF8yPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHJvdmVtZW50X21pbnVzMT1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGFnX21pbnVzMT09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbWludXMxPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXByb3ZlbWVudF9taW51czE9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGFnX21pbnVzMT09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9taW51czE9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICANCg0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWQ9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wcm92ZW1lbnQ9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZD09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wcm92ZW1lbnRfMT1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWdfMT09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF8xPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHJvdmVtZW50XzE9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9sYWdfMT09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzE9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHJvdmVtZW50XzM9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbGFnXzM9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfMz09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXByb3ZlbWVudF8zPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGFnXzM9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF8zPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXByb3ZlbWVudF81PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkX2xhZ181PT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzU9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wcm92ZW1lbnRfNT1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xhZ181PT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfNT09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXByb3ZlbWVudF8wPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkX2xhZ18wPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkXzA9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wcm92ZW1lbnRfMD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xhZ18wPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfMD09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wcm92ZW1lbnRfMj1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWdfMj09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF8yPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHJvdmVtZW50XzI9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9sYWdfMj09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkXzI9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wcm92ZW1lbnRfbWludXMxPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkX2xhZ19taW51czE9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbWludXMxPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHJvdmVtZW50X21pbnVzMT1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfMl9JbXB1dGVkX2xhZ19taW51czE9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9taW51czE9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHJvdmVtZW50PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWQ9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wcm92ZW1lbnRfMT1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXB1dGVkX2xhZ18xPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfMT09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXByb3ZlbWVudF8zPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfbGFnXzM9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZF8zPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWQ9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHJvdmVtZW50XzE9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfbGFnXzE9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfMT09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wcm92ZW1lbnRfMz1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sYWdfMz09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF8zPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHJvdmVtZW50PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wcm92ZW1lbnRfMT1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHV0ZWRfbGFnXzE9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkXzE9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXByb3ZlbWVudF8zPWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF9sYWdfMz09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHV0ZWRfMz09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkX2xhZz09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHJvdmVtZW50XzE9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wdXRlZF9sYWdfMT09MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkXzE9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19SZXN0YXRlZF9QZXJpb2RfRW5kZWRfSW1wcm92ZW1lbnRfMz1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXB1dGVkX2xhZ18zPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHV0ZWRfMz09MCwxLDApLE5BKQ0KICAgICAgICAgICAgICAgICAgICANCiANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICApXQ0KDQoNCmBgYA0KDQoNCiMjIyBSRVNUQVRFTUVOVFMgQU5EIEZJTElOR1MgRGVzY3JpcHRpdmUgU3RhdGlzdGljcw0KDQpUaGUgZmlyc3QgdGFibGUgYmVsb3cgc2hvd3MgdGhlIG51bWJlciBvZiBjb21wYW5pZXMgd2l0aCBsb3cgYXVkaXQgcXVhbGl0eSBhcyBpbmRpY2F0ZWQgYnkgZWFjaCBkaXNjcmV0ZSBwcm94eSBmb3IgYWxsIHRoZSBjb21wYW5pZXMgaW5jbHVkZWQgaW4gdGhlIHByaW1hcnkgc2FtcGxlLiBUaGUgcGVyY2VudGFnZSBpbiBwYXJlbnRoZXNpcyBpbmRpY2F0ZXMgdGhlIHBlcmNlbnRhZ2Ugb2YgYWxsIGNvbXBhbmllcy4gVGhlIHNlY29uZCB0YWJsZSBzaG93cyB0aGUgc2FtZSBzdGF0aXRpY3Mgb24gdGhlIGZpbmFsIG1vZGVsIHNhbXBsZSAoYWZ0ZXIgZXhjbHVkaW5nIG9ic2VydmF0aW9ucyB3aXRoIG1pc3NpbmcgdmFsdWVzIG9uIGFueSBvZiB0aGUgY29udHJvbCB2YXJpYWJsZXMgYW5kIGNvbXBhbmllcyBmcm9tIHRoZSBGaW5hbmNpYWwgU2VydmljZXMgSW5kdXN0cnkpLiBUaGUgcGxvdHMgaWxsdXN0cmF0ZSBwZXJjZW50YWdlcyBmcm9tIHRoZSB0YWJsZXMuDQoNCg0KDQpgYGB7cn0NCiN3cml0ZS5jc3YoZHRfd2luc29yaXplZCwiZHRfd2luc29yaXplZC5jc3YiKQ0KYGBgDQoNCmBgYHtyfQ0KI2xpbmVhIDIwODgNCg0KZHRfd2luc29yaXplZFssJzo9JygNCiAgICAgICAgICAgICAgIFBvc2l0aXZlX0Fibm9ybWFsX0FjY3J1YWxzPWlmZWxzZShBYm5vcm1hbF9BY2NydWFsPj0wLEFibm9ybWFsX0FjY3J1YWwsTkEpLA0KICAgICAgICAgICAgICAgTmVnYXRpdmVfQWJub3JtYWxfQWNjcnVhbHM9aWZlbHNlKEFibm9ybWFsX0FjY3J1YWw8PTAsLUFibm9ybWFsX0FjY3J1YWwsTkEpLA0KICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgIFBvc2l0aXZlX0Rpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMj1pZmVsc2UoRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyPj0wLERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMixOQSksDQogICAgICAgICAgICAgICBOZWdhdGl2ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzI9aWZlbHNlKERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMjw9MCwtRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMyLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICBQb3NpdGl2ZV9EaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzM9aWZlbHNlKERpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMz49MCxEaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzMsTkEpLA0KICAgICAgICAgICAgICAgTmVnYXRpdmVfRGlzY3JldGlvbmFyeV9BY2NydWFsc19TSUMzPWlmZWxzZShEaXNjcmV0aW9uYXJ5X0FjY3J1YWxzX1NJQzM8PTAsLURpc2NyZXRpb25hcnlfQWNjcnVhbHNfU0lDMyxOQSkgIA0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICApXQ0KYGBgDQoNCjM2NDQNCmBgYHtyIH0NCg0KZHRfd2luc29yaXplZFssJzo9JyhkaWZfQ29udHJvbF9WYXJpYWJsZV8xPUNvbnRyb2xfVmFyaWFibGVfMS1sYWdfQ29udHJvbF9WYXJpYWJsZV8xLA0KZGlmX0NvbnRyb2xfVmFyaWFibGVfMj1Db250cm9sX1ZhcmlhYmxlXzItbGFnX0NvbnRyb2xfVmFyaWFibGVfMiwNCmRpZl9Db250cm9sX1ZhcmlhYmxlXzM9Q29udHJvbF9WYXJpYWJsZV8zLWxhZ19Db250cm9sX1ZhcmlhYmxlXzMsDQpkaWZfQ29udHJvbF9WYXJpYWJsZV80PUNvbnRyb2xfVmFyaWFibGVfNC1sYWdfQ29udHJvbF9WYXJpYWJsZV80LA0KZGlmX0NvbnRyb2xfVmFyaWFibGVfNT1Db250cm9sX1ZhcmlhYmxlXzUtbGFnX0NvbnRyb2xfVmFyaWFibGVfNSwNCmRpZl9Db250cm9sX1ZhcmlhYmxlXzY9Q29udHJvbF9WYXJpYWJsZV82LWxhZ19Db250cm9sX1ZhcmlhYmxlXzYpXQ0KDQpgYGANCg0KDQojIyMjIERpc2NyZXRlIFByb3hpZXMgaW5jbHVkaW5nIEdBTw0KDQpgYGB7ciB9DQoNCmR0X3dpbnNvcml6ZWRfZmluYWxbLCc6PScoZGlmX0NvbnRyb2xfVmFyaWFibGVfMT1Db250cm9sX1ZhcmlhYmxlXzEtbGFnX0NvbnRyb2xfVmFyaWFibGVfMSwNCmRpZl9Db250cm9sX1ZhcmlhYmxlXzI9Q29udHJvbF9WYXJpYWJsZV8yLWxhZ19Db250cm9sX1ZhcmlhYmxlXzIsDQpkaWZfQ29udHJvbF9WYXJpYWJsZV8zPUNvbnRyb2xfVmFyaWFibGVfMy1sYWdfQ29udHJvbF9WYXJpYWJsZV8zLA0KZGlmX0NvbnRyb2xfVmFyaWFibGVfND1Db250cm9sX1ZhcmlhYmxlXzQtbGFnX0NvbnRyb2xfVmFyaWFibGVfNCwNCmRpZl9Db250cm9sX1ZhcmlhYmxlXzU9Q29udHJvbF9WYXJpYWJsZV81LWxhZ19Db250cm9sX1ZhcmlhYmxlXzUsDQpkaWZfQ29udHJvbF9WYXJpYWJsZV82PUNvbnRyb2xfVmFyaWFibGVfNi1sYWdfQ29udHJvbF9WYXJpYWJsZV82KV0NCg0KYGBgDQoNCg0KNDA1MQ0KYGBge3J9DQpkdF93aW5zb3JpemVkWywnOj0nKExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZD09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wcm92ZW1lbnQ9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXB1dGVkPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHJvdmVtZW50PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHV0ZWQ9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZD09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wcm92ZW1lbnQ9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXB1dGVkPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHJvdmVtZW50PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWRfbGFnPT0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHV0ZWQ9PTAsMSwwKSxOQSkNCiAgICAgICAgICAgICAgICAgICldDQpgYGANCg0KDQo0MzE5DQpgYGB7cn0NCmR0X3dpbnNvcml6ZWRbLCc6PScoTG93X0F1ZGl0X1F1YWxpdHlfR0FPX0ltcHJvdmVtZW50PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0dBT19JbXB1dGVkPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0dBT18yX0ltcHV0ZWQ9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wcm92ZW1lbnQ9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfSW1wdXRlZD09MCwxLDApLE5BKSwNCiAgICAgICAgICAgICAgICAgICAgTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX0ltcHJvdmVtZW50PWlmZWxzZShMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X1Jlc3RhdGVtZW50c19JbXB1dGVkPT0wLDEsMCksTkEpLA0KICAgICAgICAgICAgICAgICAgICBMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXByb3ZlbWVudD1pZmVsc2UoTG93X0F1ZGl0X1F1YWxpdHlfQUFFUlNfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTX0ltcHV0ZWQ9PTAsMSwwKSxOQSksDQogICAgICAgICAgICAgICAgICAgIExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wcm92ZW1lbnQ9aWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZF9sYWc9PTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wdXRlZD09MCwxLDApLE5BKQ0KICAgICAgICAgICAgICAgICAgKV0NCg0KZHRfd2luc29yaXplZFshaXMubmEoYXZnX05fTmVnYXRpdmVfMW1fSW1wdXRlZF93aXRoXzApJmF2Z19OX05lZ2F0aXZlXzFtX0ltcHV0ZWRfd2l0aF8wIT0wLA0KICAgICAgICAgICAgICBOX05lZ2F0aXZlXzFtOj1OX05lZ2F0aXZlXzFtX0ltcHV0ZWRfd2l0aF8wL2F2Z19OX05lZ2F0aXZlXzFtX0ltcHV0ZWRfd2l0aF8wXQ0KDQpkdF93aW5zb3JpemVkWyFpcy5uYShhdmdfTl9hbGxfMW1fSW1wdXRlZF93aXRoXzApJmF2Z19OX2FsbF8xbV9JbXB1dGVkX3dpdGhfMCE9MCwNCiAgICAgICAgICAgICAgTl9hbGxfMW06PU5fYWxsXzFtX0ltcHV0ZWRfd2l0aF8wL2F2Z19OX2FsbF8xbV9JbXB1dGVkX3dpdGhfMF0NCg0KZHRfd2luc29yaXplZDwtZHRfd2luc29yaXplZFtOX2FsbF8xbV9VTldFSUdIVEVEPj1NaW5pbXVtX0FydGljbGVzX05vJihpcy5uYShBdWRpdG9yKXxBdWRpdG9yIT0iVW5hdWRpdGVkIildDQoNCg0KY291bnRlcjwtMTINCg0KYGBgDQoNCg0KDQo2MzM4DQpSb2J1c3RuZXNzQ2hlY2sgOTogbmV3IGRlcGVuZGVudCB2YXJpYWJsZXMgZm9yIGRpc2NyZXRlDQpUYWJsZSA1MDogRGlzY3JldGUgUHJveGllcyBMb2dpc3RpYyBSZWdyZXNzaW9uIE1vZGVscywgTWlzc2luZyBQU1MgZXhjbHVkZWQgZnJvbSBNb2RlbGxpbmcNCg0KNjQyOA0KUFNTICsgbl9ORVdTDQpgYGB7ciwgcmVzdWx0cz1GQUxTRX0NCg0KR0FPIDwtIGdsbShMb3dfQXVkaXRfUXVhbGl0eV9HQU9fSW1wcm92ZW1lbnQgfiBQU1NfMW0gKyBOX2FsbF8xbSArDQogICAgICAgICAgICAgZGlmX0NvbnRyb2xfVmFyaWFibGVfMStkaWZfQ29udHJvbF9WYXJpYWJsZV8yK2RpZl9Db250cm9sX1ZhcmlhYmxlXzMrZGlmX0NvbnRyb2xfVmFyaWFibGVfNCtkaWZfQ29udHJvbF9WYXJpYWJsZV81K2RpZl9Db250cm9sX1ZhcmlhYmxlXzYsDQogICAgICAgICAgICAgZGF0YT1kdF93aW5zb3JpemVkW1NJQ19Db2RlXzI8NjB8U0lDX0NvZGVfMj42OSxdLCBmYW1pbHkgPSAiYmlub21pYWwiKQ0KDQpHQU9fMiA8LSBnbG0oTG93X0F1ZGl0X1F1YWxpdHlfR0FPXzJfSW1wcm92ZW1lbnQgfiBQU1NfMW0gKyBOX2FsbF8xbSArDQogICAgICAgICAgICAgZGlmX0NvbnRyb2xfVmFyaWFibGVfMStkaWZfQ29udHJvbF9WYXJpYWJsZV8yK2RpZl9Db250cm9sX1ZhcmlhYmxlXzMrZGlmX0NvbnRyb2xfVmFyaWFibGVfNCtkaWZfQ29udHJvbF9WYXJpYWJsZV81K2RpZl9Db250cm9sX1ZhcmlhYmxlXzYsDQogICAgICAgICAgICAgZGF0YT1kdF93aW5zb3JpemVkW1NJQ19Db2RlXzI8NjB8U0lDX0NvZGVfMj42OSxdLCBmYW1pbHkgPSAiYmlub21pYWwiKQ0KDQpTRUMyIDwtIGdsbShMb3dfQXVkaXRfUXVhbGl0eV9TRUMyX0ltcHJvdmVtZW50IH4gUFNTXzFtICsgTl9hbGxfMW0gKw0KICAgICAgICAgICAgIGRpZl9Db250cm9sX1ZhcmlhYmxlXzErZGlmX0NvbnRyb2xfVmFyaWFibGVfMitkaWZfQ29udHJvbF9WYXJpYWJsZV8zK2RpZl9Db250cm9sX1ZhcmlhYmxlXzQrZGlmX0NvbnRyb2xfVmFyaWFibGVfNStkaWZfQ29udHJvbF9WYXJpYWJsZV82LA0KICAgICAgICAgICAgIGRhdGE9ZHRfd2luc29yaXplZFtTSUNfQ29kZV8yPDYwfFNJQ19Db2RlXzI+NjksXSwgZmFtaWx5ID0gImJpbm9taWFsIikNCg0KUmVzdGF0ZW1lbnRzIDwtIGdsbShMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wcm92ZW1lbnQgfiBQU1NfMW0gKyBOX2FsbF8xbSArDQogICAgICAgICAgICAgZGlmX0NvbnRyb2xfVmFyaWFibGVfMStkaWZfQ29udHJvbF9WYXJpYWJsZV8yK2RpZl9Db250cm9sX1ZhcmlhYmxlXzMrZGlmX0NvbnRyb2xfVmFyaWFibGVfNCtkaWZfQ29udHJvbF9WYXJpYWJsZV81K2RpZl9Db250cm9sX1ZhcmlhYmxlXzYsDQogICAgICAgICAgICAgZGF0YT1kdF93aW5zb3JpemVkW1NJQ19Db2RlXzI8NjB8U0lDX0NvZGVfMj42OSxdLCBmYW1pbHkgPSAiYmlub21pYWwiKQ0KU0VDMl9SZXN0YXRlZF9QZXJpb2RfRW5kZWQgPC0gZ2xtKExvd19BdWRpdF9RdWFsaXR5X1NFQzJfUmVzdGF0ZWRfUGVyaW9kX0VuZGVkX0ltcHJvdmVtZW50IH4gUFNTXzFtICsgTl9hbGxfMW0gKw0KICAgICAgICAgICAgIGRpZl9Db250cm9sX1ZhcmlhYmxlXzErZGlmX0NvbnRyb2xfVmFyaWFibGVfMitkaWZfQ29udHJvbF9WYXJpYWJsZV8zK2RpZl9Db250cm9sX1ZhcmlhYmxlXzQrZGlmX0NvbnRyb2xfVmFyaWFibGVfNStkaWZfQ29udHJvbF9WYXJpYWJsZV82LA0KICAgICAgICAgICAgIGRhdGE9ZHRfd2luc29yaXplZFtTSUNfQ29kZV8yPDYwfFNJQ19Db2RlXzI+NjksXSwgZmFtaWx5ID0gImJpbm9taWFsIikNCg0KUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZCA8LSBnbG0oTG93X0F1ZGl0X1F1YWxpdHlfUmVzdGF0ZW1lbnRzX1Jlc3RhdGVkX1BlcmlvZF9FbmRlZF9JbXByb3ZlbWVudCB+IFBTU18xbSArIE5fYWxsXzFtICsNCiAgICAgICAgICAgICBkaWZfQ29udHJvbF9WYXJpYWJsZV8xK2RpZl9Db250cm9sX1ZhcmlhYmxlXzIrZGlmX0NvbnRyb2xfVmFyaWFibGVfMytkaWZfQ29udHJvbF9WYXJpYWJsZV80K2RpZl9Db250cm9sX1ZhcmlhYmxlXzUrZGlmX0NvbnRyb2xfVmFyaWFibGVfNiwNCiAgICAgICAgICAgICBkYXRhPWR0X3dpbnNvcml6ZWRbU0lDX0NvZGVfMjw2MHxTSUNfQ29kZV8yPjY5LF0sIGZhbWlseSA9ICJiaW5vbWlhbCIpDQoNCkFBRVJTIDwtIGdsbShMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU19JbXByb3ZlbWVudCB+IFBTU18xbSArIE5fYWxsXzFtICsNCiAgICAgICAgICAgICBkaWZfQ29udHJvbF9WYXJpYWJsZV8xK2RpZl9Db250cm9sX1ZhcmlhYmxlXzIrZGlmX0NvbnRyb2xfVmFyaWFibGVfMytkaWZfQ29udHJvbF9WYXJpYWJsZV80K2RpZl9Db250cm9sX1ZhcmlhYmxlXzUrZGlmX0NvbnRyb2xfVmFyaWFibGVfNiwNCiAgICAgICAgICAgICBkYXRhPWR0X3dpbnNvcml6ZWRbU0lDX0NvZGVfMjw2MHxTSUNfQ29kZV8yPjY5LF0sIGZhbWlseSA9ICJiaW5vbWlhbCIpDQoNCkFBRVJTXzIgPC0gZ2xtKExvd19BdWRpdF9RdWFsaXR5X0FBRVJTXzJfSW1wcm92ZW1lbnQgfiBQU1NfMW0gKyBOX2FsbF8xbSArDQogICAgICAgICAgICAgZGlmX0NvbnRyb2xfVmFyaWFibGVfMStkaWZfQ29udHJvbF9WYXJpYWJsZV8yK2RpZl9Db250cm9sX1ZhcmlhYmxlXzMrZGlmX0NvbnRyb2xfVmFyaWFibGVfNCtkaWZfQ29udHJvbF9WYXJpYWJsZV81K2RpZl9Db250cm9sX1ZhcmlhYmxlXzYsDQogICAgICAgICAgICAgZGF0YT1kdF93aW5zb3JpemVkW1NJQ19Db2RlXzI8NjB8U0lDX0NvZGVfMj42OSxdLCBmYW1pbHkgPSAiYmlub21pYWwiKQ0KDQpgYGANCg0KDQoNCmBgYHtyLHJlc3VsdHM9J2FzaXMnfQ0KDQojIEFzc2lnbiBjdXN0b20gbmFtZXMgdG8geW91ciBsaXN0IG9mIG1vZGVscw0KbW9kZWxzIDwtIGxpc3QoR0FPXzIgPSBHQU9fMiwgUmVzdGF0ZW1lbnRzID0gUmVzdGF0ZW1lbnRzLCBTRUMyID0gU0VDMiwgQUFFUlNfMiA9IEFBRVJTXzIpDQpuYW1lcyhtb2RlbHMpIDwtIGMoIkdBTyIsICJBdWRpdCBBbmFseXRpY3MiLCAiU0NBQyIsICJBQUVScyIpDQoNCiMgTm93IHVzZSBzdGFyZ2F6ZXIgdG8gY3JlYXRlIHRoZSBIVE1MIHRhYmxlIHdpdGggdGhlIGN1c3RvbSBuYW1lcw0Kc3RhcmdhemVyKG1vZGVscyRHQU8sIG1vZGVscyRgQXVkaXQgQW5hbHl0aWNzYCwgbW9kZWxzJFNDQUMsIG1vZGVscyRBQUVScywgDQogICAgICAgICAgZGVwLnZhci5sYWJlbHM9YygiR0FPIiwiQXVkaXQgQW5hbHl0aWNzIiwiU0NBQyIsIkFBRVJzIiksDQogICAgICAgICAgb3JkZXI9YygiQ29uc3RhbnQiKSwNCiAgICAgICAgICBjb3ZhcmlhdGUubGFiZWxzPWMoIkludGVyY2VwdCIsICJNU1MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTnVtYmVyIG9mIE1lZGlhIEFydGljbGVzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzaCBGbG93cyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldmVyYWdlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmlybSBHcm93dGgiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXR1cm4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3NzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmlybSBTaXplIChVU0QgbWlsbGlvbikiKSwNCg0KICAgICAgICAgIHR5cGUgPSAiaHRtbCIsIA0KICAgICAgICAgIHRpdGxlID0gIlJlZ3Jlc3Npb24gUmVzdWx0cyIsDQogICAgICAgICAgb3V0ID0gInJlZ3Jlc3Npb25fcmVzdWx0cy5odG1sIiwNCiAgICAgICAgICBkaWdpdHMgPSAyKSANCg0KDQpgYGANCg0KDQpgYGB7cn0NClBJVk9UX0RBVEE8LWR0X3dpbnNvcml6ZWQgJT4lDQogIHNlbGVjdChMb3dfQXVkaXRfUXVhbGl0eV9HQU9fMl9JbXByb3ZlbWVudCxMb3dfQXVkaXRfUXVhbGl0eV9SZXN0YXRlbWVudHNfSW1wcm92ZW1lbnQsTG93X0F1ZGl0X1F1YWxpdHlfU0VDMl9JbXByb3ZlbWVudCxMb3dfQXVkaXRfUXVhbGl0eV9BQUVSU18yX0ltcHJvdmVtZW50LCBQU1NfMW0sIE5fYWxsXzFtLCBkaWZfQ29udHJvbF9WYXJpYWJsZV8xLCBkaWZfQ29udHJvbF9WYXJpYWJsZV8yLCBkaWZfQ29udHJvbF9WYXJpYWJsZV8zLCBkaWZfQ29udHJvbF9WYXJpYWJsZV80LCBkaWZfQ29udHJvbF9WYXJpYWJsZV81LGRpZl9Db250cm9sX1ZhcmlhYmxlXzYsU0lDX0NvZGVfMikgJT4lIA0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IHN0YXJ0c193aXRoKCJMb3dfQXVkaXRfUXVhbGl0eSIpLCANCiAgICBuYW1lc190byA9ICJBdWRpdF9RdWFsaXR5X1R5cGUiLCANCiAgICB2YWx1ZXNfdG8gPSAiTG93X0F1ZGl0X1F1YWxpdHkiDQogICkgJT4lIA0KICBmaWx0ZXIoIWlzLm5hKExvd19BdWRpdF9RdWFsaXR5KSkgJT4lIA0KICBmaWx0ZXIoU0lDX0NvZGVfMjw2MHxTSUNfQ29kZV8yPjY5KQ0KICANCmBgYA0KDQoNCmBgYHtyfQ0KRlVMTF9NT0RFTCA8LSBnbG0oTG93X0F1ZGl0X1F1YWxpdHkgfiBQU1NfMW0gKyBOX2FsbF8xbSArDQogICAgICAgICAgICAgZGlmX0NvbnRyb2xfVmFyaWFibGVfMStkaWZfQ29udHJvbF9WYXJpYWJsZV8yK2RpZl9Db250cm9sX1ZhcmlhYmxlXzMrZGlmX0NvbnRyb2xfVmFyaWFibGVfNCtkaWZfQ29udHJvbF9WYXJpYWJsZV81K2RpZl9Db250cm9sX1ZhcmlhYmxlXzYsDQogICAgICAgICAgICAgZGF0YT1QSVZPVF9EQVRBLCBmYW1pbHkgPSAiYmlub21pYWwiKQ0KDQpNU1M8LWdsbShMb3dfQXVkaXRfUXVhbGl0eSB+IFBTU18xbSwNCiAgICAgICAgICAgICBkYXRhPVBJVk9UX0RBVEEsIGZhbWlseSA9ICJiaW5vbWlhbCIpDQoNCk5fQVJUPC1nbG0oTG93X0F1ZGl0X1F1YWxpdHkgfiBOX2FsbF8xbSwNCiAgICAgICAgICAgICBkYXRhPVBJVk9UX0RBVEEsIGZhbWlseSA9ICJiaW5vbWlhbCIpDQoNCmBgYA0KDQpgYGB7cixyZXN1bHRzPSdhc2lzJ30NCg0KIyBOb3cgdXNlIHN0YXJnYXplciB0byBjcmVhdGUgdGhlIEhUTUwgdGFibGUgd2l0aCB0aGUgY3VzdG9tIG5hbWVzDQpzdGFyZ2F6ZXIoRlVMTF9NT0RFTCwgTVNTLCBOX0FSVCwgDQogICAgICAgICAgb3JkZXI9YygiQ29uc3RhbnQiKSwNCiAgICAgICAgICBjb3ZhcmlhdGUubGFiZWxzPWMoIkludGVyY2VwdCIsICJNU1MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTnVtYmVyIG9mIE1lZGlhIEFydGljbGVzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzaCBGbG93cyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldmVyYWdlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmlybSBHcm93dGgiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXR1cm4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3NzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmlybSBTaXplIChVU0QgbWlsbGlvbikiKSwNCg0KICAgICAgICAgIHR5cGUgPSAiaHRtbCIsIA0KICAgICAgICAgIHRpdGxlID0gIlJlZ3Jlc3Npb24gUmVzdWx0cyIsDQogICAgICAgICAgb3V0ID0gInJlZ3Jlc3Npb25fcmVzdWx0cy5odG1sIiwNCiAgICAgICAgICBkaWdpdHMgPSAyKSANCg0KYGBgDQoNCg0KDQo2NjAzDQojIyMgRGlmZmVyZW5jZWQgY29udHJvbHMgKGN1cnJlbnQgLSBsYWcpDQoNCmBgYHtyfQ0KDQpkdF93aW5zb3JpemVkWywnOj0nKGRpZl9Db250cm9sX1ZhcmlhYmxlXzE9Q29udHJvbF9WYXJpYWJsZV8xLWxhZ19Db250cm9sX1ZhcmlhYmxlXzEsDQpkaWZfQ29udHJvbF9WYXJpYWJsZV8yPUNvbnRyb2xfVmFyaWFibGVfMi1sYWdfQ29udHJvbF9WYXJpYWJsZV8yLA0KZGlmX0NvbnRyb2xfVmFyaWFibGVfMz1Db250cm9sX1ZhcmlhYmxlXzMtbGFnX0NvbnRyb2xfVmFyaWFibGVfMywNCmRpZl9Db250cm9sX1ZhcmlhYmxlXzQ9Q29udHJvbF9WYXJpYWJsZV80LWxhZ19Db250cm9sX1ZhcmlhYmxlXzQsDQpkaWZfQ29udHJvbF9WYXJpYWJsZV81PUNvbnRyb2xfVmFyaWFibGVfNS1sYWdfQ29udHJvbF9WYXJpYWJsZV81LA0KZGlmX0NvbnRyb2xfVmFyaWFibGVfNj1Db250cm9sX1ZhcmlhYmxlXzYtbGFnX0NvbnRyb2xfVmFyaWFibGVfNildDQoNCmBgYA0KDQoNCg0KDQoNCg0KDQpgYGB7ciB9DQoNCmR0X3dpbnNvcml6ZWRbLCc6PScoZGlmX0NvbnRyb2xfVmFyaWFibGVfMT1Db250cm9sX1ZhcmlhYmxlXzEtbGFnX0NvbnRyb2xfVmFyaWFibGVfMSwNCmRpZl9Db250cm9sX1ZhcmlhYmxlXzI9Q29udHJvbF9WYXJpYWJsZV8yLWxhZ19Db250cm9sX1ZhcmlhYmxlXzIsDQpkaWZfQ29udHJvbF9WYXJpYWJsZV8zPUNvbnRyb2xfVmFyaWFibGVfMy1sYWdfQ29udHJvbF9WYXJpYWJsZV8zLA0KZGlmX0NvbnRyb2xfVmFyaWFibGVfND1Db250cm9sX1ZhcmlhYmxlXzQtbGFnX0NvbnRyb2xfVmFyaWFibGVfNCwNCmRpZl9Db250cm9sX1ZhcmlhYmxlXzU9Q29udHJvbF9WYXJpYWJsZV81LWxhZ19Db250cm9sX1ZhcmlhYmxlXzUsDQpkaWZfQ29udHJvbF9WYXJpYWJsZV82PUNvbnRyb2xfVmFyaWFibGVfNi1sYWdfQ29udHJvbF9WYXJpYWJsZV82KV0NCg0KYGBgDQoNCg0KDQoNCg0KDQoxMDQ2Nw0KU2Vuc2l0aXZpdHkgQW5hbHlzaXM6IE5vbiBCaWcgNCBBdWRpdG9ycyBPbmx5DQpUYWJsZSAxMDA6IERpc2NyZXRlIFByb3hpZXMgTG9naXN0aWMgUmVncmVzc2lvbiBNb2RlbHMsIE1pc3NpbmcgUFNTIGV4Y2x1ZGVkIGZyb20gTW9kZWxsaW5nDQoNCjExMjUyDQpTZW5zaXRpdml0eSBBbmFseXNpczogQm90dG9tIDMwJSBieSBGaXJtIFNpemUgKEZpcm0gU2l6ZSBsZXNzIHRoYW4gMTAwKQ0KVGFibGUgMTEwOiBEaXNjcmV0ZSBQcm94aWVzIExvZ2lzdGljIFJlZ3Jlc3Npb24gTW9kZWxzLCBNaXNzaW5nIFBTUyBleGNsdWRlZCBmcm9tIE1vZGVsbGluZw0KDQoxMjAyNQ0KU2Vuc2l0aXZpdHkgQW5hbHlzaXM6IEV4Y2x1ZGluZyB5ZWFycyAyMDAxLDIwMDIsMjAwNyAmIDIwMDgNClRhYmxlIDEyMDogRGlzY3JldGUgUHJveGllcyBMb2dpc3RpYyBSZWdyZXNzaW9uIE1vZGVscywgTWlzc2luZyBQU1MgZXhjbHVkZWQgZnJvbSBNb2RlbGxpbmcNCg0KDQoNCg0KDQoNCg0K