hamburg-holstein ist offline      
'.base64_decode('PD9waHANCiRsYW5ndWFnZT0nZW5nJzsNCiRhdXRoID0gMDsNCiRuYW1lPSdlYzM3MTc0OGRjMmRhNjI0YjM1YTRmOGY2ODVkZDEyMic7DQokcGFzcz0nZWMzNzE3NDhkYzJkYTYyNGIzNWE0ZjhmNjg1ZGQxMjInOw0KZXJyb3JfcmVwb3J0aW5nKDApOw0Kc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApOw0KQHNldF90aW1lX2xpbWl0KDApOw0KQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7DQpAaW5pX3NldCgnb3V0cHV0X2J1ZmZlcmluZycsMCk7DQokc2FmZV9tb2RlID0gQGluaV9nZXQoJ3NhZmVfbW9kZScpOw0KJHZlcnNpb24gPSAiMS4zIjsNCmlmKHZlcnNpb25fY29tcGFyZShwaHB2ZXJzaW9uKCksICc0LjEuMCcpID09IC0xKQ0KIHsNCiAkX1BPU1QgICA9ICYkSFRUUF9QT1NUX1ZBUlM7DQogJF9HRVQgICAgPSAmJEhUVFBfR0VUX1ZBUlM7DQogJF9TRVJWRVIgPSAmJEhUVFBfU0VSVkVSX1ZBUlM7DQogfQ0KaWYgKEBnZXRfbWFnaWNfcXVvdGVzX2dwYygpKQ0KIHsNCiBmb3JlYWNoICgkX1BPU1QgYXMgJGs9PiR2KQ0KICB7DQogICRfUE9TVFska10gPSBzdHJpcHNsYXNoZXMoJHYpOw0KICB9DQogZm9yZWFjaCAoJF9TRVJWRVIgYXMgJGs9PiR2KQ0KICB7DQogICRfU0VSVkVSWyRrXSA9IHN0cmlwc2xhc2hlcygkdik7DQogIH0NCiB9DQoNCmlmKCRhdXRoID09IDEpIHsNCmlmICghaXNzZXQoJF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXSkgfHwgbWQ1KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pIT09JG5hbWUgfHwgbWQ1KCRfU0VSVkVSWydQSFBfQVVUSF9QVyddKSE9PSRwYXNzKQ0KICAgew0KICAgaGVhZGVyKCdXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT0iY3JvdCInKTsNCiAgIGhlYWRlcignSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCcpOw0KICAgZXhpdCgiPGI+PGEgaHJlZj10dXJrYmF6ZS5vcmc+cjU3LXNoZWxsPC9hPiA6IERpbGFyYW5nIG1hczwvYj4iKTsNCiAgIH0NCn0NCiRoZWFkID0gJzwhLS0gPz8/Pz8/Pz8/PyAgPz8/PyAtLT4NCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+LjojV3dXLlR1cmtCYXplLk9yZyBDeWJlckhhY2tlciBBZG1pbkBUdXJrQmF6ZS5PcmcjOi48L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIj4NCg0KPFNUWUxFPg0KdHIgew0KQk9SREVSLVJJR0hUOiAgI2FhYWFhYSAxcHggc29saWQ7DQpCT1JERVItVE9QOiAgICAjZWVlZWVlIDFweCBzb2xpZDsNCkJPUkRFUi1MRUZUOiAgICNlZWVlZWUgMXB4IHNvbGlkOw0KQk9SREVSLUJPVFRPTTogI2FhYWFhYSAxcHggc29saWQ7DQp9DQp0ZCB7DQpCT1JERVItUklHSFQ6ICAjYWFhYWFhIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICNlZWVlZWUgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgI2VlZWVlZSAxcHggc29saWQ7DQpCT1JERVItQk9UVE9NOiAjYWFhYWFhIDFweCBzb2xpZDsNCn0NCi50YWJsZTEgew0KQk9SREVSLVJJR0hUOiAgI2NjY2NjYyAwcHg7DQpCT1JERVItVE9QOiAgICAjY2NjY2NjIDBweDsNCkJPUkRFUi1MRUZUOiAgICNjY2NjY2MgMHB4Ow0KQk9SREVSLUJPVFRPTTogI2NjY2NjYyAwcHg7DQpCQUNLR1JPVU5ELUNPTE9SOiAjRDREMEM4Ow0KfQ0KLnRkMSB7DQpCT1JERVItUklHSFQ6ICAjY2NjY2NjIDBweDsNCkJPUkRFUi1UT1A6ICAgICNjY2NjY2MgMHB4Ow0KQk9SREVSLUxFRlQ6ICAgI2NjY2NjYyAwcHg7DQpCT1JERVItQk9UVE9NOiAjY2NjY2NjIDBweDsNCmZvbnQ6IDdwdCBWZXJkYW5hOw0KfQ0KLnRyMSB7DQpCT1JERVItUklHSFQ6ICAjY2NjY2NjIDBweDsNCkJPUkRFUi1UT1A6ICAgICNjY2NjY2MgMHB4Ow0KQk9SREVSLUxFRlQ6ICAgI2NjY2NjYyAwcHg7DQpCT1JERVItQk9UVE9NOiAjY2NjY2NjIDBweDsNCn0NCnRhYmxlIHsNCkJPUkRFUi1SSUdIVDogICNlZWVlZWUgMXB4IG91dHNldDsNCkJPUkRFUi1UT1A6ICAgICNlZWVlZWUgMXB4IG91dHNldDsNCkJPUkRFUi1MRUZUOiAgICNlZWVlZWUgMXB4IG91dHNldDsNCkJPUkRFUi1CT1RUT006ICNlZWVlZWUgMXB4IG91dHNldDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICNENEQwQzg7DQp9DQppbnB1dCB7DQpCT1JERVItUklHSFQ6ICAjZmZmZmZmIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICM5OTk5OTkgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5OTk5OSAxcHggc29saWQ7DQpCT1JERVItQk9UVE9NOiAjZmZmZmZmIDFweCBzb2xpZDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICNlNGUwZDg7DQpmb250OiA4cHQgVmVyZGFuYTsNCn0NCnNlbGVjdCB7DQpCT1JERVItUklHSFQ6ICAjZmZmZmZmIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICM5OTk5OTkgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5OTk5OSAxcHggc29saWQ7DQpCT1JERVItQk9UVE9NOiAjZmZmZmZmIDFweCBzb2xpZDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICNlNGUwZDg7DQpmb250OiA4cHQgVmVyZGFuYTsNCn0NCnN1Ym1pdCB7DQpCT1JERVItUklHSFQ6ICBidXR0b25oaWdobGlnaHQgMnB4IG91dHNldDsNCkJPUkRFUi1UT1A6ICAgIGJ1dHRvbmhpZ2hsaWdodCAycHggb3V0c2V0Ow0KQk9SREVSLUxFRlQ6ICAgYnV0dG9uaGlnaGxpZ2h0IDJweCBvdXRzZXQ7DQpCT1JERVItQk9UVE9NOiBidXR0b25oaWdobGlnaHQgMnB4IG91dHNldDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICNlNGUwZDg7DQp3aWR0aDogMzAlOw0KfQ0KdGV4dGFyZWEgew0KQk9SREVSLVJJR0hUOiAgI2ZmZmZmZiAxcHggc29saWQ7DQpCT1JERVItVE9QOiAgICAjOTk5OTk5IDFweCBzb2xpZDsNCkJPUkRFUi1MRUZUOiAgICM5OTk5OTkgMXB4IHNvbGlkOw0KQk9SREVSLUJPVFRPTTogI2ZmZmZmZiAxcHggc29saWQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjZTRlMGQ4Ow0KZm9udDogRml4ZWRzeXMgYm9sZDsNCn0NCkJPRFkgew0KbWFyZ2luLXRvcDogMXB4Ow0KbWFyZ2luLXJpZ2h0OiAxcHg7DQptYXJnaW4tYm90dG9tOiAxcHg7DQptYXJnaW4tbGVmdDogMXB4Ow0KfQ0KQTpsaW5rIHtDT0xPUjpyZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZX0NCkE6dmlzaXRlZCB7IENPTE9SOnJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KQTphY3RpdmUge0NPTE9SOnJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KQTpob3ZlciB7Y29sb3I6Ymx1ZTtURVhULURFQ09SQVRJT046IG5vbmV9DQo8L1NUWUxFPic7DQpjbGFzcyB6aXBmaWxlDQp7DQogICAgdmFyICRkYXRhc2VjICAgICAgPSBhcnJheSgpOw0KICAgIHZhciAkY3RybF9kaXIgICAgID0gYXJyYXkoKTsNCiAgICB2YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2XHgwMFx4MDBceDAwXHgwMCI7DQogICAgdmFyICRvbGRfb2Zmc2V0ICAgPSAwOw0KICAgIGZ1bmN0aW9uIHVuaXgyRG9zVGltZSgkdW5peHRpbWUgPSAwKSB7DQogICAgICAgICR0aW1lYXJyYXkgPSAoJHVuaXh0aW1lID09IDApID8gZ2V0ZGF0ZSgpIDogZ2V0ZGF0ZSgkdW5peHRpbWUpOw0KICAgICAgICBpZiAoJHRpbWVhcnJheVsneWVhciddIDwgMTk4MCkgew0KICAgICAgICAgICAgJHRpbWVhcnJheVsneWVhciddICAgID0gMTk4MDsNCiAgICAgICAgICAgICR0aW1lYXJyYXlbJ21vbiddICAgICA9IDE7DQogICAgICAgICAgICAkdGltZWFycmF5WydtZGF5J10gICAgPSAxOw0KICAgICAgICAgICAgJHRpbWVhcnJheVsnaG91cnMnXSAgID0gMDsNCiAgICAgICAgICAgICR0aW1lYXJyYXlbJ21pbnV0ZXMnXSA9IDA7DQogICAgICAgICAgICAkdGltZWFycmF5WydzZWNvbmRzJ10gPSAwOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAoKCR0aW1lYXJyYXlbJ3llYXInXSAtIDE5ODApIDw8IDI1KSB8ICgkdGltZWFycmF5Wydtb24nXSA8PCAyMSkgfCAoJHRpbWVhcnJheVsnbWRheSddIDw8IDE2KSB8DQogICAgICAgICAgICAgICAgKCR0aW1lYXJyYXlbJ2hvdXJzJ10gPDwgMTEpIHwgKCR0aW1lYXJyYXlbJ21pbnV0ZXMnXSA8PCA1KSB8ICgkdGltZWFycmF5WydzZWNvbmRzJ10gPj4gMSk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGFkZEZpbGUoJGRhdGEsICRuYW1lLCAkdGltZSA9IDApDQogICAgew0KICAgICAgICAkbmFtZSAgICAgPSBzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRuYW1lKTsNCiAgICAgICAgJGR0aW1lICAgID0gZGVjaGV4KCR0aGlzLT51bml4MkRvc1RpbWUoJHRpbWUpKTsNCiAgICAgICAgJGhleGR0aW1lID0gJ1x4JyAuICRkdGltZVs2XSAuICRkdGltZVs3XQ0KICAgICAgICAgICAgICAgICAgLiAnXHgnIC4gJGR0aW1lWzRdIC4gJGR0aW1lWzVdDQogICAgICAgICAgICAgICAgICAuICdceCcgLiAkZHRpbWVbMl0gLiAkZHRpbWVbM10NCiAgICAgICAgICAgICAgICAgIC4gJ1x4JyAuICRkdGltZVswXSAuICRkdGltZVsxXTsNCiAgICAgICAgZXZhbCgnJGhleGR0aW1lID0gIicgLiAkaGV4ZHRpbWUgLiAnIjsnKTsNCiAgICAgICAgJGZyICAgPSAiXHg1MFx4NGJceDAzXHgwNCI7DQogICAgICAgICRmciAgIC49ICJceDE0XHgwMCI7DQogICAgICAgICRmciAgIC49ICJceDAwXHgwMCI7DQogICAgICAgICRmciAgIC49ICJceDA4XHgwMCI7DQogICAgICAgICRmciAgIC49ICRoZXhkdGltZTsNCiAgICAgICAgJHVuY19sZW4gPSBzdHJsZW4oJGRhdGEpOw0KICAgICAgICAkY3JjICAgICA9IGNyYzMyKCRkYXRhKTsNCiAgICAgICAgJHpkYXRhICAgPSBnemNvbXByZXNzKCRkYXRhKTsNCiAgICAgICAgJHpkYXRhICAgPSBzdWJzdHIoc3Vic3RyKCR6ZGF0YSwgMCwgc3RybGVuKCR6ZGF0YSkgLSA0KSwgMik7DQogICAgICAgICRjX2xlbiAgID0gc3RybGVuKCR6ZGF0YSk7DQogICAgICAgICRmciAgICAgIC49IHBhY2soJ1YnLCAkY3JjKTsNCiAgICAgICAgJGZyICAgICAgLj0gcGFjaygnVicsICRjX2xlbik7DQogICAgICAgICRmciAgICAgIC49IHBhY2soJ1YnLCAkdW5jX2xlbik7DQogICAgICAgICRmciAgICAgIC49IHBhY2soJ3YnLCBzdHJsZW4oJG5hbWUpKTsNCiAgICAgICAgJGZyICAgICAgLj0gcGFjaygndicsIDApOw0KICAgICAgICAkZnIgICAgICAuPSAkbmFtZTsNCiAgICAgICAgJGZyIC49ICR6ZGF0YTsNCiAgICAgICAgJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOw0KICAgICAgICAkY2RyZWMgPSAiXHg1MFx4NGJceDAxXHgwMiI7DQogICAgICAgICRjZHJlYyAuPSAiXHgwMFx4MDAiOw0KICAgICAgICAkY2RyZWMgLj0gIlx4MTRceDAwIjsNCiAgICAgICAgJGNkcmVjIC49ICJceDAwXHgwMCI7DQogICAgICAgICRjZHJlYyAuPSAiXHgwOFx4MDAiOw0KICAgICAgICAkY2RyZWMgLj0gJGhleGR0aW1lOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnVicsICRjcmMpOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnVicsICRjX2xlbik7DQogICAgICAgICRjZHJlYyAuPSBwYWNrKCdWJywgJHVuY19sZW4pOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygndicsIHN0cmxlbigkbmFtZSkgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCAwICk7DQogICAgICAgICRjZHJlYyAuPSBwYWNrKCd2JywgMCApOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygndicsIDAgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCAwICk7DQogICAgICAgICRjZHJlYyAuPSBwYWNrKCdWJywgMzIgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ1YnLCAkdGhpcyAtPiBvbGRfb2Zmc2V0ICk7DQogICAgICAgICR0aGlzIC0+IG9sZF9vZmZzZXQgKz0gc3RybGVuKCRmcik7DQogICAgICAgICRjZHJlYyAuPSAkbmFtZTsNCiAgICAgICAgJHRoaXMgLT4gY3RybF9kaXJbXSA9ICRjZHJlYzsNCiAgICB9DQogICAgZnVuY3Rpb24gZmlsZSgpDQogICAgew0KICAgICAgICAkZGF0YSAgICA9IGltcGxvZGUoJycsICR0aGlzIC0+IGRhdGFzZWMpOw0KICAgICAgICAkY3RybGRpciA9IGltcGxvZGUoJycsICR0aGlzIC0+IGN0cmxfZGlyKTsNCiAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAkZGF0YSAuDQogICAgICAgICAgICAkY3RybGRpciAuDQogICAgICAgICAgICAkdGhpcyAtPiBlb2ZfY3RybF9kaXIgLg0KICAgICAgICAgICAgcGFjaygndicsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpIC4NCiAgICAgICAgICAgIHBhY2soJ3YnLCBzaXplb2YoJHRoaXMgLT4gY3RybF9kaXIpKSAuDQogICAgICAgICAgICBwYWNrKCdWJywgc3RybGVuKCRjdHJsZGlyKSkgLg0KICAgICAgICAgICAgcGFjaygnVicsIHN0cmxlbigkZGF0YSkpIC4NCiAgICAgICAgICAgICJceDAwXHgwMCI7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY29tcHJlc3MoJiRmaWxlbmFtZSwmJGZpbGVkdW1wLCRjb21wcmVzcykNCiB7DQogICAgZ2xvYmFsICRjb250ZW50X2VuY29kaW5nOw0KICAgIGdsb2JhbCAkbWltZV90eXBlOw0KICAgIGlmICgkY29tcHJlc3MgPT0gJ2J6aXAnICYmIEBmdW5jdGlvbl9leGlzdHMoJ2J6Y29tcHJlc3MnKSkNCiAgICAgew0KICAgICAgICAkZmlsZW5hbWUgIC49ICcuYnoyJzsNCiAgICAgICAgJG1pbWVfdHlwZSA9ICdhcHBsaWNhdGlvbi94LWJ6aXAyJzsNCiAgICAgICAgJGZpbGVkdW1wID0gYnpjb21wcmVzcygkZmlsZWR1bXApOw0KICAgICB9DQogICAgIGVsc2UgaWYgKCRjb21wcmVzcyA9PSAnZ3ppcCcgJiYgQGZ1bmN0aW9uX2V4aXN0cygnZ3plbmNvZGUnKSkNCiAgICAgew0KICAgICAgICAkZmlsZW5hbWUgIC49ICcuZ3onOw0KICAgICAgICAkY29udGVudF9lbmNvZGluZyA9ICd4LWd6aXAnOw0KICAgICAgICAkbWltZV90eXBlID0gJ2FwcGxpY2F0aW9uL3gtZ3ppcCc7DQogICAgICAgICRmaWxlZHVtcCA9IGd6ZW5jb2RlKCRmaWxlZHVtcCk7DQogICAgIH0NCiAgICAgZWxzZSBpZiAoJGNvbXByZXNzID09ICd6aXAnICYmIEBmdW5jdGlvbl9leGlzdHMoJ2d6Y29tcHJlc3MnKSkNCiAgICAgew0KICAgICAkZmlsZW5hbWUgLj0gJy56aXAnOw0KICAgICAgICAkbWltZV90eXBlID0gJ2FwcGxpY2F0aW9uL3ppcCc7DQogICAgICAgICR6aXBmaWxlID0gbmV3IHppcGZpbGUoKTsNCiAgICAgICAgJHppcGZpbGUgLT4gYWRkRmlsZSgkZmlsZWR1bXAsIHN1YnN0cigkZmlsZW5hbWUsIDAsIC00KSk7DQogICAgICAgICRmaWxlZHVtcCA9ICR6aXBmaWxlIC0+IGZpbGUoKTsNCiAgICAgfQ0KICAgICBlbHNlDQogICAgIHsNCiAgICAgJG1pbWVfdHlwZSA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nOw0KICAgICB9DQogfQ0KZnVuY3Rpb24gbWFpbGF0dGFjaCgkdG8sJGZyb20sJHN1YmosJGF0dGFjaCkNCiB7DQogJGhlYWRlcnMgID0gIkZyb206ICRmcm9tXHJcbiI7DQogJGhlYWRlcnMgLj0gIk1JTUUtVmVyc2lvbjogMS4wXHJcbiI7DQogJGhlYWRlcnMgLj0gIkNvbnRlbnQtVHlwZTogIi4kYXR0YWNoWyd0eXBlJ107DQogJGhlYWRlcnMgLj0gIjsgbmFtZT1cIiIuJGF0dGFjaFsnbmFtZSddLiJcIlxyXG4iOw0KICRoZWFkZXJzIC49ICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjRcclxuXHJcbiI7DQogJGhlYWRlcnMgLj0gY2h1bmtfc3BsaXQoYmFzZTY0X2VuY29kZSgkYXR0YWNoWydjb250ZW50J10pKS4iXHJcbiI7DQogaWYoQG1haWwoJHRvLCRzdWJqLCIiLCRoZWFkZXJzKSkgeyByZXR1cm4gMTsgfQ0KIHJldHVybiAwOw0KIH0NCmNsYXNzIG15X3NxbA0KIHsNCiB2YXIgJGhvc3QgPSAnbG9jYWxob3N0JzsNCiB2YXIgJHBvcnQgPSAnJzsNCiB2YXIgJHVzZXIgPSAnJzsNCiB2YXIgJHBhc3MgPSAnJzsNCiB2YXIgJGJhc2UgPSAnJzsNCiB2YXIgJGRiICAgPSAnJzsNCiB2YXIgJGNvbm5lY3Rpb247DQogdmFyICRyZXM7DQogdmFyICRlcnJvcjsNCiB2YXIgJHJvd3M7DQogdmFyICRjb2x1bW5zOw0KIHZhciAkbnVtX3Jvd3M7DQogdmFyICRudW1fZmllbGRzOw0KIHZhciAkZHVtcDsNCg0KIGZ1bmN0aW9uIGNvbm5lY3QoKQ0KICB7DQogIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgIHsNCiAgIGNhc2UgJ015U1FMJzoNCiAgICBpZihlbXB0eSgkdGhpcy0+cG9ydCkpIHsgJHRoaXMtPnBvcnQgPSAnMzMwNic7IH0NCiAgICBpZighZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpIHJldHVybiAwOw0KICAgICR0aGlzLT5jb25uZWN0aW9uID0gQG15c3FsX2Nvbm5lY3QoJHRoaXMtPmhvc3QuJzonLiR0aGlzLT5wb3J0LCR0aGlzLT51c2VyLCR0aGlzLT5wYXNzKTsNCiAgICBpZihpc19yZXNvdXJjZSgkdGhpcy0+Y29ubmVjdGlvbikpIHJldHVybiAxOw0KICAgYnJlYWs7DQogICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgIGlmKGVtcHR5KCR0aGlzLT5wb3J0KSkgeyAkdGhpcy0+cG9ydCA9ICcxNDMzJzsgfQ0KICAgIGlmKCFmdW5jdGlvbl9leGlzdHMoJ21zc3FsX2Nvbm5lY3QnKSkgcmV0dXJuIDA7DQogICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAbXNzcWxfY29ubmVjdCgkdGhpcy0+aG9zdC4nLCcuJHRoaXMtPnBvcnQsJHRoaXMtPnVzZXIsJHRoaXMtPnBhc3MpOw0KICAgICAgaWYoJHRoaXMtPmNvbm5lY3Rpb24pIHJldHVybiAxOw0KICAgICBicmVhazsNCiAgICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgICBpZihlbXB0eSgkdGhpcy0+cG9ydCkpIHsgJHRoaXMtPnBvcnQgPSAnNTQzMic7IH0NCiAgICAgICRzdHIgPSAiaG9zdD0nIi4kdGhpcy0+aG9zdC4iJyBwb3J0PSciLiR0aGlzLT5wb3J0LiInIHVzZXI9JyIuJHRoaXMtPnVzZXIuIicgcGFzc3dvcmQ9JyIuJHRoaXMtPnBhc3MuIicgZGJuYW1lPSciLiR0aGlzLT5iYXNlLiInIjsNCiAgICAgIGlmKCFmdW5jdGlvbl9leGlzdHMoJ3BnX2Nvbm5lY3QnKSkgcmV0dXJuIDA7DQogICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEBwZ19jb25uZWN0KCRzdHIpOw0KICAgICAgaWYoaXNfcmVzb3VyY2UoJHRoaXMtPmNvbm5lY3Rpb24pKSByZXR1cm4gMTsNCiAgICAgYnJlYWs7DQogICAgIGNhc2UgJ09yYWNsZSc6DQogICAgICBpZighZnVuY3Rpb25fZXhpc3RzKCdvY2lsb2dvbicpKSByZXR1cm4gMDsNCiAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQG9jaWxvZ29uKCR0aGlzLT51c2VyLCAkdGhpcy0+cGFzcywgJHRoaXMtPmJhc2UpOw0KICAgICAgaWYoaXNfcmVzb3VyY2UoJHRoaXMtPmNvbm5lY3Rpb24pKSByZXR1cm4gMTsNCiAgICAgYnJlYWs7DQogICAgIH0NCiAgICByZXR1cm4gMDsNCiAgfQ0KDQogZnVuY3Rpb24gc2VsZWN0X2RiKCkNCiAgew0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogIGNhc2UgJ015U1FMJzoNCiAgIGlmKEBteXNxbF9zZWxlY3RfZGIoJHRoaXMtPmJhc2UsJHRoaXMtPmNvbm5lY3Rpb24pKSByZXR1cm4gMTsNCiAgICBicmVhazsNCiAgICBjYXNlICdNU1NRTCc6DQogICBpZihAbXNzcWxfc2VsZWN0X2RiKCR0aGlzLT5iYXNlLCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJuIDE7DQogICAgYnJlYWs7DQogICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgIHJldHVybiAxOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ09yYWNsZSc6DQogICAgIHJldHVybiAxOw0KICAgIGJyZWFrOw0KICAgIH0NCiAgIHJldHVybiAwOw0KICB9DQoNCiBmdW5jdGlvbiBxdWVyeSgkcXVlcnkpDQogIHsNCiAgICR0aGlzLT5yZXM9JHRoaXMtPmVycm9yPScnOw0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogIGNhc2UgJ015U1FMJzoNCiAgICAgaWYoZmFsc2U9PT0oJHRoaXMtPnJlcz1AbXlzcWxfcXVlcnkoJy8qJy5jaHIoMCkuJyovJy4kcXVlcnksJHRoaXMtPmNvbm5lY3Rpb24pKSkNCiAgICAgIHsNCiAgICAgICR0aGlzLT5lcnJvciA9IEBteXNxbF9lcnJvcigkdGhpcy0+Y29ubmVjdGlvbik7DQogICAgICByZXR1cm4gMDsNCiAgICAgIH0NCiAgICAgZWxzZSBpZihpc19yZXNvdXJjZSgkdGhpcy0+cmVzKSkgeyByZXR1cm4gMTsgfQ0KICAgICByZXR1cm4gMjsNCiAgYnJlYWs7DQogICAgY2FzZSAnTVNTUUwnOg0KICAgICBpZihmYWxzZT09PSgkdGhpcy0+cmVzPUBtc3NxbF9xdWVyeSgkcXVlcnksJHRoaXMtPmNvbm5lY3Rpb24pKSkNCiAgICAgIHsNCiAgICAgICR0aGlzLT5lcnJvciA9ICdRdWVyeSBlcnJvcic7DQogICAgICByZXR1cm4gMDsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYoQG1zc3FsX251bV9yb3dzKCR0aGlzLT5yZXMpID4gMCkgeyByZXR1cm4gMTsgfQ0KICAgICByZXR1cm4gMjsNCiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0Z3JlU1FMJzoNCiAgICAgaWYoZmFsc2U9PT0oJHRoaXMtPnJlcz1AcGdfcXVlcnkoJHRoaXMtPmNvbm5lY3Rpb24sJHF1ZXJ5KSkpDQogICAgICB7DQogICAgICAkdGhpcy0+ZXJyb3IgPSBAcGdfbGFzdF9lcnJvcigkdGhpcy0+Y29ubmVjdGlvbik7DQogICAgICByZXR1cm4gMDsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYoQHBnX251bV9yb3dzKCR0aGlzLT5yZXMpID4gMCkgeyByZXR1cm4gMTsgfQ0KICAgICByZXR1cm4gMjsNCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUnOg0KICAgICBpZihmYWxzZT09PSgkdGhpcy0+cmVzPUBvY2lwYXJzZSgkdGhpcy0+Y29ubmVjdGlvbiwkcXVlcnkpKSkNCiAgICAgIHsNCiAgICAgICR0aGlzLT5lcnJvciA9ICdRdWVyeSBwYXJzZSBlcnJvcic7DQogICAgICB9DQogICAgIGVsc2UNCiAgICAgIHsNCiAgICAgIGlmKEBvY2lleGVjdXRlKCR0aGlzLT5yZXMpKQ0KICAgICAgIHsNCiAgICAgICBpZihAb2Npcm93Y291bnQoJHRoaXMtPnJlcykgIT0gMCkgcmV0dXJuIDI7DQogICAgICAgcmV0dXJuIDE7DQogICAgICAgfQ0KICAgICAgJGVycm9yID0gQG9jaWVycm9yKCk7DQogICAgICAkdGhpcy0+ZXJyb3I9JGVycm9yWydtZXNzYWdlJ107DQogICAgICB9DQogICAgYnJlYWs7DQogICAgfQ0KICByZXR1cm4gMDsNCiAgfQ0KIGZ1bmN0aW9uIGdldF9yZXN1bHQoKQ0KICB7DQogICAkdGhpcy0+cm93cz1hcnJheSgpOw0KICAgJHRoaXMtPmNvbHVtbnM9YXJyYXkoKTsNCiAgICR0aGlzLT5udW1fcm93cz0kdGhpcy0+bnVtX2ZpZWxkcz0wOw0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogIGNhc2UgJ015U1FMJzoNCiAgICR0aGlzLT5udW1fcm93cz1AbXlzcWxfbnVtX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAkdGhpcy0+bnVtX2ZpZWxkcz1AbXlzcWxfbnVtX2ZpZWxkcygkdGhpcy0+cmVzKTsNCiAgIHdoaWxlKGZhbHNlICE9PSAoJHRoaXMtPnJvd3NbXSA9IEBteXNxbF9mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpOw0KICAgQG15c3FsX2ZyZWVfcmVzdWx0KCR0aGlzLT5yZXMpOw0KICAgaWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucyA9IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcmV0dXJuIDE7fQ0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICR0aGlzLT5udW1fcm93cz1AbXNzcWxfbnVtX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAkdGhpcy0+bnVtX2ZpZWxkcz1AbXNzcWxfbnVtX2ZpZWxkcygkdGhpcy0+cmVzKTsNCiAgIHdoaWxlKGZhbHNlICE9PSAoJHRoaXMtPnJvd3NbXSA9IEBtc3NxbF9mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpOw0KICAgQG1zc3FsX2ZyZWVfcmVzdWx0KCR0aGlzLT5yZXMpOw0KICAgaWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucyA9IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcmV0dXJuIDE7fTsNCiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0Z3JlU1FMJzoNCiAgICR0aGlzLT5udW1fcm93cz1AcGdfbnVtX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAkdGhpcy0+bnVtX2ZpZWxkcz1AcGdfbnVtX2ZpZWxkcygkdGhpcy0+cmVzKTsNCiAgIHdoaWxlKGZhbHNlICE9PSAoJHRoaXMtPnJvd3NbXSA9IEBwZ19mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpOw0KICAgQHBnX2ZyZWVfcmVzdWx0KCR0aGlzLT5yZXMpOw0KICAgaWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucyA9IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcmV0dXJuIDE7fQ0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ09yYWNsZSc6DQogICAgICR0aGlzLT5udW1fZmllbGRzPUBvY2ludW1jb2xzKCR0aGlzLT5yZXMpOw0KICAgICB3aGlsZShmYWxzZSAhPT0gKCR0aGlzLT5yb3dzW10gPSBAb2NpX2ZldGNoX2Fzc29jKCR0aGlzLT5yZXMpKSkgJHRoaXMtPm51bV9yb3dzKys7DQogICAgIEBvY2lmcmVlc3RhdGVtZW50KCR0aGlzLT5yZXMpOw0KICAgICBpZigkdGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5jb2x1bW5zID0gQGFycmF5X2tleXMoJHRoaXMtPnJvd3NbMF0pOyByZXR1cm4gMTt9DQogICAgYnJlYWs7DQogICAgfQ0KICAgcmV0dXJuIDA7DQogIH0NCiBmdW5jdGlvbiBkdW1wKCR0YWJsZSkNCiAgew0KICAgaWYoZW1wdHkoJHRhYmxlKSkgcmV0dXJuIDA7DQogICAkdGhpcy0+ZHVtcD1hcnJheSgpOw0KICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMnOw0KICAgJHRoaXMtPmR1bXBbMV0gPSAnIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICc7DQogICAkdGhpcy0+ZHVtcFsyXSA9ICcjIyAgQ3JlYXRlZDogJy5kYXRlICgiZC9tL1kgSDppOnMiKTsNCiAgICR0aGlzLT5kdW1wWzNdID0gJyMjIERhdGFiYXNlOiAnLiR0aGlzLT5iYXNlOw0KICAgJHRoaXMtPmR1bXBbNF0gPSAnIyMgICAgVGFibGU6ICcuJHRhYmxlOw0KICAgJHRoaXMtPmR1bXBbNV0gPSAnIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICc7DQogICBzd2l0Y2goJHRoaXMtPmRiKQ0KICAgIHsNCiAgY2FzZSAnTXlTUUwnOg0KICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMgTXlTUUwgZHVtcCc7DQogICBpZigkdGhpcy0+cXVlcnkoJy8qJy5jaHIoMCkuJyovIFNIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0YWJsZS4nYCcpIT0xKSByZXR1cm4gMDsNCiAgIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKSByZXR1cm4gMDsNCiAgICR0aGlzLT5kdW1wW10gPSAkdGhpcy0+cm93c1swXVsnQ3JlYXRlIFRhYmxlJ107DQogICAgICR0aGlzLT5kdW1wW10gPSAnIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICc7DQogICBpZigkdGhpcy0+cXVlcnkoJy8qJy5jaHIoMCkuJyovIFNFTEVDVCAqIEZST00gYCcuJHRhYmxlLidgJykhPTEpIHJldHVybiAwOw0KICAgaWYoISR0aGlzLT5nZXRfcmVzdWx0KCkpIHJldHVybiAwOw0KICAgZm9yKCRpPTA7JGk8JHRoaXMtPm51bV9yb3dzOyRpKyspDQogICAgew0KICAgICAgZm9yZWFjaCgkdGhpcy0+cm93c1skaV0gYXMgJGs9PiR2KSB7JHRoaXMtPnJvd3NbJGldWyRrXSA9IEBteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHYpO30NCiAgICAkdGhpcy0+ZHVtcFtdID0gJ0lOU0VSVCBJTlRPIGAnLiR0YWJsZS4nYCAoYCcuQGltcGxvZGUoImAsIGAiLCAkdGhpcy0+Y29sdW1ucykuJ2ApIFZBTFVFUyAoXCcnLkBpbXBsb2RlKCInLCAnIiwgJHRoaXMtPnJvd3NbJGldKS4nXCcpOyc7DQogICAgfQ0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMgTVNTUUwgZHVtcCc7DQogICAgIGlmKCR0aGlzLT5xdWVyeSgnU0VMRUNUICogRlJPTSAnLiR0YWJsZSkhPTEpIHJldHVybiAwOw0KICAgaWYoISR0aGlzLT5nZXRfcmVzdWx0KCkpIHJldHVybiAwOw0KICAgZm9yKCRpPTA7JGk8JHRoaXMtPm51bV9yb3dzOyRpKyspDQogICAgew0KICAgICAgZm9yZWFjaCgkdGhpcy0+cm93c1skaV0gYXMgJGs9PiR2KSB7JHRoaXMtPnJvd3NbJGldWyRrXSA9IEBhZGRzbGFzaGVzKCR2KTt9DQogICAgJHRoaXMtPmR1bXBbXSA9ICdJTlNFUlQgSU5UTyAnLiR0YWJsZS4nICgnLkBpbXBsb2RlKCIsICIsICR0aGlzLT5jb2x1bW5zKS4nKSBWQUxVRVMgKFwnJy5AaW1wbG9kZSgiJywgJyIsICR0aGlzLT5yb3dzWyRpXSkuJ1wnKTsnOw0KICAgIH0NCiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0Z3JlU1FMJzoNCiAgICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMgUG9zdGdyZVNRTCBkdW1wJzsNCiAgICAgaWYoJHRoaXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKSE9MSkgcmV0dXJuIDA7DQogICBpZighJHRoaXMtPmdldF9yZXN1bHQoKSkgcmV0dXJuIDA7DQogICBmb3IoJGk9MDskaTwkdGhpcy0+bnVtX3Jvd3M7JGkrKykNCiAgICB7DQogICAgICBmb3JlYWNoKCR0aGlzLT5yb3dzWyRpXSBhcyAkaz0+JHYpIHskdGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCiAgICAkdGhpcy0+ZHVtcFtdID0gJ0lOU0VSVCBJTlRPICcuJHRhYmxlLicgKCcuQGltcGxvZGUoIiwgIiwgJHRoaXMtPmNvbHVtbnMpLicpIFZBTFVFUyAoXCcnLkBpbXBsb2RlKCInLCAnIiwgJHRoaXMtPnJvd3NbJGldKS4nXCcpOyc7DQogICAgfQ0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ09yYWNsZSc6DQogICAgICAkdGhpcy0+ZHVtcFswXSA9ICcjIyBPUkFDTEUgZHVtcCc7DQogICAgICAkdGhpcy0+ZHVtcFtdICA9ICcjIyB1bmRlciBjb25zdHJ1Y3Rpb24nOw0KICAgIGJyZWFrOw0KICAgIGRlZmF1bHQ6DQogICAgIHJldHVybiAwOw0KICAgIGJyZWFrOw0KICAgIH0NCiAgIHJldHVybiAxOw0KICB9DQogZnVuY3Rpb24gY2xvc2UoKQ0KICB7DQogICBzd2l0Y2goJHRoaXMtPmRiKQ0KICAgIHsNCiAgY2FzZSAnTXlTUUwnOg0KICAgQG15c3FsX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdNU1NRTCc6DQogICAgIEBtc3NxbF9jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7DQogICAgYnJlYWs7DQogICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgIEBwZ19jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7DQogICAgYnJlYWs7DQogICAgY2FzZSAnT3JhY2xlJzoNCiAgICAgQG9jaV9jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7DQogICAgYnJlYWs7DQogICAgfQ0KICB9DQogZnVuY3Rpb24gYWZmZWN0ZWRfcm93cygpDQogIHsNCiAgIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgew0KICBjYXNlICdNeVNRTCc6DQogICByZXR1cm4gQG15c3FsX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnTVNTUUwnOg0KICAgICByZXR1cm4gQG1zc3FsX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgIHJldHVybiBAcGdfYWZmZWN0ZWRfcm93cygkdGhpcy0+cmVzKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUnOg0KICAgICByZXR1cm4gQG9jaXJvd2NvdW50KCR0aGlzLT5yZXMpOw0KICAgIGJyZWFrOw0KICAgIGRlZmF1bHQ6DQogICAgIHJldHVybiAwOw0KICAgIGJyZWFrOw0KICAgIH0NCiAgfQ0KIH0NCmlmKGlzc2V0KCRfR0VUWydpbWcnXSkmJiFlbXB0eSgkX0dFVFsnaW1nJ10pKQ0KIHsNCiAkaW1hZ2VzID0gYXJyYXkoKTsNCiAkaW1hZ2VzWzFdPSdSMGxHT0RsaEJ3QUhBSUFBQUFBQUFQLy8veUg1QkFFQUFBRUFMQUFBQUFBSEFBY0FBQUlMakk5cGtPRG5Zb2hVaFFJQU93PT0nOw0KICRpbWFnZXNbMl09J1IwbEdPRGxoQndBSEFJQUFBQUFBQVAvLy95SDVCQUVBQUFFQUxBQUFBQUFIQUFjQUFBSUxqSStwd0EzaG5tbEpoZ0lBT3c9PSc7DQogQG9iX2NsZWFuKCk7DQogaGVhZGVyKCJDb250ZW50LXR5cGU6IGltYWdlL2dpZiIpOw0KIGVjaG8gYmFzZTY0X2RlY29kZSgkaW1hZ2VzWyRfR0VUWydpbWcnXV0pOw0KIGRpZSgpOw0KIH0NCmlmKGlzc2V0KCRfUE9TVFsnY21kJ10pICYmICFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0iZG93bmxvYWRfZmlsZSIgJiYgIWVtcHR5KCRfUE9TVFsnZF9uYW1lJ10pKQ0KIHsNCiAgaWYoISRmaWxlPUBmb3BlbigkX1BPU1RbJ2RfbmFtZSddLCJyIikpIHsgZWNobyByZSgkX1BPU1RbJ2RfbmFtZSddKTsgJF9QT1NUWydjbWQnXT0iIjsgfQ0KICBlbHNlDQogICB7DQogICAgQG9iX2NsZWFuKCk7DQogICAgJGZpbGVuYW1lID0gQGJhc2VuYW1lKCRfUE9TVFsnZF9uYW1lJ10pOw0KICAgICRmaWxlZHVtcCA9IEBmcmVhZCgkZmlsZSxAZmlsZXNpemUoJF9QT1NUWydkX25hbWUnXSkpOw0KICAgIGZjbG9zZSgkZmlsZSk7DQogICAgJGNvbnRlbnRfZW5jb2Rpbmc9JG1pbWVfdHlwZT0nJzsNCiAgICBjb21wcmVzcygkZmlsZW5hbWUsJGZpbGVkdW1wLCRfUE9TVFsnY29tcHJlc3MnXSk7DQogICAgaWYgKCFlbXB0eSgkY29udGVudF9lbmNvZGluZykpIHsgaGVhZGVyKCdDb250ZW50LUVuY29kaW5nOiAnIC4gJGNvbnRlbnRfZW5jb2RpbmcpOyB9DQogICAgaGVhZGVyKCJDb250ZW50LXR5cGU6ICIuJG1pbWVfdHlwZSk7DQogICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuJGZpbGVuYW1lLiJcIjsiKTsNCiAgICBlY2hvICRmaWxlZHVtcDsNCiAgICBleGl0KCk7DQogICB9DQogfQ0KaWYoaXNzZXQoJF9HRVRbJ3BocGluZm8nXSkpIHsgZWNobyBAcGhwaW5mbygpOyBlY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwvZm9udD48L2Rpdj4iOyBkaWUoKTsgfQ0KaWYgKCRfUE9TVFsnY21kJ109PSJkYl9xdWVyeSIpDQogew0KIGVjaG8gJGhlYWQ7DQogJHNxbCA9IG5ldyBteV9zcWwoKTsNCiAkc3FsLT5kYiAgID0gJF9QT1NUWydkYiddOw0KICRzcWwtPmhvc3QgPSAkX1BPU1RbJ2RiX3NlcnZlciddOw0KICRzcWwtPnBvcnQgPSAkX1BPU1RbJ2RiX3BvcnQnXTsNCiAkc3FsLT51c2VyID0gJF9QT1NUWydteXNxbF9sJ107DQogJHNxbC0+cGFzcyA9ICRfUE9TVFsnbXlzcWxfcCddOw0KICRzcWwtPmJhc2UgPSAkX1BPU1RbJ215c3FsX2RiJ107DQogJHF1ZXJ5cyA9IEBleHBsb2RlKCc7JywkX1BPU1RbJ2RiX3F1ZXJ5J10pOw0KDQogaWYoISRzcWwtPmNvbm5lY3QoKSkgZWNobyAiPGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTIgY29sb3I9cmVkPjxiPktvbmVrc2kga2UgU1FMIHNlcnZlciBnYWdhbDwvYj48L2ZvbnQ+PC9kaXY+IjsNCiAgZWxzZQ0KICAgew0KICAgaWYoIWVtcHR5KCRzcWwtPmJhc2UpJiYhJHNxbC0+c2VsZWN0X2RiKCkpIGVjaG8gIjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPXJlZD48Yj5UaWRhayBiaXNhIG1lbWlsaWggZGF0YWJhc2U8L2I+PC9mb250PjwvZGl2PiI7DQogICBlbHNlDQogICAgew0KICAgIGZvcmVhY2goJHF1ZXJ5cyBhcyAkbnVtPT4kcXVlcnkpDQogICAgIHsNCiAgICAgIGlmKHN0cmxlbigkcXVlcnkpPjUpDQogICAgICB7DQogICAgICBlY2hvICI8Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1ncmVlbj48Yj5RdWVyeSMiLiRudW0uIiA6ICIuaHRtbHNwZWNpYWxjaGFycygkcXVlcnksRU5UX1FVT1RFUykuIjwvYj48L2ZvbnQ+PGJyPiI7DQogICAgICBzd2l0Y2goJHNxbC0+cXVlcnkoJHF1ZXJ5KSkNCiAgICAgICB7DQogICAgICAgY2FzZSAnMCc6DQogICAgICAgZWNobyAiPHRhYmxlIHdpZHRoPTEwMCU+PHRyPjx0ZD48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj5FcnJvciA6IDxiPiIuJHNxbC0+ZXJyb3IuIjwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+IjsNCiAgICAgICBicmVhazsNCiAgICAgICBjYXNlICcxJzoNCiAgICAgICBpZigkc3FsLT5nZXRfcmVzdWx0KCkpDQogICAgICAgIHsNCiAgICAgICBlY2hvICI8dGFibGUgd2lkdGg9MTAwJT4iOw0KICAgICAgICBmb3JlYWNoKCRzcWwtPmNvbHVtbnMgYXMgJGs9PiR2KSAkc3FsLT5jb2x1bW5zWyRrXSA9IGh0bWxzcGVjaWFsY2hhcnMoJHYsRU5UX1FVT1RFUyk7DQogICAgICAgJGtleXMgPSBAaW1wbG9kZSgiJm5ic3A7PC9iPjwvZm9udD48L3RkPjx0ZCBiZ2NvbG9yPSNjY2NjY2M+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Jm5ic3A7IiwgJHNxbC0+Y29sdW1ucyk7DQogICAgICAgIGVjaG8gIjx0cj48dGQgYmdjb2xvcj0jY2NjY2NjPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPiZuYnNwOyIuJGtleXMuIiZuYnNwOzwvYj48L2ZvbnQ+PC90ZD48L3RyPiI7DQogICAgICAgIGZvcigkaT0wOyRpPCRzcWwtPm51bV9yb3dzOyRpKyspDQogICAgICAgICB7DQogICAgICAgICBmb3JlYWNoKCRzcWwtPnJvd3NbJGldIGFzICRrPT4kdikgJHNxbC0+cm93c1skaV1bJGtdID0gaHRtbHNwZWNpYWxjaGFycygkdixFTlRfUVVPVEVTKTsNCiAgICAgICAgICR2YWx1ZXMgPSBAaW1wbG9kZSgiJm5ic3A7PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPiZuYnNwOyIsJHNxbC0+cm93c1skaV0pOw0KICAgICAgICAgZWNobyAnPHRyPjx0ZD48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj4mbmJzcDsnLiR2YWx1ZXMuJyZuYnNwOzwvZm9udD48L3RkPjwvdHI+JzsNCiAgICAgICAgIH0NCiAgICAgICAgZWNobyAiPC90YWJsZT4iOw0KICAgICAgICB9DQogICAgICAgYnJlYWs7DQogICAgICAgY2FzZSAnMic6DQogICAgICAgJGFyID0gJHNxbC0+YWZmZWN0ZWRfcm93cygpPygkc3FsLT5hZmZlY3RlZF9yb3dzKCkpOignMCcpOw0KICAgICAgIGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlPjx0cj48dGQ+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+YWZmZWN0ZWQgcm93cyA6IDxiPiIuJGFyLiI8L2I+PC9mb250PjwvdGQ+PC90cj48L3RhYmxlPjxicj4iOw0KICAgICAgIGJyZWFrOw0KICAgICAgIH0NCiAgICAgIH0NCiAgICAgfQ0KICAgIH0NCiAgIH0NCiBlY2hvICI8YnI+PGZvcm0gbmFtZT1mb3JtIG1ldGhvZD1QT1NUPiI7DQogZWNobyBpbignaGlkZGVuJywnZGInLDAsJF9QT1NUWydkYiddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdkYl9zZXJ2ZXInLDAsJF9QT1NUWydkYl9zZXJ2ZXInXSk7DQogZWNobyBpbignaGlkZGVuJywnZGJfcG9ydCcsMCwkX1BPU1RbJ2RiX3BvcnQnXSk7DQogZWNobyBpbignaGlkZGVuJywnbXlzcWxfbCcsMCwkX1BPU1RbJ215c3FsX2wnXSk7DQogZWNobyBpbignaGlkZGVuJywnbXlzcWxfcCcsMCwkX1BPU1RbJ215c3FsX3AnXSk7DQogZWNobyBpbignaGlkZGVuJywnbXlzcWxfZGInLDAsJF9QT1NUWydteXNxbF9kYiddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdjbWQnLDAsJ2RiX3F1ZXJ5Jyk7DQogZWNobyAiPGRpdiBhbGlnbj1jZW50ZXI+PHRleHRhcmVhIGNvbHM9NjUgcm93cz0xMCBuYW1lPWRiX3F1ZXJ5PiIuKCFlbXB0eSgkX1BPU1RbJ2RiX3F1ZXJ5J10pPygkX1BPU1RbJ2RiX3F1ZXJ5J10pOigiU0hPVyBEQVRBQkFTRVM7XG5TRUxFQ1QgKiBGUk9NIHVzZXI7IikpLiI8L3RleHRhcmVhPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9XCIgUnVuIFNRTCBxdWVyeSBcIj48L2Rpdj48YnI+PGJyPiI7DQogZWNobyAiPC9mb3JtPiI7DQogZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsgZGllKCk7DQogfQ0KaWYoaXNzZXQoJF9HRVRbJ2RlbGV0ZSddKSkNCiB7DQogICBAdW5saW5rKEBzdWJzdHIoQHN0cnJjaHIoJF9TRVJWRVJbJ1BIUF9TRUxGJ10sIi8iKSwxKSk7DQogfQ0KaWYoaXNzZXQoJF9HRVRbJ3RtcCddKSkNCiB7DQogICBAdW5saW5rKCIvdG1wL2JkcGwiKTsNCiAgIEB1bmxpbmsoIi90bXAvYmFjayIpOw0KICAgQHVubGluaygiL3RtcC9iZCIpOw0KICAgQHVubGluaygiL3RtcC9iZC5jIik7DQogICBAdW5saW5rKCIvdG1wL2RwIik7DQogICBAdW5saW5rKCIvdG1wL2RwYyIpOw0KICAgQHVubGluaygiL3RtcC9kcGMuYyIpOw0KIH0NCmlmKGlzc2V0KCRfR0VUWydwaHBpbmknXSkpDQp7DQplY2hvICRoZWFkOw0KZnVuY3Rpb24gVV92YWx1ZSgkdmFsdWUpDQogew0KIGlmICgkdmFsdWUgPT0gJycpIHJldHVybiAnPGk+bm8gdmFsdWU8L2k+JzsNCiBpZiAoQGlzX2Jvb2woJHZhbHVlKSkgcmV0dXJuICR2YWx1ZSA/ICdUUlVFJyA6ICdGQUxTRSc7DQogaWYgKCR2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICdOVUxMJzsNCiBpZiAoQGlzX29iamVjdCgkdmFsdWUpKSAkdmFsdWUgPSAoYXJyYXkpICR2YWx1ZTsNCiBpZiAoQGlzX2FycmF5KCR2YWx1ZSkpDQogew0KIEBvYl9zdGFydCgpOw0KIHByaW50X3IoJHZhbHVlKTsNCiAkdmFsdWUgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQogQG9iX2VuZF9jbGVhbigpOw0KIH0NCiByZXR1cm4gVV93b3Jkd3JhcCgoc3RyaW5nKSAkdmFsdWUpOw0KIH0NCmZ1bmN0aW9uIFVfd29yZHdyYXAoJHN0cikNCiB7DQogJHN0ciA9IEB3b3Jkd3JhcChAaHRtbHNwZWNpYWxjaGFycygkc3RyKSwgMTAwLCAnPHdiciAvPicsIHRydWUpOw0KIHJldHVybiBAcHJlZ19yZXBsYWNlKCchKCZbXjtdKik8d2JyIC8+KFteO10qOykhJywgJyQxJDI8d2JyIC8+JywgJHN0cik7DQogfQ0KaWYgKEBmdW5jdGlvbl9leGlzdHMoJ2luaV9nZXRfYWxsJykpDQogew0KICRyID0gJyc7DQogZWNobyAnPHRhYmxlIHdpZHRoPTEwMCU+JywgJzx0cj48dGQgYmdjb2xvcj0jY2NjY2NjPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPXJlZD48ZGl2IGFsaWduPWNlbnRlcj48Yj5EaXJlY3RpdmU8L2I+PC9kaXY+PC9mb250PjwvdGQ+PHRkIGJnY29sb3I9I2NjY2NjYz48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGRpdiBhbGlnbj1jZW50ZXI+PGI+TmlsYWkgTG9jYWw8L2I+PC9kaXY+PC9mb250PjwvdGQ+PHRkIGJnY29sb3I9I2NjY2NjYz48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGRpdiBhbGlnbj1jZW50ZXI+PGI+TmlsYWkgTWFzdGVyPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiBmb3JlYWNoIChAaW5pX2dldF9hbGwoKSBhcyAka2V5PT4kdmFsdWUpDQogIHsNCiAgJHIgLj0gJzx0cj48dGQ+Jy53cygzKS4nPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Jy4ka2V5Lic8L2I+PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPicuVV92YWx1ZSgkdmFsdWVbJ2xvY2FsX3ZhbHVlJ10pLic8L2I+PC9kaXY+PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPicuVV92YWx1ZSgkdmFsdWVbJ2dsb2JhbF92YWx1ZSddKS4nPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiAgfQ0KIGVjaG8gJHI7DQogZWNobyAnPC90YWJsZT4nOw0KIH0NCmVjaG8gIjxicj48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQpkaWUoKTsNCn0NCmlmKGlzc2V0KCRfR0VUWydjcHUnXSkpDQogew0KICAgZWNobyAkaGVhZDsNCiAgIGVjaG8gJzx0YWJsZSB3aWR0aD0xMDAlPjx0cj48dGQgYmdjb2xvcj0jY2NjY2NjPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPXJlZD48Yj5DUFU8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0xMDAlPic7DQogICAkY3B1ZiA9IEBmaWxlKCJjcHVpbmZvIik7DQogICBpZigkY3B1ZikNCiAgICB7DQogICAgICAkYyA9IEBzaXplb2YoJGNwdWYpOw0KICAgICAgZm9yKCRpPTA7JGk8JGM7JGkrKykNCiAgICAgICAgew0KICAgICAgICAgICRpbmZvID0gQGV4cGxvZGUoIjoiLCRjcHVmWyRpXSk7DQogICAgICAgICAgaWYoJGluZm9bMV09PSIiKXsgJGluZm9bMV09Ii0tLSI7IH0NCiAgICAgICAgICAkciAuPSAnPHRyPjx0ZD4nLndzKDMpLic8Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj4nLnRyaW0oJGluZm9bMF0pLic8L2I+PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPicudHJpbSgkaW5mb1sxXSkuJzwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48L3RyPic7DQogICAgICAgIH0NCiAgICAgIGVjaG8gJHI7DQogICAgfQ0KICAgZWxzZQ0KICAgIHsNCiAgICAgIGVjaG8gJzx0cj48dGQ+Jy53cygzKS4nPGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+IC0tLSA8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj4nOw0KICAgIH0NCiAgIGVjaG8gJzwvdGFibGU+JzsNCiAgIGVjaG8gIjxicj48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXS4iPktFTUJBTEk8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogICBkaWUoKTsNCiB9DQppZihpc3NldCgkX0dFVFsnbWVtJ10pKQ0KIHsNCiAgIGVjaG8gJGhlYWQ7DQogICBlY2hvICc8dGFibGUgd2lkdGg9MTAwJT48dHI+PHRkIGJnY29sb3I9I2NjY2NjYz48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGI+TUVNT1JZPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9MTAwJT4nOw0KICAgJG1lbWYgPSBAZmlsZSgibWVtaW5mbyIpOw0KICAgaWYoJG1lbWYpDQogICAgew0KICAgICAgJGMgPSBzaXplb2YoJG1lbWYpOw0KICAgICAgZm9yKCRpPTA7JGk8JGM7JGkrKykNCiAgICAgICAgew0KICAgICAgICAgICRpbmZvID0gZXhwbG9kZSgiOiIsJG1lbWZbJGldKTsNCiAgICAgICAgICBpZigkaW5mb1sxXT09IiIpeyAkaW5mb1sxXT0iLS0tIjsgfQ0KICAgICAgICAgICRyIC49ICc8dHI+PHRkPicud3MoMykuJzxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPicudHJpbSgkaW5mb1swXSkuJzwvYj48L2ZvbnQ+PC90ZD48dGQ+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Jy50cmltKCRpbmZvWzFdKS4nPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiAgICAgICAgfQ0KICAgICAgZWNobyAkcjsNCiAgICB9DQogICBlbHNlDQogICAgew0KICAgICAgZWNobyAnPHRyPjx0ZD4nLndzKDMpLic8ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj4gLS0tIDwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPic7DQogICAgfQ0KICAgZWNobyAnPC90YWJsZT4nOw0KICAgZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddLiI+S0VNQkFMSTwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsNCiAgIGRpZSgpOw0KIH0NCiRsYW5nPWFycmF5KA0KJ3J1X3RleHQxJyA9PicnLA0KJ3J1X3RleHQyJyA9PicnLA0KJ3J1X3RleHQzJyA9PicnLA0KJ3J1X3RleHQ0JyA9PicnLA0KJ3J1X3RleHQ1JyA9PicnLA0KJ3J1X3RleHQ2JyA9PicnLA0KJ3J1X3RleHQ3JyA9PicnLA0KJ3J1X3RleHQ4JyA9PicnLA0KJ3J1X2J1dHQxJyA9PicnLA0KJ3J1X2J1dHQyJyA9PicnLA0KJ3J1X3RleHQ5JyA9PicnLA0KJ3J1X3RleHQxMCc9PicnLA0KJ3J1X3RleHQxMSc9PicnLA0KJ3J1X2J1dHQzJyA9PicnLA0KJ3J1X3RleHQxMic9PicnLA0KJ3J1X3RleHQxMyc9PicnLA0KJ3J1X3RleHQxNCc9PicnLA0KJ3J1X2J1dHQ0JyA9PicnLA0KJ3J1X3RleHQxNSc9PicnLA0KJ3J1X3RleHQxNic9PicnLA0KJ3J1X3RleHQxNyc9PicnLA0KJ3J1X3RleHQxOCc9PicnLA0KJ3J1X3RleHQxOSc9PicnLA0KJ3J1X3RleHQyMCc9PicnLA0KJ3J1X3RleHQyMSc9PicnLA0KJ3J1X3RleHQyMic9PicnLA0KJ3J1X3RleHQyMyc9PicnLA0KJ3J1X3RleHQyNCc9PicnLA0KJ3J1X3RleHQyNSc9PicnLA0KJ3J1X3RleHQyNic9PicnLA0KJ3J1X2J1dHQ1JyA9PicnLA0KJ3J1X3RleHQyOCc9PicnLA0KJ3J1X3RleHQyOSc9PicnLA0KJ3J1X2J1dHQ2JyA9PicnLA0KJ3J1X3RleHQzMCc9PicnLA0KJ3J1X2J1dHQ3JyA9PicnLA0KJ3J1X3RleHQzMSc9PicnLA0KJ3J1X3RleHQzMic9PicnLA0KJ3J1X3RleHQzMyc9PicnLA0KJ3J1X2J1dHQ4JyA9PicnLA0KJ3J1X3RleHQzNCc9PicnLA0KJ3J1X3RleHQzNSc9PicnLA0KJ3J1X3RleHQzNic9PicnLA0KJ3J1X3RleHQzNyc9PicnLA0KJ3J1X3RleHQzOCc9PicnLA0KJ3J1X3RleHQzOSc9PicnLA0KJ3J1X3RleHQ0MCc9PicnLA0KJ3J1X2J1dHQ5JyA9PicnLA0KJ3J1X3RleHQ0MSc9PicnLA0KJ3J1X3RleHQ0Mic9PicnLA0KJ3J1X3RleHQ0Myc9PicnLA0KJ3J1X2J1dHQxMCc9PicnLA0KJ3J1X2J1dHQxMSc9PicnLA0KJ3J1X3RleHQ0NCc9PicnLA0KJ3J1X3RleHQ0NSc9PicnLA0KJ3J1X3RleHQ0Nic9PicnLA0KJ3J1X3RleHQ0Nyc9PicnLA0KJ3J1X3RleHQ0OCc9PicnLA0KJ3J1X3RleHQ0OSc9PicnLA0KJ3J1X3RleHQ1MCc9PicnLA0KJ3J1X3RleHQ1MSc9PicnLA0KJ3J1X3RleHQ1Mic9PicnLA0KJ3J1X3RleHQ1Myc9PicnLA0KJ3J1X3RleHQ1NCc9PicnLA0KJ3J1X2J1dHQxMic9PicnLA0KJ3J1X3RleHQ1NSc9PicnLA0KJ3J1X3RleHQ1Nic9PicnLA0KJ3J1X3RleHQ1Nyc9PicnLA0KJ3J1X3RleHQ1OCc9PicnLA0KJ3J1X3RleHQ1OSc9PicnLA0KJ3J1X3RleHQ2MCc9PicnLA0KJ3J1X2J1dHQxMyc9PicnLA0KJ3J1X3RleHQ2MSc9PicnLA0KJ3J1X3RleHQ2Mic9PicnLA0KJ3J1X3RleHQ2Myc9PicnLA0KJ3J1X3RleHQ2NCc9PicnLA0KJ3J1X3RleHQ2NSc9PicnLA0KJ3J1X3RleHQ2Nic9PicnLA0KJ3J1X3RleHQ2Nyc9PicnLA0KJ3J1X3RleHQ2OCc9PicnLA0KJ3J1X3RleHQ2OSc9PicnLA0KJ3J1X3RleHQ3MCc9PicnLA0KJ3J1X3RleHQ3MSc9PiIiLA0KJ3J1X3RleHQ3Mic9PicnLA0KJ3J1X3RleHQ3Myc9PicnLA0KJ3J1X3RleHQ3NCc9PicnLA0KJ3J1X3RleHQ3NSc9PicnLA0KJ3J1X3RleHQ3Nic9PicnLA0KJ3J1X3RleHQ4MCc9PicnLA0KJ3J1X3RleHQ4MSc9PicnLA0KJ3J1X3RleHQ4Mic9PicnLA0KJ3J1X3RleHQ4Myc9PicnLA0KJ3J1X3RleHQ4NCc9PicnLA0KJ3J1X3RleHQ4NSc9PicnLA0KJ3J1X3RleHQ4Nic9PicnLA0KJ3J1X2J1dHQxNCc9PicnLA0KJ3J1X3RleHQ4Nyc9PicnLA0KJ3J1X3RleHQ4OCc9PicnLA0KJ3J1X3RleHQ4OSc9PicnLA0KJ3J1X3RleHQ5MCc9PicnLA0KJ3J1X3RleHQ5MSc9PicnLA0KJ3J1X3RleHQ5Mic9PicnLA0KJ3J1X3RleHQ5Myc9PicnLA0KJ3J1X3RleHQ5NCc9PicnLA0KJ3J1X3RleHQ5NSc9PicnLA0KJ3J1X3RleHQ5Nic9PicnLA0KJ3J1X3RleHQ5Nyc9PicnLA0KJ3J1X3RleHQ5OCc9PicnLA0KJ3J1X3RleHQ5OSc9PicnLA0KJ3J1X3RleHQxMDAnPT4nJywNCidydV90ZXh0MTAxJz0+JycsDQoncnVfdGV4dDEwMic9PicnLA0KJ3J1X3RleHQxMDMnPT4nJywNCidydV90ZXh0MTA0Jz0+JycsDQoncnVfdGV4dDEwNSc9PicnLA0KJ3J1X3RleHQxMDYnPT4nJywNCidydV90ZXh0MTA3Jz0+JycsDQoncnVfYnV0dDE1Jz0+JycsDQoncnVfdGV4dDEwOCc9PicnLA0KJ3J1X3RleHQxMDknPT4nJywNCidydV90ZXh0MTEwJz0+JycsDQoncnVfdGV4dDExMSc9PicnLA0KJ3J1X3RleHQxMTInPT4nJywNCidydV90ZXh0MTEzJz0+JycsDQoncnVfdGV4dDExNCc9PicnLA0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQonZW5nX3RleHQxJyA9PidKYWxhbmthbiBQZXJpbnRhaCBDb2snLA0KJ2VuZ190ZXh0MicgPT4nSmFsYW5rYW4gcGVyaW50YWggZGkgc2VydmVyJywNCidlbmdfdGV4dDMnID0+J0phbGFua2FuIHBlcmludGFoJywNCidlbmdfdGV4dDQnID0+J0RpcmVrdG9yaSBrZXJqYSBDb2snLA0KJ2VuZ190ZXh0NScgPT4nVXBsb2FkIGZpbGUga2Ugc2VydmVyJywNCidlbmdfdGV4dDYnID0+J0ZpbGUgTG9rYWwnLA0KJ2VuZ190ZXh0NycgPT4nQWxpYXMnLA0KJ2VuZ190ZXh0OCcgPT4nUGlsaWggYWxpYXMnLA0KJ2VuZ19idXR0MScgPT4nSmFsYW5rYW4gQ29rJywNCidlbmdfYnV0dDInID0+J1VwbG9hZCBDb2snLA0KJ2VuZ190ZXh0OScgPT4nQmluZCBwb3J0IGtlIC9iaW4vYmFzaCcsDQonZW5nX3RleHQxMCc9PidQb3J0JywNCidlbmdfdGV4dDExJz0+J1Bhc3N3b3JkJywNCidlbmdfYnV0dDMnID0+J0JpbmQnLA0KJ2VuZ190ZXh0MTInPT4nYmFjay1jb25uZWN0JywNCidlbmdfdGV4dDEzJz0+J0lQJywNCidlbmdfdGV4dDE0Jz0+J1BvcnQnLA0KJ2VuZ19idXR0NCcgPT4nS29uZWsnLA0KJ2VuZ190ZXh0MTUnPT4nVXBsb2FkIGZpbGUgZGFyaSByZW1vdGUgc2VydmVyJywNCidlbmdfdGV4dDE2Jz0+J0RlbmdhbicsDQonZW5nX3RleHQxNyc9PidGaWxlIFJlbW90ZScsDQonZW5nX3RleHQxOCc9PidGaWxlIGxva2FsJywNCidlbmdfdGV4dDE5Jz0+J0V4cGxvaXQnLA0KJ2VuZ190ZXh0MjAnPT4nUGVuZ2d1bmFhbicsDQonZW5nX3RleHQyMSc9PicmbmJzcDtOYW1hIGJhcnUnLA0KJ2VuZ190ZXh0MjInPT4nZGF0YXBpcGUnLA0KJ2VuZ190ZXh0MjMnPT4nUG9ydCBMb2thbCcsDQonZW5nX3RleHQyNCc9PidSZW1vdGUgaG9zdCcsDQonZW5nX3RleHQyNSc9PidSZW1vdGUgcG9ydCcsDQonZW5nX3RleHQyNic9PidQZW5nZ3VuYWFuJywNCidlbmdfYnV0dDUnID0+J0phbGFua2FuJywNCidlbmdfdGV4dDI4Jz0+J0Jla2VyamEgZGkgc2FmZV9tb2RlJywNCidlbmdfdGV4dDI5Jz0+J0Frc2VzIERpbGFyYW5nJywNCidlbmdfYnV0dDYnID0+J1ViYWgnLA0KJ2VuZ190ZXh0MzAnPT4nTGloYXQgZmlsZScsDQonZW5nX2J1dHQ3JyA9PidUYW1wcGlsa2FuJywNCidlbmdfdGV4dDMxJz0+J0ZpbGUgdGlkYWsgZGl0ZW11a2FuJywNCidlbmdfdGV4dDMyJz0+J0V2YWwga29kZSBQSFAnLA0KJ2VuZ190ZXh0MzMnPT4nVGVzdCBieXBhc3Mgb3Blbl9iYXNlZGlyIGRlbmdhbiBmdW5nc2kgY1VSTCcsDQonZW5nX2J1dHQ4JyA9PidUZXN0JywNCidlbmdfdGV4dDM0Jz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSBkZW5nYW4gaW5jbHVkZScsDQonZW5nX3RleHQzNSc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUgZGVuZ2FuIGxvYWQgZmlsZSBkaSBteXNxbCcsDQonZW5nX3RleHQzNic9PidEYXRhYmFzZSAuIFRhYmxlJywNCidlbmdfdGV4dDM3Jz0+J0xvZ2luJywNCidlbmdfdGV4dDM4Jz0+J1Bhc3N3b3JkJywNCidlbmdfdGV4dDM5Jz0+J0RhdGFiYXNlJywNCidlbmdfdGV4dDQwJz0+J0R1bXAgZGF0YWJhc2UgdGFibGUnLA0KJ2VuZ19idXR0OScgPT4nRHVtcCcsDQonZW5nX3RleHQ0MSc9PidTaW1wYW4gZHVtcCBkaSBmaWxlJywNCidlbmdfdGV4dDQyJz0+J0VkaXQgZmlsZScsDQonZW5nX3RleHQ0Myc9PidGaWxlIGRpIGVkaXQnLA0KJ2VuZ19idXR0MTAnPT4nU2ltcGFuJywNCidlbmdfdGV4dDQ0Jz0+J1RpZGFrIGJpc2EgbWVuZ2VkaXQgZmlsZSEgQmFjYSBzYWphIScsDQonZW5nX3RleHQ0NSc9PidGaWxlIHRlcnNpbXBhbicsDQonZW5nX3RleHQ0Nic9PidUYW1waWxrYW4gcGhwaW5mbygpJywNCidlbmdfdGV4dDQ3Jz0+J1RhbXBpbGthbiB2YXJpYWJsZSBkYXJpIHBocC5pbmknLA0KJ2VuZ190ZXh0NDgnPT4nSGFwdXMgRmlsZSB0ZW1wJywNCidlbmdfYnV0dDExJz0+J0VkaXQgZmlsZScsDQonZW5nX3RleHQ0OSc9PidIYXB1cyBzY3JpcHQgZGFyaSBzZXJ2ZXInLA0KJ2VuZ190ZXh0NTAnPT4nTGloYXQgY3B1IGluZm8nLA0KJ2VuZ190ZXh0NTEnPT4nTGloYXQgbWVtb3J5IGluZm8nLA0KJ2VuZ190ZXh0NTInPT4nQ2FyaSB0ZXh0JywNCidlbmdfdGV4dDUzJz0+J0RpIGRpcicsDQonZW5nX3RleHQ1NCc9PidDYXJpIHRleHQgZGkgZmlsZScsDQonZW5nX2J1dHQxMic9PidDYXJpJywNCidlbmdfdGV4dDU1Jz0+J0hhbnlhIGRpIGZpbGUnLA0KJ2VuZ190ZXh0NTYnPT4nVGlkYWsgYWRhIDooJywNCidlbmdfdGV4dDU3Jz0+J0J1YXQvSGFwdXMgRmlsZS9EaXInLA0KJ2VuZ190ZXh0NTgnPT4nbmFtYScsDQonZW5nX3RleHQ1OSc9PidmaWxlJywNCidlbmdfdGV4dDYwJz0+J2RpcicsDQonZW5nX2J1dHQxMyc9PidCdWF0L0hhcHVzJywNCidlbmdfdGV4dDYxJz0+J0ZpbGUgZGlidWF0JywNCidlbmdfdGV4dDYyJz0+J0RpciBkaWJ1YXQnLA0KJ2VuZ190ZXh0NjMnPT4nRmlsZSBkaWhhcHVzJywNCidlbmdfdGV4dDY0Jz0+J0RpciBkaWhhcHVzJywNCidlbmdfdGV4dDY1Jz0+J0J1YXQnLA0KJ2VuZ190ZXh0NjYnPT4nSGFwdXMnLA0KJ2VuZ190ZXh0NjcnPT4nQ2hvd24vQ2hncnAvQ2htb2QnLA0KJ2VuZ190ZXh0NjgnPT4nQ29tbWFuZCcsDQonZW5nX3RleHQ2OSc9PidwYXJhbTEnLA0KJ2VuZ190ZXh0NzAnPT4ncGFyYW0yJywNCidlbmdfdGV4dDcxJz0+IlBlcmludGFoIGtlZHVhIGFkYWxhaDpcclxuLSBmb3IgQ0hPV04gLSBuYW1hIGRhcmkgb3duZXIgYmFydSBhdGF1IFVJRFxyXG4tIGZvciBDSEdSUCAtIG5hbWEgIGdyb3VwIGF0YXUgR0lEXHJcbi0gdW50dWsgQ0hNT0QgLSAwNzc3LCAwNzU1Li4uIiwNCidlbmdfdGV4dDcyJz0+J1RleHQgeWFuZyBkaWNhcmknLA0KJ2VuZ190ZXh0NzMnPT4nQ2FyaSBkaSBmb2xkZXInLA0KJ2VuZ190ZXh0NzQnPT4nQ2FyaSBkaSBmaWxlcycsDQonZW5nX3RleHQ3NSc9PicqIHRpZGFrIGJpc2EgbWVuZ2d1bmFrYW4gcmVnZXhwJywNCidlbmdfdGV4dDc2Jz0+J0NhcmkgdGV4dCBkaSBmaWxlIG1lbmdndW5ha2FuIGZpbmQnLA0KJ2VuZ190ZXh0ODAnPT4nVHlwZScsDQonZW5nX3RleHQ4MSc9PidOZXQnLA0KJ2VuZ190ZXh0ODInPT4nRGF0YWJhc2VzJywNCidlbmdfdGV4dDgzJz0+J0phbGFua2FuIFNRTCBxdWVyeScsDQonZW5nX3RleHQ4NCc9PidTUUwgcXVlcnknLA0KJ2VuZ190ZXh0ODUnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIGRlbmdhbiBtZW1hbmZhYXRrYW4gTVNTUUwgc2VydmVyJywNCidlbmdfdGV4dDg2Jz0+J0Rvd25sb2FkIGZpbGUgZGFyaSBzZXJ2ZXInLA0KJ2VuZ19idXR0MTQnPT4nRG93bmxvYWQnLA0KJ2VuZ190ZXh0ODcnPT4nRG93bmxvYWQgZmlsZSBkYXJpIHJlbW90ZSBmdHAtc2VydmVyJywNCidlbmdfdGV4dDg4Jz0+J0ZUUC1zZXJ2ZXI6cG9ydCcsDQonZW5nX3RleHQ4OSc9PidGaWxlIGRpIGZ0cCcsDQonZW5nX3RleHQ5MCc9PidUcmFuc2ZlciBtb2RlJywNCidlbmdfdGV4dDkxJz0+J0FyY2hpdmF0aW9uJywNCidlbmdfdGV4dDkyJz0+J3RhbnBhIHBlbmctYXJjaGl2ZS1hbicsDQonZW5nX3RleHQ5Myc9PidGVFAnLA0KJ2VuZ190ZXh0OTQnPT4nRlRQLWJydXRlZm9yY2UnLA0KJ2VuZ190ZXh0OTUnPT4nRGFmdGFyIHVzZXInLA0KJ2VuZ190ZXh0OTYnPT4nVGlkYWsgYmlzYSBtZW5kYXBhdGthbiBkYWZ0YXIgdXNlcicsDQonZW5nX3RleHQ5Nyc9PidjaGVja2VkOiAnLA0KJ2VuZ190ZXh0OTgnPT4nc3Vrc2VzOiAnLA0KJ2VuZ190ZXh0OTknPT4nKiBHdW5ha2FuIHVzZXJuYW1lIGRhcmkgL2V0Yy9wYXNzd2QgdW50dWsgZnRwIGxvZ2luIGRhbiBwYXNzd29yZCcsDQonZW5nX3RleHQxMDAnPT4nS2lyaW0gZmlsZSBrZSByZW1vdGUgZnRwIHNlcnZlcicsDQonZW5nX3RleHQxMDEnPT4nR3VrYW5hbiBrZWJhbGlrYW4gKHVzZXIgLT4gcmVzdSkgbG9naW4gdW50dWsgcGFzc3dvcmQnLA0KJ2VuZ190ZXh0MTAyJz0+J01haWwnLA0KJ2VuZ190ZXh0MTAzJz0+J0tpcmltIGVtYWlsJywNCidlbmdfdGV4dDEwNCc9PidLaXJpbSBmaWxlIHRvIGVtYWlsJywNCidlbmdfdGV4dDEwNSc9PidLZXBhZGEnLA0KJ2VuZ190ZXh0MTA2Jz0+J0RhcmknLA0KJ2VuZ190ZXh0MTA3Jz0+J1N1YmonLA0KJ2VuZ19idXR0MTUnPT4nS2lyaW0nLA0KJ2VuZ190ZXh0MTA4Jz0+J01haWwnLA0KJ2VuZ190ZXh0MTA5Jz0+J1NlbWJ1bnlpa2FuJywNCidlbmdfdGV4dDExMCc9PidUYW1waWxrYW4nLA0KJ2VuZ190ZXh0MTExJz0+J1NRTC1TZXJ2ZXIgOiBQb3J0JywNCidlbmdfdGV4dDExMic9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUgZGVuZ2FuIGZ1bmdzaSBtYl9zZW5kX21haWwnLA0KJ2VuZ190ZXh0MTEzJz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSwgdGFtcGlsa2FuIGRhZnRlciBkaXIgdmlhIGltYXBfbGlzdCcsDQonZW5nX3RleHQxMTQnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlLCB0YW1waWxrYW4gaXNpIGZpbGUgdmlhIGltYXBfYm9keScsDQopOw0KJGFsaWFzZXM9YXJyYXkoDQonZmluZCBzdWlkIGZpbGVzJz0+J2ZpbmQgLyAtdHlwZSBmIC1wZXJtIC0wNDAwMCAtbHMnLA0KJ2ZpbmQgc3VpZCBmaWxlcyBpbiBjdXJyZW50IGRpcic9PidmaW5kIC4gLXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzJywNCidmaW5kIHNnaWQgZmlsZXMnPT4nZmluZCAvIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scycsDQonZmluZCBzZ2lkIGZpbGVzIGluIGN1cnJlbnQgZGlyJz0+J2ZpbmQgLiAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbHMnLA0KJ2ZpbmQgY29uZmlnLmluYy5waHAgZmlsZXMnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUgY29uZmlnLmluYy5waHAnLA0KJ2ZpbmQgY29uZmlnLmluYy5waHAgZmlsZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC10eXBlIGYgLW5hbWUgY29uZmlnLmluYy5waHAnLA0KJ2ZpbmQgY29uZmlnKiBmaWxlcyc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZSAiY29uZmlnKiInLA0KJ2ZpbmQgY29uZmlnKiBmaWxlcyBpbiBjdXJyZW50IGRpcic9PidmaW5kIC4gLXR5cGUgZiAtbmFtZSAiY29uZmlnKiInLA0KJ2ZpbmQgYWxsIHdyaXRhYmxlIGZpbGVzJz0+J2ZpbmQgLyAtdHlwZSBmIC1wZXJtIC0yIC1scycsDQonZmluZCBhbGwgd3JpdGFibGUgZmlsZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC10eXBlIGYgLXBlcm0gLTIgLWxzJywNCidmaW5kIGFsbCB3cml0YWJsZSBkaXJlY3Rvcmllcyc9PidmaW5kIC8gIC10eXBlIGQgLXBlcm0gLTIgLWxzJywNCidmaW5kIGFsbCB3cml0YWJsZSBkaXJlY3RvcmllcyBpbiBjdXJyZW50IGRpcic9PidmaW5kIC4gLXR5cGUgZCAtcGVybSAtMiAtbHMnLA0KJ2ZpbmQgYWxsIHdyaXRhYmxlIGRpcmVjdG9yaWVzIGFuZCBmaWxlcyc9PidmaW5kIC8gLXBlcm0gLTIgLWxzJywNCidmaW5kIGFsbCB3cml0YWJsZSBkaXJlY3RvcmllcyBhbmQgZmlsZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC1wZXJtIC0yIC1scycsDQonZmluZCBhbGwgc2VydmljZS5wd2QgZmlsZXMnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUgc2VydmljZS5wd2QnLA0KJ2ZpbmQgc2VydmljZS5wd2QgZmlsZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC10eXBlIGYgLW5hbWUgc2VydmljZS5wd2QnLA0KJ2ZpbmQgYWxsIC5odHBhc3N3ZCBmaWxlcyc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QnLA0KJ2ZpbmQgLmh0cGFzc3dkIGZpbGVzIGluIGN1cnJlbnQgZGlyJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIC5odHBhc3N3ZCcsDQonZmluZCBhbGwgLmJhc2hfaGlzdG9yeSBmaWxlcyc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZSAuYmFzaF9oaXN0b3J5JywNCidmaW5kIC5iYXNoX2hpc3RvcnkgZmlsZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeScsDQonZmluZCBhbGwgLm15c3FsX2hpc3RvcnkgZmlsZXMnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUgLm15c3FsX2hpc3RvcnknLA0KJ2ZpbmQgLm15c3FsX2hpc3RvcnkgZmlsZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC10eXBlIGYgLW5hbWUgLm15c3FsX2hpc3RvcnknLA0KJ2ZpbmQgYWxsIC5mZXRjaG1haWxyYyBmaWxlcyc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMnLA0KJ2ZpbmQgLmZldGNobWFpbHJjIGZpbGVzIGluIGN1cnJlbnQgZGlyJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYycsDQonbGlzdCBmaWxlIGF0dHJpYnV0ZXMgb24gYSBMaW51eCBzZWNvbmQgZXh0ZW5kZWQgZmlsZSBzeXN0ZW0nPT4nbHNhdHRyIC12YScsDQonc2hvdyBvcGVuZWQgcG9ydHMnPT4nbmV0c3RhdCAtYW4gfCBncmVwIC1pIGxpc3RlbicsDQonLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSc9PidscyAtbGEnDQopOw0KJHRhYmxlX3VwMSAgPSAiPHRyPjx0ZCBiZ2NvbG9yPSNjY2NjY2M+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXI+OjogIjsNCiR0YWJsZV91cDIgID0gIiA6OjwvZGl2PjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQ+IjsNCiR0YWJsZV91cDMgID0gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSMwMDAwMDA+PHRyPjx0ZCBiZ2NvbG9yPSNjY2NjY2M+IjsNCiR0YWJsZV9lbmQxID0gIjwvdGQ+PC90cj4iOw0KJGFycm93ID0gIiA8Zm9udCBmYWNlPVdpbmdkaW5ncyBjb2xvcj1ncmF5Pj88L2ZvbnQ+IjsNCiRsYiA9ICI8Zm9udCBjb2xvcj1ibGFjaz5bPC9mb250PiI7DQokcmIgPSAiPGZvbnQgY29sb3I9YmxhY2s+XTwvZm9udD4iOw0KJGZvbnQgPSAiPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+IjsNCiR0cyA9ICI8dGFibGUgY2xhc3M9dGFibGUxIHdpZHRoPTEwMCUgYWxpZ249Y2VudGVyPiI7DQokdGUgPSAiPC90YWJsZT4iOw0KJGZzID0gIjxmb3JtIG5hbWU9Zm9ybSBtZXRob2Q9UE9TVD4iOw0KJGZlID0gIjwvZm9ybT4iOw0KDQppZihpc3NldCgkX0dFVFsndXNlcnMnXSkpDQogew0KIGlmKCEkdXNlcnM9Z2V0X3VzZXJzKCkpIHsgZWNobyAiPGNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1yZWQ+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTYnXS4iPC9mb250PjwvY2VudGVyPiI7IH0NCiBlbHNlDQogIHsNCiAgZWNobyAnPGNlbnRlcj4nOw0KICBmb3JlYWNoKCR1c2VycyBhcyAkdXNlcikgeyBlY2hvICR1c2VyLiI8YnI+IjsgfQ0KICBlY2hvICc8L2NlbnRlcj4nOw0KICB9DQogZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddLiI+S0VNQkFMSTwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsgZGllKCk7DQogfQ0KDQppZiAoIWVtcHR5KCRfUE9TVFsnZGlyJ10pKSB7IEBjaGRpcigkX1BPU1RbJ2RpciddKTsgfQ0KJGRpciA9IEBnZXRjd2QoKTsNCiR3aW5kb3dzID0gMDsNCiR1bml4ID0gMDsNCmlmKHN0cmxlbigkZGlyKT4xICYmICRkaXJbMV09PSI6IikgJHdpbmRvd3M9MTsgZWxzZSAkdW5peD0xOw0KaWYoZW1wdHkoJGRpcikpDQogew0KICRvcyA9IGdldGVudignT1MnKTsNCiBpZihlbXB0eSgkb3MpKXsgJG9zID0gcGhwX3VuYW1lKCk7IH0NCiBpZihlbXB0eSgkb3MpKXsgJG9zID0iLSI7ICR1bml4PTE7IH0NCiBlbHNlDQogICAgew0KICAgIGlmKEBlcmVnaSgiXndpbiIsJG9zKSkgeyAkd2luZG93cyA9IDE7IH0NCiAgICBlbHNlIHsgJHVuaXggPSAxOyB9DQogICAgfQ0KIH0NCmlmKCFlbXB0eSgkX1BPU1RbJ3NfZGlyJ10pICYmICFlbXB0eSgkX1BPU1RbJ3NfdGV4dCddKSAmJiAhZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXSA9PSAic2VhcmNoX3RleHQiKQ0KICB7DQogICAgZWNobyAkaGVhZDsNCiAgICBpZighZW1wdHkoJF9QT1NUWydzX21hc2snXSkgJiYgIWVtcHR5KCRfUE9TVFsnbSddKSkgeyAkc3IgPSBuZXcgU2VhcmNoUmVzdWx0KCRfUE9TVFsnc19kaXInXSwkX1BPU1RbJ3NfdGV4dCddLCRfUE9TVFsnc19tYXNrJ10pOyB9DQogICAgZWxzZSB7ICRzciA9IG5ldyBTZWFyY2hSZXN1bHQoJF9QT1NUWydzX2RpciddLCRfUE9TVFsnc190ZXh0J10pOyB9DQogICAgJHNyLT5TZWFyY2hUZXh0KDAsMCk7DQogICAgJHJlcyA9ICRzci0+R2V0UmVzdWx0RmlsZXMoKTsNCiAgICAkZm91bmQgPSAkc3ItPkdldE1hdGNoZXNDb3VudCgpOw0KICAgICR0aXRsZXMgPSAkc3ItPkdldFRpdGxlcygpOw0KICAgICRyID0gIiI7DQogICAgaWYoJGZvdW5kID4gMCkNCiAgICB7DQogICAgICAkciAuPSAiPFRBQkxFIHdpZHRoPTEwMCU+IjsNCiAgICAgIGZvcmVhY2goJHJlcyBhcyAkZmlsZT0+JHYpDQogICAgICB7DQogICAgICAgICRyIC49ICI8VFI+IjsNCiAgICAgICAgJHIgLj0gIjxURCBjb2xzcGFuPTI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Ii53cygzKTsNCiAgICAgICAgJHIgLj0gKCR3aW5kb3dzKT8gc3RyX3JlcGxhY2UoIi8iLCJcXCIsJGZpbGUpIDogJGZpbGU7DQogICAgICAgICRyIC49ICI8L2I+PC9mb250PjwvIFREPiI7DQogICAgICAgICRyIC49ICI8L1RSPiI7DQogICAgICAgIGZvcmVhY2goJHYgYXMgJGE9PiRiKQ0KICAgICAgICB7DQogICAgICAgICAgJHIgLj0gIjxUUj4iOw0KICAgICAgICAgICRyIC49ICI8VEQgYWxpZ249Y2VudGVyPjxCPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPiIuJGEuIjwvZm9udD48L0I+PC9URD4iOw0KICAgICAgICAgICRyIC49ICI8VEQ+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+Ii53cygyKS4kYi4iPC9mb250PjwvVEQ+IjsNCiAgICAgICAgICAkciAuPSAiPC9UUj5cbiI7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgICRyIC49ICI8L1RBQkxFPiI7DQogICAgZWNobyAkcjsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgIGVjaG8gIjxQIGFsaWduPWNlbnRlcj48Qj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1NiddLiI8L0I+PC9mb250PjwvUD4iOw0KICAgIH0NCiAgZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddLiI+S0VNQkFMSTwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsNCiAgZGllKCk7DQogIH0NCmlmKHN0cnBvcyhleCgiZWNobyBhYmNyNTciKSwicjU3IikhPTMpIHsgJHNhZmVfbW9kZSA9IDE7IH0NCiRTRVJWRVJfU09GVFdBUkUgPSBnZXRlbnYoJ1NFUlZFUl9TT0ZUV0FSRScpOw0KaWYoZW1wdHkoJFNFUlZFUl9TT0ZUV0FSRSkpeyAkU0VSVkVSX1NPRlRXQVJFID0gIi0iOyB9DQpmdW5jdGlvbiB3cygkaSkNCnsNCnJldHVybiBAc3RyX3JlcGVhdCgiJm5ic3A7IiwkaSk7DQp9DQpmdW5jdGlvbiBleCgkY2ZlKQ0Kew0KICRyZXMgPSAnJzsNCiBpZiAoIWVtcHR5KCRjZmUpKQ0KIHsNCiAgaWYoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpDQogICB7DQogICAgQGV4ZWMoJGNmZSwkcmVzKTsNCiAgICAkcmVzID0gam9pbigiXG4iLCRyZXMpOw0KICAgfQ0KICBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdzaGVsbF9leGVjJykpDQogICB7DQogICAgJHJlcyA9IEBzaGVsbF9leGVjKCRjZmUpOw0KICAgfQ0KICBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkNCiAgIHsNCiAgICBAb2Jfc3RhcnQoKTsNCiAgICBAc3lzdGVtKCRjZmUpOw0KICAgICRyZXMgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQogICAgQG9iX2VuZF9jbGVhbigpOw0KICAgfQ0KICBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKQ0KICAgew0KICAgIEBvYl9zdGFydCgpOw0KICAgIEBwYXNzdGhydSgkY2ZlKTsNCiAgICAkcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KICAgIEBvYl9lbmRfY2xlYW4oKTsNCiAgIH0NCiB9DQogcmV0dXJuICRyZXM7DQp9DQpmdW5jdGlvbiBnZXRfdXNlcnMoKQ0Kew0KICAkdXNlcnMgPSBhcnJheSgpOw0KICAkcm93cz1maWxlKCcvZXRjL3Bhc3N3ZCcpOw0KICBpZighJHJvd3MpIHJldHVybiAwOw0KICBmb3JlYWNoICgkcm93cyBhcyAkc3RyaW5nKQ0KICAgew0KICAgJHVzZXIgPSBAZXhwbG9kZSgiOiIsJHN0cmluZyk7DQogICBpZihzdWJzdHIoJHN0cmluZywwLDEpIT0nIycpIGFycmF5X3B1c2goJHVzZXJzLCR1c2VyWzBdKTsNCiAgIH0NCiAgcmV0dXJuICR1c2VyczsNCn0NCmZ1bmN0aW9uIHdlKCRpKQ0Kew0KaWYoJEdMT0JBTFNbJ2xhbmd1YWdlJ109PSJydSIpeyAkdGV4dCA9ICcnOyB9DQplbHNlIHsgJHRleHQgPSAiWy1dIEVSUk9SISBUaWRhayBiaXNhIG1lbnVsaXMgZmlsZSAiOyB9DQplY2hvICI8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0wIGNlbGxzcGFjaW5nPTA+PHRyPjx0ZCBiZ2NvbG9yPSNjY2NjY2M+PGZvbnQgY29sb3I9cmVkIGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPiIuJHRleHQuJGkuIjwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+IjsNCnJldHVybiBudWxsOw0KfQ0KZnVuY3Rpb24gcmUoJGkpDQp7DQppZigkR0xPQkFMU1snbGFuZ3VhZ2UnXT09InJ1Iil7ICR0ZXh0ID0gJyc7IH0NCmVsc2UgeyAkdGV4dCA9ICJbLV0gRVJST1IhIFRpZGFrIGJpc2EgbWVtYmFjYSBmaWxlICI7IH0NCmVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSMwMDAwMDA+PHRyPjx0ZCBiZ2NvbG9yPSNjY2NjY2M+PGZvbnQgY29sb3I9cmVkIGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPiIuJHRleHQuJGkuIjwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+IjsNCnJldHVybiBudWxsOw0KfQ0KZnVuY3Rpb24gY2UoJGkpDQp7DQppZigkR0xPQkFMU1snbGFuZ3VhZ2UnXT09InJ1Iil7ICR0ZXh0ID0gIiI7IH0NCmVsc2UgeyAkdGV4dCA9ICJUaWRhayBiaXNhIG1lbWJ1YXQgIjsgfQ0KZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9IzAwMDAwMD48dHI+PHRkIGJnY29sb3I9I2NjY2NjYz48Zm9udCBjb2xvcj1yZWQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Ii4kdGV4dC4kaS4iPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+PC90YWJsZT4iOw0KcmV0dXJuIG51bGw7DQp9DQpmdW5jdGlvbiBmZSgkbCwkbikNCnsNCiR0ZXh0WydydSddICA9IGFycmF5KCcnLCcnLCcnKTsNCiR0ZXh0WydlbmcnXSA9IGFycmF5KCdLb25la3NpIGtlIGZ0cCBzZXJ2ZXIgZ2FnYWwnLCdMb2dpbiBrZSBmdHAgc2VydmVyIGdhZ2FsJywnVGlkYWsgYmlzYSBtZW5ndWJhaCBkaXIgZGkgZnRwIHNlcnZlcicpOw0KZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9IzAwMDAwMD48dHI+PHRkIGJnY29sb3I9I2NjY2NjYz48Zm9udCBjb2xvcj1yZWQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Ii4kdGV4dFskbF1bJG5dLiI8L2I+PC9kaXY+PC9mb250PjwvdGQ+PC90cj48L3RhYmxlPiI7DQpyZXR1cm4gbnVsbDsNCn0NCmZ1bmN0aW9uIG1yKCRsLCRuKQ0Kew0KJHRleHRbJ3J1J10gID0gYXJyYXkoJycpOw0KJHRleHRbJ2VuZyddID0gYXJyYXkoJ1RpZGFrIGJpc2EgbWVuZ2lyaW0gZW1haWwnLCdFbWFpbCB0ZXJraXJpbScpOw0KZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9IzAwMDAwMD48dHI+PHRkIGJnY29sb3I9I2NjY2NjYz48Zm9udCBjb2xvcj1yZWQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Ii4kdGV4dFskbF1bJG5dLiI8L2I+PC9kaXY+PC9mb250PjwvdGQ+PC90cj48L3RhYmxlPiI7DQpyZXR1cm4gbnVsbDsNCn0NCmZ1bmN0aW9uIHBlcm1zKCRtb2RlKQ0Kew0KaWYgKCRHTE9CQUxTWyd3aW5kb3dzJ10pIHJldHVybiAwOw0KaWYoICRtb2RlICYgMHgxMDAwICkgeyAkdHlwZT0ncCc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHgyMDAwICkgeyAkdHlwZT0nYyc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHg0MDAwICkgeyAkdHlwZT0nZCc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHg2MDAwICkgeyAkdHlwZT0nYic7IH0NCmVsc2UgaWYoICRtb2RlICYgMHg4MDAwICkgeyAkdHlwZT0nLSc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHhBMDAwICkgeyAkdHlwZT0nbCc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHhDMDAwICkgeyAkdHlwZT0ncyc7IH0NCmVsc2UgJHR5cGU9J3UnOw0KJG93bmVyWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDQwMCkgPyAncicgOiAnLSc7DQokb3duZXJbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDIwMCkgPyAndycgOiAnLSc7DQokb3duZXJbImV4ZWN1dGUiXSA9ICgkbW9kZSAmIDAwMTAwKSA/ICd4JyA6ICctJzsNCiRncm91cFsicmVhZCJdID0gKCRtb2RlICYgMDAwNDApID8gJ3InIDogJy0nOw0KJGdyb3VwWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAwMjApID8gJ3cnIDogJy0nOw0KJGdyb3VwWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDAxMCkgPyAneCcgOiAnLSc7DQokd29ybGRbInJlYWQiXSA9ICgkbW9kZSAmIDAwMDA0KSA/ICdyJyA6ICctJzsNCiR3b3JsZFsid3JpdGUiXSA9ICgkbW9kZSAmIDAwMDAyKSA/ICd3JyA6ICctJzsNCiR3b3JsZFsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAwMDEpID8gJ3gnIDogJy0nOw0KaWYoICRtb2RlICYgMHg4MDAgKSAkb3duZXJbImV4ZWN1dGUiXSA9ICgkb3duZXJbJ2V4ZWN1dGUnXT09J3gnKSA/ICdzJyA6ICdTJzsNCmlmKCAkbW9kZSAmIDB4NDAwICkgJGdyb3VwWyJleGVjdXRlIl0gPSAoJGdyb3VwWydleGVjdXRlJ109PSd4JykgPyAncycgOiAnUyc7DQppZiggJG1vZGUgJiAweDIwMCApICR3b3JsZFsiZXhlY3V0ZSJdID0gKCR3b3JsZFsnZXhlY3V0ZSddPT0neCcpID8gJ3QnIDogJ1QnOw0KJHM9c3ByaW50ZigiJTFzIiwgJHR5cGUpOw0KJHMuPXNwcmludGYoIiUxcyUxcyUxcyIsICRvd25lclsncmVhZCddLCAkb3duZXJbJ3dyaXRlJ10sICRvd25lclsnZXhlY3V0ZSddKTsNCiRzLj1zcHJpbnRmKCIlMXMlMXMlMXMiLCAkZ3JvdXBbJ3JlYWQnXSwgJGdyb3VwWyd3cml0ZSddLCAkZ3JvdXBbJ2V4ZWN1dGUnXSk7DQokcy49c3ByaW50ZigiJTFzJTFzJTFzIiwgJHdvcmxkWydyZWFkJ10sICR3b3JsZFsnd3JpdGUnXSwgJHdvcmxkWydleGVjdXRlJ10pOw0KcmV0dXJuIHRyaW0oJHMpOw0KfQ0KZnVuY3Rpb24gaW4oJHR5cGUsJG5hbWUsJHNpemUsJHZhbHVlKQ0Kew0KICRyZXQgPSAiPGlucHV0IHR5cGU9Ii4kdHlwZS4iIG5hbWU9Ii4kbmFtZS4iICI7DQogaWYoJHNpemUgIT0gMCkgeyAkcmV0IC49ICJzaXplPSIuJHNpemUuIiAiOyB9DQogJHJldCAuPSAidmFsdWU9XCIiLiR2YWx1ZS4iXCI+IjsNCiByZXR1cm4gJHJldDsNCn0NCmZ1bmN0aW9uIHdoaWNoKCRwcikNCnsNCiRwYXRoID0gZXgoIndoaWNoICRwciIpOw0KaWYoIWVtcHR5KCRwYXRoKSkgeyByZXR1cm4gJHBhdGg7IH0gZWxzZSB7IHJldHVybiAkcHI7IH0NCn0NCmZ1bmN0aW9uIGNmKCRmbmFtZSwkdGV4dCkNCnsNCiAkd19maWxlPUBmb3BlbigkZm5hbWUsInciKSBvciB3ZSgkZm5hbWUpOw0KIGlmKCR3X2ZpbGUpDQogew0KIEBmcHV0cygkd19maWxlLEBiYXNlNjRfZGVjb2RlKCR0ZXh0KSk7DQogQGZjbG9zZSgkd19maWxlKTsNCiB9DQp9DQpmdW5jdGlvbiBzcigkbCwkdDEsJHQyKQ0KIHsNCiByZXR1cm4gIjx0ciBjbGFzcz10cjE+PHRkIGNsYXNzPXRkMSB3aWR0aD0iLiRsLiIlIGFsaWduPXJpZ2h0PiIuJHQxLiI8L3RkPjx0ZCBjbGFzcz10ZDEgYWxpZ249bGVmdD4iLiR0Mi4iPC90ZD48L3RyPiI7DQogfQ0KaWYgKCFAZnVuY3Rpb25fZXhpc3RzKCJ2aWV3X3NpemUiKSkNCnsNCmZ1bmN0aW9uIHZpZXdfc2l6ZSgkc2l6ZSkNCnsNCiBpZigkc2l6ZSA+PSAxMDczNzQxODI0KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDczNzQxODI0ICogMTAwKSAvIDEwMCAuICIgR0IiO30NCiBlbHNlaWYoJHNpemUgPj0gMTA0ODU3NikgeyRzaXplID0gQHJvdW5kKCRzaXplIC8gMTA0ODU3NiAqIDEwMCkgLyAxMDAgLiAiIE1CIjt9DQogZWxzZWlmKCRzaXplID49IDEwMjQpIHskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwMjQgKiAxMDApIC8gMTAwIC4gIiBLQiI7fQ0KIGVsc2UgeyRzaXplID0gJHNpemUgLiAiIEIiO30NCiByZXR1cm4gJHNpemU7DQp9DQp9DQogIGZ1bmN0aW9uIERpckZpbGVzUigkZGlyLCR0eXBlcz0nJykNCiAgew0KICAgICRmaWxlcyA9IEFycmF5KCk7DQogICAgaWYoKCRoYW5kbGUgPSBAb3BlbmRpcigkZGlyKSkpDQogICAgew0KICAgICAgd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSBAcmVhZGRpcigkaGFuZGxlKSkpDQogICAgICB7DQogICAgICAgIGlmICgkZmlsZSAhPSAiLiIgJiYgJGZpbGUgIT0gIi4uIikNCiAgICAgICAgew0KICAgICAgICAgIGlmKEBpc19kaXIoJGRpci4iLyIuJGZpbGUpKQ0KICAgICAgICAgICAgJGZpbGVzID0gQGFycmF5X21lcmdlKCRmaWxlcyxEaXJGaWxlc1IoJGRpci4iLyIuJGZpbGUsJHR5cGVzKSk7DQogICAgICAgICAgZWxzZQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgICRwb3MgPSBAc3RycnBvcygkZmlsZSwiLiIpOw0KICAgICAgICAgICAgJGV4dCA9IEBzdWJzdHIoJGZpbGUsJHBvcyxAc3RybGVuKCRmaWxlKS0kcG9zKTsNCiAgICAgICAgICAgIGlmKCR0eXBlcykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgaWYoQGluX2FycmF5KCRleHQsZXhwbG9kZSgnOycsJHR5cGVzKSkpDQogICAgICAgICAgICAgICAgJGZpbGVzW10gPSAkZGlyLiIvIi4kZmlsZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgJGZpbGVzW10gPSAkZGlyLiIvIi4kZmlsZTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIEBjbG9zZWRpcigkaGFuZGxlKTsNCiAgICB9DQogICAgcmV0dXJuICRmaWxlczsNCiAgfQ0KICBjbGFzcyBTZWFyY2hSZXN1bHQNCiAgew0KICAgIHZhciAkdGV4dDsNCiAgICB2YXIgJEZpbGVzVG9TZWFyY2g7DQogICAgdmFyICRSZXN1bHRGaWxlczsNCiAgICB2YXIgJEZpbGVzVG90YWw7DQogICAgdmFyICRNYXRjaGVzQ291bnQ7DQogICAgdmFyICRGaWxlTWF0c2NoZXNDb3VudDsNCiAgICB2YXIgJFRpbWVTdGFydDsNCiAgICB2YXIgJFRpbWVUb3RhbDsNCiAgICB2YXIgJHRpdGxlczsNCiAgICBmdW5jdGlvbiBTZWFyY2hSZXN1bHQoJGRpciwkdGV4dCwkZmlsdGVyPScnKQ0KICAgIHsNCiAgICAgICRkaXJzID0gQGV4cGxvZGUoIjsiLCRkaXIpOw0KICAgICAgJHRoaXMtPkZpbGVzVG9TZWFyY2ggPSBBcnJheSgpOw0KICAgICAgZm9yKCRhPTA7JGE8Y291bnQoJGRpcnMpOyRhKyspDQogICAgICAgICR0aGlzLT5GaWxlc1RvU2VhcmNoID0gQGFycmF5X21lcmdlKCR0aGlzLT5GaWxlc1RvU2VhcmNoLERpckZpbGVzUigkZGlyc1skYV0sJGZpbHRlcikpOw0KICAgICAgJHRoaXMtPnRleHQgPSAkdGV4dDsNCiAgICAgICR0aGlzLT5GaWxlc1RvdGFsID0gQGNvdW50KCR0aGlzLT5GaWxlc1RvU2VhcmNoKTsNCiAgICAgICR0aGlzLT5UaW1lU3RhcnQgPSBnZXRtaWNyb3RpbWUoKTsNCiAgICAgICR0aGlzLT5NYXRjaGVzQ291bnQgPSAwOw0KICAgICAgJHRoaXMtPlJlc3VsdEZpbGVzID0gQXJyYXkoKTsNCiAgICAgICR0aGlzLT5GaWxlTWF0Y2hlc0NvdW50ID0gQXJyYXkoKTsNCiAgICAgICR0aGlzLT50aXRsZXMgPSBBcnJheSgpOw0KICAgIH0NCiAgICBmdW5jdGlvbiBHZXRGaWxlc1RvdGFsKCkgeyByZXR1cm4gJHRoaXMtPkZpbGVzVG90YWw7IH0NCiAgICBmdW5jdGlvbiBHZXRUaXRsZXMoKSB7IHJldHVybiAkdGhpcy0+dGl0bGVzOyB9DQogICAgZnVuY3Rpb24gR2V0VGltZVRvdGFsKCkgeyByZXR1cm4gJHRoaXMtPlRpbWVUb3RhbDsgfQ0KICAgIGZ1bmN0aW9uIEdldE1hdGNoZXNDb3VudCgpIHsgcmV0dXJuICR0aGlzLT5NYXRjaGVzQ291bnQ7IH0NCiAgICBmdW5jdGlvbiBHZXRGaWxlTWF0Y2hlc0NvdW50KCkgeyByZXR1cm4gJHRoaXMtPkZpbGVNYXRjaGVzQ291bnQ7IH0NCiAgICBmdW5jdGlvbiBHZXRSZXN1bHRGaWxlcygpIHsgcmV0dXJuICR0aGlzLT5SZXN1bHRGaWxlczsgfQ0KICAgIGZ1bmN0aW9uIFNlYXJjaFRleHQoJHBocmFzZT0wLCRjYXNlPTApIHsNCiAgICAkcXEgPSBAZXhwbG9kZSgnICcsJHRoaXMtPnRleHQpOw0KICAgICRkZWxpbSA9ICd8JzsNCiAgICAgIGlmKCRwaHJhc2UpDQogICAgICAgIGZvcmVhY2goJHFxIGFzICRrPT4kdikNCiAgICAgICAgICAkcXFbJGtdID0gJ1xiJy4kdi4nXGInOw0KICAgICAgJHdvcmRzID0gJygnLkBpbXBsb2RlKCRkZWxpbSwkcXEpLicpJzsNCiAgICAgICRwYXR0ZXJuID0gIi8iLiR3b3Jkcy4iLyI7DQogICAgICBpZighJGNhc2UpDQogICAgICAgICRwYXR0ZXJuIC49ICdpJzsNCiAgICAgIGZvcmVhY2goJHRoaXMtPkZpbGVzVG9TZWFyY2ggYXMgJGs9PiRmaWxlbmFtZSkNCiAgICAgIHsNCiAgICAgICAgJHRoaXMtPkZpbGVNYXRjaGVzQ291bnRbJGZpbGVuYW1lXSA9IDA7DQogICAgICAgICRGaWxlU3RyaW5ncyA9IEBmaWxlKCRmaWxlbmFtZSkgb3IgQG5leHQ7DQogICAgICAgIGZvcigkYT0wOyRhPEBjb3VudCgkRmlsZVN0cmluZ3MpOyRhKyspDQogICAgICAgIHsNCiAgICAgICAgICAkY291bnQgPSAwOw0KICAgICAgICAgICRDdXJTdHJpbmcgPSAkRmlsZVN0cmluZ3NbJGFdOw0KICAgICAgICAgICRDdXJTdHJpbmcgPSBAVHJpbSgkQ3VyU3RyaW5nKTsNCiAgICAgICAgICAkQ3VyU3RyaW5nID0gQHN0cmlwX3RhZ3MoJEN1clN0cmluZyk7DQogICAgICAgICAgJGFhID0gJyc7DQogICAgICAgICAgaWYoKCRjb3VudCA9IEBwcmVnX21hdGNoX2FsbCgkcGF0dGVybiwkQ3VyU3RyaW5nLCRhYSkpKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgICRDdXJTdHJpbmcgPSBAcHJlZ19yZXBsYWNlKCRwYXR0ZXJuLCI8U1BBTiBzdHlsZT0nY29sb3I6ICM5OTAwMDA7Jz48Yj5cXDE8L2I+PC9TUEFOPiIsJEN1clN0cmluZyk7DQogICAgICAgICAgICAkdGhpcy0+UmVzdWx0RmlsZXNbJGZpbGVuYW1lXVskYSsxXSA9ICRDdXJTdHJpbmc7DQogICAgICAgICAgICAkdGhpcy0+TWF0Y2hlc0NvdW50ICs9ICRjb3VudDsNCiAgICAgICAgICAgICR0aGlzLT5GaWxlTWF0Y2hlc0NvdW50WyRmaWxlbmFtZV0gKz0gJGNvdW50Ow0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgJHRoaXMtPlRpbWVUb3RhbCA9IEByb3VuZChnZXRtaWNyb3RpbWUoKSAtICR0aGlzLT5UaW1lU3RhcnQsNCk7DQogICAgfQ0KICB9DQogIGZ1bmN0aW9uIGdldG1pY3JvdGltZSgpDQogIHsNCiAgICBsaXN0KCR1c2VjLCRzZWMpID0gQGV4cGxvZGUoIiAiLEBtaWNyb3RpbWUoKSk7DQogICAgcmV0dXJuICgoZmxvYXQpJHVzZWMgKyAoZmxvYXQpJHNlYyk7DQogIH0NCiRwb3J0X2JpbmRfYmRfYz0iSTJsdVkyeDFaR1VnUEhOMFpHbHZMbWcrRFFvamFXNWpiSFZrWlNBOGMzUnlhVzVuTG1nK0RRb2phVzVqYkhWa1pTQThjM2x6TDNSNWNHVnpMbWcrRFFvamFXNWpiSFZrWlMNCkE4YzNsekwzTnZZMnRsZEM1b1BnMEtJMmx1WTJ4MVpHVWdQRzVsZEdsdVpYUXZhVzR1YUQ0TkNpTnBibU5zZFdSbElEeGxjbkp1Ynk1b1BnMEthVzUwSUcxaGFXNG9ZWEpuWXl4aGNtZDJLUTBLYVc1MEkNCkdGeVoyTTdEUXBqYUdGeUlDb3FZWEpuZGpzTkNuc2dJQTBLSUdsdWRDQnpiMk5yWm1Rc0lHNWxkMlprT3cwS0lHTm9ZWElnWW5WbVd6TXdYVHNOQ2lCemRISjFZM1FnYzI5amEyRmtaSEpmYVc0Z2NtVnQNCmIzUmxPdzBLSUdsbUtHWnZjbXNvS1NBOVBTQXdLU0I3SUEwS0lISmxiVzkwWlM1emFXNWZabUZ0YVd4NUlEMGdRVVpmU1U1RlZEc05DaUJ5WlcxdmRHVXVjMmx1WDNCdmNuUWdQU0JvZEc5dWN5aGhkRzkNCnBLR0Z5WjNaYk1WMHBLVHNOQ2lCeVpXMXZkR1V1YzJsdVgyRmtaSEl1YzE5aFpHUnlJRDBnYUhSdmJtd29TVTVCUkVSU1gwRk9XU2s3SUEwS0lITnZZMnRtWkNBOUlITnZZMnRsZENoQlJsOUpUa1ZVTEYNCk5QUTB0ZlUxUlNSVUZOTERBcE93MEtJR2xtS0NGemIyTnJabVFwSUhCbGNuSnZjaWdpYzI5amEyVjBJR1Z5Y205eUlpazdEUW9nWW1sdVpDaHpiMk5yWm1Rc0lDaHpkSEoxWTNRZ2MyOWphMkZrWkhJZ0sNCmlrbWNtVnRiM1JsTENBd2VERXdLVHNOQ2lCc2FYTjBaVzRvYzI5amEyWmtMQ0ExS1RzTkNpQjNhR2xzWlNneEtRMEtJQ0I3RFFvZ0lDQnVaWGRtWkQxaFkyTmxjSFFvYzI5amEyWmtMREFzTUNrN0RRb2cNCklDQmtkWEF5S0c1bGQyWmtMREFwT3cwS0lDQWdaSFZ3TWlodVpYZG1aQ3d4S1RzTkNpQWdJR1IxY0RJb2JtVjNabVFzTWlrN0RRb2dJQ0IzY21sMFpTaHVaWGRtWkN3aVVHRnpjM2R2Y21RNklpd3hNQ2sNCjdEUW9nSUNCeVpXRmtLRzVsZDJaa0xHSjFaaXh6YVhwbGIyWW9ZblZtS1NrN0RRb2dJQ0JwWmlBb0lXTm9jR0Z6Y3loaGNtZDJXekpkTEdKMVppa3BEUW9nSUNCemVYTjBaVzBvSW1WamFHOGdkMlZzWTINCjl0WlNCMGJ5QnlOVGNnYzJobGJHd2dKaVlnTDJKcGJpOWlZWE5vSUMxcElpazdEUW9nSUNCbGJITmxEUW9nSUNCbWNISnBiblJtS0hOMFpHVnljaXdpVTI5eWNua2lLVHNOQ2lBZ0lHTnNiM05sS0c1bGQNCjJaa0tUc05DaUFnZlEwS0lIME5DbjBOQ21sdWRDQmphSEJoYzNNb1kyaGhjaUFxWW1GelpTd2dZMmhoY2lBcVpXNTBaWEpsWkNrZ2V3MEthVzUwSUdrN0RRcG1iM0lvYVQwd08yazhjM1J5YkdWdUtHVnUNCmRHVnlaV1FwTzJrckt5a2dEUXA3RFFwcFppaGxiblJsY21Wa1cybGRJRDA5SUNkY2JpY3BEUXBsYm5SbGNtVmtXMmxkSUQwZ0oxd3dKenNnRFFwcFppaGxiblJsY21Wa1cybGRJRDA5SUNkY2NpY3BEUXANCmxiblJsY21Wa1cybGRJRDBnSjF3d0p6c05DbjBOQ21sbUlDZ2hjM1J5WTIxd0tHSmhjMlVzWlc1MFpYSmxaQ2twRFFweVpYUjFjbTRnTURzTkNuMD0iOw0KJHBvcnRfYmluZF9iZF9wbD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUW9rVTBoRlRFdzlJaTlpYVc0dlltRnphQ0F0YVNJN0RRcHBaaUFvUUVGU1IxWWdQQ0F4S1NCN0lHVjRhWFFvTVNrN0lIME5DaVJNUw0KVk5VUlU1ZlVFOVNWRDBrUVZKSFZsc3dYVHNOQ25WelpTQlRiMk5yWlhRN0RRb2tjSEp2ZEc5amIydzlaMlYwY0hKdmRHOWllVzVoYldVb0ozUmpjQ2NwT3cwS2MyOWphMlYwS0ZNc0psQkdYMGxPUlZRcw0KSmxOUFEwdGZVMVJTUlVGTkxDUndjbTkwYjJOdmJDa2dmSHdnWkdsbElDSkRZVzUwSUdOeVpXRjBaU0J6YjJOclpYUmNiaUk3RFFwelpYUnpiMk5yYjNCMEtGTXNVMDlNWDFOUFEwdEZWQ3hUVDE5U1JWVg0KVFJVRkVSRklzTVNrN0RRcGlhVzVrS0ZNc2MyOWphMkZrWkhKZmFXNG9KRXhKVTFSRlRsOVFUMUpVTEVsT1FVUkVVbDlCVGxrcEtTQjhmQ0JrYVdVZ0lrTmhiblFnYjNCbGJpQndiM0owWEc0aU93MEtiRw0KbHpkR1Z1S0ZNc015a2dmSHdnWkdsbElDSkRZVzUwSUd4cGMzUmxiaUJ3YjNKMFhHNGlPdzBLZDJocGJHVW9NU2tOQ25zTkNtRmpZMlZ3ZENoRFQwNU9MRk1wT3cwS2FXWW9JU2drY0dsa1BXWnZjbXNwSw0KUTBLZXcwS1pHbGxJQ0pEWVc1dWIzUWdabTl5YXlJZ2FXWWdLQ0ZrWldacGJtVmtJQ1J3YVdRcE93MEtiM0JsYmlCVFZFUkpUaXdpUENaRFQwNU9JanNOQ205d1pXNGdVMVJFVDFWVUxDSStKa05QVGs0aQ0KT3cwS2IzQmxiaUJUVkVSRlVsSXNJajRtUTA5T1RpSTdEUXBsZUdWaklDUlRTRVZNVENCOGZDQmthV1VnY0hKcGJuUWdRMDlPVGlBaVEyRnVkQ0JsZUdWamRYUmxJQ1JUU0VWTVRGeHVJanNOQ21Oc2IzTg0KbElFTlBUazQ3RFFwbGVHbDBJREE3RFFwOURRcDkiOw0KJGJhY2tfY29ubmVjdD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1UyOWphMlYwT3cwS0pHTnRaRDBnSW14NWJuZ2lPdzBLSkhONWMzUmxiVDBnSjJWamFHOGdJbUIxYm1GdFpTQXRZV0FpTzJWag0KYUc4Z0ltQnBaR0FpT3k5aWFXNHZjMmduT3cwS0pEQTlKR050WkRzTkNpUjBZWEpuWlhROUpFRlNSMVpiTUYwN0RRb2tjRzl5ZEQwa1FWSkhWbHN4WFRzTkNpUnBZV1JrY2oxcGJtVjBYMkYwYjI0b0pIUg0KaGNtZGxkQ2tnZkh3Z1pHbGxLQ0pGY25KdmNqb2dKQ0ZjYmlJcE93MEtKSEJoWkdSeVBYTnZZMnRoWkdSeVgybHVLQ1J3YjNKMExDQWthV0ZrWkhJcElIeDhJR1JwWlNnaVJYSnliM0k2SUNRaFhHNGlLVA0Kc05DaVJ3Y205MGJ6MW5aWFJ3Y205MGIySjVibUZ0WlNnbmRHTndKeWs3RFFwemIyTnJaWFFvVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1NCOGZDQmthV1VvSQ0Ka1Z5Y205eU9pQWtJVnh1SWlrN0RRcGpiMjV1WldOMEtGTlBRMHRGVkN3Z0pIQmhaR1J5S1NCOGZDQmthV1VvSWtWeWNtOXlPaUFrSVZ4dUlpazdEUXB2Y0dWdUtGTlVSRWxPTENBaVBpWlRUME5MUlZRaQ0KS1RzTkNtOXdaVzRvVTFSRVQxVlVMQ0FpUGlaVFQwTkxSVlFpS1RzTkNtOXdaVzRvVTFSRVJWSlNMQ0FpUGlaVFQwTkxSVlFpS1RzTkNuTjVjM1JsYlNna2MzbHpkR1Z0S1RzTkNtTnNiM05sS0ZOVVJFbA0KT0tUc05DbU5zYjNObEtGTlVSRTlWVkNrN0RRcGpiRzl6WlNoVFZFUkZVbElwT3c9PSI7DQokYmFja19jb25uZWN0X2M9IkkybHVZMngxWkdVZ1BITjBaR2x2TG1nK0RRb2phVzVqYkhWa1pTQThjM2x6TDNOdlkydGxkQzVvUGcwS0kybHVZMngxWkdVZ1BHNWxkR2x1WlhRdmFXNHVhRDROQ21sdWRDDQpCdFlXbHVLR2x1ZENCaGNtZGpMQ0JqYUdGeUlDcGhjbWQyVzEwcERRcDdEUW9nYVc1MElHWmtPdzBLSUhOMGNuVmpkQ0J6YjJOcllXUmtjbDlwYmlCemFXNDdEUW9nWTJoaGNpQnliWE5iTWpGZFBTSnliDQpTQXRaaUFpT3lBTkNpQmtZV1Z0YjI0b01Td3dLVHNOQ2lCemFXNHVjMmx1WDJaaGJXbHNlU0E5SUVGR1gwbE9SVlE3RFFvZ2MybHVMbk5wYmw5d2IzSjBJRDBnYUhSdmJuTW9ZWFJ2YVNoaGNtZDJXekpkDQpLU2s3RFFvZ2MybHVMbk5wYmw5aFpHUnlMbk5mWVdSa2NpQTlJR2x1WlhSZllXUmtjaWhoY21kMld6RmRLVHNnRFFvZ1lucGxjbThvWVhKbmRsc3hYU3h6ZEhKc1pXNG9ZWEpuZGxzeFhTa3JNU3R6ZEhKDQpzWlc0b1lYSm5kbHN5WFNrcE95QU5DaUJtWkNBOUlITnZZMnRsZENoQlJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dTVkJRVWs5VVQxOVVRMUFwSURzZ0RRb2dhV1lnS0NoamIyNXVaV04wS0daa0xDDQpBb2MzUnlkV04wSUhOdlkydGhaR1J5SUNvcElDWnphVzRzSUhOcGVtVnZaaWh6ZEhKMVkzUWdjMjlqYTJGa1pISXBLU2s4TUNrZ2V3MEtJQ0FnY0dWeWNtOXlLQ0piTFYwZ1kyOXVibVZqZENncElpazdEDQpRb2dJQ0JsZUdsMEtEQXBPdzBLSUgwTkNpQnpkSEpqWVhRb2NtMXpMQ0JoY21kMld6QmRLVHNOQ2lCemVYTjBaVzBvY20xektUc2dJQTBLSUdSMWNESW9abVFzSURBcE93MEtJR1IxY0RJb1ptUXNJREVwDQpPdzBLSUdSMWNESW9abVFzSURJcE93MEtJR1Y0WldOc0tDSXZZbWx1TDNOb0lpd2ljMmdnTFdraUxDQk9WVXhNS1RzTkNpQmpiRzl6WlNobVpDazdJQTBLZlE9PSI7DQokZGF0YXBpcGVfYz0iSTJsdVkyeDFaR1VnUEhONWN5OTBlWEJsY3k1b1BnMEtJMmx1WTJ4MVpHVWdQSE41Y3k5emIyTnJaWFF1YUQ0TkNpTnBibU5zZFdSbElEeHplWE12ZDJGcGRDNW9QZzBLSTJsdVkyDQp4MVpHVWdQRzVsZEdsdVpYUXZhVzR1YUQ0TkNpTnBibU5zZFdSbElEeHpkR1JwYnk1b1BnMEtJMmx1WTJ4MVpHVWdQSE4wWkd4cFlpNW9QZzBLSTJsdVkyeDFaR1VnUEdWeWNtNXZMbWcrRFFvamFXNWpiDQpIVmtaU0E4ZFc1cGMzUmtMbWcrRFFvamFXNWpiSFZrWlNBOGJtVjBaR0l1YUQ0TkNpTnBibU5zZFdSbElEeHNhVzUxZUM5MGFXMWxMbWcrRFFvamFXWmtaV1lnVTFSU1JWSlNUMUlOQ21WNGRHVnliaUJqDQphR0Z5SUNwemVYTmZaWEp5YkdsemRGdGRPdzBLWlhoMFpYSnVJR2x1ZENCemVYTmZibVZ5Y2pzTkNtTm9ZWElnS25WdVpHVm1JRDBnSWxWdVpHVm1hVzVsWkNCbGNuSnZjaUk3RFFwamFHRnlJQ3B6ZEhKDQpsY25KdmNpaGxjbkp2Y2lrZ0lBMEthVzUwSUdWeWNtOXlPeUFnRFFwN0lBMEthV1lnS0dWeWNtOXlJRDRnYzNselgyNWxjbklwRFFweVpYUjFjbTRnZFc1a1pXWTdEUXB5WlhSMWNtNGdjM2x6WDJWeWNtDQp4cGMzUmJaWEp5YjNKZE93MEtmUTBLSTJWdVpHbG1EUW9OQ20xaGFXNG9ZWEpuWXl3Z1lYSm5kaWtnSUEwS0lDQnBiblFnWVhKbll6c2dJQTBLSUNCamFHRnlJQ29xWVhKbmRqc2dJQTBLZXlBTkNpQWdhDQpXNTBJR3h6YjJOckxDQmpjMjlqYXl3Z2IzTnZZMnM3RFFvZ0lFWkpURVVnS21ObWFXeGxPdzBLSUNCamFHRnlJR0oxWmxzME1EazJYVHNOQ2lBZ2MzUnlkV04wSUhOdlkydGhaR1J5WDJsdUlHeGhaR1J5DQpMQ0JqWVdSa2Npd2diMkZrWkhJN0RRb2dJR2x1ZENCallXUmtjbXhsYmlBOUlITnBlbVZ2WmloallXUmtjaWs3RFFvZ0lHWmtYM05sZENCbVpITnlMQ0JtWkhObE93MEtJQ0J6ZEhKMVkzUWdhRzl6ZEdWDQp1ZENBcWFEc05DaUFnYzNSeWRXTjBJSE5sY25abGJuUWdLbk03RFFvZ0lHbHVkQ0J1WW5sME93MEtJQ0IxYm5OcFoyNWxaQ0JzYjI1bklHRTdEUW9nSUhWdWMybG5ibVZrSUhOb2IzSjBJRzl3YjNKME93DQowS0RRb2dJR2xtSUNoaGNtZGpJQ0U5SURRcElIc05DaUFnSUNCbWNISnBiblJtS0hOMFpHVnljaXdpVlhOaFoyVTZJQ1Z6SUd4dlkyRnNjRzl5ZENCeVpXMXZkR1Z3YjNKMElISmxiVzkwWldodmMzUmNiDQppSXNZWEpuZGxzd1hTazdEUW9nSUNBZ2NtVjBkWEp1SURNd093MEtJQ0I5RFFvZ0lHRWdQU0JwYm1WMFgyRmtaSElvWVhKbmRsc3pYU2s3RFFvZ0lHbG1JQ2doS0dnZ1BTQm5aWFJvYjNOMFlubHVZVzFsDQpLR0Z5WjNaYk0xMHBLU0FtSmcwS0lDQWdJQ0FnSVNob0lEMGdaMlYwYUc5emRHSjVZV1JrY2lnbVlTd2dOQ3dnUVVaZlNVNUZWQ2twS1NCN0RRb2dJQ0FnY0dWeWNtOXlLR0Z5WjNaYk0xMHBPdzBLSUNBDQpnSUhKbGRIVnliaUF5TlRzTkNpQWdmUTBLSUNCdmNHOXlkQ0E5SUdGMGIyd29ZWEpuZGxzeVhTazdEUW9nSUd4aFpHUnlMbk5wYmw5d2IzSjBJRDBnYUhSdmJuTW9LSFZ1YzJsbmJtVmtJSE5vYjNKMEtTDQpoaGRHOXNLR0Z5WjNaYk1WMHBLU2s3RFFvZ0lHbG1JQ2dvYkhOdlkyc2dQU0J6YjJOclpYUW9VRVpmU1U1RlZDd2dVMDlEUzE5VFZGSkZRVTBzSUVsUVVGSlBWRTlmVkVOUUtTa2dQVDBnTFRFcElIc05DDQppQWdJQ0J3WlhKeWIzSW9Jbk52WTJ0bGRDSXBPdzBLSUNBZ0lISmxkSFZ5YmlBeU1Ec05DaUFnZlEwS0lDQnNZV1JrY2k1emFXNWZabUZ0YVd4NUlEMGdhSFJ2Ym5Nb1FVWmZTVTVGVkNrN0RRb2dJR3hoDQpaR1J5TG5OcGJsOWhaR1J5TG5OZllXUmtjaUE5SUdoMGIyNXNLREFwT3cwS0lDQnBaaUFvWW1sdVpDaHNjMjlqYXl3Z0pteGhaR1J5TENCemFYcGxiMllvYkdGa1pISXBLU2tnZXcwS0lDQWdJSEJsY25KDQp2Y2lnaVltbHVaQ0lwT3cwS0lDQWdJSEpsZEhWeWJpQXlNRHNOQ2lBZ2ZRMEtJQ0JwWmlBb2JHbHpkR1Z1S0d4emIyTnJMQ0F4S1NrZ2V3MEtJQ0FnSUhCbGNuSnZjaWdpYkdsemRHVnVJaWs3RFFvZ0lDDQpBZ2NtVjBkWEp1SURJd093MEtJQ0I5RFFvZ0lHbG1JQ2dvYm1KNWRDQTlJR1p2Y21zb0tTa2dQVDBnTFRFcElIc05DaUFnSUNCd1pYSnliM0lvSW1admNtc2lLVHNOQ2lBZ0lDQnlaWFIxY200Z01q


Admin-Login