1778692651
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A9d8bb9d42955149bb34834f0db393387-74dc9b57cc3bfc70b4f7dd15b32071cb
s:159336:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE4OiJZYW1sRmlsZUxvYWRlci5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjQ1OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXIiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiTG9hZGVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NjA6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjE1OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTo0OntzOjc4OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OlNFUlZJQ0VfS0VZV09SRFMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjk6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzg6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6U0VSVklDRV9LRVlXT1JEUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJTRVJWSUNFX0tFWVdPUkRTIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjY3MjoiWydhbGlhcycgPT4gJ2FsaWFzJywgJ3BhcmVudCcgPT4gJ3BhcmVudCcsICdjbGFzcycgPT4gJ2NsYXNzJywgJ3NoYXJlZCcgPT4gJ3NoYXJlZCcsICdzeW50aGV0aWMnID0+ICdzeW50aGV0aWMnLCAnbGF6eScgPT4gJ2xhenknLCAncHVibGljJyA9PiAncHVibGljJywgJ2Fic3RyYWN0JyA9PiAnYWJzdHJhY3QnLCAnZGVwcmVjYXRlZCcgPT4gJ2RlcHJlY2F0ZWQnLCAnZmFjdG9yeScgPT4gJ2ZhY3RvcnknLCAnZmlsZScgPT4gJ2ZpbGUnLCAnYXJndW1lbnRzJyA9PiAnYXJndW1lbnRzJywgJ3Byb3BlcnRpZXMnID0+ICdwcm9wZXJ0aWVzJywgJ2NvbmZpZ3VyYXRvcicgPT4gJ2NvbmZpZ3VyYXRvcicsICdjYWxscycgPT4gJ2NhbGxzJywgJ3RhZ3MnID0+ICd0YWdzJywgJ2RlY29yYXRlcycgPT4gJ2RlY29yYXRlcycsICdkZWNvcmF0aW9uX2lubmVyX25hbWUnID0+ICdkZWNvcmF0aW9uX2lubmVyX25hbWUnLCAnZGVjb3JhdGlvbl9wcmlvcml0eScgPT4gJ2RlY29yYXRpb25fcHJpb3JpdHknLCAnZGVjb3JhdGlvbl9vbl9pbnZhbGlkJyA9PiAnZGVjb3JhdGlvbl9vbl9pbnZhbGlkJywgJ2F1dG93aXJlJyA9PiAnYXV0b3dpcmUnLCAnYXV0b2NvbmZpZ3VyZScgPT4gJ2F1dG9jb25maWd1cmUnLCAnYmluZCcgPT4gJ2JpbmQnLCAnY29uc3RydWN0b3InID0+ICdjb25zdHJ1Y3RvciddIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjA6e319czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAYXR0cmlidXRlcyI7YTowOnt9fXM6ODA6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6UFJPVE9UWVBFX0tFWVdPUkRTIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo5OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjgwOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OlBST1RPVFlQRV9LRVlXT1JEUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJQUk9UT1RZUEVfS0VZV09SRFMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDg0OiJbJ3Jlc291cmNlJyA9PiAncmVzb3VyY2UnLCAnbmFtZXNwYWNlJyA9PiAnbmFtZXNwYWNlJywgJ2V4Y2x1ZGUnID0+ICdleGNsdWRlJywgJ3BhcmVudCcgPT4gJ3BhcmVudCcsICdzaGFyZWQnID0+ICdzaGFyZWQnLCAnbGF6eScgPT4gJ2xhenknLCAncHVibGljJyA9PiAncHVibGljJywgJ2Fic3RyYWN0JyA9PiAnYWJzdHJhY3QnLCAnZGVwcmVjYXRlZCcgPT4gJ2RlcHJlY2F0ZWQnLCAnZmFjdG9yeScgPT4gJ2ZhY3RvcnknLCAnYXJndW1lbnRzJyA9PiAnYXJndW1lbnRzJywgJ3Byb3BlcnRpZXMnID0+ICdwcm9wZXJ0aWVzJywgJ2NvbmZpZ3VyYXRvcicgPT4gJ2NvbmZpZ3VyYXRvcicsICdjYWxscycgPT4gJ2NhbGxzJywgJ3RhZ3MnID0+ICd0YWdzJywgJ2F1dG93aXJlJyA9PiAnYXV0b3dpcmUnLCAnYXV0b2NvbmZpZ3VyZScgPT4gJ2F1dG9jb25maWd1cmUnLCAnYmluZCcgPT4gJ2JpbmQnLCAnY29uc3RydWN0b3InID0+ICdjb25zdHJ1Y3RvciddIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjA6e319czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAYXR0cmlidXRlcyI7YTowOnt9fXM6ODE6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6SU5TVEFOQ0VPRl9LRVlXT1JEUyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6OTp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODE6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6SU5TVEFOQ0VPRl9LRVlXT1JEUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJJTlNUQU5DRU9GX0tFWVdPUkRTIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjI0MDoiWydzaGFyZWQnID0+ICdzaGFyZWQnLCAnbGF6eScgPT4gJ2xhenknLCAncHVibGljJyA9PiAncHVibGljJywgJ3Byb3BlcnRpZXMnID0+ICdwcm9wZXJ0aWVzJywgJ2NvbmZpZ3VyYXRvcicgPT4gJ2NvbmZpZ3VyYXRvcicsICdjYWxscycgPT4gJ2NhbGxzJywgJ3RhZ3MnID0+ICd0YWdzJywgJ2F1dG93aXJlJyA9PiAnYXV0b3dpcmUnLCAnYmluZCcgPT4gJ2JpbmQnLCAnY29uc3RydWN0b3InID0+ICdjb25zdHJ1Y3RvciddIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjA6e319czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAYXR0cmlidXRlcyI7YTowOnt9fXM6Nzk6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6REVGQVVMVFNfS0VZV09SRFMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjk6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3OToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpERUZBVUxUU19LRVlXT1JEUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJERUZBVUxUU19LRVlXT1JEUyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czoxMjA6IlsncHVibGljJyA9PiAncHVibGljJywgJ3RhZ3MnID0+ICd0YWdzJywgJ2F1dG93aXJlJyA9PiAnYXV0b3dpcmUnLCAnYXV0b2NvbmZpZ3VyZScgPT4gJ2F1dG9jb25maWd1cmUnLCAnYmluZCcgPT4gJ2JpbmQnXSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZpbmFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6NDp7czo3MzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjokeWFtbFBhcnNlciI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTQ6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTEzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzM6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6JHlhbWxQYXJzZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoieWFtbFBhcnNlciI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMwOiJcU3ltZm9ueVxDb21wb25lbnRcWWFtbFxQYXJzZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJQYXJzZXIiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319czo4NToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjokYW5vbnltb3VzU2VydmljZXNDb3VudCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTQ6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODU6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6JGFub255bW91c1NlcnZpY2VzQ291bnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMjoiYW5vbnltb3VzU2VydmljZXNDb3VudCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGhvb2tzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXJ0dWFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjg2OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OiRhbm9ueW1vdXNTZXJ2aWNlc1N1ZmZpeCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTQ6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODY6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6JGFub255bW91c1NlcnZpY2VzU3VmZml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjM6ImFub255bW91c1NlcnZpY2VzU3VmZml4Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAaG9va3MiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpcnR1YWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAYXR0cmlidXRlcyI7YTowOnt9fXM6MTEyOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OiRhdXRvUmVnaXN0ZXJBbGlhc2VzRm9yU2luZ2x5SW1wbGVtZW50ZWRJbnRlcmZhY2VzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxNDp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjExMjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjokYXV0b1JlZ2lzdGVyQWxpYXNlc0ZvclNpbmdseUltcGxlbWVudGVkSW50ZXJmYWNlcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ5OiJhdXRvUmVnaXN0ZXJBbGlhc2VzRm9yU2luZ2x5SW1wbGVtZW50ZWRJbnRlcmZhY2VzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NToiZmFsc2UiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MDp7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAaG9va3MiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpcnR1YWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToxNTp7czo2ODoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpsb2FkKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoicmVzb3VyY2UiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoidHlwZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDQ6Int7IFBIUERPQzM3YTYyNTljYzBjMWRhZTI5OWE3ODY2NDg5ZGZmMGJkIH19IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjE6e3M6NDQ6Int7IFBIUERPQzM3YTYyNTljYzBjMWRhZTI5OWE3ODY2NDg5ZGZmMGJkIH19IjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbF8iOjA6e319fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NDExNzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NTA1Nzt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2ODoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpsb2FkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJsb2FkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NzU6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6bG9hZENvbnRlbnQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImNvbnRlbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoicGF0aCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTUzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjUwNjQ7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTgyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjYxMzY7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3NToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpsb2FkQ29udGVudCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6ImxvYWRDb250ZW50Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjcyOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OnN1cHBvcnRzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoicmVzb3VyY2UiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoidHlwZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDQ6Int7IFBIUERPQzM3YTYyNTljYzBjMWRhZTI5OWE3ODY2NDg5ZGZmMGJkIH19IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjE6e3M6NDQ6Int7IFBIUERPQzM3YTYyNTljYzBjMWRhZTI5OWE3ODY2NDg5ZGZmMGJkIH19IjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbF8iOjA6e319fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NjE0Mzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NjQ5ODt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzI6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6c3VwcG9ydHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InN1cHBvcnRzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NzY6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6cGFyc2VJbXBvcnRzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJjb250ZW50IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo2NTA1O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo3NDM3O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzY6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6cGFyc2VJbXBvcnRzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoicGFyc2VJbXBvcnRzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjgwOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OnBhcnNlRGVmaW5pdGlvbnMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImNvbnRlbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMzoidHJhY2tCaW5kaW5ncyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDQ6Int7IFBIUERPQ2IzMjZiNTA2MmIyZjBlNjkwNDY4MTA3MTc1MzRjYjA5IH19IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjE6e3M6NDQ6Int7IFBIUERPQ2IzMjZiNTA2MmIyZjBlNjkwNDY4MTA3MTc1MzRjYjA5IH19IjtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcVHJ1ZV8iOjA6e319fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NzQ0NDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6OTI4Nzt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjgwOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OnBhcnNlRGVmaW5pdGlvbnMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJwYXJzZURlZmluaXRpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjc3OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OnBhcnNlRGVmYXVsdHMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImNvbnRlbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MTtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjYxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjkzNTA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjEyMDQwO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzc6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6cGFyc2VEZWZhdWx0cygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6InBhcnNlRGVmYXVsdHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzM6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czo0NDoiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjIxOntzOjU6IkFsaWFzIjtzOjQzOiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFsaWFzIjtzOjE2OiJBYnN0cmFjdEFyZ3VtZW50IjtzOjYzOiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XEFic3RyYWN0QXJndW1lbnQiO3M6MTM6IkJvdW5kQXJndW1lbnQiO3M6NjA6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcQm91bmRBcmd1bWVudCI7czoxNjoiSXRlcmF0b3JBcmd1bWVudCI7czo2MzoiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxBcmd1bWVudFxJdGVyYXRvckFyZ3VtZW50IjtzOjIyOiJTZXJ2aWNlQ2xvc3VyZUFyZ3VtZW50IjtzOjY5OiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XFNlcnZpY2VDbG9zdXJlQXJndW1lbnQiO3M6MjI6IlNlcnZpY2VMb2NhdG9yQXJndW1lbnQiO3M6Njk6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcU2VydmljZUxvY2F0b3JBcmd1bWVudCI7czoyMjoiVGFnZ2VkSXRlcmF0b3JBcmd1bWVudCI7czo2OToiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxBcmd1bWVudFxUYWdnZWRJdGVyYXRvckFyZ3VtZW50IjtzOjE1OiJDaGlsZERlZmluaXRpb24iO3M6NTM6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQ2hpbGREZWZpbml0aW9uIjtzOjE2OiJDb250YWluZXJCdWlsZGVyIjtzOjU0OiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXENvbnRhaW5lckJ1aWxkZXIiO3M6MTg6IkNvbnRhaW5lckludGVyZmFjZSI7czo1NjoiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxDb250YWluZXJJbnRlcmZhY2UiO3M6MTA6IkRlZmluaXRpb24iO3M6NDg6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRGVmaW5pdGlvbiI7czoyNDoiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjtzOjcyOiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6MTQ6IkxvZ2ljRXhjZXB0aW9uIjtzOjYyOiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxMb2dpY0V4Y2VwdGlvbiI7czoxNjoiUnVudGltZUV4Y2VwdGlvbiI7czo2NDoiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxFeGNlcHRpb25cUnVudGltZUV4Y2VwdGlvbiI7czoxODoiRXh0ZW5zaW9uSW50ZXJmYWNlIjtzOjY2OiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4dGVuc2lvblxFeHRlbnNpb25JbnRlcmZhY2UiO3M6OToiUmVmZXJlbmNlIjtzOjQ3OiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXFJlZmVyZW5jZSI7czoxMDoiRXhwcmVzc2lvbiI7czo0NzoiU3ltZm9ueVxDb21wb25lbnRcRXhwcmVzc2lvbkxhbmd1YWdlXEV4cHJlc3Npb24iO3M6MTQ6IlBhcnNlRXhjZXB0aW9uIjtzOjQ3OiJTeW1mb255XENvbXBvbmVudFxZYW1sXEV4Y2VwdGlvblxQYXJzZUV4Y2VwdGlvbiI7czoxMDoiWWFtbFBhcnNlciI7czoyOToiU3ltZm9ueVxDb21wb25lbnRcWWFtbFxQYXJzZXIiO3M6MTE6IlRhZ2dlZFZhbHVlIjtzOjM4OiJTeW1mb255XENvbXBvbmVudFxZYW1sXFRhZ1xUYWdnZWRWYWx1ZSI7czo0OiJZYW1sIjtzOjI3OiJTeW1mb255XENvbXBvbmVudFxZYW1sXFlhbWwiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6ODI6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6aXNVc2luZ1Nob3J0U3ludGF4KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJzZXJ2aWNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTIwNDc7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzMwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjEyMzQxO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjppc1VzaW5nU2hvcnRTeW50YXgoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJpc1VzaW5nU2hvcnRTeW50YXgiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6Nzk6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6cGFyc2VEZWZpbml0aW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTo2OntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjI6ImlkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoic2VydmljZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJmaWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjM7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJkZWZhdWx0cyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aTo0O086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJyZXR1cm4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0M2ODkzNGEzZTk0NTVmYTcyNDIwMjM3ZWIwNTkwMjMyNyB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0M2ODkzNGEzZTk0NTVmYTcyNDIwMjM3ZWIwNTkwMjMyNyB9fSI7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEZhbHNlXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6NTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTM6InRyYWNrQmluZGluZ3MiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0NiMzI2YjUwNjJiMmYwZTY5MDQ2ODEwNzE3NTM0Y2IwOSB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0NiMzI2YjUwNjJiMmYwZTY5MDQ2ODEwNzE3NTM0Y2IwOSB9fSI7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFRydWVfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzM1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjEyNDI2O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcxMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMDMzNjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YTozOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxEZWZpbml0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkRlZmluaXRpb24iO319aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQWxpYXMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJBbGlhcyI7fX1pOjI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OnBhcnNlRGVmaW5pdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InBhcnNlRGVmaW5pdGlvbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjE6IldoZW4gdGFncyBhcmUgaW52YWxpZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzM6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjQ0MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpwYXJzZUNhbGxhYmxlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTo0OntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoiY2FsbGFibGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToicGFyYW1ldGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjI6ImlkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjM7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcxNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMDQxNzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzI0Mjc7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mzp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fWk6MjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXFJlZmVyZW5jZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IlJlZmVyZW5jZSI7fX19czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzc6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6cGFyc2VDYWxsYWJsZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6InBhcnNlQ2FsbGFibGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE3OiJXaGVuIGVycm9ycyBvY2N1ciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzM6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjQ0MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3MjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpsb2FkRmlsZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJmaWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzI1ODk7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Nzg1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjMzNTgzO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzI6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6bG9hZEZpbGUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6ImxvYWRGaWxlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6IkxvYWRzIGEgWUFNTCBmaWxlLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToid2hlbiB0aGUgZ2l2ZW4gZmlsZSBpcyBub3QgYSBsb2NhbCBmaWxlIG9yIHdoZW4gaXQgZG9lcyBub3QgZXhpc3QiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjczOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxFeGNlcHRpb25cSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6IkludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo0NDM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NzI6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6dmFsaWRhdGUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJjb250ZW50IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc5MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMzcxNDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzQ4MzY7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjp2YWxpZGF0ZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoidmFsaWRhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjI6IlZhbGlkYXRlcyBhIFlBTUwgZmlsZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzA6IldoZW4gc2VydmljZSBmaWxlIGlzIG5vdCB2YWxpZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzM6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjQ0MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3OToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpyZXNvbHZlU2VydmljZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJ2YWx1ZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJmaWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJpc1BhcmFtZXRlciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDQ6Int7IFBIUERPQzY4OTM0YTNlOTQ1NWZhNzI0MjAyMzdlYjA1OTAyMzI3IH19IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjE6e3M6NDQ6Int7IFBIUERPQzY4OTM0YTNlOTQ1NWZhNzI0MjAyMzdlYjA1OTAyMzI3IH19IjtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcRmFsc2VfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM0ODQzO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0MTE4MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3OToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjpyZXNvbHZlU2VydmljZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJyZXNvbHZlU2VydmljZXMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6ODI6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6bG9hZEZyb21FeHRlbnNpb25zKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJjb250ZW50IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NDExODc7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTU2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjQxNjU0O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODI6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxZYW1sRmlsZUxvYWRlcjo6bG9hZEZyb21FeHRlbnNpb25zKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoibG9hZEZyb21FeHRlbnNpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjc5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OmNoZWNrRGVmaW5pdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mzp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoyOiJpZCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTA6ImRlZmluaXRpb24iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjQxNjYxO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk3MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0MjM5Nzt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWWFtbEZpbGVMb2FkZXI6OmNoZWNrRGVmaW5pdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6ImNoZWNrRGVmaW5pdGlvbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo4MjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjp2YWxpZGF0ZUF0dHJpYnV0ZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoibWVzc2FnZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTA6ImF0dHJpYnV0ZXMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InBhdGgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjI6IltdIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjA6e319czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk3NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0MjQwNDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5ODU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NDI4ODk7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyOjp2YWxpZGF0ZUF0dHJpYnV0ZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJ2YWxpZGF0ZUF0dHJpYnV0ZXMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MDoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFlhbWxGaWxlTG9hZGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6IllhbWxGaWxlTG9hZGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MjoiWWFtbEZpbGVMb2FkZXIgbG9hZHMgWUFNTCBmaWxlcyBzZXJ2aWNlIGRlZmluaXRpb25zLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTY6IkZhYmllbiBQb3RlbmNpZXIiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MTg6ImZhYmllbkBzeW1mb255LmNvbSI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NDQzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU2OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcRmlsZUxvYWRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJGaWxlTG9hZGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6Ijc0ZGM5YjU3Y2MzYmZjNzBiNGY3ZGQxNWIzMjA3MWNiIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NjE6InZlbmRvci9zeW1mb255L2RlcGVuZGVuY3ktaW5qZWN0aW9uL0xvYWRlci9ZYW1sRmlsZUxvYWRlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjQyODkzOiI8P3BocAoKLyoKICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFN5bWZvbnkgcGFja2FnZS4KICoKICogKGMpIEZhYmllbiBQb3RlbmNpZXIgPGZhYmllbkBzeW1mb255LmNvbT4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwoKbmFtZXNwYWNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyOwoKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQWxpYXM7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XEFic3RyYWN0QXJndW1lbnQ7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XEJvdW5kQXJndW1lbnQ7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XEl0ZXJhdG9yQXJndW1lbnQ7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XFNlcnZpY2VDbG9zdXJlQXJndW1lbnQ7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XFNlcnZpY2VMb2NhdG9yQXJndW1lbnQ7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XFRhZ2dlZEl0ZXJhdG9yQXJndW1lbnQ7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXENoaWxkRGVmaW5pdGlvbjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQ29udGFpbmVyQnVpbGRlcjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQ29udGFpbmVySW50ZXJmYWNlOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxEZWZpbml0aW9uOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxFeGNlcHRpb25cSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxFeGNlcHRpb25cTG9naWNFeGNlcHRpb247CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxSdW50aW1lRXhjZXB0aW9uOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxFeHRlbnNpb25cRXh0ZW5zaW9uSW50ZXJmYWNlOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxSZWZlcmVuY2U7CnVzZSBTeW1mb255XENvbXBvbmVudFxFeHByZXNzaW9uTGFuZ3VhZ2VcRXhwcmVzc2lvbjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFlhbWxcRXhjZXB0aW9uXFBhcnNlRXhjZXB0aW9uOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcWWFtbFxQYXJzZXIgYXMgWWFtbFBhcnNlcjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFlhbWxcVGFnXFRhZ2dlZFZhbHVlOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcWWFtbFxZYW1sOwoKLyoqCiAqIFlhbWxGaWxlTG9hZGVyIGxvYWRzIFlBTUwgZmlsZXMgc2VydmljZSBkZWZpbml0aW9ucy4KICoKICogQGF1dGhvciBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+CiAqLwpjbGFzcyBZYW1sRmlsZUxvYWRlciBleHRlbmRzIEZpbGVMb2FkZXIKewogICAgcHJpdmF0ZSBjb25zdCBTRVJWSUNFX0tFWVdPUkRTID0gWwogICAgICAgICdhbGlhcycgPT4gJ2FsaWFzJywKICAgICAgICAncGFyZW50JyA9PiAncGFyZW50JywKICAgICAgICAnY2xhc3MnID0+ICdjbGFzcycsCiAgICAgICAgJ3NoYXJlZCcgPT4gJ3NoYXJlZCcsCiAgICAgICAgJ3N5bnRoZXRpYycgPT4gJ3N5bnRoZXRpYycsCiAgICAgICAgJ2xhenknID0+ICdsYXp5JywKICAgICAgICAncHVibGljJyA9PiAncHVibGljJywKICAgICAgICAnYWJzdHJhY3QnID0+ICdhYnN0cmFjdCcsCiAgICAgICAgJ2RlcHJlY2F0ZWQnID0+ICdkZXByZWNhdGVkJywKICAgICAgICAnZmFjdG9yeScgPT4gJ2ZhY3RvcnknLAogICAgICAgICdmaWxlJyA9PiAnZmlsZScsCiAgICAgICAgJ2FyZ3VtZW50cycgPT4gJ2FyZ3VtZW50cycsCiAgICAgICAgJ3Byb3BlcnRpZXMnID0+ICdwcm9wZXJ0aWVzJywKICAgICAgICAnY29uZmlndXJhdG9yJyA9PiAnY29uZmlndXJhdG9yJywKICAgICAgICAnY2FsbHMnID0+ICdjYWxscycsCiAgICAgICAgJ3RhZ3MnID0+ICd0YWdzJywKICAgICAgICAnZGVjb3JhdGVzJyA9PiAnZGVjb3JhdGVzJywKICAgICAgICAnZGVjb3JhdGlvbl9pbm5lcl9uYW1lJyA9PiAnZGVjb3JhdGlvbl9pbm5lcl9uYW1lJywKICAgICAgICAnZGVjb3JhdGlvbl9wcmlvcml0eScgPT4gJ2RlY29yYXRpb25fcHJpb3JpdHknLAogICAgICAgICdkZWNvcmF0aW9uX29uX2ludmFsaWQnID0+ICdkZWNvcmF0aW9uX29uX2ludmFsaWQnLAogICAgICAgICdhdXRvd2lyZScgPT4gJ2F1dG93aXJlJywKICAgICAgICAnYXV0b2NvbmZpZ3VyZScgPT4gJ2F1dG9jb25maWd1cmUnLAogICAgICAgICdiaW5kJyA9PiAnYmluZCcsCiAgICAgICAgJ2NvbnN0cnVjdG9yJyA9PiAnY29uc3RydWN0b3InLAogICAgXTsKCiAgICBwcml2YXRlIGNvbnN0IFBST1RPVFlQRV9LRVlXT1JEUyA9IFsKICAgICAgICAncmVzb3VyY2UnID0+ICdyZXNvdXJjZScsCiAgICAgICAgJ25hbWVzcGFjZScgPT4gJ25hbWVzcGFjZScsCiAgICAgICAgJ2V4Y2x1ZGUnID0+ICdleGNsdWRlJywKICAgICAgICAncGFyZW50JyA9PiAncGFyZW50JywKICAgICAgICAnc2hhcmVkJyA9PiAnc2hhcmVkJywKICAgICAgICAnbGF6eScgPT4gJ2xhenknLAogICAgICAgICdwdWJsaWMnID0+ICdwdWJsaWMnLAogICAgICAgICdhYnN0cmFjdCcgPT4gJ2Fic3RyYWN0JywKICAgICAgICAnZGVwcmVjYXRlZCcgPT4gJ2RlcHJlY2F0ZWQnLAogICAgICAgICdmYWN0b3J5JyA9PiAnZmFjdG9yeScsCiAgICAgICAgJ2FyZ3VtZW50cycgPT4gJ2FyZ3VtZW50cycsCiAgICAgICAgJ3Byb3BlcnRpZXMnID0+ICdwcm9wZXJ0aWVzJywKICAgICAgICAnY29uZmlndXJhdG9yJyA9PiAnY29uZmlndXJhdG9yJywKICAgICAgICAnY2FsbHMnID0+ICdjYWxscycsCiAgICAgICAgJ3RhZ3MnID0+ICd0YWdzJywKICAgICAgICAnYXV0b3dpcmUnID0+ICdhdXRvd2lyZScsCiAgICAgICAgJ2F1dG9jb25maWd1cmUnID0+ICdhdXRvY29uZmlndXJlJywKICAgICAgICAnYmluZCcgPT4gJ2JpbmQnLAogICAgICAgICdjb25zdHJ1Y3RvcicgPT4gJ2NvbnN0cnVjdG9yJywKICAgIF07CgogICAgcHJpdmF0ZSBjb25zdCBJTlNUQU5DRU9GX0tFWVdPUkRTID0gWwogICAgICAgICdzaGFyZWQnID0+ICdzaGFyZWQnLAogICAgICAgICdsYXp5JyA9PiAnbGF6eScsCiAgICAgICAgJ3B1YmxpYycgPT4gJ3B1YmxpYycsCiAgICAgICAgJ3Byb3BlcnRpZXMnID0+ICdwcm9wZXJ0aWVzJywKICAgICAgICAnY29uZmlndXJhdG9yJyA9PiAnY29uZmlndXJhdG9yJywKICAgICAgICAnY2FsbHMnID0+ICdjYWxscycsCiAgICAgICAgJ3RhZ3MnID0+ICd0YWdzJywKICAgICAgICAnYXV0b3dpcmUnID0+ICdhdXRvd2lyZScsCiAgICAgICAgJ2JpbmQnID0+ICdiaW5kJywKICAgICAgICAnY29uc3RydWN0b3InID0+ICdjb25zdHJ1Y3RvcicsCiAgICBdOwoKICAgIHByaXZhdGUgY29uc3QgREVGQVVMVFNfS0VZV09SRFMgPSBbCiAgICAgICAgJ3B1YmxpYycgPT4gJ3B1YmxpYycsCiAgICAgICAgJ3RhZ3MnID0+ICd0YWdzJywKICAgICAgICAnYXV0b3dpcmUnID0+ICdhdXRvd2lyZScsCiAgICAgICAgJ2F1dG9jb25maWd1cmUnID0+ICdhdXRvY29uZmlndXJlJywKICAgICAgICAnYmluZCcgPT4gJ2JpbmQnLAogICAgXTsKCiAgICBwcml2YXRlIFlhbWxQYXJzZXIgJHlhbWxQYXJzZXI7CgogICAgcHJpdmF0ZSBpbnQgJGFub255bW91c1NlcnZpY2VzQ291bnQ7CiAgICBwcml2YXRlIHN0cmluZyAkYW5vbnltb3VzU2VydmljZXNTdWZmaXg7CgogICAgcHJvdGVjdGVkICRhdXRvUmVnaXN0ZXJBbGlhc2VzRm9yU2luZ2x5SW1wbGVtZW50ZWRJbnRlcmZhY2VzID0gZmFsc2U7CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWQobWl4ZWQgJHJlc291cmNlLCA/c3RyaW5nICR0eXBlID0gbnVsbCk6IG1peGVkCiAgICB7CiAgICAgICAgJHBhdGggPSAkdGhpcy0+bG9jYXRvci0+bG9jYXRlKCRyZXNvdXJjZSk7CgogICAgICAgICRjb250ZW50ID0gJHRoaXMtPmxvYWRGaWxlKCRwYXRoKTsKCiAgICAgICAgJHRoaXMtPmNvbnRhaW5lci0+ZmlsZUV4aXN0cygkcGF0aCk7CgogICAgICAgIC8vIGVtcHR5IGZpbGUKICAgICAgICBpZiAobnVsbCA9PT0gJGNvbnRlbnQpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+bG9hZENvbnRlbnQoJGNvbnRlbnQsICRwYXRoKTsKCiAgICAgICAgLy8gcGVyLWVudiBjb25maWd1cmF0aW9uCiAgICAgICAgaWYgKCR0aGlzLT5lbnYgJiYgaXNzZXQoJGNvbnRlbnRbJ3doZW5AJy4kdGhpcy0+ZW52XSkpIHsKICAgICAgICAgICAgaWYgKCFcaXNfYXJyYXkoJGNvbnRlbnRbJ3doZW5AJy4kdGhpcy0+ZW52XSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSAid2hlbkAlcyIga2V5IHNob3VsZCBjb250YWluIGFuIGFycmF5IGluICIlcyIuIENoZWNrIHlvdXIgWUFNTCBzeW50YXguJywgJHRoaXMtPmVudiwgJHBhdGgpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGVudiA9ICR0aGlzLT5lbnY7CiAgICAgICAgICAgICR0aGlzLT5lbnYgPSBudWxsOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgJHRoaXMtPmxvYWRDb250ZW50KCRjb250ZW50Wyd3aGVuQCcuJGVudl0sICRwYXRoKTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICR0aGlzLT5lbnYgPSAkZW52OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGxvYWRDb250ZW50KGFycmF5ICRjb250ZW50LCBzdHJpbmcgJHBhdGgpOiB2b2lkCiAgICB7CiAgICAgICAgLy8gaW1wb3J0cwogICAgICAgICR0aGlzLT5wYXJzZUltcG9ydHMoJGNvbnRlbnQsICRwYXRoKTsKCiAgICAgICAgLy8gcGFyYW1ldGVycwogICAgICAgIGlmIChpc3NldCgkY29udGVudFsncGFyYW1ldGVycyddKSkgewogICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkY29udGVudFsncGFyYW1ldGVycyddKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlICJwYXJhbWV0ZXJzIiBrZXkgc2hvdWxkIGNvbnRhaW4gYW4gYXJyYXkgaW4gIiVzIi4gQ2hlY2sgeW91ciBZQU1MIHN5bnRheC4nLCAkcGF0aCkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3JlYWNoICgkY29udGVudFsncGFyYW1ldGVycyddIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29udGFpbmVyLT5zZXRQYXJhbWV0ZXIoJGtleSwgJHRoaXMtPnJlc29sdmVTZXJ2aWNlcygkdmFsdWUsICRwYXRoLCB0cnVlKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGV4dGVuc2lvbnMKICAgICAgICAkdGhpcy0+bG9hZEZyb21FeHRlbnNpb25zKCRjb250ZW50KTsKCiAgICAgICAgLy8gc2VydmljZXMKICAgICAgICAkdGhpcy0+YW5vbnltb3VzU2VydmljZXNDb3VudCA9IDA7CiAgICAgICAgJHRoaXMtPmFub255bW91c1NlcnZpY2VzU3VmZml4ID0gJ34nLkNvbnRhaW5lckJ1aWxkZXI6Omhhc2goJHBhdGgpOwogICAgICAgICR0aGlzLT5zZXRDdXJyZW50RGlyKFxkaXJuYW1lKCRwYXRoKSk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHRoaXMtPnBhcnNlRGVmaW5pdGlvbnMoJGNvbnRlbnQsICRwYXRoKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAkdGhpcy0+aW5zdGFuY2VvZiA9IFtdOwogICAgICAgICAgICAkdGhpcy0+cmVnaXN0ZXJBbGlhc2VzRm9yU2luZ2x5SW1wbGVtZW50ZWRJbnRlcmZhY2VzKCk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzdXBwb3J0cyhtaXhlZCAkcmVzb3VyY2UsID9zdHJpbmcgJHR5cGUgPSBudWxsKTogYm9vbAogICAgewogICAgICAgIGlmICghXGlzX3N0cmluZygkcmVzb3VyY2UpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmIChudWxsID09PSAkdHlwZSAmJiBcaW5fYXJyYXkocGF0aGluZm8oJHJlc291cmNlLCBcUEFUSElORk9fRVhURU5TSU9OKSwgWyd5YW1sJywgJ3ltbCddLCB0cnVlKSkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBcaW5fYXJyYXkoJHR5cGUsIFsneWFtbCcsICd5bWwnXSwgdHJ1ZSk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUltcG9ydHMoYXJyYXkgJGNvbnRlbnQsIHN0cmluZyAkZmlsZSk6IHZvaWQKICAgIHsKICAgICAgICBpZiAoIWlzc2V0KCRjb250ZW50WydpbXBvcnRzJ10pKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmICghXGlzX2FycmF5KCRjb250ZW50WydpbXBvcnRzJ10pKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSAiaW1wb3J0cyIga2V5IHNob3VsZCBjb250YWluIGFuIGFycmF5IGluICIlcyIuIENoZWNrIHlvdXIgWUFNTCBzeW50YXguJywgJGZpbGUpKTsKICAgICAgICB9CgogICAgICAgICRkZWZhdWx0RGlyZWN0b3J5ID0gXGRpcm5hbWUoJGZpbGUpOwogICAgICAgIGZvcmVhY2ggKCRjb250ZW50WydpbXBvcnRzJ10gYXMgJGltcG9ydCkgewogICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkaW1wb3J0KSkgewogICAgICAgICAgICAgICAgJGltcG9ydCA9IFsncmVzb3VyY2UnID0+ICRpbXBvcnRdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghaXNzZXQoJGltcG9ydFsncmVzb3VyY2UnXSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ0FuIGltcG9ydCBzaG91bGQgcHJvdmlkZSBhIHJlc291cmNlIGluICIlcyIuIENoZWNrIHlvdXIgWUFNTCBzeW50YXguJywgJGZpbGUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPnNldEN1cnJlbnREaXIoJGRlZmF1bHREaXJlY3RvcnkpOwogICAgICAgICAgICAkdGhpcy0+aW1wb3J0KCRpbXBvcnRbJ3Jlc291cmNlJ10sICRpbXBvcnRbJ3R5cGUnXSA/PyBudWxsLCAkaW1wb3J0WydpZ25vcmVfZXJyb3JzJ10gPz8gZmFsc2UsICRmaWxlKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZURlZmluaXRpb25zKGFycmF5ICRjb250ZW50LCBzdHJpbmcgJGZpbGUsIGJvb2wgJHRyYWNrQmluZGluZ3MgPSB0cnVlKTogdm9pZAogICAgewogICAgICAgIGlmICghaXNzZXQoJGNvbnRlbnRbJ3NlcnZpY2VzJ10pKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmICghXGlzX2FycmF5KCRjb250ZW50WydzZXJ2aWNlcyddKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdUaGUgInNlcnZpY2VzIiBrZXkgc2hvdWxkIGNvbnRhaW4gYW4gYXJyYXkgaW4gIiVzIi4gQ2hlY2sgeW91ciBZQU1MIHN5bnRheC4nLCAkZmlsZSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKFxhcnJheV9rZXlfZXhpc3RzKCdfaW5zdGFuY2VvZicsICRjb250ZW50WydzZXJ2aWNlcyddKSkgewogICAgICAgICAgICAkaW5zdGFuY2VvZiA9ICRjb250ZW50WydzZXJ2aWNlcyddWydfaW5zdGFuY2VvZiddOwogICAgICAgICAgICB1bnNldCgkY29udGVudFsnc2VydmljZXMnXVsnX2luc3RhbmNlb2YnXSk7CgogICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkaW5zdGFuY2VvZikpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1NlcnZpY2UgIl9pbnN0YW5jZW9mIiBrZXkgbXVzdCBiZSBhbiBhcnJheSwgIiVzIiBnaXZlbiBpbiAiJXMiLicsIGdldF9kZWJ1Z190eXBlKCRpbnN0YW5jZW9mKSwgJGZpbGUpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+aW5zdGFuY2VvZiA9IFtdOwogICAgICAgICAgICAkdGhpcy0+aXNMb2FkaW5nSW5zdGFuY2VvZiA9IHRydWU7CiAgICAgICAgICAgIGZvcmVhY2ggKCRpbnN0YW5jZW9mIGFzICRpZCA9PiAkc2VydmljZSkgewogICAgICAgICAgICAgICAgaWYgKCEkc2VydmljZSB8fCAhXGlzX2FycmF5KCRzZXJ2aWNlKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1R5cGUgZGVmaW5pdGlvbiAiJXMiIG11c3QgYmUgYSBub24tZW1wdHkgYXJyYXkgd2l0aGluICJfaW5zdGFuY2VvZiIgaW4gIiVzIi4gQ2hlY2sgeW91ciBZQU1MIHN5bnRheC4nLCAkaWQsICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoXGlzX3N0cmluZygkc2VydmljZSkgJiYgc3RyX3N0YXJ0c193aXRoKCRzZXJ2aWNlLCAnQCcpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVHlwZSBkZWZpbml0aW9uICIlcyIgY2Fubm90IGJlIGFuIGFsaWFzIHdpdGhpbiAiX2luc3RhbmNlb2YiIGluICIlcyIuIENoZWNrIHlvdXIgWUFNTCBzeW50YXguJywgJGlkLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRoaXMtPnBhcnNlRGVmaW5pdGlvbigkaWQsICRzZXJ2aWNlLCAkZmlsZSwgW10sIGZhbHNlLCAkdHJhY2tCaW5kaW5ncyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICR0aGlzLT5pc0xvYWRpbmdJbnN0YW5jZW9mID0gZmFsc2U7CiAgICAgICAgJGRlZmF1bHRzID0gJHRoaXMtPnBhcnNlRGVmYXVsdHMoJGNvbnRlbnQsICRmaWxlKTsKICAgICAgICBmb3JlYWNoICgkY29udGVudFsnc2VydmljZXMnXSBhcyAkaWQgPT4gJHNlcnZpY2UpIHsKICAgICAgICAgICAgJHRoaXMtPnBhcnNlRGVmaW5pdGlvbigkaWQsICRzZXJ2aWNlLCAkZmlsZSwgJGRlZmF1bHRzLCBmYWxzZSwgJHRyYWNrQmluZGluZ3MpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gcGFyc2VEZWZhdWx0cyhhcnJheSAmJGNvbnRlbnQsIHN0cmluZyAkZmlsZSk6IGFycmF5CiAgICB7CiAgICAgICAgaWYgKCFcYXJyYXlfa2V5X2V4aXN0cygnX2RlZmF1bHRzJywgJGNvbnRlbnRbJ3NlcnZpY2VzJ10pKSB7CiAgICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CiAgICAgICAgJGRlZmF1bHRzID0gJGNvbnRlbnRbJ3NlcnZpY2VzJ11bJ19kZWZhdWx0cyddOwogICAgICAgIHVuc2V0KCRjb250ZW50WydzZXJ2aWNlcyddWydfZGVmYXVsdHMnXSk7CgogICAgICAgIGlmICghXGlzX2FycmF5KCRkZWZhdWx0cykpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignU2VydmljZSAiX2RlZmF1bHRzIiBrZXkgbXVzdCBiZSBhbiBhcnJheSwgIiVzIiBnaXZlbiBpbiAiJXMiLicsIGdldF9kZWJ1Z190eXBlKCRkZWZhdWx0cyksICRmaWxlKSk7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkZGVmYXVsdHMgYXMgJGtleSA9PiAkZGVmYXVsdCkgewogICAgICAgICAgICBpZiAoIWlzc2V0KHNlbGY6OkRFRkFVTFRTX0tFWVdPUkRTWyRrZXldKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlIGNvbmZpZ3VyYXRpb24ga2V5ICIlcyIgY2Fubm90IGJlIHVzZWQgdG8gZGVmaW5lIGEgZGVmYXVsdCB2YWx1ZSBpbiAiJXMiLiBBbGxvd2VkIGtleXMgYXJlICIlcyIuJywgJGtleSwgJGZpbGUsIGltcGxvZGUoJyIsICInLCBzZWxmOjpERUZBVUxUU19LRVlXT1JEUykpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRkZWZhdWx0c1sndGFncyddKSkgewogICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkdGFncyA9ICRkZWZhdWx0c1sndGFncyddKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignUGFyYW1ldGVyICJ0YWdzIiBpbiAiX2RlZmF1bHRzIiBtdXN0IGJlIGFuIGFycmF5IGluICIlcyIuIENoZWNrIHlvdXIgWUFNTCBzeW50YXguJywgJGZpbGUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJHRhZ3MgYXMgJHRhZykgewogICAgICAgICAgICAgICAgaWYgKCFcaXNfYXJyYXkoJHRhZykpIHsKICAgICAgICAgICAgICAgICAgICAkdGFnID0gWyduYW1lJyA9PiAkdGFnXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoMSA9PT0gXGNvdW50KCR0YWcpICYmIFxpc19hcnJheShjdXJyZW50KCR0YWcpKSkgewogICAgICAgICAgICAgICAgICAgICRuYW1lID0ga2V5KCR0YWcpOwogICAgICAgICAgICAgICAgICAgICR0YWcgPSBjdXJyZW50KCR0YWcpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCR0YWdbJ25hbWUnXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignQSAidGFncyIgZW50cnkgaW4gIl9kZWZhdWx0cyIgaXMgbWlzc2luZyBhICJuYW1lIiBrZXkgaW4gIiVzIi4nLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkbmFtZSA9ICR0YWdbJ25hbWUnXTsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkdGFnWyduYW1lJ10pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghXGlzX3N0cmluZygkbmFtZSkgfHwgJycgPT09ICRuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlIHRhZyBuYW1lIGluICJfZGVmYXVsdHMiIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIGluICIlcyIuJywgJGZpbGUpKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVBdHRyaWJ1dGVzKFxzcHJpbnRmKCdUYWcgIiVzIiwgYXR0cmlidXRlICIlcyIgaW4gIl9kZWZhdWx0cyIgbXVzdCBiZSBvZiBhIHNjYWxhci10eXBlIGluICIlcyIuIENoZWNrIHlvdXIgWUFNTCBzeW50YXguJywgJG5hbWUsICclcycsICRmaWxlKSwgJHRhZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkZGVmYXVsdHNbJ2JpbmQnXSkpIHsKICAgICAgICAgICAgaWYgKCFcaXNfYXJyYXkoJGRlZmF1bHRzWydiaW5kJ10pKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdQYXJhbWV0ZXIgImJpbmQiIGluICJfZGVmYXVsdHMiIG11c3QgYmUgYW4gYXJyYXkgaW4gIiVzIi4gQ2hlY2sgeW91ciBZQU1MIHN5bnRheC4nLCAkZmlsZSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+cmVzb2x2ZVNlcnZpY2VzKCRkZWZhdWx0c1snYmluZCddLCAkZmlsZSkgYXMgJGFyZ3VtZW50ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgJGRlZmF1bHRzWydiaW5kJ11bJGFyZ3VtZW50XSA9IG5ldyBCb3VuZEFyZ3VtZW50KCR2YWx1ZSwgdHJ1ZSwgQm91bmRBcmd1bWVudDo6REVGQVVMVFNfQklORElORywgJGZpbGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGRlZmF1bHRzOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gaXNVc2luZ1Nob3J0U3ludGF4KGFycmF5ICRzZXJ2aWNlKTogYm9vbAogICAgewogICAgICAgIGZvcmVhY2ggKCRzZXJ2aWNlIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChcaXNfc3RyaW5nKCRrZXkpICYmICgnJyA9PT0gJGtleSB8fCAoJyQnICE9PSAka2V5WzBdICYmICFzdHJfY29udGFpbnMoJGtleSwgJ1xcJykpKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIFdoZW4gdGFncyBhcmUgaW52YWxpZAogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRGVmaW5pdGlvbihzdHJpbmcgJGlkLCBhcnJheXxzdHJpbmd8bnVsbCAkc2VydmljZSwgc3RyaW5nICRmaWxlLCBhcnJheSAkZGVmYXVsdHMsIGJvb2wgJHJldHVybiA9IGZhbHNlLCBib29sICR0cmFja0JpbmRpbmdzID0gdHJ1ZSk6IERlZmluaXRpb258QWxpYXN8bnVsbAogICAgewogICAgICAgIGlmIChwcmVnX21hdGNoKCcvXl9bYS16QS1aMC05X10qJC8nLCAkaWQpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1NlcnZpY2UgbmFtZXMgdGhhdCBzdGFydCB3aXRoIGFuIHVuZGVyc2NvcmUgYXJlIHJlc2VydmVkLiBSZW5hbWUgdGhlICIlcyIgc2VydmljZSBvciBkZWZpbmUgaXQgaW4gWE1MIGluc3RlYWQuJywgJGlkKSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoXGlzX3N0cmluZygkc2VydmljZSkgJiYgc3RyX3N0YXJ0c193aXRoKCRzZXJ2aWNlLCAnQCcpKSB7CiAgICAgICAgICAgICRhbGlhcyA9IG5ldyBBbGlhcyhzdWJzdHIoJHNlcnZpY2UsIDEpKTsKCiAgICAgICAgICAgIGlmIChpc3NldCgkZGVmYXVsdHNbJ3B1YmxpYyddKSkgewogICAgICAgICAgICAgICAgJGFsaWFzLT5zZXRQdWJsaWMoJGRlZmF1bHRzWydwdWJsaWMnXSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkcmV0dXJuID8gJGFsaWFzIDogJHRoaXMtPmNvbnRhaW5lci0+c2V0QWxpYXMoJGlkLCAkYWxpYXMpOwogICAgICAgIH0KCiAgICAgICAgaWYgKFxpc19hcnJheSgkc2VydmljZSkgJiYgJHRoaXMtPmlzVXNpbmdTaG9ydFN5bnRheCgkc2VydmljZSkpIHsKICAgICAgICAgICAgJHNlcnZpY2UgPSBbJ2FyZ3VtZW50cycgPT4gJHNlcnZpY2VdOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFcaXNfYXJyYXkoJHNlcnZpY2UgPz89IFtdKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdBIHNlcnZpY2UgZGVmaW5pdGlvbiBtdXN0IGJlIGFuIGFycmF5IG9yIGEgc3RyaW5nIHN0YXJ0aW5nIHdpdGggIkAiIGJ1dCAiJXMiIGZvdW5kIGZvciBzZXJ2aWNlICIlcyIgaW4gIiVzIi4gQ2hlY2sgeW91ciBZQU1MIHN5bnRheC4nLCBnZXRfZGVidWdfdHlwZSgkc2VydmljZSksICRpZCwgJGZpbGUpKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnc3RhY2snXSkpIHsKICAgICAgICAgICAgaWYgKCFcaXNfYXJyYXkoJHNlcnZpY2VbJ3N0YWNrJ10pKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdBIHN0YWNrIG11c3QgYmUgYW4gYXJyYXkgb2YgZGVmaW5pdGlvbnMsICIlcyIgZ2l2ZW4gZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsIGdldF9kZWJ1Z190eXBlKCRzZXJ2aWNlKSwgJGlkLCAkZmlsZSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkc3RhY2sgPSBbXTsKCiAgICAgICAgICAgIGZvcmVhY2ggKCRzZXJ2aWNlWydzdGFjayddIGFzICRrID0+ICRmcmFtZSkgewogICAgICAgICAgICAgICAgaWYgKFxpc19hcnJheSgkZnJhbWUpICYmIDEgPT09IFxjb3VudCgkZnJhbWUpICYmICFpc3NldChzZWxmOjpTRVJWSUNFX0tFWVdPUkRTW2tleSgkZnJhbWUpXSkpIHsKICAgICAgICAgICAgICAgICAgICAkZnJhbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcycgPT4ga2V5KCRmcmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICdhcmd1bWVudHMnID0+IGN1cnJlbnQoJGZyYW1lKSwKICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChcaXNfYXJyYXkoJGZyYW1lKSAmJiBpc3NldCgkZnJhbWVbJ3N0YWNrJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignU2VydmljZSBzdGFjayAiJXMiIGNhbm5vdCBjb250YWluIGFub3RoZXIgc3RhY2sgaW4gIiVzIi4nLCAkaWQsICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGRlZmluaXRpb24gPSAkdGhpcy0+cGFyc2VEZWZpbml0aW9uKCRpZC4nIiBhdCBpbmRleCAiJy4kaywgJGZyYW1lLCAkZmlsZSwgJGRlZmF1bHRzLCB0cnVlKTsKCiAgICAgICAgICAgICAgICBpZiAoJGRlZmluaXRpb24gaW5zdGFuY2VvZiBEZWZpbml0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEluc3RhbmNlb2ZDb25kaXRpb25hbHMoJHRoaXMtPmluc3RhbmNlb2YpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRzdGFja1ska10gPSAkZGVmaW5pdGlvbjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRkaWZmID0gYXJyYXlfZGlmZihhcnJheV9rZXlzKCRzZXJ2aWNlKSwgWydzdGFjaycsICdwdWJsaWMnLCAnZGVwcmVjYXRlZCddKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignSW52YWxpZCBhdHRyaWJ1dGUgIiVzIjsgc3VwcG9ydGVkIG9uZXMgYXJlICJwdWJsaWMiIGFuZCAiZGVwcmVjYXRlZCIgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsIGltcGxvZGUoJyIsICInLCAkZGlmZiksICRpZCwgJGZpbGUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHNlcnZpY2UgPSBbCiAgICAgICAgICAgICAgICAncGFyZW50JyA9PiAnJywKICAgICAgICAgICAgICAgICdhcmd1bWVudHMnID0+ICRzdGFjaywKICAgICAgICAgICAgICAgICd0YWdzJyA9PiBbJ2NvbnRhaW5lci5zdGFjayddLAogICAgICAgICAgICAgICAgJ3B1YmxpYycgPT4gJHNlcnZpY2VbJ3B1YmxpYyddID8/IG51bGwsCiAgICAgICAgICAgICAgICAnZGVwcmVjYXRlZCcgPT4gJHNlcnZpY2VbJ2RlcHJlY2F0ZWQnXSA/PyBudWxsLAogICAgICAgICAgICBdOwogICAgICAgIH0KCiAgICAgICAgJGRlZmluaXRpb24gPSBpc3NldCgkc2VydmljZVswXSkgJiYgJHNlcnZpY2VbMF0gaW5zdGFuY2VvZiBEZWZpbml0aW9uID8gYXJyYXlfc2hpZnQoJHNlcnZpY2UpIDogbnVsbDsKICAgICAgICAkcmV0dXJuID0gbnVsbCA9PT0gJGRlZmluaXRpb24gPyAkcmV0dXJuIDogdHJ1ZTsKCiAgICAgICAgaWYgKGlzc2V0KCRzZXJ2aWNlWydmcm9tX2NhbGxhYmxlJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKFsnYWxpYXMnLCAncGFyZW50JywgJ3N5bnRoZXRpYycsICdmYWN0b3J5JywgJ2ZpbGUnLCAnYXJndW1lbnRzJywgJ3Byb3BlcnRpZXMnLCAnY29uZmlndXJhdG9yJywgJ2NhbGxzJ10gYXMgJGtleSkgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRzZXJ2aWNlWydmYWN0b3J5J10pKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlIGNvbmZpZ3VyYXRpb24ga2V5ICIlcyIgaXMgdW5zdXBwb3J0ZWQgZm9yIHRoZSBzZXJ2aWNlICIlcyIgd2hlbiB1c2luZyAiZnJvbV9jYWxsYWJsZSIgaW4gIiVzIi4nLCAka2V5LCAkaWQsICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgnQ2xvc3VyZScgIT09ICRzZXJ2aWNlWydjbGFzcyddID8/PSAnQ2xvc3VyZScpIHsKICAgICAgICAgICAgICAgICRzZXJ2aWNlWydsYXp5J10gPSB0cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkc2VydmljZVsnZmFjdG9yeSddID0gWydDbG9zdXJlJywgJ2Zyb21DYWxsYWJsZSddOwogICAgICAgICAgICAkc2VydmljZVsnYXJndW1lbnRzJ10gPSBbJHNlcnZpY2VbJ2Zyb21fY2FsbGFibGUnXV07CiAgICAgICAgICAgIHVuc2V0KCRzZXJ2aWNlWydmcm9tX2NhbGxhYmxlJ10pOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmNoZWNrRGVmaW5pdGlvbigkaWQsICRzZXJ2aWNlLCAkZmlsZSk7CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnYWxpYXMnXSkpIHsKICAgICAgICAgICAgJGFsaWFzID0gbmV3IEFsaWFzKCRzZXJ2aWNlWydhbGlhcyddKTsKCiAgICAgICAgICAgIGlmIChpc3NldCgkc2VydmljZVsncHVibGljJ10pKSB7CiAgICAgICAgICAgICAgICAkYWxpYXMtPnNldFB1YmxpYygkc2VydmljZVsncHVibGljJ10pOwogICAgICAgICAgICB9IGVsc2VpZiAoaXNzZXQoJGRlZmF1bHRzWydwdWJsaWMnXSkpIHsKICAgICAgICAgICAgICAgICRhbGlhcy0+c2V0UHVibGljKCRkZWZhdWx0c1sncHVibGljJ10pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3JlYWNoICgkc2VydmljZSBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgaWYgKCFcaW5fYXJyYXkoJGtleSwgWydhbGlhcycsICdwdWJsaWMnLCAnZGVwcmVjYXRlZCddKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSBjb25maWd1cmF0aW9uIGtleSAiJXMiIGlzIHVuc3VwcG9ydGVkIGZvciB0aGUgc2VydmljZSAiJXMiIHdoaWNoIGlzIGRlZmluZWQgYXMgYW4gYWxpYXMgaW4gIiVzIi4gQWxsb3dlZCBjb25maWd1cmF0aW9uIGtleXMgZm9yIHNlcnZpY2UgYWxpYXNlcyBhcmUgImFsaWFzIiwgInB1YmxpYyIgYW5kICJkZXByZWNhdGVkIi4nLCAka2V5LCAkaWQsICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCdkZXByZWNhdGVkJyA9PT0gJGtleSkgewogICAgICAgICAgICAgICAgICAgICRkZXByZWNhdGlvbiA9IFxpc19hcnJheSgkdmFsdWUpID8gJHZhbHVlIDogWydtZXNzYWdlJyA9PiAkdmFsdWVdOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRkZXByZWNhdGlvblsncGFja2FnZSddKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdNaXNzaW5nIGF0dHJpYnV0ZSAicGFja2FnZSIgb2YgdGhlICJkZXByZWNhdGVkIiBvcHRpb24gaW4gIiVzIi4nLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkZGVwcmVjYXRpb25bJ3ZlcnNpb24nXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignTWlzc2luZyBhdHRyaWJ1dGUgInZlcnNpb24iIG9mIHRoZSAiZGVwcmVjYXRlZCIgb3B0aW9uIGluICIlcyIuJywgJGZpbGUpKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRhbGlhcy0+c2V0RGVwcmVjYXRlZCgkZGVwcmVjYXRpb25bJ3BhY2thZ2UnXSA/PyAnJywgJGRlcHJlY2F0aW9uWyd2ZXJzaW9uJ10gPz8gJycsICRkZXByZWNhdGlvblsnbWVzc2FnZSddID8/ICcnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRyZXR1cm4gPyAkYWxpYXMgOiAkdGhpcy0+Y29udGFpbmVyLT5zZXRBbGlhcygkaWQsICRhbGlhcyk7CiAgICAgICAgfQoKICAgICAgICAkY2hhbmdlcyA9IFtdOwogICAgICAgIGlmIChudWxsICE9PSAkZGVmaW5pdGlvbikgewogICAgICAgICAgICAkY2hhbmdlcyA9ICRkZWZpbml0aW9uLT5nZXRDaGFuZ2VzKCk7CiAgICAgICAgfSBlbHNlaWYgKCR0aGlzLT5pc0xvYWRpbmdJbnN0YW5jZW9mKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uID0gbmV3IENoaWxkRGVmaW5pdGlvbignJyk7CiAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRzZXJ2aWNlWydwYXJlbnQnXSkpIHsKICAgICAgICAgICAgaWYgKCcnICE9PSAkc2VydmljZVsncGFyZW50J10gJiYgJ0AnID09PSAkc2VydmljZVsncGFyZW50J11bMF0pIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSB2YWx1ZSBvZiB0aGUgInBhcmVudCIgb3B0aW9uIGZvciB0aGUgIiVzIiBzZXJ2aWNlIG11c3QgYmUgdGhlIGlkIG9mIHRoZSBzZXJ2aWNlIHdpdGhvdXQgdGhlICJAIiBwcmVmaXggKHJlcGxhY2UgIiVzIiB3aXRoICIlcyIpLicsICRpZCwgJHNlcnZpY2VbJ3BhcmVudCddLCBzdWJzdHIoJHNlcnZpY2VbJ3BhcmVudCddLCAxKSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZGVmaW5pdGlvbiA9IG5ldyBDaGlsZERlZmluaXRpb24oJHNlcnZpY2VbJ3BhcmVudCddKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZGVmaW5pdGlvbiA9IG5ldyBEZWZpbml0aW9uKCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJGRlZmF1bHRzWydwdWJsaWMnXSkpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldFB1YmxpYygkZGVmYXVsdHNbJ3B1YmxpYyddKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzc2V0KCRkZWZhdWx0c1snYXV0b3dpcmUnXSkpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEF1dG93aXJlZCgkZGVmYXVsdHNbJ2F1dG93aXJlJ10pOwogICAgICAgIH0KICAgICAgICBpZiAoaXNzZXQoJGRlZmF1bHRzWydhdXRvY29uZmlndXJlJ10pKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRBdXRvY29uZmlndXJlZCgkZGVmYXVsdHNbJ2F1dG9jb25maWd1cmUnXSk7CiAgICAgICAgfQoKICAgICAgICAkZGVmaW5pdGlvbi0+c2V0Q2hhbmdlcygkY2hhbmdlcyk7CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnY2xhc3MnXSkpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldENsYXNzKCRzZXJ2aWNlWydjbGFzcyddKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnc2hhcmVkJ10pKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRTaGFyZWQoJHNlcnZpY2VbJ3NoYXJlZCddKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnc3ludGhldGljJ10pKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRTeW50aGV0aWMoJHNlcnZpY2VbJ3N5bnRoZXRpYyddKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnbGF6eSddKSkgewogICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0TGF6eSgoYm9vbCkgJHNlcnZpY2VbJ2xhenknXSk7CiAgICAgICAgICAgIGlmIChcaXNfc3RyaW5nKCRzZXJ2aWNlWydsYXp5J10pKSB7CiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbi0+YWRkVGFnKCdwcm94eScsIFsnaW50ZXJmYWNlJyA9PiAkc2VydmljZVsnbGF6eSddXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsncHVibGljJ10pKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRQdWJsaWMoJHNlcnZpY2VbJ3B1YmxpYyddKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnYWJzdHJhY3QnXSkpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEFic3RyYWN0KCRzZXJ2aWNlWydhYnN0cmFjdCddKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnZGVwcmVjYXRlZCddKSkgewogICAgICAgICAgICAkZGVwcmVjYXRpb24gPSBcaXNfYXJyYXkoJHNlcnZpY2VbJ2RlcHJlY2F0ZWQnXSkgPyAkc2VydmljZVsnZGVwcmVjYXRlZCddIDogWydtZXNzYWdlJyA9PiAkc2VydmljZVsnZGVwcmVjYXRlZCddXTsKCiAgICAgICAgICAgIGlmICghaXNzZXQoJGRlcHJlY2F0aW9uWydwYWNrYWdlJ10pKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdNaXNzaW5nIGF0dHJpYnV0ZSAicGFja2FnZSIgb2YgdGhlICJkZXByZWNhdGVkIiBvcHRpb24gaW4gIiVzIi4nLCAkZmlsZSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIWlzc2V0KCRkZXByZWNhdGlvblsndmVyc2lvbiddKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignTWlzc2luZyBhdHRyaWJ1dGUgInZlcnNpb24iIG9mIHRoZSAiZGVwcmVjYXRlZCIgb3B0aW9uIGluICIlcyIuJywgJGZpbGUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldERlcHJlY2F0ZWQoJGRlcHJlY2F0aW9uWydwYWNrYWdlJ10gPz8gJycsICRkZXByZWNhdGlvblsndmVyc2lvbiddID8/ICcnLCAkZGVwcmVjYXRpb25bJ21lc3NhZ2UnXSA/PyAnJyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHNlcnZpY2VbJ2ZhY3RvcnknXSkpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEZhY3RvcnkoJHRoaXMtPnBhcnNlQ2FsbGFibGUoJHNlcnZpY2VbJ2ZhY3RvcnknXSwgJ2ZhY3RvcnknLCAkaWQsICRmaWxlKSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHNlcnZpY2VbJ2NvbnN0cnVjdG9yJ10pKSB7CiAgICAgICAgICAgIGlmIChudWxsICE9PSAkZGVmaW5pdGlvbi0+Z2V0RmFjdG9yeSgpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTG9naWNFeGNlcHRpb24oXHNwcmludGYoJ1RoZSAiJXMiIHNlcnZpY2UgY2Fubm90IGRlY2xhcmUgYSBmYWN0b3J5IGFzIHdlbGwgYXMgYSBjb25zdHJ1Y3Rvci4nLCAkaWQpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEZhY3RvcnkoW251bGwsICRzZXJ2aWNlWydjb25zdHJ1Y3RvciddXSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHNlcnZpY2VbJ2ZpbGUnXSkpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEZpbGUoJHNlcnZpY2VbJ2ZpbGUnXSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHNlcnZpY2VbJ2FyZ3VtZW50cyddKSkgewogICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0QXJndW1lbnRzKCR0aGlzLT5yZXNvbHZlU2VydmljZXMoJHNlcnZpY2VbJ2FyZ3VtZW50cyddLCAkZmlsZSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRzZXJ2aWNlWydwcm9wZXJ0aWVzJ10pKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRQcm9wZXJ0aWVzKCR0aGlzLT5yZXNvbHZlU2VydmljZXMoJHNlcnZpY2VbJ3Byb3BlcnRpZXMnXSwgJGZpbGUpKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkc2VydmljZVsnY29uZmlndXJhdG9yJ10pKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRDb25maWd1cmF0b3IoJHRoaXMtPnBhcnNlQ2FsbGFibGUoJHNlcnZpY2VbJ2NvbmZpZ3VyYXRvciddLCAnY29uZmlndXJhdG9yJywgJGlkLCAkZmlsZSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRzZXJ2aWNlWydjYWxscyddKSkgewogICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkc2VydmljZVsnY2FsbHMnXSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1BhcmFtZXRlciAiY2FsbHMiIG11c3QgYmUgYW4gYXJyYXkgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRpZCwgJGZpbGUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJHNlcnZpY2VbJ2NhbGxzJ10gYXMgJGsgPT4gJGNhbGwpIHsKICAgICAgICAgICAgICAgIGlmICghXGlzX2FycmF5KCRjYWxsKSAmJiAoIVxpc19zdHJpbmcoJGspIHx8ICEkY2FsbCBpbnN0YW5jZW9mIFRhZ2dlZFZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ0ludmFsaWQgbWV0aG9kIGNhbGwgZm9yIHNlcnZpY2UgIiVzIjogZXhwZWN0ZWQgbWFwIG9yIGFycmF5LCAiJXMiIGdpdmVuIGluICIlcyIuJywgJGlkLCAkY2FsbCBpbnN0YW5jZW9mIFRhZ2dlZFZhbHVlID8gJyEnLiRjYWxsLT5nZXRUYWcoKSA6IGdldF9kZWJ1Z190eXBlKCRjYWxsKSwgJGZpbGUpKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoXGlzX3N0cmluZygkaykpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdJbnZhbGlkIG1ldGhvZCBjYWxsIGZvciBzZXJ2aWNlICIlcyIsIGRpZCB5b3UgZm9yZ2V0IGEgbGVhZGluZyBkYXNoIGJlZm9yZSAiJXM6IC4uLiIgaW4gIiVzIj8nLCAkaWQsICRrLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkY2FsbFsnbWV0aG9kJ10pICYmIFxpc19zdHJpbmcoJGNhbGxbJ21ldGhvZCddKSkgewogICAgICAgICAgICAgICAgICAgICRtZXRob2QgPSAkY2FsbFsnbWV0aG9kJ107CiAgICAgICAgICAgICAgICAgICAgJGFyZ3MgPSAkY2FsbFsnYXJndW1lbnRzJ10gPz8gW107CiAgICAgICAgICAgICAgICAgICAgJHJldHVybnNDbG9uZSA9ICRjYWxsWydyZXR1cm5zX2Nsb25lJ10gPz8gZmFsc2U7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmICgxID09PSBcY291bnQoJGNhbGwpICYmIFxpc19zdHJpbmcoa2V5KCRjYWxsKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG1ldGhvZCA9IGtleSgkY2FsbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRhcmdzID0gJGNhbGxbJG1ldGhvZF07CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGFyZ3MgaW5zdGFuY2VvZiBUYWdnZWRWYWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCdyZXR1cm5zX2Nsb25lJyAhPT0gJGFyZ3MtPmdldFRhZygpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVW5zdXBwb3J0ZWQgdGFnICIhJXMiLCBkaWQgeW91IG1lYW4gIiFyZXR1cm5zX2Nsb25lIiBmb3Igc2VydmljZSAiJXMiIGluICIlcyI/JywgJGFyZ3MtPmdldFRhZygpLCAkaWQsICRmaWxlKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybnNDbG9uZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXJncyA9ICRhcmdzLT5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybnNDbG9uZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKGVtcHR5KCRjYWxsWzBdKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdJbnZhbGlkIGNhbGwgZm9yIHNlcnZpY2UgIiVzIjogdGhlIG1ldGhvZCBtdXN0IGJlIGRlZmluZWQgYXMgdGhlIGZpcnN0IGluZGV4IG9mIGFuIGFycmF5IG9yIGFzIHRoZSBvbmx5IGtleSBvZiBhIG1hcCBpbiAiJXMiLicsICRpZCwgJGZpbGUpKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkbWV0aG9kID0gJGNhbGxbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICRhcmdzID0gJGNhbGxbMV0gPz8gW107CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5zQ2xvbmUgPSAkY2FsbFsyXSA/PyBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFcaXNfYXJyYXkoJGFyZ3MpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlIHNlY29uZCBwYXJhbWV0ZXIgZm9yIGZ1bmN0aW9uIGNhbGwgIiVzIiBtdXN0IGJlIGFuIGFycmF5IG9mIGl0cyBhcmd1bWVudHMgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRtZXRob2QsICRpZCwgJGZpbGUpKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkYXJncyA9ICR0aGlzLT5yZXNvbHZlU2VydmljZXMoJGFyZ3MsICRmaWxlKTsKICAgICAgICAgICAgICAgICRkZWZpbml0aW9uLT5hZGRNZXRob2RDYWxsKCRtZXRob2QsICRhcmdzLCAkcmV0dXJuc0Nsb25lKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHRhZ3MgPSAkc2VydmljZVsndGFncyddID8/IFtdOwogICAgICAgIGlmICghXGlzX2FycmF5KCR0YWdzKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdQYXJhbWV0ZXIgInRhZ3MiIG11c3QgYmUgYW4gYXJyYXkgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRpZCwgJGZpbGUpKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkZGVmYXVsdHNbJ3RhZ3MnXSkpIHsKICAgICAgICAgICAgJHRhZ3MgPSBhcnJheV9tZXJnZSgkdGFncywgJGRlZmF1bHRzWyd0YWdzJ10pOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHRhZ3MgYXMgJHRhZykgewogICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkdGFnKSkgewogICAgICAgICAgICAgICAgJHRhZyA9IFsnbmFtZScgPT4gJHRhZ107CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgxID09PSBcY291bnQoJHRhZykgJiYgXGlzX2FycmF5KGN1cnJlbnQoJHRhZykpKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9IGtleSgkdGFnKTsKICAgICAgICAgICAgICAgICR0YWcgPSBjdXJyZW50KCR0YWcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkdGFnWyduYW1lJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignQSAidGFncyIgZW50cnkgaXMgbWlzc2luZyBhICJuYW1lIiBrZXkgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLicsICRpZCwgJGZpbGUpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRuYW1lID0gJHRhZ1snbmFtZSddOwogICAgICAgICAgICAgICAgdW5zZXQoJHRhZ1snbmFtZSddKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFcaXNfc3RyaW5nKCRuYW1lKSB8fCAnJyA9PT0gJG5hbWUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSB0YWcgbmFtZSBmb3Igc2VydmljZSAiJXMiIGluICIlcyIgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcuJywgJGlkLCAkZmlsZSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVBdHRyaWJ1dGVzKFxzcHJpbnRmKCdBICJ0YWdzIiBhdHRyaWJ1dGUgbXVzdCBiZSBvZiBhIHNjYWxhci10eXBlIGZvciBzZXJ2aWNlICIlcyIsIHRhZyAiJXMiLCBhdHRyaWJ1dGUgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRpZCwgJG5hbWUsICclcycsICRmaWxlKSwgJHRhZyk7CgogICAgICAgICAgICAkZGVmaW5pdGlvbi0+YWRkVGFnKCRuYW1lLCAkdGFnKTsKICAgICAgICB9CgogICAgICAgIGlmIChudWxsICE9PSAkZGVjb3JhdGVzID0gJHNlcnZpY2VbJ2RlY29yYXRlcyddID8/IG51bGwpIHsKICAgICAgICAgICAgaWYgKCcnICE9PSAkZGVjb3JhdGVzICYmICdAJyA9PT0gJGRlY29yYXRlc1swXSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlIHZhbHVlIG9mIHRoZSAiZGVjb3JhdGVzIiBvcHRpb24gZm9yIHRoZSAiJXMiIHNlcnZpY2UgbXVzdCBiZSB0aGUgaWQgb2YgdGhlIHNlcnZpY2Ugd2l0aG91dCB0aGUgIkAiIHByZWZpeCAocmVwbGFjZSAiJXMiIHdpdGggIiVzIikuJywgJGlkLCAkc2VydmljZVsnZGVjb3JhdGVzJ10sIHN1YnN0cigkZGVjb3JhdGVzLCAxKSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZGVjb3JhdGlvbk9uSW52YWxpZCA9IFxhcnJheV9rZXlfZXhpc3RzKCdkZWNvcmF0aW9uX29uX2ludmFsaWQnLCAkc2VydmljZSkgPyAkc2VydmljZVsnZGVjb3JhdGlvbl9vbl9pbnZhbGlkJ10gOiAnZXhjZXB0aW9uJzsKICAgICAgICAgICAgaWYgKCdleGNlcHRpb24nID09PSAkZGVjb3JhdGlvbk9uSW52YWxpZCkgewogICAgICAgICAgICAgICAgJGludmFsaWRCZWhhdmlvciA9IENvbnRhaW5lckludGVyZmFjZTo6RVhDRVBUSU9OX09OX0lOVkFMSURfUkVGRVJFTkNFOwogICAgICAgICAgICB9IGVsc2VpZiAoJ2lnbm9yZScgPT09ICRkZWNvcmF0aW9uT25JbnZhbGlkKSB7CiAgICAgICAgICAgICAgICAkaW52YWxpZEJlaGF2aW9yID0gQ29udGFpbmVySW50ZXJmYWNlOjpJR05PUkVfT05fSU5WQUxJRF9SRUZFUkVOQ0U7CiAgICAgICAgICAgIH0gZWxzZWlmIChudWxsID09PSAkZGVjb3JhdGlvbk9uSW52YWxpZCkgewogICAgICAgICAgICAgICAgJGludmFsaWRCZWhhdmlvciA9IENvbnRhaW5lckludGVyZmFjZTo6TlVMTF9PTl9JTlZBTElEX1JFRkVSRU5DRTsKICAgICAgICAgICAgfSBlbHNlaWYgKCdudWxsJyA9PT0gJGRlY29yYXRpb25PbkludmFsaWQpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ0ludmFsaWQgdmFsdWUgIiVzIiBmb3IgYXR0cmlidXRlICJkZWNvcmF0aW9uX29uX2ludmFsaWQiIG9uIHNlcnZpY2UgIiVzIi4gRGlkIHlvdSBtZWFuIG51bGwgKHdpdGhvdXQgcXVvdGVzKSBpbiAiJXMiPycsICRkZWNvcmF0aW9uT25JbnZhbGlkLCAkaWQsICRmaWxlKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdJbnZhbGlkIHZhbHVlICIlcyIgZm9yIGF0dHJpYnV0ZSAiZGVjb3JhdGlvbl9vbl9pbnZhbGlkIiBvbiBzZXJ2aWNlICIlcyIuIERpZCB5b3UgbWVhbiAiZXhjZXB0aW9uIiwgImlnbm9yZSIgb3IgbnVsbCBpbiAiJXMiPycsICRkZWNvcmF0aW9uT25JbnZhbGlkLCAkaWQsICRmaWxlKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRyZW5hbWVJZCA9ICRzZXJ2aWNlWydkZWNvcmF0aW9uX2lubmVyX25hbWUnXSA/PyBudWxsOwogICAgICAgICAgICAkcHJpb3JpdHkgPSAkc2VydmljZVsnZGVjb3JhdGlvbl9wcmlvcml0eSddID8/IDA7CgogICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0RGVjb3JhdGVkU2VydmljZSgkZGVjb3JhdGVzLCAkcmVuYW1lSWQsICRwcmlvcml0eSwgJGludmFsaWRCZWhhdmlvcik7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHNlcnZpY2VbJ2F1dG93aXJlJ10pKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRBdXRvd2lyZWQoJHNlcnZpY2VbJ2F1dG93aXJlJ10pOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRkZWZhdWx0c1snYmluZCddKSB8fCBpc3NldCgkc2VydmljZVsnYmluZCddKSkgewogICAgICAgICAgICAvLyBkZWVwIGNsb25lLCB0byBhdm9pZCBtdWx0aXBsZSBwcm9jZXNzIG9mIHRoZSBzYW1lIGluc3RhbmNlIGluIHRoZSBwYXNzZXMKICAgICAgICAgICAgJGJpbmRpbmdzID0gJGRlZmluaXRpb24tPmdldEJpbmRpbmdzKCk7CiAgICAgICAgICAgICRiaW5kaW5ncyArPSBpc3NldCgkZGVmYXVsdHNbJ2JpbmQnXSkgPyB1bnNlcmlhbGl6ZShzZXJpYWxpemUoJGRlZmF1bHRzWydiaW5kJ10pKSA6IFtdOwoKICAgICAgICAgICAgaWYgKGlzc2V0KCRzZXJ2aWNlWydiaW5kJ10pKSB7CiAgICAgICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkc2VydmljZVsnYmluZCddKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1BhcmFtZXRlciAiYmluZCIgbXVzdCBiZSBhbiBhcnJheSBmb3Igc2VydmljZSAiJXMiIGluICIlcyIuIENoZWNrIHlvdXIgWUFNTCBzeW50YXguJywgJGlkLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRiaW5kaW5ncyA9IGFycmF5X21lcmdlKCRiaW5kaW5ncywgJHRoaXMtPnJlc29sdmVTZXJ2aWNlcygkc2VydmljZVsnYmluZCddLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgJGJpbmRpbmdUeXBlID0gJHRoaXMtPmlzTG9hZGluZ0luc3RhbmNlb2YgPyBCb3VuZEFyZ3VtZW50OjpJTlNUQU5DRU9GX0JJTkRJTkcgOiBCb3VuZEFyZ3VtZW50OjpTRVJWSUNFX0JJTkRJTkc7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkYmluZGluZ3MgYXMgJGFyZ3VtZW50ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgIGlmICghJHZhbHVlIGluc3RhbmNlb2YgQm91bmRBcmd1bWVudCkgewogICAgICAgICAgICAgICAgICAgICAgICAkYmluZGluZ3NbJGFyZ3VtZW50XSA9IG5ldyBCb3VuZEFyZ3VtZW50KCR2YWx1ZSwgJHRyYWNrQmluZGluZ3MsICRiaW5kaW5nVHlwZSwgJGZpbGUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEJpbmRpbmdzKCRiaW5kaW5ncyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHNlcnZpY2VbJ2F1dG9jb25maWd1cmUnXSkpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEF1dG9jb25maWd1cmVkKCRzZXJ2aWNlWydhdXRvY29uZmlndXJlJ10pOwogICAgICAgIH0KCiAgICAgICAgaWYgKFxhcnJheV9rZXlfZXhpc3RzKCduYW1lc3BhY2UnLCAkc2VydmljZSkgJiYgIVxhcnJheV9rZXlfZXhpc3RzKCdyZXNvdXJjZScsICRzZXJ2aWNlKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdBICJyZXNvdXJjZSIgYXR0cmlidXRlIG11c3QgYmUgc2V0IHdoZW4gdGhlICJuYW1lc3BhY2UiIGF0dHJpYnV0ZSBpcyBzZXQgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRpZCwgJGZpbGUpKTsKICAgICAgICB9CgogICAgICAgIGlmICgkcmV0dXJuKSB7CiAgICAgICAgICAgIGlmIChcYXJyYXlfa2V5X2V4aXN0cygncmVzb3VyY2UnLCAkc2VydmljZSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ0ludmFsaWQgInJlc291cmNlIiBhdHRyaWJ1dGUgZm91bmQgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRpZCwgJGZpbGUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRkZWZpbml0aW9uOwogICAgICAgIH0KCiAgICAgICAgaWYgKFxhcnJheV9rZXlfZXhpc3RzKCdyZXNvdXJjZScsICRzZXJ2aWNlKSkgewogICAgICAgICAgICBpZiAoIVxpc19zdHJpbmcoJHNlcnZpY2VbJ3Jlc291cmNlJ10pKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdBICJyZXNvdXJjZSIgYXR0cmlidXRlIG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiLiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRpZCwgJGZpbGUpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZXhjbHVkZSA9ICRzZXJ2aWNlWydleGNsdWRlJ10gPz8gbnVsbDsKICAgICAgICAgICAgJG5hbWVzcGFjZSA9ICRzZXJ2aWNlWyduYW1lc3BhY2UnXSA/PyAkaWQ7CiAgICAgICAgICAgICR0aGlzLT5yZWdpc3RlckNsYXNzZXMoJGRlZmluaXRpb24sICRuYW1lc3BhY2UsICRzZXJ2aWNlWydyZXNvdXJjZSddLCAkZXhjbHVkZSwgJGZpbGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5zZXREZWZpbml0aW9uKCRpZCwgJGRlZmluaXRpb24pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBXaGVuIGVycm9ycyBvY2N1cgogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQ2FsbGFibGUobWl4ZWQgJGNhbGxhYmxlLCBzdHJpbmcgJHBhcmFtZXRlciwgc3RyaW5nICRpZCwgc3RyaW5nICRmaWxlKTogc3RyaW5nfGFycmF5fFJlZmVyZW5jZQogICAgewogICAgICAgIGlmIChcaXNfc3RyaW5nKCRjYWxsYWJsZSkpIHsKICAgICAgICAgICAgaWYgKHN0cl9zdGFydHNfd2l0aCgkY2FsbGFibGUsICdAPScpKSB7CiAgICAgICAgICAgICAgICBpZiAoJ2ZhY3RvcnknICE9PSAkcGFyYW1ldGVyKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVXNpbmcgZXhwcmVzc2lvbnMgaW4gIiVzIiBmb3IgdGhlICIlcyIgc2VydmljZSBpcyBub3Qgc3VwcG9ydGVkIGluICIlcyIuJywgJHBhcmFtZXRlciwgJGlkLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoRXhwcmVzc2lvbjo6Y2xhc3MpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignVGhlICJAPSIgZXhwcmVzc2lvbiBzeW50YXggY2Fubm90IGJlIHVzZWQgd2l0aG91dCB0aGUgRXhwcmVzc2lvbkxhbmd1YWdlIGNvbXBvbmVudC4gVHJ5IHJ1bm5pbmcgImNvbXBvc2VyIHJlcXVpcmUgc3ltZm9ueS9leHByZXNzaW9uLWxhbmd1YWdlIi4nKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gJGNhbGxhYmxlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJycgIT09ICRjYWxsYWJsZSAmJiAnQCcgPT09ICRjYWxsYWJsZVswXSkgewogICAgICAgICAgICAgICAgaWYgKCFzdHJfY29udGFpbnMoJGNhbGxhYmxlLCAnOicpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFskdGhpcy0+cmVzb2x2ZVNlcnZpY2VzKCRjYWxsYWJsZSwgJGZpbGUpLCAnX19pbnZva2UnXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdUaGUgdmFsdWUgb2YgdGhlICIlcyIgb3B0aW9uIGZvciB0aGUgIiVzIiBzZXJ2aWNlIG11c3QgYmUgdGhlIGlkIG9mIHRoZSBzZXJ2aWNlIHdpdGhvdXQgdGhlICJAIiBwcmVmaXggKHJlcGxhY2UgIiVzIiB3aXRoICIlcyIgaW4gIiVzIikuJywgJHBhcmFtZXRlciwgJGlkLCAkY2FsbGFibGUsIHN1YnN0cigkY2FsbGFibGUsIDEpLCAkZmlsZSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJGNhbGxhYmxlOwogICAgICAgIH0KCiAgICAgICAgaWYgKFxpc19hcnJheSgkY2FsbGFibGUpKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkY2FsbGFibGVbMF0pICYmIGlzc2V0KCRjYWxsYWJsZVsxXSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBbJHRoaXMtPnJlc29sdmVTZXJ2aWNlcygkY2FsbGFibGVbMF0sICRmaWxlKSwgJGNhbGxhYmxlWzFdXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCdmYWN0b3J5JyA9PT0gJHBhcmFtZXRlciAmJiBpc3NldCgkY2FsbGFibGVbMV0pICYmIG51bGwgPT09ICRjYWxsYWJsZVswXSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRjYWxsYWJsZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignUGFyYW1ldGVyICIlcyIgbXVzdCBjb250YWluIGFuIGFycmF5IHdpdGggdHdvIGVsZW1lbnRzIGZvciBzZXJ2aWNlICIlcyIgaW4gIiVzIi4gQ2hlY2sgeW91ciBZQU1MIHN5bnRheC4nLCAkcGFyYW1ldGVyLCAkaWQsICRmaWxlKSk7CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdQYXJhbWV0ZXIgIiVzIiBtdXN0IGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IGZvciBzZXJ2aWNlICIlcyIgaW4gIiVzIi4gQ2hlY2sgeW91ciBZQU1MIHN5bnRheC4nLCAkcGFyYW1ldGVyLCAkaWQsICRmaWxlKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2FkcyBhIFlBTUwgZmlsZS4KICAgICAqCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIHRoZSBnaXZlbiBmaWxlIGlzIG5vdCBhIGxvY2FsIGZpbGUgb3Igd2hlbiBpdCBkb2VzIG5vdCBleGlzdAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbG9hZEZpbGUoc3RyaW5nICRmaWxlKTogP2FycmF5CiAgICB7CiAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoWWFtbFBhcnNlcjo6Y2xhc3MpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCdVbmFibGUgdG8gbG9hZCBZQU1MIGNvbmZpZyBmaWxlcyBhcyB0aGUgU3ltZm9ueSBZYW1sIENvbXBvbmVudCBpcyBub3QgaW5zdGFsbGVkLiBUcnkgcnVubmluZyAiY29tcG9zZXIgcmVxdWlyZSBzeW1mb255L3lhbWwiLicpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFzdHJlYW1faXNfbG9jYWwoJGZpbGUpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoaXMgaXMgbm90IGEgbG9jYWwgZmlsZSAiJXMiLicsICRmaWxlKSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoIWlzX2ZpbGUoJGZpbGUpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSBmaWxlICIlcyIgZG9lcyBub3QgZXhpc3QuJywgJGZpbGUpKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT55YW1sUGFyc2VyID8/PSBuZXcgWWFtbFBhcnNlcigpOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkY29uZmlndXJhdGlvbiA9ICR0aGlzLT55YW1sUGFyc2VyLT5wYXJzZUZpbGUoJGZpbGUsIFlhbWw6OlBBUlNFX0NPTlNUQU5UIHwgWWFtbDo6UEFSU0VfQ1VTVE9NX1RBR1MpOwogICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSBmaWxlICIlcyIgZG9lcyBub3QgY29udGFpbiB2YWxpZCBZQU1MOiAnLCAkZmlsZSkuJGUtPmdldE1lc3NhZ2UoKSwgMCwgJGUpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR0aGlzLT52YWxpZGF0ZSgkY29uZmlndXJhdGlvbiwgJGZpbGUpOwogICAgfQoKICAgIC8qKgogICAgICogVmFsaWRhdGVzIGEgWUFNTCBmaWxlLgogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIFdoZW4gc2VydmljZSBmaWxlIGlzIG5vdCB2YWxpZAogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlKG1peGVkICRjb250ZW50LCBzdHJpbmcgJGZpbGUpOiA/YXJyYXkKICAgIHsKICAgICAgICBpZiAobnVsbCA9PT0gJGNvbnRlbnQpIHsKICAgICAgICAgICAgcmV0dXJuICRjb250ZW50OwogICAgICAgIH0KCiAgICAgICAgaWYgKCFcaXNfYXJyYXkoJGNvbnRlbnQpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RoZSBzZXJ2aWNlIGZpbGUgIiVzIiBpcyBub3QgdmFsaWQuIEl0IHNob3VsZCBjb250YWluIGFuIGFycmF5LiBDaGVjayB5b3VyIFlBTUwgc3ludGF4LicsICRmaWxlKSk7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkY29udGVudCBhcyAkbmFtZXNwYWNlID0+ICRkYXRhKSB7CiAgICAgICAgICAgIGlmIChcaW5fYXJyYXkoJG5hbWVzcGFjZSwgWydpbXBvcnRzJywgJ3BhcmFtZXRlcnMnLCAnc2VydmljZXMnXSkgfHwgc3RyX3N0YXJ0c193aXRoKCRuYW1lc3BhY2UsICd3aGVuQCcpKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCEkdGhpcy0+Y29udGFpbmVyLT5oYXNFeHRlbnNpb24oJG5hbWVzcGFjZSkpIHsKICAgICAgICAgICAgICAgICRleHRlbnNpb25OYW1lc3BhY2VzID0gYXJyYXlfZmlsdGVyKGFycmF5X21hcChmbiAoRXh0ZW5zaW9uSW50ZXJmYWNlICRleHQpID0+ICRleHQtPmdldEFsaWFzKCksICR0aGlzLT5jb250YWluZXItPmdldEV4dGVuc2lvbnMoKSkpOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlcmUgaXMgbm8gZXh0ZW5zaW9uIGFibGUgdG8gbG9hZCB0aGUgY29uZmlndXJhdGlvbiBmb3IgIiVzIiAoaW4gIiVzIikuIExvb2tlZCBmb3IgbmFtZXNwYWNlICIlcyIsIGZvdW5kICIlcyIuJywgJG5hbWVzcGFjZSwgJGZpbGUsICRuYW1lc3BhY2UsICRleHRlbnNpb25OYW1lc3BhY2VzID8gXHNwcmludGYoJyIlcyInLCBpbXBsb2RlKCciLCAiJywgJGV4dGVuc2lvbk5hbWVzcGFjZXMpKSA6ICdub25lJykpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGNvbnRlbnQ7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiByZXNvbHZlU2VydmljZXMobWl4ZWQgJHZhbHVlLCBzdHJpbmcgJGZpbGUsIGJvb2wgJGlzUGFyYW1ldGVyID0gZmFsc2UpOiBtaXhlZAogICAgewogICAgICAgIGlmICgkdmFsdWUgaW5zdGFuY2VvZiBUYWdnZWRWYWx1ZSkgewogICAgICAgICAgICAkYXJndW1lbnQgPSAkdmFsdWUtPmdldFZhbHVlKCk7CgogICAgICAgICAgICBpZiAoJ2Nsb3N1cmUnID09PSAkdmFsdWUtPmdldFRhZygpKSB7CiAgICAgICAgICAgICAgICAkYXJndW1lbnQgPSAkdGhpcy0+cmVzb2x2ZVNlcnZpY2VzKCRhcmd1bWVudCwgJGZpbGUsICRpc1BhcmFtZXRlcik7CgogICAgICAgICAgICAgICAgcmV0dXJuIChuZXcgRGVmaW5pdGlvbignQ2xvc3VyZScpKQogICAgICAgICAgICAgICAgICAgIC0+c2V0RmFjdG9yeShbJ0Nsb3N1cmUnLCAnZnJvbUNhbGxhYmxlJ10pCiAgICAgICAgICAgICAgICAgICAgLT5hZGRBcmd1bWVudCgkYXJndW1lbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgnaXRlcmF0b3InID09PSAkdmFsdWUtPmdldFRhZygpKSB7CiAgICAgICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkYXJndW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignIiFpdGVyYXRvciIgdGFnIG9ubHkgYWNjZXB0cyBzZXF1ZW5jZXMgaW4gIiVzIi4nLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGFyZ3VtZW50ID0gJHRoaXMtPnJlc29sdmVTZXJ2aWNlcygkYXJndW1lbnQsICRmaWxlLCAkaXNQYXJhbWV0ZXIpOwoKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXRlcmF0b3JBcmd1bWVudCgkYXJndW1lbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgnc2VydmljZV9jbG9zdXJlJyA9PT0gJHZhbHVlLT5nZXRUYWcoKSkgewogICAgICAgICAgICAgICAgJGFyZ3VtZW50ID0gJHRoaXMtPnJlc29sdmVTZXJ2aWNlcygkYXJndW1lbnQsICRmaWxlLCAkaXNQYXJhbWV0ZXIpOwoKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2VydmljZUNsb3N1cmVBcmd1bWVudCgkYXJndW1lbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgnc2VydmljZV9sb2NhdG9yJyA9PT0gJHZhbHVlLT5nZXRUYWcoKSkgewogICAgICAgICAgICAgICAgaWYgKCFcaXNfYXJyYXkoJGFyZ3VtZW50KSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJyIhc2VydmljZV9sb2NhdG9yIiB0YWcgb25seSBhY2NlcHRzIG1hcHMgaW4gIiVzIi4nLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRhcmd1bWVudCA9ICR0aGlzLT5yZXNvbHZlU2VydmljZXMoJGFyZ3VtZW50LCAkZmlsZSwgJGlzUGFyYW1ldGVyKTsKCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ3VtZW50WzBdKSkgewogICAgICAgICAgICAgICAgICAgIHRyaWdnZXJfZGVwcmVjYXRpb24oJ3N5bWZvbnkvZGVwZW5kZW5jeS1pbmplY3Rpb24nLCAnNi4zJywgJ1VzaW5nIGludGVnZXJzIGFzIGtleXMgaW4gYSAiIXNlcnZpY2VfbG9jYXRvciIgdGFnIGlzIGRlcHJlY2F0ZWQuIFRoZSBrZXlzIHdpbGwgZGVmYXVsdCB0byB0aGUgSURzIG9mIHRoZSBvcmlnaW5hbCBzZXJ2aWNlcyBpbiA3LjAuJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXJ2aWNlTG9jYXRvckFyZ3VtZW50KCRhcmd1bWVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKFxpbl9hcnJheSgkdmFsdWUtPmdldFRhZygpLCBbJ3RhZ2dlZCcsICd0YWdnZWRfaXRlcmF0b3InLCAndGFnZ2VkX2xvY2F0b3InXSwgdHJ1ZSkpIHsKICAgICAgICAgICAgICAgICRmb3JMb2NhdG9yID0gJ3RhZ2dlZF9sb2NhdG9yJyA9PT0gJHZhbHVlLT5nZXRUYWcoKTsKCiAgICAgICAgICAgICAgICBpZiAoXGlzX2FycmF5KCRhcmd1bWVudCkgJiYgaXNzZXQoJGFyZ3VtZW50Wyd0YWcnXSkgJiYgJGFyZ3VtZW50Wyd0YWcnXSkgewogICAgICAgICAgICAgICAgICAgIGlmICgkZGlmZiA9IGFycmF5X2RpZmYoYXJyYXlfa2V5cygkYXJndW1lbnQpLCAkc3VwcG9ydGVkS2V5cyA9IFsndGFnJywgJ2luZGV4X2J5JywgJ2RlZmF1bHRfaW5kZXhfbWV0aG9kJywgJ2RlZmF1bHRfcHJpb3JpdHlfbWV0aG9kJywgJ2V4Y2x1ZGUnLCAnZXhjbHVkZV9zZWxmJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJyIhJXMiIHRhZyBjb250YWlucyB1bnN1cHBvcnRlZCBrZXkgIiVzIjsgc3VwcG9ydGVkIG9uZXMgYXJlICIlcyIuJywgJHZhbHVlLT5nZXRUYWcoKSwgaW1wbG9kZSgnIiwgIicsICRkaWZmKSwgaW1wbG9kZSgnIiwgIicsICRzdXBwb3J0ZWRLZXlzKSkpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50ID0gbmV3IFRhZ2dlZEl0ZXJhdG9yQXJndW1lbnQoJGFyZ3VtZW50Wyd0YWcnXSwgJGFyZ3VtZW50WydpbmRleF9ieSddID8/IG51bGwsICRhcmd1bWVudFsnZGVmYXVsdF9pbmRleF9tZXRob2QnXSA/PyBudWxsLCAkZm9yTG9jYXRvciwgJGFyZ3VtZW50WydkZWZhdWx0X3ByaW9yaXR5X21ldGhvZCddID8/IG51bGwsIChhcnJheSkgKCRhcmd1bWVudFsnZXhjbHVkZSddID8/IG51bGwpLCAkYXJndW1lbnRbJ2V4Y2x1ZGVfc2VsZiddID8/IHRydWUpOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKFxpc19zdHJpbmcoJGFyZ3VtZW50KSAmJiAkYXJndW1lbnQpIHsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnQgPSBuZXcgVGFnZ2VkSXRlcmF0b3JBcmd1bWVudCgkYXJndW1lbnQsIG51bGwsIG51bGwsICRmb3JMb2NhdG9yKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignIiElcyIgdGFncyBvbmx5IGFjY2VwdCBhIG5vbiBlbXB0eSBzdHJpbmcgb3IgYW4gYXJyYXkgd2l0aCBhIGtleSAidGFnIiBpbiAiJXMiLicsICR2YWx1ZS0+Z2V0VGFnKCksICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCRmb3JMb2NhdG9yKSB7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50ID0gbmV3IFNlcnZpY2VMb2NhdG9yQXJndW1lbnQoJGFyZ3VtZW50KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gJGFyZ3VtZW50OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgnc2VydmljZScgPT09ICR2YWx1ZS0+Z2V0VGFnKCkpIHsKICAgICAgICAgICAgICAgIGlmICgkaXNQYXJhbWV0ZXIpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdVc2luZyBhbiBhbm9ueW1vdXMgc2VydmljZSBpbiBhIHBhcmFtZXRlciBpcyBub3QgYWxsb3dlZCBpbiAiJXMiLicsICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGlzTG9hZGluZ0luc3RhbmNlb2YgPSAkdGhpcy0+aXNMb2FkaW5nSW5zdGFuY2VvZjsKICAgICAgICAgICAgICAgICR0aGlzLT5pc0xvYWRpbmdJbnN0YW5jZW9mID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkaW5zdGFuY2VvZiA9ICR0aGlzLT5pbnN0YW5jZW9mOwogICAgICAgICAgICAgICAgJHRoaXMtPmluc3RhbmNlb2YgPSBbXTsKCiAgICAgICAgICAgICAgICAkaWQgPSBcc3ByaW50ZignLiVkXyVzJywgKyskdGhpcy0+YW5vbnltb3VzU2VydmljZXNDb3VudCwgcHJlZ19yZXBsYWNlKCcvXi4qXFxcXC8nLCAnJywgJGFyZ3VtZW50WydjbGFzcyddID8/ICcnKS4kdGhpcy0+YW5vbnltb3VzU2VydmljZXNTdWZmaXgpOwogICAgICAgICAgICAgICAgJHRoaXMtPnBhcnNlRGVmaW5pdGlvbigkaWQsICRhcmd1bWVudCwgJGZpbGUsIFtdKTsKCiAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5jb250YWluZXItPmhhc0RlZmluaXRpb24oJGlkKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ0NyZWF0aW5nIGFuIGFsaWFzIHVzaW5nIHRoZSB0YWcgIiFzZXJ2aWNlIiBpcyBub3QgYWxsb3dlZCBpbiAiJXMiLicsICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPmNvbnRhaW5lci0+Z2V0RGVmaW5pdGlvbigkaWQpOwoKICAgICAgICAgICAgICAgICR0aGlzLT5pc0xvYWRpbmdJbnN0YW5jZW9mID0gJGlzTG9hZGluZ0luc3RhbmNlb2Y7CiAgICAgICAgICAgICAgICAkdGhpcy0+aW5zdGFuY2VvZiA9ICRpbnN0YW5jZW9mOwoKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVmZXJlbmNlKCRpZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCdhYnN0cmFjdCcgPT09ICR2YWx1ZS0+Z2V0VGFnKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQWJzdHJhY3RBcmd1bWVudCgkdmFsdWUtPmdldFZhbHVlKCkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdVbnN1cHBvcnRlZCB0YWcgIiElcyIuJywgJHZhbHVlLT5nZXRUYWcoKSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKFxpc19hcnJheSgkdmFsdWUpKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCR2YWx1ZSBhcyAkayA9PiAkdikgewogICAgICAgICAgICAgICAgJHZhbHVlWyRrXSA9ICR0aGlzLT5yZXNvbHZlU2VydmljZXMoJHYsICRmaWxlLCAkaXNQYXJhbWV0ZXIpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlaWYgKFxpc19zdHJpbmcoJHZhbHVlKSAmJiBzdHJfc3RhcnRzX3dpdGgoJHZhbHVlLCAnQD0nKSkgewogICAgICAgICAgICBpZiAoJGlzUGFyYW1ldGVyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdVc2luZyBleHByZXNzaW9ucyBpbiBwYXJhbWV0ZXJzIGlzIG5vdCBhbGxvd2VkIGluICIlcyIuJywgJGZpbGUpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoRXhwcmVzc2lvbjo6Y2xhc3MpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgIkA9IiBleHByZXNzaW9uIHN5bnRheCBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IHRoZSBFeHByZXNzaW9uTGFuZ3VhZ2UgY29tcG9uZW50LiBUcnkgcnVubmluZyAiY29tcG9zZXIgcmVxdWlyZSBzeW1mb255L2V4cHJlc3Npb24tbGFuZ3VhZ2UiLicpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbmV3IEV4cHJlc3Npb24oc3Vic3RyKCR2YWx1ZSwgMikpOwogICAgICAgIH0gZWxzZWlmIChcaXNfc3RyaW5nKCR2YWx1ZSkgJiYgc3RyX3N0YXJ0c193aXRoKCR2YWx1ZSwgJ0AnKSkgewogICAgICAgICAgICBpZiAoc3RyX3N0YXJ0c193aXRoKCR2YWx1ZSwgJ0BAJykpIHsKICAgICAgICAgICAgICAgICR2YWx1ZSA9IHN1YnN0cigkdmFsdWUsIDEpOwogICAgICAgICAgICAgICAgJGludmFsaWRCZWhhdmlvciA9IG51bGw7CiAgICAgICAgICAgIH0gZWxzZWlmIChzdHJfc3RhcnRzX3dpdGgoJHZhbHVlLCAnQCEnKSkgewogICAgICAgICAgICAgICAgJHZhbHVlID0gc3Vic3RyKCR2YWx1ZSwgMik7CiAgICAgICAgICAgICAgICAkaW52YWxpZEJlaGF2aW9yID0gQ29udGFpbmVySW50ZXJmYWNlOjpJR05PUkVfT05fVU5JTklUSUFMSVpFRF9SRUZFUkVOQ0U7CiAgICAgICAgICAgIH0gZWxzZWlmIChzdHJfc3RhcnRzX3dpdGgoJHZhbHVlLCAnQD8nKSkgewogICAgICAgICAgICAgICAgJHZhbHVlID0gc3Vic3RyKCR2YWx1ZSwgMik7CiAgICAgICAgICAgICAgICAkaW52YWxpZEJlaGF2aW9yID0gQ29udGFpbmVySW50ZXJmYWNlOjpJR05PUkVfT05fSU5WQUxJRF9SRUZFUkVOQ0U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdWJzdHIoJHZhbHVlLCAxKTsKICAgICAgICAgICAgICAgICRpbnZhbGlkQmVoYXZpb3IgPSBDb250YWluZXJJbnRlcmZhY2U6OkVYQ0VQVElPTl9PTl9JTlZBTElEX1JFRkVSRU5DRTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKG51bGwgIT09ICRpbnZhbGlkQmVoYXZpb3IpIHsKICAgICAgICAgICAgICAgICR2YWx1ZSA9IG5ldyBSZWZlcmVuY2UoJHZhbHVlLCAkaW52YWxpZEJlaGF2aW9yKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGxvYWRGcm9tRXh0ZW5zaW9ucyhhcnJheSAkY29udGVudCk6IHZvaWQKICAgIHsKICAgICAgICBmb3JlYWNoICgkY29udGVudCBhcyAkbmFtZXNwYWNlID0+ICR2YWx1ZXMpIHsKICAgICAgICAgICAgaWYgKFxpbl9hcnJheSgkbmFtZXNwYWNlLCBbJ2ltcG9ydHMnLCAncGFyYW1ldGVycycsICdzZXJ2aWNlcyddKSB8fCBzdHJfc3RhcnRzX3dpdGgoJG5hbWVzcGFjZSwgJ3doZW5AJykpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIVxpc19hcnJheSgkdmFsdWVzKSAmJiBudWxsICE9PSAkdmFsdWVzKSB7CiAgICAgICAgICAgICAgICAkdmFsdWVzID0gW107CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0aGlzLT5jb250YWluZXItPmxvYWRGcm9tRXh0ZW5zaW9uKCRuYW1lc3BhY2UsICR2YWx1ZXMpOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGNoZWNrRGVmaW5pdGlvbihzdHJpbmcgJGlkLCBhcnJheSAkZGVmaW5pdGlvbiwgc3RyaW5nICRmaWxlKTogdm9pZAogICAgewogICAgICAgIGlmICgkdGhpcy0+aXNMb2FkaW5nSW5zdGFuY2VvZikgewogICAgICAgICAgICAka2V5d29yZHMgPSBzZWxmOjpJTlNUQU5DRU9GX0tFWVdPUkRTOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkZGVmaW5pdGlvblsncmVzb3VyY2UnXSkgfHwgaXNzZXQoJGRlZmluaXRpb25bJ25hbWVzcGFjZSddKSkgewogICAgICAgICAgICAka2V5d29yZHMgPSBzZWxmOjpQUk9UT1RZUEVfS0VZV09SRFM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGtleXdvcmRzID0gc2VsZjo6U0VSVklDRV9LRVlXT1JEUzsKICAgICAgICB9CgogICAgICAgIGZvcmVhY2ggKCRkZWZpbml0aW9uIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIGlmICghaXNzZXQoJGtleXdvcmRzWyRrZXldKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlIGNvbmZpZ3VyYXRpb24ga2V5ICIlcyIgaXMgdW5zdXBwb3J0ZWQgZm9yIGRlZmluaXRpb24gIiVzIiBpbiAiJXMiLiBBbGxvd2VkIGNvbmZpZ3VyYXRpb24ga2V5cyBhcmUgIiVzIi4nLCAka2V5LCAkaWQsICRmaWxlLCBpbXBsb2RlKCciLCAiJywgJGtleXdvcmRzKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gdmFsaWRhdGVBdHRyaWJ1dGVzKHN0cmluZyAkbWVzc2FnZSwgYXJyYXkgJGF0dHJpYnV0ZXMsIGFycmF5ICRwYXRoID0gW10pOiB2b2lkCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJGF0dHJpYnV0ZXMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChcaXNfYXJyYXkoJHZhbHVlKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlQXR0cmlidXRlcygkbWVzc2FnZSwgJHZhbHVlLCBbLi4uJHBhdGgsICRuYW1lXSk7CiAgICAgICAgICAgIH0gZWxzZWlmICghXGlzX3NjYWxhcigkdmFsdWUgPz8gJycpKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9IGltcGxvZGUoJy4nLCBbLi4uJHBhdGgsICRuYW1lXSk7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCRtZXNzYWdlLCAkbmFtZSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";