1789595935
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3Aeff002ff837381dc94cb14ed62a3ac2c-da5b459c4d0e78725b127ef4983c1afd
s:20784:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjk6ImluZGV4LnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YToxOntzOjE3OiJccmVnaXN0cmFyUnV0YXMoKSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8iOjk6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoibW9kdWxvcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MTt9fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTc6IlxyZWdpc3RyYXJSdXRhcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6InJlZ2lzdHJhclJ1dGFzIjt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MzoiQ29tYmluYSBsb3MgbcOzZHVsb3MgZGV0ZWN0YW5kbyBjb2xpc2lvbmVzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNDE6ImFycmF5X21lcmdlIHNvYnJlc2NyaWJpcsOtYSBlbiBzaWxlbmNpbyB1bmEgYWNjacOzbiBkZWNsYXJhZGEgZG9zIHZlY2VzLCB5CnBvZHLDrWEgcHJldmFsZWNlciBsYSBxdWUgdGllbmUgZWwgbml2ZWwgZGUgYWNjZXNvIG3DoXMgcGVybWlzaXZvLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NToiXFJ1dGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJSdXRhIjt9fXM6MTA6IgAqAGtleVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NzoibW9kdWxvcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MTtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1OiJcUnV0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IlJ1dGEiO319czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUyOiJzaSB1bmEgYWNjacOzbiBlc3TDoSBkZWNsYXJhZGEgZW4gbcOhcyBkZSB1biBtw7NkdWxvIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNToiXExvZ2ljRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6IkxvZ2ljRXhjZXB0aW9uIjt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjYwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbWV0YWRhdGEiO2E6MDp7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjE6e3M6MTM6IlxDT05URVhUT19BUEkiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjEwOntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTM6IlxDT05URVhUT19BUEkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiQ09OVEVYVE9fQVBJIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIxMToiTWFyY2EgbGEgcGV0aWNpw7NuIGNvbW8gcGVydGVuZWNpZW50ZSBhIGxhIEFQSS4gTGEgcmVkIGRlIGZhdGFsZXMgZGUKYm9vdHN0cmFwLnBocCBsYSBjb25zdWx0YSBwYXJhIGRlY2lkaXIgc2kgcmVzcG9uZGUgZW4gSlNPTjogZW4gbGFzCnDDoWdpbmFzIHdlYiBubyBkZWJlIGhhY2VybG8sIG8gZWwgbmF2ZWdhZG9yIG1vc3RyYXLDrWEgZWwgb2JqZXRvIGVuIGNydWRvLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NToiRGViZSBkZWZpbmlyc2UgQU5URVMgZGUgaW5jbHVpciBlbCBib290c3RyYXAuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo1OiJcdHJ1ZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiZGE1YjQ1OWM0ZDBlNzg3MjViMTI3ZWY0OTgzYzFhZmQiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czoyODoiYmFja2VuZC9hcGkvdjJwZ2dwL2luZGV4LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NDg0MzoiPD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CgovKioKICogQVBJIHYyIOKAlCBwdW50byBkZSBlbnRyYWRhIMO6bmljby4KICoKICogQ29uc2VydmEgZWwgdHJhbnNwb3J0ZSBkZSBsYSB2MSAoUE9TVCArIGNhbXBvIGBhY3Rpb25gKTsgbG8gcXVlIGNhbWJpYSBlcwogKiBxdWUgZWwgY29udHJvbCBkZSBhY2Nlc28gc2UgZGVjbGFyYSBlbiBsYSB0YWJsYSBkZSBydXRhcyB5IGxvIGFwbGljYSB1bgogKiBndWFyZCDDum5pY28sIGVuIGx1Z2FyIGRlIGRlY2lkaXJsbyBjYWRhIGhhbmRsZXIuCiAqCiAqIEBwYWNrYWdlIHRyYWNraW5nXGJhY2tlbmRcYXBpXHYyCiAqLwoKLyoqCiAqIE1hcmNhIGxhIHBldGljacOzbiBjb21vIHBlcnRlbmVjaWVudGUgYSBsYSBBUEkuIExhIHJlZCBkZSBmYXRhbGVzIGRlCiAqIGJvb3RzdHJhcC5waHAgbGEgY29uc3VsdGEgcGFyYSBkZWNpZGlyIHNpIHJlc3BvbmRlIGVuIEpTT046IGVuIGxhcwogKiBww6FnaW5hcyB3ZWIgbm8gZGViZSBoYWNlcmxvLCBvIGVsIG5hdmVnYWRvciBtb3N0cmFyw61hIGVsIG9iamV0byBlbiBjcnVkby4KICoKICogRGViZSBkZWZpbmlyc2UgQU5URVMgZGUgaW5jbHVpciBlbCBib290c3RyYXAuCiAqLwpkZWZpbmUoJ0NPTlRFWFRPX0FQSScsIHRydWUpOwoKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnLy4uLy4uL2Jvb3RzdHJhcC5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvbnVjbGVvL051Y2xlby5waHAnOwoKLy8g4pSA4pSAIE3DiVRPRE8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACi8vIEFudGVzIGRlIGNvbnN0cnVpciBlbCByZWdpc3RybzogdW4gR0VUIG5vIGRlYmUgY2FyZ2FyIGxvcyBtw7NkdWxvcyBwYXJhCi8vIHRlcm1pbmFyIGVuIHVuIDQwNS4KaWYgKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddICE9PSAnUE9TVCcpIHsKICAgIGhlYWRlcignQWxsb3c6IFBPU1QnKTsKICAgIFJlc3B1ZXN0YTo6ZXJyb3IoJ03DqXRvZG8gbm8gcGVybWl0aWRvLiBTZSByZXF1aWVyZSBQT1NULicsIDQwNSwgJ01FVE9ET19OT19QRVJNSVRJRE8nKTsKfQoKLy8g4pSA4pSAIFJFR0lTVFJPIERFIFJVVEFTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAoKLyoqCiAqIENvbWJpbmEgbG9zIG3Ds2R1bG9zIGRldGVjdGFuZG8gY29saXNpb25lcy4KICoKICogYXJyYXlfbWVyZ2Ugc29icmVzY3JpYmlyw61hIGVuIHNpbGVuY2lvIHVuYSBhY2Npw7NuIGRlY2xhcmFkYSBkb3MgdmVjZXMsIHkKICogcG9kcsOtYSBwcmV2YWxlY2VyIGxhIHF1ZSB0aWVuZSBlbCBuaXZlbCBkZSBhY2Nlc28gbcOhcyBwZXJtaXNpdm8uCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIFJ1dGE+IC4uLiRtb2R1bG9zCiAqIEByZXR1cm4gYXJyYXk8c3RyaW5nLCBSdXRhPgogKgogKiBAdGhyb3dzIExvZ2ljRXhjZXB0aW9uIHNpIHVuYSBhY2Npw7NuIGVzdMOhIGRlY2xhcmFkYSBlbiBtw6FzIGRlIHVuIG3Ds2R1bG8KICovCmZ1bmN0aW9uIHJlZ2lzdHJhclJ1dGFzKGFycmF5IC4uLiRtb2R1bG9zKTogYXJyYXkKewogICAgJHJ1dGFzID0gW107CiAgICBmb3JlYWNoICgkbW9kdWxvcyBhcyAkbW9kdWxvKSB7CiAgICAgICAgZm9yZWFjaCAoJG1vZHVsbyBhcyAkYWNjaW9uID0+ICRydXRhKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkcnV0YXNbJGFjY2lvbl0pKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTG9naWNFeGNlcHRpb24oIkFjY2nDs24gZHVwbGljYWRhIGVuIGVsIHJlZ2lzdHJvIGRlIHJ1dGFzOiAneyRhY2Npb259Jy4iKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcnV0YXNbJGFjY2lvbl0gPSAkcnV0YTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gJHJ1dGFzOwp9CgovKioKICogTG9zIG3Ds2R1bG9zIHNlIGRlc2N1YnJlbiBlbiBkaXNjbywgbm8gc2UgZW51bWVyYW4gYSBtYW5vLgogKgogKiBDb24gdW5hIGxpc3RhIGV4cGzDrWNpdGEgaGFicsOtYSBkb3MgZnVlbnRlcyBkZSB2ZXJkYWQg4oCUZXN0YSB5IGxhIGRlbCBzY3JpcHQKICogZGUgdmVyaWZpY2FjacOzbiwgcXVlIHVzYSBnbG9iKCnigJQgeSBkaXZlcmdpcsOtYW4gZW4gc2lsZW5jaW86IHVuIG3Ds2R1bG8gbnVldm8KICogcGFzYXLDrWEgbGEgdmVyaWZpY2FjacOzbiB5IGxhIEFQSSBubyBzZXJ2aXLDrWEgbmluZ3VuYSBkZSBzdXMgYWNjaW9uZXMuIEVsCiAqIHPDrW50b21hIGVuIHByb2R1Y2Npw7NuIHNlcsOtYSBBQ0NJT05fREVTQ09OT0NJREEgc29icmUgcnV0YXMgcmVjacOpbiB2YWxpZGFkYXMuCiAqCiAqIEVsIG9yZGVuIGFsZmFiw6l0aWNvIGVzIGlycmVsZXZhbnRlOiByZWdpc3RyYXJSdXRhcygpIHByb2jDrWJlIGxvcyBkdXBsaWNhZG9zCiAqIGVuIGx1Z2FyIGRlIGRlamFyIHF1ZSBwcmV2YWxlemNhIGVsIMO6bHRpbW8uCiAqLwokbW9kdWxvcyA9IGdsb2IoX19ESVJfXyAuICcvcnV0YXMvKi5waHAnKSA/OiBbXTsKCmlmIChlbXB0eSgkbW9kdWxvcykpIHsKICAgIGVycm9yX2xvZygnW2FwaS92Ml1bJyAuIFJJRCAuICddIE5vIHNlIGVuY29udHLDsyBuaW5nw7puIG3Ds2R1bG8gZGUgcnV0YXMuJyk7CiAgICBSZXNwdWVzdGE6OmVycm9yKCdSZWdpc3RybyBkZSBydXRhcyB2YWPDrW8uJywgNTAwLCAnUlVUQV9NQUxfQ09ORklHVVJBREEnKTsKfQoKJFJVVEFTID0gcmVnaXN0cmFyUnV0YXMoCiAgICAuLi5hcnJheV9tYXAoc3RhdGljIGZuKHN0cmluZyAkYXJjaGl2byk6IGFycmF5ID0+IHJlcXVpcmUgJGFyY2hpdm8sICRtb2R1bG9zKQopOwoKLy8g4pSA4pSAIERFU1BBQ0hPIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAoKJGFjY2lvbiA9ICRfUE9TVFsnYWN0aW9uJ10gPz8gbnVsbDsKCi8vIEVsIG1lbnNhamUgZGV2dWVsdG8gbm8gcmVwaXRlIGxhIGFjY2nDs24gcmVjaWJpZGE6IGV2aXRhIHJlZmxlamFyIHRleHRvCi8vIGFyYml0cmFyaW8gZGVsIGNsaWVudGUgeSBkaWZpY3VsdGEgc29uZGVhciBlbCByZWdpc3RybyBwb3IgZnVlcnphIGJydXRhLgovLyBFbiBlbCBsb2cgc2Ugc2FuZWEsIHBvcnF1ZSB1biBzYWx0byBkZSBsw61uZWEgcGVybWl0aXLDrWEgaW55ZWN0YXIgZW50cmFkYXMKLy8gZmFsc2FzLgppZiAoIWlzX3N0cmluZygkYWNjaW9uKSB8fCAkYWNjaW9uID09PSAnJyB8fCAhaXNzZXQoJFJVVEFTWyRhY2Npb25dKSkgewogICAgJHJlY2liaWRhID0gaXNfc3RyaW5nKCRhY2Npb24pID8gc3Vic3RyKCRhY2Npb24sIDAsIDgwKSA6IGdldHR5cGUoJGFjY2lvbik7CiAgICAkcmVjaWJpZGEgPSBwcmVnX3JlcGxhY2UoJy9bXlx4MjAtXHg3RV0vJywgJy4nLCAkcmVjaWJpZGEpOwogICAgZXJyb3JfbG9nKCdbYXBpL3YyXVsnIC4gUklEIC4gIl0gQWNjacOzbiBubyByZWNvbm9jaWRhOiAneyRyZWNpYmlkYX0nIik7CiAgICBSZXNwdWVzdGE6OmVycm9yKCdBY2Npw7NuIG5vIHJlY29ub2NpZGEuJywgNDAwLCAnQUNDSU9OX0RFU0NPTk9DSURBJyk7Cn0KCiRydXRhID0gJFJVVEFTWyRhY2Npb25dOwoKdHJ5IHsKICAgIC8vIFRvZG8gNDAxLzQwMyBzYWxlIGRlIGFxdcOtLCBudW5jYSBkZWwgaGFuZGxlci4KICAgICRjdHggPSBHdWFyZDo6YXBsaWNhcigkcnV0YSk7CgogICAgLy8gRWwgYmxvcXVlbyBleGNsdXNpdm8gZGUgbGEgc2VzacOzbiBzZXJpYWxpemEgbGFzIHBldGljaW9uZXMgY29uY3VycmVudGVzCiAgICAvLyBkZWwgbWlzbW8gdXN1YXJpbzogdW5hIHBhbnRhbGxhIGNvbiBjaW5jbyBYSFIgZW4gcGFyYWxlbG8gbG9zIGVqZWN1dGFyw61hCiAgICAvLyBlbiBmaWxhLiBTZSBsaWJlcmEgZW4gY3VhbnRvIGVsIGd1YXJkIHRlcm1pbmEsIHNhbHZvIGVuIGxhcyBydXRhcyBxdWUKICAgIC8vIGRlY2xhcmFuIGVzY3JpYmlyIGVuIHNlc2nDs24uCiAgICBpZiAoISRydXRhLT5lc2NyaWJlU2VzaW9uKSB7CiAgICAgICAgc2Vzc2lvbl93cml0ZV9jbG9zZSgpOwogICAgfQoKICAgICgkcnV0YS0+aGFuZGxlcikoJGN0eCk7Cn0gY2F0Y2ggKG15c3FsaV9zcWxfZXhjZXB0aW9uICRlKSB7CiAgICBlcnJvcl9sb2coIlthcGkvdjI6eyRhY2Npb259XVsiIC4gUklEIC4gJ10gQkQ6ICcgLiAkZS0+Z2V0TWVzc2FnZSgpKTsKICAgIFJlc3B1ZXN0YTo6ZXJyb3IoJ0Vycm9yIGRlIGJhc2UgZGUgZGF0b3MuIChyZWY6ICcgLiBSSUQgLiAnKScsIDUwMCwgJ0VSUk9SX0JEJyk7Cn0gY2F0Y2ggKFRocm93YWJsZSAkZSkgewogICAgZXJyb3JfbG9nKCJbYXBpL3YyOnskYWNjaW9ufV1bIiAuIFJJRCAuICddICcgLiAkZS0+Z2V0TWVzc2FnZSgpCiAgICAgICAgLiAnIEAgJyAuICRlLT5nZXRGaWxlKCkgLiAnOicgLiAkZS0+Z2V0TGluZSgpKTsKICAgIFJlc3B1ZXN0YTo6ZXJyb3IoJ0Vycm9yIGluZXNwZXJhZG8gZW4gZWwgc2Vydmlkb3IuIChyZWY6ICcgLiBSSUQgLiAnKScsIDUwMCwgJ0VSUk9SX0lOVEVSTk8nKTsKfSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzU6IkFQSSB2MiDigJQgcHVudG8gZGUgZW50cmFkYSDDum5pY28uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE5NToiQ29uc2VydmEgZWwgdHJhbnNwb3J0ZSBkZSBsYSB2MSAoUE9TVCArIGNhbXBvIGBhY3Rpb25gKTsgbG8gcXVlIGNhbWJpYSBlcwpxdWUgZWwgY29udHJvbCBkZSBhY2Nlc28gc2UgZGVjbGFyYSBlbiBsYSB0YWJsYSBkZSBydXRhcyB5IGxvIGFwbGljYSB1bgpndWFyZCDDum5pY28sIGVuIGx1Z2FyIGRlIGRlY2lkaXJsbyBjYWRhIGhhbmRsZXIuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMzoidHJhY2tpbmdcYmFja2VuZFxhcGlcdjIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";