1789595936
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3A9b12e48fce0d155f163e04b1a71d901e-fc377608ba9977085a66fde64375608c
s:7984:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjExOiJwZXNhZGFzLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJmYzM3NzYwOGJhOTk3NzA4NWE2NmZkZTY0Mzc1NjA4YyI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjM2OiJiYWNrZW5kL2FwaS92MnBnZ3AvcnV0YXMvcGVzYWRhcy5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjM4ODY6Ijw/cGhwDQoNCi8qKg0KICogUnV0YXMgZGUgUEVTQURBUyB5IFRSQVNJRUdPUEVTQURBUy4NCiAqDQogKiBAcGFja2FnZSB0cmFja2luZ1xiYWNrZW5kXGFwaVx2MlxydXRhcw0KICovDQoNCnJldHVybiBbDQogICAgJ2xvYWRfcGVzYWRhcycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclBlc2FkYTo6Z2V0TGlzdGFkbygNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkcywNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0KCdkZXNkZScpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ2hhc3RhJykNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvdHJhc2llZ29wZXNhZGEnDQogICAgKSwNCg0KICAgICdnZXRfcmFuZ29fZmVjaGFzX3Blc2FkYScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclBlc2FkYTo6Z2V0RmVjaGFSYW5nbygNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkcywNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvdHJhc2llZ29wZXNhZGEnDQogICAgKSwNCg0KICAgICdnZXRfZmlsdHJvc19wZXNhZGEnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JQZXNhZGE6OmdldEZpbHRyb3MoJGN0eC0+Y29uZXhpb25JZHMpKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL3RyYXNpZWdvcGVzYWRhJw0KICAgICksDQoNCiAgICAnZ2V0X3JlbmRpbWllbnRvX3Blc2FkYScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJHRpY2tldCA9ICRjdHgtPnBvc3RJbnQoJ2lkJyk7DQogICAgICAgICAgICBpZiAoISR0aWNrZXQpIFJlc3B1ZXN0YTo6ZXJyb3IoJ0ZhbHRhbiBkYXRvcycsIDQwMCk7DQoNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JQZXNhZGE6OmdldFJlbmRpbWllbnRvKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uKCksDQogICAgICAgICAgICAgICAgJHRpY2tldCwNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvdHJhc2llZ29wZXNhZGEnDQogICAgKSwNCg0KICAgICdpbnRyb2R1Y2lyX3JlbmRpbWllbnRvX3Blc2FkYScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGlkID0gJGN0eC0+cG9zdEludCgnaWQnKTsNCiAgICAgICAgICAgIGlmICghJGlkKSBSZXNwdWVzdGE6OmVycm9yKCdGYWx0YW4gZGF0b3MnLCA0MDApOw0KDQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yUGVzYWRhOjppbnRyb2R1Y2lyUmVuZGltaWVudG8oDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb25JZHNbMF0sDQogICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICRjdHgtPmpzb24oJ3RpcG8xJyksDQogICAgICAgICAgICAgICAgJGN0eC0+anNvbigndGlwbzInKQ0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy90cmFzaWVnb3Blc2FkYScNCiAgICApLA0KDQogICAgJ2FjY2lvbl9wZXNhZGEnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgICRpZCA9ICRjdHgtPnBvc3RJbnQoJ2lkJyk7DQogICAgICAgICAgICAkYWNjaW9uID0gJGN0eC0+cG9zdCgnYWNjaW9uJyk7DQogICAgICAgICAgICAkdmFsb3IgPSAkY3R4LT5wb3N0KCd2YWxvcicpOw0KDQogICAgICAgICAgICBpZiAoISRpZCB8fCAhJGFjY2lvbiApIFJlc3B1ZXN0YTo6ZXJyb3IoJ0ZhbHRhbiBkYXRvcycsIDQwMCk7DQoNCiAgICAgICAgICAgIGlmICgkYWNjaW9uID09PSAnR2VuZXJhckVBTicpIHsNCiAgICAgICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JQZXNhZGE6OmdlbmVyYXJFQU4oJGN0eC0+Y29uZXhpb24oKSwgJGlkKTsNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYWNjaW9uID09PSAnRWxpbWluYXJSZW5kaW1pZW50bycpIHsNCiAgICAgICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JQZXNhZGE6OmVsaW1pbmFyUmVuZGltaWVudG8oJGN0eC0+Y29uZXhpb24oKSwgJGlkKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgJHJlc3VsdGFkbyA9IENvbnRyb2xhZG9yUGVzYWRhOjphY2Npb25QZXNhZGEoJGN0eC0+Y29uZXhpb24oKSwgJGlkLCAkYWNjaW9uLCAkdmFsb3IgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoJHJlc3VsdGFkbyk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy90cmFzaWVnb3Blc2FkYScNCiAgICApLA0KDQogICAgJ2VkaXRhcl9wZXNhZGEnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286IEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgICRpZCA9ICRjdHgtPnBvc3RJbnQoJ2lkJyk7DQogICAgICAgICAgICBpZiAoISRpZCkgUmVzcHVlc3RhOjplcnJvcignRmFsdGFuIGRhdG9zJywgNDAwKTsNCg0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclBlc2FkYTo6ZWRpdGFyUGVzYWRhKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzWzBdLA0KICAgICAgICAgICAgICAgICRpZCwNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0SW50KCdjYWxpZGFkX2lkJyksDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdEludCgndmFyaWVkYWRfaWQnKSwNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0KCdraWxvcycpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ3RvbHZhJykNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvdHJhc2llZ29wZXNhZGEnDQogICAgKQ0KXTsiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM1OiJSdXRhcyBkZSBQRVNBREFTIHkgVFJBU0lFR09QRVNBREFTLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI5OiJ0cmFja2luZ1xiYWNrZW5kXGFwaVx2MlxydXRhcyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";