Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval(html_entity_decode(stripcslashes((base64_decode("DQpvYl9zdGFydCgpOw0KZXJyb3J..

Decoded Output download

<?php 
 
eval(html_entity_decode(stripcslashes((base64_decode("DQpvYl9zdGFydCgpOw0KZXJyb3JfcmVwb3J0aW5nKEVfRVJST1IgfCBFX1dBUk5JTkcgfCBFX1BBUlNFKTsNCg0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cyhcJiMwMzk7bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nXCYjMDM5OykpIHsNCmZ1bmN0aW9uIG15c3FsX3JlYWxfZXNjYXBlX3N0cmluZygkdmFsdWUpIHsNCnJldHVybiBhZGRzbGFzaGVzKCR2YWx1ZSk7DQp9IA0KfQ0KDQovLy8gbG9hZCBwcm9ncmFtIGZpbGVzDQpyZXF1aXJlKFwmcXVvdDtteXNxbGF1dGgucGhwXCZxdW90Oyk7IC8vbXlzcWwNCnJlcXVpcmUoXCZxdW90O2F1dGguaW5jLnBocFwmcXVvdDspOyAgLy9hdXRoZW50aWZpY2F0aW9uDQpyZXF1aXJlKFwmcXVvdDtoZWFkX2Zvb3QucGhwXCZxdW90Oyk7IC8vIGhlYWRlciBhbmQgZm9vdGVyIGZ1bmN0aW9ucw0KDQovLyBvcGVuIGRhdGFiYXNlIGNvbm5lY3Rpb24NCmRiY29ubmVjdGlvbl9zdGFydCAoJG15c3FsdXNlcm5hbWUsICRteXNxbHBhc3N3b3JkLCAkbXlzcWxkYXRhYmFzZSk7DQovLyBvcGVuIGRhdGFiYXNlIGNvbm5lY3Rpb24NCg0KLy8gTXlzcWwgRGF0YWJhc2UgVmFsdWUgQ2xlYW5lciAtIE1ha2VzIHN1cmUgdmFyaWFibGVzIGFuZCBhcnJheSB2YXJpYWJsZXMgYXJlIHNhZmUgZm9yIHVzZSB3aXRoIE1ZU1FMDQoNCmZvcmVhY2goJF9SRVFVRVNUIGFzICRrZXk9Jmd0OyR2YWx1ZSkgew0KaWYgKGlzc2V0KCRrZXkpKSB7IA0KCWlmIChpc19hcnJheSgkdmFsdWUpKSB7DQoJJHRlbXBfa2V5X25hbWUgPSBcJnF1b3Q7JGtleVwmcXVvdDs7DQoJJHRlbXBfa2V5ID0gYXJyYXkoKTsNCglmb3JlYWNoICgkdmFsdWUgYXMgJGtleTIgPSZndDsgJHZhbGEpIHsNCgkkdGVtcF9rZXlbXSA9IG15c3FsX3JlYWxfZXNjYXBlX3N0cmluZyhzdHJpcF90YWdzKCR2YWxhKSk7IA0KCX0NCgl1bnNldCgkdmFsdWUpOw0KCXVuc2V0ICgka2V5KTsNCgkkJHRlbXBfa2V5X25hbWUgPSAkdGVtcF9rZXk7DQoJdW5zZXQoJHRlbXBfa2V5KTsNCgl9IGVsc2Ugew0KCSQka2V5ID0gbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKHN0cmlwX3RhZ3MoJHZhbHVlKSk7DQoJfQ0KfQ0KfQ0KLy8gTXlzcWwgRGF0YWJhc2UgVmFsdWUgQ2xlYW5lciAtIE1ha2VzIHN1cmUgdmFyaWFibGVzIGFuZCBhcnJheSB2YXJpYWJsZXMgYXJlIHNhZmUgZm9yIHVzZSB3aXRoIE1ZU1FMDQoNCi8vIFNjcmlwdCBhbnkgbm9uLW51bWVyaWMgY2hhcmFjdGVycyBmcm9tIFVJRA0KaWYgKCFlbXB0eSgkdWlkKSkgew0KJHVpZCA9IGVyZWdfcmVwbGFjZShcJnF1b3Q7W14wLTldXCZxdW90OywgXCZxdW90O1wmcXVvdDssICR1aWQpOw0KfQ0KDQovLyBpZiBpbnN0YWxsYXRpb24gcHJvZ3JhbSBmb3VuZCwgdHJhbnNmZXIgdGhlcmUNCmlmIChmaWxlX2V4aXN0cyhcJnF1b3Q7c2V0dXAucGhwXCZxdW90OykpIHsNCnByaW50ICZsdDsmbHQ7Jmx0OyBFTkQNCiZsdDtodG1sJmd0Ow0KJmx0O2hlYWQmZ3Q7DQombHQ7bWV0YSBodHRwLWVxdWl2PVwmcXVvdDtDb250ZW50LUxhbmd1YWdlXCZxdW90OyBjb250ZW50PVwmcXVvdDtlbi11c1wmcXVvdDsmZ3Q7DQombHQ7bWV0YSBodHRwLWVxdWl2PVwmcXVvdDtDb250ZW50LVR5cGVcJnF1b3Q7IGNvbnRlbnQ9XCZxdW90O3RleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTJcJnF1b3Q7Jmd0Ow0KJmx0O3RpdGxlJmd0O1dlXCYjMDM5O3JlIHVwZ3JhZGluZy4uLiB0cnkgeW91ciByZXF1ZXN0IHNob3J0bHkuJmx0Oy90aXRsZSZndDsNCiZsdDsvaGVhZCZndDsNCiZsdDtib2R5Jmd0Ow0KJmx0O3AmZ3Q7JmFtcDtuYnNwOyZsdDsvcCZndDsNCiZsdDtwJmd0OyZhbXA7bmJzcDsmbHQ7L3AmZ3Q7DQombHQ7ZGl2IGFsaWduPVwmcXVvdDtjZW50ZXJcJnF1b3Q7Jmd0Ow0KCSZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzFcJnF1b3Q7IHdpZHRoPVwmcXVvdDs1NSVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDswXCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsgYm9yZGVyY29sb3JsaWdodD1cJnF1b3Q7IzAwMDAwMFwmcXVvdDsmZ3Q7DQoJCSZsdDt0ciZndDsNCgkJCSZsdDt0ZCZndDsmbHQ7YiZndDsmbHQ7Zm9udCBzaXplPVwmcXVvdDs1XCZxdW90OyZndDtXZVwmIzAzOTtyZSBzb3JyeSwgJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsNCgkJCSZsdDtwJmd0OyZsdDtmb250IHNpemU9XCZxdW90OzVcJnF1b3Q7Jmd0OyZsdDtiJmd0O1dlIGFyZSBhcmUgY3VycmVudGx5IHVwZ3JhZGluZyBvciBhZGRpbmcgbmV3IA0KCQkJZmVhdHVyZXMgdG8gb3VyJmx0O2JyJmd0Ow0KCQkJYWQgbWFuYWdlbWVudCBzb2Z0d2FyZS4mbHQ7L2ImZ3Q7Jmx0Oy9mb250Jmd0OyZsdDsvcCZndDsNCgkJCSZsdDtwJmd0OyZsdDtiJmd0OyZsdDtzcGFuIHN0eWxlPVwmcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwXCZxdW90OyZndDtOb3RlOiBBZG1pbmlzdHJhdG9ycywgDQoJCQlyZW1vdmUgdGhlIFNldHVwIFByb2dyYW0gZmlsZSB0byByZW1vdmUgdGhpcyBtZXNzYWdlLiZsdDsvc3BhbiZndDsmbHQ7L2ImZ3Q7Jmx0Oy9wJmd0Ow0KCQkJJmx0O3AmZ3Q7Jmx0O2ZvbnQgc2l6ZT1cJnF1b3Q7NVwmcXVvdDsmZ3Q7Jmx0O2ImZ3Q7UGxlYXNlIHRyeSB5b3VyIHJlcXVlc3QgYWdhaW4gbGF0ZXIuJmx0Oy9iJmd0OyZsdDsvZm9udCZndDsmbHQ7L3RkJmd0Ow0KCQkmbHQ7L3RyJmd0Ow0KCSZsdDsvdGFibGUmZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDsvYm9keSZndDsNCiZsdDsvaHRtbCZndDsNCkVORDsNCmV4aXQ7DQp9DQoNCmdsb2JhbCAkSFRUUF9DT09LSUVfVkFSUzsNCiRIVFRQX0NPT0tJRV9WQVJTW0FEUEVFUFNBVVRIXSA9IChlbXB0eSgkSFRUUF9DT09LSUVfVkFSU1tBRFBFRVBTQVVUSF0pKSA/IFwmcXVvdDskX0NPT0tJRVtBRFBFRVBTQVVUSF1cJnF1b3Q7IDogXCZxdW90OyRIVFRQX0NPT0tJRV9WQVJTW0FEUEVFUFNBVVRIXVwmcXVvdDs7DQokSFRUUF9DT09LSUVfVkFSU1tBRFBFRVBTUFJFRl0gPSAoZW1wdHkoJEhUVFBfQ09PS0lFX1ZBUlNbQURQRUVQU1BSRUZdKSkgPyBcJnF1b3Q7JF9DT09LSUVbQURQRUVQU1BSRUZdXCZxdW90OyA6IFwmcXVvdDskSFRUUF9DT09LSUVfVkFSU1tBRFBFRVBTUFJFRl1cJnF1b3Q7Ow0KJEhUVFBfQ09PS0lFX1ZBUlNbcmVtZW1iZXJfbG9naW5uYW1lXSA9IChlbXB0eSgkSFRUUF9DT09LSUVfVkFSU1tyZW1lbWJlcl9sb2dpbm5hbWVdKSkgPyBcJnF1b3Q7JF9DT09LSUVbcmVtZW1iZXJfbG9naW5uYW1lXVwmcXVvdDsgOiBcJnF1b3Q7JEhUVFBfQ09PS0lFX1ZBUlNbcmVtZW1iZXJfbG9naW5uYW1lXVwmcXVvdDs7DQoNCiRhZHZlcnRpc2VyX25hbWVfY29va2llID0gRkFMU0U7DQoNCmlmICghZW1wdHkoJEhUVFBfQ09PS0lFX1ZBUlNbXCZxdW90O0FEUEVFUFNBVVRIXCZxdW90O10pKSB7DQpsaXN0KCR1aWQsJGNvb2tpZWNhbXBhaWduLCRjb29raWVuYW1lLCRjb29raWVwYXNzLCRsb2dpbnR5cGUpICA9IGV4cGxvZGUoXCYjMDM5OzpcJiMwMzk7LCRIVFRQX0NPT0tJRV9WQVJTW1wmcXVvdDtBRFBFRVBTQVVUSFwmcXVvdDtdKTsgDQppZiAoKCRsb2dpbnR5cGUgIT0gXCZxdW90OzBcJnF1b3Q7KSAmYW1wOyZhbXA7ICghZW1wdHkoJGNvb2tpZWNhbXBhaWduKSkpIHsNCiRjYW1wYWlnbmlkID0gXCZxdW90OyRjb29raWVjYW1wYWlnblwmcXVvdDs7DQp9DQokdWlkID0gbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCR1aWQpOw0KJGNvb2tpZW5hbWUgPSBteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJGNvb2tpZW5hbWUpOw0KJGNvb2tpZXBhc3M9IG15c3FsX3JlYWxfZXNjYXBlX3N0cmluZygkY29va2llcGFzcyk7DQp9DQoNCiRmcm9tX2RhdGUgPSAoKCFlbXB0eSgkZnJvbV95ZWFyKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRmcm9tX21vbnRoKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRmcm9tX2RheSkpKSA/IFwmcXVvdDskZnJvbV95ZWFyXCZxdW90OyAuIFwmcXVvdDstXCZxdW90OyAuIFwmcXVvdDskZnJvbV9tb250aFwmcXVvdDsgLiBcJnF1b3Q7LVwmcXVvdDsgLiBcJnF1b3Q7JGZyb21fZGF5XCZxdW90OyA6IGZhbHNlOw0KJHRvX2RhdGUgPSAoKCFlbXB0eSgkdG9feWVhcikpICZhbXA7JmFtcDsgKCFlbXB0eSgkdG9fbW9udGgpKSAmYW1wOyZhbXA7ICghZW1wdHkoJHRvX2RheSkpKSA/IFwmcXVvdDskdG9feWVhclwmcXVvdDsgLiBcJnF1b3Q7LVwmcXVvdDsgLiBcJnF1b3Q7JHRvX21vbnRoXCZxdW90OyAuIFwmcXVvdDstXCZxdW90OyAuIFwmcXVvdDskdG9fZGF5XCZxdW90OyA6IGZhbHNlOw0KDQovLyBsb2FkIGFwcHJvcHJpYXRlIHByb2dyYW0gZmlsZXMNCmlmICgoJGxvYyA9PSBcJnF1b3Q7dmlld19jYW1wYWlnbl9zdGF0c1wmcXVvdDspIHx8ICgkbG9jID09IFwmcXVvdDt2aWV3X2FkX3N0YXRzXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O3ZpZXdfYWNjb3VudF9zdGF0c1wmcXVvdDspIHx8ICgoJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MVwmcXVvdDspICZhbXA7JmFtcDsgKGVtcHR5KCRsb2MpKSkpIHsNCmluY2x1ZGUoXCZxdW90O3JlcG9ydHMvYXBfc3RhdHMucGhwXCZxdW90Oyk7DQp9IGVsc2VpZiAoKCRsb2MgPT0gXCZxdW90O3BlcmZvcm1fbWFpbnRhaW5hbmNlXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2RlZmluZV9zZXR0aW5nc1wmcXVvdDspIHx8ICgkbG9jID09IFwmcXVvdDttYXNzX3VwZGF0ZV90YXJnZXRfd2VpZ2h0XCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O21haW50YWluX3NwaWRlcl9yb2JvdFwmcXVvdDspKSB7DQppbmNsdWRlKFwmcXVvdDtyZXBvcnRzL2FwX21haW50YWluYW5jZS5waHBcJnF1b3Q7KTsNCn0gZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7cHJldmlvdXNseWRlbGV0ZWRcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7ZXhwaXJhdGlvbl9yZXBvcnRcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7aXBsb2dfcmVwb3J0XCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2VkaXRwYXltZW50XCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2VkaXRfZ2VvdGFyZ2V0aW5nXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2FkdmVydGlzZXJvcmRlcmhpc3RvcnlcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7dmlld19hdWRpdF9sb2dcJnF1b3Q7KSkgew0KaW5jbHVkZSAoXCZxdW90O3JlcG9ydHMvcmVwb3J0Y2xhc3MucGhwXCZxdW90Oyk7DQp9IGVsc2UgeyANCmluY2x1ZGUoXCZxdW90O2FkcGVlcHNfZnVuY3Rpb25zLnBocFwmcXVvdDspOw0KfQ0KLy8gbG9hZCBhcHByb3ByaWF0ZSBwcm9ncmFtIGZpbGVzDQoNCi8vIGdldCBzZXR0aW5ncw0KJGJhbm5lcl91cmwgPSBmYWxzZTsNCiRyZXN1bHQgPSBteXNxbF9xdWVyeShcJnF1b3Q7U0VMRUNUIGEucmVnY29kZSwgYS5iYW5uZXJfdXJsLCBiLmJhbm5lcl91cmwgYmFubmVyX3VybDIsIGEuYWRtaW5fZW1haWwsIGIuYWRtaW5fZW1haWwgQVMgc3ViX2FkbWluX2VtYWlsIEZST00gYGFkcGVlcHNfc2V0dGluZ3NgIGEgTEVGVCBKT0lOIGBhZHBlZXBzX3NldHRpbmdzYCBiIE9OIGIuYWNjbm8gPSBJRihiLmFjY25vID0gXCYjMDM5OyR1aWRcJiMwMzk7LCBcJiMwMzk7JHVpZFwmIzAzOTssIE5VTEwpIFdIRVJFIGEuYWNjbm8gPSBcJiMwMzk7MTAwMDAwXCYjMDM5O1wmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsgDQokcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCk7DQokcmVnX2NvZGUgPSAkcm93W3JlZ2NvZGVdOw0KJHZhbGlkYXRpb25fdXJsID0gJHJvd1tiYW5uZXJfdXJsXTsNCiRiYW5uZXJfdXJsID0gKGVtcHR5KCRyb3dbYmFubmVyX3VybDJdKSkgPyBcJnF1b3Q7JHJvd1tiYW5uZXJfdXJsXVwmcXVvdDsgOiBcJnF1b3Q7JHJvd1tiYW5uZXJfdXJsMl1cJnF1b3Q7Ow0KJHN1Yl9hZG1pbl9lbWFpbCA9IChlbXB0eSgkcm93W3N1Yl9hZG1pbl9lbWFpbF0pKSA/IFwmcXVvdDskcm93W2FkbWluX2VtYWlsXVwmcXVvdDsgOiBcJnF1b3Q7JHJvd1tzdWJfYWRtaW5fZW1haWxdXCZxdW90OzsNCiRhZG1pbl9lbWFpbCA9ICRyb3dbYWRtaW5fZW1haWxdOw0KLy8gZ2V0IHNldHRpbmdzDQoNCi8vLy8vLyBkYXRlIGFuZCB0aW1lIHZhcmlhYmxlcyAvLy8vLy8vLw0KaWYgKGlzc2V0KCRvZmZzZXQpKSB7DQokb2Zmc2V0ID0gNjAgKiAkb2Zmc2V0ICogNjA7DQokdGltZSA9IGdldGRhdGUodGltZSgpICsgJG9mZnNldCk7DQp9IGVsc2Ugew0KJHRpbWUgPSBnZXRkYXRlKHRpbWUoKSk7DQp9DQoNCg0KDQokeWVhciA9ICR0aW1lW3llYXJdOw0KJGRheSA9ICgkdGltZVttZGF5XSAmbHQ7IDEwKSA/IFwmcXVvdDswXCZxdW90OyAuIFwmcXVvdDskdGltZVttZGF5XVwmcXVvdDsgOiBcJnF1b3Q7JHRpbWVbbWRheV1cJnF1b3Q7Ow0KJG1vbnRoID0gKCR0aW1lW21vbl0gJmx0OyAxMCkgPyBcJnF1b3Q7MFwmcXVvdDsgLiBcJnF1b3Q7JHRpbWVbbW9uXVwmcXVvdDsgOiBcJnF1b3Q7JHRpbWVbbW9uXVwmcXVvdDs7DQokdG9kYXkgPSBcJnF1b3Q7JHllYXItJG1vbnRoLSRkYXlcJnF1b3Q7Ow0KDQokcGFyc2VkID0gcGFyc2VfdXJsKFwmcXVvdDskdmFsaWRhdGlvbl91cmxcJnF1b3Q7KTsNCiRwYXJzZWRbaG9zdF0gPSBzdHJfcmVwbGFjZShcJnF1b3Q7d3d3LlwmcXVvdDssIFwmcXVvdDtcJnF1b3Q7LCBcJnF1b3Q7JHBhcnNlZFtob3N0XVwmcXVvdDspOw0KLy8vLy8vIGRhdGUgYW5kIHRpbWUgdmFyaWFibGVzIC8vLy8vLy8vDQoNCg0KDQppZiAoKCFlbXB0eSgkY29va2llbmFtZSkpICZhbXA7JmFtcDsgKCFlbXB0eSgkY29va2llcGFzcykpICZhbXA7JmFtcDsgKCEoJGxvYykgJmFtcDsmYW1wOyAoJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MFwmcXVvdDsgfHwgJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MlwmcXVvdDspKSB8fCAoJGxvYyA9PSBcJnF1b3Q7Y2FtcGFpZ252aWV3XCZxdW90OykpIHsgDQoNCglpZiAoaXNzZXQoJHNlYXJjaF9lbmFibGVkKSkgew0KCSRhZHZlcnRpc2VyX25hbWVfY29va2llID0gc3RyaXBzbGFzaGVzKFwmcXVvdDskYWR2ZXJ0aXNlcl9uYW1lXCZxdW90Oyk7DQoJc2V0Y29va2llKFwmcXVvdDtBRFBFRVBTUFJFRlwmcXVvdDssIFwmcXVvdDskYnl6b25lfCRieXNpemV8JGFkdmVydGlzZXJfbmFtZV9jb29raWV8JHNlYXJjaGJ5Y3JlYXRpb258JHNlYXJjaGJ5Y3JlYXRpb25fZGF5c3wkc2VhcmNoYnlzdGF0dXN8JHNlYXJjaGJ5YWRzXCZxdW90OywgMCwgXCZxdW90Oy9cJnF1b3Q7LCBcJnF1b3Q7XCZxdW90OywgMCk7IA0KCX0NCgllbHNlaWYgKCghaXNzZXQoJHNlYXJjaF9lbmFibGVkKSkgJmFtcDsmYW1wOyAoaXNzZXQoJEhUVFBfQ09PS0lFX1ZBUlNbXCZxdW90O0FEUEVFUFNQUkVGXCZxdW90O10pKSkgew0KCWxpc3QoJGJ5em9uZSwkYnlzaXplLCRhZHZlcnRpc2VyX25hbWUsJHNlYXJjaGJ5Y3JlYXRpb24sJHNlYXJjaGJ5Y3JlYXRpb25fZGF5cywkc2VhcmNoYnlzdGF0dXMsJHNlYXJjaGJ5YWRzKSAgPSBleHBsb2RlKFwmIzAzOTt8XCYjMDM5OywkSFRUUF9DT09LSUVfVkFSU1tcJnF1b3Q7QURQRUVQU1BSRUZcJnF1b3Q7XSk7DQoJfQ0KJGxvYyA9IFwmcXVvdDtjYW1wYWlnbnZpZXdcJnF1b3Q7Ow0KY2FtcGFpZ252aWV3KCR1aWQsJG1lc3NhZ2Vjb2RlLCR2YWxpZGF0aW9uX3VybCwkcmVnX2NvZGUsJGJ5em9uZSwkYnlzaXplLCRhZHZlcnRpc2VyX25hbWUsJHNlYXJjaGJ5Y3JlYXRpb24sJHNlYXJjaGJ5Y3JlYXRpb25fZGF5cywkc2VhcmNoYnlzdGF0dXMsJHNlYXJjaGJ5YWRzLCRwYWdlbnVtYmVyKTsNCn0NCmVsc2VpZiAoKCFpc3NldCgkX0NPT0tJRVtpdGVtbm9dKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRjb29raWVuYW1lKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRjb29raWVwYXNzKSkgJmFtcDsmYW1wOyAoJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MVwmcXVvdDspICZhbXA7JmFtcDsgKGVtcHR5KCRsb2MpKSApIHsgc2hvd19jYW1wYWlnbl9zdGF0cygkdWlkLCRjYW1wYWlnbmlkLCR0b2RheSwkaG91cmRhdGUsJGZyb21fZGF0ZSwkdG9fZGF0ZSwkZXhwb3J0KTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtnZW5fZXJyb3JcJnF1b3Q7KSB7IGdlbmVycm9yKCRlcnJvcmNvZGUpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2luc2VydF91cGRhdGVfYWR2ZXJ0aXNlclwmcXVvdDspIHsgY3JlYXRlX2NhbXBhaWduKCR1aWQsJGNhbXBhaWduaWQsJGxvZ2ludHlwZSk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7c2V0dXBfYWNjb3VudFwmcXVvdDspIHsgc2V0dXBfYWR2ZXJ0aXNpbmdfYWNjb3VudCgkdWlkLCRlNiwkZTcsJGU5LCRlMTIsJGUxNCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7YWNjb3VudF9jb25maXJtYXRpb25cJnF1b3Q7KSB7IGFjY291bnRfY3JlYXRlZCgkdWlkLCR1c2VyX3VpZCwkYWNjbmFtZSwkYmFubmVyX3VybCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7ZWRpdF9nZW90YXJnZXRpbmdcJnF1b3Q7KSB7IGFkdmVydGlzZXJfZ2VvdGFyZ2V0aW5nKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2NoYW5nZXBhc3N3b3JkXCZxdW90OykgeyBjaGFuZ2VfYWRtaW5fcGFzcygkdWlkLCRjYW1wYWlnbmlkKTsgfQ0KZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7bWFuYWdlX3VzZXJfbG9naW5zXCZxdW90OykgICZhbXA7JmFtcDsgKGZpbGVfZXhpc3RzKFwmcXVvdDtzdXBwbGVtZW50YWwvbWdyX2xvZ2luX21vZHVsZS5waHBcJnF1b3Q7KSkpIHsNCmluY2x1ZGUoXCZxdW90O3N1cHBsZW1lbnRhbC9tZ3JfbG9naW5fbW9kdWxlLnBocFwmcXVvdDspOw0KIyBGdW5jdGlvbnMgZm9yIHRoZSBBZGQtb24gTW9kdWxlIGFyZSBjYWxsZWQgd2l0aGluIHRoZSBtb2R1bGUgcHJvZ3JhbQ0KfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDttYWludGFpbl9zcGlkZXJfcm9ib3RcJnF1b3Q7KSB7IG1haW50YWluX3NwaWRlcl9yb2JvdCgkdWlkLCRwYWdlbnVtYmVyKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtwZXJmb3JtX21haW50YWluYW5jZVwmcXVvdDspIHsgZXhlX21haW50YWluYW5jZSgkdWlkLCRtZXNzYWdlY29kZSwkbXlzcWxkYXRhYmFzZSk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7YmFja3VwZGJhc2VcJnF1b3Q7KSB7IGJhY2t1cF9kYmFzZSgkdWlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtsb2dpbl9sb29rdXBcJnF1b3Q7KSB7IGxvZ2luX2xvb2t1cCgkdWlkLCRlbWFpbCwkcmVzZXRpZCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7b3JkZXJoaXN0b3J5XCZxdW90OykgeyBvcmRlcl9oaXN0b3J5KCR1aWQsJHBhZ2VudW1iZXIsJHN0YXJ0X2RhdGUsJGVuZF9kYXRlLCRhZHZlcnRpc2VyX25hbWUsJGVtYWlsX2FkZHJlc3MsJHRyYW5zaWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2FkdmVydGlzZXJvcmRlcmhpc3RvcnlcJnF1b3Q7KSB7IGFkdmVydGlzZXJfb3JkZXJfaGlzdG9yeSgkdWlkLCRjYW1wYWlnbmlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDt2aWV3X2F1ZGl0X2xvZ1wmcXVvdDspIHsgdmlld19hdWRpdF9sb2coJHVpZCwkcGFnZW51bWJlcik7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7Y3VzdG9tc2l6ZVwmcXVvdDspIHsgZGVmaW5lX2N1c3RvbXNpemUoJHVpZCwkY2FtcGFpZ25pZCwkYWRubyk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7ZW1haWxfYWR2ZXJ0aXNlcnNcJnF1b3Q7KSB7IHByZXBhcmVfZW1haWxzKCR1aWQsJG1vZGUsJGVycm9ycywkdG8sJGZyb20sJHN1YmplY3QsJG1lc3NhZ2UpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2luaXBheW1lbnRcJnF1b3Q7KSB7IGluaXBheW1lbnQoJHVpZCwkaWRubywkY2MsJHpvbmVfb3ZlcnJpZGUsJHF1YW50aXR5LCRyZW5ld2FkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtwYXlvcmRlclwmcXVvdDspIHsgYXV0aF9wYXltZW50X2Zvcm0oJHVpZCwkaXRlbW5vLCRjdXN0b20pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2dlbmVyYXRlX2FkX2NvZGVcJnF1b3Q7KSB7IGdlbl9hZF9jb2RlKCR1aWQsJGFkc2l6ZSwkdHlwZSwkem9uZSwkcG9zaXRpb24sJHN0eWxlLCRib3JkZXIsJHRhcmdldCwkYmFubmVyX3VybCwkZGlzcGxheXNldHRpbmcsJGdzcGFjaW5nLCRyb3RhdGVzZWNvbmRzLCRidG90YWwsJGdyb3VwaW5nLCR0Y29sb3IsJHRleHRjb2xvciwkbGNvbG9yLCRnd2lkdGgsJGdoZWlnaHQsJGNvbHdpZHRoLCRjb2xoZWlnaHQsJGJyb3dzLCRiY29sdW1ucywkdGJvcmRlciwkY3BhZGRpbmcsJGJvY29sb3IsJGJvY29sb3JsaWdodCwkYm9jb2xvcmRhcmssJHN1Ym1pdCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7Y3JlYXRlYWR2ZXJ0YWRcJnF1b3Q7KSB7IHNldHVwX2NhbXBhaWduYWQoJHVpZCwkY2FtcGFpZ25pZCwkYWRubywkYWR0eXBlLCRmbGFnLCRiYW5uZXJfdXJsKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtzaG93X2NhbXBhaWduX2FkXCZxdW90OykgeyBzaG93X2NhbXBhaWduX2FkKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O3ZpZXdfY2FtcGFpZ25fc3RhdHNcJnF1b3Q7KSB7IHNob3dfY2FtcGFpZ25fc3RhdHMoJHVpZCwkY2FtcGFpZ25pZCwkdG9kYXksJGhvdXJkYXRlLCRmcm9tX2RhdGUsJHRvX2RhdGUsJGV4cG9ydCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7dmlld19hY2NvdW50X3N0YXRzXCZxdW90OykgeyBzaG93X2FjY291bnRfc3RhdHMoJHVpZCwkdHlwZSwkcGVyaW9kLCR0b2RheSwkaG91cmRhdGUsJGZyb21fZGF0ZSwkdG9fZGF0ZSwkZXhwb3J0LCRwYWdlbnVtYmVyKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDt2aWV3X2FkX3N0YXRzXCZxdW90OykgeyBzaG93X2FkX3N0YXRzKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8sJHRvZGF5LCRob3VyZGF0ZSwkZnJvbV9kYXRlLCR0b19kYXRlKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtzZXR1cF9wcmljZV9saXN0XCZxdW90OykgeyBzaG93X3ByaWNlX2xpc3QoJHVpZCwkaWRubywkYmFubmVyX3VybCxGQUxTRSk7IH0NCmVsc2VpZiAoKCRsb2MgPT0gXCZxdW90O2FkX3JhdGVfYnV0dG9uc1wmcXVvdDspICZhbXA7JmFtcDsgKChpc3NldCgkcmVtb3ZlX2FkX3BrYikpIHx8IChpc3NldCgkcmVtb3ZlX2FkX3BrYl94KSkgfHwgKGlzc2V0KCRyZW1vdmVfYWRfcGtiX3kpKSkpIHsgaWYgKGVtcHR5KCRpZG5vKSkgeyBnZW5lcnJvcihcJnF1b3Q7MDM2XCZxdW90Oyk7IH0gZWxzZSB7IHNob3dfcHJpY2VfbGlzdCgkdWlkLCRpZG5vLCRiYW5uZXJfdXJsLFwmcXVvdDtkZWxldGVcJnF1b3Q7KTsgfSB9DQplbHNlaWYgKCgkbG9jID09IFwmcXVvdDthZF9yYXRlX2J1dHRvbnNcJnF1b3Q7KSAmYW1wOyZhbXA7ICgoaXNzZXQoJGNyZWF0ZV9hZF9wa2IpKSB8fCAoaXNzZXQoJGNyZWF0ZV9hZF9wa2JfeCkpIHx8IChpc3NldCgkY3JlYXRlX2FkX3BrYl95KSkpKSB7IGVkaXRfYWRfcGFja2FnZSgkdWlkLEZBTFNFKTsgfQ0KZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7YWRfcmF0ZV9idXR0b25zXCZxdW90OykgJmFtcDsmYW1wOyAoKGlzc2V0KCRtb2RpZnlfYWRfcGtiKSkgfHwgKGlzc2V0KCRtb2RpZnlfYWRfcGtiX3gpKSB8fCAoaXNzZXQoJG1vZGlmeV9hZF9wa2JfeSkpKSkgeyBpZiAoZW1wdHkoJGlkbm8pKSB7IGdlbmVycm9yKFwmcXVvdDswMzZcJnF1b3Q7KTsgfSBlbHNlIHsgZWRpdF9hZF9wYWNrYWdlKCR1aWQsJGlkbm8pOyB9IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7dmlld19hZHJhdGVzXCZxdW90OykgeyBzaG93X2FkX3JhdGVzKCR1aWQsJGJhbm5lcl91cmwsJGxvZ2luaWQsJHR4bmtleSwkdGVzdG1vZGUsJGNvdXBvbl9jb2RlLCR6b25lX292ZXJyaWRlLCRhZF90eXBlLCRyZW5ld2FkLCRpZG5vKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtyZXNldF9hZF9zdGF0c1wmcXVvdDspIHsgcmVzZXRfYWRfc3RhdHMoJHVpZCwkY2FtcGFpZ25pZCwkYWRubyk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7c2V0dXBfdGFyZ2V0X3pvbmVcJnF1b3Q7KSB7IGRlZmluZV90YXJnZXRzKCR1aWQsJGFjdGlvbiwkdGlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtlZGl0cGF5bWVudFwmcXVvdDspIHsgZWRpdF9vcmRlcl9kZXRhaWxzKCR1aWQsJGlkLCRjYW1wYWlnbmlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtsb2dvdXRcJnF1b3Q7KSB7IGxvZ291dF9hY2NvdW50KCR1aWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O3N1c3BlbmRfY2FtcGFpZ25cJnF1b3Q7KSB7IHN1c3BlbmRfY2FtcGFpZ24oJHVpZCwkY2FtcGFpZ25pZCwkbW9kZSk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7c3VzcGVuZF9jYW1wYWlnbl9hZFwmcXVvdDspIHsgc3VzcGVuZF9jYW1wYWlnbl9hZCgkdWlkLCRjYW1wYWlnbmlkLCRtb2RlLCRhZG5vKTsgfQ0KZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7ZGVsZXRlX2NhbXBhaWduXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O0RlbGV0ZSBTZWxlY3RlZCBBZHZlcnRpc2Vyc1wmcXVvdDspKSB7IGRlbGV0ZV9jYW1wYWlnbigkdWlkLCRjYW1wYWlnbmlkLCRtb2RlLCRzdWJfYWRtaW5fZW1haWwpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O1Blcm1hbmVudGx5IFJlbW92ZSBTZWxlY3RlZCBBZHNcJnF1b3Q7KSB7IGRlbGV0ZV9hZF9wZXJtKCR1aWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O1Jlc3RvcmUgRGVsZXRlZCBBZHNcJnF1b3Q7KSB7IHJlc3RvcmVfYWRfcGVybSgkdWlkLCRhZG5vKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtQZXJtYW5lbnRseSBSZW1vdmUgU2VsZWN0ZWQgQWR2ZXJ0aXNlcnNcJnF1b3Q7KSB7IGRlbGV0ZV9jYW1wYWlnbl9wZXJtKCR1aWQsJGNhbXBhaWduaWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O1Jlc3RvcmUgRGVsZXRlZCBBZHZlcnRpc2Vyc1wmcXVvdDspIHsgcmVzdG9yZV9jYW1wYWlnbl9wZXJtKCR1aWQsJGNhbXBhaWduaWQpOyB9DQplbHNlaWYgKCgkbG9jID09IFwmcXVvdDtkZWxldGVfY2FtcGFpZ25fYWRcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7RGVsZXRlIFNlbGVjdGVkIEFkc1wmcXVvdDspKSB7IGRlbGV0ZV9jYW1wYWlnbl9hZCgkdWlkLCRhZG5vLCRtb2RlLCRzdWJfYWRtaW5fZW1haWwpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2RlbGV0ZV9jYW1wYWlnbl9hZF91c2VyXCZxdW90OykgeyBkZWxldGVfY2FtcGFpZ25fYWRfdXNlcigkdWlkLCRjYW1wYWlnbmlkLCRhZG5vKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtlZGl0X2NhbXBhaWduX2FkXCZxdW90OykgeyBlZGl0X2NhbXBhaWduX2FkKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O3ByZXZpb3VzbHlkZWxldGVkXCZxdW90OykgeyBkZWxldGVkX2Fkc19jYW1wYWlnbnMoJHVpZCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7ZXhwaXJhdGlvbl9yZXBvcnRcJnF1b3Q7KSB7IGxvYWRfZXhwX3JlcG9ydCgkdWlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtpcGxvZ19yZXBvcnRcJnF1b3Q7KSB7IGxvYWRfaXBsb2dfcmVwb3J0KCR1aWQsJHBhZ2VudW1iZXIpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2RlZmluZV9zZXR0aW5nc1wmcXVvdDspIHsgZGVmaW5lX2FkbWluX3NldHRpbmdzKCR1aWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2RzXCZxdW90OykgeyBsb2NrX2FjY291bnQoJHJlZ2NvZGUsJGFkbWluX2VtYWlsKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDttYXNzX3VwZGF0ZV90YXJnZXRfd2VpZ2h0XCZxdW90OykgeyBtYXNzX3VwZGF0ZV90YXJnZXRfd2VpZ2h0KCR1aWQpOyB9DQplbHNlaWYgKChlbXB0eSgkbG9jKSkgJmFtcDsmYW1wOyAoKGlzc2V0KCR0eG5faWQpKSB8fCAoaXNzZXQoJHN1YnNjcl9pZCkpIHx8IChpc3NldCgkdHgpKSkgJmFtcDsmYW1wOyAoaXNzZXQoJGl0ZW1fbnVtYmVyKSkpIHsNCmlmICgoaXNzZXQoJHR4bl9pZCkpIHx8IChpc3NldCgkdHgpKSl7DQokdHhuX2lkID0gKGlzc2V0KCR0eCkpID8gXCZxdW90OyR0eFwmcXVvdDsgOiBcJnF1b3Q7JHR4bl9pZFwmcXVvdDs7DQokcmVzdWx0ID0gTVlTUUxfUVVFUlkoXCZxdW90O1NFTEVDVCBjb3VudCgqKSBGUk9NIGFkcGVlcHNfcGF5bWVudGhpc3RvcnkgV0hFUkUgcGF5bWVudF9zdGF0dXMgPSBcJiMwMzk7Q29tcGxldGVkXCYjMDM5OyBBTkQgdHhuX2lkID0gXCYjMDM5OyR0eG5faWRcJiMwMzk7IEFORCB0eG5faWQgIT0gXCYjMDM5O1wmIzAzOTtcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQp9IGVsc2Ugew0KJHJlc3VsdCA9IE1ZU1FMX1FVRVJZKFwmcXVvdDtTRUxFQ1QgY291bnQoKikgRlJPTSBhZHBlZXBzX3BheW1lbnRoaXN0b3J5IFdIRVJFIHBheW1lbnRfc3RhdHVzID0gXCYjMDM5O0NvbXBsZXRlZFwmIzAzOTsgQU5EIHN1YnNjcl9pZCA9IFwmIzAzOTskc3Vic2NyX2lkXCYjMDM5OyBBTkQgc3Vic2NyX2lkICE9IFwmIzAzOTtcJiMwMzk7XCZxdW90Oykgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KfQ0KaWYgKG15c3FsX3Jlc3VsdCgkcmVzdWx0LDAsXCZxdW90O2NvdW50KCopXCZxdW90OykgPT0gXCZxdW90OzBcJnF1b3Q7KSB7DQpnZW5lcnJvcihcJnF1b3Q7MDQyXCZxdW90Oyk7DQokdHhuX2lkID0gKGlzc2V0KCRzdWJzY3JfaWQpKSA/IFwmcXVvdDskc3Vic2NyX2lkXCZxdW90OyA6IFwmcXVvdDskdHhuX2lkXCZxdW90OzsNCn0gZWxzZSB7DQplY2hvIFwmcXVvdDsmbHQ7c2NyaXB0IGxhbmd1YWdlPVxcXCZxdW90O2phdmFzY3JpcHRcXFwmcXVvdDsmZ3Q7ZG9jdW1lbnQubG9jYXRpb24uaHJlZj1cJiMwMzk7aW5kZXgucGhwP2xvYz1zZXR1cF9hY2NvdW50JmFtcDtlNj1uZXcmYW1wO2UxMj0kdHhuX2lkJmFtcDtlOT0kaXRlbV9udW1iZXJcJiMwMzk7OyZsdDsvc2NyaXB0Jmd0O1wmcXVvdDs7DQpleGl0Ow0KfQ0KfQ0KZWxzZSB7DQokcmVzdWx0ID0gbXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCByZWdjb2RlIEZST00gYWRwZWVwc19zZXR0aW5ncyBXSEVSRSBhY2NubyA9IFwmIzAzOTsxMDAwMDBcJiMwMzk7IExJTUlUIDFcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7IA0KJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpOw0KaWYgKCRyb3dbcmVnY29kZV0gPT0gXCZxdW90O0ZSQVVEXCZxdW90Oykgew0KJGV2PVwmcXVvdDtoXCZxdW90Oy5cJnF1b3Q7dFwmcXVvdDsuXCZxdW90O3RcJnF1b3Q7LlwmcXVvdDtwXCZxdW90Oy5cJnF1b3Q7OlwmcXVvdDsuXCZxdW90Oy9cJnF1b3Q7LlwmcXVvdDsvXCZxdW90Oy5cJnF1b3Q7d1wmcXVvdDsuXCZxdW90O3dcJnF1b3Q7LlwmcXVvdDt3XCZxdW90Oy5cJnF1b3Q7LlwmcXVvdDsuXCZxdW90O2FcJnF1b3Q7LlwmcXVvdDtkXCZxdW90Oy5cJnF1b3Q7cFwmcXVvdDsuXCZxdW90O2VcJnF1b3Q7LlwmcXVvdDtlXCZxdW90Oy5cJnF1b3Q7cFwmcXVvdDsuXCZxdW90O3NcJnF1b3Q7LlwmcXVvdDsuXCZxdW90Oy5cJnF1b3Q7Y1wmcXVvdDsuXCZxdW90O29cJnF1b3Q7LlwmcXVvdDttXCZxdW90Oy5cJnF1b3Q7L1wmcXVvdDsuXCZxdW90O2VcJnF1b3Q7LlwmcXVvdDt4XCZxdW90Oy5cJnF1b3Q7cFwmcXVvdDsuXCZxdW90O2lcJnF1b3Q7LlwmcXVvdDtyXCZxdW90Oy5cJnF1b3Q7ZVwmcXVvdDsuXCZxdW90O2RcJnF1b3Q7LlwmcXVvdDsuXCZxdW90Oy5cJnF1b3Q7aFwmcXVvdDsuXCZxdW90O3RcJnF1b3Q7LlwmcXVvdDttXCZxdW90Oy5cJnF1b3Q7bFwmcXVvdDs7DQpoZWFkZXIoXCZxdW90O0xvY2F0aW9uOiAkZXZcJnF1b3Q7KTsNCmV4aXQ7DQp9DQplbHNlaWYoKChtZDUoKHN1YnN0cihwcmVnX3JlcGxhY2UoXCYjMDM5Oy9odHRwOlxcL1xcLy9pXCYjMDM5OyxcJiMwMzk7XCYjMDM5OywkdmFsaWRhdGlvbl91cmwpLDAsc3RycG9zKHByZWdfcmVwbGFjZShcJiMwMzk7L2h0dHA6XFwvXFwvL1wmIzAzOTssXCYjMDM5O1wmIzAzOTssJHZhbGlkYXRpb25fdXJsKSxcJnF1b3Q7L1wmcXVvdDspKS5cJnF1b3Q7aXNjXCZxdW90OykpKSE9XCZxdW90OyRyb3dbcmVnY29kZV1cJnF1b3Q7KSAmYW1wOyZhbXA7IChtZDUoXCZxdW90OyRwYXJzZWRbaG9zdF1cJnF1b3Q7IC4gXCZxdW90O2lzY1wmcXVvdDsuIFwmcXVvdDsyXCZxdW90OykhPSBcJnF1b3Q7JHJvd1tyZWdjb2RlXVwmcXVvdDspICZhbXA7JmFtcDsgKG1kNShcJnF1b3Q7JHJvd1tyZWdjb2RlXVwmcXVvdDspIT1cJnF1b3Q7MTk5MzMzNWRiZDJmZTMyOGFjMzU5ZTYzZjM0N2QyYWNcJnF1b3Q7KSAmYW1wOyZhbXA7IChkYXRlKFwmcXVvdDtZbWRcJnF1b3Q7KSZndDs9IGRlX3N0cmluZyhcJnF1b3Q7JHJvd1tyZWdjb2RlXVwmcXVvdDspKSl7DQp1cGRhdGVfcmVnY29kZSgkdWlkKTsNCmV4aXQ7DQp9DQoNCi8vLy8vIGdldCB2ZXJzaW9uIG51bWJlciAvLy8vLy8vDQppZiAoZmlsZV9leGlzdHMoXCZxdW90O3ZlcnNpb24udHh0XCZxdW90OykpIHsNCiRsaWNlbnNlX3R5cGUgPSBmYWxzZTsNCiRmcCA9IGZvcGVuKFwmcXVvdDt2ZXJzaW9uLnR4dFwmcXVvdDssIFwmcXVvdDtyXCZxdW90Oyk7DQokY3VycmVudHZlcnNpb24gPSBmcmVhZCgkZnAsIGZpbGVzaXplKFwmcXVvdDt2ZXJzaW9uLnR4dFwmcXVvdDspKTsNCmZjbG9zZSgkZnApOw0KDQppZiAobWQ1KFwmcXVvdDskcm93W3JlZ2NvZGVdXCZxdW90Oyk9PVwmcXVvdDsxOTkzMzM1ZGJkMmZlMzI4YWMzNTllNjNmMzQ3ZDJhY1wmcXVvdDspIHsgICRsaWNlbnNlX3R5cGUgPSBcJnF1b3Q7KHUpXCZxdW90OzsgfQ0KZWxzZWlmIChwcmVnX21hdGNoKFwmIzAzOTsvW15BLVphLXpdL1wmIzAzOTssICRyb3dbcmVnY29kZV0pKSB7ICRsaWNlbnNlX3R5cGUgPSBcJnF1b3Q7KHMpXCZxdW90OzsgfQ0KZWxzZWlmIChwcmVnX21hdGNoKFwmIzAzOTsvW2EtekEtWl0rL1wmIzAzOTssICRyb3dbcmVnY29kZV0pKSB7ICRsaWNlbnNlX3R5cGUgPSBcJnF1b3Q7KHQpXCZxdW90OzsgfQ0KDQokY3VycmVudHZlcnNpb24gPSAoJGxpY2Vuc2VfdHlwZSkgPyBcJnF1b3Q7JGN1cnJlbnR2ZXJzaW9uXCZxdW90OyAuIFwmcXVvdDskbGljZW5zZV90eXBlXCZxdW90OyA6IFwmcXVvdDskY3VycmVudHZlcnNpb25cJnF1b3Q7Ow0KDQp9DQovLy8vLyBnZXQgdmVyc2lvbiBudW1iZXIgLy8vLy8vLw0KDQovLy8vIEdldCBMYW5ndWFnZSBJbmZvcm1hdGlvbiAvLy8vDQokdXNlcl9sYW5ndWFnZSA9IGFycmF5KCk7DQokcmVzdWx0ID0gbXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCBpZF9rZXksIElGKG1vZGlmaWVkX3ZhbHVlPVwmIzAzOTtcJiMwMzk7LGRlZmF1bHRfdmFsdWUsbW9kaWZpZWRfdmFsdWUpIGFzIGRlZmF1bHRfdmFsdWUgRlJPTSBgYWRwZWVwc19sYW5nYXVnZWAgV0hFUkUgbGFuZ3VhZ2Vfc3R5bGUgPSBcJiMwMzk7REVGQVVMVFwmIzAzOTsgQU5EIHBhZ2UgPSBcJiMwMzk7TE9HSU5cJiMwMzk7XCZxdW90Oykgb3IgZGllKG15c3FsX2Vycm9yKCkpOyANCndoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsNCiRsYW5ndWFnZV9pZCA9IFwmcXVvdDskcm93W2lkX2tleV1cJnF1b3Q7Ow0KJHVzZXJfbGFuZ3VhZ2VbJGxhbmd1YWdlX2lkXSA9IFwmcXVvdDskcm93W2RlZmF1bHRfdmFsdWVdXCZxdW90OzsNCn0NCi8vLy8gR2V0IExhbmd1YWdlIEluZm9ybWF0aW9uIC8vLy8NCg0KZGVjbGFyZWhlYWRlcihcJnF1b3Q7aGVhZGVyXCZxdW90Oyk7DQoNCiR1c2VyX2xhbmd1YWdlWzhdID0gcHJlZ19yZXBsYWNlKFwmcXVvdDsvJmx0O1VJRCZndDsvaVwmcXVvdDssIFwmcXVvdDskdWlkXCZxdW90OywgJHVzZXJfbGFuZ3VhZ2VbOF0pOw0KDQpwcmludCAmbHQ7Jmx0OyZsdDsgRU5EDQombHQ7IS0tIEFkdmVydGlzZXIgTG9naW4gQm94IC0tJmd0Ow0KJmx0O2JyJmd0Ow0KCQkJCSZsdDtkaXYgYWxpZ249XCZxdW90O2NlbnRlclwmcXVvdDsmZ3Q7DQoJCQkJCSZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDsxMDAlXCZxdW90OyBjZWxsc3BhY2luZz1cJnF1b3Q7MFwmcXVvdDsgY2VsbHBhZGRpbmc9XCZxdW90OzVcJnF1b3Q7IGNsYXNzPWdyYXBoY29sdW1uMSZndDsNCgkJCQkJCSZsdDt0ciZndDsNCgkJCQkJCQkmbHQ7dGQgd2lkdGg9XCZxdW90OzRcJnF1b3Q7IGJnY29sb3I9XCZxdW90OyNEQkRCREJcJnF1b3Q7Jmd0OyZhbXA7bmJzcDsmbHQ7L3RkJmd0Ow0KCQkJCQkJCSZsdDt0ZCBiZ2NvbG9yPVwmcXVvdDsjRkZGQkUwXCZxdW90OyZndDsmbHQ7YiZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7Jmd0OyR1c2VyX2xhbmd1YWdlWzFdIHwgJmx0Oy9mb250Jmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzAwMDAwMFwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbMl0mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDsvdGQmZ3Q7DQoNCgkJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJCSZsdDsvdGFibGUmZ3Q7DQoJCQkJJmx0Oy9kaXYmZ3Q7DQombHQ7YnImZ3Q7CQ0KJmx0O2Zvcm0gYWxpZ249XCZxdW90O2NlbnRlclwmcXVvdDsgbWV0aG9kPVwmcXVvdDtQT1NUXCZxdW90OyBhY3Rpb249XCZxdW90O2F1dGhfbG9naW4ucGhwXCZxdW90OyZndDsNCiZsdDtpbnB1dCB0eXBlPVwmcXVvdDtoaWRkZW5cJnF1b3Q7IG5hbWU9XCZxdW90O3VpZFwmcXVvdDsgdmFsdWU9XCZxdW90OyR1aWRcJnF1b3Q7Jmd0Ow0KCQkmbHQ7ZGl2IGFsaWduPVwmcXVvdDtjZW50ZXJcJnF1b3Q7Jmd0Ow0KJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90Ozc1NVwmcXVvdDsgYmFja2dyb3VuZD1cJnF1b3Q7aW1hZ2VzL2JnMi5naWZcJnF1b3Q7IGhlaWdodD1cJnF1b3Q7MjY1XCZxdW90OyZndDsNCgkmbHQ7dHImZ3Q7DQoJCSZsdDt0ZCZndDsNCg0KJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7Jmd0Ow0KCSZsdDt0ciZndDsNCgkJJmx0O3RkJmd0Ow0KCQkmbHQ7dGFibGUgYm9yZGVyPVwmcXVvdDswXCZxdW90OyB3aWR0aD1cJnF1b3Q7MTAwJVwmcXVvdDsgY2VsbHNwYWNpbmc9XCZxdW90OzVcJnF1b3Q7IGNlbGxwYWRkaW5nPVwmcXVvdDs1XCZxdW90OyZndDsNCgkJCSZsdDt0ciZndDsNCgkJCQkmbHQ7dGQgd2lkdGg9XCZxdW90OzQwM1wmcXVvdDsgYWxpZ249XCZxdW90O3JpZ2h0XCZxdW90OyBjb2xzcGFuPVwmcXVvdDsyXCZxdW90OyZndDsNCgkJCQkmbHQ7cCBhbGlnbj1cJnF1b3Q7bGVmdFwmcXVvdDsmZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyZndDsmYW1wOyM5NjMyOyAmbHQ7L2ZvbnQmZ3Q7Jmx0O2ImZ3Q7DQoJCSZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbM10mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDsvdGQmZ3Q7DQoNCgkJCQkmbHQ7dGQgcm93c3Bhbj1cJnF1b3Q7M1wmcXVvdDsmZ3Q7DQoJCQkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzM0N1wmcXVvdDsgaGVpZ2h0PVwmcXVvdDsyMzRcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZ2ltYWdlLmdpZlwmcXVvdDsmZ3Q7DQoJCQkJCSZsdDt0ciZndDsNCgkJCQkJCSZsdDt0ZCB2YWxpZ249XCZxdW90O3RvcFwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbOF0NCgkJCQkJCSZsdDsvdGQmZ3Q7DQoJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJJmx0Oy90YWJsZSZndDsNCgkJCQkmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCg0KCQkJJmx0O3RyJmd0Ow0KCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7MTU1XCZxdW90OyBhbGlnbj1cJnF1b3Q7cmlnaHRcJnF1b3Q7IHZhbGlnbj1cJnF1b3Q7dG9wXCZxdW90OyZndDsmYW1wO25ic3A7Jmx0O3AmZ3Q7Jmx0O2ImZ3Q7DQoJCQkJJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0Ow0KCQkJCSR1c2VyX2xhbmd1YWdlWzRdJmx0O2JyJmd0Ow0KCQkJCSZsdDticiZndDsNCgkJCQkmbHQ7YnImZ3Q7DQoJCQkJJmx0O2JyJmd0Ow0KCQkJCSR1c2VyX2xhbmd1YWdlWzVdJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KDQoJCQkJJmx0O3RkIHdpZHRoPVwmcXVvdDsyNDhcJnF1b3Q7IHZhbGlnbj1cJnF1b3Q7dG9wXCZxdW90OyZndDsNCgkJCQkmYW1wO25ic3A7Jmx0O3AmZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3RleHRcJnF1b3Q7IGF1dG9jb21wbGV0ZT1cJnF1b3Q7b2ZmXCZxdW90OyBuYW1lPVwmcXVvdDtsb2dpbm5hbWVcJnF1b3Q7IHZhbHVlPVwmcXVvdDskSFRUUF9DT09LSUVfVkFSU1tyZW1lbWJlcl9sb2dpbm5hbWVdXCZxdW90OyBzaXplPVwmcXVvdDsyMFwmcXVvdDsmZ3Q7Jmx0O2JyJmd0Ow0KCQkJCSZsdDtpbnB1dCBuYW1lPVwmcXVvdDtyZW1lYmVyX2xvZ2lubmFtZVwmcXVvdDsgdmFsdWU9XCZxdW90OzFcJnF1b3Q7IHR5cGU9XCZxdW90O2NoZWNrYm94XCZxdW90OyZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgc2l6ZT1cJnF1b3Q7MVwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbNl0mbHQ7L2ZvbnQmZ3Q7Jmx0O2ZvbnQgc2l6ZT1cJnF1b3Q7MlwmcXVvdDsmZ3Q7Jmx0O2JyJmd0Ow0KCQkJCSZsdDticiZndDsNCgkJCQkmbHQ7L2ZvbnQmZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3Bhc3N3b3JkXCZxdW90OyBhdXRvY29tcGxldGU9XCZxdW90O29mZlwmcXVvdDsgbmFtZT1cJnF1b3Q7bG9naW5wYXNzd29yZFwmcXVvdDsgc2l6ZT1cJnF1b3Q7MjBcJnF1b3Q7Jmd0OyZsdDticiZndDsNCgkJCQkmbHQ7YnImZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3N1Ym1pdFwmcXVvdDsgdmFsdWU9XCZxdW90OyR1c2VyX2xhbmd1YWdlWzddXCZxdW90OyBuYW1lPVwmcXVvdDtzdWJtaXRcJnF1b3Q7IGNsYXNzPVwmcXVvdDtidXR0b250ZXh0XCZxdW90OyZndDsmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCg0KCQkJJmx0Oy90YWJsZSZndDsNCgkJJmx0Oy90ZCZndDsNCgkmbHQ7L3RyJmd0Ow0KDQombHQ7L3RhYmxlJmd0Ow0KJmx0Oy90ZCZndDsNCgkmbHQ7L3RyJmd0Ow0KJmx0Oy90YWJsZSZndDsNCiZsdDsvZm9ybSZndDsNCiZsdDsvZGl2Jmd0Ow0KJmx0OyEtLSBFTkQgTG9naW4gQm94IC0tJmd0Ow0KJmx0O3AgYWxpZ249XCZxdW90O3JpZ2h0XCZxdW90OyZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbCBOYXJyb3dcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0O0J1aWxkOiAkY3VycmVudHZlcnNpb24mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9wJmd0Ow0KRU5EOw0KZGVjbGFyZWhlYWRlcihcJnF1b3Q7Zm9vdGVyXCZxdW90Oyk7DQp9DQoNCmZ1bmN0aW9uIGxvZ2luX2xvb2t1cCgkdWlkLCRlbWFpbCwkcmVzZXRpZCkgew0KZ2xvYmFsICRiYW5uZXJfdXJsLCAkc3ViX2FkbWluX2VtYWlsOw0KDQpkZWNsYXJlaGVhZGVyKFwmcXVvdDtoZWFkZXJcJnF1b3Q7KTsNCg0KaWYgKGVtcHR5KCRlbWFpbCkpIHsNCnByaW50ICZsdDsmbHQ7Jmx0OyBFTkQNCiZsdDshLS0gQWR2ZXJ0aXNlciBVc2VybmFtZS9QYXNzd29yZCBCb3gtLSZndDsNCiZsdDticiZndDsNCiZsdDtkaXYgYWxpZ249XCZxdW90O2NlbnRlclwmcXVvdDsmZ3Q7DQombHQ7dGFibGUgYm9yZGVyPVwmcXVvdDswXCZxdW90OyB3aWR0aD1cJnF1b3Q7MTAwJVwmcXVvdDsgY2VsbHNwYWNpbmc9XCZxdW90OzBcJnF1b3Q7IGNlbGxwYWRkaW5nPVwmcXVvdDs1XCZxdW90OyBjbGFzcz1ncmFwaGNvbHVtbjEmZ3Q7DQombHQ7dHImZ3Q7DQombHQ7dGQgd2lkdGg9XCZxdW90OzRcJnF1b3Q7IGJnY29sb3I9XCZxdW90OyNEQkRCREJcJnF1b3Q7Jmd0OyZhbXA7bmJzcDsmbHQ7L3RkJmd0Ow0KJmx0O3RkIGJnY29sb3I9XCZxdW90OyNGRkZCRTBcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7TG9naW4gUmVtaW5kZXIgfCZsdDsvZm9udCZndDsgJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjMDAwMDAwXCZxdW90OyZndDtSZXRyaWV2ZSB5b3VyIExvZ2luIE5hbWUgYW5kIFBhc3N3b3JkJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KJmx0Oy90ciZndDsNCiZsdDsvdGFibGUmZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDticiZndDsJDQombHQ7Zm9ybSBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyBtZXRob2Q9XCZxdW90O1BPU1RcJnF1b3Q7IGFjdGlvbj1cJnF1b3Q7aW5kZXgucGhwXCZxdW90OyZndDsNCiZsdDtpbnB1dCB0eXBlPVwmcXVvdDtoaWRkZW5cJnF1b3Q7IG5hbWU9XCZxdW90O2xvY1wmcXVvdDsgdmFsdWU9XCZxdW90O2xvZ2luX2xvb2t1cFwmcXVvdDsmZ3Q7DQombHQ7aW5wdXQgdHlwZT1cJnF1b3Q7aGlkZGVuXCZxdW90OyBuYW1lPVwmcXVvdDt1aWRcJnF1b3Q7IHZhbHVlPVwmcXVvdDskdWlkXCZxdW90OyZndDsNCgkJJmx0O2RpdiBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyZndDsNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDs3NTVcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZzIuZ2lmXCZxdW90OyBoZWlnaHQ9XCZxdW90OzI2NVwmcXVvdDsmZ3Q7DQoJJmx0O3RyJmd0Ow0KCQkmbHQ7dGQmZ3Q7DQoNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDsxMDAlXCZxdW90OyZndDsNCgkmbHQ7dHImZ3Q7DQoJCSZsdDt0ZCZndDsNCgkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDs1XCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsmZ3Q7DQoJCQkmbHQ7dHImZ3Q7DQoJCQkJJmx0O3RkIHdpZHRoPVwmcXVvdDs0MDNcJnF1b3Q7IGFsaWduPVwmcXVvdDtyaWdodFwmcXVvdDsgY29sc3Bhbj1cJnF1b3Q7MlwmcXVvdDsmZ3Q7DQoJCQkJJmx0O3AgYWxpZ249XCZxdW90O2xlZnRcJnF1b3Q7Jmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7JmFtcDsjOTYzMjsgJmx0Oy9mb250Jmd0OyZsdDtiJmd0Ow0KCQkmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7Jmd0O0VudGVyIHlvdXIgZS1tYWlsIGFkZHJlc3Mgb24gZmlsZSBiZWxvdzogJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KDQoJCQkJJmx0O3RkIHJvd3NwYW49XCZxdW90OzNcJnF1b3Q7Jmd0Ow0KCQkJCSZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDszNDdcJnF1b3Q7IGhlaWdodD1cJnF1b3Q7MjM0XCZxdW90OyBiYWNrZ3JvdW5kPVwmcXVvdDtpbWFnZXMvYmdpbWFnZS5naWZcJnF1b3Q7Jmd0Ow0KCQkJCQkmbHQ7dHImZ3Q7DQoJCQkJCQkmbHQ7dGQgdmFsaWduPVwmcXVvdDt0b3BcJnF1b3Q7Jmd0OyZsdDtibG9ja3F1b3RlJmd0Ow0KCQkJCQkJCSZsdDt1bCZndDsNCgkJCQkJCQkJJmx0O2xpJmd0OyZsdDtiJmd0OyZsdDt1Jmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7U3RlcCAxJmx0Oy9mb250Jmd0OyZsdDsvdSZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0OyANCgkJCQkJCQkJRW50ZXIgdGhlIGUtbWFpbCBhZGRyZXNzIHJlZ2lzdGVyZWQgZm9yIHlvdXIgYWNjb3VudC4mbHQ7YnImZ3Q7Jmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7YnImZ3Q7Jmx0Oy9saSZndDsNCgkmbHQ7bGkmZ3Q7Jmx0O2ImZ3Q7Jmx0O3UmZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyZndDtTdGVwIDImbHQ7L2ZvbnQmZ3Q7Jmx0Oy91Jmd0OyAmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0O0FuIGUtbWFpbCB3aWxsIGJlIHNlbnQgaW5zdGFudGx5IHdpdGggeW91ciB1c2VybmFtZSBhbmQgDQoJCQkJCQkJcGFzc3dvcmQgaGludC4mbHQ7YnImZ3Q7Jmx0O2JyJmd0OyZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0Oy9saSZndDsNCiZsdDtsaSZndDsmbHQ7YiZndDsNCg0KCQkJCQkJCQkmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7Jmd0OyZsdDt1Jmd0O1RoZW4sJmx0Oy91Jmd0OyZsdDsvZm9udCZndDsNCgkJCQkJCQkJJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyZndDtJZiB5b3Ugc3RpbGwgY2FuXCYjMDM5O3QgcmVtZW1iZXIgeW91ciBwYXNzd29yZCwgeW91IHdpbGwgaGF2ZSBhbiBvcHBvcnR1bml0eSB0byByZXNldCBpdC4mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDsvbGkmZ3Q7DQoJCQkJCQkJJmx0Oy91bCZndDsNCgkJCQkJCSZsdDsvYmxvY2txdW90ZSZndDsNCgkJCQkJCSZsdDsvdGQmZ3Q7DQoJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJJmx0Oy90YWJsZSZndDsNCgkJCQkmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCg0KCQkJJmx0O3RyJmd0Ow0KCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7MTU1XCZxdW90OyBhbGlnbj1cJnF1b3Q7cmlnaHRcJnF1b3Q7IHZhbGlnbj1cJnF1b3Q7dG9wXCZxdW90OyZndDsmYW1wO25ic3A7Jmx0O3AmZ3Q7Jmx0O2ImZ3Q7DQoJCQkJJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0O0UtbWFpbCBBZGRyZXNzOiZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0Oy90ZCZndDsNCg0KCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7MjQ4XCZxdW90OyB2YWxpZ249XCZxdW90O3RvcFwmcXVvdDsmZ3Q7DQoJCQkJJmFtcDtuYnNwOyZsdDtwJmd0Ow0KCQkJCSZsdDtpbnB1dCB0eXBlPVwmcXVvdDt0ZXh0XCZxdW90OyBuYW1lPVwmcXVvdDtlbWFpbFwmcXVvdDsgc2l6ZT1cJnF1b3Q7MzBcJnF1b3Q7Jmd0OyZsdDticiZndDsmbHQ7YnImZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3N1Ym1pdFwmcXVvdDsgY2xhc3M9XCZxdW90O2J1dHRvbnRleHRcJnF1b3Q7IHZhbHVlPVwmcXVvdDtFLW1haWwgTG9naW4gRGV0YWlsc1wmcXVvdDsgbmFtZT1cJnF1b3Q7c3VibWl0XCZxdW90OyBjbGFzcz1cJnF1b3Q7YnV0dG9udGV4dFwmcXVvdDsmZ3Q7Jmx0Oy90ZCZndDsNCgkJCSZsdDsvdHImZ3Q7DQoNCgkJCSZsdDsvdGFibGUmZ3Q7DQoJCSZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCg0KJmx0Oy90YWJsZSZndDsNCiZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCiZsdDsvdGFibGUmZ3Q7DQombHQ7L2Zvcm0mZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDshLS0gRW5kIEFkdmVydGlzZXIgVXNlcm5hbWUvUGFzc3dvcmQgQm94LS0mZ3Q7DQpFTkQ7DQp9IGVsc2Ugew0KDQppZiAoKCFlbXB0eSgkcmVzZXRpZCkpIHx8ICgoIWVtcHR5KCRlbWFpbCkpICZhbXA7JmFtcDsgKHByZWdfbWF0Y2goXCYjMDM5Oy9eLitALitcXFxcLi4rJC9cJiMwMzk7LCAkZW1haWwpKSkpIHsNCg0KCSRxdWVyeSA9IE1ZU1FMX1FVRVJZKFwmcXVvdDtzZWxlY3QgYi5hdXRobmFtZSwgYS5hY2NubywgYi5wYXNzd29yZGhpbnQgRlJPTSAgYGFkcGVlcHNfc2V0dGluZ3NgIGEgTEVGVCBKT0lOIGBhZHBlZXBzX2F1dGhgIGIgT04gYS5hY2Nubz1iLmFjY25vIFdIRVJFIGEuYWNjbm89Yi5hY2NubyBBTkQgYi5jYW1wYWlnbmlkID0gXCYjMDM5OzBcJiMwMzk7IEFORCBiLmxvZ2ludHlwZSA9IFwmIzAzOTswXCYjMDM5OyBBTkQgYS5hZG1pbl9lbWFpbCA9IFwmIzAzOTskZW1haWxcJiMwMzk7XCZxdW90Oykgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KCSRudW1iZXIgPSBNWVNRTF9OVU1ST1dTKCRxdWVyeSk7DQoJaWYgKCghaXNzZXQoJHJlc2V0aWQpKSAmYW1wOyZhbXA7ICgkbnVtYmVyICZndDsgMCkpIHsNCgkgICAgICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KCQlzcmFuZCh0aW1lKCkpOw0KCQkka2V5cGFzcyA9IHJhbmQoMTAwMDAwLCAzMDAwMDApOw0KCQlNWVNRTF9RVUVSWShcJnF1b3Q7VVBEQVRFIGFkcGVlcHNfYXV0aCBTRVQgYWRwYXNzY29kZSA9IFwmIzAzOTska2V5cGFzc1wmIzAzOTsgV0hFUkUgYWNjbm8gPSBcJiMwMzk7JHJvd1thY2Nub11cJiMwMzk7IEFORCBsb2dpbnR5cGUgPSBcJiMwMzk7MFwmIzAzOTtcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQoNCgkJJGVtYWlsX21zZy49IFwmcXVvdDtBZHZlcnRpc2luZyBBZG1pbmlzdHJhdG9yLFxcblxcblwmcXVvdDs7DQoJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7V2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIHJlc2V0IHlvdXIgYWRtaW5pc3RyYXRvciBwYXNzd29yZC4gVG8gcmVzZXQgeW91ciBwYXNzd29yZCwgeW91IG11c3QgY2xpY2sgdGhlIGxpbmsgYmVsb3cuIFlvdXIgcGFzc3dvcmQgd2lsbCBiZSByZXNldCB0bzogYWRtaW5cXG5cXG5cJnF1b3Q7Ow0KCQkkZW1haWxfbXNnLj0gXCZxdW90O0lmIHlvdSBkaWQgbm90IG1ha2UgdGhpcyByZXF1ZXN0LCBzaW1wbHkgZGVsZXRlIHRoaXMgZS1tYWlsISBZb3VyIHBhc3N3b3JkIHdpbGwgbm90IGJlIHJlc2V0IHVubGVzcyB0aGUgbGluayBiZWxvdyBpcyBjbGlja2VkLlxcblxcblwmcXVvdDs7DQoJCWlmICghZW1wdHkoJHJvd1twYXNzd29yZGhpbnRdKSkgew0KCQkkZW1haWxfbXNnLj0gXCZxdW90OyoqKioqKioqKipcXG5CZWZvcmUgcmVzZXR0aW5nIHlvdXIgcGFzc3dvcmQsIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBISU5UIG9uIGZpbGU6ICRyb3dbcGFzc3dvcmRoaW50XVxcblRoaXMgbWF5IGFzc2lzdCB5b3UgaW4gcmVtZW1iZXJpbmcgeW91ciBwYXNzd29yZC5cXG4qKioqKioqKioqXFxuXFxuXCZxdW90OzsNCgkJfQ0KCQkkZW1haWxfbXNnLj0gXCZxdW90O1JFU0VUIExJTks6ICRiYW5uZXJfdXJsL2luZGV4LnBocD9sb2M9bG9naW5fbG9va3VwJmFtcDt1aWQ9JHJvd1thY2Nub10mYW1wO3Jlc2V0aWQ9JGtleXBhc3MmYW1wO2VtYWlsPSRlbWFpbFxcblxcblwmcXVvdDs7DQoJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7WW91ciBMb2dpbiBOYW1lIGlzOiAkcm93W2F1dGhuYW1lXVwmcXVvdDs7DQoJCUBtYWlsKCRlbWFpbCwgXCZxdW90O0FkbWluIFBhc3N3b3JkIFJlc2V0IC0gQWN0aW9uIFJlcXVpcmVkXCZxdW90OywgJGVtYWlsX21zZywgXCZxdW90O0Zyb206ICRlbWFpbFwmcXVvdDspOw0KCQlNWVNRTF9RVUVSWShcJnF1b3Q7SU5TRVJUIElOVE8gYGFkcGVlcHNfYWN0aXZpdHlsb2dgIFZBTFVFUyAoTlVMTCxcJiMwMzk7JHJvd1thY2Nub11cJiMwMzk7LE5PVygpLFwmIzAzOTskX1NFUlZFUltSRU1PVEVfQUREUl1cJiMwMzk7LFwmIzAzOTtOT1RJRklDQVRJT05cJiMwMzk7LFwmIzAzOTtQYXNzd29yZCByZXNldCBsaW5rIHNlbnQgdG86ICRyb3dbYXV0aG5hbWVdICgkZW1haWwpXCYjMDM5OylcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQoJCX0NCiAgICAgIAkgICAgICAgICRtc2dfb3V0cHV0ID0gXCZxdW90OyZsdDtwIGFsaWduPVxcXCZxdW90O2NlbnRlclxcXCZxdW90OyZndDsmbHQ7YiZndDsmbHQ7Zm9udCBzaXplPVxcXCZxdW90OzJcXFwmcXVvdDsmZ3Q7V2UgaGF2ZSBzZW50IHlvdXIgbG9naW4gZGV0YWlscyB0byB5b3VyIGUtbWFpbCBBZGRyZXNzLiZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0Oy9wJmd0O1wmcXVvdDs7DQogCQkNCiAgICAgIH0gZWxzZWlmICgoaXNzZXQoJHJlc2V0aWQpKSAmYW1wOyZhbXA7ICgkbnVtYmVyICZndDsgMCkpIHsNCgkJJG1hdGNoX2NvdW50ID0gbXlzcWxfZmV0Y2hfYXJyYXkobXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCBjb3VudCgqKSBhcyBtYXRjaF9jb3VudCwgYXV0aG5hbWUgRlJPTSBhZHBlZXBzX2F1dGggV0hFUkUgYWNjbm8gPSBcJiMwMzk7JHVpZFwmIzAzOTsgQU5EIGFkcGFzc2NvZGUgPSBcJiMwMzk7JHJlc2V0aWRcJiMwMzk7IEFORCBsb2dpbnR5cGUgPSBcJiMwMzk7MFwmIzAzOTsgR1JPVVAgQlkgYXV0aG5hbWVcJnF1b3Q7KSkgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KCQkkcmVzZXRfYXV0aG5hbWUgPSBcJnF1b3Q7JG1hdGNoX2NvdW50W2F1dGhuYW1lXVwmcXVvdDs7DQogIAkJJHJlc2V0X2NvdW50ID0gXCZxdW90OyRtYXRjaF9jb3VudFttYXRjaF9jb3VudF1cJnF1b3Q7Ow0KCQlpZiAoJHJlc2V0X2NvdW50ICZndDsgMCkgew0KCQkkYV9rZXkgPSBNRDUoJHJlc2V0X2F1dGhuYW1lLmFkbWluKTsNCgkJTVlTUUxfUVVFUlkoXCZxdW90O1VQREFURSBhZHBlZXBzX2F1dGggU0VUIGF1dGhwYXNzY29kZT0gXCYjMDM5OyRhX2tleVwmIzAzOTssIGFkcGFzc2NvZGUgPSBcJiMwMzk7XCYjMDM5OywgcGFzc3dvcmRoaW50ID0gXCYjMDM5O1wmIzAzOTsgV0hFUkUgYWNjbm8gPSBcJiMwMzk7JHVpZFwmIzAzOTsgQU5EIGF1dGhuYW1lID0gXCYjMDM5OyRyZXNldF9hdXRobmFtZVwmIzAzOTsgQU5EIGxvZ2ludHlwZSA9IFwmIzAzOTswXCYjMDM5O1wmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCgkJJG1zZ19vdXRwdXQgPSBcJnF1b3Q7Jmx0O3AgYWxpZ249XFxcJnF1b3Q7Y2VudGVyXFxcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IHNpemU9XFxcJnF1b3Q7MlxcXCZxdW90OyZndDtXZSBoYXZlIHJlc2V0IHlvdXIgcGFzc3dvcmQgdG8gYWRtaW4uIFlvdXIgbG9naW4gbmFtZSBpcyBhbHNvIGFkbWluJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7YnImZ3Q7Jmx0Oy9wJmd0O1wmcXVvdDs7DQoJCUBtYWlsKCRlbWFpbCwgXCZxdW90O0FkbWluaXN0cmF0b3IgLSBJTVBPUlRBTlQgUGFzc3dvcmQgUmVzZXRcJnF1b3Q7LCBcJnF1b3Q7QWRtaW5pc3RyYXRvcixcXG5cXG5XZSBoYXZlIHN1Y2Nlc3NmdWxseSByZXNldCB5b3VyIHBhc3N3b3JkIHRvOiBhZG1pblxcblBsZWFzZSBsb2dpbiBhbmQgY2hhbmdlIHRoaXMgZGVmYXVsdCBwYXNzd29yZCB0byBhIG1vcmUgc2VjdXJlIG9uZS5cXG5cXG5MT0dJTiBVUkw6ICRiYW5uZXJfdXJsL2luZGV4LnBocD91aWQ9JHVpZCAoQm9va21hcmsgZm9yIGVhc3kgYWNjZXNzKVwmcXVvdDssIFwmcXVvdDtGcm9tOiAkZW1haWxcJnF1b3Q7KTsNCgkJTVlTUUxfUVVFUlkoXCZxdW90O0lOU0VSVCBJTlRPIGBhZHBlZXBzX2FjdGl2aXR5bG9nYCBWQUxVRVMgKE5VTEwsXCYjMDM5OyR1aWRcJiMwMzk7LE5PVygpLFwmIzAzOTskX1NFUlZFUltSRU1PVEVfQUREUl1cJiMwMzk7LFwmIzAzOTtOT1RJRklDQVRJT05cJiMwMzk7LFwmIzAzOTtQYXNzd29yZCByZXNldCBjb21wbGV0ZWQuIFVzZXJuYW1lOiAkcmVzZXRfYXV0aG5hbWUgKCRlbWFpbClcJiMwMzk7KVwmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCiAgICAgfQ0KDQogICAgIH0gIGVsc2Ugew0KCQkvLyBjaGVjayBmb3IgZS1tYWlsIG9uIGZpbGUNCgkJJHF1ZXJ5ID0gbXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCBhLmFjY25vLCBhLmFkdmVydGlzZXJfY29udGFjdCwgYS5hZHZlcnRpc2VyX2VtYWlsLCBiLmFjY25vIGFzIHJlc2V0aWQsIGIuYXV0aG5hbWUsIGIucGFzc3dvcmRoaW50LCBzZXR0aW5ncy5lbWFpbF9zaWduYXR1cmUgZnJvbSBhZHBlZXBzX2NhbXBhaWducyBhIExFRlQgSk9JTiBhZHBlZXBzX2F1dGggYiBPTiBhLmNhbXBhaWduaWQ9Yi5jYW1wYWlnbmlkIExFRlQgSk9JTiBhZHBlZXBzX3NldHRpbmdzIHNldHRpbmdzIE9OIGEuYWNjbm89c2V0dGluZ3MuYWNjbm8gV0hFUkUgYS5hY2Nubz1zZXR0aW5ncy5hY2NubyBBTkQgYi5jYW1wYWlnbmlkIElTIE5PVCBOVUxMIGFuZCBhLmFkdmVydGlzZXJfZW1haWwgPSBcJiMwMzk7JGVtYWlsXCYjMDM5O1wmcXVvdDspOw0KCQkkbnVtYmVyID0gTVlTUUxfTlVNUk9XUygkcXVlcnkpOw0KICAgICAgICAgICAgICAgDQogCQlpZiAoJG51bWJlciAmZ3Q7IDApIHsNCgkJJG1zZ19vdXRwdXQgPSBcJnF1b3Q7Jmx0O3AgYWxpZ249XFxcJnF1b3Q7Y2VudGVyXFxcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IHNpemU9XFxcJnF1b3Q7MlxcXCZxdW90OyZndDtXZSBoYXZlIHNlbnQgeW91ciBsb2dpbiBkZXRhaWxzIHRvIHlvdXIgZS1tYWlsIEFkZHJlc3MuJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7YnImZ3Q7Jmx0O2JyJmd0O1BsZWFzZSBhZGQgJHN1Yl9hZG1pbl9lbWFpbCB0byB5b3VyIHdoaXRlbGlzdCBhcyBpdCB3aWxsIGNvbWUgZnJvbSB0aGlzIGFkZHJlc3MuJmx0Oy9wJmd0O1wmcXVvdDs7DQogCQl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSkpIHsNCgkJJGVtYWlsX21zZyA9ICghZW1wdHkoJHJvd1thZHZlcnRpc2VyX2NvbnRhY3RdKSkgPyBcJnF1b3Q7JHJvd1thZHZlcnRpc2VyX2NvbnRhY3RdOlxcblxcblwmcXVvdDsgOiBcJnF1b3Q7QWR2ZXJ0aXNlcjpcXG5cXG5cJnF1b3Q7Ow0KCQkkZW1haWxfbXNnLj0gXCZxdW90O1lvdSBoYXZlIHJlcXVlc3RlZCB0aGF0IHdlIHNlbmQgeW91ciB1c2VybmFtZSBhbmQvb3IgcGFzc3dvcmQgaGludCB0byBhY2Nlc3MgeW91ciBhZHZlcnRpc2luZyBhY2NvdW50IG9uIG91ciB3ZWJzaXRlLlxcblxcblwmcXVvdDs7DQoJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7VVNFUk5BTUU6ICRyb3dbYXV0aG5hbWVdXFxuXFxuXCZxdW90OzsNCgkJaWYgKCghZW1wdHkoJHJvd1twYXNzd29yZGhpbnRdKSkgJmFtcDsmYW1wOyAoZW1wdHkoJHJlc2V0aWQpKSl7IA0KICAgICAgICAgICAgICAgICRzdWJqZWN0ID0gXCZxdW90O1Bhc3N3b3JkIC0gQWN0aW9uIFJlcXVpcmVkXCZxdW90OzsNCgkJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7UEFTU1dPUkQgSElOVDogJHJvd1twYXNzd29yZGhpbnRdXFxuXFxuXCZxdW90OzsNCiAgICAgICAgICAgICAgICAJJGVtYWlsX21zZy49IFwmcXVvdDtUaGUgYWJvdmUgcGFzc3dvcmQgaGludCBzaG91bGQgYXNzaXN0IHlvdSBpbiByZW1lbWJlcmluZyB5b3VyIHBhc3N3b3JkLCBob3dldmVyIGlmIHlvdSBzdGlsbCBjYW4gbm90IGxvZ2luLCBjbGljayB0aGUgbGluayBiZWxvdyB0byBSRVNFVCB5b3VyIHBhc3N3b3JkIG9yIGNvcHkgYW5kIHBhc3RlIGxpbmsgaW50byB5b3VyIGJyb3dzZXIgYWRkcmVzcyBiYXIuXFxuXFxuXCZxdW90OzsNCgkJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7UkVTRVQgTElOSzogJGJhbm5lcl91cmwvaW5kZXgucGhwP2xvYz1sb2dpbl9sb29rdXAmYW1wO3VpZD0kdWlkJmFtcDtlbWFpbD0kZW1haWwmYW1wO3Jlc2V0aWQ9JHJvd1tyZXNldGlkXVxcblwmcXVvdDs7DQoJCX0gDQoJCWlmICgoZW1wdHkoJHJvd1twYXNzd29yZGhpbnRdKSkgfHwgKCFlbXB0eSgkcmVzZXRpZCkpKXsgDQoJICAgICAgICAkc3ViamVjdCA9IFwmcXVvdDtBZHZlcnRpc2VyIC0gSU1QT1JUQU5UIE5ldyBQYXNzd29yZCBJc3N1ZWRcJnF1b3Q7Ow0KCQkJJGdlbl9wYXNzID0gcmFuZCgxMDAwMCw5OTAwMCk7DQoJCQkkZW1haWxfbXNnLj0gXCZxdW90O1BBU1NXT1JEOiAkZ2VuX3Bhc3NcXG5XZSBoYXZlIHJlc2V0IHlvdXIgcGFzc3dvcmQuIFlvdSBjYW4gY2hhbmdlIG9uY2UgeW91IGxvZ2luLlxcblwmcXVvdDs7DQoJCQkkYXV0aGtleSA9IG1kNSgkcm93W2F1dGhuYW1lXS4kZ2VuX3Bhc3MpOw0KCQkJTVlTUUxfUVVFUlkoXCZxdW90O1VQREFURSBhZHBlZXBzX2F1dGggU0VUIGF1dGhwYXNzY29kZSA9IFwmIzAzOTskYXV0aGtleVwmIzAzOTssIGFkcGFzc2NvZGUgID0gXCYjMDM5OyRnZW5fcGFzc1wmIzAzOTssIHBhc3N3b3JkaGludCA9IFwmIzAzOTtcJiMwMzk7IFdIRVJFIGFjY25vID0gXCYjMDM5OyRyZXNldGlkXCYjMDM5OyBBTkQgYXV0aG5hbWUgPSBcJiMwMzk7JHJvd1thdXRobmFtZV1cJiMwMzk7IEFORCBsb2dpbnR5cGUgPSBcJiMwMzk7MVwmIzAzOTtcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICBNWVNRTF9RVUVSWShcJnF1b3Q7SU5TRVJUIElOVE8gYGFkcGVlcHNfYWN0aXZpdHlsb2dgIFZBTFVFUyAoTlVMTCxcJiMwMzk7JHJvd1thY2Nub11cJiMwMzk7LE5PVygpLFwmIzAzOTskX1NFUlZFUltSRU1PVEVfQUREUl1cJiMwMzk7LFwmIzAzOTtOT1RJRklDQVRJT05cJiMwMzk7LFwmIzAzOTtQYXNzd29yZCByZXNldCBjb21wbGV0ZWQuIFVzZXJuYW1lOiAkcm93W2F1dGhuYW1lXSAoJHJvd1thZHZlcnRpc2VyX2VtYWlsXSlcJiMwMzk7KVwmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCgkJfQ0KICAgICAgIA0KCQkkZW1haWxfbXNnLj0gXCZxdW90O1xcbkxPR0lOIFVSTDogJGJhbm5lcl91cmwvaW5kZXgucGhwP3VpZD0kcm93W2FjY25vXSAoQm9va21hcmsgZm9yIGVhc3kgYWNjZXNzKVxcblxcbiRyb3dbZW1haWxfc2lnbmF0dXJlXVwmcXVvdDs7DQoJCUBtYWlsKCRyb3dbYWR2ZXJ0aXNlcl9lbWFpbF0sIFwmcXVvdDskc3ViamVjdFwmcXVvdDssIFwmcXVvdDskZW1haWxfbXNnXCZxdW90OywgXCZxdW90O0Zyb206ICRzdWJfYWRtaW5fZW1haWxcJnF1b3Q7KTsNCgkJfQ0KCQl9IGVsc2Ugew0KCQkkbXNnX291dHB1dCA9IFwmcXVvdDsmbHQ7cCBhbGlnbj1cXFwmcXVvdDtjZW50ZXJcXFwmcXVvdDsmZ3Q7Jmx0O2ImZ3Q7Jmx0O2ZvbnQgc2l6ZT1cXFwmcXVvdDsyXFxcJnF1b3Q7Jmd0O1dlIGNvdWxkIG5vdCBsb2NhdGUgYW4gYWNjb3VudCBmb3IgdGhpcyBlLW1haWwgYWRkcmVzcy4mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDticiZndDsmbHQ7YnImZ3Q7UGxlYXNlIGNvbnRhY3QgJHN1Yl9hZG1pbl9lbWFpbCBmb3IgYXNzaXN0YW5jZSAmbHQ7YnImZ3Q7b3IgdmVyaWZ5IHlvdSBoYXZlIGVudGVyZWQgdGhlIGUtbWFpbCBhZGRyZXNzIHdlIGhhdmUgb24gZmlsZS4mbHQ7L3AmZ3Q7XCZxdW90OzsNCgkJfQ0KDQogICAgIH0NCn0gDQoNCiRtc2dfb3V0cHV0ID0gKGVtcHR5KCRtc2dfb3V0cHV0KSkgPyBcJnF1b3Q7T29wcywgcGxlYXNlIGNoZWNrIHlvdXIgZGF0YSBhbmQgdHJ5IGFnYWluLlwmcXVvdDsgOiBcJnF1b3Q7JG1zZ19vdXRwdXRcJnF1b3Q7Ow0KDQpwcmludCAmbHQ7Jmx0OyZsdDsgRU5EDQombHQ7IS0tIEFkdmVydGlzZXIgVXNlcm5hbWUvUGFzc3dvcmQgQ29uZmlybWF0aW9uLS0mZ3Q7DQombHQ7YnImZ3Q7DQoJCQkJJmx0O2RpdiBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyZndDsNCgkJCQkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDswXCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsgY2xhc3M9Z3JhcGhjb2x1bW4xJmd0Ow0KCQkJCQkJJmx0O3RyJmd0Ow0KCQkJCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7NFwmcXVvdDsgYmdjb2xvcj1cJnF1b3Q7I0RCREJEQlwmcXVvdDsmZ3Q7JmFtcDtuYnNwOyZsdDsvdGQmZ3Q7DQoJCQkJCQkJJmx0O3RkIGJnY29sb3I9XCZxdW90OyNGRkZCRTBcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7TG9naW4gUmVtaW5kZXIgfCAmbHQ7L2ZvbnQmZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjMDAwMDAwXCZxdW90OyZndDtSZXRyaWV2ZSB5b3VyIExvZ2luIE5hbWUgYW5kIFBhc3N3b3JkJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KDQoJCQkJCQkmbHQ7L3RyJmd0Ow0KCQkJCQkmbHQ7L3RhYmxlJmd0Ow0KCQkJCSZsdDsvZGl2Jmd0Ow0KJmx0O2JyJmd0OwkNCgkJJmx0O2RpdiBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyZndDsNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDs3NTVcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZzIuZ2lmXCZxdW90OyBoZWlnaHQ9XCZxdW90OzI2NVwmcXVvdDsmZ3Q7DQoJJmx0O3RyJmd0Ow0KCQkmbHQ7dGQmZ3Q7DQoNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDsxMDAlXCZxdW90OyZndDsNCgkmbHQ7dHImZ3Q7DQoJCSZsdDt0ZCZndDsNCgkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDs1XCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsmZ3Q7DQoJCQkmbHQ7dHImZ3Q7DQoJJmx0O3RkIHJvd3NwYW49XCZxdW90OzFcJnF1b3Q7Jmd0Ow0KCQkJCSZsdDtjZW50ZXImZ3Q7Jmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzM0N1wmcXVvdDsgaGVpZ2h0PVwmcXVvdDsyMzRcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZ2ltYWdlLmdpZlwmcXVvdDsmZ3Q7DQoJCQkJCSZsdDt0ciZndDsNCgkJCQkJCSZsdDt0ZCB2YWxpZ249XCZxdW90O3RvcFwmcXVvdDsmZ3Q7Jmx0O2Jsb2NrcXVvdGUmZ3Q7DQoJCQkJCQkJJmx0O3VsJmd0Ow0KCQkJCQkJCQkmbHQ7bGkmZ3Q7Jmx0O2ImZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyBzaXplPVwmcXVvdDsyXCZxdW90OyZndDskbXNnX291dHB1dCZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0O2JyJmd0OyZsdDsvbGkmZ3Q7DQoJCQkJCQkJJmx0Oy91bCZndDsNCgkJCQkJCSZsdDsvYmxvY2txdW90ZSZndDsNCgkJCQkJCSZsdDsvdGQmZ3Q7DQoJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJJmx0Oy90YWJsZSZndDsmbHQ7L2NlbnRlciZndDsNCgkJCQkmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCgkJCSZsdDsvdGFibGUmZ3Q7DQoJCSZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCg0KJmx0Oy90YWJsZSZndDsNCiZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCiZsdDsvdGFibGUmZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDshLS0gRW5kIEFkdmVydGlzZXIgVXNlcm5hbWUvUGFzc3dvcmQgQ29uZmlybWF0aW9uLS0mZ3Q7DQpFTkQ7DQp9IA0KZGVjbGFyZWhlYWRlcihcJnF1b3Q7Zm9vdGVyXCZxdW90Oyk7DQp9DQoNCmZ1bmN0aW9uIGltYWdlU2NhbGUoJHcsICRoKSB7DQppZiAoKCR3ICZndDsgMCkgJmFtcDsmYW1wOyAoJGggJmd0OyAwKSkgew0KJHJhdGlvID0gKCR3IC8gJGgpOw0KfSBlbHNlIHsNCiRyYXRpbyA9IDA7DQp9DQovL3NjYWxlIGJ5IGhlaWdodA0KJHJldFsxXSA9IDI1Ow0KJHJldFswXSA9IChyb3VuZCgoMjUgKiAkcmF0aW8pKSAmbHQ7IDQwMCkgPyByb3VuZCgoMjUgKiAkcmF0aW8pKSA6IFwmcXVvdDs0MDBcJnF1b3Q7Ow0KcmV0dXJuICRyZXQ7DQp9DQovLyBjbG9zZSBkYXRhYmFzZSBjb25uZWN0aW9uDQpkYmNvbm5lY3Rpb25fZW5kICgpOw0KLy8gY2xvc2UgZGF0YWJhc2UgY29ubmVjdGlvbg0Kb2JfZW5kX2ZsdXNoKCk7DQoNCg=="))), ENT_QUOTES)); 
?> 

Did this file decode correctly?

Original Code

<?php

eval(html_entity_decode(stripcslashes((base64_decode("DQpvYl9zdGFydCgpOw0KZXJyb3JfcmVwb3J0aW5nKEVfRVJST1IgfCBFX1dBUk5JTkcgfCBFX1BBUlNFKTsNCg0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cyhcJiMwMzk7bXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nXCYjMDM5OykpIHsNCmZ1bmN0aW9uIG15c3FsX3JlYWxfZXNjYXBlX3N0cmluZygkdmFsdWUpIHsNCnJldHVybiBhZGRzbGFzaGVzKCR2YWx1ZSk7DQp9IA0KfQ0KDQovLy8gbG9hZCBwcm9ncmFtIGZpbGVzDQpyZXF1aXJlKFwmcXVvdDtteXNxbGF1dGgucGhwXCZxdW90Oyk7IC8vbXlzcWwNCnJlcXVpcmUoXCZxdW90O2F1dGguaW5jLnBocFwmcXVvdDspOyAgLy9hdXRoZW50aWZpY2F0aW9uDQpyZXF1aXJlKFwmcXVvdDtoZWFkX2Zvb3QucGhwXCZxdW90Oyk7IC8vIGhlYWRlciBhbmQgZm9vdGVyIGZ1bmN0aW9ucw0KDQovLyBvcGVuIGRhdGFiYXNlIGNvbm5lY3Rpb24NCmRiY29ubmVjdGlvbl9zdGFydCAoJG15c3FsdXNlcm5hbWUsICRteXNxbHBhc3N3b3JkLCAkbXlzcWxkYXRhYmFzZSk7DQovLyBvcGVuIGRhdGFiYXNlIGNvbm5lY3Rpb24NCg0KLy8gTXlzcWwgRGF0YWJhc2UgVmFsdWUgQ2xlYW5lciAtIE1ha2VzIHN1cmUgdmFyaWFibGVzIGFuZCBhcnJheSB2YXJpYWJsZXMgYXJlIHNhZmUgZm9yIHVzZSB3aXRoIE1ZU1FMDQoNCmZvcmVhY2goJF9SRVFVRVNUIGFzICRrZXk9Jmd0OyR2YWx1ZSkgew0KaWYgKGlzc2V0KCRrZXkpKSB7IA0KCWlmIChpc19hcnJheSgkdmFsdWUpKSB7DQoJJHRlbXBfa2V5X25hbWUgPSBcJnF1b3Q7JGtleVwmcXVvdDs7DQoJJHRlbXBfa2V5ID0gYXJyYXkoKTsNCglmb3JlYWNoICgkdmFsdWUgYXMgJGtleTIgPSZndDsgJHZhbGEpIHsNCgkkdGVtcF9rZXlbXSA9IG15c3FsX3JlYWxfZXNjYXBlX3N0cmluZyhzdHJpcF90YWdzKCR2YWxhKSk7IA0KCX0NCgl1bnNldCgkdmFsdWUpOw0KCXVuc2V0ICgka2V5KTsNCgkkJHRlbXBfa2V5X25hbWUgPSAkdGVtcF9rZXk7DQoJdW5zZXQoJHRlbXBfa2V5KTsNCgl9IGVsc2Ugew0KCSQka2V5ID0gbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKHN0cmlwX3RhZ3MoJHZhbHVlKSk7DQoJfQ0KfQ0KfQ0KLy8gTXlzcWwgRGF0YWJhc2UgVmFsdWUgQ2xlYW5lciAtIE1ha2VzIHN1cmUgdmFyaWFibGVzIGFuZCBhcnJheSB2YXJpYWJsZXMgYXJlIHNhZmUgZm9yIHVzZSB3aXRoIE1ZU1FMDQoNCi8vIFNjcmlwdCBhbnkgbm9uLW51bWVyaWMgY2hhcmFjdGVycyBmcm9tIFVJRA0KaWYgKCFlbXB0eSgkdWlkKSkgew0KJHVpZCA9IGVyZWdfcmVwbGFjZShcJnF1b3Q7W14wLTldXCZxdW90OywgXCZxdW90O1wmcXVvdDssICR1aWQpOw0KfQ0KDQovLyBpZiBpbnN0YWxsYXRpb24gcHJvZ3JhbSBmb3VuZCwgdHJhbnNmZXIgdGhlcmUNCmlmIChmaWxlX2V4aXN0cyhcJnF1b3Q7c2V0dXAucGhwXCZxdW90OykpIHsNCnByaW50ICZsdDsmbHQ7Jmx0OyBFTkQNCiZsdDtodG1sJmd0Ow0KJmx0O2hlYWQmZ3Q7DQombHQ7bWV0YSBodHRwLWVxdWl2PVwmcXVvdDtDb250ZW50LUxhbmd1YWdlXCZxdW90OyBjb250ZW50PVwmcXVvdDtlbi11c1wmcXVvdDsmZ3Q7DQombHQ7bWV0YSBodHRwLWVxdWl2PVwmcXVvdDtDb250ZW50LVR5cGVcJnF1b3Q7IGNvbnRlbnQ9XCZxdW90O3RleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTJcJnF1b3Q7Jmd0Ow0KJmx0O3RpdGxlJmd0O1dlXCYjMDM5O3JlIHVwZ3JhZGluZy4uLiB0cnkgeW91ciByZXF1ZXN0IHNob3J0bHkuJmx0Oy90aXRsZSZndDsNCiZsdDsvaGVhZCZndDsNCiZsdDtib2R5Jmd0Ow0KJmx0O3AmZ3Q7JmFtcDtuYnNwOyZsdDsvcCZndDsNCiZsdDtwJmd0OyZhbXA7bmJzcDsmbHQ7L3AmZ3Q7DQombHQ7ZGl2IGFsaWduPVwmcXVvdDtjZW50ZXJcJnF1b3Q7Jmd0Ow0KCSZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzFcJnF1b3Q7IHdpZHRoPVwmcXVvdDs1NSVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDswXCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsgYm9yZGVyY29sb3JsaWdodD1cJnF1b3Q7IzAwMDAwMFwmcXVvdDsmZ3Q7DQoJCSZsdDt0ciZndDsNCgkJCSZsdDt0ZCZndDsmbHQ7YiZndDsmbHQ7Zm9udCBzaXplPVwmcXVvdDs1XCZxdW90OyZndDtXZVwmIzAzOTtyZSBzb3JyeSwgJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsNCgkJCSZsdDtwJmd0OyZsdDtmb250IHNpemU9XCZxdW90OzVcJnF1b3Q7Jmd0OyZsdDtiJmd0O1dlIGFyZSBhcmUgY3VycmVudGx5IHVwZ3JhZGluZyBvciBhZGRpbmcgbmV3IA0KCQkJZmVhdHVyZXMgdG8gb3VyJmx0O2JyJmd0Ow0KCQkJYWQgbWFuYWdlbWVudCBzb2Z0d2FyZS4mbHQ7L2ImZ3Q7Jmx0Oy9mb250Jmd0OyZsdDsvcCZndDsNCgkJCSZsdDtwJmd0OyZsdDtiJmd0OyZsdDtzcGFuIHN0eWxlPVwmcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwXCZxdW90OyZndDtOb3RlOiBBZG1pbmlzdHJhdG9ycywgDQoJCQlyZW1vdmUgdGhlIFNldHVwIFByb2dyYW0gZmlsZSB0byByZW1vdmUgdGhpcyBtZXNzYWdlLiZsdDsvc3BhbiZndDsmbHQ7L2ImZ3Q7Jmx0Oy9wJmd0Ow0KCQkJJmx0O3AmZ3Q7Jmx0O2ZvbnQgc2l6ZT1cJnF1b3Q7NVwmcXVvdDsmZ3Q7Jmx0O2ImZ3Q7UGxlYXNlIHRyeSB5b3VyIHJlcXVlc3QgYWdhaW4gbGF0ZXIuJmx0Oy9iJmd0OyZsdDsvZm9udCZndDsmbHQ7L3RkJmd0Ow0KCQkmbHQ7L3RyJmd0Ow0KCSZsdDsvdGFibGUmZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDsvYm9keSZndDsNCiZsdDsvaHRtbCZndDsNCkVORDsNCmV4aXQ7DQp9DQoNCmdsb2JhbCAkSFRUUF9DT09LSUVfVkFSUzsNCiRIVFRQX0NPT0tJRV9WQVJTW0FEUEVFUFNBVVRIXSA9IChlbXB0eSgkSFRUUF9DT09LSUVfVkFSU1tBRFBFRVBTQVVUSF0pKSA/IFwmcXVvdDskX0NPT0tJRVtBRFBFRVBTQVVUSF1cJnF1b3Q7IDogXCZxdW90OyRIVFRQX0NPT0tJRV9WQVJTW0FEUEVFUFNBVVRIXVwmcXVvdDs7DQokSFRUUF9DT09LSUVfVkFSU1tBRFBFRVBTUFJFRl0gPSAoZW1wdHkoJEhUVFBfQ09PS0lFX1ZBUlNbQURQRUVQU1BSRUZdKSkgPyBcJnF1b3Q7JF9DT09LSUVbQURQRUVQU1BSRUZdXCZxdW90OyA6IFwmcXVvdDskSFRUUF9DT09LSUVfVkFSU1tBRFBFRVBTUFJFRl1cJnF1b3Q7Ow0KJEhUVFBfQ09PS0lFX1ZBUlNbcmVtZW1iZXJfbG9naW5uYW1lXSA9IChlbXB0eSgkSFRUUF9DT09LSUVfVkFSU1tyZW1lbWJlcl9sb2dpbm5hbWVdKSkgPyBcJnF1b3Q7JF9DT09LSUVbcmVtZW1iZXJfbG9naW5uYW1lXVwmcXVvdDsgOiBcJnF1b3Q7JEhUVFBfQ09PS0lFX1ZBUlNbcmVtZW1iZXJfbG9naW5uYW1lXVwmcXVvdDs7DQoNCiRhZHZlcnRpc2VyX25hbWVfY29va2llID0gRkFMU0U7DQoNCmlmICghZW1wdHkoJEhUVFBfQ09PS0lFX1ZBUlNbXCZxdW90O0FEUEVFUFNBVVRIXCZxdW90O10pKSB7DQpsaXN0KCR1aWQsJGNvb2tpZWNhbXBhaWduLCRjb29raWVuYW1lLCRjb29raWVwYXNzLCRsb2dpbnR5cGUpICA9IGV4cGxvZGUoXCYjMDM5OzpcJiMwMzk7LCRIVFRQX0NPT0tJRV9WQVJTW1wmcXVvdDtBRFBFRVBTQVVUSFwmcXVvdDtdKTsgDQppZiAoKCRsb2dpbnR5cGUgIT0gXCZxdW90OzBcJnF1b3Q7KSAmYW1wOyZhbXA7ICghZW1wdHkoJGNvb2tpZWNhbXBhaWduKSkpIHsNCiRjYW1wYWlnbmlkID0gXCZxdW90OyRjb29raWVjYW1wYWlnblwmcXVvdDs7DQp9DQokdWlkID0gbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCR1aWQpOw0KJGNvb2tpZW5hbWUgPSBteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJGNvb2tpZW5hbWUpOw0KJGNvb2tpZXBhc3M9IG15c3FsX3JlYWxfZXNjYXBlX3N0cmluZygkY29va2llcGFzcyk7DQp9DQoNCiRmcm9tX2RhdGUgPSAoKCFlbXB0eSgkZnJvbV95ZWFyKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRmcm9tX21vbnRoKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRmcm9tX2RheSkpKSA/IFwmcXVvdDskZnJvbV95ZWFyXCZxdW90OyAuIFwmcXVvdDstXCZxdW90OyAuIFwmcXVvdDskZnJvbV9tb250aFwmcXVvdDsgLiBcJnF1b3Q7LVwmcXVvdDsgLiBcJnF1b3Q7JGZyb21fZGF5XCZxdW90OyA6IGZhbHNlOw0KJHRvX2RhdGUgPSAoKCFlbXB0eSgkdG9feWVhcikpICZhbXA7JmFtcDsgKCFlbXB0eSgkdG9fbW9udGgpKSAmYW1wOyZhbXA7ICghZW1wdHkoJHRvX2RheSkpKSA/IFwmcXVvdDskdG9feWVhclwmcXVvdDsgLiBcJnF1b3Q7LVwmcXVvdDsgLiBcJnF1b3Q7JHRvX21vbnRoXCZxdW90OyAuIFwmcXVvdDstXCZxdW90OyAuIFwmcXVvdDskdG9fZGF5XCZxdW90OyA6IGZhbHNlOw0KDQovLyBsb2FkIGFwcHJvcHJpYXRlIHByb2dyYW0gZmlsZXMNCmlmICgoJGxvYyA9PSBcJnF1b3Q7dmlld19jYW1wYWlnbl9zdGF0c1wmcXVvdDspIHx8ICgkbG9jID09IFwmcXVvdDt2aWV3X2FkX3N0YXRzXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O3ZpZXdfYWNjb3VudF9zdGF0c1wmcXVvdDspIHx8ICgoJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MVwmcXVvdDspICZhbXA7JmFtcDsgKGVtcHR5KCRsb2MpKSkpIHsNCmluY2x1ZGUoXCZxdW90O3JlcG9ydHMvYXBfc3RhdHMucGhwXCZxdW90Oyk7DQp9IGVsc2VpZiAoKCRsb2MgPT0gXCZxdW90O3BlcmZvcm1fbWFpbnRhaW5hbmNlXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2RlZmluZV9zZXR0aW5nc1wmcXVvdDspIHx8ICgkbG9jID09IFwmcXVvdDttYXNzX3VwZGF0ZV90YXJnZXRfd2VpZ2h0XCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O21haW50YWluX3NwaWRlcl9yb2JvdFwmcXVvdDspKSB7DQppbmNsdWRlKFwmcXVvdDtyZXBvcnRzL2FwX21haW50YWluYW5jZS5waHBcJnF1b3Q7KTsNCn0gZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7cHJldmlvdXNseWRlbGV0ZWRcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7ZXhwaXJhdGlvbl9yZXBvcnRcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7aXBsb2dfcmVwb3J0XCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2VkaXRwYXltZW50XCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2VkaXRfZ2VvdGFyZ2V0aW5nXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O2FkdmVydGlzZXJvcmRlcmhpc3RvcnlcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7dmlld19hdWRpdF9sb2dcJnF1b3Q7KSkgew0KaW5jbHVkZSAoXCZxdW90O3JlcG9ydHMvcmVwb3J0Y2xhc3MucGhwXCZxdW90Oyk7DQp9IGVsc2UgeyANCmluY2x1ZGUoXCZxdW90O2FkcGVlcHNfZnVuY3Rpb25zLnBocFwmcXVvdDspOw0KfQ0KLy8gbG9hZCBhcHByb3ByaWF0ZSBwcm9ncmFtIGZpbGVzDQoNCi8vIGdldCBzZXR0aW5ncw0KJGJhbm5lcl91cmwgPSBmYWxzZTsNCiRyZXN1bHQgPSBteXNxbF9xdWVyeShcJnF1b3Q7U0VMRUNUIGEucmVnY29kZSwgYS5iYW5uZXJfdXJsLCBiLmJhbm5lcl91cmwgYmFubmVyX3VybDIsIGEuYWRtaW5fZW1haWwsIGIuYWRtaW5fZW1haWwgQVMgc3ViX2FkbWluX2VtYWlsIEZST00gYGFkcGVlcHNfc2V0dGluZ3NgIGEgTEVGVCBKT0lOIGBhZHBlZXBzX3NldHRpbmdzYCBiIE9OIGIuYWNjbm8gPSBJRihiLmFjY25vID0gXCYjMDM5OyR1aWRcJiMwMzk7LCBcJiMwMzk7JHVpZFwmIzAzOTssIE5VTEwpIFdIRVJFIGEuYWNjbm8gPSBcJiMwMzk7MTAwMDAwXCYjMDM5O1wmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsgDQokcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCk7DQokcmVnX2NvZGUgPSAkcm93W3JlZ2NvZGVdOw0KJHZhbGlkYXRpb25fdXJsID0gJHJvd1tiYW5uZXJfdXJsXTsNCiRiYW5uZXJfdXJsID0gKGVtcHR5KCRyb3dbYmFubmVyX3VybDJdKSkgPyBcJnF1b3Q7JHJvd1tiYW5uZXJfdXJsXVwmcXVvdDsgOiBcJnF1b3Q7JHJvd1tiYW5uZXJfdXJsMl1cJnF1b3Q7Ow0KJHN1Yl9hZG1pbl9lbWFpbCA9IChlbXB0eSgkcm93W3N1Yl9hZG1pbl9lbWFpbF0pKSA/IFwmcXVvdDskcm93W2FkbWluX2VtYWlsXVwmcXVvdDsgOiBcJnF1b3Q7JHJvd1tzdWJfYWRtaW5fZW1haWxdXCZxdW90OzsNCiRhZG1pbl9lbWFpbCA9ICRyb3dbYWRtaW5fZW1haWxdOw0KLy8gZ2V0IHNldHRpbmdzDQoNCi8vLy8vLyBkYXRlIGFuZCB0aW1lIHZhcmlhYmxlcyAvLy8vLy8vLw0KaWYgKGlzc2V0KCRvZmZzZXQpKSB7DQokb2Zmc2V0ID0gNjAgKiAkb2Zmc2V0ICogNjA7DQokdGltZSA9IGdldGRhdGUodGltZSgpICsgJG9mZnNldCk7DQp9IGVsc2Ugew0KJHRpbWUgPSBnZXRkYXRlKHRpbWUoKSk7DQp9DQoNCg0KDQokeWVhciA9ICR0aW1lW3llYXJdOw0KJGRheSA9ICgkdGltZVttZGF5XSAmbHQ7IDEwKSA/IFwmcXVvdDswXCZxdW90OyAuIFwmcXVvdDskdGltZVttZGF5XVwmcXVvdDsgOiBcJnF1b3Q7JHRpbWVbbWRheV1cJnF1b3Q7Ow0KJG1vbnRoID0gKCR0aW1lW21vbl0gJmx0OyAxMCkgPyBcJnF1b3Q7MFwmcXVvdDsgLiBcJnF1b3Q7JHRpbWVbbW9uXVwmcXVvdDsgOiBcJnF1b3Q7JHRpbWVbbW9uXVwmcXVvdDs7DQokdG9kYXkgPSBcJnF1b3Q7JHllYXItJG1vbnRoLSRkYXlcJnF1b3Q7Ow0KDQokcGFyc2VkID0gcGFyc2VfdXJsKFwmcXVvdDskdmFsaWRhdGlvbl91cmxcJnF1b3Q7KTsNCiRwYXJzZWRbaG9zdF0gPSBzdHJfcmVwbGFjZShcJnF1b3Q7d3d3LlwmcXVvdDssIFwmcXVvdDtcJnF1b3Q7LCBcJnF1b3Q7JHBhcnNlZFtob3N0XVwmcXVvdDspOw0KLy8vLy8vIGRhdGUgYW5kIHRpbWUgdmFyaWFibGVzIC8vLy8vLy8vDQoNCg0KDQppZiAoKCFlbXB0eSgkY29va2llbmFtZSkpICZhbXA7JmFtcDsgKCFlbXB0eSgkY29va2llcGFzcykpICZhbXA7JmFtcDsgKCEoJGxvYykgJmFtcDsmYW1wOyAoJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MFwmcXVvdDsgfHwgJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MlwmcXVvdDspKSB8fCAoJGxvYyA9PSBcJnF1b3Q7Y2FtcGFpZ252aWV3XCZxdW90OykpIHsgDQoNCglpZiAoaXNzZXQoJHNlYXJjaF9lbmFibGVkKSkgew0KCSRhZHZlcnRpc2VyX25hbWVfY29va2llID0gc3RyaXBzbGFzaGVzKFwmcXVvdDskYWR2ZXJ0aXNlcl9uYW1lXCZxdW90Oyk7DQoJc2V0Y29va2llKFwmcXVvdDtBRFBFRVBTUFJFRlwmcXVvdDssIFwmcXVvdDskYnl6b25lfCRieXNpemV8JGFkdmVydGlzZXJfbmFtZV9jb29raWV8JHNlYXJjaGJ5Y3JlYXRpb258JHNlYXJjaGJ5Y3JlYXRpb25fZGF5c3wkc2VhcmNoYnlzdGF0dXN8JHNlYXJjaGJ5YWRzXCZxdW90OywgMCwgXCZxdW90Oy9cJnF1b3Q7LCBcJnF1b3Q7XCZxdW90OywgMCk7IA0KCX0NCgllbHNlaWYgKCghaXNzZXQoJHNlYXJjaF9lbmFibGVkKSkgJmFtcDsmYW1wOyAoaXNzZXQoJEhUVFBfQ09PS0lFX1ZBUlNbXCZxdW90O0FEUEVFUFNQUkVGXCZxdW90O10pKSkgew0KCWxpc3QoJGJ5em9uZSwkYnlzaXplLCRhZHZlcnRpc2VyX25hbWUsJHNlYXJjaGJ5Y3JlYXRpb24sJHNlYXJjaGJ5Y3JlYXRpb25fZGF5cywkc2VhcmNoYnlzdGF0dXMsJHNlYXJjaGJ5YWRzKSAgPSBleHBsb2RlKFwmIzAzOTt8XCYjMDM5OywkSFRUUF9DT09LSUVfVkFSU1tcJnF1b3Q7QURQRUVQU1BSRUZcJnF1b3Q7XSk7DQoJfQ0KJGxvYyA9IFwmcXVvdDtjYW1wYWlnbnZpZXdcJnF1b3Q7Ow0KY2FtcGFpZ252aWV3KCR1aWQsJG1lc3NhZ2Vjb2RlLCR2YWxpZGF0aW9uX3VybCwkcmVnX2NvZGUsJGJ5em9uZSwkYnlzaXplLCRhZHZlcnRpc2VyX25hbWUsJHNlYXJjaGJ5Y3JlYXRpb24sJHNlYXJjaGJ5Y3JlYXRpb25fZGF5cywkc2VhcmNoYnlzdGF0dXMsJHNlYXJjaGJ5YWRzLCRwYWdlbnVtYmVyKTsNCn0NCmVsc2VpZiAoKCFpc3NldCgkX0NPT0tJRVtpdGVtbm9dKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRjb29raWVuYW1lKSkgJmFtcDsmYW1wOyAoIWVtcHR5KCRjb29raWVwYXNzKSkgJmFtcDsmYW1wOyAoJGxvZ2ludHlwZSA9PSBcJnF1b3Q7MVwmcXVvdDspICZhbXA7JmFtcDsgKGVtcHR5KCRsb2MpKSApIHsgc2hvd19jYW1wYWlnbl9zdGF0cygkdWlkLCRjYW1wYWlnbmlkLCR0b2RheSwkaG91cmRhdGUsJGZyb21fZGF0ZSwkdG9fZGF0ZSwkZXhwb3J0KTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtnZW5fZXJyb3JcJnF1b3Q7KSB7IGdlbmVycm9yKCRlcnJvcmNvZGUpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2luc2VydF91cGRhdGVfYWR2ZXJ0aXNlclwmcXVvdDspIHsgY3JlYXRlX2NhbXBhaWduKCR1aWQsJGNhbXBhaWduaWQsJGxvZ2ludHlwZSk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7c2V0dXBfYWNjb3VudFwmcXVvdDspIHsgc2V0dXBfYWR2ZXJ0aXNpbmdfYWNjb3VudCgkdWlkLCRlNiwkZTcsJGU5LCRlMTIsJGUxNCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7YWNjb3VudF9jb25maXJtYXRpb25cJnF1b3Q7KSB7IGFjY291bnRfY3JlYXRlZCgkdWlkLCR1c2VyX3VpZCwkYWNjbmFtZSwkYmFubmVyX3VybCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7ZWRpdF9nZW90YXJnZXRpbmdcJnF1b3Q7KSB7IGFkdmVydGlzZXJfZ2VvdGFyZ2V0aW5nKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2NoYW5nZXBhc3N3b3JkXCZxdW90OykgeyBjaGFuZ2VfYWRtaW5fcGFzcygkdWlkLCRjYW1wYWlnbmlkKTsgfQ0KZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7bWFuYWdlX3VzZXJfbG9naW5zXCZxdW90OykgICZhbXA7JmFtcDsgKGZpbGVfZXhpc3RzKFwmcXVvdDtzdXBwbGVtZW50YWwvbWdyX2xvZ2luX21vZHVsZS5waHBcJnF1b3Q7KSkpIHsNCmluY2x1ZGUoXCZxdW90O3N1cHBsZW1lbnRhbC9tZ3JfbG9naW5fbW9kdWxlLnBocFwmcXVvdDspOw0KIyBGdW5jdGlvbnMgZm9yIHRoZSBBZGQtb24gTW9kdWxlIGFyZSBjYWxsZWQgd2l0aGluIHRoZSBtb2R1bGUgcHJvZ3JhbQ0KfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDttYWludGFpbl9zcGlkZXJfcm9ib3RcJnF1b3Q7KSB7IG1haW50YWluX3NwaWRlcl9yb2JvdCgkdWlkLCRwYWdlbnVtYmVyKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtwZXJmb3JtX21haW50YWluYW5jZVwmcXVvdDspIHsgZXhlX21haW50YWluYW5jZSgkdWlkLCRtZXNzYWdlY29kZSwkbXlzcWxkYXRhYmFzZSk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7YmFja3VwZGJhc2VcJnF1b3Q7KSB7IGJhY2t1cF9kYmFzZSgkdWlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtsb2dpbl9sb29rdXBcJnF1b3Q7KSB7IGxvZ2luX2xvb2t1cCgkdWlkLCRlbWFpbCwkcmVzZXRpZCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7b3JkZXJoaXN0b3J5XCZxdW90OykgeyBvcmRlcl9oaXN0b3J5KCR1aWQsJHBhZ2VudW1iZXIsJHN0YXJ0X2RhdGUsJGVuZF9kYXRlLCRhZHZlcnRpc2VyX25hbWUsJGVtYWlsX2FkZHJlc3MsJHRyYW5zaWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2FkdmVydGlzZXJvcmRlcmhpc3RvcnlcJnF1b3Q7KSB7IGFkdmVydGlzZXJfb3JkZXJfaGlzdG9yeSgkdWlkLCRjYW1wYWlnbmlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDt2aWV3X2F1ZGl0X2xvZ1wmcXVvdDspIHsgdmlld19hdWRpdF9sb2coJHVpZCwkcGFnZW51bWJlcik7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7Y3VzdG9tc2l6ZVwmcXVvdDspIHsgZGVmaW5lX2N1c3RvbXNpemUoJHVpZCwkY2FtcGFpZ25pZCwkYWRubyk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7ZW1haWxfYWR2ZXJ0aXNlcnNcJnF1b3Q7KSB7IHByZXBhcmVfZW1haWxzKCR1aWQsJG1vZGUsJGVycm9ycywkdG8sJGZyb20sJHN1YmplY3QsJG1lc3NhZ2UpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2luaXBheW1lbnRcJnF1b3Q7KSB7IGluaXBheW1lbnQoJHVpZCwkaWRubywkY2MsJHpvbmVfb3ZlcnJpZGUsJHF1YW50aXR5LCRyZW5ld2FkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtwYXlvcmRlclwmcXVvdDspIHsgYXV0aF9wYXltZW50X2Zvcm0oJHVpZCwkaXRlbW5vLCRjdXN0b20pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2dlbmVyYXRlX2FkX2NvZGVcJnF1b3Q7KSB7IGdlbl9hZF9jb2RlKCR1aWQsJGFkc2l6ZSwkdHlwZSwkem9uZSwkcG9zaXRpb24sJHN0eWxlLCRib3JkZXIsJHRhcmdldCwkYmFubmVyX3VybCwkZGlzcGxheXNldHRpbmcsJGdzcGFjaW5nLCRyb3RhdGVzZWNvbmRzLCRidG90YWwsJGdyb3VwaW5nLCR0Y29sb3IsJHRleHRjb2xvciwkbGNvbG9yLCRnd2lkdGgsJGdoZWlnaHQsJGNvbHdpZHRoLCRjb2xoZWlnaHQsJGJyb3dzLCRiY29sdW1ucywkdGJvcmRlciwkY3BhZGRpbmcsJGJvY29sb3IsJGJvY29sb3JsaWdodCwkYm9jb2xvcmRhcmssJHN1Ym1pdCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7Y3JlYXRlYWR2ZXJ0YWRcJnF1b3Q7KSB7IHNldHVwX2NhbXBhaWduYWQoJHVpZCwkY2FtcGFpZ25pZCwkYWRubywkYWR0eXBlLCRmbGFnLCRiYW5uZXJfdXJsKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtzaG93X2NhbXBhaWduX2FkXCZxdW90OykgeyBzaG93X2NhbXBhaWduX2FkKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O3ZpZXdfY2FtcGFpZ25fc3RhdHNcJnF1b3Q7KSB7IHNob3dfY2FtcGFpZ25fc3RhdHMoJHVpZCwkY2FtcGFpZ25pZCwkdG9kYXksJGhvdXJkYXRlLCRmcm9tX2RhdGUsJHRvX2RhdGUsJGV4cG9ydCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7dmlld19hY2NvdW50X3N0YXRzXCZxdW90OykgeyBzaG93X2FjY291bnRfc3RhdHMoJHVpZCwkdHlwZSwkcGVyaW9kLCR0b2RheSwkaG91cmRhdGUsJGZyb21fZGF0ZSwkdG9fZGF0ZSwkZXhwb3J0LCRwYWdlbnVtYmVyKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDt2aWV3X2FkX3N0YXRzXCZxdW90OykgeyBzaG93X2FkX3N0YXRzKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8sJHRvZGF5LCRob3VyZGF0ZSwkZnJvbV9kYXRlLCR0b19kYXRlKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtzZXR1cF9wcmljZV9saXN0XCZxdW90OykgeyBzaG93X3ByaWNlX2xpc3QoJHVpZCwkaWRubywkYmFubmVyX3VybCxGQUxTRSk7IH0NCmVsc2VpZiAoKCRsb2MgPT0gXCZxdW90O2FkX3JhdGVfYnV0dG9uc1wmcXVvdDspICZhbXA7JmFtcDsgKChpc3NldCgkcmVtb3ZlX2FkX3BrYikpIHx8IChpc3NldCgkcmVtb3ZlX2FkX3BrYl94KSkgfHwgKGlzc2V0KCRyZW1vdmVfYWRfcGtiX3kpKSkpIHsgaWYgKGVtcHR5KCRpZG5vKSkgeyBnZW5lcnJvcihcJnF1b3Q7MDM2XCZxdW90Oyk7IH0gZWxzZSB7IHNob3dfcHJpY2VfbGlzdCgkdWlkLCRpZG5vLCRiYW5uZXJfdXJsLFwmcXVvdDtkZWxldGVcJnF1b3Q7KTsgfSB9DQplbHNlaWYgKCgkbG9jID09IFwmcXVvdDthZF9yYXRlX2J1dHRvbnNcJnF1b3Q7KSAmYW1wOyZhbXA7ICgoaXNzZXQoJGNyZWF0ZV9hZF9wa2IpKSB8fCAoaXNzZXQoJGNyZWF0ZV9hZF9wa2JfeCkpIHx8IChpc3NldCgkY3JlYXRlX2FkX3BrYl95KSkpKSB7IGVkaXRfYWRfcGFja2FnZSgkdWlkLEZBTFNFKTsgfQ0KZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7YWRfcmF0ZV9idXR0b25zXCZxdW90OykgJmFtcDsmYW1wOyAoKGlzc2V0KCRtb2RpZnlfYWRfcGtiKSkgfHwgKGlzc2V0KCRtb2RpZnlfYWRfcGtiX3gpKSB8fCAoaXNzZXQoJG1vZGlmeV9hZF9wa2JfeSkpKSkgeyBpZiAoZW1wdHkoJGlkbm8pKSB7IGdlbmVycm9yKFwmcXVvdDswMzZcJnF1b3Q7KTsgfSBlbHNlIHsgZWRpdF9hZF9wYWNrYWdlKCR1aWQsJGlkbm8pOyB9IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7dmlld19hZHJhdGVzXCZxdW90OykgeyBzaG93X2FkX3JhdGVzKCR1aWQsJGJhbm5lcl91cmwsJGxvZ2luaWQsJHR4bmtleSwkdGVzdG1vZGUsJGNvdXBvbl9jb2RlLCR6b25lX292ZXJyaWRlLCRhZF90eXBlLCRyZW5ld2FkLCRpZG5vKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtyZXNldF9hZF9zdGF0c1wmcXVvdDspIHsgcmVzZXRfYWRfc3RhdHMoJHVpZCwkY2FtcGFpZ25pZCwkYWRubyk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7c2V0dXBfdGFyZ2V0X3pvbmVcJnF1b3Q7KSB7IGRlZmluZV90YXJnZXRzKCR1aWQsJGFjdGlvbiwkdGlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtlZGl0cGF5bWVudFwmcXVvdDspIHsgZWRpdF9vcmRlcl9kZXRhaWxzKCR1aWQsJGlkLCRjYW1wYWlnbmlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtsb2dvdXRcJnF1b3Q7KSB7IGxvZ291dF9hY2NvdW50KCR1aWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O3N1c3BlbmRfY2FtcGFpZ25cJnF1b3Q7KSB7IHN1c3BlbmRfY2FtcGFpZ24oJHVpZCwkY2FtcGFpZ25pZCwkbW9kZSk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7c3VzcGVuZF9jYW1wYWlnbl9hZFwmcXVvdDspIHsgc3VzcGVuZF9jYW1wYWlnbl9hZCgkdWlkLCRjYW1wYWlnbmlkLCRtb2RlLCRhZG5vKTsgfQ0KZWxzZWlmICgoJGxvYyA9PSBcJnF1b3Q7ZGVsZXRlX2NhbXBhaWduXCZxdW90OykgfHwgKCRsb2MgPT0gXCZxdW90O0RlbGV0ZSBTZWxlY3RlZCBBZHZlcnRpc2Vyc1wmcXVvdDspKSB7IGRlbGV0ZV9jYW1wYWlnbigkdWlkLCRjYW1wYWlnbmlkLCRtb2RlLCRzdWJfYWRtaW5fZW1haWwpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O1Blcm1hbmVudGx5IFJlbW92ZSBTZWxlY3RlZCBBZHNcJnF1b3Q7KSB7IGRlbGV0ZV9hZF9wZXJtKCR1aWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O1Jlc3RvcmUgRGVsZXRlZCBBZHNcJnF1b3Q7KSB7IHJlc3RvcmVfYWRfcGVybSgkdWlkLCRhZG5vKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtQZXJtYW5lbnRseSBSZW1vdmUgU2VsZWN0ZWQgQWR2ZXJ0aXNlcnNcJnF1b3Q7KSB7IGRlbGV0ZV9jYW1wYWlnbl9wZXJtKCR1aWQsJGNhbXBhaWduaWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O1Jlc3RvcmUgRGVsZXRlZCBBZHZlcnRpc2Vyc1wmcXVvdDspIHsgcmVzdG9yZV9jYW1wYWlnbl9wZXJtKCR1aWQsJGNhbXBhaWduaWQpOyB9DQplbHNlaWYgKCgkbG9jID09IFwmcXVvdDtkZWxldGVfY2FtcGFpZ25fYWRcJnF1b3Q7KSB8fCAoJGxvYyA9PSBcJnF1b3Q7RGVsZXRlIFNlbGVjdGVkIEFkc1wmcXVvdDspKSB7IGRlbGV0ZV9jYW1wYWlnbl9hZCgkdWlkLCRhZG5vLCRtb2RlLCRzdWJfYWRtaW5fZW1haWwpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2RlbGV0ZV9jYW1wYWlnbl9hZF91c2VyXCZxdW90OykgeyBkZWxldGVfY2FtcGFpZ25fYWRfdXNlcigkdWlkLCRjYW1wYWlnbmlkLCRhZG5vKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtlZGl0X2NhbXBhaWduX2FkXCZxdW90OykgeyBlZGl0X2NhbXBhaWduX2FkKCR1aWQsJGNhbXBhaWduaWQsJGFkbm8pOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O3ByZXZpb3VzbHlkZWxldGVkXCZxdW90OykgeyBkZWxldGVkX2Fkc19jYW1wYWlnbnMoJHVpZCk7IH0NCmVsc2VpZiAoJGxvYyA9PSBcJnF1b3Q7ZXhwaXJhdGlvbl9yZXBvcnRcJnF1b3Q7KSB7IGxvYWRfZXhwX3JlcG9ydCgkdWlkKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDtpcGxvZ19yZXBvcnRcJnF1b3Q7KSB7IGxvYWRfaXBsb2dfcmVwb3J0KCR1aWQsJHBhZ2VudW1iZXIpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2RlZmluZV9zZXR0aW5nc1wmcXVvdDspIHsgZGVmaW5lX2FkbWluX3NldHRpbmdzKCR1aWQpOyB9DQplbHNlaWYgKCRsb2MgPT0gXCZxdW90O2RzXCZxdW90OykgeyBsb2NrX2FjY291bnQoJHJlZ2NvZGUsJGFkbWluX2VtYWlsKTsgfQ0KZWxzZWlmICgkbG9jID09IFwmcXVvdDttYXNzX3VwZGF0ZV90YXJnZXRfd2VpZ2h0XCZxdW90OykgeyBtYXNzX3VwZGF0ZV90YXJnZXRfd2VpZ2h0KCR1aWQpOyB9DQplbHNlaWYgKChlbXB0eSgkbG9jKSkgJmFtcDsmYW1wOyAoKGlzc2V0KCR0eG5faWQpKSB8fCAoaXNzZXQoJHN1YnNjcl9pZCkpIHx8IChpc3NldCgkdHgpKSkgJmFtcDsmYW1wOyAoaXNzZXQoJGl0ZW1fbnVtYmVyKSkpIHsNCmlmICgoaXNzZXQoJHR4bl9pZCkpIHx8IChpc3NldCgkdHgpKSl7DQokdHhuX2lkID0gKGlzc2V0KCR0eCkpID8gXCZxdW90OyR0eFwmcXVvdDsgOiBcJnF1b3Q7JHR4bl9pZFwmcXVvdDs7DQokcmVzdWx0ID0gTVlTUUxfUVVFUlkoXCZxdW90O1NFTEVDVCBjb3VudCgqKSBGUk9NIGFkcGVlcHNfcGF5bWVudGhpc3RvcnkgV0hFUkUgcGF5bWVudF9zdGF0dXMgPSBcJiMwMzk7Q29tcGxldGVkXCYjMDM5OyBBTkQgdHhuX2lkID0gXCYjMDM5OyR0eG5faWRcJiMwMzk7IEFORCB0eG5faWQgIT0gXCYjMDM5O1wmIzAzOTtcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQp9IGVsc2Ugew0KJHJlc3VsdCA9IE1ZU1FMX1FVRVJZKFwmcXVvdDtTRUxFQ1QgY291bnQoKikgRlJPTSBhZHBlZXBzX3BheW1lbnRoaXN0b3J5IFdIRVJFIHBheW1lbnRfc3RhdHVzID0gXCYjMDM5O0NvbXBsZXRlZFwmIzAzOTsgQU5EIHN1YnNjcl9pZCA9IFwmIzAzOTskc3Vic2NyX2lkXCYjMDM5OyBBTkQgc3Vic2NyX2lkICE9IFwmIzAzOTtcJiMwMzk7XCZxdW90Oykgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KfQ0KaWYgKG15c3FsX3Jlc3VsdCgkcmVzdWx0LDAsXCZxdW90O2NvdW50KCopXCZxdW90OykgPT0gXCZxdW90OzBcJnF1b3Q7KSB7DQpnZW5lcnJvcihcJnF1b3Q7MDQyXCZxdW90Oyk7DQokdHhuX2lkID0gKGlzc2V0KCRzdWJzY3JfaWQpKSA/IFwmcXVvdDskc3Vic2NyX2lkXCZxdW90OyA6IFwmcXVvdDskdHhuX2lkXCZxdW90OzsNCn0gZWxzZSB7DQplY2hvIFwmcXVvdDsmbHQ7c2NyaXB0IGxhbmd1YWdlPVxcXCZxdW90O2phdmFzY3JpcHRcXFwmcXVvdDsmZ3Q7ZG9jdW1lbnQubG9jYXRpb24uaHJlZj1cJiMwMzk7aW5kZXgucGhwP2xvYz1zZXR1cF9hY2NvdW50JmFtcDtlNj1uZXcmYW1wO2UxMj0kdHhuX2lkJmFtcDtlOT0kaXRlbV9udW1iZXJcJiMwMzk7OyZsdDsvc2NyaXB0Jmd0O1wmcXVvdDs7DQpleGl0Ow0KfQ0KfQ0KZWxzZSB7DQokcmVzdWx0ID0gbXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCByZWdjb2RlIEZST00gYWRwZWVwc19zZXR0aW5ncyBXSEVSRSBhY2NubyA9IFwmIzAzOTsxMDAwMDBcJiMwMzk7IExJTUlUIDFcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7IA0KJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpOw0KaWYgKCRyb3dbcmVnY29kZV0gPT0gXCZxdW90O0ZSQVVEXCZxdW90Oykgew0KJGV2PVwmcXVvdDtoXCZxdW90Oy5cJnF1b3Q7dFwmcXVvdDsuXCZxdW90O3RcJnF1b3Q7LlwmcXVvdDtwXCZxdW90Oy5cJnF1b3Q7OlwmcXVvdDsuXCZxdW90Oy9cJnF1b3Q7LlwmcXVvdDsvXCZxdW90Oy5cJnF1b3Q7d1wmcXVvdDsuXCZxdW90O3dcJnF1b3Q7LlwmcXVvdDt3XCZxdW90Oy5cJnF1b3Q7LlwmcXVvdDsuXCZxdW90O2FcJnF1b3Q7LlwmcXVvdDtkXCZxdW90Oy5cJnF1b3Q7cFwmcXVvdDsuXCZxdW90O2VcJnF1b3Q7LlwmcXVvdDtlXCZxdW90Oy5cJnF1b3Q7cFwmcXVvdDsuXCZxdW90O3NcJnF1b3Q7LlwmcXVvdDsuXCZxdW90Oy5cJnF1b3Q7Y1wmcXVvdDsuXCZxdW90O29cJnF1b3Q7LlwmcXVvdDttXCZxdW90Oy5cJnF1b3Q7L1wmcXVvdDsuXCZxdW90O2VcJnF1b3Q7LlwmcXVvdDt4XCZxdW90Oy5cJnF1b3Q7cFwmcXVvdDsuXCZxdW90O2lcJnF1b3Q7LlwmcXVvdDtyXCZxdW90Oy5cJnF1b3Q7ZVwmcXVvdDsuXCZxdW90O2RcJnF1b3Q7LlwmcXVvdDsuXCZxdW90Oy5cJnF1b3Q7aFwmcXVvdDsuXCZxdW90O3RcJnF1b3Q7LlwmcXVvdDttXCZxdW90Oy5cJnF1b3Q7bFwmcXVvdDs7DQpoZWFkZXIoXCZxdW90O0xvY2F0aW9uOiAkZXZcJnF1b3Q7KTsNCmV4aXQ7DQp9DQplbHNlaWYoKChtZDUoKHN1YnN0cihwcmVnX3JlcGxhY2UoXCYjMDM5Oy9odHRwOlxcL1xcLy9pXCYjMDM5OyxcJiMwMzk7XCYjMDM5OywkdmFsaWRhdGlvbl91cmwpLDAsc3RycG9zKHByZWdfcmVwbGFjZShcJiMwMzk7L2h0dHA6XFwvXFwvL1wmIzAzOTssXCYjMDM5O1wmIzAzOTssJHZhbGlkYXRpb25fdXJsKSxcJnF1b3Q7L1wmcXVvdDspKS5cJnF1b3Q7aXNjXCZxdW90OykpKSE9XCZxdW90OyRyb3dbcmVnY29kZV1cJnF1b3Q7KSAmYW1wOyZhbXA7IChtZDUoXCZxdW90OyRwYXJzZWRbaG9zdF1cJnF1b3Q7IC4gXCZxdW90O2lzY1wmcXVvdDsuIFwmcXVvdDsyXCZxdW90OykhPSBcJnF1b3Q7JHJvd1tyZWdjb2RlXVwmcXVvdDspICZhbXA7JmFtcDsgKG1kNShcJnF1b3Q7JHJvd1tyZWdjb2RlXVwmcXVvdDspIT1cJnF1b3Q7MTk5MzMzNWRiZDJmZTMyOGFjMzU5ZTYzZjM0N2QyYWNcJnF1b3Q7KSAmYW1wOyZhbXA7IChkYXRlKFwmcXVvdDtZbWRcJnF1b3Q7KSZndDs9IGRlX3N0cmluZyhcJnF1b3Q7JHJvd1tyZWdjb2RlXVwmcXVvdDspKSl7DQp1cGRhdGVfcmVnY29kZSgkdWlkKTsNCmV4aXQ7DQp9DQoNCi8vLy8vIGdldCB2ZXJzaW9uIG51bWJlciAvLy8vLy8vDQppZiAoZmlsZV9leGlzdHMoXCZxdW90O3ZlcnNpb24udHh0XCZxdW90OykpIHsNCiRsaWNlbnNlX3R5cGUgPSBmYWxzZTsNCiRmcCA9IGZvcGVuKFwmcXVvdDt2ZXJzaW9uLnR4dFwmcXVvdDssIFwmcXVvdDtyXCZxdW90Oyk7DQokY3VycmVudHZlcnNpb24gPSBmcmVhZCgkZnAsIGZpbGVzaXplKFwmcXVvdDt2ZXJzaW9uLnR4dFwmcXVvdDspKTsNCmZjbG9zZSgkZnApOw0KDQppZiAobWQ1KFwmcXVvdDskcm93W3JlZ2NvZGVdXCZxdW90Oyk9PVwmcXVvdDsxOTkzMzM1ZGJkMmZlMzI4YWMzNTllNjNmMzQ3ZDJhY1wmcXVvdDspIHsgICRsaWNlbnNlX3R5cGUgPSBcJnF1b3Q7KHUpXCZxdW90OzsgfQ0KZWxzZWlmIChwcmVnX21hdGNoKFwmIzAzOTsvW15BLVphLXpdL1wmIzAzOTssICRyb3dbcmVnY29kZV0pKSB7ICRsaWNlbnNlX3R5cGUgPSBcJnF1b3Q7KHMpXCZxdW90OzsgfQ0KZWxzZWlmIChwcmVnX21hdGNoKFwmIzAzOTsvW2EtekEtWl0rL1wmIzAzOTssICRyb3dbcmVnY29kZV0pKSB7ICRsaWNlbnNlX3R5cGUgPSBcJnF1b3Q7KHQpXCZxdW90OzsgfQ0KDQokY3VycmVudHZlcnNpb24gPSAoJGxpY2Vuc2VfdHlwZSkgPyBcJnF1b3Q7JGN1cnJlbnR2ZXJzaW9uXCZxdW90OyAuIFwmcXVvdDskbGljZW5zZV90eXBlXCZxdW90OyA6IFwmcXVvdDskY3VycmVudHZlcnNpb25cJnF1b3Q7Ow0KDQp9DQovLy8vLyBnZXQgdmVyc2lvbiBudW1iZXIgLy8vLy8vLw0KDQovLy8vIEdldCBMYW5ndWFnZSBJbmZvcm1hdGlvbiAvLy8vDQokdXNlcl9sYW5ndWFnZSA9IGFycmF5KCk7DQokcmVzdWx0ID0gbXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCBpZF9rZXksIElGKG1vZGlmaWVkX3ZhbHVlPVwmIzAzOTtcJiMwMzk7LGRlZmF1bHRfdmFsdWUsbW9kaWZpZWRfdmFsdWUpIGFzIGRlZmF1bHRfdmFsdWUgRlJPTSBgYWRwZWVwc19sYW5nYXVnZWAgV0hFUkUgbGFuZ3VhZ2Vfc3R5bGUgPSBcJiMwMzk7REVGQVVMVFwmIzAzOTsgQU5EIHBhZ2UgPSBcJiMwMzk7TE9HSU5cJiMwMzk7XCZxdW90Oykgb3IgZGllKG15c3FsX2Vycm9yKCkpOyANCndoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsNCiRsYW5ndWFnZV9pZCA9IFwmcXVvdDskcm93W2lkX2tleV1cJnF1b3Q7Ow0KJHVzZXJfbGFuZ3VhZ2VbJGxhbmd1YWdlX2lkXSA9IFwmcXVvdDskcm93W2RlZmF1bHRfdmFsdWVdXCZxdW90OzsNCn0NCi8vLy8gR2V0IExhbmd1YWdlIEluZm9ybWF0aW9uIC8vLy8NCg0KZGVjbGFyZWhlYWRlcihcJnF1b3Q7aGVhZGVyXCZxdW90Oyk7DQoNCiR1c2VyX2xhbmd1YWdlWzhdID0gcHJlZ19yZXBsYWNlKFwmcXVvdDsvJmx0O1VJRCZndDsvaVwmcXVvdDssIFwmcXVvdDskdWlkXCZxdW90OywgJHVzZXJfbGFuZ3VhZ2VbOF0pOw0KDQpwcmludCAmbHQ7Jmx0OyZsdDsgRU5EDQombHQ7IS0tIEFkdmVydGlzZXIgTG9naW4gQm94IC0tJmd0Ow0KJmx0O2JyJmd0Ow0KCQkJCSZsdDtkaXYgYWxpZ249XCZxdW90O2NlbnRlclwmcXVvdDsmZ3Q7DQoJCQkJCSZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDsxMDAlXCZxdW90OyBjZWxsc3BhY2luZz1cJnF1b3Q7MFwmcXVvdDsgY2VsbHBhZGRpbmc9XCZxdW90OzVcJnF1b3Q7IGNsYXNzPWdyYXBoY29sdW1uMSZndDsNCgkJCQkJCSZsdDt0ciZndDsNCgkJCQkJCQkmbHQ7dGQgd2lkdGg9XCZxdW90OzRcJnF1b3Q7IGJnY29sb3I9XCZxdW90OyNEQkRCREJcJnF1b3Q7Jmd0OyZhbXA7bmJzcDsmbHQ7L3RkJmd0Ow0KCQkJCQkJCSZsdDt0ZCBiZ2NvbG9yPVwmcXVvdDsjRkZGQkUwXCZxdW90OyZndDsmbHQ7YiZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7Jmd0OyR1c2VyX2xhbmd1YWdlWzFdIHwgJmx0Oy9mb250Jmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzAwMDAwMFwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbMl0mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDsvdGQmZ3Q7DQoNCgkJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJCSZsdDsvdGFibGUmZ3Q7DQoJCQkJJmx0Oy9kaXYmZ3Q7DQombHQ7YnImZ3Q7CQ0KJmx0O2Zvcm0gYWxpZ249XCZxdW90O2NlbnRlclwmcXVvdDsgbWV0aG9kPVwmcXVvdDtQT1NUXCZxdW90OyBhY3Rpb249XCZxdW90O2F1dGhfbG9naW4ucGhwXCZxdW90OyZndDsNCiZsdDtpbnB1dCB0eXBlPVwmcXVvdDtoaWRkZW5cJnF1b3Q7IG5hbWU9XCZxdW90O3VpZFwmcXVvdDsgdmFsdWU9XCZxdW90OyR1aWRcJnF1b3Q7Jmd0Ow0KCQkmbHQ7ZGl2IGFsaWduPVwmcXVvdDtjZW50ZXJcJnF1b3Q7Jmd0Ow0KJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90Ozc1NVwmcXVvdDsgYmFja2dyb3VuZD1cJnF1b3Q7aW1hZ2VzL2JnMi5naWZcJnF1b3Q7IGhlaWdodD1cJnF1b3Q7MjY1XCZxdW90OyZndDsNCgkmbHQ7dHImZ3Q7DQoJCSZsdDt0ZCZndDsNCg0KJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7Jmd0Ow0KCSZsdDt0ciZndDsNCgkJJmx0O3RkJmd0Ow0KCQkmbHQ7dGFibGUgYm9yZGVyPVwmcXVvdDswXCZxdW90OyB3aWR0aD1cJnF1b3Q7MTAwJVwmcXVvdDsgY2VsbHNwYWNpbmc9XCZxdW90OzVcJnF1b3Q7IGNlbGxwYWRkaW5nPVwmcXVvdDs1XCZxdW90OyZndDsNCgkJCSZsdDt0ciZndDsNCgkJCQkmbHQ7dGQgd2lkdGg9XCZxdW90OzQwM1wmcXVvdDsgYWxpZ249XCZxdW90O3JpZ2h0XCZxdW90OyBjb2xzcGFuPVwmcXVvdDsyXCZxdW90OyZndDsNCgkJCQkmbHQ7cCBhbGlnbj1cJnF1b3Q7bGVmdFwmcXVvdDsmZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyZndDsmYW1wOyM5NjMyOyAmbHQ7L2ZvbnQmZ3Q7Jmx0O2ImZ3Q7DQoJCSZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbM10mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDsvdGQmZ3Q7DQoNCgkJCQkmbHQ7dGQgcm93c3Bhbj1cJnF1b3Q7M1wmcXVvdDsmZ3Q7DQoJCQkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzM0N1wmcXVvdDsgaGVpZ2h0PVwmcXVvdDsyMzRcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZ2ltYWdlLmdpZlwmcXVvdDsmZ3Q7DQoJCQkJCSZsdDt0ciZndDsNCgkJCQkJCSZsdDt0ZCB2YWxpZ249XCZxdW90O3RvcFwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbOF0NCgkJCQkJCSZsdDsvdGQmZ3Q7DQoJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJJmx0Oy90YWJsZSZndDsNCgkJCQkmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCg0KCQkJJmx0O3RyJmd0Ow0KCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7MTU1XCZxdW90OyBhbGlnbj1cJnF1b3Q7cmlnaHRcJnF1b3Q7IHZhbGlnbj1cJnF1b3Q7dG9wXCZxdW90OyZndDsmYW1wO25ic3A7Jmx0O3AmZ3Q7Jmx0O2ImZ3Q7DQoJCQkJJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0Ow0KCQkJCSR1c2VyX2xhbmd1YWdlWzRdJmx0O2JyJmd0Ow0KCQkJCSZsdDticiZndDsNCgkJCQkmbHQ7YnImZ3Q7DQoJCQkJJmx0O2JyJmd0Ow0KCQkJCSR1c2VyX2xhbmd1YWdlWzVdJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KDQoJCQkJJmx0O3RkIHdpZHRoPVwmcXVvdDsyNDhcJnF1b3Q7IHZhbGlnbj1cJnF1b3Q7dG9wXCZxdW90OyZndDsNCgkJCQkmYW1wO25ic3A7Jmx0O3AmZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3RleHRcJnF1b3Q7IGF1dG9jb21wbGV0ZT1cJnF1b3Q7b2ZmXCZxdW90OyBuYW1lPVwmcXVvdDtsb2dpbm5hbWVcJnF1b3Q7IHZhbHVlPVwmcXVvdDskSFRUUF9DT09LSUVfVkFSU1tyZW1lbWJlcl9sb2dpbm5hbWVdXCZxdW90OyBzaXplPVwmcXVvdDsyMFwmcXVvdDsmZ3Q7Jmx0O2JyJmd0Ow0KCQkJCSZsdDtpbnB1dCBuYW1lPVwmcXVvdDtyZW1lYmVyX2xvZ2lubmFtZVwmcXVvdDsgdmFsdWU9XCZxdW90OzFcJnF1b3Q7IHR5cGU9XCZxdW90O2NoZWNrYm94XCZxdW90OyZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgc2l6ZT1cJnF1b3Q7MVwmcXVvdDsmZ3Q7JHVzZXJfbGFuZ3VhZ2VbNl0mbHQ7L2ZvbnQmZ3Q7Jmx0O2ZvbnQgc2l6ZT1cJnF1b3Q7MlwmcXVvdDsmZ3Q7Jmx0O2JyJmd0Ow0KCQkJCSZsdDticiZndDsNCgkJCQkmbHQ7L2ZvbnQmZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3Bhc3N3b3JkXCZxdW90OyBhdXRvY29tcGxldGU9XCZxdW90O29mZlwmcXVvdDsgbmFtZT1cJnF1b3Q7bG9naW5wYXNzd29yZFwmcXVvdDsgc2l6ZT1cJnF1b3Q7MjBcJnF1b3Q7Jmd0OyZsdDticiZndDsNCgkJCQkmbHQ7YnImZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3N1Ym1pdFwmcXVvdDsgdmFsdWU9XCZxdW90OyR1c2VyX2xhbmd1YWdlWzddXCZxdW90OyBuYW1lPVwmcXVvdDtzdWJtaXRcJnF1b3Q7IGNsYXNzPVwmcXVvdDtidXR0b250ZXh0XCZxdW90OyZndDsmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCg0KCQkJJmx0Oy90YWJsZSZndDsNCgkJJmx0Oy90ZCZndDsNCgkmbHQ7L3RyJmd0Ow0KDQombHQ7L3RhYmxlJmd0Ow0KJmx0Oy90ZCZndDsNCgkmbHQ7L3RyJmd0Ow0KJmx0Oy90YWJsZSZndDsNCiZsdDsvZm9ybSZndDsNCiZsdDsvZGl2Jmd0Ow0KJmx0OyEtLSBFTkQgTG9naW4gQm94IC0tJmd0Ow0KJmx0O3AgYWxpZ249XCZxdW90O3JpZ2h0XCZxdW90OyZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbCBOYXJyb3dcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0O0J1aWxkOiAkY3VycmVudHZlcnNpb24mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9wJmd0Ow0KRU5EOw0KZGVjbGFyZWhlYWRlcihcJnF1b3Q7Zm9vdGVyXCZxdW90Oyk7DQp9DQoNCmZ1bmN0aW9uIGxvZ2luX2xvb2t1cCgkdWlkLCRlbWFpbCwkcmVzZXRpZCkgew0KZ2xvYmFsICRiYW5uZXJfdXJsLCAkc3ViX2FkbWluX2VtYWlsOw0KDQpkZWNsYXJlaGVhZGVyKFwmcXVvdDtoZWFkZXJcJnF1b3Q7KTsNCg0KaWYgKGVtcHR5KCRlbWFpbCkpIHsNCnByaW50ICZsdDsmbHQ7Jmx0OyBFTkQNCiZsdDshLS0gQWR2ZXJ0aXNlciBVc2VybmFtZS9QYXNzd29yZCBCb3gtLSZndDsNCiZsdDticiZndDsNCiZsdDtkaXYgYWxpZ249XCZxdW90O2NlbnRlclwmcXVvdDsmZ3Q7DQombHQ7dGFibGUgYm9yZGVyPVwmcXVvdDswXCZxdW90OyB3aWR0aD1cJnF1b3Q7MTAwJVwmcXVvdDsgY2VsbHNwYWNpbmc9XCZxdW90OzBcJnF1b3Q7IGNlbGxwYWRkaW5nPVwmcXVvdDs1XCZxdW90OyBjbGFzcz1ncmFwaGNvbHVtbjEmZ3Q7DQombHQ7dHImZ3Q7DQombHQ7dGQgd2lkdGg9XCZxdW90OzRcJnF1b3Q7IGJnY29sb3I9XCZxdW90OyNEQkRCREJcJnF1b3Q7Jmd0OyZhbXA7bmJzcDsmbHQ7L3RkJmd0Ow0KJmx0O3RkIGJnY29sb3I9XCZxdW90OyNGRkZCRTBcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7TG9naW4gUmVtaW5kZXIgfCZsdDsvZm9udCZndDsgJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjMDAwMDAwXCZxdW90OyZndDtSZXRyaWV2ZSB5b3VyIExvZ2luIE5hbWUgYW5kIFBhc3N3b3JkJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KJmx0Oy90ciZndDsNCiZsdDsvdGFibGUmZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDticiZndDsJDQombHQ7Zm9ybSBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyBtZXRob2Q9XCZxdW90O1BPU1RcJnF1b3Q7IGFjdGlvbj1cJnF1b3Q7aW5kZXgucGhwXCZxdW90OyZndDsNCiZsdDtpbnB1dCB0eXBlPVwmcXVvdDtoaWRkZW5cJnF1b3Q7IG5hbWU9XCZxdW90O2xvY1wmcXVvdDsgdmFsdWU9XCZxdW90O2xvZ2luX2xvb2t1cFwmcXVvdDsmZ3Q7DQombHQ7aW5wdXQgdHlwZT1cJnF1b3Q7aGlkZGVuXCZxdW90OyBuYW1lPVwmcXVvdDt1aWRcJnF1b3Q7IHZhbHVlPVwmcXVvdDskdWlkXCZxdW90OyZndDsNCgkJJmx0O2RpdiBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyZndDsNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDs3NTVcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZzIuZ2lmXCZxdW90OyBoZWlnaHQ9XCZxdW90OzI2NVwmcXVvdDsmZ3Q7DQoJJmx0O3RyJmd0Ow0KCQkmbHQ7dGQmZ3Q7DQoNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDsxMDAlXCZxdW90OyZndDsNCgkmbHQ7dHImZ3Q7DQoJCSZsdDt0ZCZndDsNCgkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDs1XCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsmZ3Q7DQoJCQkmbHQ7dHImZ3Q7DQoJCQkJJmx0O3RkIHdpZHRoPVwmcXVvdDs0MDNcJnF1b3Q7IGFsaWduPVwmcXVvdDtyaWdodFwmcXVvdDsgY29sc3Bhbj1cJnF1b3Q7MlwmcXVvdDsmZ3Q7DQoJCQkJJmx0O3AgYWxpZ249XCZxdW90O2xlZnRcJnF1b3Q7Jmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7JmFtcDsjOTYzMjsgJmx0Oy9mb250Jmd0OyZsdDtiJmd0Ow0KCQkmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7Jmd0O0VudGVyIHlvdXIgZS1tYWlsIGFkZHJlc3Mgb24gZmlsZSBiZWxvdzogJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KDQoJCQkJJmx0O3RkIHJvd3NwYW49XCZxdW90OzNcJnF1b3Q7Jmd0Ow0KCQkJCSZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDszNDdcJnF1b3Q7IGhlaWdodD1cJnF1b3Q7MjM0XCZxdW90OyBiYWNrZ3JvdW5kPVwmcXVvdDtpbWFnZXMvYmdpbWFnZS5naWZcJnF1b3Q7Jmd0Ow0KCQkJCQkmbHQ7dHImZ3Q7DQoJCQkJCQkmbHQ7dGQgdmFsaWduPVwmcXVvdDt0b3BcJnF1b3Q7Jmd0OyZsdDtibG9ja3F1b3RlJmd0Ow0KCQkJCQkJCSZsdDt1bCZndDsNCgkJCQkJCQkJJmx0O2xpJmd0OyZsdDtiJmd0OyZsdDt1Jmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7U3RlcCAxJmx0Oy9mb250Jmd0OyZsdDsvdSZndDsmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0OyANCgkJCQkJCQkJRW50ZXIgdGhlIGUtbWFpbCBhZGRyZXNzIHJlZ2lzdGVyZWQgZm9yIHlvdXIgYWNjb3VudC4mbHQ7YnImZ3Q7Jmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7YnImZ3Q7Jmx0Oy9saSZndDsNCgkmbHQ7bGkmZ3Q7Jmx0O2ImZ3Q7Jmx0O3UmZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyZndDtTdGVwIDImbHQ7L2ZvbnQmZ3Q7Jmx0Oy91Jmd0OyAmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0O0FuIGUtbWFpbCB3aWxsIGJlIHNlbnQgaW5zdGFudGx5IHdpdGggeW91ciB1c2VybmFtZSBhbmQgDQoJCQkJCQkJcGFzc3dvcmQgaGludC4mbHQ7YnImZ3Q7Jmx0O2JyJmd0OyZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0Oy9saSZndDsNCiZsdDtsaSZndDsmbHQ7YiZndDsNCg0KCQkJCQkJCQkmbHQ7Zm9udCBmYWNlPVwmcXVvdDtBcmlhbFwmcXVvdDsgY29sb3I9XCZxdW90OyM4MDgwODBcJnF1b3Q7Jmd0OyZsdDt1Jmd0O1RoZW4sJmx0Oy91Jmd0OyZsdDsvZm9udCZndDsNCgkJCQkJCQkJJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyZndDtJZiB5b3Ugc3RpbGwgY2FuXCYjMDM5O3QgcmVtZW1iZXIgeW91ciBwYXNzd29yZCwgeW91IHdpbGwgaGF2ZSBhbiBvcHBvcnR1bml0eSB0byByZXNldCBpdC4mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDsvbGkmZ3Q7DQoJCQkJCQkJJmx0Oy91bCZndDsNCgkJCQkJCSZsdDsvYmxvY2txdW90ZSZndDsNCgkJCQkJCSZsdDsvdGQmZ3Q7DQoJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJJmx0Oy90YWJsZSZndDsNCgkJCQkmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCg0KCQkJJmx0O3RyJmd0Ow0KCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7MTU1XCZxdW90OyBhbGlnbj1cJnF1b3Q7cmlnaHRcJnF1b3Q7IHZhbGlnbj1cJnF1b3Q7dG9wXCZxdW90OyZndDsmYW1wO25ic3A7Jmx0O3AmZ3Q7Jmx0O2ImZ3Q7DQoJCQkJJmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IHNpemU9XCZxdW90OzJcJnF1b3Q7Jmd0O0UtbWFpbCBBZGRyZXNzOiZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0Oy90ZCZndDsNCg0KCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7MjQ4XCZxdW90OyB2YWxpZ249XCZxdW90O3RvcFwmcXVvdDsmZ3Q7DQoJCQkJJmFtcDtuYnNwOyZsdDtwJmd0Ow0KCQkJCSZsdDtpbnB1dCB0eXBlPVwmcXVvdDt0ZXh0XCZxdW90OyBuYW1lPVwmcXVvdDtlbWFpbFwmcXVvdDsgc2l6ZT1cJnF1b3Q7MzBcJnF1b3Q7Jmd0OyZsdDticiZndDsmbHQ7YnImZ3Q7DQoJCQkJJmx0O2lucHV0IHR5cGU9XCZxdW90O3N1Ym1pdFwmcXVvdDsgY2xhc3M9XCZxdW90O2J1dHRvbnRleHRcJnF1b3Q7IHZhbHVlPVwmcXVvdDtFLW1haWwgTG9naW4gRGV0YWlsc1wmcXVvdDsgbmFtZT1cJnF1b3Q7c3VibWl0XCZxdW90OyBjbGFzcz1cJnF1b3Q7YnV0dG9udGV4dFwmcXVvdDsmZ3Q7Jmx0Oy90ZCZndDsNCgkJCSZsdDsvdHImZ3Q7DQoNCgkJCSZsdDsvdGFibGUmZ3Q7DQoJCSZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCg0KJmx0Oy90YWJsZSZndDsNCiZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCiZsdDsvdGFibGUmZ3Q7DQombHQ7L2Zvcm0mZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDshLS0gRW5kIEFkdmVydGlzZXIgVXNlcm5hbWUvUGFzc3dvcmQgQm94LS0mZ3Q7DQpFTkQ7DQp9IGVsc2Ugew0KDQppZiAoKCFlbXB0eSgkcmVzZXRpZCkpIHx8ICgoIWVtcHR5KCRlbWFpbCkpICZhbXA7JmFtcDsgKHByZWdfbWF0Y2goXCYjMDM5Oy9eLitALitcXFxcLi4rJC9cJiMwMzk7LCAkZW1haWwpKSkpIHsNCg0KCSRxdWVyeSA9IE1ZU1FMX1FVRVJZKFwmcXVvdDtzZWxlY3QgYi5hdXRobmFtZSwgYS5hY2NubywgYi5wYXNzd29yZGhpbnQgRlJPTSAgYGFkcGVlcHNfc2V0dGluZ3NgIGEgTEVGVCBKT0lOIGBhZHBlZXBzX2F1dGhgIGIgT04gYS5hY2Nubz1iLmFjY25vIFdIRVJFIGEuYWNjbm89Yi5hY2NubyBBTkQgYi5jYW1wYWlnbmlkID0gXCYjMDM5OzBcJiMwMzk7IEFORCBiLmxvZ2ludHlwZSA9IFwmIzAzOTswXCYjMDM5OyBBTkQgYS5hZG1pbl9lbWFpbCA9IFwmIzAzOTskZW1haWxcJiMwMzk7XCZxdW90Oykgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KCSRudW1iZXIgPSBNWVNRTF9OVU1ST1dTKCRxdWVyeSk7DQoJaWYgKCghaXNzZXQoJHJlc2V0aWQpKSAmYW1wOyZhbXA7ICgkbnVtYmVyICZndDsgMCkpIHsNCgkgICAgICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KCQlzcmFuZCh0aW1lKCkpOw0KCQkka2V5cGFzcyA9IHJhbmQoMTAwMDAwLCAzMDAwMDApOw0KCQlNWVNRTF9RVUVSWShcJnF1b3Q7VVBEQVRFIGFkcGVlcHNfYXV0aCBTRVQgYWRwYXNzY29kZSA9IFwmIzAzOTska2V5cGFzc1wmIzAzOTsgV0hFUkUgYWNjbm8gPSBcJiMwMzk7JHJvd1thY2Nub11cJiMwMzk7IEFORCBsb2dpbnR5cGUgPSBcJiMwMzk7MFwmIzAzOTtcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQoNCgkJJGVtYWlsX21zZy49IFwmcXVvdDtBZHZlcnRpc2luZyBBZG1pbmlzdHJhdG9yLFxcblxcblwmcXVvdDs7DQoJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7V2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIHJlc2V0IHlvdXIgYWRtaW5pc3RyYXRvciBwYXNzd29yZC4gVG8gcmVzZXQgeW91ciBwYXNzd29yZCwgeW91IG11c3QgY2xpY2sgdGhlIGxpbmsgYmVsb3cuIFlvdXIgcGFzc3dvcmQgd2lsbCBiZSByZXNldCB0bzogYWRtaW5cXG5cXG5cJnF1b3Q7Ow0KCQkkZW1haWxfbXNnLj0gXCZxdW90O0lmIHlvdSBkaWQgbm90IG1ha2UgdGhpcyByZXF1ZXN0LCBzaW1wbHkgZGVsZXRlIHRoaXMgZS1tYWlsISBZb3VyIHBhc3N3b3JkIHdpbGwgbm90IGJlIHJlc2V0IHVubGVzcyB0aGUgbGluayBiZWxvdyBpcyBjbGlja2VkLlxcblxcblwmcXVvdDs7DQoJCWlmICghZW1wdHkoJHJvd1twYXNzd29yZGhpbnRdKSkgew0KCQkkZW1haWxfbXNnLj0gXCZxdW90OyoqKioqKioqKipcXG5CZWZvcmUgcmVzZXR0aW5nIHlvdXIgcGFzc3dvcmQsIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBISU5UIG9uIGZpbGU6ICRyb3dbcGFzc3dvcmRoaW50XVxcblRoaXMgbWF5IGFzc2lzdCB5b3UgaW4gcmVtZW1iZXJpbmcgeW91ciBwYXNzd29yZC5cXG4qKioqKioqKioqXFxuXFxuXCZxdW90OzsNCgkJfQ0KCQkkZW1haWxfbXNnLj0gXCZxdW90O1JFU0VUIExJTks6ICRiYW5uZXJfdXJsL2luZGV4LnBocD9sb2M9bG9naW5fbG9va3VwJmFtcDt1aWQ9JHJvd1thY2Nub10mYW1wO3Jlc2V0aWQ9JGtleXBhc3MmYW1wO2VtYWlsPSRlbWFpbFxcblxcblwmcXVvdDs7DQoJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7WW91ciBMb2dpbiBOYW1lIGlzOiAkcm93W2F1dGhuYW1lXVwmcXVvdDs7DQoJCUBtYWlsKCRlbWFpbCwgXCZxdW90O0FkbWluIFBhc3N3b3JkIFJlc2V0IC0gQWN0aW9uIFJlcXVpcmVkXCZxdW90OywgJGVtYWlsX21zZywgXCZxdW90O0Zyb206ICRlbWFpbFwmcXVvdDspOw0KCQlNWVNRTF9RVUVSWShcJnF1b3Q7SU5TRVJUIElOVE8gYGFkcGVlcHNfYWN0aXZpdHlsb2dgIFZBTFVFUyAoTlVMTCxcJiMwMzk7JHJvd1thY2Nub11cJiMwMzk7LE5PVygpLFwmIzAzOTskX1NFUlZFUltSRU1PVEVfQUREUl1cJiMwMzk7LFwmIzAzOTtOT1RJRklDQVRJT05cJiMwMzk7LFwmIzAzOTtQYXNzd29yZCByZXNldCBsaW5rIHNlbnQgdG86ICRyb3dbYXV0aG5hbWVdICgkZW1haWwpXCYjMDM5OylcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQoJCX0NCiAgICAgIAkgICAgICAgICRtc2dfb3V0cHV0ID0gXCZxdW90OyZsdDtwIGFsaWduPVxcXCZxdW90O2NlbnRlclxcXCZxdW90OyZndDsmbHQ7YiZndDsmbHQ7Zm9udCBzaXplPVxcXCZxdW90OzJcXFwmcXVvdDsmZ3Q7V2UgaGF2ZSBzZW50IHlvdXIgbG9naW4gZGV0YWlscyB0byB5b3VyIGUtbWFpbCBBZGRyZXNzLiZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0Oy9wJmd0O1wmcXVvdDs7DQogCQkNCiAgICAgIH0gZWxzZWlmICgoaXNzZXQoJHJlc2V0aWQpKSAmYW1wOyZhbXA7ICgkbnVtYmVyICZndDsgMCkpIHsNCgkJJG1hdGNoX2NvdW50ID0gbXlzcWxfZmV0Y2hfYXJyYXkobXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCBjb3VudCgqKSBhcyBtYXRjaF9jb3VudCwgYXV0aG5hbWUgRlJPTSBhZHBlZXBzX2F1dGggV0hFUkUgYWNjbm8gPSBcJiMwMzk7JHVpZFwmIzAzOTsgQU5EIGFkcGFzc2NvZGUgPSBcJiMwMzk7JHJlc2V0aWRcJiMwMzk7IEFORCBsb2dpbnR5cGUgPSBcJiMwMzk7MFwmIzAzOTsgR1JPVVAgQlkgYXV0aG5hbWVcJnF1b3Q7KSkgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KCQkkcmVzZXRfYXV0aG5hbWUgPSBcJnF1b3Q7JG1hdGNoX2NvdW50W2F1dGhuYW1lXVwmcXVvdDs7DQogIAkJJHJlc2V0X2NvdW50ID0gXCZxdW90OyRtYXRjaF9jb3VudFttYXRjaF9jb3VudF1cJnF1b3Q7Ow0KCQlpZiAoJHJlc2V0X2NvdW50ICZndDsgMCkgew0KCQkkYV9rZXkgPSBNRDUoJHJlc2V0X2F1dGhuYW1lLmFkbWluKTsNCgkJTVlTUUxfUVVFUlkoXCZxdW90O1VQREFURSBhZHBlZXBzX2F1dGggU0VUIGF1dGhwYXNzY29kZT0gXCYjMDM5OyRhX2tleVwmIzAzOTssIGFkcGFzc2NvZGUgPSBcJiMwMzk7XCYjMDM5OywgcGFzc3dvcmRoaW50ID0gXCYjMDM5O1wmIzAzOTsgV0hFUkUgYWNjbm8gPSBcJiMwMzk7JHVpZFwmIzAzOTsgQU5EIGF1dGhuYW1lID0gXCYjMDM5OyRyZXNldF9hdXRobmFtZVwmIzAzOTsgQU5EIGxvZ2ludHlwZSA9IFwmIzAzOTswXCYjMDM5O1wmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCgkJJG1zZ19vdXRwdXQgPSBcJnF1b3Q7Jmx0O3AgYWxpZ249XFxcJnF1b3Q7Y2VudGVyXFxcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IHNpemU9XFxcJnF1b3Q7MlxcXCZxdW90OyZndDtXZSBoYXZlIHJlc2V0IHlvdXIgcGFzc3dvcmQgdG8gYWRtaW4uIFlvdXIgbG9naW4gbmFtZSBpcyBhbHNvIGFkbWluJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7YnImZ3Q7Jmx0Oy9wJmd0O1wmcXVvdDs7DQoJCUBtYWlsKCRlbWFpbCwgXCZxdW90O0FkbWluaXN0cmF0b3IgLSBJTVBPUlRBTlQgUGFzc3dvcmQgUmVzZXRcJnF1b3Q7LCBcJnF1b3Q7QWRtaW5pc3RyYXRvcixcXG5cXG5XZSBoYXZlIHN1Y2Nlc3NmdWxseSByZXNldCB5b3VyIHBhc3N3b3JkIHRvOiBhZG1pblxcblBsZWFzZSBsb2dpbiBhbmQgY2hhbmdlIHRoaXMgZGVmYXVsdCBwYXNzd29yZCB0byBhIG1vcmUgc2VjdXJlIG9uZS5cXG5cXG5MT0dJTiBVUkw6ICRiYW5uZXJfdXJsL2luZGV4LnBocD91aWQ9JHVpZCAoQm9va21hcmsgZm9yIGVhc3kgYWNjZXNzKVwmcXVvdDssIFwmcXVvdDtGcm9tOiAkZW1haWxcJnF1b3Q7KTsNCgkJTVlTUUxfUVVFUlkoXCZxdW90O0lOU0VSVCBJTlRPIGBhZHBlZXBzX2FjdGl2aXR5bG9nYCBWQUxVRVMgKE5VTEwsXCYjMDM5OyR1aWRcJiMwMzk7LE5PVygpLFwmIzAzOTskX1NFUlZFUltSRU1PVEVfQUREUl1cJiMwMzk7LFwmIzAzOTtOT1RJRklDQVRJT05cJiMwMzk7LFwmIzAzOTtQYXNzd29yZCByZXNldCBjb21wbGV0ZWQuIFVzZXJuYW1lOiAkcmVzZXRfYXV0aG5hbWUgKCRlbWFpbClcJiMwMzk7KVwmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCiAgICAgfQ0KDQogICAgIH0gIGVsc2Ugew0KCQkvLyBjaGVjayBmb3IgZS1tYWlsIG9uIGZpbGUNCgkJJHF1ZXJ5ID0gbXlzcWxfcXVlcnkoXCZxdW90O3NlbGVjdCBhLmFjY25vLCBhLmFkdmVydGlzZXJfY29udGFjdCwgYS5hZHZlcnRpc2VyX2VtYWlsLCBiLmFjY25vIGFzIHJlc2V0aWQsIGIuYXV0aG5hbWUsIGIucGFzc3dvcmRoaW50LCBzZXR0aW5ncy5lbWFpbF9zaWduYXR1cmUgZnJvbSBhZHBlZXBzX2NhbXBhaWducyBhIExFRlQgSk9JTiBhZHBlZXBzX2F1dGggYiBPTiBhLmNhbXBhaWduaWQ9Yi5jYW1wYWlnbmlkIExFRlQgSk9JTiBhZHBlZXBzX3NldHRpbmdzIHNldHRpbmdzIE9OIGEuYWNjbm89c2V0dGluZ3MuYWNjbm8gV0hFUkUgYS5hY2Nubz1zZXR0aW5ncy5hY2NubyBBTkQgYi5jYW1wYWlnbmlkIElTIE5PVCBOVUxMIGFuZCBhLmFkdmVydGlzZXJfZW1haWwgPSBcJiMwMzk7JGVtYWlsXCYjMDM5O1wmcXVvdDspOw0KCQkkbnVtYmVyID0gTVlTUUxfTlVNUk9XUygkcXVlcnkpOw0KICAgICAgICAgICAgICAgDQogCQlpZiAoJG51bWJlciAmZ3Q7IDApIHsNCgkJJG1zZ19vdXRwdXQgPSBcJnF1b3Q7Jmx0O3AgYWxpZ249XFxcJnF1b3Q7Y2VudGVyXFxcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IHNpemU9XFxcJnF1b3Q7MlxcXCZxdW90OyZndDtXZSBoYXZlIHNlbnQgeW91ciBsb2dpbiBkZXRhaWxzIHRvIHlvdXIgZS1tYWlsIEFkZHJlc3MuJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7YnImZ3Q7Jmx0O2JyJmd0O1BsZWFzZSBhZGQgJHN1Yl9hZG1pbl9lbWFpbCB0byB5b3VyIHdoaXRlbGlzdCBhcyBpdCB3aWxsIGNvbWUgZnJvbSB0aGlzIGFkZHJlc3MuJmx0Oy9wJmd0O1wmcXVvdDs7DQogCQl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSkpIHsNCgkJJGVtYWlsX21zZyA9ICghZW1wdHkoJHJvd1thZHZlcnRpc2VyX2NvbnRhY3RdKSkgPyBcJnF1b3Q7JHJvd1thZHZlcnRpc2VyX2NvbnRhY3RdOlxcblxcblwmcXVvdDsgOiBcJnF1b3Q7QWR2ZXJ0aXNlcjpcXG5cXG5cJnF1b3Q7Ow0KCQkkZW1haWxfbXNnLj0gXCZxdW90O1lvdSBoYXZlIHJlcXVlc3RlZCB0aGF0IHdlIHNlbmQgeW91ciB1c2VybmFtZSBhbmQvb3IgcGFzc3dvcmQgaGludCB0byBhY2Nlc3MgeW91ciBhZHZlcnRpc2luZyBhY2NvdW50IG9uIG91ciB3ZWJzaXRlLlxcblxcblwmcXVvdDs7DQoJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7VVNFUk5BTUU6ICRyb3dbYXV0aG5hbWVdXFxuXFxuXCZxdW90OzsNCgkJaWYgKCghZW1wdHkoJHJvd1twYXNzd29yZGhpbnRdKSkgJmFtcDsmYW1wOyAoZW1wdHkoJHJlc2V0aWQpKSl7IA0KICAgICAgICAgICAgICAgICRzdWJqZWN0ID0gXCZxdW90O1Bhc3N3b3JkIC0gQWN0aW9uIFJlcXVpcmVkXCZxdW90OzsNCgkJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7UEFTU1dPUkQgSElOVDogJHJvd1twYXNzd29yZGhpbnRdXFxuXFxuXCZxdW90OzsNCiAgICAgICAgICAgICAgICAJJGVtYWlsX21zZy49IFwmcXVvdDtUaGUgYWJvdmUgcGFzc3dvcmQgaGludCBzaG91bGQgYXNzaXN0IHlvdSBpbiByZW1lbWJlcmluZyB5b3VyIHBhc3N3b3JkLCBob3dldmVyIGlmIHlvdSBzdGlsbCBjYW4gbm90IGxvZ2luLCBjbGljayB0aGUgbGluayBiZWxvdyB0byBSRVNFVCB5b3VyIHBhc3N3b3JkIG9yIGNvcHkgYW5kIHBhc3RlIGxpbmsgaW50byB5b3VyIGJyb3dzZXIgYWRkcmVzcyBiYXIuXFxuXFxuXCZxdW90OzsNCgkJCSRlbWFpbF9tc2cuPSBcJnF1b3Q7UkVTRVQgTElOSzogJGJhbm5lcl91cmwvaW5kZXgucGhwP2xvYz1sb2dpbl9sb29rdXAmYW1wO3VpZD0kdWlkJmFtcDtlbWFpbD0kZW1haWwmYW1wO3Jlc2V0aWQ9JHJvd1tyZXNldGlkXVxcblwmcXVvdDs7DQoJCX0gDQoJCWlmICgoZW1wdHkoJHJvd1twYXNzd29yZGhpbnRdKSkgfHwgKCFlbXB0eSgkcmVzZXRpZCkpKXsgDQoJICAgICAgICAkc3ViamVjdCA9IFwmcXVvdDtBZHZlcnRpc2VyIC0gSU1QT1JUQU5UIE5ldyBQYXNzd29yZCBJc3N1ZWRcJnF1b3Q7Ow0KCQkJJGdlbl9wYXNzID0gcmFuZCgxMDAwMCw5OTAwMCk7DQoJCQkkZW1haWxfbXNnLj0gXCZxdW90O1BBU1NXT1JEOiAkZ2VuX3Bhc3NcXG5XZSBoYXZlIHJlc2V0IHlvdXIgcGFzc3dvcmQuIFlvdSBjYW4gY2hhbmdlIG9uY2UgeW91IGxvZ2luLlxcblwmcXVvdDs7DQoJCQkkYXV0aGtleSA9IG1kNSgkcm93W2F1dGhuYW1lXS4kZ2VuX3Bhc3MpOw0KCQkJTVlTUUxfUVVFUlkoXCZxdW90O1VQREFURSBhZHBlZXBzX2F1dGggU0VUIGF1dGhwYXNzY29kZSA9IFwmIzAzOTskYXV0aGtleVwmIzAzOTssIGFkcGFzc2NvZGUgID0gXCYjMDM5OyRnZW5fcGFzc1wmIzAzOTssIHBhc3N3b3JkaGludCA9IFwmIzAzOTtcJiMwMzk7IFdIRVJFIGFjY25vID0gXCYjMDM5OyRyZXNldGlkXCYjMDM5OyBBTkQgYXV0aG5hbWUgPSBcJiMwMzk7JHJvd1thdXRobmFtZV1cJiMwMzk7IEFORCBsb2dpbnR5cGUgPSBcJiMwMzk7MVwmIzAzOTtcJnF1b3Q7KSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICBNWVNRTF9RVUVSWShcJnF1b3Q7SU5TRVJUIElOVE8gYGFkcGVlcHNfYWN0aXZpdHlsb2dgIFZBTFVFUyAoTlVMTCxcJiMwMzk7JHJvd1thY2Nub11cJiMwMzk7LE5PVygpLFwmIzAzOTskX1NFUlZFUltSRU1PVEVfQUREUl1cJiMwMzk7LFwmIzAzOTtOT1RJRklDQVRJT05cJiMwMzk7LFwmIzAzOTtQYXNzd29yZCByZXNldCBjb21wbGV0ZWQuIFVzZXJuYW1lOiAkcm93W2F1dGhuYW1lXSAoJHJvd1thZHZlcnRpc2VyX2VtYWlsXSlcJiMwMzk7KVwmcXVvdDspIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCgkJfQ0KICAgICAgIA0KCQkkZW1haWxfbXNnLj0gXCZxdW90O1xcbkxPR0lOIFVSTDogJGJhbm5lcl91cmwvaW5kZXgucGhwP3VpZD0kcm93W2FjY25vXSAoQm9va21hcmsgZm9yIGVhc3kgYWNjZXNzKVxcblxcbiRyb3dbZW1haWxfc2lnbmF0dXJlXVwmcXVvdDs7DQoJCUBtYWlsKCRyb3dbYWR2ZXJ0aXNlcl9lbWFpbF0sIFwmcXVvdDskc3ViamVjdFwmcXVvdDssIFwmcXVvdDskZW1haWxfbXNnXCZxdW90OywgXCZxdW90O0Zyb206ICRzdWJfYWRtaW5fZW1haWxcJnF1b3Q7KTsNCgkJfQ0KCQl9IGVsc2Ugew0KCQkkbXNnX291dHB1dCA9IFwmcXVvdDsmbHQ7cCBhbGlnbj1cXFwmcXVvdDtjZW50ZXJcXFwmcXVvdDsmZ3Q7Jmx0O2ImZ3Q7Jmx0O2ZvbnQgc2l6ZT1cXFwmcXVvdDsyXFxcJnF1b3Q7Jmd0O1dlIGNvdWxkIG5vdCBsb2NhdGUgYW4gYWNjb3VudCBmb3IgdGhpcyBlLW1haWwgYWRkcmVzcy4mbHQ7L2ZvbnQmZ3Q7Jmx0Oy9iJmd0OyZsdDticiZndDsmbHQ7YnImZ3Q7UGxlYXNlIGNvbnRhY3QgJHN1Yl9hZG1pbl9lbWFpbCBmb3IgYXNzaXN0YW5jZSAmbHQ7YnImZ3Q7b3IgdmVyaWZ5IHlvdSBoYXZlIGVudGVyZWQgdGhlIGUtbWFpbCBhZGRyZXNzIHdlIGhhdmUgb24gZmlsZS4mbHQ7L3AmZ3Q7XCZxdW90OzsNCgkJfQ0KDQogICAgIH0NCn0gDQoNCiRtc2dfb3V0cHV0ID0gKGVtcHR5KCRtc2dfb3V0cHV0KSkgPyBcJnF1b3Q7T29wcywgcGxlYXNlIGNoZWNrIHlvdXIgZGF0YSBhbmQgdHJ5IGFnYWluLlwmcXVvdDsgOiBcJnF1b3Q7JG1zZ19vdXRwdXRcJnF1b3Q7Ow0KDQpwcmludCAmbHQ7Jmx0OyZsdDsgRU5EDQombHQ7IS0tIEFkdmVydGlzZXIgVXNlcm5hbWUvUGFzc3dvcmQgQ29uZmlybWF0aW9uLS0mZ3Q7DQombHQ7YnImZ3Q7DQoJCQkJJmx0O2RpdiBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyZndDsNCgkJCQkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDswXCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsgY2xhc3M9Z3JhcGhjb2x1bW4xJmd0Ow0KCQkJCQkJJmx0O3RyJmd0Ow0KCQkJCQkJCSZsdDt0ZCB3aWR0aD1cJnF1b3Q7NFwmcXVvdDsgYmdjb2xvcj1cJnF1b3Q7I0RCREJEQlwmcXVvdDsmZ3Q7JmFtcDtuYnNwOyZsdDsvdGQmZ3Q7DQoJCQkJCQkJJmx0O3RkIGJnY29sb3I9XCZxdW90OyNGRkZCRTBcJnF1b3Q7Jmd0OyZsdDtiJmd0OyZsdDtmb250IGZhY2U9XCZxdW90O0FyaWFsXCZxdW90OyBjb2xvcj1cJnF1b3Q7IzgwODA4MFwmcXVvdDsmZ3Q7TG9naW4gUmVtaW5kZXIgfCAmbHQ7L2ZvbnQmZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjMDAwMDAwXCZxdW90OyZndDtSZXRyaWV2ZSB5b3VyIExvZ2luIE5hbWUgYW5kIFBhc3N3b3JkJmx0Oy9mb250Jmd0OyZsdDsvYiZndDsmbHQ7L3RkJmd0Ow0KDQoJCQkJCQkmbHQ7L3RyJmd0Ow0KCQkJCQkmbHQ7L3RhYmxlJmd0Ow0KCQkJCSZsdDsvZGl2Jmd0Ow0KJmx0O2JyJmd0OwkNCgkJJmx0O2RpdiBhbGlnbj1cJnF1b3Q7Y2VudGVyXCZxdW90OyZndDsNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDs3NTVcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZzIuZ2lmXCZxdW90OyBoZWlnaHQ9XCZxdW90OzI2NVwmcXVvdDsmZ3Q7DQoJJmx0O3RyJmd0Ow0KCQkmbHQ7dGQmZ3Q7DQoNCiZsdDt0YWJsZSBib3JkZXI9XCZxdW90OzBcJnF1b3Q7IHdpZHRoPVwmcXVvdDsxMDAlXCZxdW90OyZndDsNCgkmbHQ7dHImZ3Q7DQoJCSZsdDt0ZCZndDsNCgkJJmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzEwMCVcJnF1b3Q7IGNlbGxzcGFjaW5nPVwmcXVvdDs1XCZxdW90OyBjZWxscGFkZGluZz1cJnF1b3Q7NVwmcXVvdDsmZ3Q7DQoJCQkmbHQ7dHImZ3Q7DQoJJmx0O3RkIHJvd3NwYW49XCZxdW90OzFcJnF1b3Q7Jmd0Ow0KCQkJCSZsdDtjZW50ZXImZ3Q7Jmx0O3RhYmxlIGJvcmRlcj1cJnF1b3Q7MFwmcXVvdDsgd2lkdGg9XCZxdW90OzM0N1wmcXVvdDsgaGVpZ2h0PVwmcXVvdDsyMzRcJnF1b3Q7IGJhY2tncm91bmQ9XCZxdW90O2ltYWdlcy9iZ2ltYWdlLmdpZlwmcXVvdDsmZ3Q7DQoJCQkJCSZsdDt0ciZndDsNCgkJCQkJCSZsdDt0ZCB2YWxpZ249XCZxdW90O3RvcFwmcXVvdDsmZ3Q7Jmx0O2Jsb2NrcXVvdGUmZ3Q7DQoJCQkJCQkJJmx0O3VsJmd0Ow0KCQkJCQkJCQkmbHQ7bGkmZ3Q7Jmx0O2ImZ3Q7Jmx0O2ZvbnQgZmFjZT1cJnF1b3Q7QXJpYWxcJnF1b3Q7IGNvbG9yPVwmcXVvdDsjODA4MDgwXCZxdW90OyBzaXplPVwmcXVvdDsyXCZxdW90OyZndDskbXNnX291dHB1dCZsdDsvZm9udCZndDsmbHQ7L2ImZ3Q7Jmx0O2JyJmd0OyZsdDsvbGkmZ3Q7DQoJCQkJCQkJJmx0Oy91bCZndDsNCgkJCQkJCSZsdDsvYmxvY2txdW90ZSZndDsNCgkJCQkJCSZsdDsvdGQmZ3Q7DQoJCQkJCSZsdDsvdHImZ3Q7DQoJCQkJJmx0Oy90YWJsZSZndDsmbHQ7L2NlbnRlciZndDsNCgkJCQkmbHQ7L3RkJmd0Ow0KCQkJJmx0Oy90ciZndDsNCgkJCSZsdDsvdGFibGUmZ3Q7DQoJCSZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCg0KJmx0Oy90YWJsZSZndDsNCiZsdDsvdGQmZ3Q7DQoJJmx0Oy90ciZndDsNCiZsdDsvdGFibGUmZ3Q7DQombHQ7L2RpdiZndDsNCiZsdDshLS0gRW5kIEFkdmVydGlzZXIgVXNlcm5hbWUvUGFzc3dvcmQgQ29uZmlybWF0aW9uLS0mZ3Q7DQpFTkQ7DQp9IA0KZGVjbGFyZWhlYWRlcihcJnF1b3Q7Zm9vdGVyXCZxdW90Oyk7DQp9DQoNCmZ1bmN0aW9uIGltYWdlU2NhbGUoJHcsICRoKSB7DQppZiAoKCR3ICZndDsgMCkgJmFtcDsmYW1wOyAoJGggJmd0OyAwKSkgew0KJHJhdGlvID0gKCR3IC8gJGgpOw0KfSBlbHNlIHsNCiRyYXRpbyA9IDA7DQp9DQovL3NjYWxlIGJ5IGhlaWdodA0KJHJldFsxXSA9IDI1Ow0KJHJldFswXSA9IChyb3VuZCgoMjUgKiAkcmF0aW8pKSAmbHQ7IDQwMCkgPyByb3VuZCgoMjUgKiAkcmF0aW8pKSA6IFwmcXVvdDs0MDBcJnF1b3Q7Ow0KcmV0dXJuICRyZXQ7DQp9DQovLyBjbG9zZSBkYXRhYmFzZSBjb25uZWN0aW9uDQpkYmNvbm5lY3Rpb25fZW5kICgpOw0KLy8gY2xvc2UgZGF0YWJhc2UgY29ubmVjdGlvbg0Kb2JfZW5kX2ZsdXNoKCk7DQoNCg=="))), ENT_QUOTES));
?> 

Function Calls

base64_decode 1
stripcslashes 1

Variables

None

Stats

MD5 60a616c1d28c0268437be512aa4b2dc9
Eval Count 0
Decode Time 6178 ms