1778692620
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Aacd8b494f7b5d83ea20ec55cbcf42279-2bd503c706f58bf9d667765518edca02
s:13444:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI2OiJDb21wb3NlclNldHRpbmdzTG9hZGVyLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MzA6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xTZXR0aW5ncyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMwOiJccGhwRG9jdW1lbnRvclxHdWlkZXNcU2V0dGluZ3MiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJTZXR0aW5ncyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjUzOiJccGhwRG9jdW1lbnRvclxHdWlkZXNcU2V0dGluZ3NcQ29tcG9zZXJTZXR0aW5nc0xvYWRlciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjE1OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjE6e3M6Njk6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xTZXR0aW5nc1xDb21wb3NlclNldHRpbmdzTG9hZGVyOjpsb2FkU2V0dGluZ3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xQcm9qZWN0Tm9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJQcm9qZWN0Tm9kZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJwcm9qZWN0Tm9kZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NjoiXHBocERvY3VtZW50b3JcR3VpZGVzXFNldHRpbmdzXFByb2plY3RTZXR0aW5ncyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJQcm9qZWN0U2V0dGluZ3MiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxNToicHJvamVjdFNldHRpbmdzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE4OiJwYXRoVG9Db21wb3Nlckpzb24iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjU3OTt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyOTAxO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njk6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xTZXR0aW5nc1xDb21wb3NlclNldHRpbmdzTG9hZGVyOjpsb2FkU2V0dGluZ3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJsb2FkU2V0dGluZ3MiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xTZXR0aW5nc1xDb21wb3NlclNldHRpbmdzTG9hZGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjI6IkNvbXBvc2VyU2V0dGluZ3NMb2FkZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcmVhZE9ubHkiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiMmJkNTAzYzcwNmY1OGJmOWQ2Njc3NjU1MThlZGNhMDIiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo2NzoidmVuZG9yL3BocGRvY3VtZW50b3IvZ3VpZGVzL3NyYy9TZXR0aW5ncy9Db21wb3NlclNldHRpbmdzTG9hZGVyLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MjkwNToiPD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKLyoqCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHBocERvY3VtZW50b3IuCiAqCiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgogKgogKiBAbGluayBodHRwczovL3BocGRvYy5vcmcKICovCgpuYW1lc3BhY2UgcGhwRG9jdW1lbnRvclxHdWlkZXNcU2V0dGluZ3M7Cgp1c2UgcGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcSW5saW5lXFBsYWluVGV4dElubGluZU5vZGU7CnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xQcm9qZWN0Tm9kZTsKCnVzZSBmdW5jdGlvbiBmaWxlX2dldF9jb250ZW50czsKdXNlIGZ1bmN0aW9uIGltcGxvZGU7CnVzZSBmdW5jdGlvbiBpc19hcnJheTsKdXNlIGZ1bmN0aW9uIGlzX3N0cmluZzsKdXNlIGZ1bmN0aW9uIGpzb25fZGVjb2RlOwp1c2UgZnVuY3Rpb24gc3ByaW50ZjsKCmZpbmFsIGNsYXNzIENvbXBvc2VyU2V0dGluZ3NMb2FkZXIKewogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRTZXR0aW5ncyhQcm9qZWN0Tm9kZSAkcHJvamVjdE5vZGUsIFByb2plY3RTZXR0aW5ncyAkcHJvamVjdFNldHRpbmdzLCBzdHJpbmcgJHBhdGhUb0NvbXBvc2VySnNvbik6IHZvaWQKICAgIHsKICAgICAgICAkanNvbkNvbnRlbnRzID0gZmlsZV9nZXRfY29udGVudHMoJHBhdGhUb0NvbXBvc2VySnNvbik7CiAgICAgICAgaWYgKCFpc19zdHJpbmcoJGpzb25Db250ZW50cykpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJGNvbXBvc2VyRGF0YSA9IGpzb25fZGVjb2RlKCRqc29uQ29udGVudHMsIHRydWUpOwogICAgICAgIGlmICghaXNfYXJyYXkoJGNvbXBvc2VyRGF0YSkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRjb21wb3NlckRhdGFbJ25hbWUnXSkgJiYgaXNfc3RyaW5nKCRjb21wb3NlckRhdGFbJ25hbWUnXSkpIHsKICAgICAgICAgICAgJHByb2plY3ROb2RlLT5hZGRWYXJpYWJsZSgnY29tcG9zZXJfbmFtZScsIG5ldyBQbGFpblRleHRJbmxpbmVOb2RlKCRjb21wb3NlckRhdGFbJ25hbWUnXSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRjb21wb3NlckRhdGFbJ2Rlc2NyaXB0aW9uJ10pICYmIGlzX3N0cmluZygkY29tcG9zZXJEYXRhWydkZXNjcmlwdGlvbiddKSkgewogICAgICAgICAgICAkcHJvamVjdE5vZGUtPmFkZFZhcmlhYmxlKCdjb21wb3Nlcl9kZXNjcmlwdGlvbicsIG5ldyBQbGFpblRleHRJbmxpbmVOb2RlKCRjb21wb3NlckRhdGFbJ2Rlc2NyaXB0aW9uJ10pKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkY29tcG9zZXJEYXRhWyd2ZXJzaW9uJ10pICYmIGlzX3N0cmluZygkY29tcG9zZXJEYXRhWyd2ZXJzaW9uJ10pKSB7CiAgICAgICAgICAgIGlmICgkcHJvamVjdE5vZGUtPmdldFZlcnNpb24oKSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgJHByb2plY3ROb2RlLT5zZXRWZXJzaW9uKCRjb21wb3NlckRhdGFbJ3ZlcnNpb24nXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkY29tcG9zZXJEYXRhWyd0eXBlJ10pICYmIGlzX3N0cmluZygkY29tcG9zZXJEYXRhWyd0eXBlJ10pKSB7CiAgICAgICAgICAgICRwcm9qZWN0Tm9kZS0+YWRkVmFyaWFibGUoJ2NvbXBvc2VyX3R5cGUnLCBuZXcgUGxhaW5UZXh0SW5saW5lTm9kZSgkY29tcG9zZXJEYXRhWyd0eXBlJ10pKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkY29tcG9zZXJEYXRhWydsaWNlbnNlJ10pKSB7CiAgICAgICAgICAgIGlmIChpc19zdHJpbmcoJGNvbXBvc2VyRGF0YVsnbGljZW5zZSddKSkgewogICAgICAgICAgICAgICAgJHByb2plY3ROb2RlLT5hZGRWYXJpYWJsZSgnbGljZW5zZScsIG5ldyBQbGFpblRleHRJbmxpbmVOb2RlKCRjb21wb3NlckRhdGFbJ2xpY2Vuc2UnXSkpOwogICAgICAgICAgICB9IGVsc2VpZiAoaXNfYXJyYXkoJGNvbXBvc2VyRGF0YVsnbGljZW5zZSddKSkgewogICAgICAgICAgICAgICAgJHByb2plY3ROb2RlLT5hZGRWYXJpYWJsZSgKICAgICAgICAgICAgICAgICAgICAnbGljZW5zZScsCiAgICAgICAgICAgICAgICAgICAgbmV3IFBsYWluVGV4dElubGluZU5vZGUoc3ByaW50ZignKCVzKScsIGltcGxvZGUoJyBvciAnLCAkY29tcG9zZXJEYXRhWydsaWNlbnNlJ10pKSksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJGNvbXBvc2VyRGF0YVsna2V5d29yZHMnXSkgJiYgaXNfYXJyYXkoJGNvbXBvc2VyRGF0YVsna2V5d29yZHMnXSkpIHsKICAgICAgICAgICAgJHByb2plY3ROb2RlLT5hZGRLZXl3b3JkcygkY29tcG9zZXJEYXRhWydrZXl3b3JkcyddKTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNzZXQoJGNvbXBvc2VyRGF0YVsnc3VwcG9ydCddKSB8fCAhaXNfYXJyYXkoJGNvbXBvc2VyRGF0YVsnc3VwcG9ydCddKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkY29tcG9zZXJEYXRhWydzdXBwb3J0J10gYXMgJGtleSA9PiAkc3VwcG9ydCkgewogICAgICAgICAgICBpZiAoIWlzX3N0cmluZygkc3VwcG9ydCkpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkcHJvamVjdE5vZGUtPmFkZFZhcmlhYmxlKAogICAgICAgICAgICAgICAgJ2NvbXBvc2VyX3N1cHBvcnRfJyAuICRrZXksCiAgICAgICAgICAgICAgICBuZXcgUGxhaW5UZXh0SW5saW5lTm9kZSgkc3VwcG9ydCksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzU6IlRoaXMgZmlsZSBpcyBwYXJ0IG9mIHBocERvY3VtZW50b3IuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyMDoiRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsiOjM6e3M6NzoiACoAbmFtZSI7czo0OiJsaW5rIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluawBsaW5rIjtzOjE4OiJodHRwczovL3BocGRvYy5vcmciO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";