1778987833
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Ae2d1d559b301c4cb6c6a2d585bd29ab7-d741ef359961ac933f8a6cd296434d8c
s:4268:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE5OiJlcnJvcl9leGNlcHRpb24ucGhwIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImQ3NDFlZjM1OTk2MWFjOTMzZjhhNmNkMjk2NDM0ZDhjIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDA6ImFwcC9WaWV3cy9lcnJvcnMvY2xpL2Vycm9yX2V4Y2VwdGlvbi5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjIyNzI6Ijw/cGhwDQoNCnVzZSBDb2RlSWduaXRlclxDTElcQ0xJOw0KDQovLyBUaGUgbWFpbiBFeGNlcHRpb24NCkNMSTo6d3JpdGUoJ1snIC4gJGV4Y2VwdGlvbjo6Y2xhc3MgLiAnXScsICdsaWdodF9ncmF5JywgJ3JlZCcpOw0KQ0xJOjp3cml0ZSgkbWVzc2FnZSk7DQpDTEk6OndyaXRlKCdhdCAnIC4gQ0xJOjpjb2xvcihjbGVhbl9wYXRoKCRleGNlcHRpb24tPmdldEZpbGUoKSkgLiAnOicgLiAkZXhjZXB0aW9uLT5nZXRMaW5lKCksICdncmVlbicpKTsNCkNMSTo6bmV3TGluZSgpOw0KDQokbGFzdCA9ICRleGNlcHRpb247DQoNCndoaWxlICgkcHJldkV4Y2VwdGlvbiA9ICRsYXN0LT5nZXRQcmV2aW91cygpKSB7DQogICAgJGxhc3QgPSAkcHJldkV4Y2VwdGlvbjsNCg0KICAgIENMSTo6d3JpdGUoJyAgQ2F1c2VkIGJ5OicpOw0KICAgIENMSTo6d3JpdGUoJyAgWycgLiAkcHJldkV4Y2VwdGlvbjo6Y2xhc3MgLiAnXScsICdyZWQnKTsNCiAgICBDTEk6OndyaXRlKCcgICcgLiAkcHJldkV4Y2VwdGlvbi0+Z2V0TWVzc2FnZSgpKTsNCiAgICBDTEk6OndyaXRlKCcgIGF0ICcgLiBDTEk6OmNvbG9yKGNsZWFuX3BhdGgoJHByZXZFeGNlcHRpb24tPmdldEZpbGUoKSkgLiAnOicgLiAkcHJldkV4Y2VwdGlvbi0+Z2V0TGluZSgpLCAnZ3JlZW4nKSk7DQogICAgQ0xJOjpuZXdMaW5lKCk7DQp9DQoNCi8vIFRoZSBiYWNrdHJhY2UNCmlmIChkZWZpbmVkKCdTSE9XX0RFQlVHX0JBQ0tUUkFDRScpICYmIFNIT1dfREVCVUdfQkFDS1RSQUNFKSB7DQogICAgJGJhY2t0cmFjZXMgPSAkbGFzdC0+Z2V0VHJhY2UoKTsNCg0KICAgIGlmICgkYmFja3RyYWNlcykgew0KICAgICAgICBDTEk6OndyaXRlKCdCYWNrdHJhY2U6JywgJ2dyZWVuJyk7DQogICAgfQ0KDQogICAgZm9yZWFjaCAoJGJhY2t0cmFjZXMgYXMgJGkgPT4gJGVycm9yKSB7DQogICAgICAgICRwYWRGaWxlICA9ICcgICAgJzsgLy8gNCBzcGFjZXMNCiAgICAgICAgJHBhZENsYXNzID0gJyAgICAgICAnOyAvLyA3IHNwYWNlcw0KICAgICAgICAkYyAgICAgICAgPSBzdHJfcGFkKCRpICsgMSwgMywgJyAnLCBTVFJfUEFEX0xFRlQpOw0KDQogICAgICAgIGlmIChpc3NldCgkZXJyb3JbJ2ZpbGUnXSkpIHsNCiAgICAgICAgICAgICRmaWxlcGF0aCA9IGNsZWFuX3BhdGgoJGVycm9yWydmaWxlJ10pIC4gJzonIC4gJGVycm9yWydsaW5lJ107DQoNCiAgICAgICAgICAgIENMSTo6d3JpdGUoJGMgLiAkcGFkRmlsZSAuIENMSTo6Y29sb3IoJGZpbGVwYXRoLCAneWVsbG93JykpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgQ0xJOjp3cml0ZSgkYyAuICRwYWRGaWxlIC4gQ0xJOjpjb2xvcignW2ludGVybmFsIGZ1bmN0aW9uXScsICd5ZWxsb3cnKSk7DQogICAgICAgIH0NCg0KICAgICAgICAkZnVuY3Rpb24gPSAnJzsNCg0KICAgICAgICBpZiAoaXNzZXQoJGVycm9yWydjbGFzcyddKSkgew0KICAgICAgICAgICAgJHR5cGUgPSAoJGVycm9yWyd0eXBlJ10gPT09ICctPicpID8gJygpJyAuICRlcnJvclsndHlwZSddIDogJGVycm9yWyd0eXBlJ107DQogICAgICAgICAgICAkZnVuY3Rpb24gLj0gJHBhZENsYXNzIC4gJGVycm9yWydjbGFzcyddIC4gJHR5cGUgLiAkZXJyb3JbJ2Z1bmN0aW9uJ107DQogICAgICAgIH0gZWxzZWlmICghIGlzc2V0KCRlcnJvclsnY2xhc3MnXSkgJiYgaXNzZXQoJGVycm9yWydmdW5jdGlvbiddKSkgew0KICAgICAgICAgICAgJGZ1bmN0aW9uIC49ICRwYWRDbGFzcyAuICRlcnJvclsnZnVuY3Rpb24nXTsNCiAgICAgICAgfQ0KDQogICAgICAgICRhcmdzID0gaW1wbG9kZSgnLCAnLCBhcnJheV9tYXAoc3RhdGljIGZuICgkdmFsdWUpOiBzdHJpbmcgPT4gbWF0Y2ggKHRydWUpIHsNCiAgICAgICAgICAgIGlzX29iamVjdCgkdmFsdWUpID0+ICdPYmplY3QoJyAuICR2YWx1ZTo6Y2xhc3MgLiAnKScsDQogICAgICAgICAgICBpc19hcnJheSgkdmFsdWUpICA9PiAkdmFsdWUgIT09IFtdID8gJ1suLi5dJyA6ICdbXScsDQogICAgICAgICAgICAkdmFsdWUgPT09IG51bGwgICA9PiAnbnVsbCcsIC8vIHJldHVybiB0aGUgbG93ZXJjYXNlZCB2ZXJzaW9uDQogICAgICAgICAgICBkZWZhdWx0ICAgICAgICAgICA9PiB2YXJfZXhwb3J0KCR2YWx1ZSwgdHJ1ZSksDQogICAgICAgIH0sIGFycmF5X3ZhbHVlcygkZXJyb3JbJ2FyZ3MnXSA/PyBbXSkpKTsNCg0KICAgICAgICAkZnVuY3Rpb24gLj0gJygnIC4gJGFyZ3MgLiAnKSc7DQoNCiAgICAgICAgQ0xJOjp3cml0ZSgkZnVuY3Rpb24pOw0KICAgICAgICBDTEk6Om5ld0xpbmUoKTsNCiAgICB9DQp9DQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";