1778692666
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Ae7892a2158fedc284303a25a5b03cf16-7a66526fc16dc354ea84db2e87255711
s:15332:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI2OiJSZWZsZWN0aW9uVHlwZVJlc29sdmVyLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6NDA6IlxTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xUeXBlUmVzb2x2ZXIiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXFN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGVSZXNvbHZlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJUeXBlUmVzb2x2ZXIiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo2MzoiXFN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGVSZXNvbHZlclxSZWZsZWN0aW9uVHlwZVJlc29sdmVyIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6NjI6IlxTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xUeXBlUmVzb2x2ZXJcVHlwZVJlc29sdmVySW50ZXJmYWNlIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjI6IlxTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xUeXBlUmVzb2x2ZXJcVHlwZVJlc29sdmVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjE6IlR5cGVSZXNvbHZlckludGVyZmFjZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MTp7czo3NDoiXFN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGVSZXNvbHZlclxSZWZsZWN0aW9uVHlwZVJlc29sdmVyOjpyZXNvbHZlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoic3ViamVjdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcU3ltZm9ueVxDb21wb25lbnRcVHlwZUluZm9cVHlwZUNvbnRleHRcVHlwZUNvbnRleHQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiVHlwZUNvbnRleHQiO319fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTE6InR5cGVDb250ZXh0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MTp7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjc5ODt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMjU1O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcU3ltZm9ueVxDb21wb25lbnRcVHlwZUluZm9cVHlwZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IlR5cGUiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzQ6IlxTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xUeXBlUmVzb2x2ZXJcUmVmbGVjdGlvblR5cGVSZXNvbHZlcjo6cmVzb2x2ZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoicmVzb2x2ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MzoiXFN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGVSZXNvbHZlclxSZWZsZWN0aW9uVHlwZVJlc29sdmVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjI6IlJlZmxlY3Rpb25UeXBlUmVzb2x2ZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQyOiJSZXNvbHZlcyB0eXBlIGZvciBhIGdpdmVuIHR5cGUgcmVmbGVjdGlvbi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czoxNDoiACoAZGVzY3JpcHRpb24iO047czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjE0OiJNYXRoaWFzIEFybGF1ZCI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyNDoibWF0aGlhcy5hcmxhdWRAZ21haWwuY29tIjt9aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czoxNDoiACoAZGVzY3JpcHRpb24iO047czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjE0OiJCYXB0aXN0ZSBMZWR1YyI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyNDoiYmFwdGlzdGUubGVkdWNAZ21haWwuY29tIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGVSZXNvbHZlciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6NTp7czoyNDoiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjtzOjYxOiJTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xFeGNlcHRpb25cSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjtzOjIwOiJVbnN1cHBvcnRlZEV4Y2VwdGlvbiI7czo1NzoiU3ltZm9ueVxDb21wb25lbnRcVHlwZUluZm9cRXhjZXB0aW9uXFVuc3VwcG9ydGVkRXhjZXB0aW9uIjtzOjQ6IlR5cGUiO3M6MzE6IlN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGUiO3M6MTE6IlR5cGVDb250ZXh0IjtzOjUwOiJTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xUeXBlQ29udGV4dFxUeXBlQ29udGV4dCI7czoxNDoiVHlwZUlkZW50aWZpZXIiO3M6NDE6IlN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGVJZGVudGlmaWVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcmVhZE9ubHkiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiN2E2NjUyNmZjMTZkYzM1NGVhODRkYjJlODcyNTU3MTEiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo2NDoidmVuZG9yL3N5bWZvbnkvdHlwZS1pbmZvL1R5cGVSZXNvbHZlci9SZWZsZWN0aW9uVHlwZVJlc29sdmVyLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MzI1OToiPD9waHAKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBTeW1mb255IHBhY2thZ2UuCiAqCiAqIChjKSBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+CiAqCiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgogKi8KCm5hbWVzcGFjZSBTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xUeXBlUmVzb2x2ZXI7Cgp1c2UgU3ltZm9ueVxDb21wb25lbnRcVHlwZUluZm9cRXhjZXB0aW9uXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXEV4Y2VwdGlvblxVbnN1cHBvcnRlZEV4Y2VwdGlvbjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGU7CnVzZSBTeW1mb255XENvbXBvbmVudFxUeXBlSW5mb1xUeXBlQ29udGV4dFxUeXBlQ29udGV4dDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XFR5cGVJbmZvXFR5cGVJZGVudGlmaWVyOwoKLyoqCiAqIFJlc29sdmVzIHR5cGUgZm9yIGEgZ2l2ZW4gdHlwZSByZWZsZWN0aW9uLgogKgogKiBAYXV0aG9yIE1hdGhpYXMgQXJsYXVkIDxtYXRoaWFzLmFybGF1ZEBnbWFpbC5jb20+CiAqIEBhdXRob3IgQmFwdGlzdGUgTGVkdWMgPGJhcHRpc3RlLmxlZHVjQGdtYWlsLmNvbT4KICovCmZpbmFsIGNsYXNzIFJlZmxlY3Rpb25UeXBlUmVzb2x2ZXIgaW1wbGVtZW50cyBUeXBlUmVzb2x2ZXJJbnRlcmZhY2UKewogICAgcHVibGljIGZ1bmN0aW9uIHJlc29sdmUobWl4ZWQgJHN1YmplY3QsID9UeXBlQ29udGV4dCAkdHlwZUNvbnRleHQgPSBudWxsKTogVHlwZQogICAgewogICAgICAgIGlmICgkc3ViamVjdCBpbnN0YW5jZW9mIFxSZWZsZWN0aW9uVW5pb25UeXBlKSB7CiAgICAgICAgICAgIHJldHVybiBUeXBlOjp1bmlvbiguLi5hcnJheV9tYXAoZm4gKG1peGVkICR0KTogVHlwZSA9PiAkdGhpcy0+cmVzb2x2ZSgkdCwgJHR5cGVDb250ZXh0KSwgJHN1YmplY3QtPmdldFR5cGVzKCkpKTsKICAgICAgICB9CgogICAgICAgIGlmICgkc3ViamVjdCBpbnN0YW5jZW9mIFxSZWZsZWN0aW9uSW50ZXJzZWN0aW9uVHlwZSkgewogICAgICAgICAgICByZXR1cm4gVHlwZTo6aW50ZXJzZWN0aW9uKC4uLmFycmF5X21hcChmbiAobWl4ZWQgJHQpOiBUeXBlID0+ICR0aGlzLT5yZXNvbHZlKCR0LCAkdHlwZUNvbnRleHQpLCAkc3ViamVjdC0+Z2V0VHlwZXMoKSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkc3ViamVjdCBpbnN0YW5jZW9mIFxSZWZsZWN0aW9uTmFtZWRUeXBlKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEV4Y2VwdGlvbihcc3ByaW50ZignRXhwZWN0ZWQgc3ViamVjdCB0byBiZSBhICJSZWZsZWN0aW9uTmFtZWRUeXBlIiwgYSAiUmVmbGVjdGlvblVuaW9uVHlwZSIgb3IgYSAiUmVmbGVjdGlvbkludGVyc2VjdGlvblR5cGUiLCAiJXMiIGdpdmVuLicsIGdldF9kZWJ1Z190eXBlKCRzdWJqZWN0KSksICRzdWJqZWN0KTsKICAgICAgICB9CgogICAgICAgICRpZGVudGlmaWVyID0gJHN1YmplY3QtPmdldE5hbWUoKTsKICAgICAgICAkbnVsbGFibGUgPSAkc3ViamVjdC0+YWxsb3dzTnVsbCgpOwoKICAgICAgICBpZiAoVHlwZUlkZW50aWZpZXI6OkFSUkFZLT52YWx1ZSA9PT0gJGlkZW50aWZpZXIpIHsKICAgICAgICAgICAgJHR5cGUgPSBUeXBlOjphcnJheSgpOwoKICAgICAgICAgICAgcmV0dXJuICRudWxsYWJsZSA/IFR5cGU6Om51bGxhYmxlKCR0eXBlKSA6ICR0eXBlOwogICAgICAgIH0KCiAgICAgICAgaWYgKFR5cGVJZGVudGlmaWVyOjpJVEVSQUJMRS0+dmFsdWUgPT09ICRpZGVudGlmaWVyKSB7CiAgICAgICAgICAgICR0eXBlID0gVHlwZTo6aXRlcmFibGUoKTsKCiAgICAgICAgICAgIHJldHVybiAkbnVsbGFibGUgPyBUeXBlOjpudWxsYWJsZSgkdHlwZSkgOiAkdHlwZTsKICAgICAgICB9CgogICAgICAgIGlmIChUeXBlSWRlbnRpZmllcjo6TlVMTC0+dmFsdWUgPT09ICRpZGVudGlmaWVyIHx8IFR5cGVJZGVudGlmaWVyOjpNSVhFRC0+dmFsdWUgPT09ICRpZGVudGlmaWVyKSB7CiAgICAgICAgICAgIHJldHVybiBUeXBlOjpidWlsdGluKCRpZGVudGlmaWVyKTsKICAgICAgICB9CgogICAgICAgIGlmICgkc3ViamVjdC0+aXNCdWlsdGluKCkpIHsKICAgICAgICAgICAgJHR5cGUgPSBUeXBlOjpidWlsdGluKFR5cGVJZGVudGlmaWVyOjpmcm9tKCRpZGVudGlmaWVyKSk7CgogICAgICAgICAgICByZXR1cm4gJG51bGxhYmxlID8gVHlwZTo6bnVsbGFibGUoJHR5cGUpIDogJHR5cGU7CiAgICAgICAgfQoKICAgICAgICBpZiAoXGluX2FycmF5KHN0cnRvbG93ZXIoJGlkZW50aWZpZXIpLCBbJ3NlbGYnLCAnc3RhdGljJywgJ3BhcmVudCddLCB0cnVlKSAmJiAhJHR5cGVDb250ZXh0KSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ0EgIiVzIiBtdXN0IGJlIHByb3ZpZGVkIHRvIHJlc29sdmUgIiVzIi4nLCBUeXBlQ29udGV4dDo6Y2xhc3MsIHN0cnRvbG93ZXIoJGlkZW50aWZpZXIpKSk7CiAgICAgICAgfQoKICAgICAgICAvKiogQHZhciBjbGFzcy1zdHJpbmcgJGNsYXNzTmFtZSAqLwogICAgICAgICRjbGFzc05hbWUgPSBtYXRjaCAodHJ1ZSkgewogICAgICAgICAgICAnc2VsZicgPT09IHN0cnRvbG93ZXIoJGlkZW50aWZpZXIpID0+ICR0eXBlQ29udGV4dC0+Z2V0RGVjbGFyaW5nQ2xhc3MoKSwKICAgICAgICAgICAgJ3N0YXRpYycgPT09IHN0cnRvbG93ZXIoJGlkZW50aWZpZXIpID0+ICR0eXBlQ29udGV4dC0+Z2V0Q2FsbGVkQ2xhc3MoKSwKICAgICAgICAgICAgJ3BhcmVudCcgPT09IHN0cnRvbG93ZXIoJGlkZW50aWZpZXIpID0+ICR0eXBlQ29udGV4dC0+Z2V0UGFyZW50Q2xhc3MoKSwKICAgICAgICAgICAgZGVmYXVsdCA9PiAkaWRlbnRpZmllciwKICAgICAgICB9OwoKICAgICAgICBpZiAoaXNfc3ViY2xhc3Nfb2YoJGNsYXNzTmFtZSwgXFVuaXRFbnVtOjpjbGFzcykgJiYgIWludGVyZmFjZV9leGlzdHMoJGNsYXNzTmFtZSkpIHsKICAgICAgICAgICAgJHR5cGUgPSBUeXBlOjplbnVtKCRjbGFzc05hbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0eXBlID0gVHlwZTo6b2JqZWN0KCRjbGFzc05hbWUpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRudWxsYWJsZSA/IFR5cGU6Om51bGxhYmxlKCR0eXBlKSA6ICR0eXBlOwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";