1789595935
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3Aab7f6c4da27d560d6fb4640e42c7bfc1-fc377608ba9977085a66fde64375608c
s:7980:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjExOiJwZXNhZGFzLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJmYzM3NzYwOGJhOTk3NzA4NWE2NmZkZTY0Mzc1NjA4YyI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjMyOiJiYWNrZW5kL2FwaS92Mi9ydXRhcy9wZXNhZGFzLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6Mzg4NjoiPD9waHANCg0KLyoqDQogKiBSdXRhcyBkZSBQRVNBREFTIHkgVFJBU0lFR09QRVNBREFTLg0KICoNCiAqIEBwYWNrYWdlIHRyYWNraW5nXGJhY2tlbmRcYXBpXHYyXHJ1dGFzDQogKi8NCg0KcmV0dXJuIFsNCiAgICAnbG9hZF9wZXNhZGFzJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yUGVzYWRhOjpnZXRMaXN0YWRvKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ2Rlc2RlJyksDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdCgnaGFzdGEnKQ0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy90cmFzaWVnb3Blc2FkYScNCiAgICApLA0KDQogICAgJ2dldF9yYW5nb19mZWNoYXNfcGVzYWRhJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yUGVzYWRhOjpnZXRGZWNoYVJhbmdvKA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzLA0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy90cmFzaWVnb3Blc2FkYScNCiAgICApLA0KDQogICAgJ2dldF9maWx0cm9zX3Blc2FkYScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclBlc2FkYTo6Z2V0RmlsdHJvcygkY3R4LT5jb25leGlvbklkcykpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvdHJhc2llZ29wZXNhZGEnDQogICAgKSwNCg0KICAgICdnZXRfcmVuZGltaWVudG9fcGVzYWRhJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICAkdGlja2V0ID0gJGN0eC0+cG9zdEludCgnaWQnKTsNCiAgICAgICAgICAgIGlmICghJHRpY2tldCkgUmVzcHVlc3RhOjplcnJvcignRmFsdGFuIGRhdG9zJywgNDAwKTsNCg0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclBlc2FkYTo6Z2V0UmVuZGltaWVudG8oDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb24oKSwNCiAgICAgICAgICAgICAgICAkdGlja2V0LA0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy90cmFzaWVnb3Blc2FkYScNCiAgICApLA0KDQogICAgJ2ludHJvZHVjaXJfcmVuZGltaWVudG9fcGVzYWRhJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICAkaWQgPSAkY3R4LT5wb3N0SW50KCdpZCcpOw0KICAgICAgICAgICAgaWYgKCEkaWQpIFJlc3B1ZXN0YTo6ZXJyb3IoJ0ZhbHRhbiBkYXRvcycsIDQwMCk7DQoNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JQZXNhZGE6OmludHJvZHVjaXJSZW5kaW1pZW50bygNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkc1swXSwNCiAgICAgICAgICAgICAgICAkaWQsDQogICAgICAgICAgICAgICAgJGN0eC0+anNvbigndGlwbzEnKSwNCiAgICAgICAgICAgICAgICAkY3R4LT5qc29uKCd0aXBvMicpDQogICAgICAgICAgICApKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL3RyYXNpZWdvcGVzYWRhJw0KICAgICksDQoNCiAgICAnYWNjaW9uX3Blc2FkYScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGlkID0gJGN0eC0+cG9zdEludCgnaWQnKTsNCiAgICAgICAgICAgICRhY2Npb24gPSAkY3R4LT5wb3N0KCdhY2Npb24nKTsNCiAgICAgICAgICAgICR2YWxvciA9ICRjdHgtPnBvc3QoJ3ZhbG9yJyk7DQoNCiAgICAgICAgICAgIGlmICghJGlkIHx8ICEkYWNjaW9uICkgUmVzcHVlc3RhOjplcnJvcignRmFsdGFuIGRhdG9zJywgNDAwKTsNCg0KICAgICAgICAgICAgaWYgKCRhY2Npb24gPT09ICdHZW5lcmFyRUFOJykgew0KICAgICAgICAgICAgICAgICRyZXN1bHRhZG8gPSBDb250cm9sYWRvclBlc2FkYTo6Z2VuZXJhckVBTigkY3R4LT5jb25leGlvbigpLCAkaWQpOw0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhY2Npb24gPT09ICdFbGltaW5hclJlbmRpbWllbnRvJykgew0KICAgICAgICAgICAgICAgICRyZXN1bHRhZG8gPSBDb250cm9sYWRvclBlc2FkYTo6ZWxpbWluYXJSZW5kaW1pZW50bygkY3R4LT5jb25leGlvbigpLCAkaWQpOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JQZXNhZGE6OmFjY2lvblBlc2FkYSgkY3R4LT5jb25leGlvbigpLCAkaWQsICRhY2Npb24sICR2YWxvciApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcigkcmVzdWx0YWRvKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL3RyYXNpZWdvcGVzYWRhJw0KICAgICksDQoNCiAgICAnZWRpdGFyX3Blc2FkYScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGlkID0gJGN0eC0+cG9zdEludCgnaWQnKTsNCiAgICAgICAgICAgIGlmICghJGlkKSBSZXNwdWVzdGE6OmVycm9yKCdGYWx0YW4gZGF0b3MnLCA0MDApOw0KDQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yUGVzYWRhOjplZGl0YXJQZXNhZGEoDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb25JZHNbMF0sDQogICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3RJbnQoJ2NhbGlkYWRfaWQnKSwNCiAgICAgICAgICAgICAgICAkY3R4LT5wb3N0SW50KCd2YXJpZWRhZF9pZCcpLA0KICAgICAgICAgICAgICAgICRjdHgtPnBvc3QoJ2tpbG9zJyksDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdCgndG9sdmEnKQ0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy90cmFzaWVnb3Blc2FkYScNCiAgICApDQpdOyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzU6IlJ1dGFzIGRlIFBFU0FEQVMgeSBUUkFTSUVHT1BFU0FEQVMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6InRyYWNraW5nXGJhY2tlbmRcYXBpXHYyXHJ1dGFzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";