1789595936
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3Ab82542dfa8ba5101645e61ca9f56d688-8d45a4c245962dc63213934604181a98
s:8752:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEyOiJjbGllbnRlcy5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiOGQ0NWE0YzI0NTk2MmRjNjMyMTM5MzQ2MDQxODFhOTgiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozNzoiYmFja2VuZC9hcGkvdjJwZ2dwL3J1dGFzL2NsaWVudGVzLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NDI1NDoiPD9waHANCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOw0KDQovKioNCiAqIFJ1dGFzIGRlIENMSUVOVEVTIOKAlCBkYXRvcyBkZSBjbGllbnRlcyB5IHN1cyBtYXRyw61jdWxhcy4NCiAqDQogKiBWYXJpYXMgYWNjaW9uZXMgc2UgY29uc3VtZW4gZGVzZGUgbcOhcyBkZSB1bmEgcMOhZ2luYTsgZW4gZXNvcyBjYXNvcyBzZQ0KICogZGVjbGFyYSBsYSBsaXN0YSBjb21wbGV0YSB5IGJhc3RhIGNvbiB0ZW5lciBwZXJtaXNvIGVuIGN1YWxxdWllcmEgZGUNCiAqIGVsbGFzIHNvYnJlIGxhcyBjb25leGlvbmVzIHNvbGljaXRhZGFzLg0KICoNCiAqIEBwYWNrYWdlIHRyYWNraW5nXGJhY2tlbmRcYXBpXHYyXHJ1dGFzDQogKi8NCg0KcmV0dXJuIFsNCg0KICAgIC8vIOKUgOKUgCBDQVTDgUxPR09TIFkgTElTVEFET1Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgICAnZ2V0X2NhdGFsb2dvc19jbGllbnRlcycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogIEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoDQogICAgICAgICAgICAgICAgQ29udHJvbGFkb3JDbGllbnRlOjpnZXRDYXRhbG9nb3MoJGN0eC0+Y29uZXhpb25JZHMpDQogICAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvY2xpZW50ZXMnDQogICAgKSwNCg0KICAgICdnZXRfY2xpZW50ZXMnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286ICBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKA0KICAgICAgICAgICAgICAgIENvbnRyb2xhZG9yQ2xpZW50ZTo6Z2V0Q2xpZW50ZXMoJGN0eC0+Y29uZXhpb25JZHMpDQogICAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6IFsnL3BhZ2VzL2RlcG9zaXRvcycsICcvcGFnZXMvY2xpZW50ZXMnXQ0KICAgICksDQoNCiAgICAnZ2V0X2NsaWVudGVzX3NhbGlkYXMnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286ICBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKA0KICAgICAgICAgICAgICAgIENvbnRyb2xhZG9yU2FsaWRhczo6Z2V0Q2xpZW50ZXMoJGN0eC0+Y29uZXhpb25JZHMpDQogICAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvZ3JhbmVsJw0KICAgICksDQoNCiAgICAvLyDilIDilIAgRVNDUklUVVJBIERFIENMSUVOVEVTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogICAgJ2NyZWFyX2NsaWVudGUnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286ICBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICAkZGF0YSA9ICRjdHgtPmpzb24oKTsNCiAgICAgICAgICAgIGlmIChlbXB0eSgkZGF0YSkpIHsNCiAgICAgICAgICAgICAgICBSZXNwdWVzdGE6OmVycm9yKCdObyBzZSByZWNpYmllcm9uIGRhdG9zLicsIDQwMCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoDQogICAgICAgICAgICAgICAgQ29udHJvbGFkb3JDbGllbnRlOjpjcmVhcigkY3R4LT5jb25leGlvbklkcywgJGRhdGEpDQogICAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvY2xpZW50ZXMnDQogICAgKSwNCg0KICAgIC8vIEVuIGxhIHYxIGliYSBjb24gcmVxdWlyZUF1dGhBcGk6IG5vIHZhbGlkYWJhIHBlcm1pc28gc29icmUgbGEgY29uZXhpw7NuDQogICAgLy8gcGVzZSBhIGVzY3JpYmlyIGVuIHVuYSBiYXNlIGRlIGV4cGxvdGFjacOzbi4NCiAgICAnYWN0dWFsaXphcl9jbGllbnRlJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGRhdGEgPSAkY3R4LT5qc29uKCk7DQogICAgICAgICAgICBpZiAoZW1wdHkoJGRhdGEpKSB7DQogICAgICAgICAgICAgICAgUmVzcHVlc3RhOjplcnJvcignTm8gc2UgcmVjaWJpZXJvbiBkYXRvcy4nLCA0MDApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yQ2xpZW50ZTo6YWN0dWFsaXphcigkZGF0YSkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvY2xpZW50ZXMnDQogICAgKSwNCg0KICAgIC8vIOKUgOKUgCBNQVRSw41DVUxBUyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICAgICdnZXRfbWF0cmljdWxhc19jbGllbnRlJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclNhbGlkYXM6OmdldE1hdHJpY3VsYXNDbGllbnRlKA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3RJbnQoJ2lkQ2xpZW50ZScpLA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzDQogICAgICAgICAgICApKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiBbJy9wYWdlcy9ncmFuZWwnLCAnL3BhZ2VzL2RlcG9zaXRvcyddDQogICAgKSwNCg0KICAgICdhZGRfbWF0cmljdWxhX2NsaWVudGUnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286ICBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICAkaWRDbGllbnRlID0gJGN0eC0+cG9zdEludCgnaWRDbGllbnRlJyk7DQogICAgICAgICAgICAkbWF0cmljdWxhID0gdHJpbSgkY3R4LT5wb3N0KCduTWF0cmljdWxhJykpOw0KDQogICAgICAgICAgICBpZiAoJGlkQ2xpZW50ZSA8PSAwKSAgUmVzcHVlc3RhOjplcnJvcignRmFsdGEgZWwgY2xpZW50ZS4nLCA0MDApOw0KICAgICAgICAgICAgaWYgKCRtYXRyaWN1bGEgPT09ICcnKSBSZXNwdWVzdGE6OmVycm9yKCdMYSBtYXRyw61jdWxhIGVzIG9ibGlnYXRvcmlhLicsIDQwMCk7DQoNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JTYWxpZGFzOjphZGRNYXRyaWN1bGFDbGllbnRlKA0KICAgICAgICAgICAgICAgICRpZENsaWVudGUsDQogICAgICAgICAgICAgICAgJG1hdHJpY3VsYSwNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkcw0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9ncmFuZWwnDQogICAgKSwNCl07IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1ODoiUnV0YXMgZGUgQ0xJRU5URVMg4oCUIGRhdG9zIGRlIGNsaWVudGVzIHkgc3VzIG1hdHLDrWN1bGFzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxODA6IlZhcmlhcyBhY2Npb25lcyBzZSBjb25zdW1lbiBkZXNkZSBtw6FzIGRlIHVuYSBww6FnaW5hOyBlbiBlc29zIGNhc29zIHNlCmRlY2xhcmEgbGEgbGlzdGEgY29tcGxldGEgeSBiYXN0YSBjb24gdGVuZXIgcGVybWlzbyBlbiBjdWFscXVpZXJhIGRlCmVsbGFzIHNvYnJlIGxhcyBjb25leGlvbmVzIHNvbGljaXRhZGFzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6InRyYWNraW5nXGJhY2tlbmRcYXBpXHYyXHJ1dGFzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";