1778692641
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A13718a6b00f233a964b31137932ac562-65908e70e78d126863574b4d4feb9643
s:96452:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE0OiJSZWRpc1RyYWl0LnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MzE6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHMiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMToiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0cyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6IlRyYWl0cyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YToxOntzOjQyOiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzXFJlZGlzVHJhaXQiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfIjoxMDp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAHByb3BlcnRpZXMiO2E6Mzp7czo2OToiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0OjokZGVmYXVsdENvbm5lY3Rpb25PcHRpb25zIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxNDp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njk6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6JGRlZmF1bHRDb25uZWN0aW9uT3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI0OiJkZWZhdWx0Q29ubmVjdGlvbk9wdGlvbnMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czoyODE6IlsnY2xhc3MnID0+IG51bGwsICdhdXRoJyA9PiBudWxsLCAncGVyc2lzdGVudCcgPT4gMCwgJ3BlcnNpc3RlbnRfaWQnID0+IG51bGwsICd0aW1lb3V0JyA9PiAzMCwgJ3JlYWRfdGltZW91dCcgPT4gMCwgJ3JldHJ5X2ludGVydmFsJyA9PiAwLCAndGNwX2tlZXBhbGl2ZScgPT4gMCwgJ2xhenknID0+IG51bGwsICdyZWRpc19jbHVzdGVyJyA9PiBmYWxzZSwgJ3JlZGlzX3NlbnRpbmVsJyA9PiBudWxsLCAnZGJpbmRleCcgPT4gMCwgJ2ZhaWxvdmVyJyA9PiAnbm9uZScsICdzc2wnID0+IG51bGxdIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjA6e319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319czo1MDoiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0OjokcmVkaXMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjE0OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0OjokcmVkaXMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJyZWRpcyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjU6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjoiXFJlZGlzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiUmVkaXMiO319aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMjoiXFJlbGF5XFJlbGF5IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiUmVsYXkiO319aToyO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMToiXFJlZGlzQXJyYXkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiUmVkaXNBcnJheSI7fX1pOjM7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEzOiJcUmVkaXNDbHVzdGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6IlJlZGlzQ2x1c3RlciI7fX1pOjQ7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcUHJlZGlzXENsaWVudEludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDbGllbnRJbnRlcmZhY2UiO319fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAaG9va3MiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpcnR1YWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAYXR0cmlidXRlcyI7YTowOnt9fXM6NTU6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6JG1hcnNoYWxsZXIiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjE0OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NToiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0OjokbWFyc2hhbGxlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJtYXJzaGFsbGVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTU6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxNYXJzaGFsbGVyXE1hcnNoYWxsZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToiTWFyc2hhbGxlckludGVyZmFjZSI7fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGhvb2tzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXJ0dWFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAG1ldGhvZHMiO2E6OTp7czo1MDoiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0Ojppbml0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTo0OntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjU6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjoiXFJlZGlzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiUmVkaXMiO319aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMjoiXFJlbGF5XFJlbGF5IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiUmVsYXkiO319aToyO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMToiXFJlZGlzQXJyYXkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiUmVkaXNBcnJheSI7fX1pOjM7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEzOiJcUmVkaXNDbHVzdGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6IlJlZGlzQ2x1c3RlciI7fX1pOjQ7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcUHJlZGlzXENsaWVudEludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDbGllbnRJbnRlcmZhY2UiO319fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToicmVkaXMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToibmFtZXNwYWNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE1OiJkZWZhdWx0TGlmZXRpbWUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MztPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NToiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXE1hcnNoYWxsZXJcTWFyc2hhbGxlckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJNYXJzaGFsbGVySW50ZXJmYWNlIjt9fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJtYXJzaGFsbGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxNzg1O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjczO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjI2OTY7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0Ojppbml0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJpbml0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjYyOiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzXFJlZGlzVHJhaXQ6OmNyZWF0ZUNvbm5lY3Rpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoiZHNuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czoyOiJbXSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMTQ0O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxOTk1MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YTo1OntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY6IlxSZWRpcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IlJlZGlzIjt9fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTE6IlxSZWRpc0FycmF5IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IlJlZGlzQXJyYXkiO319aToyO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMzoiXFJlZGlzQ2x1c3RlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJSZWRpc0NsdXN0ZXIiO319aTozO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXFByZWRpc1xDbGllbnRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiQ2xpZW50SW50ZXJmYWNlIjt9fWk6NDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTI6IlxSZWxheVxSZWxheSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IlJlbGF5Ijt9fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MjoiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0OjpjcmVhdGVDb25uZWN0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiY3JlYXRlQ29ubmVjdGlvbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUzOiJDcmVhdGVzIGEgUmVkaXMgY29ubmVjdGlvbiB1c2luZyBhIERTTiBjb25maWd1cmF0aW9uLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNjE6IkV4YW1wbGUgRFNOOgotIHJlZGlzOi8vbG9jYWxob3N0Ci0gcmVkaXM6Ly9leGFtcGxlLmNvbToxMjM0Ci0gcmVkaXM6Ly9zZWNyZXRAZXhhbXBsZS5jb20vMTMKLSByZWRpczovLy92YXIvcnVuL3JlZGlzLnNvY2sKLSByZWRpczovL3NlY3JldEAvdmFyL3J1bi9yZWRpcy5zb2NrLzEzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM1OiJTZWUgc2VsZjo6JGRlZmF1bHRDb25uZWN0aW9uT3B0aW9ucyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjc6Im9wdGlvbnMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJ3aGVuIHRoZSBEU04gaXMgaW52YWxpZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxFeGNlcHRpb25cSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6IkludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MzA6IlN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0cyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MTU6e3M6NjoiVU5MSU5LIjtzOjI3OiJQcmVkaXNcQ29tbWFuZFxSZWRpc1xVTkxJTksiO3M6MTY6IkNsdXN0ZXJJbnRlcmZhY2UiO3M6NDQ6IlByZWRpc1xDb25uZWN0aW9uXEFnZ3JlZ2F0ZVxDbHVzdGVySW50ZXJmYWNlIjtzOjEyOiJSZWRpc0NsdXN0ZXIiO3M6NDA6IlByZWRpc1xDb25uZWN0aW9uXEFnZ3JlZ2F0ZVxSZWRpc0NsdXN0ZXIiO3M6MjA6IlJlcGxpY2F0aW9uSW50ZXJmYWNlIjtzOjQ4OiJQcmVkaXNcQ29ubmVjdGlvblxBZ2dyZWdhdGVcUmVwbGljYXRpb25JbnRlcmZhY2UiO3M6MjM6IlByZWRpczJDbHVzdGVySW50ZXJmYWNlIjtzOjQyOiJQcmVkaXNcQ29ubmVjdGlvblxDbHVzdGVyXENsdXN0ZXJJbnRlcmZhY2UiO3M6MTk6IlByZWRpczJSZWRpc0NsdXN0ZXIiO3M6Mzg6IlByZWRpc1xDb25uZWN0aW9uXENsdXN0ZXJcUmVkaXNDbHVzdGVyIjtzOjI3OiJQcmVkaXMyUmVwbGljYXRpb25JbnRlcmZhY2UiO3M6NTA6IlByZWRpc1xDb25uZWN0aW9uXFJlcGxpY2F0aW9uXFJlcGxpY2F0aW9uSW50ZXJmYWNlIjtzOjE0OiJFcnJvckludGVyZmFjZSI7czozMDoiUHJlZGlzXFJlc3BvbnNlXEVycm9ySW50ZXJmYWNlIjtzOjY6IlN0YXR1cyI7czoyMjoiUHJlZGlzXFJlc3BvbnNlXFN0YXR1cyI7czo1OiJSZWxheSI7czoxMToiUmVsYXlcUmVsYXkiO3M6ODoiU2VudGluZWwiO3M6MTQ6IlJlbGF5XFNlbnRpbmVsIjtzOjE0OiJDYWNoZUV4Y2VwdGlvbiI7czo0ODoiU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcRXhjZXB0aW9uXENhY2hlRXhjZXB0aW9uIjtzOjI0OiJJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6NTg6IlN5bWZvbnlcQ29tcG9uZW50XENhY2hlXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6MTc6IkRlZmF1bHRNYXJzaGFsbGVyIjtzOjUyOiJTeW1mb255XENvbXBvbmVudFxDYWNoZVxNYXJzaGFsbGVyXERlZmF1bHRNYXJzaGFsbGVyIjtzOjE5OiJNYXJzaGFsbGVySW50ZXJmYWNlIjtzOjU0OiJTeW1mb255XENvbXBvbmVudFxDYWNoZVxNYXJzaGFsbGVyXE1hcnNoYWxsZXJJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjE7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NTM6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6ZG9GZXRjaCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoiaWRzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTk5NTc7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDYzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjIwOTMzO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7Tzo0MDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEl0ZXJhYmxlXyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6ZG9GZXRjaCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiZG9GZXRjaCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjUyOiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzXFJlZGlzVHJhaXQ6OmRvSGF2ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoyOiJpZCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDY1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjIwOTQwO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ2ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyMTA0Mzt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6ZG9IYXZlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJkb0hhdmUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo1MzoiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0Ojpkb0NsZWFyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjk6Im5hbWVzcGFjZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDcwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjIxMDUwO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUzOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyNDM3MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6ZG9DbGVhcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiZG9DbGVhciI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjU0OiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzXFJlZGlzVHJhaXQ6OmRvRGVsZXRlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJpZHMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyNDM3Nzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjUzNTk7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU0OiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzXFJlZGlzVHJhaXQ6OmRvRGVsZXRlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJkb0RlbGV0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjUyOiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzXFJlZGlzVHJhaXQ6OmRvU2F2ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoidmFsdWVzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6ImxpZmV0aW1lIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjUzNjY7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTk4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjI2MTI5O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6ZG9TYXZlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJkb1NhdmUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo1NDoiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpc1RyYWl0OjpwaXBlbGluZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4OiJcQ2xvc3VyZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkNsb3N1cmUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJnZW5lcmF0b3IiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO047fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6InJlZGlzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MTp7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYwMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyNjEzNjt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjkwNzg7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTA6IlxHZW5lcmF0b3IiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJHZW5lcmF0b3IiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTQ6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6cGlwZWxpbmUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InBpcGVsaW5lIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjU0OiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzXFJlZGlzVHJhaXQ6OmdldEhvc3RzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjkwODU7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njg2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjMwMDcxO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTQ6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdDo6Z2V0SG9zdHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6ImdldEhvc3RzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2ODc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXNUcmFpdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJSZWRpc1RyYWl0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czoxNDoiACoAZGVzY3JpcHRpb24iO047czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjE0OiJBdXJpbWFzIE5pZWtpcyI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoxNzoiYXVyaW1hc0BuaWVraXMubHQiO31pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTQ6Ik5pY29sYXMgR3Jla2FzIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjEzOiJwQHRjaHdvcmsuY29tIjt9aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Mjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjY1OTA4ZTcwZTc4ZDEyNjg2MzU3NGI0ZDRmZWI5NjQzIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDI6InZlbmRvci9zeW1mb255L2NhY2hlL1RyYWl0cy9SZWRpc1RyYWl0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MzAwNzU6Ijw/cGhwCgovKgogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgU3ltZm9ueSBwYWNrYWdlLgogKgogKiAoYykgRmFiaWVuIFBvdGVuY2llciA8ZmFiaWVuQHN5bWZvbnkuY29tPgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICovCgpuYW1lc3BhY2UgU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzOwoKdXNlIFByZWRpc1xDb21tYW5kXFJlZGlzXFVOTElOSzsKdXNlIFByZWRpc1xDb25uZWN0aW9uXEFnZ3JlZ2F0ZVxDbHVzdGVySW50ZXJmYWNlOwp1c2UgUHJlZGlzXENvbm5lY3Rpb25cQWdncmVnYXRlXFJlZGlzQ2x1c3RlcjsKdXNlIFByZWRpc1xDb25uZWN0aW9uXEFnZ3JlZ2F0ZVxSZXBsaWNhdGlvbkludGVyZmFjZTsKdXNlIFByZWRpc1xDb25uZWN0aW9uXENsdXN0ZXJcQ2x1c3RlckludGVyZmFjZSBhcyBQcmVkaXMyQ2x1c3RlckludGVyZmFjZTsKdXNlIFByZWRpc1xDb25uZWN0aW9uXENsdXN0ZXJcUmVkaXNDbHVzdGVyIGFzIFByZWRpczJSZWRpc0NsdXN0ZXI7CnVzZSBQcmVkaXNcQ29ubmVjdGlvblxSZXBsaWNhdGlvblxSZXBsaWNhdGlvbkludGVyZmFjZSBhcyBQcmVkaXMyUmVwbGljYXRpb25JbnRlcmZhY2U7CnVzZSBQcmVkaXNcUmVzcG9uc2VcRXJyb3JJbnRlcmZhY2U7CnVzZSBQcmVkaXNcUmVzcG9uc2VcU3RhdHVzOwp1c2UgUmVsYXlcUmVsYXk7CnVzZSBSZWxheVxTZW50aW5lbDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXEV4Y2VwdGlvblxDYWNoZUV4Y2VwdGlvbjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247CnVzZSBTeW1mb255XENvbXBvbmVudFxDYWNoZVxNYXJzaGFsbGVyXERlZmF1bHRNYXJzaGFsbGVyOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcTWFyc2hhbGxlclxNYXJzaGFsbGVySW50ZXJmYWNlOwoKLyoqCiAqIEBhdXRob3IgQXVyaW1hcyBOaWVraXMgPGF1cmltYXNAbmlla2lzLmx0PgogKiBAYXV0aG9yIE5pY29sYXMgR3Jla2FzIDxwQHRjaHdvcmsuY29tPgogKgogKiBAaW50ZXJuYWwKICovCnRyYWl0IFJlZGlzVHJhaXQKewogICAgcHJpdmF0ZSBzdGF0aWMgYXJyYXkgJGRlZmF1bHRDb25uZWN0aW9uT3B0aW9ucyA9IFsKICAgICAgICAnY2xhc3MnID0+IG51bGwsCiAgICAgICAgJ2F1dGgnID0+IG51bGwsCiAgICAgICAgJ3BlcnNpc3RlbnQnID0+IDAsCiAgICAgICAgJ3BlcnNpc3RlbnRfaWQnID0+IG51bGwsCiAgICAgICAgJ3RpbWVvdXQnID0+IDMwLAogICAgICAgICdyZWFkX3RpbWVvdXQnID0+IDAsCiAgICAgICAgJ3JldHJ5X2ludGVydmFsJyA9PiAwLAogICAgICAgICd0Y3Bfa2VlcGFsaXZlJyA9PiAwLAogICAgICAgICdsYXp5JyA9PiBudWxsLAogICAgICAgICdyZWRpc19jbHVzdGVyJyA9PiBmYWxzZSwKICAgICAgICAncmVkaXNfc2VudGluZWwnID0+IG51bGwsCiAgICAgICAgJ2RiaW5kZXgnID0+IDAsCiAgICAgICAgJ2ZhaWxvdmVyJyA9PiAnbm9uZScsCiAgICAgICAgJ3NzbCcgPT4gbnVsbCwgLy8gc2VlIGh0dHBzOi8vcGhwLm5ldC9jb250ZXh0LnNzbAogICAgXTsKICAgIHByaXZhdGUgXFJlZGlzfFJlbGF5fFxSZWRpc0FycmF5fFxSZWRpc0NsdXN0ZXJ8XFByZWRpc1xDbGllbnRJbnRlcmZhY2UgJHJlZGlzOwogICAgcHJpdmF0ZSBNYXJzaGFsbGVySW50ZXJmYWNlICRtYXJzaGFsbGVyOwoKICAgIHByaXZhdGUgZnVuY3Rpb24gaW5pdChcUmVkaXN8UmVsYXl8XFJlZGlzQXJyYXl8XFJlZGlzQ2x1c3RlcnxcUHJlZGlzXENsaWVudEludGVyZmFjZSAkcmVkaXMsIHN0cmluZyAkbmFtZXNwYWNlLCBpbnQgJGRlZmF1bHRMaWZldGltZSwgP01hcnNoYWxsZXJJbnRlcmZhY2UgJG1hcnNoYWxsZXIpOiB2b2lkCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbmFtZXNwYWNlLCAkZGVmYXVsdExpZmV0aW1lKTsKCiAgICAgICAgaWYgKHByZWdfbWF0Y2goJyNbXi0rXy5BLVphLXowLTldIycsICRuYW1lc3BhY2UsICRtYXRjaCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignUmVkaXNBZGFwdGVyIG5hbWVzcGFjZSBjb250YWlucyAiJXMiIGJ1dCBvbmx5IGNoYXJhY3RlcnMgaW4gWy0rXy5BLVphLXowLTldIGFyZSBhbGxvd2VkLicsICRtYXRjaFswXSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRyZWRpcyBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlICYmICRyZWRpcy0+Z2V0T3B0aW9ucygpLT5leGNlcHRpb25zKSB7CiAgICAgICAgICAgICRvcHRpb25zID0gY2xvbmUgJHJlZGlzLT5nZXRPcHRpb25zKCk7CiAgICAgICAgICAgIFxDbG9zdXJlOjpiaW5kKGZ1bmN0aW9uICgpIHsgJHRoaXMtPm9wdGlvbnNbJ2V4Y2VwdGlvbnMnXSA9IGZhbHNlOyB9LCAkb3B0aW9ucywgJG9wdGlvbnMpKCk7CiAgICAgICAgICAgICRyZWRpcyA9IG5ldyAkcmVkaXMoJHJlZGlzLT5nZXRDb25uZWN0aW9uKCksICRvcHRpb25zKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5yZWRpcyA9ICRyZWRpczsKICAgICAgICAkdGhpcy0+bWFyc2hhbGxlciA9ICRtYXJzaGFsbGVyID8/IG5ldyBEZWZhdWx0TWFyc2hhbGxlcigpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIFJlZGlzIGNvbm5lY3Rpb24gdXNpbmcgYSBEU04gY29uZmlndXJhdGlvbi4KICAgICAqCiAgICAgKiBFeGFtcGxlIERTTjoKICAgICAqICAgLSByZWRpczovL2xvY2FsaG9zdAogICAgICogICAtIHJlZGlzOi8vZXhhbXBsZS5jb206MTIzNAogICAgICogICAtIHJlZGlzOi8vc2VjcmV0QGV4YW1wbGUuY29tLzEzCiAgICAgKiAgIC0gcmVkaXM6Ly8vdmFyL3J1bi9yZWRpcy5zb2NrCiAgICAgKiAgIC0gcmVkaXM6Ly9zZWNyZXRAL3Zhci9ydW4vcmVkaXMuc29jay8xMwogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkb3B0aW9ucyBTZWUgc2VsZjo6JGRlZmF1bHRDb25uZWN0aW9uT3B0aW9ucwogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gdGhlIERTTiBpcyBpbnZhbGlkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlQ29ubmVjdGlvbigjW1xTZW5zaXRpdmVQYXJhbWV0ZXJdIHN0cmluZyAkZHNuLCBhcnJheSAkb3B0aW9ucyA9IFtdKTogXFJlZGlzfFxSZWRpc0FycmF5fFxSZWRpc0NsdXN0ZXJ8XFByZWRpc1xDbGllbnRJbnRlcmZhY2V8UmVsYXkKICAgIHsKICAgICAgICBpZiAoc3RyX3N0YXJ0c193aXRoKCRkc24sICdyZWRpczonKSkgewogICAgICAgICAgICAkc2NoZW1lID0gJ3JlZGlzJzsKICAgICAgICB9IGVsc2VpZiAoc3RyX3N0YXJ0c193aXRoKCRkc24sICdyZWRpc3M6JykpIHsKICAgICAgICAgICAgJHNjaGVtZSA9ICdyZWRpc3MnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgUmVkaXMgRFNOOiBpdCBkb2VzIG5vdCBzdGFydCB3aXRoICJyZWRpc1tzXToiLicpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFcZXh0ZW5zaW9uX2xvYWRlZCgncmVkaXMnKSAmJiAhXGV4dGVuc2lvbl9sb2FkZWQoJ3JlbGF5JykgJiYgIWNsYXNzX2V4aXN0cyhcUHJlZGlzXENsaWVudDo6Y2xhc3MpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDYWNoZUV4Y2VwdGlvbignQ2Fubm90IGZpbmQgdGhlICJyZWRpcyIgZXh0ZW5zaW9uIG5vciB0aGUgInJlbGF5IiBleHRlbnNpb24gbm9yIHRoZSAicHJlZGlzL3ByZWRpcyIgcGFja2FnZS4nKTsKICAgICAgICB9CgogICAgICAgICRhdXRoID0gbnVsbDsKICAgICAgICAkcGFyYW1zID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcjXicuJHNjaGVtZS4nOigvLyk/KD86KD86KD88dXNlcj5bXjpAXSorKTopPyg/PHBhc3N3b3JkPlteQF0qKylAKT8jJywgZnVuY3Rpb24gKCRtKSB1c2UgKCYkYXV0aCkgewogICAgICAgICAgICBpZiAoaXNzZXQoJG1bJ3Bhc3N3b3JkJ10pKSB7CiAgICAgICAgICAgICAgICBpZiAoXGluX2FycmF5KCRtWyd1c2VyJ10sIFsnJywgJ2RlZmF1bHQnXSwgdHJ1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAkYXV0aCA9IHJhd3VybGRlY29kZSgkbVsncGFzc3dvcmQnXSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRhdXRoID0gW3Jhd3VybGRlY29kZSgkbVsndXNlciddKSwgcmF3dXJsZGVjb2RlKCRtWydwYXNzd29yZCddKV07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCcnID09PSAkYXV0aCkgewogICAgICAgICAgICAgICAgICAgICRhdXRoID0gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICdmaWxlOicuKCRtWzFdID8/ICcnKTsKICAgICAgICB9LCAkZHNuKTsKCiAgICAgICAgaWYgKGZhbHNlID09PSAkcGFyYW1zID0gcGFyc2VfdXJsKCRwYXJhbXMpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgUmVkaXMgRFNOLicpOwogICAgICAgIH0KCiAgICAgICAgJHF1ZXJ5ID0gJGhvc3RzID0gW107CgogICAgICAgICR0bHMgPSAncmVkaXNzJyA9PT0gJHNjaGVtZTsKICAgICAgICAkdGNwU2NoZW1lID0gJHRscyA/ICd0bHMnIDogJ3RjcCc7CgogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydxdWVyeSddKSkgewogICAgICAgICAgICBwYXJzZV9zdHIoJHBhcmFtc1sncXVlcnknXSwgJHF1ZXJ5KTsKCiAgICAgICAgICAgIGlmIChpc3NldCgkcXVlcnlbJ2hvc3QnXSkpIHsKICAgICAgICAgICAgICAgIGlmICghXGlzX2FycmF5KCRob3N0cyA9ICRxdWVyeVsnaG9zdCddKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgUmVkaXMgRFNOOiBxdWVyeSBwYXJhbWV0ZXIgImhvc3QiIG11c3QgYmUgYW4gYXJyYXkuJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkaG9zdHMgYXMgJGhvc3QgPT4gJHBhcmFtZXRlcnMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoXGlzX3N0cmluZygkcGFyYW1ldGVycykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2Vfc3RyKCRwYXJhbWV0ZXJzLCAkcGFyYW1ldGVycyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChmYWxzZSA9PT0gJGkgPSBzdHJycG9zKCRob3N0LCAnOicpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRob3N0c1skaG9zdF0gPSBbJ3NjaGVtZScgPT4gJHRjcFNjaGVtZSwgJ2hvc3QnID0+ICRob3N0LCAncG9ydCcgPT4gNjM3OV0gKyAkcGFyYW1ldGVyczsKICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoJHBvcnQgPSAoaW50KSBzdWJzdHIoJGhvc3QsIDEgKyAkaSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGhvc3RzWyRob3N0XSA9IFsnc2NoZW1lJyA9PiAkdGNwU2NoZW1lLCAnaG9zdCcgPT4gc3Vic3RyKCRob3N0LCAwLCAkaSksICdwb3J0JyA9PiAkcG9ydF0gKyAkcGFyYW1ldGVyczsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkaG9zdHNbJGhvc3RdID0gWydzY2hlbWUnID0+ICd1bml4JywgJ3BhdGgnID0+IHN1YnN0cigkaG9zdCwgMCwgJGkpXSArICRwYXJhbWV0ZXJzOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRob3N0cyA9IGFycmF5X3ZhbHVlcygkaG9zdHMpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snaG9zdCddKSB8fCBpc3NldCgkcGFyYW1zWydwYXRoJ10pKSB7CiAgICAgICAgICAgIGlmICghaXNzZXQoJHBhcmFtc1snZGJpbmRleCddKSAmJiBpc3NldCgkcGFyYW1zWydwYXRoJ10pKSB7CiAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnIy8oXGQrKT8kIycsICRwYXJhbXNbJ3BhdGgnXSwgJG0pKSB7CiAgICAgICAgICAgICAgICAgICAgJHBhcmFtc1snZGJpbmRleCddID0gJG1bMV0gPz8gJHF1ZXJ5WydkYmluZGV4J10gPz8gJzAnOwogICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ3BhdGgnXSA9IHN1YnN0cigkcGFyYW1zWydwYXRoJ10sIDAsIC1cc3RybGVuKCRtWzBdKSk7CiAgICAgICAgICAgICAgICB9IGVsc2VpZiAoaXNzZXQoJHBhcmFtc1snaG9zdCddKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgUmVkaXMgRFNOOiBwYXJhbWV0ZXIgImRiaW5kZXgiIG11c3QgYmUgYSBudW1iZXIuJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydob3N0J10pKSB7CiAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRob3N0cywgWydzY2hlbWUnID0+ICR0Y3BTY2hlbWUsICdob3N0JyA9PiAkcGFyYW1zWydob3N0J10sICdwb3J0JyA9PiAkcGFyYW1zWydwb3J0J10gPz8gNjM3OV0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkaG9zdHMsIFsnc2NoZW1lJyA9PiAndW5peCcsICdwYXRoJyA9PiAkcGFyYW1zWydwYXRoJ11dKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCEkaG9zdHMpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBSZWRpcyBEU046IG1pc3NpbmcgaG9zdC4nKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydkYmluZGV4J10sICRxdWVyeVsnZGJpbmRleCddKSAmJiAkcGFyYW1zWydkYmluZGV4J10gIT09ICRxdWVyeVsnZGJpbmRleCddKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgUmVkaXMgRFNOOiBwYXRoIGFuZCBxdWVyeSAiZGJpbmRleCIgcGFyYW1ldGVycyBtaXNtYXRjaC4nKTsKICAgICAgICB9CgogICAgICAgICRwYXJhbXMgKz0gJHF1ZXJ5ICsgJG9wdGlvbnMgKyBzZWxmOjokZGVmYXVsdENvbm5lY3Rpb25PcHRpb25zOwoKICAgICAgICAkYm9vbGVhblN0cmVhbU9wdGlvbnMgPSBbCiAgICAgICAgICAgICdhbGxvd19zZWxmX3NpZ25lZCcsCiAgICAgICAgICAgICdjYXB0dXJlX3BlZXJfY2VydCcsCiAgICAgICAgICAgICdjYXB0dXJlX3BlZXJfY2VydF9jaGFpbicsCiAgICAgICAgICAgICdkaXNhYmxlX2NvbXByZXNzaW9uJywKICAgICAgICAgICAgJ1NOSV9lbmFibGVkJywKICAgICAgICAgICAgJ3ZlcmlmeV9wZWVyJywKICAgICAgICAgICAgJ3ZlcmlmeV9wZWVyX25hbWUnLAogICAgICAgIF07CgogICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ3NzbCddID8/IFtdIGFzICRzdHJlYW1PcHRpb24gPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChcaW5fYXJyYXkoJHN0cmVhbU9wdGlvbiwgJGJvb2xlYW5TdHJlYW1PcHRpb25zLCB0cnVlKSAmJiBcaXNfc3RyaW5nKCR2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ3NzbCddWyRzdHJlYW1PcHRpb25dID0gZmlsdGVyX3ZhcigkdmFsdWUsIFxGSUxURVJfVkFMSURBVEVfQk9PTCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICghaXNzZXQoJHBhcmFtc1sncmVkaXNfc2VudGluZWwnXSkpIHsKICAgICAgICAgICAgJHBhcmFtc1snYXV0aCddID8/PSAkYXV0aDsKICAgICAgICB9IGVsc2VpZiAoIWNsYXNzX2V4aXN0cyhcUHJlZGlzXENsaWVudDo6Y2xhc3MpICYmICFjbGFzc19leGlzdHMoXFJlZGlzU2VudGluZWw6OmNsYXNzKSAmJiAhY2xhc3NfZXhpc3RzKFNlbnRpbmVsOjpjbGFzcykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENhY2hlRXhjZXB0aW9uKCdSZWRpcyBTZW50aW5lbCBzdXBwb3J0IHJlcXVpcmVzIG9uZSBvZjogInByZWRpcy9wcmVkaXMiLCAiZXh0LXJlZGlzID49IDUuMiIsICJleHQtcmVsYXkiLicpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2xhenknXSkpIHsKICAgICAgICAgICAgJHBhcmFtc1snbGF6eSddID0gZmlsdGVyX3ZhcigkcGFyYW1zWydsYXp5J10sIFxGSUxURVJfVkFMSURBVEVfQk9PTEVBTik7CiAgICAgICAgfQogICAgICAgICRwYXJhbXNbJ3JlZGlzX2NsdXN0ZXInXSA9IGZpbHRlcl92YXIoJHBhcmFtc1sncmVkaXNfY2x1c3RlciddLCBcRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4pOwoKICAgICAgICBpZiAoJHBhcmFtc1sncmVkaXNfY2x1c3RlciddICYmIGlzc2V0KCRwYXJhbXNbJ3JlZGlzX3NlbnRpbmVsJ10pKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0Nhbm5vdCB1c2UgYm90aCAicmVkaXNfY2x1c3RlciIgYW5kICJyZWRpc19zZW50aW5lbCIgYXQgdGhlIHNhbWUgdGltZS4nKTsKICAgICAgICB9CgogICAgICAgICRjbGFzcyA9ICRwYXJhbXNbJ2NsYXNzJ10gPz8gbWF0Y2ggKHRydWUpIHsKICAgICAgICAgICAgJHBhcmFtc1sncmVkaXNfY2x1c3RlciddID0+IFxleHRlbnNpb25fbG9hZGVkKCdyZWRpcycpID8gXFJlZGlzQ2x1c3Rlcjo6Y2xhc3MgOiBcUHJlZGlzXENsaWVudDo6Y2xhc3MsCiAgICAgICAgICAgIGlzc2V0KCRwYXJhbXNbJ3JlZGlzX3NlbnRpbmVsJ10pID0+IG1hdGNoICh0cnVlKSB7CiAgICAgICAgICAgICAgICBcZXh0ZW5zaW9uX2xvYWRlZCgncmVkaXMnKSA9PiBcUmVkaXM6OmNsYXNzLAogICAgICAgICAgICAgICAgXGV4dGVuc2lvbl9sb2FkZWQoJ3JlbGF5JykgPT4gUmVsYXk6OmNsYXNzLAogICAgICAgICAgICAgICAgZGVmYXVsdCA9PiBcUHJlZGlzXENsaWVudDo6Y2xhc3MsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDEgPCBcY291bnQoJGhvc3RzKSAmJiBcZXh0ZW5zaW9uX2xvYWRlZCgncmVkaXMnKSA9PiAxIDwgXGNvdW50KCRob3N0cykgPyBcUmVkaXNBcnJheTo6Y2xhc3MgOiBcUmVkaXM6OmNsYXNzLAogICAgICAgICAgICBcZXh0ZW5zaW9uX2xvYWRlZCgncmVkaXMnKSA9PiBcUmVkaXM6OmNsYXNzLAogICAgICAgICAgICBcZXh0ZW5zaW9uX2xvYWRlZCgncmVsYXknKSA9PiBSZWxheTo6Y2xhc3MsCiAgICAgICAgICAgIGRlZmF1bHQgPT4gXFByZWRpc1xDbGllbnQ6OmNsYXNzLAogICAgICAgIH07CgogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydyZWRpc19zZW50aW5lbCddKSAmJiAhaXNfYSgkY2xhc3MsIFxQcmVkaXNcQ2xpZW50OjpjbGFzcywgdHJ1ZSkgJiYgIWNsYXNzX2V4aXN0cyhcUmVkaXNTZW50aW5lbDo6Y2xhc3MpICYmICFjbGFzc19leGlzdHMoU2VudGluZWw6OmNsYXNzKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ2FjaGVFeGNlcHRpb24oXHNwcmludGYoJ0Nhbm5vdCB1c2UgUmVkaXMgU2VudGluZWw6IGNsYXNzICIlcyIgZG9lcyBub3QgZXh0ZW5kICJQcmVkaXNcQ2xpZW50IiBhbmQgbmVpdGhlciBleHQtcmVkaXMgPj0gNS4yIG5vciBleHQtcmVsYXkgaGF2ZSBiZWVuIGZvdW5kLicsICRjbGFzcykpOwogICAgICAgIH0KCiAgICAgICAgJGlzUmVkaXNFeHQgPSBpc19hKCRjbGFzcywgXFJlZGlzOjpjbGFzcywgdHJ1ZSk7CiAgICAgICAgJGlzUmVsYXlFeHQgPSAhJGlzUmVkaXNFeHQgJiYgaXNfYSgkY2xhc3MsIFJlbGF5OjpjbGFzcywgdHJ1ZSk7CgogICAgICAgIGlmICgkaXNSZWRpc0V4dCB8fCAkaXNSZWxheUV4dCkgewogICAgICAgICAgICAkY29ubmVjdCA9ICRwYXJhbXNbJ3BlcnNpc3RlbnQnXSB8fCAkcGFyYW1zWydwZXJzaXN0ZW50X2lkJ10gPyAncGNvbm5lY3QnIDogJ2Nvbm5lY3QnOwoKICAgICAgICAgICAgJGluaXRpYWxpemVyID0gc3RhdGljIGZ1bmN0aW9uICgpIHVzZSAoJGNsYXNzLCAkaXNSZWRpc0V4dCwgJGNvbm5lY3QsICRwYXJhbXMsICRhdXRoLCAkaG9zdHMsICR0bHMpIHsKICAgICAgICAgICAgICAgICRzZW50aW5lbENsYXNzID0gJGlzUmVkaXNFeHQgPyBcUmVkaXNTZW50aW5lbDo6Y2xhc3MgOiBTZW50aW5lbDo6Y2xhc3M7CiAgICAgICAgICAgICAgICAkcmVkaXMgPSBuZXcgJGNsYXNzKCk7CiAgICAgICAgICAgICAgICAkaG9zdEluZGV4ID0gMDsKICAgICAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAgICAkaG9zdCA9ICRob3N0c1skaG9zdEluZGV4XVsnaG9zdCddID8/ICRob3N0c1skaG9zdEluZGV4XVsncGF0aCddOwogICAgICAgICAgICAgICAgICAgICRwb3J0ID0gJGhvc3RzWyRob3N0SW5kZXhdWydwb3J0J10gPz8gMDsKICAgICAgICAgICAgICAgICAgICAkcGFzc0F1dGggPSBudWxsICE9PSAkcGFyYW1zWydhdXRoJ10gJiYgKCEkaXNSZWRpc0V4dCB8fCBcZGVmaW5lZCgnUmVkaXM6Ok9QVF9OVUxMX01VTFRJQlVMS19BU19OVUxMJykpOwogICAgICAgICAgICAgICAgICAgICRhZGRyZXNzID0gZmFsc2U7CgogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkaG9zdHNbJGhvc3RJbmRleF1bJ2hvc3QnXSkgJiYgJHRscykgewogICAgICAgICAgICAgICAgICAgICAgICAkaG9zdCA9ICd0bHM6Ly8nLiRob3N0OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkcGFyYW1zWydyZWRpc19zZW50aW5lbCddKSkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaXNSZWRpc0V4dCAmJiB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigncmVkaXMnKSwgJzYuMC4wJywgJz49JykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdob3N0JyA9PiAkaG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydCcgPT4gJHBvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3RUaW1lb3V0JyA9PiAoZmxvYXQpICRwYXJhbXNbJ3RpbWVvdXQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGVyc2lzdGVudCcgPT4gJHBhcmFtc1sncGVyc2lzdGVudF9pZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXRyeUludGVydmFsJyA9PiAoaW50KSAkcGFyYW1zWydyZXRyeV9pbnRlcnZhbCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFkVGltZW91dCcgPT4gKGZsb2F0KSAkcGFyYW1zWydyZWFkX3RpbWVvdXQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXNzQXV0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb25zWydhdXRoJ10gPSAkcGFyYW1zWydhdXRoJ107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09ICRwYXJhbXNbJ3NzbCddICYmIHZlcnNpb25fY29tcGFyZShwaHB2ZXJzaW9uKCdyZWRpcycpLCAnNi4yLjAnLCAnPj0nKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb25zWydzc2wnXSA9ICRwYXJhbXNbJ3NzbCddOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZW50aW5lbCA9IG5ldyBcUmVkaXNTZW50aW5lbCgkb3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXh0cmEgPSAkcGFzc0F1dGggPyBbJHBhcmFtc1snYXV0aCddXSA6IFtdOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZW50aW5lbCA9IEBuZXcgJHNlbnRpbmVsQ2xhc3MoJGhvc3QsICRwb3J0LCAkcGFyYW1zWyd0aW1lb3V0J10sIChzdHJpbmcpICRwYXJhbXNbJ3BlcnNpc3RlbnRfaWQnXSwgJHBhcmFtc1sncmV0cnlfaW50ZXJ2YWwnXSwgJHBhcmFtc1sncmVhZF90aW1lb3V0J10sIC4uLiRleHRyYSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYWRkcmVzcyA9IEAkc2VudGluZWwtPmdldE1hc3RlckFkZHJCeU5hbWUoJHBhcmFtc1sncmVkaXNfc2VudGluZWwnXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFskaG9zdCwgJHBvcnRdID0gJGFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChcUmVkaXNFeGNlcHRpb258XFJlbGF5XEV4Y2VwdGlvbiAkcmVkaXNFeGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IHdoaWxlICgrKyRob3N0SW5kZXggPCBcY291bnQoJGhvc3RzKSAmJiAhJGFkZHJlc3MpOwoKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydyZWRpc19zZW50aW5lbCddKSAmJiAhJGFkZHJlc3MpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdGYWlsZWQgdG8gcmV0cmlldmUgbWFzdGVyIGluZm9ybWF0aW9uIGZyb20gc2VudGluZWwgIiVzIi4nLCAkcGFyYW1zWydyZWRpc19zZW50aW5lbCddKSwgcHJldmlvdXM6ICRyZWRpc0V4Y2VwdGlvbiA/PyBudWxsKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICRleHRyYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmVhbScgPT4gJHBhcmFtc1snc3NsJ10gPz8gbnVsbCwKICAgICAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gJHBhcmFtc1snYXV0aCddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRleHRyYVsnYXV0aCddID0gJHBhcmFtc1snYXV0aCddOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBAJHJlZGlzLT57JGNvbm5lY3R9KCRob3N0LCAkcG9ydCwgKGZsb2F0KSAkcGFyYW1zWyd0aW1lb3V0J10sIChzdHJpbmcpICRwYXJhbXNbJ3BlcnNpc3RlbnRfaWQnXSwgJHBhcmFtc1sncmV0cnlfaW50ZXJ2YWwnXSwgJHBhcmFtc1sncmVhZF90aW1lb3V0J10sIC4uLlxkZWZpbmVkKCdSZWRpczo6U0NBTl9QUkVGSVgnKSB8fCAhJGlzUmVkaXNFeHQgPyBbJGV4dHJhXSA6IFtdKTsKCiAgICAgICAgICAgICAgICAgICAgc2V0X2Vycm9yX2hhbmRsZXIoZnVuY3Rpb24gKCR0eXBlLCAkbXNnKSB1c2UgKCYkZXJyb3IpIHsgJGVycm9yID0gJG1zZzsgfSk7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgJGlzQ29ubmVjdGVkID0gJHJlZGlzLT5pc0Nvbm5lY3RlZCgpOwogICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoISRpc0Nvbm5lY3RlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSBwcmVnX21hdGNoKCcvXlJlZGlzOjpwP2Nvbm5lY3RcKFwpOiAoLiopLycsICRlcnJvciA/PyAkcmVkaXMtPmdldExhc3RFcnJvcigpID8/ICcnLCAkZXJyb3IpID8gXHNwcmludGYoJyAoJXMpJywgJGVycm9yWzFdKSA6ICcnOwogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdSZWRpcyBjb25uZWN0aW9uIGZhaWxlZDogJy4kZXJyb3IuJy4nKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICgwIDwgJHBhcmFtc1sndGNwX2tlZXBhbGl2ZSddICYmICghJGlzUmVkaXNFeHQgfHwgXGRlZmluZWQoJ1JlZGlzOjpPUFRfVENQX0tFRVBBTElWRScpKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVkaXMtPnNldE9wdGlvbigkaXNSZWRpc0V4dCA/IFxSZWRpczo6T1BUX1RDUF9LRUVQQUxJVkUgOiBSZWxheTo6T1BUX1RDUF9LRUVQQUxJVkUsICRwYXJhbXNbJ3RjcF9rZWVwYWxpdmUnXSk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoKCFcZGVmaW5lZCgnUmVkaXM6OlNDQU5fUFJFRklYJykgJiYgbnVsbCAhPT0gJGF1dGggJiYgJGlzUmVkaXNFeHQgJiYgISRyZWRpcy0+YXV0aCgkYXV0aCkpIHx8ICEkcmVkaXMtPnNlbGVjdCgkcGFyYW1zWydkYmluZGV4J10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRlID0gcHJlZ19yZXBsYWNlKCcvXkVSUiAvJywgJycsICRyZWRpcy0+Z2V0TGFzdEVycm9yKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdSZWRpcyBjb25uZWN0aW9uIGZhaWxlZDogJy4kZS4nLicpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9IGNhdGNoIChcUmVkaXNFeGNlcHRpb258XFJlbGF5XEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ1JlZGlzIGNvbm5lY3Rpb24gZmFpbGVkOiAnLiRlLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJldHVybiAkcmVkaXM7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBpZiAoJHBhcmFtc1snbGF6eSddKSB7CiAgICAgICAgICAgICAgICAkcmVkaXMgPSAkaXNSZWRpc0V4dCA/IFJlZGlzUHJveHk6OmNyZWF0ZUxhenlQcm94eSgkaW5pdGlhbGl6ZXIpIDogUmVsYXlQcm94eTo6Y3JlYXRlTGF6eVByb3h5KCRpbml0aWFsaXplcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVkaXMgPSAkaW5pdGlhbGl6ZXIoKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZWlmIChpc19hKCRjbGFzcywgXFJlZGlzQXJyYXk6OmNsYXNzLCB0cnVlKSkgewogICAgICAgICAgICBmb3JlYWNoICgkaG9zdHMgYXMgJGkgPT4gJGhvc3QpIHsKICAgICAgICAgICAgICAgICRob3N0c1skaV0gPSBtYXRjaCAoJGhvc3RbJ3NjaGVtZSddKSB7CiAgICAgICAgICAgICAgICAgICAgJ3RjcCcgPT4gJGhvc3RbJ2hvc3QnXS4nOicuJGhvc3RbJ3BvcnQnXSwKICAgICAgICAgICAgICAgICAgICAndGxzJyA9PiAndGxzOi8vJy4kaG9zdFsnaG9zdCddLic6Jy4kaG9zdFsncG9ydCddLAogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgPT4gJGhvc3RbJ3BhdGgnXSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBhcmFtc1snbGF6eV9jb25uZWN0J10gPSAkcGFyYW1zWydsYXp5J10gPz8gdHJ1ZTsKICAgICAgICAgICAgJHBhcmFtc1snY29ubmVjdF90aW1lb3V0J10gPSAkcGFyYW1zWyd0aW1lb3V0J107CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgJHJlZGlzID0gbmV3ICRjbGFzcygkaG9zdHMsICRwYXJhbXMpOwogICAgICAgICAgICB9IGNhdGNoIChcUmVkaXNDbHVzdGVyRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdSZWRpcyBjb25uZWN0aW9uIGZhaWxlZDogJy4kZS0+Z2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKDAgPCAkcGFyYW1zWyd0Y3Bfa2VlcGFsaXZlJ10gJiYgKCEkaXNSZWRpc0V4dCB8fCBcZGVmaW5lZCgnUmVkaXM6Ok9QVF9UQ1BfS0VFUEFMSVZFJykpKSB7CiAgICAgICAgICAgICAgICAkcmVkaXMtPnNldE9wdGlvbigkaXNSZWRpc0V4dCA/IFxSZWRpczo6T1BUX1RDUF9LRUVQQUxJVkUgOiBSZWxheTo6T1BUX1RDUF9LRUVQQUxJVkUsICRwYXJhbXNbJ3RjcF9rZWVwYWxpdmUnXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2VpZiAoaXNfYSgkY2xhc3MsIFxSZWRpc0NsdXN0ZXI6OmNsYXNzLCB0cnVlKSkgewogICAgICAgICAgICAkaW5pdGlhbGl6ZXIgPSBzdGF0aWMgZnVuY3Rpb24gKCkgdXNlICgkaXNSZWRpc0V4dCwgJGNsYXNzLCAkcGFyYW1zLCAkaG9zdHMpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRob3N0cyBhcyAkaSA9PiAkaG9zdCkgewogICAgICAgICAgICAgICAgICAgICRob3N0c1skaV0gPSBtYXRjaCAoJGhvc3RbJ3NjaGVtZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICd0Y3AnID0+ICRob3N0Wydob3N0J10uJzonLiRob3N0Wydwb3J0J10sCiAgICAgICAgICAgICAgICAgICAgICAgICd0bHMnID0+ICd0bHM6Ly8nLiRob3N0Wydob3N0J10uJzonLiRob3N0Wydwb3J0J10sCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgPT4gJGhvc3RbJ3BhdGgnXSwKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJHJlZGlzID0gbmV3ICRjbGFzcyhudWxsLCAkaG9zdHMsICRwYXJhbXNbJ3RpbWVvdXQnXSwgJHBhcmFtc1sncmVhZF90aW1lb3V0J10sIChib29sKSAkcGFyYW1zWydwZXJzaXN0ZW50J10sICRwYXJhbXNbJ2F1dGgnXSA/PyAnJywgLi4uXGRlZmluZWQoJ1JlZGlzOjpTQ0FOX1BSRUZJWCcpID8gWyRwYXJhbXNbJ3NzbCddID8/IG51bGxdIDogW10pOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoXFJlZGlzQ2x1c3RlckV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ1JlZGlzIGNvbm5lY3Rpb24gZmFpbGVkOiAnLiRlLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgwIDwgJHBhcmFtc1sndGNwX2tlZXBhbGl2ZSddICYmICghJGlzUmVkaXNFeHQgfHwgXGRlZmluZWQoJ1JlZGlzOjpPUFRfVENQX0tFRVBBTElWRScpKSkgewogICAgICAgICAgICAgICAgICAgICRyZWRpcy0+c2V0T3B0aW9uKCRpc1JlZGlzRXh0ID8gXFJlZGlzOjpPUFRfVENQX0tFRVBBTElWRSA6IFJlbGF5OjpPUFRfVENQX0tFRVBBTElWRSwgJHBhcmFtc1sndGNwX2tlZXBhbGl2ZSddKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRyZWRpcy0+c2V0T3B0aW9uKFxSZWRpc0NsdXN0ZXI6Ok9QVF9TTEFWRV9GQUlMT1ZFUiwgbWF0Y2ggKCRwYXJhbXNbJ2ZhaWxvdmVyJ10pIHsKICAgICAgICAgICAgICAgICAgICAnZXJyb3InID0+IFxSZWRpc0NsdXN0ZXI6OkZBSUxPVkVSX0VSUk9SLAogICAgICAgICAgICAgICAgICAgICdkaXN0cmlidXRlJyA9PiBcUmVkaXNDbHVzdGVyOjpGQUlMT1ZFUl9ESVNUUklCVVRFLAogICAgICAgICAgICAgICAgICAgICdzbGF2ZXMnID0+IFxSZWRpc0NsdXN0ZXI6OkZBSUxPVkVSX0RJU1RSSUJVVEVfU0xBVkVTLAogICAgICAgICAgICAgICAgICAgICdub25lJyA9PiBcUmVkaXNDbHVzdGVyOjpGQUlMT1ZFUl9OT05FLAogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRyZWRpczsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICRyZWRpcyA9ICRwYXJhbXNbJ2xhenknXSA/IFJlZGlzQ2x1c3RlclByb3h5OjpjcmVhdGVMYXp5UHJveHkoJGluaXRpYWxpemVyKSA6ICRpbml0aWFsaXplcigpOwogICAgICAgIH0gZWxzZWlmIChpc19hKCRjbGFzcywgXFByZWRpc1xDbGllbnRJbnRlcmZhY2U6OmNsYXNzLCB0cnVlKSkgewogICAgICAgICAgICBpZiAoJHBhcmFtc1sncmVkaXNfY2x1c3RlciddKSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zWydjbHVzdGVyJ10gPSAncmVkaXMnOwogICAgICAgICAgICB9IGVsc2VpZiAoaXNzZXQoJHBhcmFtc1sncmVkaXNfc2VudGluZWwnXSkpIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ3JlcGxpY2F0aW9uJ10gPSAnc2VudGluZWwnOwogICAgICAgICAgICAgICAgJHBhcmFtc1snc2VydmljZSddID0gJHBhcmFtc1sncmVkaXNfc2VudGluZWwnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcGFyYW1zICs9IFsncGFyYW1ldGVycycgPT4gW11dOwogICAgICAgICAgICAkcGFyYW1zWydwYXJhbWV0ZXJzJ10gKz0gWwogICAgICAgICAgICAgICAgJ3BlcnNpc3RlbnQnID0+ICRwYXJhbXNbJ3BlcnNpc3RlbnQnXSwKICAgICAgICAgICAgICAgICd0aW1lb3V0JyA9PiAkcGFyYW1zWyd0aW1lb3V0J10sCiAgICAgICAgICAgICAgICAncmVhZF93cml0ZV90aW1lb3V0JyA9PiAkcGFyYW1zWydyZWFkX3RpbWVvdXQnXSwKICAgICAgICAgICAgICAgICd0Y3Bfbm9kZWxheScgPT4gdHJ1ZSwKICAgICAgICAgICAgXTsKICAgICAgICAgICAgaWYgKCRwYXJhbXNbJ2RiaW5kZXgnXSkgewogICAgICAgICAgICAgICAgJHBhcmFtc1sncGFyYW1ldGVycyddWydkYXRhYmFzZSddID0gJHBhcmFtc1snZGJpbmRleCddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChcaXNfYXJyYXkoJGF1dGgpKSB7CiAgICAgICAgICAgICAgICAvLyBBQ0wKICAgICAgICAgICAgICAgICRwYXJhbXNbJ3BhcmFtZXRlcnMnXVsndXNlcm5hbWUnXSA9ICRhdXRoWzBdOwogICAgICAgICAgICAgICAgJHBhcmFtc1sncGFyYW1ldGVycyddWydwYXNzd29yZCddID0gJGF1dGhbMV07CiAgICAgICAgICAgIH0gZWxzZWlmIChudWxsICE9PSAkYXV0aCkgewogICAgICAgICAgICAgICAgJHBhcmFtc1sncGFyYW1ldGVycyddWydwYXNzd29yZCddID0gJGF1dGg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydzc2wnXSkpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRob3N0cyBhcyAkaSA9PiAkaG9zdCkgewogICAgICAgICAgICAgICAgICAgICRob3N0c1skaV1bJ3NzbCddID8/PSAkcGFyYW1zWydzc2wnXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKDEgPT09IFxjb3VudCgkaG9zdHMpICYmICEoJHBhcmFtc1sncmVkaXNfY2x1c3RlciddIHx8ICRwYXJhbXNbJ3JlZGlzX3NlbnRpbmVsJ10pKSB7CiAgICAgICAgICAgICAgICAkaG9zdHMgPSAkaG9zdHNbMF07CiAgICAgICAgICAgIH0gZWxzZWlmIChcaW5fYXJyYXkoJHBhcmFtc1snZmFpbG92ZXInXSwgWydzbGF2ZXMnLCAnZGlzdHJpYnV0ZSddLCB0cnVlKSAmJiAhaXNzZXQoJHBhcmFtc1sncmVwbGljYXRpb24nXSkpIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ3JlcGxpY2F0aW9uJ10gPSB0cnVlOwogICAgICAgICAgICAgICAgJGhvc3RzWzBdICs9IFsnYWxpYXMnID0+ICdtYXN0ZXInXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcGFyYW1zWydleGNlcHRpb25zJ10gPSBmYWxzZTsKCiAgICAgICAgICAgICRyZWRpcyA9IG5ldyAkY2xhc3MoJGhvc3RzLCBhcnJheV9kaWZmX2tleSgkcGFyYW1zLCBzZWxmOjokZGVmYXVsdENvbm5lY3Rpb25PcHRpb25zKSk7CiAgICAgICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydyZWRpc19zZW50aW5lbCddKSkgewogICAgICAgICAgICAgICAgJHJlZGlzLT5nZXRDb25uZWN0aW9uKCktPnNldFNlbnRpbmVsVGltZW91dCgkcGFyYW1zWyd0aW1lb3V0J10pOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlaWYgKGNsYXNzX2V4aXN0cygkY2xhc3MsIGZhbHNlKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCciJXMiIGlzIG5vdCBhIHN1YmNsYXNzIG9mICJSZWRpcyIsICJSZWRpc0FycmF5IiwgIlJlZGlzQ2x1c3RlciIsICJSZWxheVxSZWxheSIgbm9yICJQcmVkaXNcQ2xpZW50SW50ZXJmYWNlIi4nLCAkY2xhc3MpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdDbGFzcyAiJXMiIGRvZXMgbm90IGV4aXN0LicsICRjbGFzcykpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyZWRpczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZG9GZXRjaChhcnJheSAkaWRzKTogaXRlcmFibGUKICAgIHsKICAgICAgICBpZiAoISRpZHMpIHsKICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KCiAgICAgICAgJHJlc3VsdCA9IFtdOwoKICAgICAgICBpZiAoKCR0aGlzLT5yZWRpcyBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlICYmICgkdGhpcy0+cmVkaXMtPmdldENvbm5lY3Rpb24oKSBpbnN0YW5jZW9mIENsdXN0ZXJJbnRlcmZhY2UgfHwgJHRoaXMtPnJlZGlzLT5nZXRDb25uZWN0aW9uKCkgaW5zdGFuY2VvZiBQcmVkaXMyQ2x1c3RlckludGVyZmFjZSkpIHx8ICR0aGlzLT5yZWRpcyBpbnN0YW5jZW9mIFJlbGF5Q2x1c3RlcikgewogICAgICAgICAgICAkdmFsdWVzID0gJHRoaXMtPnBpcGVsaW5lKGZ1bmN0aW9uICgpIHVzZSAoJGlkcykgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsKICAgICAgICAgICAgICAgICAgICB5aWVsZCAnZ2V0JyA9PiBbJGlkXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHZhbHVlcyA9ICR0aGlzLT5yZWRpcy0+bWdldCgkaWRzKTsKCiAgICAgICAgICAgIGlmICghXGlzX2FycmF5KCR2YWx1ZXMpIHx8IFxjb3VudCgkdmFsdWVzKSAhPT0gXGNvdW50KCRpZHMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gW107CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR2YWx1ZXMgPSBhcnJheV9jb21iaW5lKCRpZHMsICR2YWx1ZXMpOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHZhbHVlcyBhcyAkaWQgPT4gJHYpIHsKICAgICAgICAgICAgaWYgKCR2KSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0WyRpZF0gPSAkdGhpcy0+bWFyc2hhbGxlci0+dW5tYXJzaGFsbCgkdik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBkb0hhdmUoc3RyaW5nICRpZCk6IGJvb2wKICAgIHsKICAgICAgICByZXR1cm4gKGJvb2wpICR0aGlzLT5yZWRpcy0+ZXhpc3RzKCRpZCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGRvQ2xlYXIoc3RyaW5nICRuYW1lc3BhY2UpOiBib29sCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5yZWRpcyBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlKSB7CiAgICAgICAgICAgICRwcmVmaXggPSAkdGhpcy0+cmVkaXMtPmdldE9wdGlvbnMoKS0+cHJlZml4ID8gJHRoaXMtPnJlZGlzLT5nZXRPcHRpb25zKCktPnByZWZpeC0+Z2V0UHJlZml4KCkgOiAnJzsKICAgICAgICAgICAgJHByZWZpeExlbiA9IFxzdHJsZW4oJHByZWZpeCA/PyAnJyk7CiAgICAgICAgfQoKICAgICAgICAkY2xlYXJlZCA9IHRydWU7CiAgICAgICAgJGhvc3RzID0gJHRoaXMtPmdldEhvc3RzKCk7CiAgICAgICAgJGhvc3QgPSByZXNldCgkaG9zdHMpOwogICAgICAgIGlmICgkaG9zdCBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50KSB7CiAgICAgICAgICAgICRjb25uZWN0aW9uID0gJGhvc3QtPmdldENvbm5lY3Rpb24oKTsKCiAgICAgICAgICAgIGlmICgkY29ubmVjdGlvbiBpbnN0YW5jZW9mIFJlcGxpY2F0aW9uSW50ZXJmYWNlKSB7CiAgICAgICAgICAgICAgICAkaG9zdHMgPSBbJGhvc3QtPmdldENsaWVudEZvcignbWFzdGVyJyldOwogICAgICAgICAgICB9IGVsc2VpZiAoJGNvbm5lY3Rpb24gaW5zdGFuY2VvZiBQcmVkaXMyUmVwbGljYXRpb25JbnRlcmZhY2UpIHsKICAgICAgICAgICAgICAgICRjb25uZWN0aW9uLT5zd2l0Y2hUb01hc3RlcigpOwoKICAgICAgICAgICAgICAgICRob3N0cyA9IFskaG9zdF07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZvcmVhY2ggKCRob3N0cyBhcyAkaG9zdCkgewogICAgICAgICAgICBpZiAoIWlzc2V0KCRuYW1lc3BhY2VbMF0pKSB7CiAgICAgICAgICAgICAgICAkY2xlYXJlZCA9ICRob3N0LT5mbHVzaERiKCkgJiYgJGNsZWFyZWQ7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGluZm8gPSAkaG9zdC0+aW5mbygnU2VydmVyJyk7CiAgICAgICAgICAgICRpbmZvID0gISRpbmZvIGluc3RhbmNlb2YgRXJyb3JJbnRlcmZhY2UgPyAkaW5mb1snU2VydmVyJ10gPz8gJGluZm8gOiBbJ3JlZGlzX3ZlcnNpb24nID0+ICcyLjAnXTsKCiAgICAgICAgICAgIGlmICgkaG9zdCBpbnN0YW5jZW9mIFJlbGF5KSB7CiAgICAgICAgICAgICAgICAkcHJlZml4ID0gUmVsYXk6OlNDQU5fUFJFRklYICYgJGhvc3QtPmdldE9wdGlvbihSZWxheTo6T1BUX1NDQU4pID8gJycgOiAkaG9zdC0+Z2V0T3B0aW9uKFJlbGF5OjpPUFRfUFJFRklYKTsKICAgICAgICAgICAgICAgICRwcmVmaXhMZW4gPSBcc3RybGVuKCRob3N0LT5nZXRPcHRpb24oUmVsYXk6Ok9QVF9QUkVGSVgpID8/ICcnKTsKICAgICAgICAgICAgfSBlbHNlaWYgKCEkaG9zdCBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlKSB7CiAgICAgICAgICAgICAgICAkcHJlZml4ID0gXGRlZmluZWQoJ1JlZGlzOjpTQ0FOX1BSRUZJWCcpICYmIChcUmVkaXM6OlNDQU5fUFJFRklYICYgJGhvc3QtPmdldE9wdGlvbihcUmVkaXM6Ok9QVF9TQ0FOKSkgPyAnJyA6ICRob3N0LT5nZXRPcHRpb24oXFJlZGlzOjpPUFRfUFJFRklYKTsKICAgICAgICAgICAgICAgICRwcmVmaXhMZW4gPSBcc3RybGVuKCRob3N0LT5nZXRPcHRpb24oXFJlZGlzOjpPUFRfUFJFRklYKSA/PyAnJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBhdHRlcm4gPSAkcHJlZml4LiRuYW1lc3BhY2UuJyonOwoKICAgICAgICAgICAgaWYgKCF2ZXJzaW9uX2NvbXBhcmUoJGluZm9bJ3JlZGlzX3ZlcnNpb24nXSwgJzIuOCcsICc+PScpKSB7CiAgICAgICAgICAgICAgICAvLyBBcyBkb2N1bWVudGVkIGluIFJlZGlzIGRvY3VtZW50YXRpb24gKGh0dHA6Ly9yZWRpcy5pby9jb21tYW5kcy9rZXlzKSB1c2luZyBLRVlTCiAgICAgICAgICAgICAgICAvLyBjYW4gaGFuZyB5b3VyIHNlcnZlciB3aGVuIGl0IGlzIGV4ZWN1dGVkIGFnYWluc3QgbGFyZ2UgZGF0YWJhc2VzIChtaWxsaW9ucyBvZiBpdGVtcykuCiAgICAgICAgICAgICAgICAvLyBXaGVuZXZlciB5b3UgaGl0IHRoaXMgc2NhbGUsIHlvdSBzaG91bGQgcmVhbGx5IGNvbnNpZGVyIHVwZ3JhZGluZyB0byBSZWRpcyAyLjggb3IgYWJvdmUuCiAgICAgICAgICAgICAgICAkdW5saW5rID0gdmVyc2lvbl9jb21wYXJlKCRpbmZvWydyZWRpc192ZXJzaW9uJ10sICc0LjAnLCAnPj0nKSA/ICdVTkxJTksnIDogJ0RFTCc7CiAgICAgICAgICAgICAgICAkYXJncyA9ICR0aGlzLT5yZWRpcyBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlID8gWzAsICRwYXR0ZXJuXSA6IFtbJHBhdHRlcm5dLCAwXTsKICAgICAgICAgICAgICAgICRjbGVhcmVkID0gJGhvc3QtPmV2YWwoImxvY2FsIGtleXM9cmVkaXMuY2FsbCgnS0VZUycsQVJHVlsxXSkgZm9yIGk9MSwja2V5cyw1MDAwIGRvIHJlZGlzLmNhbGwoJyR1bmxpbmsnLHVucGFjayhrZXlzLGksbWF0aC5taW4oaSs0OTk5LCNrZXlzKSkpIGVuZCByZXR1cm4gMSIsICRhcmdzWzBdLCAkYXJnc1sxXSkgJiYgJGNsZWFyZWQ7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGN1cnNvciA9IG51bGw7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICRrZXlzID0gJGhvc3QgaW5zdGFuY2VvZiBcUHJlZGlzXENsaWVudEludGVyZmFjZSA/ICRob3N0LT5zY2FuKCRjdXJzb3IgPz8gMCwgJ01BVENIJywgJHBhdHRlcm4sICdDT1VOVCcsIDEwMDApIDogJGhvc3QtPnNjYW4oJGN1cnNvciwgJHBhdHRlcm4sIDEwMDApOwogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRrZXlzWzFdKSAmJiBcaXNfYXJyYXkoJGtleXNbMV0pKSB7CiAgICAgICAgICAgICAgICAgICAgJGN1cnNvciA9ICRrZXlzWzBdOwogICAgICAgICAgICAgICAgICAgICRrZXlzID0gJGtleXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoJGtleXMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHByZWZpeExlbikgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgka2V5cyBhcyAkaSA9PiAka2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAka2V5c1skaV0gPSBzdWJzdHIoJGtleSwgJHByZWZpeExlbik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmRvRGVsZXRlKCRrZXlzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSB3aGlsZSAoJGN1cnNvcik7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGNsZWFyZWQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGRvRGVsZXRlKGFycmF5ICRpZHMpOiBib29sCiAgICB7CiAgICAgICAgaWYgKCEkaWRzKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5yZWRpcyBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlICYmICgkdGhpcy0+cmVkaXMtPmdldENvbm5lY3Rpb24oKSBpbnN0YW5jZW9mIENsdXN0ZXJJbnRlcmZhY2UgfHwgJHRoaXMtPnJlZGlzLT5nZXRDb25uZWN0aW9uKCkgaW5zdGFuY2VvZiBQcmVkaXMyQ2x1c3RlckludGVyZmFjZSkpIHsKICAgICAgICAgICAgc3RhdGljICRkZWw7CiAgICAgICAgICAgICRkZWwgPz89IChjbGFzc19leGlzdHMoVU5MSU5LOjpjbGFzcykgPyAndW5saW5rJyA6ICdkZWwnKTsKCiAgICAgICAgICAgICR0aGlzLT5waXBlbGluZShmdW5jdGlvbiAoKSB1c2UgKCRpZHMsICRkZWwpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGlkKSB7CiAgICAgICAgICAgICAgICAgICAgeWllbGQgJGRlbCA9PiBbJGlkXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSktPnJld2luZCgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN0YXRpYyAkdW5saW5rID0gdHJ1ZTsKCiAgICAgICAgICAgIGlmICgkdW5saW5rKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICR1bmxpbmsgPSBmYWxzZSAhPT0gJHRoaXMtPnJlZGlzLT51bmxpbmsoJGlkcyk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChcVGhyb3dhYmxlKSB7CiAgICAgICAgICAgICAgICAgICAgJHVubGluayA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoISR1bmxpbmspIHsKICAgICAgICAgICAgICAgICR0aGlzLT5yZWRpcy0+ZGVsKCRpZHMpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZG9TYXZlKGFycmF5ICR2YWx1ZXMsIGludCAkbGlmZXRpbWUpOiBhcnJheXxib29sCiAgICB7CiAgICAgICAgaWYgKCEkdmFsdWVzID0gJHRoaXMtPm1hcnNoYWxsZXItPm1hcnNoYWxsKCR2YWx1ZXMsICRmYWlsZWQpKSB7CiAgICAgICAgICAgIHJldHVybiAkZmFpbGVkOwogICAgICAgIH0KCiAgICAgICAgJHJlc3VsdHMgPSAkdGhpcy0+cGlwZWxpbmUoZnVuY3Rpb24gKCkgdXNlICgkdmFsdWVzLCAkbGlmZXRpbWUpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHZhbHVlcyBhcyAkaWQgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICAgICBpZiAoMCA+PSAkbGlmZXRpbWUpIHsKICAgICAgICAgICAgICAgICAgICB5aWVsZCAnc2V0JyA9PiBbJGlkLCAkdmFsdWVdOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB5aWVsZCAnc2V0RXgnID0+IFskaWQsICRsaWZldGltZSwgJHZhbHVlXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBmb3JlYWNoICgkcmVzdWx0cyBhcyAkaWQgPT4gJHJlc3VsdCkgewogICAgICAgICAgICBpZiAodHJ1ZSAhPT0gJHJlc3VsdCAmJiAoISRyZXN1bHQgaW5zdGFuY2VvZiBTdGF0dXMgfHwgU3RhdHVzOjpnZXQoJ09LJykgIT09ICRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAkZmFpbGVkW10gPSAkaWQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkZmFpbGVkOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gcGlwZWxpbmUoXENsb3N1cmUgJGdlbmVyYXRvciwgP29iamVjdCAkcmVkaXMgPSBudWxsKTogXEdlbmVyYXRvcgogICAgewogICAgICAgICRpZHMgPSBbXTsKICAgICAgICAkcmVkaXMgPz89ICR0aGlzLT5yZWRpczsKCiAgICAgICAgaWYgKCRyZWRpcyBpbnN0YW5jZW9mIFxSZWRpc0NsdXN0ZXIgfHwgKCRyZWRpcyBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlICYmICgkcmVkaXMtPmdldENvbm5lY3Rpb24oKSBpbnN0YW5jZW9mIFJlZGlzQ2x1c3RlciB8fCAkcmVkaXMtPmdldENvbm5lY3Rpb24oKSBpbnN0YW5jZW9mIFByZWRpczJSZWRpc0NsdXN0ZXIpKSkgewogICAgICAgICAgICAvLyBwaHByZWRpcyAmIHByZWRpcyBkb24ndCBzdXBwb3J0IHBpcGVsaW5pbmcgd2l0aCBSZWRpc0NsdXN0ZXIKICAgICAgICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9waHByZWRpcy9waHByZWRpcy9ibG9iL2RldmVsb3AvY2x1c3Rlci5tYXJrZG93biNwaXBlbGluaW5nCiAgICAgICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbnJrL3ByZWRpcy9pc3N1ZXMvMjY3I2lzc3VlY29tbWVudC0xMjM3ODE0MjMKICAgICAgICAgICAgJHJlc3VsdHMgPSBbXTsKICAgICAgICAgICAgZm9yZWFjaCAoJGdlbmVyYXRvcigpIGFzICRjb21tYW5kID0+ICRhcmdzKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0c1tdID0gJHJlZGlzLT57JGNvbW1hbmR9KC4uLiRhcmdzKTsKICAgICAgICAgICAgICAgICRpZHNbXSA9ICdldmFsJyA9PT0gJGNvbW1hbmQgPyAoJHJlZGlzIGluc3RhbmNlb2YgXFByZWRpc1xDbGllbnRJbnRlcmZhY2UgPyAkYXJnc1syXSA6ICRhcmdzWzFdWzBdKSA6ICRhcmdzWzBdOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlaWYgKCRyZWRpcyBpbnN0YW5jZW9mIFxQcmVkaXNcQ2xpZW50SW50ZXJmYWNlKSB7CiAgICAgICAgICAgICRyZXN1bHRzID0gJHJlZGlzLT5waXBlbGluZShzdGF0aWMgZnVuY3Rpb24gKCRyZWRpcykgdXNlICgkZ2VuZXJhdG9yLCAmJGlkcykgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGdlbmVyYXRvcigpIGFzICRjb21tYW5kID0+ICRhcmdzKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlZGlzLT57JGNvbW1hbmR9KC4uLiRhcmdzKTsKICAgICAgICAgICAgICAgICAgICAkaWRzW10gPSAnZXZhbCcgPT09ICRjb21tYW5kID8gJGFyZ3NbMl0gOiAkYXJnc1swXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlaWYgKCRyZWRpcyBpbnN0YW5jZW9mIFxSZWRpc0FycmF5KSB7CiAgICAgICAgICAgICRjb25uZWN0aW9ucyA9ICRyZXN1bHRzID0gJGlkcyA9IFtdOwogICAgICAgICAgICBmb3JlYWNoICgkZ2VuZXJhdG9yKCkgYXMgJGNvbW1hbmQgPT4gJGFyZ3MpIHsKICAgICAgICAgICAgICAgICRpZCA9ICdldmFsJyA9PT0gJGNvbW1hbmQgPyAkYXJnc1sxXVswXSA6ICRhcmdzWzBdOwogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkY29ubmVjdGlvbnNbJGggPSAkcmVkaXMtPl90YXJnZXQoJGlkKV0pKSB7CiAgICAgICAgICAgICAgICAgICAgJGNvbm5lY3Rpb25zWyRoXSA9IFskcmVkaXMtPl9pbnN0YW5jZSgkaCksIC0xXTsKICAgICAgICAgICAgICAgICAgICAkY29ubmVjdGlvbnNbJGhdWzBdLT5tdWx0aShcUmVkaXM6OlBJUEVMSU5FKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRjb25uZWN0aW9uc1skaF1bMF0tPnskY29tbWFuZH0oLi4uJGFyZ3MpOwogICAgICAgICAgICAgICAgJHJlc3VsdHNbXSA9IFskaCwgKyskY29ubmVjdGlvbnNbJGhdWzFdXTsKICAgICAgICAgICAgICAgICRpZHNbXSA9ICRpZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3JlYWNoICgkY29ubmVjdGlvbnMgYXMgJGggPT4gJGMpIHsKICAgICAgICAgICAgICAgICRjb25uZWN0aW9uc1skaF0gPSAkY1swXS0+ZXhlYygpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcmVhY2ggKCRyZXN1bHRzIGFzICRrID0+IFskaCwgJGNdKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0c1ska10gPSAkY29ubmVjdGlvbnNbJGhdWyRjXTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRyZWRpcy0+bXVsdGkoJHJlZGlzIGluc3RhbmNlb2YgUmVsYXkgPyBSZWxheTo6UElQRUxJTkUgOiBcUmVkaXM6OlBJUEVMSU5FKTsKICAgICAgICAgICAgZm9yZWFjaCAoJGdlbmVyYXRvcigpIGFzICRjb21tYW5kID0+ICRhcmdzKSB7CiAgICAgICAgICAgICAgICAkcmVkaXMtPnskY29tbWFuZH0oLi4uJGFyZ3MpOwogICAgICAgICAgICAgICAgJGlkc1tdID0gJ2V2YWwnID09PSAkY29tbWFuZCA/ICRhcmdzWzFdWzBdIDogJGFyZ3NbMF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJlc3VsdHMgPSAkcmVkaXMtPmV4ZWMoKTsKICAgICAgICB9CgogICAgICAgIGlmICghJHJlZGlzIGluc3RhbmNlb2YgXFByZWRpc1xDbGllbnRJbnRlcmZhY2UgJiYgJ2V2YWwnID09PSAkY29tbWFuZCAmJiAkcmVkaXMtPmdldExhc3RFcnJvcigpKSB7CiAgICAgICAgICAgICRlID0gJHJlZGlzIGluc3RhbmNlb2YgUmVsYXkgPyBuZXcgXFJlbGF5XEV4Y2VwdGlvbigkcmVkaXMtPmdldExhc3RFcnJvcigpKSA6IG5ldyBcUmVkaXNFeGNlcHRpb24oJHJlZGlzLT5nZXRMYXN0RXJyb3IoKSk7CiAgICAgICAgICAgICRyZXN1bHRzID0gYXJyYXlfbWFwKGZuICgkdikgPT4gZmFsc2UgPT09ICR2ID8gJGUgOiAkdiwgKGFycmF5KSAkcmVzdWx0cyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoXGlzX2Jvb2woJHJlc3VsdHMpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGsgPT4gJGlkKSB7CiAgICAgICAgICAgIHlpZWxkICRpZCA9PiAkcmVzdWx0c1ska107CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0SG9zdHMoKTogYXJyYXkKICAgIHsKICAgICAgICAkaG9zdHMgPSBbJHRoaXMtPnJlZGlzXTsKICAgICAgICBpZiAoJHRoaXMtPnJlZGlzIGluc3RhbmNlb2YgXFByZWRpc1xDbGllbnRJbnRlcmZhY2UpIHsKICAgICAgICAgICAgJGNvbm5lY3Rpb24gPSAkdGhpcy0+cmVkaXMtPmdldENvbm5lY3Rpb24oKTsKICAgICAgICAgICAgaWYgKCgkY29ubmVjdGlvbiBpbnN0YW5jZW9mIENsdXN0ZXJJbnRlcmZhY2UgfHwgJGNvbm5lY3Rpb24gaW5zdGFuY2VvZiBQcmVkaXMyQ2x1c3RlckludGVyZmFjZSkgJiYgJGNvbm5lY3Rpb24gaW5zdGFuY2VvZiBcVHJhdmVyc2FibGUpIHsKICAgICAgICAgICAgICAgICRob3N0cyA9IFtdOwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGNvbm5lY3Rpb24gYXMgJGMpIHsKICAgICAgICAgICAgICAgICAgICAkaG9zdHNbXSA9IG5ldyBcUHJlZGlzXENsaWVudCgkYyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2VpZiAoJHRoaXMtPnJlZGlzIGluc3RhbmNlb2YgXFJlZGlzQXJyYXkpIHsKICAgICAgICAgICAgJGhvc3RzID0gW107CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5yZWRpcy0+X2hvc3RzKCkgYXMgJGhvc3QpIHsKICAgICAgICAgICAgICAgICRob3N0c1tdID0gJHRoaXMtPnJlZGlzLT5faW5zdGFuY2UoJGhvc3QpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlaWYgKCR0aGlzLT5yZWRpcyBpbnN0YW5jZW9mIFxSZWRpc0NsdXN0ZXIpIHsKICAgICAgICAgICAgJGhvc3RzID0gW107CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5yZWRpcy0+X21hc3RlcnMoKSBhcyAkaG9zdCkgewogICAgICAgICAgICAgICAgJGhvc3RzW10gPSBuZXcgUmVkaXNDbHVzdGVyTm9kZVByb3h5KCRob3N0LCAkdGhpcy0+cmVkaXMpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGhvc3RzOwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";