1718829587
ac1e01bd81d25a49725bc38f4603e687-phpdoc%3A62d622389f2f7fd02e60cbdac4094a98-7513b2a4acf94b33f039a7b47fa82b89
s:4280:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6Ijc1MTNiMmE0YWNmOTRiMzNmMDM5YTdiNDdmYTgyYjg5IjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MTA6ImNvbmZpZy5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czoxNDoic3JjL2NvbmZpZy5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjIzMTY6Ijw/cGhwCgp1c2UgRElcQ29udGFpbmVyOwp1c2UgTWlnbGlvcmlcUG93ZXJMaXRlUGRvXERyaXZlck1hbmFnZXI7CnVzZSBNaWdsaW9yaVxQb3dlckxpdGVQZG9cRGI7CnVzZSBNaWdsaW9yaVxQb3dlckxpdGVQZG9cUGFnaW5hdGlvbjsKdXNlIE1pZ2xpb3JpXFBvd2VyTGl0ZVBkb1xQYWdpbmF0aW9uT3B0aW9uczsKdXNlIE1pZ2xpb3JpXFBvd2VyTGl0ZVBkb1xRdWVyeVxQYXJhbWV0ZXJzOwp1c2UgTWlnbGlvcmlcUG93ZXJMaXRlUGRvXFF1ZXJ5XFF1ZXJ5QnVpbGRlcjsKdXNlIE1pZ2xpb3JpXFBvd2VyTGl0ZVBkb1xRdWVyeVxXaGVyZTsKdXNlIE1pZ2xpb3JpXFBvd2VyTGl0ZVBkb1xSZXN1bHRcUmVzdWx0Owp1c2UgTWlnbGlvcmlcUG93ZXJMaXRlUGRvXFZpZXdcVmlldzsKCnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb25uZWN0aW9uLnBocCc7CgpyZXR1cm4gWwogICAgRGI6OmNsYXNzID0+IHN0YXRpYyBmdW5jdGlvbiAoKSA6IERiIHsKICAgICAgICAkZHNuID0gWwogICAgICAgICAgICAnaG9zdCcgICAgID0+IERCX0hPU1QsCiAgICAgICAgICAgICdwb3J0JyAgICAgPT4gREJfUE9SVCwKICAgICAgICAgICAgJ2RibmFtZScgICA9PiBEQl9OQU1FLAogICAgICAgICAgICAnY2hhcnNldCcgID0+IERCX0NIQVJTRVQsCiAgICAgICAgXTsKICAgICAgICAkZHJpdmVyID0gRHJpdmVyTWFuYWdlcjo6Z2V0Q29ubmVjdGlvbihQRE9fRFJJVkVSKTsKICAgICAgICAkY29ubmVjdGlvbiA9ICRkcml2ZXItPmNvbm5lY3QoJGRzbiwgREJfVVNFUiwgREJfUEFTUyk7CiAgICAgICAgJHBhcmFtZXRlcnMgPSBuZXcgUGFyYW1ldGVycygpOwogICAgICAgICR3aGVyZSA9IG5ldyBXaGVyZSgpOwogICAgICAgICRyZXN1bHQgPSBuZXcgUmVzdWx0KCk7CiAgICAgICAgJHF1ZXJ5QnVpbGRlciA9IG5ldyBRdWVyeUJ1aWxkZXIoJGNvbm5lY3Rpb24sICR3aGVyZSwgJHBhcmFtZXRlcnMsICRyZXN1bHQpOwogICAgICAgIHJldHVybiBuZXcgRGIoJGNvbm5lY3Rpb24sICRxdWVyeUJ1aWxkZXIpOwogICAgfSwKICAgIFF1ZXJ5QnVpbGRlcjo6Y2xhc3MgPT4gc3RhdGljIGZ1bmN0aW9uICgpIDogUXVlcnlCdWlsZGVyIHsKICAgICAgICAkZHNuID0gWwogICAgICAgICAgICAnaG9zdCcgICAgID0+IERCX0hPU1QsCiAgICAgICAgICAgICdwb3J0JyAgICAgPT4gREJfUE9SVCwKICAgICAgICAgICAgJ2RibmFtZScgICA9PiBEQl9OQU1FLAogICAgICAgICAgICAnY2hhcnNldCcgID0+IERCX0NIQVJTRVQsCiAgICAgICAgXTsKICAgICAgICAkZHJpdmVyID0gRHJpdmVyTWFuYWdlcjo6Z2V0Q29ubmVjdGlvbihQRE9fRFJJVkVSKTsKICAgICAgICAkY29ubmVjdGlvbiA9ICRkcml2ZXItPmNvbm5lY3QoJGRzbiwgREJfVVNFUiwgREJfUEFTUyk7CiAgICAgICAgJHBhcmFtZXRlcnMgPSBuZXcgUGFyYW1ldGVycygpOwogICAgICAgICR3aGVyZSA9IG5ldyBXaGVyZSgpOwogICAgICAgICRyZXN1bHQgPSBuZXcgUmVzdWx0KCk7CiAgICAgICAgcmV0dXJuIG5ldyBRdWVyeUJ1aWxkZXIoJGNvbm5lY3Rpb24sICR3aGVyZSwgJHBhcmFtZXRlcnMsICRyZXN1bHQpOwogICAgfSwKICAgIFBhZ2luYXRpb246OmNsYXNzID0+IHN0YXRpYyBmdW5jdGlvbiAoKSA6IFBhZ2luYXRpb24gewogICAgICAgICRkc24gPSBbCiAgICAgICAgICAgICdob3N0JyAgICAgPT4gREJfSE9TVCwKICAgICAgICAgICAgJ3BvcnQnICAgICA9PiBEQl9QT1JULAogICAgICAgICAgICAnZGJuYW1lJyAgID0+IERCX05BTUUsCiAgICAgICAgICAgICdjaGFyc2V0JyAgPT4gREJfQ0hBUlNFVCwKICAgICAgICBdOwogICAgICAgICRkcml2ZXIgPSBEcml2ZXJNYW5hZ2VyOjpnZXRDb25uZWN0aW9uKFBET19EUklWRVIpOwogICAgICAgICRjb25uZWN0aW9uID0gJGRyaXZlci0+Y29ubmVjdCgkZHNuLCBEQl9VU0VSLCBEQl9QQVNTKTsKICAgICAgICAkcGFyYW1ldGVycyA9IG5ldyBQYXJhbWV0ZXJzKCk7CiAgICAgICAgJHdoZXJlID0gbmV3IFdoZXJlKCk7CiAgICAgICAgJHJlc3VsdCA9IG5ldyBSZXN1bHQoKTsKICAgICAgICAkcXVlcnlCdWlsZGVyID0gbmV3IFF1ZXJ5QnVpbGRlcigkY29ubmVjdGlvbiwgJHdoZXJlLCAkcGFyYW1ldGVycywgJHJlc3VsdCk7CiAgICAgICAgJGRiID0gbmV3IERiKCRjb25uZWN0aW9uLCAkcXVlcnlCdWlsZGVyKTsKICAgICAgICAkcGFnaW5hdGlvbk9wdGlvbnMgPSBuZXcgUGFnaW5hdGlvbk9wdGlvbnMoW10pOwogICAgICAgICR2aWV3ID0gbmV3IFZpZXcoKTsKICAgICAgICByZXR1cm4gbmV3IFBhZ2luYXRpb24oJGRiLCAkcGFnaW5hdGlvbk9wdGlvbnMsICR2aWV3LCAxMCk7CiAgICB9Cl07CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";