1778692667
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A1d3fafcf3024f0b917e3c523fab0148d-b06e0a3bc53214998cb6fbc66fdf4f40
s:20192:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE1OiJWYXJFeHBvcnRlci5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjMwOiJcU3ltZm9ueVxDb21wb25lbnRcVmFyRXhwb3J0ZXIiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMDoiXFN5bWZvbnlcQ29tcG9uZW50XFZhckV4cG9ydGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6IlZhckV4cG9ydGVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NDI6IlxTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlclxWYXJFeHBvcnRlciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjE1OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjE6e3M6NTI6IlxTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlclxWYXJFeHBvcnRlcjo6ZXhwb3J0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToidmFsdWUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTM6ImlzU3RhdGljVmFsdWUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjoxO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTI6ImZvdW5kQ2xhc3NlcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6MjoiW10iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MDp7fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjoxO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTQxMzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzYzNjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlclxWYXJFeHBvcnRlcjo6ZXhwb3J0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJleHBvcnQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NToiRXhwb3J0cyBhIHNlcmlhbGl6YWJsZSBQSFAgdmFsdWUgdG8gUEhQIGNvZGUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3NjoiU2V0IHRvIHRydWUgYWZ0ZXIgZXhlY3V0aW9uIGlmIHRoZSBwcm92aWRlZCB2YWx1ZSBpcyBzdGF0aWMsIGZhbHNlIG90aGVyd2lzZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTM6ImlzU3RhdGljVmFsdWUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjE7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3MzoiQ2xhc3NlcyBmb3VuZCBpbiB0aGUgdmFsdWUgYXJlIGFkZGVkIHRvIHRoaXMgbGlzdCBhcyBib3RoIGtleXMgYW5kIHZhbHVlcyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDbGFzc1N0cmluZyI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDbGFzc1N0cmluZwBmcXNlbiI7Tjt9czoxMDoiACoAa2V5VHlwZSI7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENsYXNzU3RyaW5nIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENsYXNzU3RyaW5nAGZxc2VuIjtOO31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMjoiZm91bmRDbGFzc2VzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjoxO31pOjI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NDoiV2hlbiB0aGUgcHJvdmlkZWQgdmFsdWUgY2Fubm90IGJlIHNlcmlhbGl6ZWQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcU3ltZm9ueVxDb21wb25lbnRcVmFyRXhwb3J0ZXJcRXhjZXB0aW9uXEV4Y2VwdGlvbkludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJFeGNlcHRpb25JbnRlcmZhY2UiO319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI5OiJTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6NTp7czoxODoiRXhjZXB0aW9uSW50ZXJmYWNlIjtzOjU4OiJTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlclxFeGNlcHRpb25cRXhjZXB0aW9uSW50ZXJmYWNlIjtzOjg6IkV4cG9ydGVyIjtzOjQ3OiJTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlclxJbnRlcm5hbFxFeHBvcnRlciI7czo4OiJIeWRyYXRvciI7czo0NzoiU3ltZm9ueVxDb21wb25lbnRcVmFyRXhwb3J0ZXJcSW50ZXJuYWxcSHlkcmF0b3IiO3M6ODoiUmVnaXN0cnkiO3M6NDc6IlN5bWZvbnlcQ29tcG9uZW50XFZhckV4cG9ydGVyXEludGVybmFsXFJlZ2lzdHJ5IjtzOjY6IlZhbHVlcyI7czo0NToiU3ltZm9ueVxDb21wb25lbnRcVmFyRXhwb3J0ZXJcSW50ZXJuYWxcVmFsdWVzIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjoxO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlclxWYXJFeHBvcnRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJWYXJFeHBvcnRlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDQ6IkV4cG9ydHMgc2VyaWFsaXphYmxlIFBIUCB2YWx1ZXMgdG8gUEhQIGNvZGUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI3MToiVmFyRXhwb3J0ZXIgYWxsb3dzIHNlcmlhbGl6aW5nIFBIUCBkYXRhIHN0cnVjdHVyZXMgdG8gcGxhaW4gUEhQIGNvZGUgKGxpa2UgdmFyX2V4cG9ydCgpKQp3aGlsZSBwcmVzZXJ2aW5nIGFsbCB0aGUgc2VtYW50aWNzIGFzc29jaWF0ZWQgd2l0aCBzZXJpYWxpemUoKSAodW5saWtlIHZhcl9leHBvcnQoKSkuCgpCeSBsZXZlcmFnaW5nIE9QY2FjaGUsIHRoZSBnZW5lcmF0ZWQgUEhQIGNvZGUgaXMgZmFzdGVyIHRoYW4gZG9pbmcgdGhlIHNhbWUgd2l0aCB1bnNlcmlhbGl6ZSgpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxNDoiTmljb2xhcyBHcmVrYXMiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MTM6InBAdGNod29yay5jb20iO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwMztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImIwNmUwYTNiYzUzMjE0OTk4Y2I2ZmJjNjZmZGY0ZjQwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDM6InZlbmRvci9zeW1mb255L3Zhci1leHBvcnRlci9WYXJFeHBvcnRlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjM2NDA6Ijw/cGhwCgovKgogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgU3ltZm9ueSBwYWNrYWdlLgogKgogKiAoYykgRmFiaWVuIFBvdGVuY2llciA8ZmFiaWVuQHN5bWZvbnkuY29tPgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICovCgpuYW1lc3BhY2UgU3ltZm9ueVxDb21wb25lbnRcVmFyRXhwb3J0ZXI7Cgp1c2UgU3ltZm9ueVxDb21wb25lbnRcVmFyRXhwb3J0ZXJcRXhjZXB0aW9uXEV4Y2VwdGlvbkludGVyZmFjZTsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFZhckV4cG9ydGVyXEludGVybmFsXEV4cG9ydGVyOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcVmFyRXhwb3J0ZXJcSW50ZXJuYWxcSHlkcmF0b3I7CnVzZSBTeW1mb255XENvbXBvbmVudFxWYXJFeHBvcnRlclxJbnRlcm5hbFxSZWdpc3RyeTsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFZhckV4cG9ydGVyXEludGVybmFsXFZhbHVlczsKCi8qKgogKiBFeHBvcnRzIHNlcmlhbGl6YWJsZSBQSFAgdmFsdWVzIHRvIFBIUCBjb2RlLgogKgogKiBWYXJFeHBvcnRlciBhbGxvd3Mgc2VyaWFsaXppbmcgUEhQIGRhdGEgc3RydWN0dXJlcyB0byBwbGFpbiBQSFAgY29kZSAobGlrZSB2YXJfZXhwb3J0KCkpCiAqIHdoaWxlIHByZXNlcnZpbmcgYWxsIHRoZSBzZW1hbnRpY3MgYXNzb2NpYXRlZCB3aXRoIHNlcmlhbGl6ZSgpICh1bmxpa2UgdmFyX2V4cG9ydCgpKS4KICoKICogQnkgbGV2ZXJhZ2luZyBPUGNhY2hlLCB0aGUgZ2VuZXJhdGVkIFBIUCBjb2RlIGlzIGZhc3RlciB0aGFuIGRvaW5nIHRoZSBzYW1lIHdpdGggdW5zZXJpYWxpemUoKS4KICoKICogQGF1dGhvciBOaWNvbGFzIEdyZWthcyA8cEB0Y2h3b3JrLmNvbT4KICovCmZpbmFsIGNsYXNzIFZhckV4cG9ydGVyCnsKICAgIC8qKgogICAgICogRXhwb3J0cyBhIHNlcmlhbGl6YWJsZSBQSFAgdmFsdWUgdG8gUEhQIGNvZGUuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJGlzU3RhdGljVmFsdWUgU2V0IHRvIHRydWUgYWZ0ZXIgZXhlY3V0aW9uIGlmIHRoZSBwcm92aWRlZCB2YWx1ZSBpcyBzdGF0aWMsIGZhbHNlIG90aGVyd2lzZQogICAgICogQHBhcmFtIGFycmF5PGNsYXNzLXN0cmluZywgY2xhc3Mtc3RyaW5nPiAmJGZvdW5kQ2xhc3NlcyAgQ2xhc3NlcyBmb3VuZCBpbiB0aGUgdmFsdWUgYXJlIGFkZGVkIHRvIHRoaXMgbGlzdCBhcyBib3RoIGtleXMgYW5kIHZhbHVlcwogICAgICoKICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uSW50ZXJmYWNlIFdoZW4gdGhlIHByb3ZpZGVkIHZhbHVlIGNhbm5vdCBiZSBzZXJpYWxpemVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZXhwb3J0KG1peGVkICR2YWx1ZSwgP2Jvb2wgJiRpc1N0YXRpY1ZhbHVlID0gbnVsbCwgYXJyYXkgJiRmb3VuZENsYXNzZXMgPSBbXSk6IHN0cmluZwogICAgewogICAgICAgICRpc1N0YXRpY1ZhbHVlID0gdHJ1ZTsKCiAgICAgICAgaWYgKCFcaXNfb2JqZWN0KCR2YWx1ZSkgJiYgIShcaXNfYXJyYXkoJHZhbHVlKSAmJiAkdmFsdWUpICYmICFcaXNfcmVzb3VyY2UoJHZhbHVlKSB8fCAkdmFsdWUgaW5zdGFuY2VvZiBcVW5pdEVudW0pIHsKICAgICAgICAgICAgcmV0dXJuIEV4cG9ydGVyOjpleHBvcnQoJHZhbHVlKTsKICAgICAgICB9CgogICAgICAgICRvYmplY3RzUG9vbCA9IG5ldyBcU3BsT2JqZWN0U3RvcmFnZSgpOwogICAgICAgICRyZWZzUG9vbCA9IFtdOwogICAgICAgICRvYmplY3RzQ291bnQgPSAwOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkdmFsdWUgPSBFeHBvcnRlcjo6cHJlcGFyZShbJHZhbHVlXSwgJG9iamVjdHNQb29sLCAkcmVmc1Bvb2wsICRvYmplY3RzQ291bnQsICRpc1N0YXRpY1ZhbHVlKVswXTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAkcmVmZXJlbmNlcyA9IFtdOwogICAgICAgICAgICBmb3JlYWNoICgkcmVmc1Bvb2wgYXMgJGkgPT4gJHYpIHsKICAgICAgICAgICAgICAgIGlmICgkdlswXS0+Y291bnQpIHsKICAgICAgICAgICAgICAgICAgICAkcmVmZXJlbmNlc1sxICsgJGldID0gJHZbMl07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdlswXSA9ICR2WzFdOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJGlzU3RhdGljVmFsdWUpIHsKICAgICAgICAgICAgcmV0dXJuIEV4cG9ydGVyOjpleHBvcnQoJHZhbHVlKTsKICAgICAgICB9CgogICAgICAgICRjbGFzc2VzID0gW107CiAgICAgICAgJHZhbHVlcyA9IFtdOwogICAgICAgICRzdGF0ZXMgPSBbXTsKICAgICAgICBmb3JlYWNoICgkb2JqZWN0c1Bvb2wgYXMgJGkgPT4gJHYpIHsKICAgICAgICAgICAgWywgJGNsYXNzLCAkdmFsdWVzW10sICR3YWtldXBdID0gJG9iamVjdHNQb29sWyR2XTsKICAgICAgICAgICAgJGZvdW5kQ2xhc3Nlc1skY2xhc3NdID0gJGNsYXNzZXNbXSA9ICRjbGFzczsKCiAgICAgICAgICAgIGlmICgwIDwgJHdha2V1cCkgewogICAgICAgICAgICAgICAgJHN0YXRlc1skd2FrZXVwXSA9ICRpOwogICAgICAgICAgICB9IGVsc2VpZiAoMCA+ICR3YWtldXApIHsKICAgICAgICAgICAgICAgICRzdGF0ZXNbLSR3YWtldXBdID0gWyRpLCBhcnJheV9wb3AoJHZhbHVlcyldOwogICAgICAgICAgICAgICAgJHZhbHVlc1tdID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAga3NvcnQoJHN0YXRlcyk7CgogICAgICAgICR3YWtldXBzID0gW251bGxdOwogICAgICAgIGZvcmVhY2ggKCRzdGF0ZXMgYXMgJHYpIHsKICAgICAgICAgICAgaWYgKFxpc19hcnJheSgkdikpIHsKICAgICAgICAgICAgICAgICR3YWtldXBzWy0kdlswXV0gPSAkdlsxXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR3YWtldXBzW10gPSAkdjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKG51bGwgPT09ICR3YWtldXBzWzBdKSB7CiAgICAgICAgICAgIHVuc2V0KCR3YWtldXBzWzBdKTsKICAgICAgICB9CgogICAgICAgICRwcm9wZXJ0aWVzID0gW107CiAgICAgICAgZm9yZWFjaCAoJHZhbHVlcyBhcyAkaSA9PiAkdmFycykgewogICAgICAgICAgICBmb3JlYWNoICgkdmFycyBhcyAkY2xhc3MgPT4gJHZhbHVlcykgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHZhbHVlcyBhcyAkbmFtZSA9PiAkdikgewogICAgICAgICAgICAgICAgICAgICRwcm9wZXJ0aWVzWyRjbGFzc11bJG5hbWVdWyRpXSA9ICR2OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJGNsYXNzZXMgfHwgJHJlZmVyZW5jZXMpIHsKICAgICAgICAgICAgJHZhbHVlID0gbmV3IEh5ZHJhdG9yKG5ldyBSZWdpc3RyeSgkY2xhc3NlcyksICRyZWZlcmVuY2VzID8gbmV3IFZhbHVlcygkcmVmZXJlbmNlcykgOiBudWxsLCAkcHJvcGVydGllcywgJHZhbHVlLCAkd2FrZXVwcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGlzU3RhdGljVmFsdWUgPSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIEV4cG9ydGVyOjpleHBvcnQoJHZhbHVlKTsKICAgIH0KfQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";