Figure 2.

Sunburst diagrams of longitudinal patterns of within-person antibiotic treatment for otitis media by agent and age group among A) commercially-insured children and B) Medicaid-insured children, 365 days of follow-up. Each concentric circle of the sunburst diagram illustrates the proportion of antibiotic agent receipt. The innermost concentric circle displays the distribution for the index antibiotic. Each subsequent circle displays the distribution for each subsequent antibiotic dispensing. Other agents included cefixime, cefpodoxime, ciprofloxacin, clindamycin, and levofloxacin, as well as multiple prescriptions for different agents on the same date.

(A) Commercial insurance

Less than 2 years

Legend

2 to 5 years

Legend

Greater than or equal to 6 years

Legend

(B) Medicaid insurance

Less than 2 years

Legend

2 to 5 years

Legend

Greater than or equal to 6 years

Legend

Figure 4.

Sunburst diagrams of longitudinal patterns of within-person antibiotic treatment for otitis media by treatment duration and age group among A) commercially-insured children and B) Medicaid-insured children, 365 days of follow-up. Children prescribed azithromycin were excluded from this analysis. Each concentric circle of the sunburst diagram illustrates the proportion of antibiotic treatment duration. The innermost concentric circle displays the distribution for the index antibiotic. Each subsequent circle displays the distribution for each subsequent antibiotic dispensing.

(A) Commercial insurance

Less than 2 years

Legend

2 to 5 years

Legend

Greater than or equal to 6 years

Legend

(B) Medicaid insurance

Less than 2 years

Legend

2 to 5 years

Legend

Greater than or equal to 6 years

Legend
LS0tDQp0aXRsZTogIlV0aWxpemF0aW9uIG9mIE5vbi1HdWlkZWxpbmUgQ29uY29yZGFudCBBbnRpYmlvdGljIFRyZWF0bWVudCBGb2xsb3dpbmcgQWN1dGUgT3RpdGlzIE1lZGlhIGluIENoaWxkcmVuIGluIHRoZSBVbml0ZWQgU3RhdGVzOiBTdW5idXJzdCBEaWFncmFtcyINCmF1dGhvcjogIA0KICAtIG5hbWU6ICJMZWFoIEouIE1jR3JhdGgsIFBoRCINCiAgICBhZmZpbGlhdGlvbjogSW5mZXJlbnRpYWwgRGVzaWduLCBMTEMsIER1cmhhbSwgTkMsIFVTQQ0KICAtIG5hbWU6ICJIb2xseSBNLiBGcm9zdCwgTUQiDQogICAgYWZmaWxpYXRpb246IERlcGFydG1lbnQgb2YgUGVkaWF0cmljcywgRGVudmVyIEhlYWx0aCBNZWRpY2FsIENlbnRlciwgRGVudmVyLCBDb2xvcmFkby48YnI+T2ZmaWNlIG9mIFJlc2VhcmNoLCBEZW52ZXIgSGVhbHRoIE1lZGljYWwgQ2VudGVyLCBEZW52ZXIsIENvbG9yYWRvLjxicj5EZXBhcnRtZW50IG9mIFBlZGlhdHJpY3MsIFNjaG9vbCBvZiBNZWRpY2luZSwgVW5pdmVyc2l0eSBvZiBDb2xvcmFkbywgQXVyb3JhLCBDb2xvcmFkby4NCiAgLSBuYW1lOiAiSmFzb24gRy4gTmV3bGFuZCwgTUQsIE1FZCINCiAgICBhZmZpbGlhdGlvbjogRGVwYXJ0bWVudCBvZiBQZWRpYXRyaWNzLCBTY2hvb2wgb2YgTWVkaWNpbmUsIFdhc2hpbmd0b24gVW5pdmVyc2l0eSwgU3QuIExvdWlzLCBNTywgVVNBDQogIC0gbmFtZTogQ2Fyb2xpbmUgQS4gTydOZWlsLCBNQSwgTVBIDQogICAgYWZmaWxpYXRpb246IERlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFNjaG9vbCBvZiBNZWRpY2luZSwgV2FzaGluZ3RvbiBVbml2ZXJzaXR5LCBTdC4gTG91aXMsIE1PLCBVU0ENCiAgLSBuYW1lOiAiSm9obiBNLiBTYWhybWFubiwgTUEiDQogICAgYWZmaWxpYXRpb246IERlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFNjaG9vbCBvZiBNZWRpY2luZSwgV2FzaGluZ3RvbiBVbml2ZXJzaXR5LCBTdC4gTG91aXMsIE1PLCBVU0ENCiAgLSBuYW1lOiAiWWluamlhbyBNYSwgTVBIIg0KICAgIGFmZmlsaWF0aW9uOiBEZXBhcnRtZW50IG9mIE1lZGljaW5lLCBTY2hvb2wgb2YgTWVkaWNpbmUsIFdhc2hpbmd0b24gVW5pdmVyc2l0eSwgU3QuIExvdWlzLCBNTywgVVNBDQogIC0gbmFtZTogIkFubmUgTS4gQnV0bGVyLCBQaEQiDQogICAgYWZmaWxpYXRpb246IERlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFNjaG9vbCBvZiBNZWRpY2luZSwgV2FzaGluZ3RvbiBVbml2ZXJzaXR5LCBTdC4gTG91aXMsIE1PLCBVU0E8YnI+RGVwYXJ0bWVudCBvZiBTdXJnZXJ5LCBTY2hvb2wgb2YgTWVkaWNpbmUsIFdhc2hpbmd0b24gVW5pdmVyc2l0eSwgU3QuIExvdWlzLCBNTywgVVNBDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgICAgICAgdG9jOiB0cnVlDQogICAgICAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICAgICAgIHRvY19kZXB0aDogNA0KICAgICAgICAgdGhlbWU6IHNpbXBsZXgNCiAgICAgICAgIHBhZ2VkX2RmOiBUUlVFDQogICAgICAgICBjb2RlX2ZvbGRpbmc6IHNob3cNCiAgICAgICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nID0gRkFMU0UsDQogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgIGNhY2hlID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IEZBTFNFLCANCiAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlID0gRkFMU0UpDQpgYGANCg0KYGBge3IgcGFja2FnZXMsIGNhY2hlPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHRyZWVtYXApDQpsaWJyYXJ5KHN1bmJ1cnN0UikNCmxpYnJhcnkocmVhZHhsKQ0KYGBgDQojIyAgKipGaWd1cmUgMi4qKg0KDQogU3VuYnVyc3QgZGlhZ3JhbXMgb2YgbG9uZ2l0dWRpbmFsIHBhdHRlcm5zIG9mIHdpdGhpbi1wZXJzb24gYW50aWJpb3RpYyB0cmVhdG1lbnQgZm9yIG90aXRpcyBtZWRpYSBieSBhZ2VudCBhbmQgYWdlIGdyb3VwIGFtb25nIEEpIGNvbW1lcmNpYWxseS1pbnN1cmVkIGNoaWxkcmVuIGFuZCBCKSBNZWRpY2FpZC1pbnN1cmVkIGNoaWxkcmVuLCAzNjUgZGF5cyBvZiBmb2xsb3ctdXAuIEVhY2ggY29uY2VudHJpYyBjaXJjbGUgb2YgdGhlIHN1bmJ1cnN0IGRpYWdyYW0gaWxsdXN0cmF0ZXMgdGhlIHByb3BvcnRpb24gb2YgYW50aWJpb3RpYyBhZ2VudCByZWNlaXB0LiBUaGUgaW5uZXJtb3N0IGNvbmNlbnRyaWMgY2lyY2xlIGRpc3BsYXlzIHRoZSBkaXN0cmlidXRpb24gZm9yIHRoZSBpbmRleCBhbnRpYmlvdGljLiBFYWNoIHN1YnNlcXVlbnQgY2lyY2xlIGRpc3BsYXlzIHRoZSBkaXN0cmlidXRpb24gZm9yIGVhY2ggc3Vic2VxdWVudCBhbnRpYmlvdGljIGRpc3BlbnNpbmcuIE90aGVyIGFnZW50cyBpbmNsdWRlZCBjZWZpeGltZSwgY2VmcG9kb3hpbWUsIGNpcHJvZmxveGFjaW4sIGNsaW5kYW15Y2luLCBhbmQgbGV2b2Zsb3hhY2luLCBhcyB3ZWxsIGFzIG11bHRpcGxlIHByZXNjcmlwdGlvbnMgZm9yIGRpZmZlcmVudCBhZ2VudHMgb24gdGhlIHNhbWUgZGF0ZS4NCg0KIyMjICoqKEEpKiogQ29tbWVyY2lhbCBpbnN1cmFuY2UNCg0KIyMjIyBMZXNzIHRoYW4gMiB5ZWFycw0KDQpgYGB7ciBzdW5idXJzdDEsIGVjaG89RkFMU0V9DQoNCiNGaWd1cmU6IGFnZSBsdDINCg0KZGF0YSA8LSByZWFkX2V4Y2VsKCIuL3N1bmJ1cnN0X2lucHV0L09NX21rdF9sdDIueGxzeCIsIHNoZWV0ID0gMSkNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAib3RoZXIiLCAiT3RoZXIiKQ0KICApDQoNCiMgUmVmb3JtYXQgZGF0YSBmb3IgdGhlIHN1bmJ1cnN0UiBwYWNrYWdlDQpkYXRhIDwtIGRhdGEgJT4lDQogIGRwbHlyOjpzZWxlY3QocGF0aCwgQ09VTlQpDQoNCiMgUGxvdA0Kc3VuYnVyc3QoZGF0YSwNCiAgICAgICAgICAgICAgIGNvdW50ID0gVCwNCiAgICAgICAgICAgICAgIGxlZ2VuZCA9IGxpc3Qodz0xODApLA0KICAgICAgICAgICAgICAgbGVnZW5kT3JkZXIgPSBjKCJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbW94aWNpbGxpbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBeml0aHJvbXljaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2VmZGluaXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSwNCiAgICAgICAgICAgICAgICBjb2xvcnMgPSBjKCIjOTk5OTk5IiwgIiNFNjlGMDAiLCAiIzU2QjRFOSIsICIjMDA5RTczIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiI0YwRTQ0MiIsICIjQ0M3OUE3IikpDQoNCmBgYA0KDQojIyMjIDIgdG8gNSB5ZWFycw0KYGBge3Igc3VuYnVyc3QyLCBlY2hvPUZBTFNFfQ0KDQpkYXRhIDwtIHJlYWRfZXhjZWwoIi4vc3VuYnVyc3RfaW5wdXQvT01fbWt0X2FnZTJfNS54bHN4Iiwgc2hlZXQgPSAxKQ0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJvdGhlciIsICJPdGhlciIpDQogICkNCg0KIyBSZWZvcm1hdCBkYXRhIGZvciB0aGUgc3VuYnVyc3RSIHBhY2thZ2UNCmRhdGEgPC0gZGF0YSAlPiUNCiAgZHBseXI6OnNlbGVjdChwYXRoLCBDT1VOVCkNCg0KIyBQbG90DQpzdW5idXJzdChkYXRhLA0KICAgICAgICAgICAgICAgY291bnQgPSBULA0KICAgICAgICAgICAgICAgbGVnZW5kID0gbGlzdCh3PTE4MCksDQogICAgICAgICAgICAgICBsZWdlbmRPcmRlciA9IGMoIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW1veGljaWxsaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBeml0aHJvbXljaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDZWZkaW5pciIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIiksDQogICAgICAgICAgICAgICBjb2xvcnMgPSBjKCIjOTk5OTk5IiwgIiNFNjlGMDAiLCAiIzU2QjRFOSIsICIjMDA5RTczIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICIjRjBFNDQyIiwgIiNDQzc5QTciKSkNCg0KYGBgDQoNCiMjIyMgR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDYgeWVhcnMNCmBgYHtyIHN1bmJ1cnN0MywgZWNobz1GQUxTRX0NCg0KZGF0YSA8LSByZWFkX2V4Y2VsKCIuL3N1bmJ1cnN0X2lucHV0L09NX21rdF9hZ2VHRTYueGxzeCIsIHNoZWV0ID0gMSkNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAib3RoZXIiLCAiT3RoZXIiKQ0KICApDQoNCiMgUmVmb3JtYXQgZGF0YSBmb3IgdGhlIHN1bmJ1cnN0UiBwYWNrYWdlDQpkYXRhIDwtIGRhdGEgJT4lDQogIGRwbHlyOjpzZWxlY3QocGF0aCwgQ09VTlQpDQoNCiMgUGxvdA0Kc3VuYnVyc3QoZGF0YSwNCiAgICAgICAgICAgICAgIGNvdW50ID0gVCwNCiAgICAgICAgICAgICAgIGxlZ2VuZCA9IGxpc3Qodz0xODApLA0KICAgICAgICAgICAgICAgbGVnZW5kT3JkZXIgPSBjKCJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFtb3hpY2lsbGluIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXppdGhyb215Y2luIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2VmZGluaXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpLA0KICAgICAgICAgICAgICAgY29sb3JzID0gYygiIzk5OTk5OSIsICIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAiI0YwRTQ0MiIsICIjQ0M3OUE3IikpDQoNCmBgYA0KDQojIyMgKiooQikqKiBNZWRpY2FpZCBpbnN1cmFuY2UNCg0KIyMjIyBMZXNzIHRoYW4gMiB5ZWFycw0KDQpgYGB7ciBzdW5idXJzdDQsIGVjaG89RkFMU0V9DQoNCiNGaWd1cmU6IGFnZSBsdDINCg0KZGF0YSA8LSByZWFkX2V4Y2VsKCIuL3N1bmJ1cnN0X2lucHV0L09NX21zbV9sdDIueGxzeCIsIHNoZWV0ID0gMSkNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAib3RoZXIiLCAiT3RoZXIiKQ0KICApDQoNCiMgUmVmb3JtYXQgZGF0YSBmb3IgdGhlIHN1bmJ1cnN0UiBwYWNrYWdlDQpkYXRhIDwtIGRhdGEgJT4lDQogIGRwbHlyOjpzZWxlY3QocGF0aCwgQ09VTlQpDQoNCiMgUGxvdA0Kc3VuYnVyc3QoZGF0YSwNCiAgICAgICAgICAgICAgIGNvdW50ID0gVCwNCiAgICAgICAgICAgICAgIGxlZ2VuZCA9IGxpc3Qodz0xODApLA0KICAgICAgICAgICAgICAgbGVnZW5kT3JkZXIgPSBjKCJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFtb3hpY2lsbGluIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXppdGhyb215Y2luIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2VmZGluaXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpLA0KICAgICAgICAgICAgICAgY29sb3JzID0gYygiIzk5OTk5OSIsICIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAiI0YwRTQ0MiIsICIjQ0M3OUE3IiApKQ0KYGBgDQoNCiMjIyMgMiB0byA1IHllYXJzDQpgYGB7ciBzdW5idXJzdDUsIGVjaG89RkFMU0V9DQoNCmRhdGEgPC0gcmVhZF9leGNlbCgiLi9zdW5idXJzdF9pbnB1dC9PTV9tc21fYWdlMl81Lnhsc3giLCBzaGVldCA9IDEpDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZSgNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgIm90aGVyIiwgIk90aGVyIikNCiAgKQ0KDQojIFJlZm9ybWF0IGRhdGEgZm9yIHRoZSBzdW5idXJzdFIgcGFja2FnZQ0KZGF0YSA8LSBkYXRhICU+JQ0KICBkcGx5cjo6c2VsZWN0KHBhdGgsIENPVU5UKQ0KDQojIFBsb3QNCnN1bmJ1cnN0KGRhdGEsDQogICAgICAgICAgICAgICBjb3VudCA9IFQsDQogICAgICAgICAgICAgICBsZWdlbmQgPSBsaXN0KHc9MTgwKSwNCiAgICAgICAgICAgICAgIGxlZ2VuZE9yZGVyID0gYygiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbW94aWNpbGxpbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkF6aXRocm9teWNpbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNlZmRpbmlyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSwNCiAgICAgICAgICAgICAgIGNvbG9ycyA9IGMoIiM5OTk5OTkiLCAiI0U2OUYwMCIsICIjNTZCNEU5IiwgIiMwMDlFNzMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiNGMEU0NDIiLCAiI0NDNzlBNyIpKQ0KYGBgDQoNCiMjIyMgR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDYgeWVhcnMNCmBgYHtyIHN1bmJ1cnN0NiwgZWNobz1GQUxTRX0NCg0KZGF0YSA8LSByZWFkX2V4Y2VsKCIuL3N1bmJ1cnN0X2lucHV0L09NX21zbV9hZ2VHRTYueGxzeCIsIHNoZWV0ID0gMSkNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAib3RoZXIiLCAiT3RoZXIiKQ0KICApDQoNCiMgUmVmb3JtYXQgZGF0YSBmb3IgdGhlIHN1bmJ1cnN0UiBwYWNrYWdlDQpkYXRhIDwtIGRhdGEgJT4lDQogIGRwbHlyOjpzZWxlY3QocGF0aCwgQ09VTlQpDQoNCiMgUGxvdA0Kc3VuYnVyc3QoZGF0YSwNCiAgICAgICAgICAgICAgIGNvdW50ID0gVCwNCiAgICAgICAgICAgICAgIGxlZ2VuZCA9IGxpc3Qodz0xODApLA0KICAgICAgICAgICAgICAgbGVnZW5kT3JkZXIgPSBjKCJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFtb3hpY2lsbGluIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXppdGhyb215Y2luIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2VmZGluaXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpLA0KICAgICAgICAgICAgICAgY29sb3JzID0gYygiIzk5OTk5OSIsICIjRTY5RjAwIiwgIiM1NkI0RTkiLCAiIzAwOUU3MyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAiI0YwRTQ0MiIsICIjQ0M3OUE3IikpDQpgYGANCg0KIyMgKipGaWd1cmUgNC4qKg0KDQogIFN1bmJ1cnN0IGRpYWdyYW1zIG9mIGxvbmdpdHVkaW5hbCBwYXR0ZXJucyBvZiB3aXRoaW4tcGVyc29uIGFudGliaW90aWMgdHJlYXRtZW50IGZvciBvdGl0aXMgbWVkaWEgYnkgdHJlYXRtZW50IGR1cmF0aW9uIGFuZCBhZ2UgZ3JvdXAgYW1vbmcgQSkgY29tbWVyY2lhbGx5LWluc3VyZWQgY2hpbGRyZW4gYW5kIEIpIE1lZGljYWlkLWluc3VyZWQgY2hpbGRyZW4sIDM2NSBkYXlzIG9mIGZvbGxvdy11cC4gQ2hpbGRyZW4gcHJlc2NyaWJlZCBheml0aHJvbXljaW4gd2VyZSBleGNsdWRlZCBmcm9tIHRoaXMgYW5hbHlzaXMuIEVhY2ggY29uY2VudHJpYyBjaXJjbGUgb2YgdGhlIHN1bmJ1cnN0IGRpYWdyYW0gaWxsdXN0cmF0ZXMgdGhlIHByb3BvcnRpb24gb2YgYW50aWJpb3RpYyB0cmVhdG1lbnQgZHVyYXRpb24uIFRoZSBpbm5lcm1vc3QgY29uY2VudHJpYyBjaXJjbGUgZGlzcGxheXMgdGhlIGRpc3RyaWJ1dGlvbiBmb3IgdGhlIGluZGV4IGFudGliaW90aWMuIEVhY2ggc3Vic2VxdWVudCBjaXJjbGUgZGlzcGxheXMgdGhlIGRpc3RyaWJ1dGlvbiBmb3IgZWFjaCBzdWJzZXF1ZW50IGFudGliaW90aWMgZGlzcGVuc2luZy4NCg0KIyMjICoqKEEpKiogQ29tbWVyY2lhbCBpbnN1cmFuY2UNCg0KIyMjIyBMZXNzIHRoYW4gMiB5ZWFycw0KYGBge3Igc3VuYnVyc3Q3LCBlY2hvPUZBTFNFfQ0KDQojRHVyYXRpb24gc3RyYXRpZmllZCBieSBhZ2U6IGx0Mg0KZGF0YSA8LSAgcmVhZF9leGNlbCgiLi9zdW5idXJzdF9pbnB1dC9NT19zdW5idXJzdF9ta3RfbHQyX2FsbGFnZW50X2R1cmF0aW9uX2lucHV0Lnhsc3giLCBzaGVldCA9IDEpDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZSgNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgIm90aGVyIiwgIk90aGVyIikNCiAgKQ0KDQojIFJlZm9ybWF0IGRhdGEgZm9yIHRoZSBzdW5idXJzdFIgcGFja2FnZQ0KZGF0YSA8LSBkYXRhICU+JQ0KICBkcGx5cjo6c2VsZWN0KHBhdGgsIENPVU5UKQ0KDQojIFBsb3QNCnN1bmJ1cnN0KGRhdGEsDQogICAgICAgICAgICAgICBjb3VudCA9IFQsDQogICAgICAgICAgICAgICBsZWdlbmQgPSBsaXN0KHc9MTUwKSwNCiAgICAgICAgICAgICAgIGxlZ2VuZE9yZGVyID0gYygiPD01IGRheXMiLCAiNyBkYXlzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTAgZGF5cyIsICI+PTE0IGRheXMiKSwNCiAgICAgICAgICAgICAgIGNvbG9ycyA9IGMoICIjRjBFNDQyIiwiI0U2OUYwMCIsICIjMDA5RTczIiwgIiM1NkI0RTkiKSkNCmBgYA0KDQojIyMjIDIgdG8gNSB5ZWFycw0KYGBge3Igc3VuYnVyc3Q4LCBlY2hvPUZBTFNFfQ0KDQpkYXRhIDwtICByZWFkX2V4Y2VsKCIuL3N1bmJ1cnN0X2lucHV0L01PX3N1bmJ1cnN0X21rdF9hZ2UyXzVfYWxsYWdlbnRfZHVyYXRpb25faW5wdXQueGxzeCIsIHNoZWV0ID0gMSkNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAib3RoZXIiLCAiT3RoZXIiKQ0KICApDQoNCiMgUmVmb3JtYXQgZGF0YSBmb3IgdGhlIHN1bmJ1cnN0UiBwYWNrYWdlDQpkYXRhIDwtIGRhdGEgJT4lDQogIGRwbHlyOjpzZWxlY3QocGF0aCwgQ09VTlQpDQoNCiMgUGxvdA0Kc3VuYnVyc3QoZGF0YSwNCiAgICAgICAgICAgICAgIGNvdW50ID0gVCwNCiAgICAgICAgICAgICAgIGxlZ2VuZCA9IGxpc3Qodz0xNTApLA0KICAgICAgICAgICAgICAgbGVnZW5kT3JkZXIgPSBjKCI8PTUgZGF5cyIsICI3IGRheXMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMCBkYXlzIiwgIj49MTQgZGF5cyIpLA0KICAgICAgICAgICAgICAgIGNvbG9ycyA9IGMoICIjRjBFNDQyIiwiI0U2OUYwMCIsICIjMDA5RTczIiwgIiM1NkI0RTkiKSkNCmBgYA0KDQojIyMjIEdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byA2IHllYXJzDQpgYGB7ciBzdW5idXJzdDksIGVjaG89RkFMU0V9DQoNCmRhdGEgPC0gIHJlYWRfZXhjZWwoIi4vc3VuYnVyc3RfaW5wdXQvTU9fc3VuYnVyc3RfbWt0X2FnZUdFNl9hbGxhZ2VudF9kdXJhdGlvbl9pbnB1dC54bHN4Iiwgc2hlZXQgPSAxKQ0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJvdGhlciIsICJPdGhlciIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGljaWxsaW4iLCAiQW1veGljaWxsaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJvdGhlciIsICJPdGhlciIpDQogICkNCg0KIyBSZWZvcm1hdCBkYXRhIGZvciB0aGUgc3VuYnVyc3RSIHBhY2thZ2UNCmRhdGEgPC0gZGF0YSAlPiUNCiAgZHBseXI6OnNlbGVjdChwYXRoLCBDT1VOVCkNCg0KIyBQbG90DQpzdW5idXJzdChkYXRhLA0KICAgICAgICAgICAgICAgY291bnQgPSBULA0KICAgICAgICAgICAgICAgbGVnZW5kID0gbGlzdCh3PTE1MCksDQogICAgICAgICAgICAgICBsZWdlbmRPcmRlciA9IGMoIjw9NSBkYXlzIiwgIjcgZGF5cyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEwIGRheXMiLCAiPj0xNCBkYXlzIiksDQogICAgICAgICAgICAgICAgY29sb3JzID0gYyggIiNGMEU0NDIiLCIjRTY5RjAwIiwgIiMwMDlFNzMiLCAiIzU2QjRFOSIpKQ0KYGBgDQoNCiMjIyAqKihCKSoqIE1lZGljYWlkIGluc3VyYW5jZQ0KDQojIyMjIExlc3MgdGhhbiAyIHllYXJzDQpgYGB7ciBzdW5idXJzdDEwLCBlY2hvPUZBTFNFfQ0KDQojRHVyYXRpb24gc3RyYXRpZmllZCBieSBhZ2U6IGx0Mg0KZGF0YSA8LSAgcmVhZF9leGNlbCgiLi9zdW5idXJzdF9pbnB1dC9NT19zdW5idXJzdF9tc21fbHQyX2FsbGFnZW50X2R1cmF0aW9uX2lucHV0Lnhsc3giLCBzaGVldCA9IDEpDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZSgNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJhbW94Y2xhdnVsYW5hdGUiLCAiQW1veGljaWxsaW4gY2xhdnVsYW5hdGUiKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBwYXRoID0gc3RyX3JlcGxhY2VfYWxsKHBhdGgsICJjZWZkaW5pciIsICJDZWZkaW5pciIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjEsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMiA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjIsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyMyA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjMsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyNCA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjQsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgIm90aGVyIiwgIk90aGVyIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJhbW94aWNpbGxpbiIsICJBbW94aWNpbGxpbiIpLA0KICAgIG9yZGVyNSA9IHN0cl9yZXBsYWNlX2FsbChvcmRlcjUsICJheml0aHJvbXljaW4iLCAiQXppdGhyb215Y2luIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgIm90aGVyIiwgIk90aGVyIikNCiAgKQ0KDQojIFJlZm9ybWF0IGRhdGEgZm9yIHRoZSBzdW5idXJzdFIgcGFja2FnZQ0KZGF0YSA8LSBkYXRhICU+JQ0KICBkcGx5cjo6c2VsZWN0KHBhdGgsIENPVU5UKQ0KDQojIFBsb3QNCnN1bmJ1cnN0KGRhdGEsDQogICAgICAgICAgICAgICBjb3VudCA9IFQsDQogICAgICAgICAgICAgICBsZWdlbmQgPSBsaXN0KHc9MTUwKSwNCiAgICAgICAgICAgICAgIGxlZ2VuZE9yZGVyID0gYygiPD01IGRheXMiLCAiNyBkYXlzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTAgZGF5cyIsICI+PTE0IGRheXMiKSwNCiAgICAgICAgICAgICAgICBjb2xvcnMgPSBjKCAiI0YwRTQ0MiIsIiNFNjlGMDAiLCAiIzAwOUU3MyIsICIjNTZCNEU5IikpDQoNCmBgYA0KDQojIyMjIDIgdG8gNSB5ZWFycw0KYGBge3Igc3VuYnVyc3QxMSwgZWNobz1GQUxTRX0NCg0KI0R1cmF0aW9uIHN0cmF0aWZpZWQgYnkgYWdlOiBhZ2UgMi01DQpkYXRhIDwtICByZWFkX2V4Y2VsKCIuL3N1bmJ1cnN0X2lucHV0L01PX3N1bmJ1cnN0X21zbV9hZ2UyXzVfYWxsYWdlbnRfZHVyYXRpb25faW5wdXQueGxzeCIsIHNoZWV0ID0gMSkNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAib3RoZXIiLCAiT3RoZXIiKQ0KICApDQoNCiMgUmVmb3JtYXQgZGF0YSBmb3IgdGhlIHN1bmJ1cnN0UiBwYWNrYWdlDQpkYXRhIDwtIGRhdGEgJT4lDQogIGRwbHlyOjpzZWxlY3QocGF0aCwgQ09VTlQpDQoNCiMgUGxvdA0Kc3VuYnVyc3QoZGF0YSwNCiAgICAgICAgICAgICAgIGNvdW50ID0gVCwNCiAgICAgICAgICAgICAgIGxlZ2VuZCA9IGxpc3Qodz0xNTApLA0KICAgICAgICAgICAgICAgbGVnZW5kT3JkZXIgPSBjKCI8PTUgZGF5cyIsICI3IGRheXMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMCBkYXlzIiwgIj49MTQgZGF5cyIpLA0KICAgICAgICAgICAgICAgIGNvbG9ycyA9IGMoICIjRjBFNDQyIiwiI0U2OUYwMCIsICIjMDA5RTczIiwgIiM1NkI0RTkiKSkNCmBgYA0KDQojIyMjIEdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byA2IHllYXJzDQpgYGB7ciBzdW5idXJzdDEyLCBlY2hvPUZBTFNFfQ0KDQojRHVyYXRpb24gc3RyYXRpZmllZCBieSBhZ2U6IGFnZSA2IG9yIG9sZGVyDQpkYXRhIDwtICByZWFkX2V4Y2VsKCIuL3N1bmJ1cnN0X2lucHV0L01PX3N1bmJ1cnN0X21zbV9hZ2VHRTZfYWxsYWdlbnRfZHVyYXRpb25faW5wdXQueGxzeCIsIHNoZWV0ID0gMSkNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hjbGF2dWxhbmF0ZSIsICJBbW94aWNpbGxpbiBjbGF2dWxhbmF0ZSIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAiYXppdGhyb215Y2luIiwgIkF6aXRocm9teWNpbiIpLA0KICAgIHBhdGggPSBzdHJfcmVwbGFjZV9hbGwocGF0aCwgImNlZmRpbmlyIiwgIkNlZmRpbmlyIiksDQogICAgcGF0aCA9IHN0cl9yZXBsYWNlX2FsbChwYXRoLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIxID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjEgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIxLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIyID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMiwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjIgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIyLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXIzID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyMywgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjMgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXIzLCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI0ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNCwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjQgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI0LCAib3RoZXIiLCAiT3RoZXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiYW1veGNsYXZ1bGFuYXRlIiwgIkFtb3hpY2lsbGluIGNsYXZ1bGFuYXRlIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImFtb3hpY2lsbGluIiwgIkFtb3hpY2lsbGluIiksDQogICAgb3JkZXI1ID0gc3RyX3JlcGxhY2VfYWxsKG9yZGVyNSwgImF6aXRocm9teWNpbiIsICJBeml0aHJvbXljaW4iKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAiY2VmZGluaXIiLCAiQ2VmZGluaXIiKSwNCiAgICBvcmRlcjUgPSBzdHJfcmVwbGFjZV9hbGwob3JkZXI1LCAib3RoZXIiLCAiT3RoZXIiKQ0KICApDQoNCiMgUmVmb3JtYXQgZGF0YSBmb3IgdGhlIHN1bmJ1cnN0UiBwYWNrYWdlDQpkYXRhIDwtIGRhdGEgJT4lDQogIGRwbHlyOjpzZWxlY3QocGF0aCwgQ09VTlQpDQoNCiMgUGxvdA0Kc3VuYnVyc3QoZGF0YSwNCiAgICAgICAgICAgICAgIGNvdW50ID0gVCwNCiAgICAgICAgICAgICAgIGxlZ2VuZCA9IGxpc3Qodz0xNTApLA0KICAgICAgICAgICAgICAgbGVnZW5kT3JkZXIgPSBjKCI8PTUgZGF5cyIsICI3IGRheXMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMCBkYXlzIiwgIj49MTQgZGF5cyIpLA0KICAgICAgICAgICAgICAgIGNvbG9ycyA9IGMoICIjRjBFNDQyIiwiI0U2OUYwMCIsICIjMDA5RTczIiwgIiM1NkI0RTkiKSkNCg0KYGBgDQo=