[{"Attribute":[{"category":"External analysis","disable_correlation":false,"first_seen":"2024-06-18T13:05:05.809000+00:00","to_ids":false,"type":"link","uuid":"e0fa979c-21bb-44ef-8259-4a67eb0e1876","value":"https://lookyloo.circl.lu/tree/cbf4e503-7baa-44f9-b34e-ecb9413ec687"},{"category":"External analysis","comment":"Screenshot of the page at the end of the capture","data":"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","disable_correlation":true,"first_seen":"2024-06-18T13:05:05.809000+00:00","to_ids":false,"type":"attachment","uuid":"ddfdb7b3-2354-45c2-a4b4-560497ce979b","value":"screenshot_landing_page.png"},{"category":"External analysis","comment":"HTTP Archive (HAR) of the whole capture","data":"eyJsb2ciOiB7InZlcnNpb24iOiAiMS4yIiwgImNyZWF0b3IiOiB7Im5hbWUiOiAiUGxheXdyaWdodCIsICJ2ZXJzaW9uIjogIjEuNDQuMC1iZXRhLTE3MTU4MDI0NzgwMDAifSwgImJyb3dzZXIiOiB7Im5hbWUiOiAiY2hyb21pdW0iLCAidmVyc2lvbiI6ICIxMjUuMC42NDIyLjI2In0sICJwYWdlcyI6IFt7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDEzOjA1OjA1LjY4NFoiLCAiaWQiOiAicGFnZUBmMGI3YWQyN2FjZGI2ZDJhNDQ4ODM3OWUzODZiOGUyMCIsICJ0aXRsZSI6ICIiLCAicGFnZVRpbWluZ3MiOiB7Im9uQ29udGVudExvYWQiOiAyMTQ0LCAib25Mb2FkIjogMjE0Nn19XSwgImVudHJpZXMiOiBbeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyNC0wNi0xOFQxMzowNTowNS44MDlaIiwgInRpbWUiOiAyMDAuMywgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vc2VjdXJlLnNpZ24tZG9jLmNvbS9YVGpKaFRHRnpVSElyU21KVlFUaEpZM2hTZDBKVUswNW1jM1oxTlhsWU5YWjVVMnh4UzBZNU5YaE9jR1F3VFdselYzSmhlV3BKVmxScVRqaFNTVk5uVUN0d1JFdFVLMGcwVmxCelZUTlJjWEZEWVhGbVdFRnllSFZIUVU1VlEzSnZjazFQV0c5WVpYVlRiazVJVjBwVmNFRmhOMFlyUjAwNVRrMXdiRTB4YjNKQ055c3labXgzY2xCM1NIaHJNa3cwTjNvd01IcHlRMWgzZGxWdk5tbFRTbXM0VTI5WVJUVTNSbXd6T0Vwd0wxcGtSRXB2T1ZKR1NTMHRURGw2ZDNGRVR6ZHBkbVJaWVZGalRTMHRUWGMwVHpGR1VYRkhZbXhKU2xSSkwySXJlQzk2ZHowOT9jaWQ9MjU2Njc2MTg1IiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAic2VjdXJlLnNpZ24tZG9jLmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9YVGpKaFRHRnpVSElyU21KVlFUaEpZM2hTZDBKVUswNW1jM1oxTlhsWU5YWjVVMnh4UzBZNU5YaE9jR1F3VFdselYzSmhlV3BKVmxScVRqaFNTVk5uVUN0d1JFdFVLMGcwVmxCelZUTlJjWEZEWVhGbVdFRnllSFZIUVU1VlEzSnZjazFQV0c5WVpYVlRiazVJVjBwVmNFRmhOMFlyUjAwNVRrMXdiRTB4YjNKQ055c3labXgzY2xCM1NIaHJNa3cwTjNvd01IcHlRMWgzZGxWdk5tbFRTbXM0VTI5WVJUVTNSbXd6T0Vwd0wxcGtSRXB2T1ZKR1NTMHRURGw2ZDNGRVR6ZHBkbVJaWVZGalRTMHRUWGMwVHpGR1VYRkhZbXhKU2xSSkwySXJlQzk2ZHowOT9jaWQ9MjU2Njc2MTg1In0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAidGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44LGFwcGxpY2F0aW9uL3NpZ25lZC1leGNoYW5nZTt2PWIzO3E9MC43In0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIsIHpzdGQifSwgeyJuYW1lIjogImFjY2VwdC1sYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyxlbjtxPTAuOSJ9LCB7Im5hbWUiOiAicHJpb3JpdHkiLCAidmFsdWUiOiAidT0wLCBpIn0sIHsibmFtZSI6ICJzZWMtY2gtdWEiLCAidmFsdWUiOiAiXCJDaHJvbWl1bVwiO3Y9XCIxMjVcIiwgXCJOb3QuQS9CcmFuZFwiO3Y9XCIyNFwiIn0sIHsibmFtZSI6ICJzZWMtY2gtdWEtbW9iaWxlIiwgInZhbHVlIjogIj8wIn0sIHsibmFtZSI6ICJzZWMtY2gtdWEtcGxhdGZvcm0iLCAidmFsdWUiOiAiXCJXaW5kb3dzXCIifSwgeyJuYW1lIjogInNlYy1mZXRjaC1kZXN0IiwgInZhbHVlIjogImRvY3VtZW50In0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuYXZpZ2F0ZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAibm9uZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXVzZXIiLCAidmFsdWUiOiAiPzEifSwgeyJuYW1lIjogInVwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMiLCAidmFsdWUiOiAiMSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTI1LjAuNjQyMi4yNiBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImNpZCIsICJ2YWx1ZSI6ICIyNTY2NzYxODUifV0sICJoZWFkZXJzU2l6ZSI6IDEzMTAsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImNhY2hlLWNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGUifSwgeyJuYW1lIjogImNvbnRlbnQtbGVuZ3RoIiwgInZhbHVlIjogIjQ1NSJ9LCB7Im5hbWUiOiAiY29udGVudC1zZWN1cml0eS1wb2xpY3kiLCAidmFsdWUiOiAiIn0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04In0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIlR1ZSwgMTggSnVuIDIwMjQgMTM6MDU6MDUgR01UIn0sIHsibmFtZSI6ICJldGFnIiwgInZhbHVlIjogIlcvXCIzM2JiNmE0ZDBiODdlMmVmYzBlNmJmMGRlMGRjNTA3ZVwiIn0sIHsibmFtZSI6ICJyZWZlcnJlci1wb2xpY3kiLCAidmFsdWUiOiAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT02MzExMzkwNDsgaW5jbHVkZVN1YkRvbWFpbnM7IHByZWxvYWQifSwgeyJuYW1lIjogIngtY29udGVudC10eXBlLW9wdGlvbnMiLCAidmFsdWUiOiAibm9zbmlmZiJ9LCB7Im5hbWUiOiAieC1mcmFtZS1vcHRpb25zIiwgInZhbHVlIjogIlNBTUVPUklHSU4ifSwgeyJuYW1lIjogIngtcGVybWl0dGVkLWNyb3NzLWRvbWFpbi1wb2xpY2llcyIsICJ2YWx1ZSI6ICJub25lIn0sIHsibmFtZSI6ICJ4LXJlcXVlc3QtaWQiLCAidmFsdWUiOiAiZWQ4NjM5OTAtYTNmMS00NTFmLThlN2UtYWUxMTUzMWU3MTc1In0sIHsibmFtZSI6ICJ4LXJ1bnRpbWUiLCAidmFsdWUiOiAiMC4wNjU0NTEifSwgeyJuYW1lIjogIngteHNzLXByb3RlY3Rpb24iLCAidmFsdWUiOiAiMCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAtMSwgIm1pbWVUeXBlIjogInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIsICJjb21wcmVzc2lvbiI6IDB9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiA4NTQsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDg1NH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogMC4wMjQsICJjb25uZWN0IjogNjAuMTc2LCAic3NsIjogMzMuMzU4LCAic2VuZCI6IDAsICJ3YWl0IjogMTAxLjQ0OSwgInJlY2VpdmUiOiA1LjI5M30sICJwYWdlcmVmIjogInBhZ2VAZjBiN2FkMjdhY2RiNmQyYTQ0ODgzNzllMzg2YjhlMjAiLCAic2VydmVySVBBZGRyZXNzIjogIjU0LjIyOS4xNzAuNjYiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4yIiwgInN1YmplY3ROYW1lIjogImVuY3J5cHRlZGNvbm5lY3Rpb24ubmV0IiwgImlzc3VlciI6ICJBbWF6b24gUlNBIDIwNDggTTAyIiwgInZhbGlkRnJvbSI6IDE2OTAxNTY4MDAsICJ2YWxpZFRvIjogMTcyNDE5ODM5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDEzOjA1OjA2LjAyNloiLCAidGltZSI6IDE1NjAuNTM2OTk5OTk5OTk5OCwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vc2VjdXJlLnNpZ24tZG9jLmNvbS9wYWdlcy84OTI3NGFhNTdjOTYvWFRqSmhUR0Z6VUhJclNtSlZRVGhKWTNoU2QwSlVLMDVtYzNaMU5YbFlOWFo1VTJ4eFMwWTVOWGhPY0dRd1RXbHpWM0poZVdwSlZsUnFUamhTU1ZOblVDdHdSRXRVSzBnMFZsQnpWVE5SY1hGRFlYRm1XRUZ5ZUhWSFFVNVZRM0p2Y2sxUFdHOVlaWFZUYms1SVYwcFZjRUZoTjBZclIwMDVUazF3YkUweGIzSkNOeXN5Wm14M2NsQjNTSGhyTWt3ME4zb3dNSHB5UTFoM2RsVnZObWxUU21zNFUyOVlSVFUzUm13ek9FcHdMMXBrUkVwdk9WSkdTUzB0VERsNmQzRkVUemRwZG1SWllWRmpUUzB0VFhjMFR6RkdVWEZIWW14SlNsUkpMMklyZUM5NmR6MDkiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJzZWN1cmUuc2lnbi1kb2MuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiL3BhZ2VzLzg5Mjc0YWE1N2M5Ni9YVGpKaFRHRnpVSElyU21KVlFUaEpZM2hTZDBKVUswNW1jM1oxTlhsWU5YWjVVMnh4UzBZNU5YaE9jR1F3VFdselYzSmhlV3BKVmxScVRqaFNTVk5uVUN0d1JFdFVLMGcwVmxCelZUTlJjWEZEWVhGbVdFRnllSFZIUVU1VlEzSnZjazFQV0c5WVpYVlRiazVJVjBwVmNFRmhOMFlyUjAwNVRrMXdiRTB4YjNKQ055c3labXgzY2xCM1NIaHJNa3cwTjNvd01IcHlRMWgzZGxWdk5tbFRTbXM0VTI5WVJUVTNSbXd6T0Vwd0wxcGtSRXB2T1ZKR1NTMHRURGw2ZDNGRVR6ZHBkbVJaWVZGalRTMHRUWGMwVHpGR1VYRkhZbXhKU2xSSkwySXJlQzk2ZHowOSJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogInRleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LGltYWdlL2F2aWYsaW1hZ2Uvd2VicCxpbWFnZS9hcG5nLCovKjtxPTAuOCxhcHBsaWNhdGlvbi9zaWduZWQtZXhjaGFuZ2U7dj1iMztxPTAuNyJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyLCB6c3RkIn0sIHsibmFtZSI6ICJhY2NlcHQtbGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMsZW47cT0wLjkifSwgeyJuYW1lIjogInByaW9yaXR5IiwgInZhbHVlIjogInU9MCwgaSJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL3NlY3VyZS5zaWduLWRvYy5jb20vWFRqSmhUR0Z6VUhJclNtSlZRVGhKWTNoU2QwSlVLMDVtYzNaMU5YbFlOWFo1VTJ4eFMwWTVOWGhPY0dRd1RXbHpWM0poZVdwSlZsUnFUamhTU1ZOblVDdHdSRXRVSzBnMFZsQnpWVE5SY1hGRFlYRm1XRUZ5ZUhWSFFVNVZRM0p2Y2sxUFdHOVlaWFZUYms1SVYwcFZjRUZoTjBZclIwMDVUazF3YkUweGIzSkNOeXN5Wm14M2NsQjNTSGhyTWt3ME4zb3dNSHB5UTFoM2RsVnZObWxUU21zNFUyOVlSVFUzUm13ek9FcHdMMXBrUkVwdk9WSkdTUzB0VERsNmQzRkVUemRwZG1SWllWRmpUUzB0VFhjMFR6RkdVWEZIWW14SlNsUkpMMklyZUM5NmR6MDk/Y2lkPTI1NjY3NjE4NSJ9LCB7Im5hbWUiOiAic2VjLWNoLXVhIiwgInZhbHVlIjogIlwiQ2hyb21pdW1cIjt2PVwiMTI1XCIsIFwiTm90LkEvQnJhbmRcIjt2PVwiMjRcIiJ9LCB7Im5hbWUiOiAic2VjLWNoLXVhLW1vYmlsZSIsICJ2YWx1ZSI6ICI/MCJ9LCB7Im5hbWUiOiAic2VjLWNoLXVhLXBsYXRmb3JtIiwgInZhbHVlIjogIlwiV2luZG93c1wiIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJkb2N1bWVudCJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLW1vZGUiLCAidmFsdWUiOiAibmF2aWdhdGUifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogInNhbWUtb3JpZ2luIn0sIHsibmFtZSI6ICJ1cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzIiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyNS4wLjY0MjIuMjYgU2FmYXJpLzUzNy4zNiJ9XSwgInF1ZXJ5U3RyaW5nIjogW10sICJoZWFkZXJzU2l6ZSI6IDE2NzksICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImNhY2hlLWNvbnRyb2wiLCAidmFsdWUiOiAibWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGUifSwgeyJuYW1lIjogImNvbnRlbnQtbGVuZ3RoIiwgInZhbHVlIjogIjY0NTkifSwgeyJuYW1lIjogImNvbnRlbnQtc2VjdXJpdHktcG9saWN5IiwgInZhbHVlIjogIiJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCJ9LCB7Im5hbWUiOiAiZGF0ZSIsICJ2YWx1ZSI6ICJUdWUsIDE4IEp1biAyMDI0IDEzOjA1OjA3IEdNVCJ9LCB7Im5hbWUiOiAiZXRhZyIsICJ2YWx1ZSI6ICJXL1wiNzE2MmYzMGVjZjdiZTRmNGNlOWU2NmYxYjc2YWFkNzRcIiJ9LCB7Im5hbWUiOiAibGluayIsICJ2YWx1ZSI6ICI8L2Fzc2V0cy9sYW5kaW5nLXdhdGVybWFyay04NDg3ZTM2ZWVmMWJlYzc0ZjA2NjMxZjE5ZmVhMGFhMTcxYzIwOGUyOTc2MzczY2RhNWJkMGE0YjllMjMwOTAzLmNzcz47IHJlbD1wcmVsb2FkOyBhcz1zdHlsZTsgbm9wdXNoLDwvYXNzZXRzL2FwcGxpY2F0aW9uLTIzN2NiNWM0ZjMxODY4NzYyNWY4Y2NmMmY0MmRlM2ZjMjAyMzhiZmUyNjczODQ2NTM0OTFhNmJiYThjOGY2ZjUuanM+OyByZWw9cHJlbG9hZDsgYXM9c2NyaXB0OyBub3B1c2gifSwgeyJuYW1lIjogInJlZmVycmVyLXBvbGljeSIsICJ2YWx1ZSI6ICJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSJ9LCB7Im5hbWUiOiAic3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSIsICJ2YWx1ZSI6ICJtYXgtYWdlPTYzMTEzOTA0OyBpbmNsdWRlU3ViRG9tYWluczsgcHJlbG9hZCJ9LCB7Im5hbWUiOiAieC1jb250ZW50LXR5cGUtb3B0aW9ucyIsICJ2YWx1ZSI6ICJub3NuaWZmIn0sIHsibmFtZSI6ICJ4LWZyYW1lLW9wdGlvbnMiLCAidmFsdWUiOiAiU0FNRU9SSUdJTiJ9LCB7Im5hbWUiOiAieC1wZXJtaXR0ZWQtY3Jvc3MtZG9tYWluLXBvbGljaWVzIiwgInZhbHVlIjogIm5vbmUifSwgeyJuYW1lIjogIngtcmVxdWVzdC1pZCIsICJ2YWx1ZSI6ICIwNGZjNmIyYi01MDQ1LTQ5NjgtYWYxYi0zMmJjYmU2MDFjZjgifSwgeyJuYW1lIjogIngtcnVudGltZSIsICJ2YWx1ZSI6ICIxLjUyMzc5MCJ9LCB7Im5hbWUiOiAieC14c3MtcHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDY0NTksICJtaW1lVHlwZSI6ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICI8IURPQ1RZUEUgaHRtbCBQVUJMSUMgXCItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTlwiXG4gICAgICAgXCJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkXCI+XG5cbjxodG1sIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPlxuICA8bWV0YSBuYW1lPVwiSU1QT1JUQU5UXCIgY29udGVudD1cIlRoaXMgcGFnZSBpcyBwYXJ0IG9mIGEgc2ltdWxhdGVkIHBoaXNoaW5nIGF0dGFjayBpbml0aWF0ZWQgYnkgS25vd0JlNCBvbiBiZWhhbGYgb2YgaXRzIGN1c3RvbWVycy5cIiAvPlxuICA8bWV0YSBuYW1lPVwiSU1QT1JUQU5UXCIgY29udGVudD1cIklmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgcGxlYXNlIGNvbnRhY3Qgc3VwcG9ydEBrbm93YmU0LmNvbS5cIiAvPlxuICA8bWV0YSBjb250ZW50PVwiSUU9ZWRnZSxjaHJvbWU9MVwiIGh0dHAtZXF1aXY9XCJYLVVBLUNvbXBhdGlibGVcIi8+XG4gIDxtZXRhIG5hbWU9XCJyb2JvdHNcIiBjb250ZW50PVwibm9pbmRleCwgbm9mb2xsb3dcIiAvPlxuXG4gIDxoZWFkPlxuICA8c2NyaXB0IHNyYz1cIi9hc3NldHMvYXBwbGljYXRpb24tMjM3Y2I1YzRmMzE4Njg3NjI1ZjhjY2YyZjQyZGUzZmMyMDIzOGJmZTI2NzM4NDY1MzQ5MWE2YmJhOGM4ZjZmNS5qc1wiPjwvc2NyaXB0PlxuXG4gICAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIvYXNzZXRzL2xhbmRpbmctd2F0ZXJtYXJrLTg0ODdlMzZlZWYxYmVjNzRmMDY2MzFmMTlmZWEwYWExNzFjMjA4ZTI5NzYzNzNjZGE1YmQwYTRiOWUyMzA5MDMuY3NzXCIgbWVkaWE9XCJhbGxcIiAvPlxuXG4gIDwvaGVhZD5cbiAgXG48c3R5bGU+XG5ib2R5IHtcbmJhY2tncm91bmQ6ICNjYWZjZDc7XG5mb250OiA0MDAgMTVweC8xLjggXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG59XG5cbi50aWxlMSwgLnRpbGUyLCAudGlsZTMsIC50aWxlNCwgLnRpbGU1LCAudGlsZTYsIC50aWxlNywgLnRpbGU4LCAudGlsZTkge1xuZGlzcGxheTogdGFibGUtY2VsbDtcbm1pbi13aWR0aDogMjAwcHg7XG5tYXgtd2lkdGg6IDIwMHB4O1xud2lkdGg6IDIwMHB4O1xuaGVpZ2h0OiAyMDBweDtcbmJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG5iYWNrZ3JvdW5kOiB1cmwoaHR0cHM6Ly9pLmltZ3VyLmNvbS8wV2M5UkhrLnBuZyk7XG5jdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50aWxlMSB7YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7fVxuLnRpbGUyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO31cbi50aWxlMyB7YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgdG9wO31cbi50aWxlNCB7YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7fVxuLnRpbGU1IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO31cbi50aWxlNiB7YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO31cbi50aWxlNyB7YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBib3R0b207fVxuLnRpbGU4IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO31cbi50aWxlOSB7YmFja2dyb3VuZDogI0YyRTM5NDsgY3Vyc29yOiBkZWZhdWx0O31cblxuYnV0dG9uIHtcbm1hcmdpbjogMzBweCBhdXRvO1xuYmFja2dyb3VuZC1jb2xvcjogIzE1NzU4ZjtcbmNvbG9yOiAjZmZmZmZmO1xuYm9yZGVyOiAwcHg7XG5wYWRkaW5nOiAxMHB4O1xudGV4dC1hbGlnbjogY2VudGVyO1xudGV4dC1kZWNvcmF0aW9uOiBub25lO1xuZGlzcGxheTogaW5saW5lLWJsb2NrO1xuZm9udC1zaXplOiAyNXB4O1xuY3Vyc29yOiBwb2ludGVyO1xuYm9yZGVyLXJhZGl1czogMTBweDtcbndpZHRoOiA1MHZ3O1xubWF4LXdpZHRoOiAzMDBweDtcbmFsaWduOiBjZW50ZXI7XG5mbG9hdDogY2VudGVyO1xufVxuXG5idXR0b246aG92ZXIge1xub3BhY2l0eTogMC44O1xufVxuXG5idXR0b246Zm9jdXMge1xub3V0bGluZTowO1xufVxuXG4jc29sdXRpb24ge1xuYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5ib3JkZXI6IDFweCBzb2xpZCAjMTU3NThmO1xuY29sb3I6ICMxNTc1OGY7XG5tYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLnNvbHV0aW9uLW1vZGFsIHtcbmRpc3BsYXk6IG5vbmU7XG5wb3NpdGlvbjogZml4ZWQ7XG56LWluZGV4OiAxO1xubGVmdDogMDtcbnRvcDogMDtcbndpZHRoOiAxMDAlO1xuaGVpZ2h0OiAxMDAlO1xub3ZlcmZsb3c6IGF1dG87XG5iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwwLDApO1xuYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xufVxuXG4ubW9kYWwtY29udGVudCB7XG5iYWNrZ3JvdW5kLWNvbG9yOiAjY2FmY2Q3O1xubWFyZ2luOiAxNSUgYXV0bztcbnBhZGRpbmc6IDEwcHg7XG5ib3JkZXI6IDFweCBzb2xpZCAjODg4O1xufVxuXG4uY2xvc2Uge1xuY29sb3I6ICMxNTc1OGY7XG5mbG9hdDogcmlnaHQ7XG5mb250LXNpemU6IDI4cHg7XG5mb250LXdlaWdodDogYm9sZDtcbn1cblxuLmNsb3NlOmhvdmVyLFxuLmNsb3NlOmZvY3VzIHtcbmNvbG9yOiAjZmZmZmZmO1xudGV4dC1kZWNvcmF0aW9uOiBub25lO1xuY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubW9kYWwtY29udGVudCBpbWcge1xud2lkdGg6IDUwdnc7XG59XG5cbi5jZW50ZXIge1xubWFyZ2luOiAwcHggYXV0bztcbmZsb2F0OiBjZW50ZXI7XG5hbGlnbjogY2VudGVyO1xucGFkZGluZzogMSUgMCAwIDA7XG59XG5cbi5oZWFkZXIge1xuY29sb3I6ICMxNTc1OGY7XG5mb250LXNpemU6IDN2dztcbm1hcmdpbjogMzBweCBhdXRvO1xudGV4dC1hbGlnbjogY2VudGVyO1xuZm9udC13ZWlnaHQ6IDIwMDtcbmxldHRlci1zcGFjaW5nOiA1cHg7XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udG9wLWhlYWRlciB7XG5mb250LXdlaWdodDogODAwO1xufVxuXG4uc3ViaGVhZGVyIHtcbmNvbG9yOiAjMTU3NThmO1xuZm9udC1zaXplOiAydnc7XG5tYXJnaW46IDMwcHggYXV0bztcbnRleHQtYWxpZ246IGNlbnRlcjtcbmZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbmhyIHtcbndpZHRoOiAzMCU7XG5tYXJnaW46IDIwcHggYXV0bztcbmJvcmRlci1ib3R0b206IDAuMTVweCBzb2xpZCAjMTU3NThmO1xufVxuPC9zdHlsZT5cblxuXG5cblxuXG4gIDxkaXYgY2xhc3M9XCJjZW50ZXJcIiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+PHNwYW4gY2xhc3M9XCJ0b3AtaGVhZGVyXCI+T29wczwvc3Bhbj48YnI+XG4gIFlvdSBmYWlsZWQgYSBzaW11bGF0ZWQgcGhpc2hpbmcgdGVzdDwvZGl2PlxuXG4gIDxocj5cblxuICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyXCI+U29sdmUgdGhlIHB1enpsZSB0byBsZWFybiBob3cgeW91IGNhbiBzdGF5IHNhZmUgb25saW5lPC9kaXY+XG5cbjxjZW50ZXI+PGRpdiBpZD1cInRhYmxlXCIgc3R5bGU9XCJkaXNwbGF5OiB0YWJsZTtcIj5cbiAgIDxkaXYgaWQ9XCJyb3cxXCIgc3R5bGU9XCJkaXNwbGF5OiB0YWJsZS1yb3c7XCI+XG4gICAgICA8ZGl2IGlkPVwiY2VsbDExXCIgY2xhc3M9XCJ0aWxlMVwiIG9uY2xpY2s9XCJjbGlja1RpbGUoMSwxKTtcIj48L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJjZWxsMTJcIiBjbGFzcz1cInRpbGUyXCIgb25jbGljaz1cImNsaWNrVGlsZSgxLDIpO1wiPjwvZGl2PlxuICAgICAgPGRpdiBpZD1cImNlbGwxM1wiIGNsYXNzPVwidGlsZTNcIiBvbmNsaWNrPVwiY2xpY2tUaWxlKDEsMyk7XCI+PC9kaXY+XG4gICA8L2Rpdj5cbiAgIDxkaXYgaWQ9XCJyb3cyXCIgc3R5bGU9XCJkaXNwbGF5OiB0YWJsZS1yb3c7XCI+XG4gICAgICA8ZGl2IGlkPVwiY2VsbDIxXCIgY2xhc3M9XCJ0aWxlNFwiIG9uY2xpY2s9XCJjbGlja1RpbGUoMiwxKTtcIj48L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJjZWxsMjJcIiBjbGFzcz1cInRpbGU1XCIgb25jbGljaz1cImNsaWNrVGlsZSgyLDIpO1wiPjwvZGl2PlxuICAgICAgPGRpdiBpZD1cImNlbGwyM1wiIGNsYXNzPVwidGlsZTZcIiBvbmNsaWNrPVwiY2xpY2tUaWxlKDIsMyk7XCI+PC9kaXY+XG4gICA8L2Rpdj5cbiAgIDxkaXYgaWQ9XCJyb3czXCIgc3R5bGU9XCJkaXNwbGF5OiB0YWJsZS1yb3c7XCI+XG4gICAgICA8ZGl2IGlkPVwiY2VsbDMxXCIgY2xhc3M9XCJ0aWxlN1wiIG9uY2xpY2s9XCJjbGlja1RpbGUoMywxKTtcIj48L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJjZWxsMzJcIiBjbGFzcz1cInRpbGU4XCIgb25jbGljaz1cImNsaWNrVGlsZSgzLDIpO1wiPjwvZGl2PlxuICAgICAgPGRpdiBpZD1cImNlbGwzM1wiIGNsYXNzPVwidGlsZTlcIiBvbmNsaWNrPVwiY2xpY2tUaWxlKDMsMyk7XCI+PC9kaXY+XG4gICA8L2Rpdj5cbjwvZGl2PlxuXG4gIDxidXR0b24gaWQ9XCJzb2x1dGlvblwiPlNPTFVUSU9OPC9idXR0b24+XG4gIDxidXR0b24gb25jbGljaz1cInNodWZmbGUoKTtcIj5TSFVGRkxFPC9idXR0b24+XG5cbiAgPGRpdiBpZD1cInNvbHV0aW9uLW1vZGFsXCIgY2xhc3M9XCJzb2x1dGlvbi1tb2RhbFwiPlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gIDxzcGFuIGNsYXNzPVwiY2xvc2VcIj5cdTAwZDc8L3NwYW4+XG4gIDxwPjxpbWcgc3JjPVwiaHR0cHM6Ly9pLmltZ3VyLmNvbS8wV2M5UkhrLnBuZ1wiPjwvcD5cbiAgPC9kaXY+XG5cbjwvZGl2PjwvY2VudGVyPlxuXG5cblxuPHNjcmlwdD5cbmZ1bmN0aW9uIHN3YXBUaWxlcyhjZWxsMSxjZWxsMikge1xudmFyIHRlbXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjZWxsMSkuY2xhc3NOYW1lO1xuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2VsbDEpLmNsYXNzTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNlbGwyKS5jbGFzc05hbWU7XG5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChjZWxsMikuY2xhc3NOYW1lID0gdGVtcDtcbn1cblxuZnVuY3Rpb24gc2h1ZmZsZSgpIHtcbi8vVXNlIG5lc3RlZCBsb29wcyB0byBhY2Nlc3MgZWFjaCBjZWxsIG9mIHRoZSAzeDMgZ3JpZFxuZm9yICh2YXIgcm93PTE7cm93PD0zO3JvdysrKSB7IC8vRm9yIGVhY2ggcm93IG9mIHRoZSAzeDMgZ3JpZFxuICAgZm9yICh2YXIgY29sdW1uPTE7Y29sdW1uPD0zO2NvbHVtbisrKSB7IC8vRm9yIGVhY2ggY29sdW1uIGluIHRoaXMgcm93XG5cbiAgICB2YXIgcm93Mj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMyArIDEpOyAvL1BpY2sgYSByYW5kb20gcm93IGZyb20gMSB0byAzXG4gICAgdmFyIGNvbHVtbjI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMgKyAxKTsgLy9QaWNrIGEgcmFuZG9tIGNvbHVtbiBmcm9tIDEgdG8gM1xuXG4gICAgc3dhcFRpbGVzKFwiY2VsbFwiK3Jvdytjb2x1bW4sXCJjZWxsXCIrcm93Mitjb2x1bW4yKTsgLy9Td2FwIHRoZSBsb29rICYgZmVlbCBvZiBib3RoIGNlbGxzXG4gIH1cbn1cbn1cblxuZnVuY3Rpb24gY2xpY2tUaWxlKHJvdyxjb2x1bW4pIHtcbiAgdmFyIGNlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNlbGxcIityb3crY29sdW1uKTtcbiAgdmFyIHRpbGUgPSBjZWxsLmNsYXNzTmFtZTtcbiAgaWYgKHRpbGUhPVwidGlsZTlcIikge1xuICAgICAgIGlmIChjb2x1bW48Mykge1xuICAgICAgICAgaWYgKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNlbGxcIityb3crKGNvbHVtbisxKSkuY2xhc3NOYW1lPT1cInRpbGU5XCIpIHtcbiAgICAgICAgICAgc3dhcFRpbGVzKFwiY2VsbFwiK3Jvdytjb2x1bW4sXCJjZWxsXCIrcm93Kyhjb2x1bW4rMSkpO1xuICAgICAgICAgICByZXR1cm47XG4gICAgICAgICB9XG4gICAgICAgfVxuICAgICAgIGlmIChjb2x1bW4+MSkge1xuICAgICAgICAgaWYgKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNlbGxcIityb3crKGNvbHVtbi0xKSkuY2xhc3NOYW1lPT1cInRpbGU5XCIpIHtcbiAgICAgICAgICAgc3dhcFRpbGVzKFwiY2VsbFwiK3Jvdytjb2x1bW4sXCJjZWxsXCIrcm93Kyhjb2x1bW4tMSkpO1xuICAgICAgICAgICByZXR1cm47XG4gICAgICAgICB9XG4gICAgICAgfVxuICAgICAgIGlmIChyb3c+MSkge1xuICAgICAgICAgaWYgKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNlbGxcIisocm93LTEpK2NvbHVtbikuY2xhc3NOYW1lPT1cInRpbGU5XCIpIHtcbiAgICAgICAgICAgc3dhcFRpbGVzKFwiY2VsbFwiK3Jvdytjb2x1bW4sXCJjZWxsXCIrKHJvdy0xKStjb2x1bW4pO1xuICAgICAgICAgICByZXR1cm47XG4gICAgICAgICB9XG4gICAgICAgfVxuICAgICAgIGlmIChyb3c8Mykge1xuICAgICAgICAgaWYgKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNlbGxcIisocm93KzEpK2NvbHVtbikuY2xhc3NOYW1lPT1cInRpbGU5XCIpIHtcbiAgICAgICAgICAgc3dhcFRpbGVzKFwiY2VsbFwiK3Jvdytjb2x1bW4sXCJjZWxsXCIrKHJvdysxKStjb2x1bW4pO1xuICAgICAgICAgICByZXR1cm47XG4gICAgICAgICB9XG4gICAgICAgfVxuICB9XG59XG48L3NjcmlwdD5cblxuPHNjcmlwdD5cbnZhciBtb2RhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic29sdXRpb24tbW9kYWxcIik7XG52YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzb2x1dGlvblwiKTtcbnZhciBzcGFuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImNsb3NlXCIpWzBdO1xuXG5idG4ub25jbGljayA9IGZ1bmN0aW9uKCkge1xuICBtb2RhbC5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xufVxuXG5zcGFuLm9uY2xpY2sgPSBmdW5jdGlvbigpIHtcbiAgbW9kYWwuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xufVxuXG53aW5kb3cub25jbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGlmIChldmVudC50YXJnZXQgPT0gbW9kYWwpIHtcbiAgICBtb2RhbC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gIH1cbn1cbjwvc2NyaXB0PlxuPC9kaXY+XG5cblxuPC9odG1sPlxuIn0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDcwNDYsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDcwNDZ9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiAxNTU1LjUzMywgInJlY2VpdmUiOiA1LjAwNH0sICJwYWdlcmVmIjogInBhZ2VAZjBiN2FkMjdhY2RiNmQyYTQ0ODgzNzllMzg2YjhlMjAiLCAic2VydmVySVBBZGRyZXNzIjogIjU0LjIyOS4xNzAuNjYiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4yIiwgInN1YmplY3ROYW1lIjogImVuY3J5cHRlZGNvbm5lY3Rpb24ubmV0IiwgImlzc3VlciI6ICJBbWF6b24gUlNBIDIwNDggTTAyIiwgInZhbGlkRnJvbSI6IDE2OTAxNTY4MDAsICJ2YWxpZFRvIjogMTcyNDE5ODM5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDEzOjA1OjA3LjYxNVoiLCAidGltZSI6IDM1Ljg5Nzk5OTk5OTk5OTk5NiwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vc2VjdXJlLnNpZ24tZG9jLmNvbS9hc3NldHMvbGFuZGluZy13YXRlcm1hcmstODQ4N2UzNmVlZjFiZWM3NGYwNjYzMWYxOWZlYTBhYTE3MWMyMDhlMjk3NjM3M2NkYTViZDBhNGI5ZTIzMDkwMy5jc3MiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJzZWN1cmUuc2lnbi1kb2MuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiL2Fzc2V0cy9sYW5kaW5nLXdhdGVybWFyay04NDg3ZTM2ZWVmMWJlYzc0ZjA2NjMxZjE5ZmVhMGFhMTcxYzIwOGUyOTc2MzczY2RhNWJkMGE0YjllMjMwOTAzLmNzcyJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogInRleHQvY3NzLCovKjtxPTAuMSJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyLCB6c3RkIn0sIHsibmFtZSI6ICJhY2NlcHQtbGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMsZW47cT0wLjkifSwgeyJuYW1lIjogInByaW9yaXR5IiwgInZhbHVlIjogInU9MCJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL3NlY3VyZS5zaWduLWRvYy5jb20vcGFnZXMvODkyNzRhYTU3Yzk2L1hUakpoVEdGelVISXJTbUpWUVRoSlkzaFNkMEpVSzA1bWMzWjFOWGxZTlhaNVUyeHhTMFk1TlhoT2NHUXdUV2x6VjNKaGVXcEpWbFJxVGpoU1NWTm5VQ3R3UkV0VUswZzBWbEJ6VlROUmNYRkRZWEZtV0VGeWVIVkhRVTVWUTNKdmNrMVBXRzlZWlhWVGJrNUlWMHBWY0VGaE4wWXJSMDA1VGsxd2JFMHhiM0pDTnlzeVpteDNjbEIzU0hock1rdzBOM293TUhweVExaDNkbFZ2Tm1sVFNtczRVMjlZUlRVM1Jtd3pPRXB3TDFwa1JFcHZPVkpHU1MwdFREbDZkM0ZFVHpkcGRtUlpZVkZqVFMwdFRYYzBUekZHVVhGSFlteEpTbFJKTDJJcmVDOTZkejA5In0sIHsibmFtZSI6ICJzZWMtY2gtdWEiLCAidmFsdWUiOiAiXCJDaHJvbWl1bVwiO3Y9XCIxMjVcIiwgXCJOb3QuQS9CcmFuZFwiO3Y9XCIyNFwiIn0sIHsibmFtZSI6ICJzZWMtY2gtdWEtbW9iaWxlIiwgInZhbHVlIjogIj8wIn0sIHsibmFtZSI6ICJzZWMtY2gtdWEtcGxhdGZvcm0iLCAidmFsdWUiOiAiXCJXaW5kb3dzXCIifSwgeyJuYW1lIjogInNlYy1mZXRjaC1kZXN0IiwgInZhbHVlIjogInN0eWxlIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtc2l0ZSIsICJ2YWx1ZSI6ICJzYW1lLW9yaWdpbiJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTI1LjAuNjQyMi4yNiBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogMTA2OCwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJjb250ZW50LWxlbmd0aCIsICJ2YWx1ZSI6ICI0MTUifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2NzcyJ9LCB7Im5hbWUiOiAiZGF0ZSIsICJ2YWx1ZSI6ICJUdWUsIDE4IEp1biAyMDI0IDEzOjA1OjA3IEdNVCJ9LCB7Im5hbWUiOiAibGFzdC1tb2RpZmllZCIsICJ2YWx1ZSI6ICJUdWUsIDE4IEp1biAyMDI0IDExOjEzOjM4IEdNVCJ9LCB7Im5hbWUiOiAic3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSIsICJ2YWx1ZSI6ICJtYXgtYWdlPTYzMTEzOTA0OyBpbmNsdWRlU3ViRG9tYWluczsgcHJlbG9hZCJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJhY2NlcHQtZW5jb2RpbmcifV0sICJjb250ZW50IjogeyJzaXplIjogMTQ3MSwgIm1pbWVUeXBlIjogInRleHQvY3NzIiwgImNvbXByZXNzaW9uIjogODcwLCAidGV4dCI6ICIvKiBsaW5lIDEsIGFwcC9hc3NldHMvc3R5bGVzaGVldHMvbGFuZGluZy13YXRlcm1hcmsuc2NzcyAqL1xuLndhdGVybWFyayB7XG4gIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDtcbiAgICAgIC1tcy13cml0aW5nLW1vZGU6IHRiLXJsO1xuICAgICAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XG4gIHRleHQtb3JpZW50YXRpb246IHNpZGV3YXlzO1xufVxuXG4vKiBsaW5lIDQsIGFwcC9hc3NldHMvc3R5bGVzaGVldHMvbGFuZGluZy13YXRlcm1hcmsuc2NzcyAqL1xuLndhdGVybWFyay5sZWZ0IHtcbiAgbGVmdDogMDtcbn1cblxuLyogbGluZSA3LCBhcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2xhbmRpbmctd2F0ZXJtYXJrLnNjc3MgKi9cbi53YXRlcm1hcmsucmlnaHQge1xuICByaWdodDogMDtcbn1cblxuLyogbGluZSAxMCwgYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9sYW5kaW5nLXdhdGVybWFyay5zY3NzICovXG4ud2F0ZXJtYXJrLnRvcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7XG4gICAgICAtbXMtd3JpdGluZy1tb2RlOiBsci10YjtcbiAgICAgICAgICB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7XG4gIHRvcDogLTM4cHg7XG59XG5cbi8qIGxpbmUgMTUsIGFwcC9hc3NldHMvc3R5bGVzaGVldHMvbGFuZGluZy13YXRlcm1hcmsuc2NzcyAqL1xuLndhdGVybWFyayBoMSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgY29sb3I6ICNmZGZkZmE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBsaW5lIDI0LCBhcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2xhbmRpbmctd2F0ZXJtYXJrLnNjc3MgKi9cbiN0ZW1wbGF0ZV9zZWkgLndhdGVybWFyay5sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xufVxuXG4vKiBsaW5lIDI3LCBhcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2xhbmRpbmctd2F0ZXJtYXJrLnNjc3MgKi9cbiN0ZW1wbGF0ZV9zZWkgLndhdGVybWFyay5yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG5cbi8qIGxpbmUgMzAsIGFwcC9hc3NldHMvc3R5bGVzaGVldHMvbGFuZGluZy13YXRlcm1hcmsuc2NzcyAqL1xuI3RlbXBsYXRlX3NlaSAud2F0ZXJtYXJrLnRvcCB7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xufVxuXG4vKiBsaW5lIDM1LCBhcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2xhbmRpbmctd2F0ZXJtYXJrLnNjc3MgKi9cbnAudmlzaWJsZS13YXRlcm1hcmsge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIGxpbmUgMzksIGFwcC9hc3NldHMvc3R5bGVzaGVldHMvbGFuZGluZy13YXRlcm1hcmsuc2NzcyAqL1xuLm1vZGFsLWJvZHkge1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgcGFkZGluZzogMCAxNXB4IDAgMTVweDtcbiAgZGlzcGxheTogZmxleDtcbn1cbiJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiA2MDEsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDYwMX0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDMyLjM5MSwgInJlY2VpdmUiOiAzLjUwN30sICJwYWdlcmVmIjogInBhZ2VAZjBiN2FkMjdhY2RiNmQyYTQ0ODgzNzllMzg2YjhlMjAiLCAic2VydmVySVBBZGRyZXNzIjogIjU0LjIyOS4xNzAuNjYiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4yIiwgInN1YmplY3ROYW1lIjogImVuY3J5cHRlZGNvbm5lY3Rpb24ubmV0IiwgImlzc3VlciI6ICJBbWF6b24gUlNBIDIwNDggTTAyIiwgInZhbGlkRnJvbSI6IDE2OTAxNTY4MDAsICJ2YWxpZFRvIjogMTcyNDE5ODM5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDI0LTA2LTE4VDEzOjA1OjA3LjYxNVoiLCAidGltZSI6IDExMi43MjgwMDAwMDAwMDAwMSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vc2VjdXJlLnNpZ24tZG9jLmNvbS9hc3NldHMvYXBwbGljYXRpb24tMjM3Y2I1YzRmMzE4Njg3NjI1ZjhjY2YyZjQyZGUzZmMyMDIzOGJmZTI2NzM4NDY1MzQ5MWE2YmJhOGM4ZjZmNS5qcyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogInNlY3VyZS5zaWduLWRvYy5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvYXNzZXRzL2FwcGxpY2F0aW9uLTIzN2NiNWM0ZjMxODY4NzYyNWY4Y2NmMmY0MmRlM2ZjMjAyMzhiZmUyNjczODQ2NTM0OTFhNmJiYThjOGY2ZjUuanMifSwgeyJuYW1lIjogIjpzY2hlbWUiLCAidmFsdWUiOiAiaHR0cHMifSwgeyJuYW1lIjogImFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogImFjY2VwdC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciwgenN0ZCJ9LCB7Im5hbWUiOiAiYWNjZXB0LWxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTLGVuO3E9MC45In0sIHsibmFtZSI6ICJwcmlvcml0eSIsICJ2YWx1ZSI6ICJ1PTEifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly9zZWN1cmUuc2lnbi1kb2MuY29tL3BhZ2VzLzg5Mjc0YWE1N2M5Ni9YVGpKaFRHRnpVSElyU21KVlFUaEpZM2hTZDBKVUswNW1jM1oxTlhsWU5YWjVVMnh4UzBZNU5YaE9jR1F3VFdselYzSmhlV3BKVmxScVRqaFNTVk5uVUN0d1JFdFVLMGcwVmxCelZUTlJjWEZEWVhGbVdFRnllSFZIUVU1VlEzSnZjazFQV0c5WVpYVlRiazVJVjBwVmNFRmhOMFlyUjAwNVRrMXdiRTB4YjNKQ055c3labXgzY2xCM1NIaHJNa3cwTjNvd01IcHlRMWgzZGxWdk5tbFRTbXM0VTI5WVJUVTNSbXd6T0Vwd0wxcGtSRXB2T1ZKR1NTMHRURGw2ZDNGRVR6ZHBkbVJaWVZGalRTMHRUWGMwVHpGR1VYRkhZbXhKU2xSSkwySXJlQzk2ZHowOSJ9LCB7Im5hbWUiOiAic2VjLWNoLXVhIiwgInZhbHVlIjogIlwiQ2hyb21pdW1cIjt2PVwiMTI1XCIsIFwiTm90LkEvQnJhbmRcIjt2PVwiMjRcIiJ9LCB7Im5hbWUiOiAic2VjLWNoLXVhLW1vYmlsZSIsICJ2YWx1ZSI6ICI/MCJ9LCB7Im5hbWUiOiAic2VjLWNoLXVhLXBsYXRmb3JtIiwgInZhbHVlIjogIlwiV2luZG93c1wiIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJzY3JpcHQifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogInNhbWUtb3JpZ2luIn0sIHsibmFtZSI6ICJ1c2VyLWFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMjUuMC42NDIyLjI2IFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiAxMDQwLCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJjb250ZW50LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogImNvbnRlbnQtbGVuZ3RoIiwgInZhbHVlIjogIjEwNjY4NiJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiVHVlLCAxOCBKdW4gMjAyNCAxMzowNTowNyBHTVQifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiVHVlLCAxOCBKdW4gMjAyNCAwOTo1Nzo0NiBHTVQifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT02MzExMzkwNDsgaW5jbHVkZVN1YkRvbWFpbnM7IHByZWxvYWQifSwgeyJuYW1lIjogInZhcnkiLCAidmFsdWUiOiAiYWNjZXB0LWVuY29kaW5nIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDM4MDg0OCwgIm1pbWVUeXBlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLCAiY29tcHJlc3Npb24iOiAyNzM4MzYsICJ0ZXh0IjogIi8qISBqUXVlcnkgdjMuNy4xIHwgKGMpIE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi9cbiFmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO1wib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGUmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKFwialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudFwiKTtyZXR1cm4gdChlKX06dChlKX0oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihpZSxlKXtcInVzZSBzdHJpY3RcIjt2YXIgb2U9W10scj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsYWU9b2Uuc2xpY2UsZz1vZS5mbGF0P2Z1bmN0aW9uKGUpe3JldHVybiBvZS5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBvZS5jb25jYXQuYXBwbHkoW10sZSl9LHM9b2UucHVzaCxzZT1vZS5pbmRleE9mLG49e30saT1uLnRvU3RyaW5nLHVlPW4uaGFzT3duUHJvcGVydHksbz11ZS50b1N0cmluZyxhPW8uY2FsbChPYmplY3QpLGxlPXt9LHY9ZnVuY3Rpb24oZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmXCJudW1iZXJcIiE9dHlwZW9mIGUubm9kZVR5cGUmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUuaXRlbX0seT1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmZT09PWUud2luZG93fSxDPWllLmRvY3VtZW50LHU9e3R5cGU6ITAsc3JjOiEwLG5vbmNlOiEwLG5vTW9kdWxlOiEwfTtmdW5jdGlvbiBtKGUsdCxuKXt2YXIgcixpLG89KG49bnx8QykuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtpZihvLnRleHQ9ZSx0KWZvcihyIGluIHUpKGk9dFtyXXx8dC5nZXRBdHRyaWJ1dGUmJnQuZ2V0QXR0cmlidXRlKHIpKSYmby5zZXRBdHRyaWJ1dGUocixpKTtuLmhlYWQuYXBwZW5kQ2hpbGQobykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKX1mdW5jdGlvbiB4KGUpe3JldHVybiBudWxsPT1lP2UrXCJcIjpcIm9iamVjdFwiPT10eXBlb2YgZXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZT9uW2kuY2FsbChlKV18fFwib2JqZWN0XCI6dHlwZW9mIGV9dmFyIHQ9XCIzLjcuMVwiLGw9L0hUTUwkL2ksY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IGNlLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gYyhlKXt2YXIgdD0hIWUmJlwibGVuZ3RoXCJpbiBlJiZlLmxlbmd0aCxuPXgoZSk7cmV0dXJuIXYoZSkmJiF5KGUpJiYoXCJhcnJheVwiPT09bnx8MD09PXR8fFwibnVtYmVyXCI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1mdW5jdGlvbiBmZShlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9Y2UuZm49Y2UucHJvdG90eXBlPXtqcXVlcnk6dCxjb25zdHJ1Y3RvcjpjZSxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIGFlLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT9hZS5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1jZS5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHR9LGVhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIGNlLmVhY2godGhpcyxlKX0sbWFwOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnB1c2hTdGFjayhjZS5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhhZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGNlLmdyZXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybih0KzEpJTJ9KSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhjZS5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDpzLHNvcnQ6b2Uuc29ydCxzcGxpY2U6b2Uuc3BsaWNlfSxjZS5leHRlbmQ9Y2UuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsaSxvLGE9YXJndW1lbnRzWzBdfHx7fSxzPTEsdT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7Zm9yKFwiYm9vbGVhblwiPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSxcIm9iamVjdFwiPT10eXBlb2YgYXx8dihhKXx8KGE9e30pLHM9PT11JiYoYT10aGlzLHMtLSk7czx1O3MrKylpZihudWxsIT0oZT1hcmd1bWVudHNbc10pKWZvcih0IGluIGUpcj1lW3RdLFwiX19wcm90b19fXCIhPT10JiZhIT09ciYmKGwmJnImJihjZS5pc1BsYWluT2JqZWN0KHIpfHwoaT1BcnJheS5pc0FycmF5KHIpKSk/KG49YVt0XSxvPWkmJiFBcnJheS5pc0FycmF5KG4pP1tdOml8fGNlLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Y2UuZXh0ZW5kKGwsbyxyKSk6dm9pZCAwIT09ciYmKGFbdF09cikpO3JldHVybiBhfSxjZS5leHRlbmQoe2V4cGFuZG86XCJqUXVlcnlcIisodCtNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cXEQvZyxcIlwiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fFwiW29iamVjdCBPYmplY3RdXCIhPT1pLmNhbGwoZSkpJiYoISh0PXIoZSkpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZihuPXVlLmNhbGwodCxcImNvbnN0cnVjdG9yXCIpJiZ0LmNvbnN0cnVjdG9yKSYmby5jYWxsKG4pPT09YSl9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZSlyZXR1cm4hMTtyZXR1cm4hMH0sZ2xvYmFsRXZhbDpmdW5jdGlvbihlLHQsbil7bShlLHtub25jZTp0JiZ0Lm5vbmNlfSxuKX0sZWFjaDpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MDtpZihjKGUpKXtmb3Iobj1lLmxlbmd0aDtyPG47cisrKWlmKCExPT09dC5jYWxsKGVbcl0scixlW3JdKSlicmVha31lbHNlIGZvcihyIGluIGUpaWYoITE9PT10LmNhbGwoZVtyXSxyLGVbcl0pKWJyZWFrO3JldHVybiBlfSx0ZXh0OmZ1bmN0aW9uKGUpe3ZhciB0LG49XCJcIixyPTAsaT1lLm5vZGVUeXBlO2lmKCFpKXdoaWxlKHQ9ZVtyKytdKW4rPWNlLnRleHQodCk7cmV0dXJuIDE9PT1pfHwxMT09PWk/ZS50ZXh0Q29udGVudDo5PT09aT9lLmRvY3VtZW50RWxlbWVudC50ZXh0Q29udGVudDozPT09aXx8ND09PWk/ZS5ub2RlVmFsdWU6bn0sbWFrZUFycmF5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dHx8W107cmV0dXJuIG51bGwhPWUmJihjKE9iamVjdChlKSk/Y2UubWVyZ2UobixcInN0cmluZ1wiPT10eXBlb2YgZT9bZV06ZSk6cy5jYWxsKG4sZSkpLG59LGluQXJyYXk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBudWxsPT10Py0xOnNlLmNhbGwodCxlLG4pfSxpc1hNTERvYzpmdW5jdGlvbihlKXt2YXIgdD1lJiZlLm5hbWVzcGFjZVVSSSxuPWUmJihlLm93bmVyRG9jdW1lbnR8fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hbC50ZXN0KHR8fG4mJm4ubm9kZU5hbWV8fFwiSFRNTFwiKX0sbWVyZ2U6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49K3QubGVuZ3RoLHI9MCxpPWUubGVuZ3RoO3I8bjtyKyspZVtpKytdPXRbcl07cmV0dXJuIGUubGVuZ3RoPWksZX0sZ3JlcDpmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPVtdLGk9MCxvPWUubGVuZ3RoLGE9IW47aTxvO2krKykhdChlW2ldLGkpIT09YSYmci5wdXNoKGVbaV0pO3JldHVybiByfSxtYXA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz0wLGE9W107aWYoYyhlKSlmb3Iocj1lLmxlbmd0aDtvPHI7bysrKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmYS5wdXNoKGkpO2Vsc2UgZm9yKG8gaW4gZSludWxsIT0oaT10KGVbb10sbyxuKSkmJmEucHVzaChpKTtyZXR1cm4gZyhhKX0sZ3VpZDoxLHN1cHBvcnQ6bGV9KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihjZS5mbltTeW1ib2wuaXRlcmF0b3JdPW9lW1N5bWJvbC5pdGVyYXRvcl0pLGNlLmVhY2goXCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbFwiLnNwbGl0KFwiIFwiKSxmdW5jdGlvbihlLHQpe25bXCJbb2JqZWN0IFwiK3QrXCJdXCJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBwZT1vZS5wb3AsZGU9b2Uuc29ydCxoZT1vZS5zcGxpY2UsZ2U9XCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiLHZlPW5ldyBSZWdFeHAoXCJeXCIrZ2UrXCIrfCgoPzpefFteXFxcXFxcXFxdKSg/OlxcXFxcXFxcLikqKVwiK2dlK1wiKyRcIixcImdcIik7Y2UuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXt2YXIgbj10JiZ0LnBhcmVudE5vZGU7cmV0dXJuIGU9PT1ufHwhKCFufHwxIT09bi5ub2RlVHlwZXx8IShlLmNvbnRhaW5zP2UuY29udGFpbnMobik6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuKSkpfTt2YXIgZj0vKFtcXDAtXFx4MWZcXHg3Zl18Xi0/XFxkKXxeLSR8W15cXHg4MC1cXHVGRkZGXFx3LV0vZztmdW5jdGlvbiBwKGUsdCl7cmV0dXJuIHQ/XCJcXDBcIj09PWU/XCJcXHVmZmZkXCI6ZS5zbGljZSgwLC0xKStcIlxcXFxcIitlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpK1wiIFwiOlwiXFxcXFwiK2V9Y2UuZXNjYXBlU2VsZWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrXCJcIikucmVwbGFjZShmLHApfTt2YXIgeWU9QyxtZT1zOyFmdW5jdGlvbigpe3ZhciBlLGIsdyxvLGEsVCxyLEMsZCxpLGs9bWUsUz1jZS5leHBhbmRvLEU9MCxuPTAscz1XKCksYz1XKCksdT1XKCksaD1XKCksbD1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKGE9ITApLDB9LGY9XCJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZFwiLHQ9XCIoPzpcXFxcXFxcXFtcXFxcZGEtZkEtRl17MSw2fVwiK2dlK1wiP3xcXFxcXFxcXFteXFxcXHJcXFxcblxcXFxmXXxbXFxcXHctXXxbXlxcMC1cXFxceDdmXSkrXCIscD1cIlxcXFxbXCIrZ2UrXCIqKFwiK3QrXCIpKD86XCIrZ2UrXCIqKFsqXiR8IX5dPz0pXCIrZ2UrXCIqKD86JygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwifChcIit0K1wiKSl8KVwiK2dlK1wiKlxcXFxdXCIsZz1cIjooXCIrdCtcIikoPzpcXFxcKCgoJygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwiKXwoKD86XFxcXFxcXFwufFteXFxcXFxcXFwoKVtcXFxcXV18XCIrcCtcIikqKXwuKilcXFxcKXwpXCIsdj1uZXcgUmVnRXhwKGdlK1wiK1wiLFwiZ1wiKSx5PW5ldyBSZWdFeHAoXCJeXCIrZ2UrXCIqLFwiK2dlK1wiKlwiKSxtPW5ldyBSZWdFeHAoXCJeXCIrZ2UrXCIqKFs+K35dfFwiK2dlK1wiKVwiK2dlK1wiKlwiKSx4PW5ldyBSZWdFeHAoZ2UrXCJ8PlwiKSxqPW5ldyBSZWdFeHAoZyksQT1uZXcgUmVnRXhwKFwiXlwiK3QrXCIkXCIpLEQ9e0lEOm5ldyBSZWdFeHAoXCJeIyhcIit0K1wiKVwiKSxDTEFTUzpuZXcgUmVnRXhwKFwiXlxcXFwuKFwiK3QrXCIpXCIpLFRBRzpuZXcgUmVnRXhwKFwiXihcIit0K1wifFsqXSlcIiksQVRUUjpuZXcgUmVnRXhwKFwiXlwiK3ApLFBTRVVETzpuZXcgUmVnRXhwKFwiXlwiK2cpLENISUxEOm5ldyBSZWdFeHAoXCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXFxcKFwiK2dlK1wiKihldmVufG9kZHwoKFsrLV18KShcXFxcZCopbnwpXCIrZ2UrXCIqKD86KFsrLV18KVwiK2dlK1wiKihcXFxcZCspfCkpXCIrZ2UrXCIqXFxcXCl8KVwiLFwiaVwiKSxib29sOm5ldyBSZWdFeHAoXCJeKD86XCIrZitcIikkXCIsXCJpXCIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKFwiXlwiK2dlK1wiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFxcXChcIitnZStcIiooKD86LVxcXFxkKT9cXFxcZCopXCIrZ2UrXCIqXFxcXCl8KSg/PVteLV18JClcIixcImlcIil9LE49L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxxPS9eaFxcZCQvaSxMPS9eKD86IyhbXFx3LV0rKXwoXFx3Kyl8XFwuKFtcXHctXSspKSQvLEg9L1srfl0vLE89bmV3IFJlZ0V4cChcIlxcXFxcXFxcW1xcXFxkYS1mQS1GXXsxLDZ9XCIrZ2UrXCI/fFxcXFxcXFxcKFteXFxcXHJcXFxcblxcXFxmXSlcIixcImdcIiksUD1mdW5jdGlvbihlLHQpe3ZhciBuPVwiMHhcIitlLnNsaWNlKDEpLTY1NTM2O3JldHVybiB0fHwobjwwP1N0cmluZy5mcm9tQ2hhckNvZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjApKX0sTT1mdW5jdGlvbigpe1YoKX0sUj1KKGZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZS5kaXNhYmxlZCYmZmUoZSxcImZpZWxkc2V0XCIpfSx7ZGlyOlwicGFyZW50Tm9kZVwiLG5leHQ6XCJsZWdlbmRcIn0pO3RyeXtrLmFwcGx5KG9lPWFlLmNhbGwoeWUuY2hpbGROb2RlcykseWUuY2hpbGROb2Rlcyksb2VbeWUuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGUpe2s9e2FwcGx5OmZ1bmN0aW9uKGUsdCl7bWUuYXBwbHkoZSxhZS5jYWxsKHQpKX0sY2FsbDpmdW5jdGlvbihlKXttZS5hcHBseShlLGFlLmNhbGwoYXJndW1lbnRzLDEpKX19fWZ1bmN0aW9uIEkodCxlLG4scil7dmFyIGksbyxhLHMsdSxsLGMsZj1lJiZlLm93bmVyRG9jdW1lbnQscD1lP2Uubm9kZVR5cGU6OTtpZihuPW58fFtdLFwic3RyaW5nXCIhPXR5cGVvZiB0fHwhdHx8MSE9PXAmJjkhPT1wJiYxMSE9PXApcmV0dXJuIG47aWYoIXImJihWKGUpLGU9ZXx8VCxDKSl7aWYoMTEhPT1wJiYodT1MLmV4ZWModCkpKWlmKGk9dVsxXSl7aWYoOT09PXApe2lmKCEoYT1lLmdldEVsZW1lbnRCeUlkKGkpKSlyZXR1cm4gbjtpZihhLmlkPT09aSlyZXR1cm4gay5jYWxsKG4sYSksbn1lbHNlIGlmKGYmJihhPWYuZ2V0RWxlbWVudEJ5SWQoaSkpJiZJLmNvbnRhaW5zKGUsYSkmJmEuaWQ9PT1pKXJldHVybiBrLmNhbGwobixhKSxufWVsc2V7aWYodVsyXSlyZXR1cm4gay5hcHBseShuLGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCkpLG47aWYoKGk9dVszXSkmJmUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gay5hcHBseShuLGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpKSksbn1pZighKGhbdCtcIiBcIl18fGQmJmQudGVzdCh0KSkpe2lmKGM9dCxmPWUsMT09PXAmJih4LnRlc3QodCl8fG0udGVzdCh0KSkpeyhmPUgudGVzdCh0KSYmVShlLnBhcmVudE5vZGUpfHxlKT09ZSYmbGUuc2NvcGV8fCgocz1lLmdldEF0dHJpYnV0ZShcImlkXCIpKT9zPWNlLmVzY2FwZVNlbGVjdG9yKHMpOmUuc2V0QXR0cmlidXRlKFwiaWRcIixzPVMpKSxvPShsPVkodCkpLmxlbmd0aDt3aGlsZShvLS0pbFtvXT0ocz9cIiNcIitzOlwiOnNjb3BlXCIpK1wiIFwiK1EobFtvXSk7Yz1sLmpvaW4oXCIsXCIpfXRyeXtyZXR1cm4gay5hcHBseShuLGYucXVlcnlTZWxlY3RvckFsbChjKSksbn1jYXRjaChlKXtoKHQsITApfWZpbmFsbHl7cz09PVMmJmUucmVtb3ZlQXR0cmlidXRlKFwiaWRcIil9fX1yZXR1cm4gcmUodC5yZXBsYWNlKHZlLFwiJDFcIiksZSxuLHIpfWZ1bmN0aW9uIFcoKXt2YXIgcj1bXTtyZXR1cm4gZnVuY3Rpb24gZSh0LG4pe3JldHVybiByLnB1c2godCtcIiBcIik+Yi5jYWNoZUxlbmd0aCYmZGVsZXRlIGVbci5zaGlmdCgpXSxlW3QrXCIgXCJdPW59fWZ1bmN0aW9uIEYoZSl7cmV0dXJuIGVbU109ITAsZX1mdW5jdGlvbiAkKGUpe3ZhciB0PVQuY3JlYXRlRWxlbWVudChcImZpZWxkc2V0XCIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2goZSl7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIEIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBmZShlLFwiaW5wdXRcIikmJmUudHlwZT09PXR9fWZ1bmN0aW9uIF8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybihmZShlLFwiaW5wdXRcIil8fGZlKGUsXCJidXR0b25cIikpJiZlLnR5cGU9PT10fX1mdW5jdGlvbiB6KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm5cImZvcm1cImluIGU/ZS5wYXJlbnROb2RlJiYhMT09PWUuZGlzYWJsZWQ/XCJsYWJlbFwiaW4gZT9cImxhYmVsXCJpbiBlLnBhcmVudE5vZGU/ZS5wYXJlbnROb2RlLmRpc2FibGVkPT09dDplLmRpc2FibGVkPT09dDplLmlzRGlzYWJsZWQ9PT10fHxlLmlzRGlzYWJsZWQhPT0hdCYmUihlKT09PXQ6ZS5kaXNhYmxlZD09PXQ6XCJsYWJlbFwiaW4gZSYmZS5kaXNhYmxlZD09PXR9fWZ1bmN0aW9uIFgoYSl7cmV0dXJuIEYoZnVuY3Rpb24obyl7cmV0dXJuIG89K28sRihmdW5jdGlvbihlLHQpe3ZhciBuLHI9YShbXSxlLmxlbmd0aCxvKSxpPXIubGVuZ3RoO3doaWxlKGktLSllW249cltpXV0mJihlW25dPSEodFtuXT1lW25dKSl9KX0pfWZ1bmN0aW9uIFUoZSl7cmV0dXJuIGUmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZlfWZ1bmN0aW9uIFYoZSl7dmFyIHQsbj1lP2Uub3duZXJEb2N1bWVudHx8ZTp5ZTtyZXR1cm4gbiE9VCYmOT09PW4ubm9kZVR5cGUmJm4uZG9jdW1lbnRFbGVtZW50JiYocj0oVD1uKS5kb2N1bWVudEVsZW1lbnQsQz0hY2UuaXNYTUxEb2MoVCksaT1yLm1hdGNoZXN8fHIud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxyLm1zTWF0Y2hlc1NlbGVjdG9yLHIubXNNYXRjaGVzU2VsZWN0b3ImJnllIT1UJiYodD1ULmRlZmF1bHRWaWV3KSYmdC50b3AhPT10JiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJ1bmxvYWRcIixNKSxsZS5nZXRCeUlkPSQoZnVuY3Rpb24oZSl7cmV0dXJuIHIuYXBwZW5kQ2hpbGQoZSkuaWQ9Y2UuZXhwYW5kbywhVC5nZXRFbGVtZW50c0J5TmFtZXx8IVQuZ2V0RWxlbWVudHNCeU5hbWUoY2UuZXhwYW5kbykubGVuZ3RofSksbGUuZGlzY29ubmVjdGVkTWF0Y2g9JChmdW5jdGlvbihlKXtyZXR1cm4gaS5jYWxsKGUsXCIqXCIpfSksbGUuc2NvcGU9JChmdW5jdGlvbigpe3JldHVybiBULnF1ZXJ5U2VsZWN0b3JBbGwoXCI6c2NvcGVcIil9KSxsZS5jc3NIYXM9JChmdW5jdGlvbigpe3RyeXtyZXR1cm4gVC5xdWVyeVNlbGVjdG9yKFwiOmhhcygqLDpqcWZha2UpXCIpLCExfWNhdGNoKGUpe3JldHVybiEwfX0pLGxlLmdldEJ5SWQ/KGIuZmlsdGVyLklEPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShPLFApO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoXCJpZFwiKT09PXR9fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgdC5nZXRFbGVtZW50QnlJZCYmQyl7dmFyIG49dC5nZXRFbGVtZW50QnlJZChlKTtyZXR1cm4gbj9bbl06W119fSk6KGIuZmlsdGVyLklEPWZ1bmN0aW9uKGUpe3ZhciBuPWUucmVwbGFjZShPLFApO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1cInVuZGVmaW5lZFwiIT10eXBlb2YgZS5nZXRBdHRyaWJ1dGVOb2RlJiZlLmdldEF0dHJpYnV0ZU5vZGUoXCJpZFwiKTtyZXR1cm4gdCYmdC52YWx1ZT09PW59fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgdC5nZXRFbGVtZW50QnlJZCYmQyl7dmFyIG4scixpLG89dC5nZXRFbGVtZW50QnlJZChlKTtpZihvKXtpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoXCJpZFwiKSkmJm4udmFsdWU9PT1lKXJldHVybltvXTtpPXQuZ2V0RWxlbWVudHNCeU5hbWUoZSkscj0wO3doaWxlKG89aVtyKytdKWlmKChuPW8uZ2V0QXR0cmlidXRlTm9kZShcImlkXCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dfXJldHVybltdfX0pLGIuZmluZC5UQUc9ZnVuY3Rpb24oZSx0KXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOnQucXVlcnlTZWxlY3RvckFsbChlKX0sYi5maW5kLkNMQVNTPWZ1bmN0aW9uKGUsdCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmQylyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGUpfSxkPVtdLCQoZnVuY3Rpb24oZSl7dmFyIHQ7ci5hcHBlbmRDaGlsZChlKS5pbm5lckhUTUw9XCI8YSBpZD0nXCIrUytcIicgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT48c2VsZWN0IGlkPSdcIitTK1wiLVxcclxcXFwnIGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD5cIixlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbc2VsZWN0ZWRdXCIpLmxlbmd0aHx8ZC5wdXNoKFwiXFxcXFtcIitnZStcIiooPzp2YWx1ZXxcIitmK1wiKVwiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbaWR+PVwiK1MrXCItXVwiKS5sZW5ndGh8fGQucHVzaChcIn49XCIpLGUucXVlcnlTZWxlY3RvckFsbChcImEjXCIrUytcIisqXCIpLmxlbmd0aHx8ZC5wdXNoKFwiLiMuK1srfl1cIiksZS5xdWVyeVNlbGVjdG9yQWxsKFwiOmNoZWNrZWRcIikubGVuZ3RofHxkLnB1c2goXCI6Y2hlY2tlZFwiKSwodD1ULmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKSkuc2V0QXR0cmlidXRlKFwidHlwZVwiLFwiaGlkZGVuXCIpLGUuYXBwZW5kQ2hpbGQodCkuc2V0QXR0cmlidXRlKFwibmFtZVwiLFwiRFwiKSxyLmFwcGVuZENoaWxkKGUpLmRpc2FibGVkPSEwLDIhPT1lLnF1ZXJ5U2VsZWN0b3JBbGwoXCI6ZGlzYWJsZWRcIikubGVuZ3RoJiZkLnB1c2goXCI6ZW5hYmxlZFwiLFwiOmRpc2FibGVkXCIpLCh0PVQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpKS5zZXRBdHRyaWJ1dGUoXCJuYW1lXCIsXCJcIiksZS5hcHBlbmRDaGlsZCh0KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbbmFtZT0nJ11cIikubGVuZ3RofHxkLnB1c2goXCJcXFxcW1wiK2dlK1wiKm5hbWVcIitnZStcIio9XCIrZ2UrXCIqKD86Jyd8XFxcIlxcXCIpXCIpfSksbGUuY3NzSGFzfHxkLnB1c2goXCI6aGFzXCIpLGQ9ZC5sZW5ndGgmJm5ldyBSZWdFeHAoZC5qb2luKFwifFwiKSksbD1mdW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiBhPSEwLDA7dmFyIG49IWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIXQuY29tcGFyZURvY3VtZW50UG9zaXRpb247cmV0dXJuIG58fCgxJihuPShlLm93bmVyRG9jdW1lbnR8fGUpPT0odC5vd25lckRvY3VtZW50fHx0KT9lLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpOjEpfHwhbGUuc29ydERldGFjaGVkJiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpPT09bj9lPT09VHx8ZS5vd25lckRvY3VtZW50PT15ZSYmSS5jb250YWlucyh5ZSxlKT8tMTp0PT09VHx8dC5vd25lckRvY3VtZW50PT15ZSYmSS5jb250YWlucyh5ZSx0KT8xOm8/c2UuY2FsbChvLGUpLXNlLmNhbGwobyx0KTowOjQmbj8tMToxKX0pLFR9Zm9yKGUgaW4gSS5tYXRjaGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEkoZSxudWxsLG51bGwsdCl9LEkubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGUsdCl7aWYoVihlKSxDJiYhaFt0K1wiIFwiXSYmKCFkfHwhZC50ZXN0KHQpKSl0cnl7dmFyIG49aS5jYWxsKGUsdCk7aWYobnx8bGUuZGlzY29ubmVjdGVkTWF0Y2h8fGUuZG9jdW1lbnQmJjExIT09ZS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gbn1jYXRjaChlKXtoKHQsITApfXJldHVybiAwPEkodCxULG51bGwsW2VdKS5sZW5ndGh9LEkuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZS5vd25lckRvY3VtZW50fHxlKSE9VCYmVihlKSxjZS5jb250YWlucyhlLHQpfSxJLmF0dHI9ZnVuY3Rpb24oZSx0KXsoZS5vd25lckRvY3VtZW50fHxlKSE9VCYmVihlKTt2YXIgbj1iLmF0dHJIYW5kbGVbdC50b0xvd2VyQ2FzZSgpXSxyPW4mJnVlLmNhbGwoYi5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/bihlLHQsIUMpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cj9yOmUuZ2V0QXR0cmlidXRlKHQpfSxJLmVycm9yPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihcIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246IFwiK2UpfSxjZS51bmlxdWVTb3J0PWZ1bmN0aW9uKGUpe3ZhciB0LG49W10scj0wLGk9MDtpZihhPSFsZS5zb3J0U3RhYmxlLG89IWxlLnNvcnRTdGFibGUmJmFlLmNhbGwoZSwwKSxkZS5jYWxsKGUsbCksYSl7d2hpbGUodD1lW2krK10pdD09PWVbaV0mJihyPW4ucHVzaChpKSk7d2hpbGUoci0tKWhlLmNhbGwoZSxuW3JdLDEpfXJldHVybiBvPW51bGwsZX0sY2UuZm4udW5pcXVlU29ydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhjZS51bmlxdWVTb3J0KGFlLmFwcGx5KHRoaXMpKSl9LChiPWNlLmV4cHI9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpGLG1hdGNoOkQsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOntcIj5cIjp7ZGlyOlwicGFyZW50Tm9kZVwiLGZpcnN0OiEwfSxcIiBcIjp7ZGlyOlwicGFyZW50Tm9kZVwifSxcIitcIjp7ZGlyOlwicHJldmlvdXNTaWJsaW5nXCIsZmlyc3Q6ITB9LFwiflwiOntkaXI6XCJwcmV2aW91c1NpYmxpbmdcIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnJlcGxhY2UoTyxQKSxlWzNdPShlWzNdfHxlWzRdfHxlWzVdfHxcIlwiKS5yZXBsYWNlKE8sUCksXCJ+PVwiPT09ZVsyXSYmKGVbM109XCIgXCIrZVszXStcIiBcIiksZS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnRvTG93ZXJDYXNlKCksXCJudGhcIj09PWVbMV0uc2xpY2UoMCwzKT8oZVszXXx8SS5lcnJvcihlWzBdKSxlWzRdPSsoZVs0XT9lWzVdKyhlWzZdfHwxKToyKihcImV2ZW5cIj09PWVbM118fFwib2RkXCI9PT1lWzNdKSksZVs1XT0rKGVbN10rZVs4XXx8XCJvZGRcIj09PWVbM10pKTplWzNdJiZJLmVycm9yKGVbMF0pLGV9LFBTRVVETzpmdW5jdGlvbihlKXt2YXIgdCxuPSFlWzZdJiZlWzJdO3JldHVybiBELkNISUxELnRlc3QoZVswXSk/bnVsbDooZVszXT9lWzJdPWVbNF18fGVbNV18fFwiXCI6biYmai50ZXN0KG4pJiYodD1ZKG4sITApKSYmKHQ9bi5pbmRleE9mKFwiKVwiLG4ubGVuZ3RoLXQpLW4ubGVuZ3RoKSYmKGVbMF09ZVswXS5zbGljZSgwLHQpLGVbMl09bi5zbGljZSgwLHQpKSxlLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKE8sUCkudG9Mb3dlckNhc2UoKTtyZXR1cm5cIipcIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGZlKGUsdCl9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1zW2UrXCIgXCJdO3JldHVybiB0fHwodD1uZXcgUmVnRXhwKFwiKF58XCIrZ2UrXCIpXCIrZStcIihcIitnZStcInwkKVwiKSkmJnMoZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KFwic3RyaW5nXCI9PXR5cGVvZiBlLmNsYXNzTmFtZSYmZS5jbGFzc05hbWV8fFwidW5kZWZpbmVkXCIhPXR5cGVvZiBlLmdldEF0dHJpYnV0ZSYmZS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIil9KX0sQVRUUjpmdW5jdGlvbihuLHIsaSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PUkuYXR0cihlLG4pO3JldHVybiBudWxsPT10P1wiIT1cIj09PXI6IXJ8fCh0Kz1cIlwiLFwiPVwiPT09cj90PT09aTpcIiE9XCI9PT1yP3QhPT1pOlwiXj1cIj09PXI/aSYmMD09PXQuaW5kZXhPZihpKTpcIio9XCI9PT1yP2kmJi0xPHQuaW5kZXhPZihpKTpcIiQ9XCI9PT1yP2kmJnQuc2xpY2UoLWkubGVuZ3RoKT09PWk6XCJ+PVwiPT09cj8tMTwoXCIgXCIrdC5yZXBsYWNlKHYsXCIgXCIpK1wiIFwiKS5pbmRleE9mKGkpOlwifD1cIj09PXImJih0PT09aXx8dC5zbGljZSgwLGkubGVuZ3RoKzEpPT09aStcIi1cIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oZCxlLHQsaCxnKXt2YXIgdj1cIm50aFwiIT09ZC5zbGljZSgwLDMpLHk9XCJsYXN0XCIhPT1kLnNsaWNlKC00KSxtPVwib2YtdHlwZVwiPT09ZTtyZXR1cm4gMT09PWgmJjA9PT1nP2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1PXYhPT15P1wibmV4dFNpYmxpbmdcIjpcInByZXZpb3VzU2libGluZ1wiLGw9ZS5wYXJlbnROb2RlLGM9bSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGY9IW4mJiFtLHA9ITE7aWYobCl7aWYodil7d2hpbGUodSl7bz1lO3doaWxlKG89b1t1XSlpZihtP2ZlKG8sYyk6MT09PW8ubm9kZVR5cGUpcmV0dXJuITE7cz11PVwib25seVwiPT09ZCYmIXMmJlwibmV4dFNpYmxpbmdcIn1yZXR1cm4hMH1pZihzPVt5P2wuZmlyc3RDaGlsZDpsLmxhc3RDaGlsZF0seSYmZil7cD0oYT0ocj0oaT1sW1NdfHwobFtTXT17fSkpW2RdfHxbXSlbMF09PT1FJiZyWzFdKSYmclsyXSxvPWEmJmwuY2hpbGROb2Rlc1thXTt3aGlsZShvPSsrYSYmbyYmb1t1XXx8KHA9YT0wKXx8cy5wb3AoKSlpZigxPT09by5ub2RlVHlwZSYmKytwJiZvPT09ZSl7aVtkXT1bRSxhLHBdO2JyZWFrfX1lbHNlIGlmKGYmJihwPWE9KHI9KGk9ZVtTXXx8KGVbU109e30pKVtkXXx8W10pWzBdPT09RSYmclsxXSksITE9PT1wKXdoaWxlKG89KythJiZvJiZvW3VdfHwocD1hPTApfHxzLnBvcCgpKWlmKChtP2ZlKG8sYyk6MT09PW8ubm9kZVR5cGUpJiYrK3AmJihmJiYoKGk9b1tTXXx8KG9bU109e30pKVtkXT1bRSxwXSksbz09PWUpKWJyZWFrO3JldHVybihwLT1nKT09PWh8fHAlaD09MCYmMDw9cC9ofX19LFBTRVVETzpmdW5jdGlvbihlLG8pe3ZhciB0LGE9Yi5wc2V1ZG9zW2VdfHxiLnNldEZpbHRlcnNbZS50b0xvd2VyQ2FzZSgpXXx8SS5lcnJvcihcInVuc3VwcG9ydGVkIHBzZXVkbzogXCIrZSk7cmV0dXJuIGFbU10/YShvKToxPGEubGVuZ3RoPyh0PVtlLGUsXCJcIixvXSxiLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoZS50b0xvd2VyQ2FzZSgpKT9GKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKGUsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPXNlLmNhbGwoZSxyW2ldKV09ISh0W25dPXJbaV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwwLHQpfSk6YX19LHBzZXVkb3M6e25vdDpGKGZ1bmN0aW9uKGUpe3ZhciByPVtdLGk9W10scz1uZShlLnJlcGxhY2UodmUsXCIkMVwiKSk7cmV0dXJuIHNbU10/RihmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvPXMoZSxudWxsLHIsW10pLGE9ZS5sZW5ndGg7d2hpbGUoYS0tKShpPW9bYV0pJiYoZVthXT0hKHRbYV09aSkpfSk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiByWzBdPWUscyhyLG51bGwsbixpKSxyWzBdPW51bGwsIWkucG9wKCl9fSksaGFzOkYoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiAwPEkodCxlKS5sZW5ndGh9fSksY29udGFpbnM6RihmdW5jdGlvbih0KXtyZXR1cm4gdD10LnJlcGxhY2UoTyxQKSxmdW5jdGlvbihlKXtyZXR1cm4tMTwoZS50ZXh0Q29udGVudHx8Y2UudGV4dChlKSkuaW5kZXhPZih0KX19KSxsYW5nOkYoZnVuY3Rpb24obil7cmV0dXJuIEEudGVzdChufHxcIlwiKXx8SS5lcnJvcihcInVuc3VwcG9ydGVkIGxhbmc6IFwiK24pLG49bi5yZXBsYWNlKE8sUCkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgdDtkb3tpZih0PUM/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKFwieG1sOmxhbmdcIil8fGUuZ2V0QXR0cmlidXRlKFwibGFuZ1wiKSlyZXR1cm4odD10LnRvTG93ZXJDYXNlKCkpPT09bnx8MD09PXQuaW5kZXhPZihuK1wiLVwiKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWllLmxvY2F0aW9uJiZpZS5sb2NhdGlvbi5oYXNoO3JldHVybiB0JiZ0LnNsaWNlKDEpPT09ZS5pZH0scm9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PXJ9LGZvY3VzOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFQuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fSgpJiZULmhhc0ZvY3VzKCkmJiEhKGUudHlwZXx8ZS5ocmVmfHx+ZS50YWJJbmRleCl9LGVuYWJsZWQ6eighMSksZGlzYWJsZWQ6eighMCksY2hlY2tlZDpmdW5jdGlvbihlKXtyZXR1cm4gZmUoZSxcImlucHV0XCIpJiYhIWUuY2hlY2tlZHx8ZmUoZSxcIm9wdGlvblwiKSYmISFlLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWUuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGUpe2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylpZihlLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihlKXtyZXR1cm4hYi5wc2V1ZG9zLmVtcHR5KGUpfSxoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHEudGVzdChlLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE4udGVzdChlLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGUpe3JldHVybiBmZShlLFwiaW5wdXRcIikmJlwiYnV0dG9uXCI9PT1lLnR5cGV8fGZlKGUsXCJidXR0b25cIil9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGZlKGUsXCJpbnB1dFwiKSYmXCJ0ZXh0XCI9PT1lLnR5cGUmJihudWxsPT0odD1lLmdldEF0dHJpYnV0ZShcInR5cGVcIikpfHxcInRleHRcIj09PXQudG9Mb3dlckNhc2UoKSl9LGZpcnN0OlgoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OlgoZnVuY3Rpb24oZSx0KXtyZXR1cm5bdC0xXX0pLGVxOlgoZnVuY3Rpb24oZSx0LG4pe3JldHVybltuPDA/bit0Om5dfSksZXZlbjpYKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksb2RkOlgoZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MTtuPHQ7bis9MillLnB1c2gobik7cmV0dXJuIGV9KSxsdDpYKGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtmb3Iocj1uPDA/bit0OnQ8bj90Om47MDw9LS1yOyllLnB1c2gocik7cmV0dXJuIGV9KSxndDpYKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDpuOysrcjx0OyllLnB1c2gocik7cmV0dXJuIGV9KX19KS5wc2V1ZG9zLm50aD1iLnBzZXVkb3MuZXEse3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KWIucHNldWRvc1tlXT1CKGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0pYi5wc2V1ZG9zW2VdPV8oZSk7ZnVuY3Rpb24gRygpe31mdW5jdGlvbiBZKGUsdCl7dmFyIG4scixpLG8sYSxzLHUsbD1jW2UrXCIgXCJdO2lmKGwpcmV0dXJuIHQ/MDpsLnNsaWNlKDApO2E9ZSxzPVtdLHU9Yi5wcmVGaWx0ZXI7d2hpbGUoYSl7Zm9yKG8gaW4gbiYmIShyPXkuZXhlYyhhKSl8fChyJiYoYT1hLnNsaWNlKHJbMF0ubGVuZ3RoKXx8YSkscy5wdXNoKGk9W10pKSxuPSExLChyPW0uZXhlYyhhKSkmJihuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpyWzBdLnJlcGxhY2UodmUsXCIgXCIpfSksYT1hLnNsaWNlKG4ubGVuZ3RoKSksYi5maWx0ZXIpIShyPURbb10uZXhlYyhhKSl8fHVbb10mJiEocj11W29dKHIpKXx8KG49ci5zaGlmdCgpLGkucHVzaCh7dmFsdWU6bix0eXBlOm8sbWF0Y2hlczpyfSksYT1hLnNsaWNlKG4ubGVuZ3RoKSk7aWYoIW4pYnJlYWt9cmV0dXJuIHQ/YS5sZW5ndGg6YT9JLmVycm9yKGUpOmMoZSxzKS5zbGljZSgwKX1mdW5jdGlvbiBRKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj1cIlwiO3Q8bjt0Kyspcis9ZVt0XS52YWx1ZTtyZXR1cm4gcn1mdW5jdGlvbiBKKGEsZSx0KXt2YXIgcz1lLmRpcix1PWUubmV4dCxsPXV8fHMsYz10JiZcInBhcmVudE5vZGVcIj09PWwsZj1uKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSx0LG4pe3doaWxlKGU9ZVtzXSlpZigxPT09ZS5ub2RlVHlwZXx8YylyZXR1cm4gYShlLHQsbik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89W0UsZl07aWYobil7d2hpbGUoZT1lW3NdKWlmKCgxPT09ZS5ub2RlVHlwZXx8YykmJmEoZSx0LG4pKXJldHVybiEwfWVsc2Ugd2hpbGUoZT1lW3NdKWlmKDE9PT1lLm5vZGVUeXBlfHxjKWlmKGk9ZVtTXXx8KGVbU109e30pLHUmJmZlKGUsdSkpZT1lW3NdfHxlO2Vsc2V7aWYoKHI9aVtsXSkmJnJbMF09PT1FJiZyWzFdPT09ZilyZXR1cm4gb1syXT1yWzJdO2lmKChpW2xdPW8pWzJdPWEoZSx0LG4pKXJldHVybiEwfXJldHVybiExfX1mdW5jdGlvbiBLKGkpe3JldHVybiAxPGkubGVuZ3RoP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj1pLmxlbmd0aDt3aGlsZShyLS0paWYoIWlbcl0oZSx0LG4pKXJldHVybiExO3JldHVybiEwfTppWzBdfWZ1bmN0aW9uIFooZSx0LG4scixpKXtmb3IodmFyIG8sYT1bXSxzPTAsdT1lLmxlbmd0aCxsPW51bGwhPXQ7czx1O3MrKykobz1lW3NdKSYmKG4mJiFuKG8scixpKXx8KGEucHVzaChvKSxsJiZ0LnB1c2gocykpKTtyZXR1cm4gYX1mdW5jdGlvbiBlZShkLGgsZyx2LHksZSl7cmV0dXJuIHYmJiF2W1NdJiYodj1lZSh2KSkseSYmIXlbU10mJih5PWVlKHksZSkpLEYoZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbyxhLHMsdT1bXSxsPVtdLGM9dC5sZW5ndGgsZj1lfHxmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKUkoZSx0W3JdLG4pO3JldHVybiBufShofHxcIipcIixuLm5vZGVUeXBlP1tuXTpuLFtdKSxwPSFkfHwhZSYmaD9mOlooZix1LGQsbixyKTtpZihnP2cocCxzPXl8fChlP2Q6Y3x8dik/W106dCxuLHIpOnM9cCx2KXtpPVoocyxsKSx2KGksW10sbixyKSxvPWkubGVuZ3RoO3doaWxlKG8tLSkoYT1pW29dKSYmKHNbbFtvXV09IShwW2xbb11dPWEpKX1pZihlKXtpZih5fHxkKXtpZih5KXtpPVtdLG89cy5sZW5ndGg7d2hpbGUoby0tKShhPXNbb10pJiZpLnB1c2gocFtvXT1hKTt5KG51bGwscz1bXSxpLHIpfW89cy5sZW5ndGg7d2hpbGUoby0tKShhPXNbb10pJiYtMTwoaT15P3NlLmNhbGwoZSxhKTp1W29dKSYmKGVbaV09ISh0W2ldPWEpKX19ZWxzZSBzPVoocz09PXQ/cy5zcGxpY2UoYyxzLmxlbmd0aCk6cykseT95KG51bGwsdCxzLHIpOmsuYXBwbHkodCxzKX0pfWZ1bmN0aW9uIHRlKGUpe2Zvcih2YXIgaSx0LG4scj1lLmxlbmd0aCxvPWIucmVsYXRpdmVbZVswXS50eXBlXSxhPW98fGIucmVsYXRpdmVbXCIgXCJdLHM9bz8xOjAsdT1KKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09aX0sYSwhMCksbD1KKGZ1bmN0aW9uKGUpe3JldHVybi0xPHNlLmNhbGwoaSxlKX0sYSwhMCksYz1bZnVuY3Rpb24oZSx0LG4pe3ZhciByPSFvJiYobnx8dCE9dyl8fCgoaT10KS5ub2RlVHlwZT91KGUsdCxuKTpsKGUsdCxuKSk7cmV0dXJuIGk9bnVsbCxyfV07czxyO3MrKylpZih0PWIucmVsYXRpdmVbZVtzXS50eXBlXSljPVtKKEsoYyksdCldO2Vsc2V7aWYoKHQ9Yi5maWx0ZXJbZVtzXS50eXBlXS5hcHBseShudWxsLGVbc10ubWF0Y2hlcykpW1NdKXtmb3Iobj0rK3M7bjxyO24rKylpZihiLnJlbGF0aXZlW2Vbbl0udHlwZV0pYnJlYWs7cmV0dXJuIGVlKDE8cyYmSyhjKSwxPHMmJlEoZS5zbGljZSgwLHMtMSkuY29uY2F0KHt2YWx1ZTpcIiBcIj09PWVbcy0yXS50eXBlP1wiKlwiOlwiXCJ9KSkucmVwbGFjZSh2ZSxcIiQxXCIpLHQsczxuJiZ0ZShlLnNsaWNlKHMsbikpLG48ciYmdGUoZT1lLnNsaWNlKG4pKSxuPHImJlEoZSkpfWMucHVzaCh0KX1yZXR1cm4gSyhjKX1mdW5jdGlvbiBuZShlLHQpe3ZhciBuLHYseSxtLHgscixpPVtdLG89W10sYT11W2UrXCIgXCJdO2lmKCFhKXt0fHwodD1ZKGUpKSxuPXQubGVuZ3RoO3doaWxlKG4tLSkoYT10ZSh0W25dKSlbU10/aS5wdXNoKGEpOm8ucHVzaChhKTsoYT11KGUsKHY9byxtPTA8KHk9aSkubGVuZ3RoLHg9MDx2Lmxlbmd0aCxyPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG8sYSxzLHU9MCxsPVwiMFwiLGM9ZSYmW10sZj1bXSxwPXcsZD1lfHx4JiZiLmZpbmQuVEFHKFwiKlwiLGkpLGg9RSs9bnVsbD09cD8xOk1hdGgucmFuZG9tKCl8fC4xLGc9ZC5sZW5ndGg7Zm9yKGkmJih3PXQ9PVR8fHR8fGkpO2whPT1nJiZudWxsIT0obz1kW2xdKTtsKyspe2lmKHgmJm8pe2E9MCx0fHxvLm93bmVyRG9jdW1lbnQ9PVR8fChWKG8pLG49IUMpO3doaWxlKHM9dlthKytdKWlmKHMobyx0fHxULG4pKXtrLmNhbGwocixvKTticmVha31pJiYoRT1oKX1tJiYoKG89IXMmJm8pJiZ1LS0sZSYmYy5wdXNoKG8pKX1pZih1Kz1sLG0mJmwhPT11KXthPTA7d2hpbGUocz15W2ErK10pcyhjLGYsdCxuKTtpZihlKXtpZigwPHUpd2hpbGUobC0tKWNbbF18fGZbbF18fChmW2xdPXBlLmNhbGwocikpO2Y9WihmKX1rLmFwcGx5KHIsZiksaSYmIWUmJjA8Zi5sZW5ndGgmJjE8dSt5Lmxlbmd0aCYmY2UudW5pcXVlU29ydChyKX1yZXR1cm4gaSYmKEU9aCx3PXApLGN9LG0/RihyKTpyKSkpLnNlbGVjdG9yPWV9cmV0dXJuIGF9ZnVuY3Rpb24gcmUoZSx0LG4scil7dmFyIGksbyxhLHMsdSxsPVwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUsYz0hciYmWShlPWwuc2VsZWN0b3J8fGUpO2lmKG49bnx8W10sMT09PWMubGVuZ3RoKXtpZigyPChvPWNbMF09Y1swXS5zbGljZSgwKSkubGVuZ3RoJiZcIklEXCI9PT0oYT1vWzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmQyYmYi5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZighKHQ9KGIuZmluZC5JRChhLm1hdGNoZXNbMF0ucmVwbGFjZShPLFApLHQpfHxbXSlbMF0pKXJldHVybiBuO2wmJih0PXQucGFyZW50Tm9kZSksZT1lLnNsaWNlKG8uc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWk9RC5uZWVkc0NvbnRleHQudGVzdChlKT8wOm8ubGVuZ3RoO3doaWxlKGktLSl7aWYoYT1vW2ldLGIucmVsYXRpdmVbcz1hLnR5cGVdKWJyZWFrO2lmKCh1PWIuZmluZFtzXSkmJihyPXUoYS5tYXRjaGVzWzBdLnJlcGxhY2UoTyxQKSxILnRlc3Qob1swXS50eXBlKSYmVSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksIShlPXIubGVuZ3RoJiZRKG8pKSlyZXR1cm4gay5hcHBseShuLHIpLG47YnJlYWt9fX1yZXR1cm4obHx8bmUoZSxjKSkocix0LCFDLG4sIXR8fEgudGVzdChlKSYmVSh0LnBhcmVudE5vZGUpfHx0KSxufUcucHJvdG90eXBlPWIuZmlsdGVycz1iLnBzZXVkb3MsYi5zZXRGaWx0ZXJzPW5ldyBHLGxlLnNvcnRTdGFibGU9Uy5zcGxpdChcIlwiKS5zb3J0KGwpLmpvaW4oXCJcIik9PT1TLFYoKSxsZS5zb3J0RGV0YWNoZWQ9JChmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKFQuY3JlYXRlRWxlbWVudChcImZpZWxkc2V0XCIpKX0pLGNlLmZpbmQ9SSxjZS5leHByW1wiOlwiXT1jZS5leHByLnBzZXVkb3MsY2UudW5pcXVlPWNlLnVuaXF1ZVNvcnQsSS5jb21waWxlPW5lLEkuc2VsZWN0PXJlLEkuc2V0RG9jdW1lbnQ9VixJLnRva2VuaXplPVksSS5lc2NhcGU9Y2UuZXNjYXBlU2VsZWN0b3IsSS5nZXRUZXh0PWNlLnRleHQsSS5pc1hNTD1jZS5pc1hNTERvYyxJLnNlbGVjdG9ycz1jZS5leHByLEkuc3VwcG9ydD1jZS5zdXBwb3J0LEkudW5pcXVlU29ydD1jZS51bmlxdWVTb3J0fSgpO3ZhciBkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1bXSxpPXZvaWQgMCE9PW47d2hpbGUoKGU9ZVt0XSkmJjkhPT1lLm5vZGVUeXBlKWlmKDE9PT1lLm5vZGVUeXBlKXtpZihpJiZjZShlKS5pcyhuKSlicmVhaztyLnB1c2goZSl9cmV0dXJuIHJ9LGg9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W107ZTtlPWUubmV4dFNpYmxpbmcpMT09PWUubm9kZVR5cGUmJmUhPT10JiZuLnB1c2goZSk7cmV0dXJuIG59LGI9Y2UuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQsdz0vXjwoW2Etel1bXlxcL1xcMD46XFx4MjBcXHRcXHJcXG5cXGZdKilbXFx4MjBcXHRcXHJcXG5cXGZdKlxcLz8+KD86PFxcL1xcMT58KSQvaTtmdW5jdGlvbiBUKGUsbixyKXtyZXR1cm4gdihuKT9jZS5ncmVwKGUsZnVuY3Rpb24oZSx0KXtyZXR1cm4hIW4uY2FsbChlLHQsZSkhPT1yfSk6bi5ub2RlVHlwZT9jZS5ncmVwKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1uIT09cn0pOlwic3RyaW5nXCIhPXR5cGVvZiBuP2NlLmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4tMTxzZS5jYWxsKG4sZSkhPT1yfSk6Y2UuZmlsdGVyKG4sZSxyKX1jZS5maWx0ZXI9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF07cmV0dXJuIG4mJihlPVwiOm5vdChcIitlK1wiKVwiKSwxPT09dC5sZW5ndGgmJjE9PT1yLm5vZGVUeXBlP2NlLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHIsZSk/W3JdOltdOmNlLmZpbmQubWF0Y2hlcyhlLGNlLmdyZXAodCxmdW5jdGlvbihlKXtyZXR1cm4gMT09PWUubm9kZVR5cGV9KSl9LGNlLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcy5sZW5ndGgsaT10aGlzO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXJldHVybiB0aGlzLnB1c2hTdGFjayhjZShlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO3Q8cjt0KyspaWYoY2UuY29udGFpbnMoaVt0XSx0aGlzKSlyZXR1cm4hMH0pKTtmb3Iobj10aGlzLnB1c2hTdGFjayhbXSksdD0wO3Q8cjt0KyspY2UuZmluZChlLGlbdF0sbik7cmV0dXJuIDE8cj9jZS51bmlxdWVTb3J0KG4pOm59LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soVCh0aGlzLGV8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soVCh0aGlzLGV8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhVCh0aGlzLFwic3RyaW5nXCI9PXR5cGVvZiBlJiZiLnRlc3QoZSk/Y2UoZSk6ZXx8W10sITEpLmxlbmd0aH19KTt2YXIgayxTPS9eKD86XFxzKig8W1xcd1xcV10rPilbXj5dKnwjKFtcXHctXSspKSQvOyhjZS5mbi5pbml0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpO2lmKCFlKXJldHVybiB0aGlzO2lmKG49bnx8ayxcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoIShyPVwiPFwiPT09ZVswXSYmXCI+XCI9PT1lW2UubGVuZ3RoLTFdJiYzPD1lLmxlbmd0aD9bbnVsbCxlLG51bGxdOlMuZXhlYyhlKSl8fCFyWzFdJiZ0KXJldHVybiF0fHx0LmpxdWVyeT8odHx8bikuZmluZChlKTp0aGlzLmNvbnN0cnVjdG9yKHQpLmZpbmQoZSk7aWYoclsxXSl7aWYodD10IGluc3RhbmNlb2YgY2U/dFswXTp0LGNlLm1lcmdlKHRoaXMsY2UucGFyc2VIVE1MKHJbMV0sdCYmdC5ub2RlVHlwZT90Lm93bmVyRG9jdW1lbnR8fHQ6QywhMCkpLHcudGVzdChyWzFdKSYmY2UuaXNQbGFpbk9iamVjdCh0KSlmb3IociBpbiB0KXYodGhpc1tyXSk/dGhpc1tyXSh0W3JdKTp0aGlzLmF0dHIocix0W3JdKTtyZXR1cm4gdGhpc31yZXR1cm4oaT1DLmdldEVsZW1lbnRCeUlkKHJbMl0pKSYmKHRoaXNbMF09aSx0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzWzBdPWUsdGhpcy5sZW5ndGg9MSx0aGlzKTp2KGUpP3ZvaWQgMCE9PW4ucmVhZHk/bi5yZWFkeShlKTplKGNlKTpjZS5tYWtlQXJyYXkoZSx0aGlzKX0pLnByb3RvdHlwZT1jZS5mbixrPWNlKEMpO3ZhciBFPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLGo9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07ZnVuY3Rpb24gQShlLHQpe3doaWxlKChlPWVbdF0pJiYxIT09ZS5ub2RlVHlwZSk7cmV0dXJuIGV9Y2UuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oZSl7dmFyIHQ9Y2UoZSx0aGlzKSxuPXQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bjtlKyspaWYoY2UuY29udGFpbnModGhpcyx0W2VdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wLGk9dGhpcy5sZW5ndGgsbz1bXSxhPVwic3RyaW5nXCIhPXR5cGVvZiBlJiZjZShlKTtpZighYi50ZXN0KGUpKWZvcig7cjxpO3IrKylmb3Iobj10aGlzW3JdO24mJm4hPT10O249bi5wYXJlbnROb2RlKWlmKG4ubm9kZVR5cGU8MTEmJihhPy0xPGEuaW5kZXgobik6MT09PW4ubm9kZVR5cGUmJmNlLmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sZSkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKDE8by5sZW5ndGg/Y2UudW5pcXVlU29ydChvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/XCJzdHJpbmdcIj09dHlwZW9mIGU/c2UuY2FsbChjZShlKSx0aGlzWzBdKTpzZS5jYWxsKHRoaXMsZS5qcXVlcnk/ZVswXTplKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhjZS51bmlxdWVTb3J0KGNlLm1lcmdlKHRoaXMuZ2V0KCksY2UoZSx0KSkpKX0sYWRkQmFjazpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9fSksY2UuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4gZChlLFwicGFyZW50Tm9kZVwiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZChlLFwicGFyZW50Tm9kZVwiLG4pfSxuZXh0OmZ1bmN0aW9uKGUpe3JldHVybiBBKGUsXCJuZXh0U2libGluZ1wiKX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gQShlLFwicHJldmlvdXNTaWJsaW5nXCIpfSxuZXh0QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBkKGUsXCJuZXh0U2libGluZ1wiKX0scHJldkFsbDpmdW5jdGlvbihlKXtyZXR1cm4gZChlLFwicHJldmlvdXNTaWJsaW5nXCIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBkKGUsXCJuZXh0U2libGluZ1wiLG4pfSxwcmV2VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBkKGUsXCJwcmV2aW91c1NpYmxpbmdcIixuKX0sc2libGluZ3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGgoKGUucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lLmNvbnRlbnREb2N1bWVudCYmcihlLmNvbnRlbnREb2N1bWVudCk/ZS5jb250ZW50RG9jdW1lbnQ6KGZlKGUsXCJ0ZW1wbGF0ZVwiKSYmKGU9ZS5jb250ZW50fHxlKSxjZS5tZXJnZShbXSxlLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKHIsaSl7Y2UuZm5bcl09ZnVuY3Rpb24oZSx0KXt2YXIgbj1jZS5tYXAodGhpcyxpLGUpO3JldHVyblwiVW50aWxcIiE9PXIuc2xpY2UoLTUpJiYodD1lKSx0JiZcInN0cmluZ1wiPT10eXBlb2YgdCYmKG49Y2UuZmlsdGVyKHQsbikpLDE8dGhpcy5sZW5ndGgmJihqW3JdfHxjZS51bmlxdWVTb3J0KG4pLEUudGVzdChyKSYmbi5yZXZlcnNlKCkpLHRoaXMucHVzaFN0YWNrKG4pfX0pO3ZhciBEPS9bXlxceDIwXFx0XFxyXFxuXFxmXSsvZztmdW5jdGlvbiBOKGUpe3JldHVybiBlfWZ1bmN0aW9uIHEoZSl7dGhyb3cgZX1mdW5jdGlvbiBMKGUsdCxuLHIpe3ZhciBpO3RyeXtlJiZ2KGk9ZS5wcm9taXNlKT9pLmNhbGwoZSkuZG9uZSh0KS5mYWlsKG4pOmUmJnYoaT1lLnRoZW4pP2kuY2FsbChlLHQsbik6dC5hcHBseSh2b2lkIDAsW2VdLnNsaWNlKHIpKX1jYXRjaChlKXtuLmFwcGx5KHZvaWQgMCxbZV0pfX1jZS5DYWxsYmFja3M9ZnVuY3Rpb24ocil7dmFyIGUsbjtyPVwic3RyaW5nXCI9PXR5cGVvZiByPyhlPXIsbj17fSxjZS5lYWNoKGUubWF0Y2goRCl8fFtdLGZ1bmN0aW9uKGUsdCl7blt0XT0hMH0pLG4pOmNlLmV4dGVuZCh7fSxyKTt2YXIgaSx0LG8sYSxzPVtdLHU9W10sbD0tMSxjPWZ1bmN0aW9uKCl7Zm9yKGE9YXx8ci5vbmNlLG89aT0hMDt1Lmxlbmd0aDtsPS0xKXt0PXUuc2hpZnQoKTt3aGlsZSgrK2w8cy5sZW5ndGgpITE9PT1zW2xdLmFwcGx5KHRbMF0sdFsxXSkmJnIuc3RvcE9uRmFsc2UmJihsPXMubGVuZ3RoLHQ9ITEpfXIubWVtb3J5fHwodD0hMSksaT0hMSxhJiYocz10P1tdOlwiXCIpfSxmPXthZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gcyYmKHQmJiFpJiYobD1zLmxlbmd0aC0xLHUucHVzaCh0KSksZnVuY3Rpb24gbihlKXtjZS5lYWNoKGUsZnVuY3Rpb24oZSx0KXt2KHQpP3IudW5pcXVlJiZmLmhhcyh0KXx8cy5wdXNoKHQpOnQmJnQubGVuZ3RoJiZcInN0cmluZ1wiIT09eCh0KSYmbih0KX0pfShhcmd1bWVudHMpLHQmJiFpJiZjKCkpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBjZS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbihlLHQpe3ZhciBuO3doaWxlKC0xPChuPWNlLmluQXJyYXkodCxzLG4pKSlzLnNwbGljZShuLDEpLG48PWwmJmwtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT8tMTxjZS5pbkFycmF5KGUscyk6MDxzLmxlbmd0aH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gcyYmKHM9W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gYT11PVtdLHM9dD1cIlwiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXN9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYT11PVtdLHR8fGl8fChzPXQ9XCJcIiksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFhfSxmaXJlV2l0aDpmdW5jdGlvbihlLHQpe3JldHVybiBhfHwodD1bZSwodD10fHxbXSkuc2xpY2U/dC5zbGljZSgpOnRdLHUucHVzaCh0KSxpfHxjKCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIW99fTtyZXR1cm4gZn0sY2UuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgbz1bW1wibm90aWZ5XCIsXCJwcm9ncmVzc1wiLGNlLkNhbGxiYWNrcyhcIm1lbW9yeVwiKSxjZS5DYWxsYmFja3MoXCJtZW1vcnlcIiksMl0sW1wicmVzb2x2ZVwiLFwiZG9uZVwiLGNlLkNhbGxiYWNrcyhcIm9uY2UgbWVtb3J5XCIpLGNlLkNhbGxiYWNrcyhcIm9uY2UgbWVtb3J5XCIpLDAsXCJyZXNvbHZlZFwiXSxbXCJyZWplY3RcIixcImZhaWxcIixjZS5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKSxjZS5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKSwxLFwicmVqZWN0ZWRcIl1dLGk9XCJwZW5kaW5nXCIsYT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSxcImNhdGNoXCI6ZnVuY3Rpb24oZSl7cmV0dXJuIGEudGhlbihudWxsLGUpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGk9YXJndW1lbnRzO3JldHVybiBjZS5EZWZlcnJlZChmdW5jdGlvbihyKXtjZS5lYWNoKG8sZnVuY3Rpb24oZSx0KXt2YXIgbj12KGlbdFs0XV0pJiZpW3RbNF1dO3NbdFsxXV0oZnVuY3Rpb24oKXt2YXIgZT1uJiZuLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlJiZ2KGUucHJvbWlzZSk/ZS5wcm9taXNlKCkucHJvZ3Jlc3Moci5ub3RpZnkpLmRvbmUoci5yZXNvbHZlKS5mYWlsKHIucmVqZWN0KTpyW3RbMF0rXCJXaXRoXCJdKHRoaXMsbj9bZV06YXJndW1lbnRzKX0pfSksaT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKHQsbixyKXt2YXIgdT0wO2Z1bmN0aW9uIGwoaSxvLGEscyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPWFyZ3VtZW50cyxlPWZ1bmN0aW9uKCl7dmFyIGUsdDtpZighKGk8dSkpe2lmKChlPWEuYXBwbHkobixyKSk9PT1vLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlbmFibGUgc2VsZi1yZXNvbHV0aW9uXCIpO3Q9ZSYmKFwib2JqZWN0XCI9PXR5cGVvZiBlfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKSYmZS50aGVuLHYodCk/cz90LmNhbGwoZSxsKHUsbyxOLHMpLGwodSxvLHEscykpOih1KyssdC5jYWxsKGUsbCh1LG8sTixzKSxsKHUsbyxxLHMpLGwodSxvLE4sby5ub3RpZnlXaXRoKSkpOihhIT09TiYmKG49dm9pZCAwLHI9W2VdKSwoc3x8by5yZXNvbHZlV2l0aCkobixyKSl9fSx0PXM/ZTpmdW5jdGlvbigpe3RyeXtlKCl9Y2F0Y2goZSl7Y2UuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayYmY2UuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhlLHQuZXJyb3IpLHU8PWkrMSYmKGEhPT1xJiYobj12b2lkIDAscj1bZV0pLG8ucmVqZWN0V2l0aChuLHIpKX19O2k/dCgpOihjZS5EZWZlcnJlZC5nZXRFcnJvckhvb2s/dC5lcnJvcj1jZS5EZWZlcnJlZC5nZXRFcnJvckhvb2soKTpjZS5EZWZlcnJlZC5nZXRTdGFja0hvb2smJih0LmVycm9yPWNlLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxpZS5zZXRUaW1lb3V0KHQpKX19cmV0dXJuIGNlLkRlZmVycmVkKGZ1bmN0aW9uKGUpe29bMF1bM10uYWRkKGwoMCxlLHYocik/cjpOLGUubm90aWZ5V2l0aCkpLG9bMV1bM10uYWRkKGwoMCxlLHYodCk/dDpOKSksb1syXVszXS5hZGQobCgwLGUsdihuKT9uOnEpKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZT9jZS5leHRlbmQoZSxhKTphfX0scz17fTtyZXR1cm4gY2UuZWFjaChvLGZ1bmN0aW9uKGUsdCl7dmFyIG49dFsyXSxyPXRbNV07YVt0WzFdXT1uLmFkZCxyJiZuLmFkZChmdW5jdGlvbigpe2k9cn0sb1szLWVdWzJdLmRpc2FibGUsb1szLWVdWzNdLmRpc2FibGUsb1swXVsyXS5sb2NrLG9bMF1bM10ubG9jayksbi5hZGQodFszXS5maXJlKSxzW3RbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIHNbdFswXStcIldpdGhcIl0odGhpcz09PXM/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxzW3RbMF0rXCJXaXRoXCJdPW4uZmlyZVdpdGh9KSxhLnByb21pc2UocyksZSYmZS5jYWxsKHMscyksc30sd2hlbjpmdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoLHQ9bixyPUFycmF5KHQpLGk9YWUuY2FsbChhcmd1bWVudHMpLG89Y2UuRGVmZXJyZWQoKSxhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyW3RdPXRoaXMsaVt0XT0xPGFyZ3VtZW50cy5sZW5ndGg/YWUuY2FsbChhcmd1bWVudHMpOmUsLS1ufHxvLnJlc29sdmVXaXRoKHIsaSl9fTtpZihuPD0xJiYoTChlLG8uZG9uZShhKHQpKS5yZXNvbHZlLG8ucmVqZWN0LCFuKSxcInBlbmRpbmdcIj09PW8uc3RhdGUoKXx8dihpW3RdJiZpW3RdLnRoZW4pKSlyZXR1cm4gby50aGVuKCk7d2hpbGUodC0tKUwoaVt0XSxhKHQpLG8ucmVqZWN0KTtyZXR1cm4gby5wcm9taXNlKCl9fSk7dmFyIEg9L14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87Y2UuRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbihlLHQpe2llLmNvbnNvbGUmJmllLmNvbnNvbGUud2FybiYmZSYmSC50ZXN0KGUubmFtZSkmJmllLmNvbnNvbGUud2FybihcImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246IFwiK2UubWVzc2FnZSxlLnN0YWNrLHQpfSxjZS5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihlKXtpZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfTt2YXIgTz1jZS5EZWZlcnJlZCgpO2Z1bmN0aW9uIFAoKXtDLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsUCksaWUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImxvYWRcIixQKSxjZS5yZWFkeSgpfWNlLmZuLnJlYWR5PWZ1bmN0aW9uKGUpe3JldHVybiBPLnRoZW4oZSlbXCJjYXRjaFwiXShmdW5jdGlvbihlKXtjZS5yZWFkeUV4Y2VwdGlvbihlKX0pLHRoaXN9LGNlLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tY2UucmVhZHlXYWl0OmNlLmlzUmVhZHkpfHwoY2UuaXNSZWFkeT0hMCkhPT1lJiYwPC0tY2UucmVhZHlXYWl0fHxPLnJlc29sdmVXaXRoKEMsW2NlXSl9fSksY2UucmVhZHkudGhlbj1PLnRoZW4sXCJjb21wbGV0ZVwiPT09Qy5yZWFkeVN0YXRlfHxcImxvYWRpbmdcIiE9PUMucmVhZHlTdGF0ZSYmIUMuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsP2llLnNldFRpbWVvdXQoY2UucmVhZHkpOihDLmFkZEV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsUCksaWUuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixQKSk7dmFyIE09ZnVuY3Rpb24oZSx0LG4scixpLG8sYSl7dmFyIHM9MCx1PWUubGVuZ3RoLGw9bnVsbD09bjtpZihcIm9iamVjdFwiPT09eChuKSlmb3IocyBpbiBpPSEwLG4pTShlLHQscyxuW3NdLCEwLG8sYSk7ZWxzZSBpZih2b2lkIDAhPT1yJiYoaT0hMCx2KHIpfHwoYT0hMCksbCYmKGE/KHQuY2FsbChlLHIpLHQ9bnVsbCk6KGw9dCx0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbC5jYWxsKGNlKGUpLG4pfSkpLHQpKWZvcig7czx1O3MrKyl0KGVbc10sbixhP3I6ci5jYWxsKGVbc10scyx0KGVbc10sbikpKTtyZXR1cm4gaT9lOmw/dC5jYWxsKGUpOnU/dChlWzBdLG4pOm99LFI9L14tbXMtLyxJPS8tKFthLXpdKS9nO2Z1bmN0aW9uIFcoZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIEYoZSl7cmV0dXJuIGUucmVwbGFjZShSLFwibXMtXCIpLnJlcGxhY2UoSSxXKX12YXIgJD1mdW5jdGlvbihlKXtyZXR1cm4gMT09PWUubm9kZVR5cGV8fDk9PT1lLm5vZGVUeXBlfHwhK2Uubm9kZVR5cGV9O2Z1bmN0aW9uIEIoKXt0aGlzLmV4cGFuZG89Y2UuZXhwYW5kbytCLnVpZCsrfUIudWlkPTEsQi5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKGUpe3ZhciB0PWVbdGhpcy5leHBhbmRvXTtyZXR1cm4gdHx8KHQ9e30sJChlKSYmKGUubm9kZVR5cGU/ZVt0aGlzLmV4cGFuZG9dPXQ6T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdGhpcy5leHBhbmRvLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pKSksdH0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPXRoaXMuY2FjaGUoZSk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpaVtGKHQpXT1uO2Vsc2UgZm9yKHIgaW4gdClpW0YocildPXRbcl07cmV0dXJuIGl9LGdldDpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10P3RoaXMuY2FjaGUoZSk6ZVt0aGlzLmV4cGFuZG9dJiZlW3RoaXMuZXhwYW5kb11bRih0KV19LGFjY2VzczpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHZvaWQgMD09PXR8fHQmJlwic3RyaW5nXCI9PXR5cGVvZiB0JiZ2b2lkIDA9PT1uP3RoaXMuZ2V0KGUsdCk6KHRoaXMuc2V0KGUsdCxuKSx2b2lkIDAhPT1uP246dCl9LHJlbW92ZTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9ZVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PXIpe2lmKHZvaWQgMCE9PXQpe249KHQ9QXJyYXkuaXNBcnJheSh0KT90Lm1hcChGKToodD1GKHQpKWluIHI/W3RdOnQubWF0Y2goRCl8fFtdKS5sZW5ndGg7d2hpbGUobi0tKWRlbGV0ZSByW3Rbbl1dfSh2b2lkIDA9PT10fHxjZS5pc0VtcHR5T2JqZWN0KHIpKSYmKGUubm9kZVR5cGU/ZVt0aGlzLmV4cGFuZG9dPXZvaWQgMDpkZWxldGUgZVt0aGlzLmV4cGFuZG9dKX19LGhhc0RhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9ZVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT10JiYhY2UuaXNFbXB0eU9iamVjdCh0KX19O3ZhciBfPW5ldyBCLHo9bmV3IEIsWD0vXig/Olxce1tcXHdcXFddKlxcfXxcXFtbXFx3XFxXXSpcXF0pJC8sVT0vW0EtWl0vZztmdW5jdGlvbiBWKGUsdCxuKXt2YXIgcixpO2lmKHZvaWQgMD09PW4mJjE9PT1lLm5vZGVUeXBlKWlmKHI9XCJkYXRhLVwiK3QucmVwbGFjZShVLFwiLSQmXCIpLnRvTG93ZXJDYXNlKCksXCJzdHJpbmdcIj09dHlwZW9mKG49ZS5nZXRBdHRyaWJ1dGUocikpKXt0cnl7bj1cInRydWVcIj09PShpPW4pfHxcImZhbHNlXCIhPT1pJiYoXCJudWxsXCI9PT1pP251bGw6aT09PStpK1wiXCI/K2k6WC50ZXN0KGkpP0pTT04ucGFyc2UoaSk6aSl9Y2F0Y2goZSl7fXouc2V0KGUsdCxuKX1lbHNlIG49dm9pZCAwO3JldHVybiBufWNlLmV4dGVuZCh7aGFzRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4gei5oYXNEYXRhKGUpfHxfLmhhc0RhdGEoZSl9LGRhdGE6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB6LmFjY2VzcyhlLHQsbil9LHJlbW92ZURhdGE6ZnVuY3Rpb24oZSx0KXt6LnJlbW92ZShlLHQpfSxfZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIF8uYWNjZXNzKGUsdCxuKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oZSx0KXtfLnJlbW92ZShlLHQpfX0pLGNlLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihuLGUpe3ZhciB0LHIsaSxvPXRoaXNbMF0sYT1vJiZvLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09bil7aWYodGhpcy5sZW5ndGgmJihpPXouZ2V0KG8pLDE9PT1vLm5vZGVUeXBlJiYhXy5nZXQobyxcImhhc0RhdGFBdHRyc1wiKSkpe3Q9YS5sZW5ndGg7d2hpbGUodC0tKWFbdF0mJjA9PT0ocj1hW3RdLm5hbWUpLmluZGV4T2YoXCJkYXRhLVwiKSYmKHI9RihyLnNsaWNlKDUpKSxWKG8scixpW3JdKSk7Xy5zZXQobyxcImhhc0RhdGFBdHRyc1wiLCEwKX1yZXR1cm4gaX1yZXR1cm5cIm9iamVjdFwiPT10eXBlb2Ygbj90aGlzLmVhY2goZnVuY3Rpb24oKXt6LnNldCh0aGlzLG4pfSk6TSh0aGlzLGZ1bmN0aW9uKGUpe3ZhciB0O2lmKG8mJnZvaWQgMD09PWUpcmV0dXJuIHZvaWQgMCE9PSh0PXouZ2V0KG8sbikpP3Q6dm9pZCAwIT09KHQ9VihvLG4pKT90OnZvaWQgMDt0aGlzLmVhY2goZnVuY3Rpb24oKXt6LnNldCh0aGlzLG4sZSl9KX0sbnVsbCxlLDE8YXJndW1lbnRzLmxlbmd0aCxudWxsLCEwKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ei5yZW1vdmUodGhpcyxlKX0pfX0pLGNlLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKGUpcmV0dXJuIHQ9KHR8fFwiZnhcIikrXCJxdWV1ZVwiLHI9Xy5nZXQoZSx0KSxuJiYoIXJ8fEFycmF5LmlzQXJyYXkobik/cj1fLmFjY2VzcyhlLHQsY2UubWFrZUFycmF5KG4pKTpyLnB1c2gobikpLHJ8fFtdfSxkZXF1ZXVlOmZ1bmN0aW9uKGUsdCl7dD10fHxcImZ4XCI7dmFyIG49Y2UucXVldWUoZSx0KSxyPW4ubGVuZ3RoLGk9bi5zaGlmdCgpLG89Y2UuX3F1ZXVlSG9va3MoZSx0KTtcImlucHJvZ3Jlc3NcIj09PWkmJihpPW4uc2hpZnQoKSxyLS0pLGkmJihcImZ4XCI9PT10JiZuLnVuc2hpZnQoXCJpbnByb2dyZXNzXCIpLGRlbGV0ZSBvLnN0b3AsaS5jYWxsKGUsZnVuY3Rpb24oKXtjZS5kZXF1ZXVlKGUsdCl9LG8pKSwhciYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dCtcInF1ZXVlSG9va3NcIjtyZXR1cm4gXy5nZXQoZSxuKXx8Xy5hY2Nlc3MoZSxuLHtlbXB0eTpjZS5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKS5hZGQoZnVuY3Rpb24oKXtfLnJlbW92ZShlLFt0K1wicXVldWVcIixuXSl9KX0pfX0pLGNlLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24odCxuKXt2YXIgZT0yO3JldHVyblwic3RyaW5nXCIhPXR5cGVvZiB0JiYobj10LHQ9XCJmeFwiLGUtLSksYXJndW1lbnRzLmxlbmd0aDxlP2NlLnF1ZXVlKHRoaXNbMF0sdCk6dm9pZCAwPT09bj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWNlLnF1ZXVlKHRoaXMsdCxuKTtjZS5fcXVldWVIb29rcyh0aGlzLHQpLFwiZnhcIj09PXQmJlwiaW5wcm9ncmVzc1wiIT09ZVswXSYmY2UuZGVxdWV1ZSh0aGlzLHQpfSl9LGRlcXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2NlLmRlcXVldWUodGhpcyxlKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fFwiZnhcIixbXSl9LHByb21pc2U6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTEsaT1jZS5EZWZlcnJlZCgpLG89dGhpcyxhPXRoaXMubGVuZ3RoLHM9ZnVuY3Rpb24oKXstLXJ8fGkucmVzb2x2ZVdpdGgobyxbb10pfTtcInN0cmluZ1wiIT10eXBlb2YgZSYmKHQ9ZSxlPXZvaWQgMCksZT1lfHxcImZ4XCI7d2hpbGUoYS0tKShuPV8uZ2V0KG9bYV0sZStcInF1ZXVlSG9va3NcIikpJiZuLmVtcHR5JiYocisrLG4uZW1wdHkuYWRkKHMpKTtyZXR1cm4gcygpLGkucHJvbWlzZSh0KX19KTt2YXIgRz0vWystXT8oPzpcXGQqXFwufClcXGQrKD86W2VFXVsrLV0/XFxkK3wpLy5zb3VyY2UsWT1uZXcgUmVnRXhwKFwiXig/OihbKy1dKT18KShcIitHK1wiKShbYS16JV0qKSRcIixcImlcIiksUT1bXCJUb3BcIixcIlJpZ2h0XCIsXCJCb3R0b21cIixcIkxlZnRcIl0sSj1DLmRvY3VtZW50RWxlbWVudCxLPWZ1bmN0aW9uKGUpe3JldHVybiBjZS5jb250YWlucyhlLm93bmVyRG9jdW1lbnQsZSl9LFo9e2NvbXBvc2VkOiEwfTtKLmdldFJvb3ROb2RlJiYoSz1mdW5jdGlvbihlKXtyZXR1cm4gY2UuY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpfHxlLmdldFJvb3ROb2RlKFopPT09ZS5vd25lckRvY3VtZW50fSk7dmFyIGVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuXCJub25lXCI9PT0oZT10fHxlKS5zdHlsZS5kaXNwbGF5fHxcIlwiPT09ZS5zdHlsZS5kaXNwbGF5JiZLKGUpJiZcIm5vbmVcIj09PWNlLmNzcyhlLFwiZGlzcGxheVwiKX07ZnVuY3Rpb24gdGUoZSx0LG4scil7dmFyIGksbyxhPTIwLHM9cj9mdW5jdGlvbigpe3JldHVybiByLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBjZS5jc3MoZSx0LFwiXCIpfSx1PXMoKSxsPW4mJm5bM118fChjZS5jc3NOdW1iZXJbdF0/XCJcIjpcInB4XCIpLGM9ZS5ub2RlVHlwZSYmKGNlLmNzc051bWJlclt0XXx8XCJweFwiIT09bCYmK3UpJiZZLmV4ZWMoY2UuY3NzKGUsdCkpO2lmKGMmJmNbM10hPT1sKXt1Lz0yLGw9bHx8Y1szXSxjPSt1fHwxO3doaWxlKGEtLSljZS5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLGNlLnN0eWxlKGUsdCxjK2wpLG49bnx8W119cmV0dXJuIG4mJihjPStjfHwrdXx8MCxpPW5bMV0/YysoblsxXSsxKSpuWzJdOituWzJdLHImJihyLnVuaXQ9bCxyLnN0YXJ0PWMsci5lbmQ9aSkpLGl9dmFyIG5lPXt9O2Z1bmN0aW9uIHJlKGUsdCl7Zm9yKHZhciBuLHIsaSxvLGEscyx1LGw9W10sYz0wLGY9ZS5sZW5ndGg7YzxmO2MrKykocj1lW2NdKS5zdHlsZSYmKG49ci5zdHlsZS5kaXNwbGF5LHQ/KFwibm9uZVwiPT09biYmKGxbY109Xy5nZXQocixcImRpc3BsYXlcIil8fG51bGwsbFtjXXx8KHIuc3R5bGUuZGlzcGxheT1cIlwiKSksXCJcIj09PXIuc3R5bGUuZGlzcGxheSYmZWUocikmJihsW2NdPSh1PWE9bz12b2lkIDAsYT0oaT1yKS5vd25lckRvY3VtZW50LHM9aS5ub2RlTmFtZSwodT1uZVtzXSl8fChvPWEuYm9keS5hcHBlbmRDaGlsZChhLmNyZWF0ZUVsZW1lbnQocykpLHU9Y2UuY3NzKG8sXCJkaXNwbGF5XCIpLG8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSxcIm5vbmVcIj09PXUmJih1PVwiYmxvY2tcIiksbmVbc109dSkpKSk6XCJub25lXCIhPT1uJiYobFtjXT1cIm5vbmVcIixfLnNldChyLFwiZGlzcGxheVwiLG4pKSk7Zm9yKGM9MDtjPGY7YysrKW51bGwhPWxbY10mJihlW2NdLnN0eWxlLmRpc3BsYXk9bFtjXSk7cmV0dXJuIGV9Y2UuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHJlKHRoaXMsITApfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHJlKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oZSl7cmV0dXJuXCJib29sZWFuXCI9PXR5cGVvZiBlP2U/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZWUodGhpcyk/Y2UodGhpcykuc2hvdygpOmNlKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciB4ZSxiZSx3ZT0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxUZT0vPChbYS16XVteXFwvXFwwPlxceDIwXFx0XFxyXFxuXFxmXSopL2ksQ2U9L14kfF5tb2R1bGUkfFxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaTt4ZT1DLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChDLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpLChiZT1DLmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKSkuc2V0QXR0cmlidXRlKFwidHlwZVwiLFwicmFkaW9cIiksYmUuc2V0QXR0cmlidXRlKFwiY2hlY2tlZFwiLFwiY2hlY2tlZFwiKSxiZS5zZXRBdHRyaWJ1dGUoXCJuYW1lXCIsXCJ0XCIpLHhlLmFwcGVuZENoaWxkKGJlKSxsZS5jaGVja0Nsb25lPXhlLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCx4ZS5pbm5lckhUTUw9XCI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+XCIsbGUubm9DbG9uZUNoZWNrZWQ9ISF4ZS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUseGUuaW5uZXJIVE1MPVwiPG9wdGlvbj48L29wdGlvbj5cIixsZS5vcHRpb249ISF4ZS5sYXN0Q2hpbGQ7dmFyIGtlPXt0aGVhZDpbMSxcIjx0YWJsZT5cIixcIjwvdGFibGU+XCJdLGNvbDpbMixcIjx0YWJsZT48Y29sZ3JvdXA+XCIsXCI8L2NvbGdyb3VwPjwvdGFibGU+XCJdLHRyOlsyLFwiPHRhYmxlPjx0Ym9keT5cIixcIjwvdGJvZHk+PC90YWJsZT5cIl0sdGQ6WzMsXCI8dGFibGU+PHRib2R5Pjx0cj5cIixcIjwvdHI+PC90Ym9keT48L3RhYmxlPlwiXSxfZGVmYXVsdDpbMCxcIlwiLFwiXCJdfTtmdW5jdGlvbiBTZShlLHQpe3ZhciBuO3JldHVybiBuPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUodHx8XCIqXCIpOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGw/ZS5xdWVyeVNlbGVjdG9yQWxsKHR8fFwiKlwiKTpbXSx2b2lkIDA9PT10fHx0JiZmZShlLHQpP2NlLm1lcmdlKFtlXSxuKTpufWZ1bmN0aW9uIEVlKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKV8uc2V0KGVbbl0sXCJnbG9iYWxFdmFsXCIsIXR8fF8uZ2V0KHRbbl0sXCJnbG9iYWxFdmFsXCIpKX1rZS50Ym9keT1rZS50Zm9vdD1rZS5jb2xncm91cD1rZS5jYXB0aW9uPWtlLnRoZWFkLGtlLnRoPWtlLnRkLGxlLm9wdGlvbnx8KGtlLm9wdGdyb3VwPWtlLm9wdGlvbj1bMSxcIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz5cIixcIjwvc2VsZWN0PlwiXSk7dmFyIGplPS88fCYjP1xcdys7LztmdW5jdGlvbiBBZShlLHQsbixyLGkpe2Zvcih2YXIgbyxhLHMsdSxsLGMsZj10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxwPVtdLGQ9MCxoPWUubGVuZ3RoO2Q8aDtkKyspaWYoKG89ZVtkXSl8fDA9PT1vKWlmKFwib2JqZWN0XCI9PT14KG8pKWNlLm1lcmdlKHAsby5ub2RlVHlwZT9bb106byk7ZWxzZSBpZihqZS50ZXN0KG8pKXthPWF8fGYuYXBwZW5kQ2hpbGQodC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKSxzPShUZS5leGVjKG8pfHxbXCJcIixcIlwiXSlbMV0udG9Mb3dlckNhc2UoKSx1PWtlW3NdfHxrZS5fZGVmYXVsdCxhLmlubmVySFRNTD11WzFdK2NlLmh0bWxQcmVmaWx0ZXIobykrdVsyXSxjPXVbMF07d2hpbGUoYy0tKWE9YS5sYXN0Q2hpbGQ7Y2UubWVyZ2UocCxhLmNoaWxkTm9kZXMpLChhPWYuZmlyc3RDaGlsZCkudGV4dENvbnRlbnQ9XCJcIn1lbHNlIHAucHVzaCh0LmNyZWF0ZVRleHROb2RlKG8pKTtmLnRleHRDb250ZW50PVwiXCIsZD0wO3doaWxlKG89cFtkKytdKWlmKHImJi0xPGNlLmluQXJyYXkobyxyKSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPUsobyksYT1TZShmLmFwcGVuZENoaWxkKG8pLFwic2NyaXB0XCIpLGwmJkVlKGEpLG4pe2M9MDt3aGlsZShvPWFbYysrXSlDZS50ZXN0KG8udHlwZXx8XCJcIikmJm4ucHVzaChvKX1yZXR1cm4gZn12YXIgRGU9L14oW14uXSopKD86XFwuKC4rKXwpLztmdW5jdGlvbiBOZSgpe3JldHVybiEwfWZ1bmN0aW9uIHFlKCl7cmV0dXJuITF9ZnVuY3Rpb24gTGUoZSx0LG4scixpLG8pe3ZhciBhLHM7aWYoXCJvYmplY3RcIj09dHlwZW9mIHQpe2ZvcihzIGluXCJzdHJpbmdcIiE9dHlwZW9mIG4mJihyPXJ8fG4sbj12b2lkIDApLHQpTGUoZSxzLG4scix0W3NdLG8pO3JldHVybiBlfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dm9pZCAwKTpudWxsPT1pJiYoXCJzdHJpbmdcIj09dHlwZW9mIG4/KGk9cixyPXZvaWQgMCk6KGk9cixyPW4sbj12b2lkIDApKSwhMT09PWkpaT1xZTtlbHNlIGlmKCFpKXJldHVybiBlO3JldHVybiAxPT09byYmKGE9aSwoaT1mdW5jdGlvbihlKXtyZXR1cm4gY2UoKS5vZmYoZSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWEuZ3VpZHx8KGEuZ3VpZD1jZS5ndWlkKyspKSxlLmVhY2goZnVuY3Rpb24oKXtjZS5ldmVudC5hZGQodGhpcyx0LGkscixuKX0pfWZ1bmN0aW9uIEhlKGUscix0KXt0PyhfLnNldChlLHIsITEpLGNlLmV2ZW50LmFkZChlLHIse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0LG49Xy5nZXQodGhpcyxyKTtpZigxJmUuaXNUcmlnZ2VyJiZ0aGlzW3JdKXtpZihuKShjZS5ldmVudC5zcGVjaWFsW3JdfHx7fSkuZGVsZWdhdGVUeXBlJiZlLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYobj1hZS5jYWxsKGFyZ3VtZW50cyksXy5zZXQodGhpcyxyLG4pLHRoaXNbcl0oKSx0PV8uZ2V0KHRoaXMsciksXy5zZXQodGhpcyxyLCExKSxuIT09dClyZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksdH1lbHNlIG4mJihfLnNldCh0aGlzLHIsY2UuZXZlbnQudHJpZ2dlcihuWzBdLG4uc2xpY2UoMSksdGhpcykpLGUuc3RvcFByb3BhZ2F0aW9uKCksZS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1OZSl9fSkpOnZvaWQgMD09PV8uZ2V0KGUscikmJmNlLmV2ZW50LmFkZChlLHIsTmUpfWNlLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG8sYSxzLHUsbCxjLGYscCxkLGgsZyx2PV8uZ2V0KHQpO2lmKCQodCkpe24uaGFuZGxlciYmKG49KG89bikuaGFuZGxlcixpPW8uc2VsZWN0b3IpLGkmJmNlLmZpbmQubWF0Y2hlc1NlbGVjdG9yKEosaSksbi5ndWlkfHwobi5ndWlkPWNlLmd1aWQrKyksKHU9di5ldmVudHMpfHwodT12LmV2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpKSwoYT12LmhhbmRsZSl8fChhPXYuaGFuZGxlPWZ1bmN0aW9uKGUpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBjZSYmY2UuZXZlbnQudHJpZ2dlcmVkIT09ZS50eXBlP2NlLmV2ZW50LmRpc3BhdGNoLmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9KSxsPShlPShlfHxcIlwiKS5tYXRjaChEKXx8W1wiXCJdKS5sZW5ndGg7d2hpbGUobC0tKWQ9Zz0ocz1EZS5leGVjKGVbbF0pfHxbXSlbMV0saD0oc1syXXx8XCJcIikuc3BsaXQoXCIuXCIpLnNvcnQoKSxkJiYoZj1jZS5ldmVudC5zcGVjaWFsW2RdfHx7fSxkPShpP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkLGY9Y2UuZXZlbnQuc3BlY2lhbFtkXXx8e30sYz1jZS5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmY2UuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChpKSxuYW1lc3BhY2U6aC5qb2luKFwiLlwiKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwodCxyLGgsYSl8fHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbCh0LGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSxjZS5ldmVudC5nbG9iYWxbZF09ITApfX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG8sYSxzLHUsbCxjLGYscCxkLGgsZyx2PV8uaGFzRGF0YShlKSYmXy5nZXQoZSk7aWYodiYmKHU9di5ldmVudHMpKXtsPSh0PSh0fHxcIlwiKS5tYXRjaChEKXx8W1wiXCJdKS5sZW5ndGg7d2hpbGUobC0tKWlmKGQ9Zz0ocz1EZS5leGVjKHRbbF0pfHxbXSlbMV0saD0oc1syXXx8XCJcIikuc3BsaXQoXCIuXCIpLnNvcnQoKSxkKXtmPWNlLmV2ZW50LnNwZWNpYWxbZF18fHt9LHA9dVtkPShyP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkXXx8W10scz1zWzJdJiZuZXcgUmVnRXhwKFwiKF58XFxcXC4pXCIraC5qb2luKFwiXFxcXC4oPzouKlxcXFwufClcIikrXCIoXFxcXC58JClcIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKFwiKipcIiE9PXJ8fCFjLnNlbGVjdG9yKXx8KHAuc3BsaWNlKG8sMSksYy5zZWxlY3RvciYmcC5kZWxlZ2F0ZUNvdW50LS0sZi5yZW1vdmUmJmYucmVtb3ZlLmNhbGwoZSxjKSk7YSYmIXAubGVuZ3RoJiYoZi50ZWFyZG93biYmITEhPT1mLnRlYXJkb3duLmNhbGwoZSxoLHYuaGFuZGxlKXx8Y2UucmVtb3ZlRXZlbnQoZSxkLHYuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KWNlLmV2ZW50LnJlbW92ZShlLGQrdFtsXSxuLHIsITApO2NlLmlzRW1wdHlPYmplY3QodSkmJl8ucmVtb3ZlKGUsXCJoYW5kbGUgZXZlbnRzXCIpfX0sZGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHM9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHU9Y2UuZXZlbnQuZml4KGUpLGw9KF8uZ2V0KHRoaXMsXCJldmVudHNcIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW3UudHlwZV18fFtdLGM9Y2UuZXZlbnQuc3BlY2lhbFt1LnR5cGVdfHx7fTtmb3Ioc1swXT11LHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXNbdF09YXJndW1lbnRzW3RdO2lmKHUuZGVsZWdhdGVUYXJnZXQ9dGhpcywhYy5wcmVEaXNwYXRjaHx8ITEhPT1jLnByZURpc3BhdGNoLmNhbGwodGhpcyx1KSl7YT1jZS5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsdSxsKSx0PTA7d2hpbGUoKGk9YVt0KytdKSYmIXUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7dS5jdXJyZW50VGFyZ2V0PWkuZWxlbSxuPTA7d2hpbGUoKG89aS5oYW5kbGVyc1tuKytdKSYmIXUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl1LnJuYW1lc3BhY2UmJiExIT09by5uYW1lc3BhY2UmJiF1LnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fCh1LmhhbmRsZU9iaj1vLHUuZGF0YT1vLmRhdGEsdm9pZCAwIT09KHI9KChjZS5ldmVudC5zcGVjaWFsW28ub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxvLmhhbmRsZXIpLmFwcGx5KGkuZWxlbSxzKSkmJiExPT09KHUucmVzdWx0PXIpJiYodS5wcmV2ZW50RGVmYXVsdCgpLHUuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gYy5wb3N0RGlzcGF0Y2gmJmMucG9zdERpc3BhdGNoLmNhbGwodGhpcyx1KSx1LnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzPVtdLHU9dC5kZWxlZ2F0ZUNvdW50LGw9ZS50YXJnZXQ7aWYodSYmbC5ub2RlVHlwZSYmIShcImNsaWNrXCI9PT1lLnR5cGUmJjE8PWUuYnV0dG9uKSlmb3IoO2whPT10aGlzO2w9bC5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1sLm5vZGVUeXBlJiYoXCJjbGlja1wiIT09ZS50eXBlfHwhMCE9PWwuZGlzYWJsZWQpKXtmb3Iobz1bXSxhPXt9LG49MDtuPHU7bisrKXZvaWQgMD09PWFbaT0ocj10W25dKS5zZWxlY3RvcitcIiBcIl0mJihhW2ldPXIubmVlZHNDb250ZXh0Py0xPGNlKGksdGhpcykuaW5kZXgobCk6Y2UuZmluZChpLHRoaXMsbnVsbCxbbF0pLmxlbmd0aCksYVtpXSYmby5wdXNoKHIpO28ubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczpvfSl9cmV0dXJuIGw9dGhpcyx1PHQubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczp0LnNsaWNlKHUpfSksc30sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShjZS5FdmVudC5wcm90b3R5cGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OnYoZSk/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGUodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFt0XX0sc2V0OmZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KX19KX0sZml4OmZ1bmN0aW9uKGUpe3JldHVybiBlW2NlLmV4cGFuZG9dP2U6bmV3IGNlLkV2ZW50KGUpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHdlLnRlc3QodC50eXBlKSYmdC5jbGljayYmZmUodCxcImlucHV0XCIpJiZIZSh0LFwiY2xpY2tcIiwhMCksITF9LHRyaWdnZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc3x8ZTtyZXR1cm4gd2UudGVzdCh0LnR5cGUpJiZ0LmNsaWNrJiZmZSh0LFwiaW5wdXRcIikmJkhlKHQsXCJjbGlja1wiKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7cmV0dXJuIHdlLnRlc3QodC50eXBlKSYmdC5jbGljayYmZmUodCxcImlucHV0XCIpJiZfLmdldCh0LFwiY2xpY2tcIil8fGZlKHQsXCJhXCIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZS5yZXN1bHQmJmUub3JpZ2luYWxFdmVudCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX19LGNlLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGUsdCxuKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfSxjZS5FdmVudD1mdW5jdGlvbihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGNlLkV2ZW50KSlyZXR1cm4gbmV3IGNlLkV2ZW50KGUsdCk7ZSYmZS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9ZSx0aGlzLnR5cGU9ZS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWUuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09ZS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWUucmV0dXJuVmFsdWU/TmU6cWUsdGhpcy50YXJnZXQ9ZS50YXJnZXQmJjM9PT1lLnRhcmdldC5ub2RlVHlwZT9lLnRhcmdldC5wYXJlbnROb2RlOmUudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1lLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWUucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWUsdCYmY2UuZXh0ZW5kKHRoaXMsdCksdGhpcy50aW1lU3RhbXA9ZSYmZS50aW1lU3RhbXB8fERhdGUubm93KCksdGhpc1tjZS5leHBhbmRvXT0hMH0sY2UuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpjZS5FdmVudCxpc0RlZmF1bHRQcmV2ZW50ZWQ6cWUsaXNQcm9wYWdhdGlvblN0b3BwZWQ6cWUsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6cWUsaXNTaW11bGF0ZWQ6ITEscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9TmUsZSYmIXRoaXMuaXNTaW11bGF0ZWQmJmUucHJldmVudERlZmF1bHQoKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9TmUsZSYmIXRoaXMuaXNTaW11bGF0ZWQmJmUuc3RvcFByb3BhZ2F0aW9uKCl9LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPU5lLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHRoaXMuc3RvcFByb3BhZ2F0aW9uKCl9fSxjZS5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLFwiY2hhclwiOiEwLGNvZGU6ITAsY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ITB9LGNlLmV2ZW50LmFkZFByb3ApLGNlLmVhY2goe2ZvY3VzOlwiZm9jdXNpblwiLGJsdXI6XCJmb2N1c291dFwifSxmdW5jdGlvbihyLGkpe2Z1bmN0aW9uIG8oZSl7aWYoQy5kb2N1bWVudE1vZGUpe3ZhciB0PV8uZ2V0KHRoaXMsXCJoYW5kbGVcIiksbj1jZS5ldmVudC5maXgoZSk7bi50eXBlPVwiZm9jdXNpblwiPT09ZS50eXBlP1wiZm9jdXNcIjpcImJsdXJcIixuLmlzU2ltdWxhdGVkPSEwLHQoZSksbi50YXJnZXQ9PT1uLmN1cnJlbnRUYXJnZXQmJnQobil9ZWxzZSBjZS5ldmVudC5zaW11bGF0ZShpLGUudGFyZ2V0LGNlLmV2ZW50LmZpeChlKSl9Y2UuZXZlbnQuc3BlY2lhbFtyXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZTtpZihIZSh0aGlzLHIsITApLCFDLmRvY3VtZW50TW9kZSlyZXR1cm4hMTsoZT1fLmdldCh0aGlzLGkpKXx8dGhpcy5hZGRFdmVudExpc3RlbmVyKGksbyksXy5zZXQodGhpcyxpLChlfHwwKSsxKX0sdHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLHIpLCEwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBlO2lmKCFDLmRvY3VtZW50TW9kZSlyZXR1cm4hMTsoZT1fLmdldCh0aGlzLGkpLTEpP18uc2V0KHRoaXMsaSxlKToodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGksbyksXy5yZW1vdmUodGhpcyxpKSl9LF9kZWZhdWx0OmZ1bmN0aW9uKGUpe3JldHVybiBfLmdldChlLnRhcmdldCxyKX0sZGVsZWdhdGVUeXBlOml9LGNlLmV2ZW50LnNwZWNpYWxbaV09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLmRvY3VtZW50fHx0aGlzLHQ9Qy5kb2N1bWVudE1vZGU/dGhpczplLG49Xy5nZXQodCxpKTtufHwoQy5kb2N1bWVudE1vZGU/dGhpcy5hZGRFdmVudExpc3RlbmVyKGksbyk6ZS5hZGRFdmVudExpc3RlbmVyKHIsbywhMCkpLF8uc2V0KHQsaSwobnx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLmRvY3VtZW50fHx0aGlzLHQ9Qy5kb2N1bWVudE1vZGU/dGhpczplLG49Xy5nZXQodCxpKS0xO24/Xy5zZXQodCxpLG4pOihDLmRvY3VtZW50TW9kZT90aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoaSxvKTplLnJlbW92ZUV2ZW50TGlzdGVuZXIocixvLCEwKSxfLnJlbW92ZSh0LGkpKX19fSksY2UuZWFjaCh7bW91c2VlbnRlcjpcIm1vdXNlb3ZlclwiLG1vdXNlbGVhdmU6XCJtb3VzZW91dFwiLHBvaW50ZXJlbnRlcjpcInBvaW50ZXJvdmVyXCIscG9pbnRlcmxlYXZlOlwicG9pbnRlcm91dFwifSxmdW5jdGlvbihlLGkpe2NlLmV2ZW50LnNwZWNpYWxbZV09e2RlbGVnYXRlVHlwZTppLGJpbmRUeXBlOmksaGFuZGxlOmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5yZWxhdGVkVGFyZ2V0LHI9ZS5oYW5kbGVPYmo7cmV0dXJuIG4mJihuPT09dGhpc3x8Y2UuY29udGFpbnModGhpcyxuKSl8fChlLnR5cGU9ci5vcmlnVHlwZSx0PXIuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZS50eXBlPWkpLHR9fX0pLGNlLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIExlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gTGUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosY2UoZS5kZWxlZ2F0ZVRhcmdldCkub2ZmKHIubmFtZXNwYWNlP3Iub3JpZ1R5cGUrXCIuXCIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZihcIm9iamVjdFwiPT10eXBlb2YgZSl7Zm9yKGkgaW4gZSl0aGlzLm9mZihpLHQsZVtpXSk7cmV0dXJuIHRoaXN9cmV0dXJuITEhPT10JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0fHwobj10LHQ9dm9pZCAwKSwhMT09PW4mJihuPXFlKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtjZS5ldmVudC5yZW1vdmUodGhpcyxlLG4sdCl9KX19KTt2YXIgT2U9LzxzY3JpcHR8PHN0eWxlfDxsaW5rL2ksUGU9L2NoZWNrZWRcXHMqKD86W149XXw9XFxzKi5jaGVja2VkLikvaSxNZT0vXlxccyo8IVxcW0NEQVRBXFxbfFxcXVxcXT5cXHMqJC9nO2Z1bmN0aW9uIFJlKGUsdCl7cmV0dXJuIGZlKGUsXCJ0YWJsZVwiKSYmZmUoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLFwidHJcIikmJmNlKGUpLmNoaWxkcmVuKFwidGJvZHlcIilbMF18fGV9ZnVuY3Rpb24gSWUoZSl7cmV0dXJuIGUudHlwZT0obnVsbCE9PWUuZ2V0QXR0cmlidXRlKFwidHlwZVwiKSkrXCIvXCIrZS50eXBlLGV9ZnVuY3Rpb24gV2UoZSl7cmV0dXJuXCJ0cnVlL1wiPT09KGUudHlwZXx8XCJcIikuc2xpY2UoMCw1KT9lLnR5cGU9ZS50eXBlLnNsaWNlKDUpOmUucmVtb3ZlQXR0cmlidXRlKFwidHlwZVwiKSxlfWZ1bmN0aW9uIEZlKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihfLmhhc0RhdGEoZSkmJihzPV8uZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gXy5yZW1vdmUodCxcImhhbmRsZSBldmVudHNcIikscylmb3Iobj0wLHI9c1tpXS5sZW5ndGg7bjxyO24rKyljZS5ldmVudC5hZGQodCxpLHNbaV1bbl0pO3ouaGFzRGF0YShlKSYmKG89ei5hY2Nlc3MoZSksYT1jZS5leHRlbmQoe30sbyksei5zZXQodCxhKSl9fWZ1bmN0aW9uICRlKG4scixpLG8pe3I9ZyhyKTt2YXIgZSx0LGEscyx1LGwsYz0wLGY9bi5sZW5ndGgscD1mLTEsZD1yWzBdLGg9dihkKTtpZihofHwxPGYmJlwic3RyaW5nXCI9PXR5cGVvZiBkJiYhbGUuY2hlY2tDbG9uZSYmUGUudGVzdChkKSlyZXR1cm4gbi5lYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW4uZXEoZSk7aCYmKHJbMF09ZC5jYWxsKHRoaXMsZSx0Lmh0bWwoKSkpLCRlKHQscixpLG8pfSk7aWYoZiYmKHQ9KGU9QWUocixuWzBdLm93bmVyRG9jdW1lbnQsITEsbixvKSkuZmlyc3RDaGlsZCwxPT09ZS5jaGlsZE5vZGVzLmxlbmd0aCYmKGU9dCksdHx8bykpe2ZvcihzPShhPWNlLm1hcChTZShlLFwic2NyaXB0XCIpLEllKSkubGVuZ3RoO2M8ZjtjKyspdT1lLGMhPT1wJiYodT1jZS5jbG9uZSh1LCEwLCEwKSxzJiZjZS5tZXJnZShhLFNlKHUsXCJzY3JpcHRcIikpKSxpLmNhbGwobltjXSx1LGMpO2lmKHMpZm9yKGw9YVthLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LGNlLm1hcChhLFdlKSxjPTA7YzxzO2MrKyl1PWFbY10sQ2UudGVzdCh1LnR5cGV8fFwiXCIpJiYhXy5hY2Nlc3ModSxcImdsb2JhbEV2YWxcIikmJmNlLmNvbnRhaW5zKGwsdSkmJih1LnNyYyYmXCJtb2R1bGVcIiE9PSh1LnR5cGV8fFwiXCIpLnRvTG93ZXJDYXNlKCk/Y2UuX2V2YWxVcmwmJiF1Lm5vTW9kdWxlJiZjZS5fZXZhbFVybCh1LnNyYyx7bm9uY2U6dS5ub25jZXx8dS5nZXRBdHRyaWJ1dGUoXCJub25jZVwiKX0sbCk6bSh1LnRleHRDb250ZW50LnJlcGxhY2UoTWUsXCJcIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gQmUoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Y2UuZmlsdGVyKHQsZSk6ZSxvPTA7bnVsbCE9KHI9aVtvXSk7bysrKW58fDEhPT1yLm5vZGVUeXBlfHxjZS5jbGVhbkRhdGEoU2UocikpLHIucGFyZW50Tm9kZSYmKG4mJksocikmJkVlKFNlKHIsXCJzY3JpcHRcIikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Y2UuZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxjbG9uZTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGwsYz1lLmNsb25lTm9kZSghMCksZj1LKGUpO2lmKCEobGUubm9DbG9uZUNoZWNrZWR8fDEhPT1lLm5vZGVUeXBlJiYxMSE9PWUubm9kZVR5cGV8fGNlLmlzWE1MRG9jKGUpKSlmb3IoYT1TZShjKSxyPTAsaT0obz1TZShlKSkubGVuZ3RoO3I8aTtyKyspcz1vW3JdLHU9YVtyXSx2b2lkIDAsXCJpbnB1dFwiPT09KGw9dS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSYmd2UudGVzdChzLnR5cGUpP3UuY2hlY2tlZD1zLmNoZWNrZWQ6XCJpbnB1dFwiIT09bCYmXCJ0ZXh0YXJlYVwiIT09bHx8KHUuZGVmYXVsdFZhbHVlPXMuZGVmYXVsdFZhbHVlKTtpZih0KWlmKG4pZm9yKG89b3x8U2UoZSksYT1hfHxTZShjKSxyPTAsaT1vLmxlbmd0aDtyPGk7cisrKUZlKG9bcl0sYVtyXSk7ZWxzZSBGZShlLGMpO3JldHVybiAwPChhPVNlKGMsXCJzY3JpcHRcIikpLmxlbmd0aCYmRWUoYSwhZiYmU2UoZSxcInNjcmlwdFwiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1jZS5ldmVudC5zcGVjaWFsLG89MDt2b2lkIDAhPT0obj1lW29dKTtvKyspaWYoJChuKSl7aWYodD1uW18uZXhwYW5kb10pe2lmKHQuZXZlbnRzKWZvcihyIGluIHQuZXZlbnRzKWlbcl0/Y2UuZXZlbnQucmVtb3ZlKG4scik6Y2UucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW18uZXhwYW5kb109dm9pZCAwfW5bei5leHBhbmRvXSYmKG5bei5leHBhbmRvXT12b2lkIDApfX19KSxjZS5mbi5leHRlbmQoe2RldGFjaDpmdW5jdGlvbihlKXtyZXR1cm4gQmUodGhpcyxlLCEwKX0scmVtb3ZlOmZ1bmN0aW9uKGUpe3JldHVybiBCZSh0aGlzLGUpfSx0ZXh0OmZ1bmN0aW9uKGUpe3JldHVybiBNKHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/Y2UudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD1lKX0pfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiAkZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8UmUodGhpcyxlKS5hcHBlbmRDaGlsZChlKX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuICRlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgdD1SZSh0aGlzLGUpO3QuaW5zZXJ0QmVmb3JlKGUsdC5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuICRlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuICRlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9MDtudWxsIT0oZT10aGlzW3RdKTt0KyspMT09PWUubm9kZVR5cGUmJihjZS5jbGVhbkRhdGEoU2UoZSwhMSkpLGUudGV4dENvbnRlbnQ9XCJcIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9bnVsbCE9ZSYmZSx0PW51bGw9PXQ/ZTp0LHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGNlLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiBNKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiYhT2UudGVzdChlKSYmIWtlWyhUZS5leGVjKGUpfHxbXCJcIixcIlwiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Y2UuaHRtbFByZWZpbHRlcihlKTt0cnl7Zm9yKDtuPHI7bisrKTE9PT0odD10aGlzW25dfHx7fSkubm9kZVR5cGUmJihjZS5jbGVhbkRhdGEoU2UodCwhMSkpLHQuaW5uZXJIVE1MPWUpO3Q9MH1jYXRjaChlKXt9fXQmJnRoaXMuZW1wdHkoKS5hcHBlbmQoZSl9LG51bGwsZSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gJGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO2NlLmluQXJyYXkodGhpcyxuKTwwJiYoY2UuY2xlYW5EYXRhKFNlKHRoaXMpKSx0JiZ0LnJlcGxhY2VDaGlsZChlLHRoaXMpKX0sbil9fSksY2UuZWFjaCh7YXBwZW5kVG86XCJhcHBlbmRcIixwcmVwZW5kVG86XCJwcmVwZW5kXCIsaW5zZXJ0QmVmb3JlOlwiYmVmb3JlXCIsaW5zZXJ0QWZ0ZXI6XCJhZnRlclwiLHJlcGxhY2VBbGw6XCJyZXBsYWNlV2l0aFwifSxmdW5jdGlvbihlLGEpe2NlLmZuW2VdPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPVtdLHI9Y2UoZSksaT1yLmxlbmd0aC0xLG89MDtvPD1pO28rKyl0PW89PT1pP3RoaXM6dGhpcy5jbG9uZSghMCksY2UocltvXSlbYV0odCkscy5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgX2U9bmV3IFJlZ0V4cChcIl4oXCIrRytcIikoPyFweClbYS16JV0rJFwiLFwiaVwiKSx6ZT0vXi0tLyxYZT1mdW5jdGlvbihlKXt2YXIgdD1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIHQmJnQub3BlbmVyfHwodD1pZSksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxVZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sVmU9bmV3IFJlZ0V4cChRLmpvaW4oXCJ8XCIpLFwiaVwiKTtmdW5jdGlvbiBHZShlLHQsbil7dmFyIHIsaSxvLGEscz16ZS50ZXN0KHQpLHU9ZS5zdHlsZTtyZXR1cm4obj1ufHxYZShlKSkmJihhPW4uZ2V0UHJvcGVydHlWYWx1ZSh0KXx8blt0XSxzJiZhJiYoYT1hLnJlcGxhY2UodmUsXCIkMVwiKXx8dm9pZCAwKSxcIlwiIT09YXx8SyhlKXx8KGE9Y2Uuc3R5bGUoZSx0KSksIWxlLnBpeGVsQm94U3R5bGVzKCkmJl9lLnRlc3QoYSkmJlZlLnRlc3QodCkmJihyPXUud2lkdGgsaT11Lm1pbldpZHRoLG89dS5tYXhXaWR0aCx1Lm1pbldpZHRoPXUubWF4V2lkdGg9dS53aWR0aD1hLGE9bi53aWR0aCx1LndpZHRoPXIsdS5taW5XaWR0aD1pLHUubWF4V2lkdGg9bykpLHZvaWQgMCE9PWE/YStcIlwiOmF9ZnVuY3Rpb24gWWUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9XCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowXCIsbC5zdHlsZS5jc3NUZXh0PVwicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJVwiLEouYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9aWUuZ2V0Q29tcHV0ZWRTdHlsZShsKTtuPVwiMSVcIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD1cIjYwJVwiLG89MzY9PT10KGUucmlnaHQpLHI9MzY9PT10KGUud2lkdGgpLGwuc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLGk9MTI9PT10KGwub2Zmc2V0V2lkdGgvMyksSi5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9Qy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGw9Qy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2wuc3R5bGUmJihsLnN0eWxlLmJhY2tncm91bmRDbGlwPVwiY29udGVudC1ib3hcIixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9XCJcIixsZS5jbGVhckNsb25lU3R5bGU9XCJjb250ZW50LWJveFwiPT09bC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCxjZS5leHRlbmQobGUse2JveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxyfSxwaXhlbEJveFN0eWxlczpmdW5jdGlvbigpe3JldHVybiBlKCksb30scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBlKCksbn0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxzfSxzY3JvbGxib3hTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxpfSxyZWxpYWJsZVRyRGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciBlLHQsbixyO3JldHVybiBudWxsPT1hJiYoZT1DLmNyZWF0ZUVsZW1lbnQoXCJ0YWJsZVwiKSx0PUMuY3JlYXRlRWxlbWVudChcInRyXCIpLG49Qy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGUuc3R5bGUuY3NzVGV4dD1cInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlXCIsdC5zdHlsZS5jc3NUZXh0PVwiYm94LXNpemluZzpjb250ZW50LWJveDtib3JkZXI6MXB4IHNvbGlkXCIsdC5zdHlsZS5oZWlnaHQ9XCIxcHhcIixuLnN0eWxlLmhlaWdodD1cIjlweFwiLG4uc3R5bGUuZGlzcGxheT1cImJsb2NrXCIsSi5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPWllLmdldENvbXB1dGVkU3R5bGUodCksYT1wYXJzZUludChyLmhlaWdodCwxMCkrcGFyc2VJbnQoci5ib3JkZXJUb3BXaWR0aCwxMCkrcGFyc2VJbnQoci5ib3JkZXJCb3R0b21XaWR0aCwxMCk9PT10Lm9mZnNldEhlaWdodCxKLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgUWU9W1wiV2Via2l0XCIsXCJNb3pcIixcIm1zXCJdLEplPUMuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZSxLZT17fTtmdW5jdGlvbiBaZShlKXt2YXIgdD1jZS5jc3NQcm9wc1tlXXx8S2VbZV07cmV0dXJuIHR8fChlIGluIEplP2U6S2VbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1RZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPVFlW25dK3QpaW4gSmUpcmV0dXJuIGV9KGUpfHxlKX12YXIgZXQ9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLHR0PXtwb3NpdGlvbjpcImFic29sdXRlXCIsdmlzaWJpbGl0eTpcImhpZGRlblwiLGRpc3BsYXk6XCJibG9ja1wifSxudD17bGV0dGVyU3BhY2luZzpcIjBcIixmb250V2VpZ2h0OlwiNDAwXCJ9O2Z1bmN0aW9uIHJ0KGUsdCxuKXt2YXIgcj1ZLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fFwicHhcIik6dH1mdW5jdGlvbiBpdChlLHQsbixyLGksbyl7dmFyIGE9XCJ3aWR0aFwiPT09dD8xOjAscz0wLHU9MCxsPTA7aWYobj09PShyP1wiYm9yZGVyXCI6XCJjb250ZW50XCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpXCJtYXJnaW5cIj09PW4mJihsKz1jZS5jc3MoZSxuK1FbYV0sITAsaSkpLHI/KFwiY29udGVudFwiPT09biYmKHUtPWNlLmNzcyhlLFwicGFkZGluZ1wiK1FbYV0sITAsaSkpLFwibWFyZ2luXCIhPT1uJiYodS09Y2UuY3NzKGUsXCJib3JkZXJcIitRW2FdK1wiV2lkdGhcIiwhMCxpKSkpOih1Kz1jZS5jc3MoZSxcInBhZGRpbmdcIitRW2FdLCEwLGkpLFwicGFkZGluZ1wiIT09bj91Kz1jZS5jc3MoZSxcImJvcmRlclwiK1FbYV0rXCJXaWR0aFwiLCEwLGkpOnMrPWNlLmNzcyhlLFwiYm9yZGVyXCIrUVthXStcIldpZHRoXCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVtcIm9mZnNldFwiK3RbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpXS1vLXUtcy0uNSkpfHwwKSx1K2x9ZnVuY3Rpb24gb3QoZSx0LG4pe3ZhciByPVhlKGUpLGk9KCFsZS5ib3hTaXppbmdSZWxpYWJsZSgpfHxuKSYmXCJib3JkZXItYm94XCI9PT1jZS5jc3MoZSxcImJveFNpemluZ1wiLCExLHIpLG89aSxhPUdlKGUsdCxyKSxzPVwib2Zmc2V0XCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoX2UudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT1cImF1dG9cIn1yZXR1cm4oIWxlLmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCFsZS5yZWxpYWJsZVRyRGltZW5zaW9ucygpJiZmZShlLFwidHJcIil8fFwiYXV0b1wiPT09YXx8IXBhcnNlRmxvYXQoYSkmJlwiaW5saW5lXCI9PT1jZS5jc3MoZSxcImRpc3BsYXlcIiwhMSxyKSkmJmUuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJihpPVwiYm9yZGVyLWJveFwiPT09Y2UuY3NzKGUsXCJib3hTaXppbmdcIiwhMSxyKSwobz1zIGluIGUpJiYoYT1lW3NdKSksKGE9cGFyc2VGbG9hdChhKXx8MCkraXQoZSx0LG58fChpP1wiYm9yZGVyXCI6XCJjb250ZW50XCIpLG8scixhKStcInB4XCJ9ZnVuY3Rpb24gYXQoZSx0LG4scixpKXtyZXR1cm4gbmV3IGF0LnByb3RvdHlwZS5pbml0KGUsdCxuLHIsaSl9Y2UuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGUsdCl7aWYodCl7dmFyIG49R2UoZSxcIm9wYWNpdHlcIik7cmV0dXJuXCJcIj09PW4/XCIxXCI6bn19fX0sY3NzTnVtYmVyOnthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGNvbHVtbkNvdW50OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsc2NhbGU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9Rih0KSx1PXplLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PVplKHMpKSxhPWNlLmNzc0hvb2tzW3RdfHxjZS5jc3NIb29rc1tzXSx2b2lkIDA9PT1uKXJldHVybiBhJiZcImdldFwiaW4gYSYmdm9pZCAwIT09KGk9YS5nZXQoZSwhMSxyKSk/aTpsW3RdO1wic3RyaW5nXCI9PT0obz10eXBlb2YgbikmJihpPVkuZXhlYyhuKSkmJmlbMV0mJihuPXRlKGUsdCxpKSxvPVwibnVtYmVyXCIpLG51bGwhPW4mJm49PW4mJihcIm51bWJlclwiIT09b3x8dXx8KG4rPWkmJmlbM118fChjZS5jc3NOdW1iZXJbc10/XCJcIjpcInB4XCIpKSxsZS5jbGVhckNsb25lU3R5bGV8fFwiXCIhPT1ufHwwIT09dC5pbmRleE9mKFwiYmFja2dyb3VuZFwiKXx8KGxbdF09XCJpbmhlcml0XCIpLGEmJlwic2V0XCJpbiBhJiZ2b2lkIDA9PT0obj1hLnNldChlLG4scikpfHwodT9sLnNldFByb3BlcnR5KHQsbik6bFt0XT1uKSl9fSxjc3M6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbyxhLHM9Rih0KTtyZXR1cm4gemUudGVzdCh0KXx8KHQ9WmUocykpLChhPWNlLmNzc0hvb2tzW3RdfHxjZS5jc3NIb29rc1tzXSkmJlwiZ2V0XCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1HZShlLHQscikpLFwibm9ybWFsXCI9PT1pJiZ0IGluIG50JiYoaT1udFt0XSksXCJcIj09PW58fG4/KG89cGFyc2VGbG9hdChpKSwhMD09PW58fGlzRmluaXRlKG8pP298fDA6aSk6aX19KSxjZS5lYWNoKFtcImhlaWdodFwiLFwid2lkdGhcIl0sZnVuY3Rpb24oZSx1KXtjZS5jc3NIb29rc1t1XT17Z2V0OmZ1bmN0aW9uKGUsdCxuKXtpZih0KXJldHVybiFldC50ZXN0KGNlLmNzcyhlLFwiZGlzcGxheVwiKSl8fGUuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg/b3QoZSx1LG4pOlVlKGUsdHQsZnVuY3Rpb24oKXtyZXR1cm4gb3QoZSx1LG4pfSl9LHNldDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT1YZShlKSxvPSFsZS5zY3JvbGxib3hTaXplKCkmJlwiYWJzb2x1dGVcIj09PWkucG9zaXRpb24sYT0ob3x8bikmJlwiYm9yZGVyLWJveFwiPT09Y2UuY3NzKGUsXCJib3hTaXppbmdcIiwhMSxpKSxzPW4/aXQoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbXCJvZmZzZXRcIit1WzBdLnRvVXBwZXJDYXNlKCkrdS5zbGljZSgxKV0tcGFyc2VGbG9hdChpW3VdKS1pdChlLHUsXCJib3JkZXJcIiwhMSxpKS0uNSkpLHMmJihyPVkuZXhlYyh0KSkmJlwicHhcIiE9PShyWzNdfHxcInB4XCIpJiYoZS5zdHlsZVt1XT10LHQ9Y2UuY3NzKGUsdSkpLHJ0KDAsdCxzKX19fSksY2UuY3NzSG9va3MubWFyZ2luTGVmdD1ZZShsZS5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24oZSx0KXtpZih0KXJldHVybihwYXJzZUZsb2F0KEdlKGUsXCJtYXJnaW5MZWZ0XCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LVVlKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpK1wicHhcIn0pLGNlLmVhY2goe21hcmdpbjpcIlwiLHBhZGRpbmc6XCJcIixib3JkZXI6XCJXaWR0aFwifSxmdW5jdGlvbihpLG8pe2NlLmNzc0hvb2tzW2krb109e2V4cGFuZDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPXt9LHI9XCJzdHJpbmdcIj09dHlwZW9mIGU/ZS5zcGxpdChcIiBcIik6W2VdO3Q8NDt0KyspbltpK1FbdF0rb109clt0XXx8clt0LTJdfHxyWzBdO3JldHVybiBufX0sXCJtYXJnaW5cIiE9PWkmJihjZS5jc3NIb29rc1tpK29dLnNldD1ydCl9KSxjZS5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihlLHQpe3JldHVybiBNKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz17fSxhPTA7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHI9WGUoZSksaT10Lmxlbmd0aDthPGk7YSsrKW9bdFthXV09Y2UuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9jZS5zdHlsZShlLHQsbik6Y2UuY3NzKGUsdCl9LGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfX0pLCgoY2UuVHdlZW49YXQpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6YXQsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Y2UuZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz10LHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1yLHRoaXMudW5pdD1vfHwoY2UuY3NzTnVtYmVyW25dP1wiXCI6XCJweFwiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9YXQucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOmF0LnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPWF0LnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1jZS5lYXNpbmdbdGhpcy5lYXNpbmddKGUsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9dD1lLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSp0K3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLG4mJm4uc2V0P24uc2V0KHRoaXMpOmF0LnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319KS5pbml0LnByb3RvdHlwZT1hdC5wcm90b3R5cGUsKGF0LnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gMSE9PWUuZWxlbS5ub2RlVHlwZXx8bnVsbCE9ZS5lbGVtW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVtlLnByb3BdP2UuZWxlbVtlLnByb3BdOih0PWNlLmNzcyhlLmVsZW0sZS5wcm9wLFwiXCIpKSYmXCJhdXRvXCIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe2NlLmZ4LnN0ZXBbZS5wcm9wXT9jZS5meC5zdGVwW2UucHJvcF0oZSk6MSE9PWUuZWxlbS5ub2RlVHlwZXx8IWNlLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVtaZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpjZS5zdHlsZShlLmVsZW0sZS5wcm9wLGUubm93K2UudW5pdCl9fX0pLnNjcm9sbFRvcD1hdC5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGUpe2UuZWxlbS5ub2RlVHlwZSYmZS5lbGVtLnBhcmVudE5vZGUmJihlLmVsZW1bZS5wcm9wXT1lLm5vdyl9fSxjZS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihlKXtyZXR1cm4gZX0sc3dpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuLjUtTWF0aC5jb3MoZSpNYXRoLlBJKS8yfSxfZGVmYXVsdDpcInN3aW5nXCJ9LGNlLmZ4PWF0LnByb3RvdHlwZS5pbml0LGNlLmZ4LnN0ZXA9e307dmFyIHN0LHV0LGx0LGN0LGZ0PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxwdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIGR0KCl7dXQmJighMT09PUMuaGlkZGVuJiZpZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/aWUucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGR0KTppZS5zZXRUaW1lb3V0KGR0LGNlLmZ4LmludGVydmFsKSxjZS5meC50aWNrKCkpfWZ1bmN0aW9uIGh0KCl7cmV0dXJuIGllLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzdD12b2lkIDB9KSxzdD1EYXRlLm5vdygpfWZ1bmN0aW9uIGd0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbXCJtYXJnaW5cIisobj1RW3JdKV09aVtcInBhZGRpbmdcIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiB2dChlLHQsbil7Zm9yKHZhciByLGk9KHl0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KHl0LnR3ZWVuZXJzW1wiKlwiXSksbz0wLGE9aS5sZW5ndGg7bzxhO28rKylpZihyPWlbb10uY2FsbChuLHQsZSkpcmV0dXJuIHJ9ZnVuY3Rpb24geXQobyxlLHQpe3ZhciBuLGEscj0wLGk9eXQucHJlZmlsdGVycy5sZW5ndGgscz1jZS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9c3R8fGh0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpjZS5leHRlbmQoe30sZSksb3B0czpjZS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOmNlLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOnN0fHxodCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Y2UuVHdlZW4obyxsLm9wdHMsZSx0LGwub3B0cy5zcGVjaWFsRWFzaW5nW2VdfHxsLm9wdHMuZWFzaW5nKTtyZXR1cm4gbC50d2VlbnMucHVzaChuKSxufSxzdG9wOmZ1bmN0aW9uKGUpe3ZhciB0PTAsbj1lP2wudHdlZW5zLmxlbmd0aDowO2lmKGEpcmV0dXJuIHRoaXM7Zm9yKGE9ITA7dDxuO3QrKylsLnR3ZWVuc1t0XS5ydW4oMSk7cmV0dXJuIGU/KHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbCxlXSkpOnMucmVqZWN0V2l0aChvLFtsLGVdKSx0aGlzfX0pLGM9bC5wcm9wcztmb3IoIWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYTtmb3IobiBpbiBlKWlmKGk9dFtyPUYobildLG89ZVtuXSxBcnJheS5pc0FycmF5KG8pJiYoaT1vWzFdLG89ZVtuXT1vWzBdKSxuIT09ciYmKGVbcl09byxkZWxldGUgZVtuXSksKGE9Y2UuY3NzSG9va3Nbcl0pJiZcImV4cGFuZFwiaW4gYSlmb3IobiBpbiBvPWEuZXhwYW5kKG8pLGRlbGV0ZSBlW3JdLG8pbiBpbiBlfHwoZVtuXT1vW25dLHRbbl09aSk7ZWxzZSB0W3JdPWl9KGMsbC5vcHRzLnNwZWNpYWxFYXNpbmcpO3I8aTtyKyspaWYobj15dC5wcmVmaWx0ZXJzW3JdLmNhbGwobCxvLGMsbC5vcHRzKSlyZXR1cm4gdihuLnN0b3ApJiYoY2UuX3F1ZXVlSG9va3MobC5lbGVtLGwub3B0cy5xdWV1ZSkuc3RvcD1uLnN0b3AuYmluZChuKSksbjtyZXR1cm4gY2UubWFwKGMsdnQsbCksdihsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLGNlLmZ4LnRpbWVyKGNlLmV4dGVuZCh1LHtlbGVtOm8sYW5pbTpsLHF1ZXVlOmwub3B0cy5xdWV1ZX0pKSxsfWNlLkFuaW1hdGlvbj1jZS5leHRlbmQoeXQse3R3ZWVuZXJzOntcIipcIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHRlKG4uZWxlbSxlLFkuZXhlYyh0KSxuKSxufV19LHR3ZWVuZXI6ZnVuY3Rpb24oZSx0KXt2KGUpPyh0PWUsZT1bXCIqXCJdKTplPWUubWF0Y2goRCk7Zm9yKHZhciBuLHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspbj1lW3JdLHl0LnR3ZWVuZXJzW25dPXl0LnR3ZWVuZXJzW25dfHxbXSx5dC50d2VlbmVyc1tuXS51bnNoaWZ0KHQpfSxwcmVmaWx0ZXJzOltmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGwsYyxmPVwid2lkdGhcImluIHR8fFwiaGVpZ2h0XCJpbiB0LHA9dGhpcyxkPXt9LGg9ZS5zdHlsZSxnPWUubm9kZVR5cGUmJmVlKGUpLHY9Xy5nZXQoZSxcImZ4c2hvd1wiKTtmb3IociBpbiBuLnF1ZXVlfHwobnVsbD09KGE9Y2UuX3F1ZXVlSG9va3MoZSxcImZ4XCIpKS51bnF1ZXVlZCYmKGEudW5xdWV1ZWQ9MCxzPWEuZW1wdHkuZmlyZSxhLmVtcHR5LmZpcmU9ZnVuY3Rpb24oKXthLnVucXVldWVkfHxzKCl9KSxhLnVucXVldWVkKysscC5hbHdheXMoZnVuY3Rpb24oKXtwLmFsd2F5cyhmdW5jdGlvbigpe2EudW5xdWV1ZWQtLSxjZS5xdWV1ZShlLFwiZnhcIikubGVuZ3RofHxhLmVtcHR5LmZpcmUoKX0pfSkpLHQpaWYoaT10W3JdLGZ0LnRlc3QoaSkpe2lmKGRlbGV0ZSB0W3JdLG89b3x8XCJ0b2dnbGVcIj09PWksaT09PShnP1wiaGlkZVwiOlwic2hvd1wiKSl7aWYoXCJzaG93XCIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Y2Uuc3R5bGUoZSxyKX1pZigodT0hY2UuaXNFbXB0eU9iamVjdCh0KSl8fCFjZS5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9Xy5nZXQoZSxcImRpc3BsYXlcIikpLFwibm9uZVwiPT09KGM9Y2UuY3NzKGUsXCJkaXNwbGF5XCIpKSYmKGw/Yz1sOihyZShbZV0sITApLGw9ZS5zdHlsZS5kaXNwbGF5fHxsLGM9Y2UuY3NzKGUsXCJkaXNwbGF5XCIpLHJlKFtlXSkpKSwoXCJpbmxpbmVcIj09PWN8fFwiaW5saW5lLWJsb2NrXCI9PT1jJiZudWxsIT1sKSYmXCJub25lXCI9PT1jZS5jc3MoZSxcImZsb2F0XCIpJiYodXx8KHAuZG9uZShmdW5jdGlvbigpe2guZGlzcGxheT1sfSksbnVsbD09bCYmKGM9aC5kaXNwbGF5LGw9XCJub25lXCI9PT1jP1wiXCI6YykpLGguZGlzcGxheT1cImlubGluZS1ibG9ja1wiKSksbi5vdmVyZmxvdyYmKGgub3ZlcmZsb3c9XCJoaWRkZW5cIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2P1wiaGlkZGVuXCJpbiB2JiYoZz12LmhpZGRlbik6dj1fLmFjY2VzcyhlLFwiZnhzaG93XCIse2Rpc3BsYXk6bH0pLG8mJih2LmhpZGRlbj0hZyksZyYmcmUoW2VdLCEwKSxwLmRvbmUoZnVuY3Rpb24oKXtmb3IociBpbiBnfHxyZShbZV0pLF8ucmVtb3ZlKGUsXCJmeHNob3dcIiksZCljZS5zdHlsZShlLHIsZFtyXSl9KSksdT12dChnP3Zbcl06MCxyLHApLHIgaW4gdnx8KHZbcl09dS5zdGFydCxnJiYodS5lbmQ9dS5zdGFydCx1LnN0YXJ0PTApKX1dLHByZWZpbHRlcjpmdW5jdGlvbihlLHQpe3Q/eXQucHJlZmlsdGVycy51bnNoaWZ0KGUpOnl0LnByZWZpbHRlcnMucHVzaChlKX19KSxjZS5zcGVlZD1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZSYmXCJvYmplY3RcIj09dHlwZW9mIGU/Y2UuZXh0ZW5kKHt9LGUpOntjb21wbGV0ZTpufHwhbiYmdHx8dihlKSYmZSxkdXJhdGlvbjplLGVhc2luZzpuJiZ0fHx0JiYhdih0KSYmdH07cmV0dXJuIGNlLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6XCJudW1iZXJcIiE9dHlwZW9mIHIuZHVyYXRpb24mJihyLmR1cmF0aW9uIGluIGNlLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPWNlLmZ4LnNwZWVkc1tyLmR1cmF0aW9uXTpyLmR1cmF0aW9uPWNlLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9ci5xdWV1ZSYmITAhPT1yLnF1ZXVlfHwoci5xdWV1ZT1cImZ4XCIpLHIub2xkPXIuY29tcGxldGUsci5jb21wbGV0ZT1mdW5jdGlvbigpe3Yoci5vbGQpJiZyLm9sZC5jYWxsKHRoaXMpLHIucXVldWUmJmNlLmRlcXVldWUodGhpcyxyLnF1ZXVlKX0scn0sY2UuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGVlKS5jc3MoXCJvcGFjaXR5XCIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6dH0sZSxuLHIpfSxhbmltYXRlOmZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPWNlLmlzRW1wdHlPYmplY3QodCksbz1jZS5zcGVlZChlLG4sciksYT1mdW5jdGlvbigpe3ZhciBlPXl0KHRoaXMsY2UuZXh0ZW5kKHt9LHQpLG8pOyhpfHxfLmdldCh0aGlzLFwiZmluaXNoXCIpKSYmZS5zdG9wKCEwKX07cmV0dXJuIGEuZmluaXNoPWEsaXx8ITE9PT1vLnF1ZXVlP3RoaXMuZWFjaChhKTp0aGlzLnF1ZXVlKG8ucXVldWUsYSl9LHN0b3A6ZnVuY3Rpb24oaSxlLG8pe3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RvcDtkZWxldGUgZS5zdG9wLHQobyl9O3JldHVyblwic3RyaW5nXCIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHxcImZ4XCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPSEwLHQ9bnVsbCE9aSYmaStcInF1ZXVlSG9va3NcIixuPWNlLnRpbWVycyxyPV8uZ2V0KHRoaXMpO2lmKHQpclt0XSYmclt0XS5zdG9wJiZhKHJbdF0pO2Vsc2UgZm9yKHQgaW4gcilyW3RdJiZyW3RdLnN0b3AmJnB0LnRlc3QodCkmJmEoclt0XSk7Zm9yKHQ9bi5sZW5ndGg7dC0tOyluW3RdLmVsZW0hPT10aGlzfHxudWxsIT1pJiZuW3RdLnF1ZXVlIT09aXx8KG5bdF0uYW5pbS5zdG9wKG8pLGU9ITEsbi5zcGxpY2UodCwxKSk7IWUmJm98fGNlLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHxcImZ4XCIpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlLHQ9Xy5nZXQodGhpcyksbj10W2ErXCJxdWV1ZVwiXSxyPXRbYStcInF1ZXVlSG9va3NcIl0saT1jZS50aW1lcnMsbz1uP24ubGVuZ3RoOjA7Zm9yKHQuZmluaXNoPSEwLGNlLnF1ZXVlKHRoaXMsYSxbXSksciYmci5zdG9wJiZyLnN0b3AuY2FsbCh0aGlzLCEwKSxlPWkubGVuZ3RoO2UtLTspaVtlXS5lbGVtPT09dGhpcyYmaVtlXS5xdWV1ZT09PWEmJihpW2VdLmFuaW0uc3RvcCghMCksaS5zcGxpY2UoZSwxKSk7Zm9yKGU9MDtlPG87ZSsrKW5bZV0mJm5bZV0uZmluaXNoJiZuW2VdLmZpbmlzaC5jYWxsKHRoaXMpO2RlbGV0ZSB0LmZpbmlzaH0pfX0pLGNlLmVhY2goW1widG9nZ2xlXCIsXCJzaG93XCIsXCJoaWRlXCJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Y2UuZm5bcl07Y2UuZm5bcl09ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBudWxsPT1lfHxcImJvb2xlYW5cIj09dHlwZW9mIGU/aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKGd0KHIsITApLGUsdCxuKX19KSxjZS5lYWNoKHtzbGlkZURvd246Z3QoXCJzaG93XCIpLHNsaWRlVXA6Z3QoXCJoaWRlXCIpLHNsaWRlVG9nZ2xlOmd0KFwidG9nZ2xlXCIpLGZhZGVJbjp7b3BhY2l0eTpcInNob3dcIn0sZmFkZU91dDp7b3BhY2l0eTpcImhpZGVcIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eTpcInRvZ2dsZVwifX0sZnVuY3Rpb24oZSxyKXtjZS5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxjZS50aW1lcnM9W10sY2UuZngudGljaz1mdW5jdGlvbigpe3ZhciBlLHQ9MCxuPWNlLnRpbWVycztmb3Ioc3Q9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxjZS5meC5zdG9wKCksc3Q9dm9pZCAwfSxjZS5meC50aW1lcj1mdW5jdGlvbihlKXtjZS50aW1lcnMucHVzaChlKSxjZS5meC5zdGFydCgpfSxjZS5meC5pbnRlcnZhbD0xMyxjZS5meC5zdGFydD1mdW5jdGlvbigpe3V0fHwodXQ9ITAsZHQoKSl9LGNlLmZ4LnN0b3A9ZnVuY3Rpb24oKXt1dD1udWxsfSxjZS5meC5zcGVlZHM9e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sY2UuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1jZS5meCYmY2UuZnguc3BlZWRzW3JdfHxyLGU9ZXx8XCJmeFwiLHRoaXMucXVldWUoZSxmdW5jdGlvbihlLHQpe3ZhciBuPWllLnNldFRpbWVvdXQoZSxyKTt0LnN0b3A9ZnVuY3Rpb24oKXtpZS5jbGVhclRpbWVvdXQobil9fSl9LGx0PUMuY3JlYXRlRWxlbWVudChcImlucHV0XCIpLGN0PUMuY3JlYXRlRWxlbWVudChcInNlbGVjdFwiKS5hcHBlbmRDaGlsZChDLmNyZWF0ZUVsZW1lbnQoXCJvcHRpb25cIikpLGx0LnR5cGU9XCJjaGVja2JveFwiLGxlLmNoZWNrT249XCJcIiE9PWx0LnZhbHVlLGxlLm9wdFNlbGVjdGVkPWN0LnNlbGVjdGVkLChsdD1DLmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKSkudmFsdWU9XCJ0XCIsbHQudHlwZT1cInJhZGlvXCIsbGUucmFkaW9WYWx1ZT1cInRcIj09PWx0LnZhbHVlO3ZhciBtdCx4dD1jZS5leHByLmF0dHJIYW5kbGU7Y2UuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIE0odGhpcyxjZS5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjZS5yZW1vdmVBdHRyKHRoaXMsZSl9KX19KSxjZS5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz1lLm5vZGVUeXBlO2lmKDMhPT1vJiY4IT09byYmMiE9PW8pcmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIGUuZ2V0QXR0cmlidXRlP2NlLnByb3AoZSx0LG4pOigxPT09byYmY2UuaXNYTUxEb2MoZSl8fChpPWNlLmF0dHJIb29rc1t0LnRvTG93ZXJDYXNlKCldfHwoY2UuZXhwci5tYXRjaC5ib29sLnRlc3QodCk/bXQ6dm9pZCAwKSksdm9pZCAwIT09bj9udWxsPT09bj92b2lkIGNlLnJlbW92ZUF0dHIoZSx0KTppJiZcInNldFwiaW4gaSYmdm9pZCAwIT09KHI9aS5zZXQoZSxuLHQpKT9yOihlLnNldEF0dHJpYnV0ZSh0LG4rXCJcIiksbik6aSYmXCJnZXRcImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPWNlLmZpbmQuYXR0cihlLHQpKT92b2lkIDA6cil9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGUsdCl7aWYoIWxlLnJhZGlvVmFsdWUmJlwicmFkaW9cIj09PXQmJmZlKGUsXCJpbnB1dFwiKSl7dmFyIG49ZS52YWx1ZTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goRCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSksbXQ9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P2NlLnJlbW92ZUF0dHIoZSxuKTplLnNldEF0dHJpYnV0ZShuLG4pLG59fSxjZS5lYWNoKGNlLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1xcdysvZyksZnVuY3Rpb24oZSx0KXt2YXIgYT14dFt0XXx8Y2UuZmluZC5hdHRyO3h0W3RdPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89dC50b0xvd2VyQ2FzZSgpO3JldHVybiBufHwoaT14dFtvXSx4dFtvXT1yLHI9bnVsbCE9YShlLHQsbik/bzpudWxsLHh0W29dPWkpLHJ9fSk7dmFyIGJ0PS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksd3Q9L14oPzphfGFyZWEpJC9pO2Z1bmN0aW9uIFR0KGUpe3JldHVybihlLm1hdGNoKEQpfHxbXSkuam9pbihcIiBcIil9ZnVuY3Rpb24gQ3QoZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwifWZ1bmN0aW9uIGt0KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2U6XCJzdHJpbmdcIj09dHlwZW9mIGUmJmUubWF0Y2goRCl8fFtdfWNlLmZuLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihlLHQpe3JldHVybiBNKHRoaXMsY2UucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbY2UucHJvcEZpeFtlXXx8ZV19KX19KSxjZS5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz1lLm5vZGVUeXBlO2lmKDMhPT1vJiY4IT09byYmMiE9PW8pcmV0dXJuIDE9PT1vJiZjZS5pc1hNTERvYyhlKXx8KHQ9Y2UucHJvcEZpeFt0XXx8dCxpPWNlLnByb3BIb29rc1t0XSksdm9pZCAwIT09bj9pJiZcInNldFwiaW4gaSYmdm9pZCAwIT09KHI9aS5zZXQoZSxuLHQpKT9yOmVbdF09bjppJiZcImdldFwiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWNlLmZpbmQuYXR0cihlLFwidGFiaW5kZXhcIik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6YnQudGVzdChlLm5vZGVOYW1lKXx8d3QudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7XCJmb3JcIjpcImh0bWxGb3JcIixcImNsYXNzXCI6XCJjbGFzc05hbWVcIn19KSxsZS5vcHRTZWxlY3RlZHx8KGNlLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxudWxsfSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3QmJih0LnNlbGVjdGVkSW5kZXgsdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCl9fSksY2UuZWFjaChbXCJ0YWJJbmRleFwiLFwicmVhZE9ubHlcIixcIm1heExlbmd0aFwiLFwiY2VsbFNwYWNpbmdcIixcImNlbGxQYWRkaW5nXCIsXCJyb3dTcGFuXCIsXCJjb2xTcGFuXCIsXCJ1c2VNYXBcIixcImZyYW1lQm9yZGVyXCIsXCJjb250ZW50RWRpdGFibGVcIl0sZnVuY3Rpb24oKXtjZS5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pLGNlLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhO3JldHVybiB2KHQpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtjZSh0aGlzKS5hZGRDbGFzcyh0LmNhbGwodGhpcyxlLEN0KHRoaXMpKSl9KTooZT1rdCh0KSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKHI9Q3QodGhpcyksbj0xPT09dGhpcy5ub2RlVHlwZSYmXCIgXCIrVHQocikrXCIgXCIpe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspaT1lW29dLG4uaW5kZXhPZihcIiBcIitpK1wiIFwiKTwwJiYobis9aStcIiBcIik7YT1UdChuKSxyIT09YSYmdGhpcy5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLGEpfX0pOnRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG8sYTtyZXR1cm4gdih0KT90aGlzLmVhY2goZnVuY3Rpb24oZSl7Y2UodGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSxDdCh0aGlzKSkpfSk6YXJndW1lbnRzLmxlbmd0aD8oZT1rdCh0KSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKHI9Q3QodGhpcyksbj0xPT09dGhpcy5ub2RlVHlwZSYmXCIgXCIrVHQocikrXCIgXCIpe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspe2k9ZVtvXTt3aGlsZSgtMTxuLmluZGV4T2YoXCIgXCIraStcIiBcIikpbj1uLnJlcGxhY2UoXCIgXCIraStcIiBcIixcIiBcIil9YT1UdChuKSxyIT09YSYmdGhpcy5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLGEpfX0pOnRoaXM6dGhpcy5hdHRyKFwiY2xhc3NcIixcIlwiKX0sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCxuKXt2YXIgZSxyLGksbyxhPXR5cGVvZiB0LHM9XCJzdHJpbmdcIj09PWF8fEFycmF5LmlzQXJyYXkodCk7cmV0dXJuIHYodCk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2NlKHRoaXMpLnRvZ2dsZUNsYXNzKHQuY2FsbCh0aGlzLGUsQ3QodGhpcyksbiksbil9KTpcImJvb2xlYW5cIj09dHlwZW9mIG4mJnM/bj90aGlzLmFkZENsYXNzKHQpOnRoaXMucmVtb3ZlQ2xhc3ModCk6KGU9a3QodCksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYocylmb3Iobz1jZSh0aGlzKSxpPTA7aTxlLmxlbmd0aDtpKyspcj1lW2ldLG8uaGFzQ2xhc3Mocik/by5yZW1vdmVDbGFzcyhyKTpvLmFkZENsYXNzKHIpO2Vsc2Ugdm9pZCAwIT09dCYmXCJib29sZWFuXCIhPT1hfHwoKHI9Q3QodGhpcykpJiZfLnNldCh0aGlzLFwiX19jbGFzc05hbWVfX1wiLHIpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZShcImNsYXNzXCIscnx8ITE9PT10P1wiXCI6Xy5nZXQodGhpcyxcIl9fY2xhc3NOYW1lX19cIil8fFwiXCIpKX0pKX0saGFzQ2xhc3M6ZnVuY3Rpb24oZSl7dmFyIHQsbixyPTA7dD1cIiBcIitlK1wiIFwiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoXCIgXCIrVHQoQ3QobikpK1wiIFwiKS5pbmRleE9mKHQpKXJldHVybiEwO3JldHVybiExfX0pO3ZhciBTdD0vXFxyL2c7Y2UuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT12KG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxjZSh0aGlzKS52YWwoKSk6bik/dD1cIlwiOlwibnVtYmVyXCI9PXR5cGVvZiB0P3QrPVwiXCI6QXJyYXkuaXNBcnJheSh0KSYmKHQ9Y2UubWFwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/XCJcIjplK1wiXCJ9KSksKHI9Y2UudmFsSG9va3NbdGhpcy50eXBlXXx8Y2UudmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJlwic2V0XCJpbiByJiZ2b2lkIDAhPT1yLnNldCh0aGlzLHQsXCJ2YWx1ZVwiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Y2UudmFsSG9va3NbdC50eXBlXXx8Y2UudmFsSG9va3NbdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJlwiZ2V0XCJpbiByJiZ2b2lkIDAhPT0oZT1yLmdldCh0LFwidmFsdWVcIikpP2U6XCJzdHJpbmdcIj09dHlwZW9mKGU9dC52YWx1ZSk/ZS5yZXBsYWNlKFN0LFwiXCIpOm51bGw9PWU/XCJcIjplOnZvaWQgMH19KSxjZS5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbihlKXt2YXIgdD1jZS5maW5kLmF0dHIoZSxcInZhbHVlXCIpO3JldHVybiBudWxsIT10P3Q6VHQoY2UudGV4dChlKSl9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaT1lLm9wdGlvbnMsbz1lLnNlbGVjdGVkSW5kZXgsYT1cInNlbGVjdC1vbmVcIj09PWUudHlwZSxzPWE/bnVsbDpbXSx1PWE/bysxOmkubGVuZ3RoO2ZvcihyPW88MD91OmE/bzowO3I8dTtyKyspaWYoKChuPWlbcl0pLnNlbGVjdGVkfHxyPT09bykmJiFuLmRpc2FibGVkJiYoIW4ucGFyZW50Tm9kZS5kaXNhYmxlZHx8IWZlKG4ucGFyZW50Tm9kZSxcIm9wdGdyb3VwXCIpKSl7aWYodD1jZShuKS52YWwoKSxhKXJldHVybiB0O3MucHVzaCh0KX1yZXR1cm4gc30sc2V0OmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpPWUub3B0aW9ucyxvPWNlLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Y2UuaW5BcnJheShjZS52YWxIb29rcy5vcHRpb24uZ2V0KHIpLG8pKSYmKG49ITApO3JldHVybiBufHwoZS5zZWxlY3RlZEluZGV4PS0xKSxvfX19fSksY2UuZWFjaChbXCJyYWRpb1wiLFwiY2hlY2tib3hcIl0sZnVuY3Rpb24oKXtjZS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gZS5jaGVja2VkPS0xPGNlLmluQXJyYXkoY2UoZSkudmFsKCksdCl9fSxsZS5jaGVja09ufHwoY2UudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKT9cIm9uXCI6ZS52YWx1ZX0pfSk7dmFyIEV0PWllLmxvY2F0aW9uLGp0PXtndWlkOkRhdGUubm93KCl9LEF0PS9cXD8vO2NlLnBhcnNlWE1MPWZ1bmN0aW9uKGUpe3ZhciB0LG47aWYoIWV8fFwic3RyaW5nXCIhPXR5cGVvZiBlKXJldHVybiBudWxsO3RyeXt0PShuZXcgaWUuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoZSxcInRleHQveG1sXCIpfWNhdGNoKGUpe31yZXR1cm4gbj10JiZ0LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwicGFyc2VyZXJyb3JcIilbMF0sdCYmIW58fGNlLmVycm9yKFwiSW52YWxpZCBYTUw6IFwiKyhuP2NlLm1hcChuLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKFwiXFxuXCIpOmUpKSx0fTt2YXIgRHQ9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLE50PWZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCl9O2NlLmV4dGVuZChjZS5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fENdLGQ9dWUuY2FsbChlLFwidHlwZVwiKT9lLnR5cGU6ZSxoPXVlLmNhbGwoZSxcIm5hbWVzcGFjZVwiKT9lLm5hbWVzcGFjZS5zcGxpdChcIi5cIik6W107aWYobz1mPWE9bj1ufHxDLDMhPT1uLm5vZGVUeXBlJiY4IT09bi5ub2RlVHlwZSYmIUR0LnRlc3QoZCtjZS5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKFwiLlwiKSYmKGQ9KGg9ZC5zcGxpdChcIi5cIikpLnNoaWZ0KCksaC5zb3J0KCkpLHU9ZC5pbmRleE9mKFwiOlwiKTwwJiZcIm9uXCIrZCwoZT1lW2NlLmV4cGFuZG9dP2U6bmV3IGNlLkV2ZW50KGQsXCJvYmplY3RcIj09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKFwiLlwiKSxlLnJuYW1lc3BhY2U9ZS5uYW1lc3BhY2U/bmV3IFJlZ0V4cChcIihefFxcXFwuKVwiK2guam9pbihcIlxcXFwuKD86LipcXFxcLnwpXCIpK1wiKFxcXFwufCQpXCIpOm51bGwsZS5yZXN1bHQ9dm9pZCAwLGUudGFyZ2V0fHwoZS50YXJnZXQ9biksdD1udWxsPT10P1tlXTpjZS5tYWtlQXJyYXkodCxbZV0pLGM9Y2UuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXkobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLER0LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEMpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fGllKX1pPTA7d2hpbGUoKG89cFtpKytdKSYmIWUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlmPW8sZS50eXBlPTE8aT9zOmMuYmluZFR5cGV8fGQsKGw9KF8uZ2V0KG8sXCJldmVudHNcIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJl8uZ2V0KG8sXCJoYW5kbGVcIikpJiZsLmFwcGx5KG8sdCksKGw9dSYmb1t1XSkmJmwuYXBwbHkmJiQobykmJihlLnJlc3VsdD1sLmFwcGx5KG8sdCksITE9PT1lLnJlc3VsdCYmZS5wcmV2ZW50RGVmYXVsdCgpKTtyZXR1cm4gZS50eXBlPWQscnx8ZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8Yy5fZGVmYXVsdCYmITEhPT1jLl9kZWZhdWx0LmFwcGx5KHAucG9wKCksdCl8fCEkKG4pfHx1JiZ2KG5bZF0pJiYheShuKSYmKChhPW5bdV0pJiYoblt1XT1udWxsKSxjZS5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLE50KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCxOdCksY2UuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxhJiYoblt1XT1hKSksZS5yZXN1bHR9fSxzaW11bGF0ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9Y2UuZXh0ZW5kKG5ldyBjZS5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtjZS5ldmVudC50cmlnZ2VyKHIsbnVsbCx0KX19KSxjZS5mbi5leHRlbmQoe3RyaWdnZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Y2UuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIGNlLmV2ZW50LnRyaWdnZXIoZSx0LG4sITApfX0pO3ZhciBxdD0vXFxbXFxdJC8sTHQ9L1xccj9cXG4vZyxIdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksT3Q9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIFB0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpY2UuZWFjaChlLGZ1bmN0aW9uKGUsdCl7cnx8cXQudGVzdChuKT9pKG4sdCk6UHQobitcIltcIisoXCJvYmplY3RcIj09dHlwZW9mIHQmJm51bGwhPXQ/ZTpcIlwiKStcIl1cIix0LHIsaSl9KTtlbHNlIGlmKHJ8fFwib2JqZWN0XCIhPT14KGUpKWkobixlKTtlbHNlIGZvcih0IGluIGUpUHQobitcIltcIit0K1wiXVwiLGVbdF0scixpKX1jZS5wYXJhbT1mdW5jdGlvbihlLHQpe3ZhciBuLHI9W10saT1mdW5jdGlvbihlLHQpe3ZhciBuPXYodCk/dCgpOnQ7cltyLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGUpK1wiPVwiK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uP1wiXCI6bil9O2lmKG51bGw9PWUpcmV0dXJuXCJcIjtpZihBcnJheS5pc0FycmF5KGUpfHxlLmpxdWVyeSYmIWNlLmlzUGxhaW5PYmplY3QoZSkpY2UuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpUHQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbihcIiZcIil9LGNlLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGNlLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LHNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9Y2UucHJvcCh0aGlzLFwiZWxlbWVudHNcIik7cmV0dXJuIGU/Y2UubWFrZUFycmF5KGUpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgZT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIWNlKHRoaXMpLmlzKFwiOmRpc2FibGVkXCIpJiZPdC50ZXN0KHRoaXMubm9kZU5hbWUpJiYhSHQudGVzdChlKSYmKHRoaXMuY2hlY2tlZHx8IXdlLnRlc3QoZSkpfSkubWFwKGZ1bmN0aW9uKGUsdCl7dmFyIG49Y2UodGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP2NlLm1hcChuLGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOnQubmFtZSx2YWx1ZTplLnJlcGxhY2UoTHQsXCJcXHJcXG5cIil9fSk6e25hbWU6dC5uYW1lLHZhbHVlOm4ucmVwbGFjZShMdCxcIlxcclxcblwiKX19KS5nZXQoKX19KTt2YXIgTXQ9LyUyMC9nLFJ0PS8jLiokLyxJdD0vKFs/Jl0pXz1bXiZdKi8sV3Q9L14oLio/KTpbIFxcdF0qKFteXFxyXFxuXSopJC9nbSxGdD0vXig/OkdFVHxIRUFEKSQvLCR0PS9eXFwvXFwvLyxCdD17fSxfdD17fSx6dD1cIiovXCIuY29uY2F0KFwiKlwiKSxYdD1DLmNyZWF0ZUVsZW1lbnQoXCJhXCIpO2Z1bmN0aW9uIFV0KG8pe3JldHVybiBmdW5jdGlvbihlLHQpe1wic3RyaW5nXCIhPXR5cGVvZiBlJiYodD1lLGU9XCIqXCIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChEKXx8W107aWYodih0KSl3aGlsZShuPWlbcisrXSlcIitcIj09PW5bMF0/KG49bi5zbGljZSgxKXx8XCIqXCIsKG9bbl09b1tuXXx8W10pLnVuc2hpZnQodCkpOihvW25dPW9bbl18fFtdKS5wdXNoKHQpfX1mdW5jdGlvbiBWdCh0LGksbyxhKXt2YXIgcz17fSx1PXQ9PT1fdDtmdW5jdGlvbiBsKGUpe3ZhciByO3JldHVybiBzW2VdPSEwLGNlLmVhY2godFtlXXx8W10sZnVuY3Rpb24oZSx0KXt2YXIgbj10KGksbyxhKTtyZXR1cm5cInN0cmluZ1wiIT10eXBlb2Ygbnx8dXx8c1tuXT91PyEocj1uKTp2b2lkIDA6KGkuZGF0YVR5cGVzLnVuc2hpZnQobiksbChuKSwhMSl9KSxyfXJldHVybiBsKGkuZGF0YVR5cGVzWzBdKXx8IXNbXCIqXCJdJiZsKFwiKlwiKX1mdW5jdGlvbiBHdChlLHQpe3ZhciBuLHIsaT1jZS5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmY2UuZXh0ZW5kKCEwLGUsciksZX1YdC5ocmVmPUV0LmhyZWYsY2UuZXh0ZW5kKHthY3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxhamF4U2V0dGluZ3M6e3VybDpFdC5ocmVmLHR5cGU6XCJHRVRcIixpc0xvY2FsOi9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLnRlc3QoRXQucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZTpcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOFwiLGFjY2VwdHM6e1wiKlwiOnp0LHRleHQ6XCJ0ZXh0L3BsYWluXCIsaHRtbDpcInRleHQvaHRtbFwiLHhtbDpcImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWxcIixqc29uOlwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0XCJ9LGNvbnRlbnRzOnt4bWw6L1xcYnhtbFxcYi8saHRtbDovXFxiaHRtbC8sanNvbjovXFxianNvblxcYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6XCJyZXNwb25zZVhNTFwiLHRleHQ6XCJyZXNwb25zZVRleHRcIixqc29uOlwicmVzcG9uc2VKU09OXCJ9LGNvbnZlcnRlcnM6e1wiKiB0ZXh0XCI6U3RyaW5nLFwidGV4dCBodG1sXCI6ITAsXCJ0ZXh0IGpzb25cIjpKU09OLnBhcnNlLFwidGV4dCB4bWxcIjpjZS5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/R3QoR3QoZSxjZS5hamF4U2V0dGluZ3MpLHQpOkd0KGNlLmFqYXhTZXR0aW5ncyxlKX0sYWpheFByZWZpbHRlcjpVdChCdCksYWpheFRyYW5zcG9ydDpVdChfdCksYWpheDpmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBlJiYodD1lLGU9dm9pZCAwKSx0PXR8fHt9O3ZhciBjLGYscCxuLGQscixoLGcsaSxvLHY9Y2UuYWpheFNldHVwKHt9LHQpLHk9di5jb250ZXh0fHx2LG09di5jb250ZXh0JiYoeS5ub2RlVHlwZXx8eS5qcXVlcnkpP2NlKHkpOmNlLmV2ZW50LHg9Y2UuRGVmZXJyZWQoKSxiPWNlLkNhbGxiYWNrcyhcIm9uY2UgbWVtb3J5XCIpLHc9di5zdGF0dXNDb2RlfHx7fSxhPXt9LHM9e30sdT1cImNhbmNlbGVkXCIsVD17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGUpe3ZhciB0O2lmKGgpe2lmKCFuKXtuPXt9O3doaWxlKHQ9V3QuZXhlYyhwKSluW3RbMV0udG9Mb3dlckNhc2UoKStcIiBcIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpK1wiIFwiXXx8W10pLmNvbmNhdCh0WzJdKX10PW5bZS50b0xvd2VyQ2FzZSgpK1wiIFwiXX1yZXR1cm4gbnVsbD09dD9udWxsOnQuam9pbihcIiwgXCIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxFdC5ocmVmKStcIlwiKS5yZXBsYWNlKCR0LEV0LnByb3RvY29sK1wiLy9cIiksdi50eXBlPXQubWV0aG9kfHx0LnR5cGV8fHYubWV0aG9kfHx2LnR5cGUsdi5kYXRhVHlwZXM9KHYuZGF0YVR5cGV8fFwiKlwiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEQpfHxbXCJcIl0sbnVsbD09di5jcm9zc0RvbWFpbil7cj1DLmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3RyeXtyLmhyZWY9di51cmwsci5ocmVmPXIuaHJlZix2LmNyb3NzRG9tYWluPVh0LnByb3RvY29sK1wiLy9cIitYdC5ob3N0IT1yLnByb3RvY29sK1wiLy9cIityLmhvc3R9Y2F0Y2goZSl7di5jcm9zc0RvbWFpbj0hMH19aWYodi5kYXRhJiZ2LnByb2Nlc3NEYXRhJiZcInN0cmluZ1wiIT10eXBlb2Ygdi5kYXRhJiYodi5kYXRhPWNlLnBhcmFtKHYuZGF0YSx2LnRyYWRpdGlvbmFsKSksVnQoQnQsdix0LFQpLGgpcmV0dXJuIFQ7Zm9yKGkgaW4oZz1jZS5ldmVudCYmdi5nbG9iYWwpJiYwPT1jZS5hY3RpdmUrKyYmY2UuZXZlbnQudHJpZ2dlcihcImFqYXhTdGFydFwiKSx2LnR5cGU9di50eXBlLnRvVXBwZXJDYXNlKCksdi5oYXNDb250ZW50PSFGdC50ZXN0KHYudHlwZSksZj12LnVybC5yZXBsYWNlKFJ0LFwiXCIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8XCJcIikuaW5kZXhPZihcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKSYmKHYuZGF0YT12LmRhdGEucmVwbGFjZShNdCxcIitcIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHxcInN0cmluZ1wiPT10eXBlb2Ygdi5kYXRhKSYmKGYrPShBdC50ZXN0KGYpP1wiJlwiOlwiP1wiKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoSXQsXCIkMVwiKSxvPShBdC50ZXN0KGYpP1wiJlwiOlwiP1wiKStcIl89XCIranQuZ3VpZCsrK28pLHYudXJsPWYrbyksdi5pZk1vZGlmaWVkJiYoY2UubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoXCJJZi1Nb2RpZmllZC1TaW5jZVwiLGNlLmxhc3RNb2RpZmllZFtmXSksY2UuZXRhZ1tmXSYmVC5zZXRSZXF1ZXN0SGVhZGVyKFwiSWYtTm9uZS1NYXRjaFwiLGNlLmV0YWdbZl0pKSwodi5kYXRhJiZ2Lmhhc0NvbnRlbnQmJiExIT09di5jb250ZW50VHlwZXx8dC5jb250ZW50VHlwZSkmJlQuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcihcIkFjY2VwdFwiLHYuZGF0YVR5cGVzWzBdJiZ2LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dP3YuYWNjZXB0c1t2LmRhdGFUeXBlc1swXV0rKFwiKlwiIT09di5kYXRhVHlwZXNbMF0/XCIsIFwiK3p0K1wiOyBxPTAuMDFcIjpcIlwiKTp2LmFjY2VwdHNbXCIqXCJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PVwiYWJvcnRcIixiLmFkZCh2LmNvbXBsZXRlKSxULmRvbmUodi5zdWNjZXNzKSxULmZhaWwodi5lcnJvciksYz1WdChfdCx2LHQsVCkpe2lmKFQucmVhZHlTdGF0ZT0xLGcmJm0udHJpZ2dlcihcImFqYXhTZW5kXCIsW1Qsdl0pLGgpcmV0dXJuIFQ7di5hc3luYyYmMDx2LnRpbWVvdXQmJihkPWllLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtULmFib3J0KFwidGltZW91dFwiKX0sdi50aW1lb3V0KSk7dHJ5e2g9ITEsYy5zZW5kKGEsbCl9Y2F0Y2goZSl7aWYoaCl0aHJvdyBlO2woLTEsZSl9fWVsc2UgbCgtMSxcIk5vIFRyYW5zcG9ydFwiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJmllLmNsZWFyVGltZW91dChkKSxjPXZvaWQgMCxwPXJ8fFwiXCIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZShcIipcIj09PXVbMF0pdS5zaGlmdCgpLHZvaWQgMD09PXImJihyPWUubWltZVR5cGV8fHQuZ2V0UmVzcG9uc2VIZWFkZXIoXCJDb250ZW50LVR5cGVcIikpO2lmKHIpZm9yKGkgaW4gcylpZihzW2ldJiZzW2ldLnRlc3Qocikpe3UudW5zaGlmdChpKTticmVha31pZih1WzBdaW4gbilvPXVbMF07ZWxzZXtmb3IoaSBpbiBuKXtpZighdVswXXx8ZS5jb252ZXJ0ZXJzW2krXCIgXCIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxjZS5pbkFycmF5KFwic2NyaXB0XCIsdi5kYXRhVHlwZXMpJiZjZS5pbkFycmF5KFwianNvblwiLHYuZGF0YVR5cGVzKTwwJiYodi5jb252ZXJ0ZXJzW1widGV4dCBzY3JpcHRcIl09ZnVuY3Rpb24oKXt9KSxzPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD17fSxjPWUuZGF0YVR5cGVzLnNsaWNlKCk7aWYoY1sxXSlmb3IoYSBpbiBlLmNvbnZlcnRlcnMpbFthLnRvTG93ZXJDYXNlKCldPWUuY29udmVydGVyc1thXTtvPWMuc2hpZnQoKTt3aGlsZShvKWlmKGUucmVzcG9uc2VGaWVsZHNbb10mJihuW2UucmVzcG9uc2VGaWVsZHNbb11dPXQpLCF1JiZyJiZlLmRhdGFGaWx0ZXImJih0PWUuZGF0YUZpbHRlcih0LGUuZGF0YVR5cGUpKSx1PW8sbz1jLnNoaWZ0KCkpaWYoXCIqXCI9PT1vKW89dTtlbHNlIGlmKFwiKlwiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrXCIgXCIrb118fGxbXCIqIFwiK29dKSlmb3IoaSBpbiBsKWlmKChzPWkuc3BsaXQoXCIgXCIpKVsxXT09PW8mJihhPWxbdStcIiBcIitzWzBdXXx8bFtcIiogXCIrc1swXV0pKXshMD09PWE/YT1sW2ldOiEwIT09bFtpXSYmKG89c1swXSxjLnVuc2hpZnQoc1sxXSkpO2JyZWFrfWlmKCEwIT09YSlpZihhJiZlW1widGhyb3dzXCJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOlwicGFyc2VyZXJyb3JcIixlcnJvcjphP2U6XCJObyBjb252ZXJzaW9uIGZyb20gXCIrdStcIiB0byBcIitvfX19cmV0dXJue3N0YXRlOlwic3VjY2Vzc1wiLGRhdGE6dH19KHYscyxULGkpLGk/KHYuaWZNb2RpZmllZCYmKCh1PVQuZ2V0UmVzcG9uc2VIZWFkZXIoXCJMYXN0LU1vZGlmaWVkXCIpKSYmKGNlLmxhc3RNb2RpZmllZFtmXT11KSwodT1ULmdldFJlc3BvbnNlSGVhZGVyKFwiZXRhZ1wiKSkmJihjZS5ldGFnW2ZdPXUpKSwyMDQ9PT1lfHxcIkhFQURcIj09PXYudHlwZT9sPVwibm9jb250ZW50XCI6MzA0PT09ZT9sPVwibm90bW9kaWZpZWRcIjoobD1zLnN0YXRlLG89cy5kYXRhLGk9IShhPXMuZXJyb3IpKSk6KGE9bCwhZSYmbHx8KGw9XCJlcnJvclwiLGU8MCYmKGU9MCkpKSxULnN0YXR1cz1lLFQuc3RhdHVzVGV4dD0odHx8bCkrXCJcIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/XCJhamF4U3VjY2Vzc1wiOlwiYWpheEVycm9yXCIsW1QsdixpP286YV0pLGIuZmlyZVdpdGgoeSxbVCxsXSksZyYmKG0udHJpZ2dlcihcImFqYXhDb21wbGV0ZVwiLFtULHZdKSwtLWNlLmFjdGl2ZXx8Y2UuZXZlbnQudHJpZ2dlcihcImFqYXhTdG9wXCIpKSl9cmV0dXJuIFR9LGdldEpTT046ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBjZS5nZXQoZSx0LG4sXCJqc29uXCIpfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gY2UuZ2V0KGUsdm9pZCAwLHQsXCJzY3JpcHRcIil9fSksY2UuZWFjaChbXCJnZXRcIixcInBvc3RcIl0sZnVuY3Rpb24oZSxpKXtjZVtpXT1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdih0KSYmKHI9cnx8bixuPXQsdD12b2lkIDApLGNlLmFqYXgoY2UuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxjZS5pc1BsYWluT2JqZWN0KGUpJiZlKSl9fSksY2UuYWpheFByZWZpbHRlcihmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlLmhlYWRlcnMpXCJjb250ZW50LXR5cGVcIj09PXQudG9Mb3dlckNhc2UoKSYmKGUuY29udGVudFR5cGU9ZS5oZWFkZXJzW3RdfHxcIlwiKX0pLGNlLl9ldmFsVXJsPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gY2UuYWpheCh7dXJsOmUsdHlwZTpcIkdFVFwiLGRhdGFUeXBlOlwic2NyaXB0XCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6e1widGV4dCBzY3JpcHRcIjpmdW5jdGlvbigpe319LGRhdGFGaWx0ZXI6ZnVuY3Rpb24oZSl7Y2UuZ2xvYmFsRXZhbChlLHQsbil9fSl9LGNlLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpc1swXSYmKHYoZSkmJihlPWUuY2FsbCh0aGlzWzBdKSksdD1jZShlLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApLHRoaXNbMF0ucGFyZW50Tm9kZSYmdC5pbnNlcnRCZWZvcmUodGhpc1swXSksdC5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3doaWxlKGUuZmlyc3RFbGVtZW50Q2hpbGQpZT1lLmZpcnN0RWxlbWVudENoaWxkO3JldHVybiBlfSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24obil7cmV0dXJuIHYobik/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2NlKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1jZSh0aGlzKSx0PWUuY29udGVudHMoKTt0Lmxlbmd0aD90LndyYXBBbGwobik6ZS5hcHBlbmQobil9KX0sd3JhcDpmdW5jdGlvbih0KXt2YXIgbj12KHQpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7Y2UodGhpcykud3JhcEFsbChuP3QuY2FsbCh0aGlzLGUpOnQpfSl9LHVud3JhcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wYXJlbnQoZSkubm90KFwiYm9keVwiKS5lYWNoKGZ1bmN0aW9uKCl7Y2UodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLHRoaXN9fSksY2UuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hY2UuZXhwci5wc2V1ZG9zLnZpc2libGUoZSl9LGNlLmV4cHIucHNldWRvcy52aXNpYmxlPWZ1bmN0aW9uKGUpe3JldHVybiEhKGUub2Zmc2V0V2lkdGh8fGUub2Zmc2V0SGVpZ2h0fHxlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX0sY2UuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IGllLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGUpe319O3ZhciBZdD17MDoyMDAsMTIyMzoyMDR9LFF0PWNlLmFqYXhTZXR0aW5ncy54aHIoKTtsZS5jb3JzPSEhUXQmJlwid2l0aENyZWRlbnRpYWxzXCJpbiBRdCxsZS5hamF4PVF0PSEhUXQsY2UuYWpheFRyYW5zcG9ydChmdW5jdGlvbihpKXt2YXIgbyxhO2lmKGxlLmNvcnN8fFF0JiYhaS5jcm9zc0RvbWFpbilyZXR1cm57c2VuZDpmdW5jdGlvbihlLHQpe3ZhciBuLHI9aS54aHIoKTtpZihyLm9wZW4oaS50eXBlLGkudXJsLGkuYXN5bmMsaS51c2VybmFtZSxpLnBhc3N3b3JkKSxpLnhockZpZWxkcylmb3IobiBpbiBpLnhockZpZWxkcylyW25dPWkueGhyRmllbGRzW25dO2ZvcihuIGluIGkubWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZSYmci5vdmVycmlkZU1pbWVUeXBlKGkubWltZVR5cGUpLGkuY3Jvc3NEb21haW58fGVbXCJYLVJlcXVlc3RlZC1XaXRoXCJdfHwoZVtcIlgtUmVxdWVzdGVkLVdpdGhcIl09XCJYTUxIdHRwUmVxdWVzdFwiKSxlKXIuc2V0UmVxdWVzdEhlYWRlcihuLGVbbl0pO289ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7byYmKG89YT1yLm9ubG9hZD1yLm9uZXJyb3I9ci5vbmFib3J0PXIub250aW1lb3V0PXIub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsXCJhYm9ydFwiPT09ZT9yLmFib3J0KCk6XCJlcnJvclwiPT09ZT9cIm51bWJlclwiIT10eXBlb2Ygci5zdGF0dXM/dCgwLFwiZXJyb3JcIik6dChyLnN0YXR1cyxyLnN0YXR1c1RleHQpOnQoWXRbci5zdGF0dXNdfHxyLnN0YXR1cyxyLnN0YXR1c1RleHQsXCJ0ZXh0XCIhPT0oci5yZXNwb25zZVR5cGV8fFwidGV4dFwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIHIucmVzcG9uc2VUZXh0P3tiaW5hcnk6ci5yZXNwb25zZX06e3RleHQ6ci5yZXNwb25zZVRleHR9LHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19LHIub25sb2FkPW8oKSxhPXIub25lcnJvcj1yLm9udGltZW91dD1vKFwiZXJyb3JcIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmaWUuc2V0VGltZW91dChmdW5jdGlvbigpe28mJmEoKX0pfSxvPW8oXCJhYm9ydFwiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksY2UuYWpheFByZWZpbHRlcihmdW5jdGlvbihlKXtlLmNyb3NzRG9tYWluJiYoZS5jb250ZW50cy5zY3JpcHQ9ITEpfSksY2UuYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6XCJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdFwifSxjb250ZW50czp7c2NyaXB0Oi9cXGIoPzpqYXZhfGVjbWEpc2NyaXB0XFxiL30sY29udmVydGVyczp7XCJ0ZXh0IHNjcmlwdFwiOmZ1bmN0aW9uKGUpe3JldHVybiBjZS5nbG9iYWxFdmFsKGUpLGV9fX0pLGNlLmFqYXhQcmVmaWx0ZXIoXCJzY3JpcHRcIixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT1cIkdFVFwiKX0pLGNlLmFqYXhUcmFuc3BvcnQoXCJzY3JpcHRcIixmdW5jdGlvbihuKXt2YXIgcixpO2lmKG4uY3Jvc3NEb21haW58fG4uc2NyaXB0QXR0cnMpcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXtyPWNlKFwiPHNjcmlwdD5cIikuYXR0cihuLnNjcmlwdEF0dHJzfHx7fSkucHJvcCh7Y2hhcnNldDpuLnNjcmlwdENoYXJzZXQsc3JjOm4udXJsfSkub24oXCJsb2FkIGVycm9yXCIsaT1mdW5jdGlvbihlKXtyLnJlbW92ZSgpLGk9bnVsbCxlJiZ0KFwiZXJyb3JcIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxDLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgSnQsS3Q9W10sWnQ9Lyg9KVxcPyg/PSZ8JCl8XFw/XFw/LztjZS5hamF4U2V0dXAoe2pzb25wOlwiY2FsbGJhY2tcIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9S3QucG9wKCl8fGNlLmV4cGFuZG8rXCJfXCIranQuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksY2UuYWpheFByZWZpbHRlcihcImpzb24ganNvbnBcIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoWnQudGVzdChlLnVybCk/XCJ1cmxcIjpcInN0cmluZ1wiPT10eXBlb2YgZS5kYXRhJiYwPT09KGUuY29udGVudFR5cGV8fFwiXCIpLmluZGV4T2YoXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIikmJlp0LnRlc3QoZS5kYXRhKSYmXCJkYXRhXCIpO2lmKGF8fFwianNvbnBcIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz12KGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoWnQsXCIkMVwiK3IpOiExIT09ZS5qc29ucCYmKGUudXJsKz0oQXQudGVzdChlLnVybCk/XCImXCI6XCI/XCIpK2UuanNvbnArXCI9XCIrciksZS5jb252ZXJ0ZXJzW1wic2NyaXB0IGpzb25cIl09ZnVuY3Rpb24oKXtyZXR1cm4gb3x8Y2UuZXJyb3IocitcIiB3YXMgbm90IGNhbGxlZFwiKSxvWzBdfSxlLmRhdGFUeXBlc1swXT1cImpzb25cIixpPWllW3JdLGllW3JdPWZ1bmN0aW9uKCl7bz1hcmd1bWVudHN9LG4uYWx3YXlzKGZ1bmN0aW9uKCl7dm9pZCAwPT09aT9jZShpZSkucmVtb3ZlUHJvcChyKTppZVtyXT1pLGVbcl0mJihlLmpzb25wQ2FsbGJhY2s9dC5qc29ucENhbGxiYWNrLEt0LnB1c2gocikpLG8mJnYoaSkmJmkob1swXSksbz1pPXZvaWQgMH0pLFwic2NyaXB0XCJ9KSxsZS5jcmVhdGVIVE1MRG9jdW1lbnQ9KChKdD1DLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudChcIlwiKS5ib2R5KS5pbm5lckhUTUw9XCI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPlwiLDI9PT1KdC5jaGlsZE5vZGVzLmxlbmd0aCksY2UucGFyc2VIVE1MPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm5cInN0cmluZ1wiIT10eXBlb2YgZT9bXTooXCJib29sZWFuXCI9PXR5cGVvZiB0JiYobj10LHQ9ITEpLHR8fChsZS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUMuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KFwiXCIpKS5jcmVhdGVFbGVtZW50KFwiYmFzZVwiKSkuaHJlZj1DLmxvY2F0aW9uLmhyZWYsdC5oZWFkLmFwcGVuZENoaWxkKHIpKTp0PUMpLG89IW4mJltdLChpPXcuZXhlYyhlKSk/W3QuY3JlYXRlRWxlbWVudChpWzFdKV06KGk9QWUoW2VdLHQsbyksbyYmby5sZW5ndGgmJmNlKG8pLnJlbW92ZSgpLGNlLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LGNlLmZuLmxvYWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbyxhPXRoaXMscz1lLmluZGV4T2YoXCIgXCIpO3JldHVybi0xPHMmJihyPVR0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSx2KHQpPyhuPXQsdD12b2lkIDApOnQmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiYoaT1cIlBPU1RcIiksMDxhLmxlbmd0aCYmY2UuYWpheCh7dXJsOmUsdHlwZTppfHxcIkdFVFwiLGRhdGFUeXBlOlwiaHRtbFwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/Y2UoXCI8ZGl2PlwiKS5hcHBlbmQoY2UucGFyc2VIVE1MKGUpKS5maW5kKHIpOmUpfSkuYWx3YXlzKG4mJmZ1bmN0aW9uKGUsdCl7YS5lYWNoKGZ1bmN0aW9uKCl7bi5hcHBseSh0aGlzLG98fFtlLnJlc3BvbnNlVGV4dCx0LGVdKX0pfSksdGhpc30sY2UuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPWZ1bmN0aW9uKHQpe3JldHVybiBjZS5ncmVwKGNlLnRpbWVycyxmdW5jdGlvbihlKXtyZXR1cm4gdD09PWUuZWxlbX0pLmxlbmd0aH0sY2Uub2Zmc2V0PXtzZXRPZmZzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbyxhLHMsdSxsPWNlLmNzcyhlLFwicG9zaXRpb25cIiksYz1jZShlKSxmPXt9O1wic3RhdGljXCI9PT1sJiYoZS5zdHlsZS5wb3NpdGlvbj1cInJlbGF0aXZlXCIpLHM9Yy5vZmZzZXQoKSxvPWNlLmNzcyhlLFwidG9wXCIpLHU9Y2UuY3NzKGUsXCJsZWZ0XCIpLChcImFic29sdXRlXCI9PT1sfHxcImZpeGVkXCI9PT1sKSYmLTE8KG8rdSkuaW5kZXhPZihcImF1dG9cIik/KGE9KHI9Yy5wb3NpdGlvbigpKS50b3AsaT1yLmxlZnQpOihhPXBhcnNlRmxvYXQobyl8fDAsaT1wYXJzZUZsb2F0KHUpfHwwKSx2KHQpJiYodD10LmNhbGwoZSxuLGNlLmV4dGVuZCh7fSxzKSkpLG51bGwhPXQudG9wJiYoZi50b3A9dC50b3Atcy50b3ArYSksbnVsbCE9dC5sZWZ0JiYoZi5sZWZ0PXQubGVmdC1zLmxlZnQraSksXCJ1c2luZ1wiaW4gdD90LnVzaW5nLmNhbGwoZSxmKTpjLmNzcyhmKX19LGNlLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKHQpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXQ/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oZSl7Y2Uub2Zmc2V0LnNldE9mZnNldCh0aGlzLHQsZSl9KTt2YXIgZSxuLHI9dGhpc1swXTtyZXR1cm4gcj9yLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhlPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDplLnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6ZS5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGUsdCxuLHI9dGhpc1swXSxpPXt0b3A6MCxsZWZ0OjB9O2lmKFwiZml4ZWRcIj09PWNlLmNzcyhyLFwicG9zaXRpb25cIikpdD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7dD10aGlzLm9mZnNldCgpLG49ci5vd25lckRvY3VtZW50LGU9ci5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3doaWxlKGUmJihlPT09bi5ib2R5fHxlPT09bi5kb2N1bWVudEVsZW1lbnQpJiZcInN0YXRpY1wiPT09Y2UuY3NzKGUsXCJwb3NpdGlvblwiKSllPWUucGFyZW50Tm9kZTtlJiZlIT09ciYmMT09PWUubm9kZVR5cGUmJigoaT1jZShlKS5vZmZzZXQoKSkudG9wKz1jZS5jc3MoZSxcImJvcmRlclRvcFdpZHRoXCIsITApLGkubGVmdCs9Y2UuY3NzKGUsXCJib3JkZXJMZWZ0V2lkdGhcIiwhMCkpfXJldHVybnt0b3A6dC50b3AtaS50b3AtY2UuY3NzKHIsXCJtYXJnaW5Ub3BcIiwhMCksbGVmdDp0LmxlZnQtaS5sZWZ0LWNlLmNzcyhyLFwibWFyZ2luTGVmdFwiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShlJiZcInN0YXRpY1wiPT09Y2UuY3NzKGUsXCJwb3NpdGlvblwiKSllPWUub2Zmc2V0UGFyZW50O3JldHVybiBlfHxKfSl9fSksY2UuZWFjaCh7c2Nyb2xsTGVmdDpcInBhZ2VYT2Zmc2V0XCIsc2Nyb2xsVG9wOlwicGFnZVlPZmZzZXRcIn0sZnVuY3Rpb24odCxpKXt2YXIgbz1cInBhZ2VZT2Zmc2V0XCI9PT1pO2NlLmZuW3RdPWZ1bmN0aW9uKGUpe3JldHVybiBNKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKHkoZSk/cj1lOjk9PT1lLm5vZGVUeXBlJiYocj1lLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1uKXJldHVybiByP3JbaV06ZVt0XTtyP3Iuc2Nyb2xsVG8obz9yLnBhZ2VYT2Zmc2V0Om4sbz9uOnIucGFnZVlPZmZzZXQpOmVbdF09bn0sdCxlLGFyZ3VtZW50cy5sZW5ndGgpfX0pLGNlLmVhY2goW1widG9wXCIsXCJsZWZ0XCJdLGZ1bmN0aW9uKGUsbil7Y2UuY3NzSG9va3Nbbl09WWUobGUucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIHQ9R2UoZSxuKSxfZS50ZXN0KHQpP2NlKGUpLnBvc2l0aW9uKClbbl0rXCJweFwiOnR9KX0pLGNlLmVhY2goe0hlaWdodDpcImhlaWdodFwiLFdpZHRoOlwid2lkdGhcIn0sZnVuY3Rpb24oYSxzKXtjZS5lYWNoKHtwYWRkaW5nOlwiaW5uZXJcIithLGNvbnRlbnQ6cyxcIlwiOlwib3V0ZXJcIithfSxmdW5jdGlvbihyLG8pe2NlLmZuW29dPWZ1bmN0aW9uKGUsdCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCYmKHJ8fFwiYm9vbGVhblwiIT10eXBlb2YgZSksaT1yfHwoITA9PT1lfHwhMD09PXQ/XCJtYXJnaW5cIjpcImJvcmRlclwiKTtyZXR1cm4gTSh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtyZXR1cm4geShlKT8wPT09by5pbmRleE9mKFwib3V0ZXJcIik/ZVtcImlubmVyXCIrYV06ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbXCJjbGllbnRcIithXTo5PT09ZS5ub2RlVHlwZT8ocj1lLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChlLmJvZHlbXCJzY3JvbGxcIithXSxyW1wic2Nyb2xsXCIrYV0sZS5ib2R5W1wib2Zmc2V0XCIrYV0scltcIm9mZnNldFwiK2FdLHJbXCJjbGllbnRcIithXSkpOnZvaWQgMD09PW4/Y2UuY3NzKGUsdCxpKTpjZS5zdHlsZShlLHQsbixpKX0scyxuP2U6dm9pZCAwLG4pfX0pfSksY2UuZWFjaChbXCJhamF4U3RhcnRcIixcImFqYXhTdG9wXCIsXCJhamF4Q29tcGxldGVcIixcImFqYXhFcnJvclwiLFwiYWpheFN1Y2Nlc3NcIixcImFqYXhTZW5kXCJdLGZ1bmN0aW9uKGUsdCl7Y2UuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSxjZS5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLm9uKGUsbnVsbCx0LG4pfSx1bmJpbmQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5vZmYoZSxudWxsLHQpfSxkZWxlZ2F0ZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5vbih0LGUsbixyKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGUsXCIqKlwiKTp0aGlzLm9mZih0LGV8fFwiKipcIixuKX0saG92ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5vbihcIm1vdXNlZW50ZXJcIixlKS5vbihcIm1vdXNlbGVhdmVcIix0fHxlKX19KSxjZS5lYWNoKFwiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudVwiLnNwbGl0KFwiIFwiKSxmdW5jdGlvbihlLG4pe2NlLmZuW25dPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD90aGlzLm9uKG4sbnVsbCxlLHQpOnRoaXMudHJpZ2dlcihuKX19KTt2YXIgZW49L15bXFxzXFx1RkVGRlxceEEwXSt8KFteXFxzXFx1RkVGRlxceEEwXSlbXFxzXFx1RkVGRlxceEEwXSskL2c7Y2UucHJveHk9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJihuPWVbdF0sdD1lLGU9biksdihlKSlyZXR1cm4gcj1hZS5jYWxsKGFyZ3VtZW50cywyKSwoaT1mdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHR8fHRoaXMsci5jb25jYXQoYWUuY2FsbChhcmd1bWVudHMpKSl9KS5ndWlkPWUuZ3VpZD1lLmd1aWR8fGNlLmd1aWQrKyxpfSxjZS5ob2xkUmVhZHk9ZnVuY3Rpb24oZSl7ZT9jZS5yZWFkeVdhaXQrKzpjZS5yZWFkeSghMCl9LGNlLmlzQXJyYXk9QXJyYXkuaXNBcnJheSxjZS5wYXJzZUpTT049SlNPTi5wYXJzZSxjZS5ub2RlTmFtZT1mZSxjZS5pc0Z1bmN0aW9uPXYsY2UuaXNXaW5kb3c9eSxjZS5jYW1lbENhc2U9RixjZS50eXBlPXgsY2Uubm93PURhdGUubm93LGNlLmlzTnVtZXJpYz1mdW5jdGlvbihlKXt2YXIgdD1jZS50eXBlKGUpO3JldHVybihcIm51bWJlclwiPT09dHx8XCJzdHJpbmdcIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sY2UudHJpbT1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT9cIlwiOihlK1wiXCIpLnJlcGxhY2UoZW4sXCIkMVwiKX0sXCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoXCJqcXVlcnlcIixbXSxmdW5jdGlvbigpe3JldHVybiBjZX0pO3ZhciB0bj1pZS5qUXVlcnksbm49aWUuJDtyZXR1cm4gY2Uubm9Db25mbGljdD1mdW5jdGlvbihlKXtyZXR1cm4gaWUuJD09PWNlJiYoaWUuJD1ubiksZSYmaWUualF1ZXJ5PT09Y2UmJihpZS5qUXVlcnk9dG4pLGNlfSxcInVuZGVmaW5lZFwiPT10eXBlb2YgZSYmKGllLmpRdWVyeT1pZS4kPWNlKSxjZX0pO1xuIWZ1bmN0aW9uKHQpe1widXNlIHN0cmljdFwiO1wiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wianF1ZXJ5XCJdLHQpOnQoalF1ZXJ5KX0oZnVuY3Rpb24oVil7XCJ1c2Ugc3RyaWN0XCI7Vi51aT1WLnVpfHx7fTtWLnVpLnZlcnNpb249XCIxLjEzLjJcIjt2YXIgbixpPTAsYT1BcnJheS5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscj1BcnJheS5wcm90b3R5cGUuc2xpY2U7Vi5jbGVhbkRhdGE9KG49Vi5jbGVhbkRhdGEsZnVuY3Rpb24odCl7Zm9yKHZhciBlLGkscz0wO251bGwhPShpPXRbc10pO3MrKykoZT1WLl9kYXRhKGksXCJldmVudHNcIikpJiZlLnJlbW92ZSYmVihpKS50cmlnZ2VySGFuZGxlcihcInJlbW92ZVwiKTtuKHQpfSksVi53aWRnZXQ9ZnVuY3Rpb24odCxpLGUpe3ZhciBzLG4sbyxhPXt9LHI9dC5zcGxpdChcIi5cIilbMF0sbD1yK1wiLVwiKyh0PXQuc3BsaXQoXCIuXCIpWzFdKTtyZXR1cm4gZXx8KGU9aSxpPVYuV2lkZ2V0KSxBcnJheS5pc0FycmF5KGUpJiYoZT1WLmV4dGVuZC5hcHBseShudWxsLFt7fV0uY29uY2F0KGUpKSksVi5leHByLnBzZXVkb3NbbC50b0xvd2VyQ2FzZSgpXT1mdW5jdGlvbih0KXtyZXR1cm4hIVYuZGF0YSh0LGwpfSxWW3JdPVZbcl18fHt9LHM9VltyXVt0XSxuPVZbcl1bdF09ZnVuY3Rpb24odCxlKXtpZighdGhpc3x8IXRoaXMuX2NyZWF0ZVdpZGdldClyZXR1cm4gbmV3IG4odCxlKTthcmd1bWVudHMubGVuZ3RoJiZ0aGlzLl9jcmVhdGVXaWRnZXQodCxlKX0sVi5leHRlbmQobixzLHt2ZXJzaW9uOmUudmVyc2lvbixfcHJvdG86Vi5leHRlbmQoe30sZSksX2NoaWxkQ29uc3RydWN0b3JzOltdfSksKG89bmV3IGkpLm9wdGlvbnM9Vi53aWRnZXQuZXh0ZW5kKHt9LG8ub3B0aW9ucyksVi5lYWNoKGUsZnVuY3Rpb24oZSxzKXtmdW5jdGlvbiBuKCl7cmV0dXJuIGkucHJvdG90eXBlW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBvKHQpe3JldHVybiBpLnByb3RvdHlwZVtlXS5hcHBseSh0aGlzLHQpfWFbZV09XCJmdW5jdGlvblwiPT10eXBlb2Ygcz9mdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5fc3VwZXIsaT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1uLHRoaXMuX3N1cGVyQXBwbHk9byx0PXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPWUsdGhpcy5fc3VwZXJBcHBseT1pLHR9OnN9KSxuLnByb3RvdHlwZT1WLndpZGdldC5leHRlbmQobyx7d2lkZ2V0RXZlbnRQcmVmaXg6cyYmby53aWRnZXRFdmVudFByZWZpeHx8dH0sYSx7Y29uc3RydWN0b3I6bixuYW1lc3BhY2U6cix3aWRnZXROYW1lOnQsd2lkZ2V0RnVsbE5hbWU6bH0pLHM/KFYuZWFjaChzLl9jaGlsZENvbnN0cnVjdG9ycyxmdW5jdGlvbih0LGUpe3ZhciBpPWUucHJvdG90eXBlO1Yud2lkZ2V0KGkubmFtZXNwYWNlK1wiLlwiK2kud2lkZ2V0TmFtZSxuLGUuX3Byb3RvKX0pLGRlbGV0ZSBzLl9jaGlsZENvbnN0cnVjdG9ycyk6aS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChuKSxWLndpZGdldC5icmlkZ2UodCxuKSxufSxWLndpZGdldC5leHRlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGkscz1yLmNhbGwoYXJndW1lbnRzLDEpLG49MCxvPXMubGVuZ3RoO248bztuKyspZm9yKGUgaW4gc1tuXSlpPXNbbl1bZV0sYS5jYWxsKHNbbl0sZSkmJnZvaWQgMCE9PWkmJihWLmlzUGxhaW5PYmplY3QoaSk/dFtlXT1WLmlzUGxhaW5PYmplY3QodFtlXSk/Vi53aWRnZXQuZXh0ZW5kKHt9LHRbZV0saSk6Vi53aWRnZXQuZXh0ZW5kKHt9LGkpOnRbZV09aSk7cmV0dXJuIHR9LFYud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbihvLGUpe3ZhciBhPWUucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lfHxvO1YuZm5bb109ZnVuY3Rpb24oaSl7dmFyIHQ9XCJzdHJpbmdcIj09dHlwZW9mIGkscz1yLmNhbGwoYXJndW1lbnRzLDEpLG49dGhpcztyZXR1cm4gdD90aGlzLmxlbmd0aHx8XCJpbnN0YW5jZVwiIT09aT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxlPVYuZGF0YSh0aGlzLGEpO3JldHVyblwiaW5zdGFuY2VcIj09PWk/KG49ZSwhMSk6ZT9cImZ1bmN0aW9uXCIhPXR5cGVvZiBlW2ldfHxcIl9cIj09PWkuY2hhckF0KDApP1YuZXJyb3IoXCJubyBzdWNoIG1ldGhvZCAnXCIraStcIicgZm9yIFwiK28rXCIgd2lkZ2V0IGluc3RhbmNlXCIpOih0PWVbaV0uYXBwbHkoZSxzKSkhPT1lJiZ2b2lkIDAhPT10PyhuPXQmJnQuanF1ZXJ5P24ucHVzaFN0YWNrKHQuZ2V0KCkpOnQsITEpOnZvaWQgMDpWLmVycm9yKFwiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiBcIitvK1wiIHByaW9yIHRvIGluaXRpYWxpemF0aW9uOyBhdHRlbXB0ZWQgdG8gY2FsbCBtZXRob2QgJ1wiK2krXCInXCIpfSk6bj12b2lkIDA6KHMubGVuZ3RoJiYoaT1WLndpZGdldC5leHRlbmQuYXBwbHkobnVsbCxbaV0uY29uY2F0KHMpKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vi5kYXRhKHRoaXMsYSk7dD8odC5vcHRpb24oaXx8e30pLHQuX2luaXQmJnQuX2luaXQoKSk6Vi5kYXRhKHRoaXMsYSxuZXcgZShpLHRoaXMpKX0pKSxufX0sVi5XaWRnZXQ9ZnVuY3Rpb24oKXt9LFYuV2lkZ2V0Ll9jaGlsZENvbnN0cnVjdG9ycz1bXSxWLldpZGdldC5wcm90b3R5cGU9e3dpZGdldE5hbWU6XCJ3aWRnZXRcIix3aWRnZXRFdmVudFByZWZpeDpcIlwiLGRlZmF1bHRFbGVtZW50OlwiPGRpdj5cIixvcHRpb25zOntjbGFzc2VzOnt9LGRpc2FibGVkOiExLGNyZWF0ZTpudWxsfSxfY3JlYXRlV2lkZ2V0OmZ1bmN0aW9uKHQsZSl7ZT1WKGV8fHRoaXMuZGVmYXVsdEVsZW1lbnR8fHRoaXMpWzBdLHRoaXMuZWxlbWVudD1WKGUpLHRoaXMudXVpZD1pKyssdGhpcy5ldmVudE5hbWVzcGFjZT1cIi5cIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9VigpLHRoaXMuaG92ZXJhYmxlPVYoKSx0aGlzLmZvY3VzYWJsZT1WKCksdGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cD17fSxlIT09dGhpcyYmKFYuZGF0YShlLHRoaXMud2lkZ2V0RnVsbE5hbWUsdGhpcyksdGhpcy5fb24oITAsdGhpcy5lbGVtZW50LHtyZW1vdmU6ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1lJiZ0aGlzLmRlc3Ryb3koKX19KSx0aGlzLmRvY3VtZW50PVYoZS5zdHlsZT9lLm93bmVyRG9jdW1lbnQ6ZS5kb2N1bWVudHx8ZSksdGhpcy53aW5kb3c9Vih0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3fHx0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdykpLHRoaXMub3B0aW9ucz1WLndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSx0KSx0aGlzLl9jcmVhdGUoKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fdHJpZ2dlcihcImNyZWF0ZVwiLG51bGwsdGhpcy5fZ2V0Q3JlYXRlRXZlbnREYXRhKCkpLHRoaXMuX2luaXQoKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57fX0sX2dldENyZWF0ZUV2ZW50RGF0YTpWLm5vb3AsX2NyZWF0ZTpWLm5vb3AsX2luaXQ6Vi5ub29wLGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO3RoaXMuX2Rlc3Ryb3koKSxWLmVhY2godGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbih0LGUpe2kuX3JlbW92ZUNsYXNzKGUsdCl9KSx0aGlzLmVsZW1lbnQub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZURhdGEodGhpcy53aWRnZXRGdWxsTmFtZSksdGhpcy53aWRnZXQoKS5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlQXR0cihcImFyaWEtZGlzYWJsZWRcIiksdGhpcy5iaW5kaW5ncy5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSl9LF9kZXN0cm95OlYubm9vcCx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50fSxvcHRpb246ZnVuY3Rpb24odCxlKXt2YXIgaSxzLG4sbz10O2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBWLndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zKTtpZihcInN0cmluZ1wiPT10eXBlb2YgdClpZihvPXt9LHQ9KGk9dC5zcGxpdChcIi5cIikpLnNoaWZ0KCksaS5sZW5ndGgpe2ZvcihzPW9bdF09Vi53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9uc1t0XSksbj0wO248aS5sZW5ndGgtMTtuKyspc1tpW25dXT1zW2lbbl1dfHx7fSxzPXNbaVtuXV07aWYodD1pLnBvcCgpLDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1zW3RdP251bGw6c1t0XTtzW3RdPWV9ZWxzZXtpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dGhpcy5vcHRpb25zW3RdP251bGw6dGhpcy5vcHRpb25zW3RdO29bdF09ZX1yZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyhvKSx0aGlzfSxfc2V0T3B0aW9uczpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdCl0aGlzLl9zZXRPcHRpb24oZSx0W2VdKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe3JldHVyblwiY2xhc3Nlc1wiPT09dCYmdGhpcy5fc2V0T3B0aW9uQ2xhc3NlcyhlKSx0aGlzLm9wdGlvbnNbdF09ZSxcImRpc2FibGVkXCI9PT10JiZ0aGlzLl9zZXRPcHRpb25EaXNhYmxlZChlKSx0aGlzfSxfc2V0T3B0aW9uQ2xhc3NlczpmdW5jdGlvbih0KXt2YXIgZSxpLHM7Zm9yKGUgaW4gdClzPXRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXBbZV0sdFtlXSE9PXRoaXMub3B0aW9ucy5jbGFzc2VzW2VdJiZzJiZzLmxlbmd0aCYmKGk9VihzLmdldCgpKSx0aGlzLl9yZW1vdmVDbGFzcyhzLGUpLGkuYWRkQ2xhc3ModGhpcy5fY2xhc3Nlcyh7ZWxlbWVudDppLGtleXM6ZSxjbGFzc2VzOnQsYWRkOiEwfSkpKX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKHQpe3RoaXMuX3RvZ2dsZUNsYXNzKHRoaXMud2lkZ2V0KCksdGhpcy53aWRnZXRGdWxsTmFtZStcIi1kaXNhYmxlZFwiLG51bGwsISF0KSx0JiYodGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5ob3ZlcmFibGUsbnVsbCxcInVpLXN0YXRlLWhvdmVyXCIpLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuZm9jdXNhYmxlLG51bGwsXCJ1aS1zdGF0ZS1mb2N1c1wiKSl9LGVuYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDohMX0pfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiEwfSl9LF9jbGFzc2VzOmZ1bmN0aW9uKG4pe3ZhciBvPVtdLGE9dGhpcztmdW5jdGlvbiB0KHQsZSl7Zm9yKHZhciBpLHM9MDtzPHQubGVuZ3RoO3MrKylpPWEuY2xhc3Nlc0VsZW1lbnRMb29rdXBbdFtzXV18fFYoKSxpPW4uYWRkPyhmdW5jdGlvbigpe3ZhciBpPVtdO24uZWxlbWVudC5lYWNoKGZ1bmN0aW9uKHQsZSl7Vi5tYXAoYS5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbih0KXtyZXR1cm4gdH0pLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXMoZSl9KXx8aS5wdXNoKGUpfSksYS5fb24oVihpKSx7cmVtb3ZlOlwiX3VudHJhY2tDbGFzc2VzRWxlbWVudFwifSl9KCksVihWLnVuaXF1ZVNvcnQoaS5nZXQoKS5jb25jYXQobi5lbGVtZW50LmdldCgpKSkpKTpWKGkubm90KG4uZWxlbWVudCkuZ2V0KCkpLGEuY2xhc3Nlc0VsZW1lbnRMb29rdXBbdFtzXV09aSxvLnB1c2godFtzXSksZSYmbi5jbGFzc2VzW3Rbc11dJiZvLnB1c2gobi5jbGFzc2VzW3Rbc11dKX1yZXR1cm4obj1WLmV4dGVuZCh7ZWxlbWVudDp0aGlzLmVsZW1lbnQsY2xhc3Nlczp0aGlzLm9wdGlvbnMuY2xhc3Nlc3x8e319LG4pKS5rZXlzJiZ0KG4ua2V5cy5tYXRjaCgvXFxTKy9nKXx8W10sITApLG4uZXh0cmEmJnQobi5leHRyYS5tYXRjaCgvXFxTKy9nKXx8W10pLG8uam9pbihcIiBcIil9LF91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQ6ZnVuY3Rpb24oaSl7dmFyIHM9dGhpcztWLmVhY2gocy5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbih0LGUpey0xIT09Vi5pbkFycmF5KGkudGFyZ2V0LGUpJiYocy5jbGFzc2VzRWxlbWVudExvb2t1cFt0XT1WKGUubm90KGkudGFyZ2V0KS5nZXQoKSkpfSksdGhpcy5fb2ZmKFYoaS50YXJnZXQpKX0sX3JlbW92ZUNsYXNzOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3ModCxlLGksITEpfSxfYWRkQ2xhc3M6ZnVuY3Rpb24odCxlLGkpe3JldHVybiB0aGlzLl90b2dnbGVDbGFzcyh0LGUsaSwhMCl9LF90b2dnbGVDbGFzczpmdW5jdGlvbih0LGUsaSxzKXtzPVwiYm9vbGVhblwiPT10eXBlb2Ygcz9zOmk7dmFyIG49XCJzdHJpbmdcIj09dHlwZW9mIHR8fG51bGw9PT10LHQ9e2V4dHJhOm4/ZTppLGtleXM6bj90OmUsZWxlbWVudDpuP3RoaXMuZWxlbWVudDp0LGFkZDpzfTtyZXR1cm4gdC5lbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuX2NsYXNzZXModCkscyksdGhpc30sX29uOmZ1bmN0aW9uKG4sbyx0KXt2YXIgYSxyPXRoaXM7XCJib29sZWFuXCIhPXR5cGVvZiBuJiYodD1vLG89bixuPSExKSx0PyhvPWE9VihvKSx0aGlzLmJpbmRpbmdzPXRoaXMuYmluZGluZ3MuYWRkKG8pKToodD1vLG89dGhpcy5lbGVtZW50LGE9dGhpcy53aWRnZXQoKSksVi5lYWNoKHQsZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBpKCl7aWYobnx8ITAhPT1yLm9wdGlvbnMuZGlzYWJsZWQmJiFWKHRoaXMpLmhhc0NsYXNzKFwidWktc3RhdGUtZGlzYWJsZWRcIikpcmV0dXJuKFwic3RyaW5nXCI9PXR5cGVvZiBlP3JbZV06ZSkuYXBwbHkocixhcmd1bWVudHMpfVwic3RyaW5nXCIhPXR5cGVvZiBlJiYoaS5ndWlkPWUuZ3VpZD1lLmd1aWR8fGkuZ3VpZHx8Vi5ndWlkKyspO3ZhciBzPXQubWF0Y2goL14oW1xcdzotXSopXFxzKiguKikkLyksdD1zWzFdK3IuZXZlbnROYW1lc3BhY2Uscz1zWzJdO3M/YS5vbih0LHMsaSk6by5vbih0LGkpfSl9LF9vZmY6ZnVuY3Rpb24odCxlKXtlPShlfHxcIlwiKS5zcGxpdChcIiBcIikuam9pbih0aGlzLmV2ZW50TmFtZXNwYWNlK1wiIFwiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLHQub2ZmKGUpLHRoaXMuYmluZGluZ3M9Vih0aGlzLmJpbmRpbmdzLm5vdCh0KS5nZXQoKSksdGhpcy5mb2N1c2FibGU9Vih0aGlzLmZvY3VzYWJsZS5ub3QodCkuZ2V0KCkpLHRoaXMuaG92ZXJhYmxlPVYodGhpcy5ob3ZlcmFibGUubm90KHQpLmdldCgpKX0sX2RlbGF5OmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybihcInN0cmluZ1wiPT10eXBlb2YgdD9pW3RdOnQpLmFwcGx5KGksYXJndW1lbnRzKX0sZXx8MCl9LF9ob3ZlcmFibGU6ZnVuY3Rpb24odCl7dGhpcy5ob3ZlcmFibGU9dGhpcy5ob3ZlcmFibGUuYWRkKHQpLHRoaXMuX29uKHQse21vdXNlZW50ZXI6ZnVuY3Rpb24odCl7dGhpcy5fYWRkQ2xhc3MoVih0LmN1cnJlbnRUYXJnZXQpLG51bGwsXCJ1aS1zdGF0ZS1ob3ZlclwiKX0sbW91c2VsZWF2ZTpmdW5jdGlvbih0KXt0aGlzLl9yZW1vdmVDbGFzcyhWKHQuY3VycmVudFRhcmdldCksbnVsbCxcInVpLXN0YXRlLWhvdmVyXCIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKHQpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZCh0KSx0aGlzLl9vbih0LHtmb2N1c2luOmZ1bmN0aW9uKHQpe3RoaXMuX2FkZENsYXNzKFYodC5jdXJyZW50VGFyZ2V0KSxudWxsLFwidWktc3RhdGUtZm9jdXNcIil9LGZvY3Vzb3V0OmZ1bmN0aW9uKHQpe3RoaXMuX3JlbW92ZUNsYXNzKFYodC5jdXJyZW50VGFyZ2V0KSxudWxsLFwidWktc3RhdGUtZm9jdXNcIil9fSl9LF90cmlnZ2VyOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcyxuLG89dGhpcy5vcHRpb25zW3RdO2lmKGk9aXx8e30sKGU9Vi5FdmVudChlKSkudHlwZT0odD09PXRoaXMud2lkZ2V0RXZlbnRQcmVmaXg/dDp0aGlzLndpZGdldEV2ZW50UHJlZml4K3QpLnRvTG93ZXJDYXNlKCksZS50YXJnZXQ9dGhpcy5lbGVtZW50WzBdLG49ZS5vcmlnaW5hbEV2ZW50KWZvcihzIGluIG4pcyBpbiBlfHwoZVtzXT1uW3NdKTtyZXR1cm4gdGhpcy5lbGVtZW50LnRyaWdnZXIoZSxpKSwhKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJiExPT09by5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW2VdLmNvbmNhdChpKSl8fGUuaXNEZWZhdWx0UHJldmVudGVkKCkpfX0sVi5lYWNoKHtzaG93OlwiZmFkZUluXCIsaGlkZTpcImZhZGVPdXRcIn0sZnVuY3Rpb24obyxhKXtWLldpZGdldC5wcm90b3R5cGVbXCJfXCIrb109ZnVuY3Rpb24oZSx0LGkpe3ZhciBzO1wic3RyaW5nXCI9PXR5cGVvZiB0JiYodD17ZWZmZWN0OnR9KTt2YXIgbj10PyEwIT09dCYmXCJudW1iZXJcIiE9dHlwZW9mIHQmJnQuZWZmZWN0fHxhOm87XCJudW1iZXJcIj09dHlwZW9mKHQ9dHx8e30pP3Q9e2R1cmF0aW9uOnR9OiEwPT09dCYmKHQ9e30pLHM9IVYuaXNFbXB0eU9iamVjdCh0KSx0LmNvbXBsZXRlPWksdC5kZWxheSYmZS5kZWxheSh0LmRlbGF5KSxzJiZWLmVmZmVjdHMmJlYuZWZmZWN0cy5lZmZlY3Rbbl0/ZVtvXSh0KTpuIT09byYmZVtuXT9lW25dKHQuZHVyYXRpb24sdC5lYXNpbmcsaSk6ZS5xdWV1ZShmdW5jdGlvbih0KXtWKHRoaXMpW29dKCksaSYmaS5jYWxsKGVbMF0pLHQoKX0pfX0pO3ZhciBzLHgsayxvLGwsaCxjLHUsQztWLndpZGdldDtmdW5jdGlvbiBEKHQsZSxpKXtyZXR1cm5bcGFyc2VGbG9hdCh0WzBdKSoodS50ZXN0KHRbMF0pP2UvMTAwOjEpLHBhcnNlRmxvYXQodFsxXSkqKHUudGVzdCh0WzFdKT9pLzEwMDoxKV19ZnVuY3Rpb24gSSh0LGUpe3JldHVybiBwYXJzZUludChWLmNzcyh0LGUpLDEwKXx8MH1mdW5jdGlvbiBUKHQpe3JldHVybiBudWxsIT10JiZ0PT09dC53aW5kb3d9eD1NYXRoLm1heCxrPU1hdGguYWJzLG89L2xlZnR8Y2VudGVyfHJpZ2h0LyxsPS90b3B8Y2VudGVyfGJvdHRvbS8saD0vW1xcK1xcLV1cXGQrKFxcLltcXGRdKyk/JT8vLGM9L15cXHcrLyx1PS8lJC8sQz1WLmZuLnBvc2l0aW9uLFYucG9zaXRpb249e3Njcm9sbGJhcldpZHRoOmZ1bmN0aW9uKCl7aWYodm9pZCAwIT09cylyZXR1cm4gczt2YXIgdCxlPVYoXCI8ZGl2IHN0eWxlPSdkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwMHB4O2hlaWdodDoyMDBweDtvdmVyZmxvdzpoaWRkZW47Jz48ZGl2IHN0eWxlPSdoZWlnaHQ6MzAwcHg7d2lkdGg6YXV0bzsnPjwvZGl2PjwvZGl2PlwiKSxpPWUuY2hpbGRyZW4oKVswXTtyZXR1cm4gVihcImJvZHlcIikuYXBwZW5kKGUpLHQ9aS5vZmZzZXRXaWR0aCxlLmNzcyhcIm92ZXJmbG93XCIsXCJzY3JvbGxcIiksdD09PShpPWkub2Zmc2V0V2lkdGgpJiYoaT1lWzBdLmNsaWVudFdpZHRoKSxlLnJlbW92ZSgpLHM9dC1pfSxnZXRTY3JvbGxJbmZvOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaXNXaW5kb3d8fHQuaXNEb2N1bWVudD9cIlwiOnQuZWxlbWVudC5jc3MoXCJvdmVyZmxvdy14XCIpLGk9dC5pc1dpbmRvd3x8dC5pc0RvY3VtZW50P1wiXCI6dC5lbGVtZW50LmNzcyhcIm92ZXJmbG93LXlcIiksZT1cInNjcm9sbFwiPT09ZXx8XCJhdXRvXCI9PT1lJiZ0LndpZHRoPHQuZWxlbWVudFswXS5zY3JvbGxXaWR0aDtyZXR1cm57d2lkdGg6XCJzY3JvbGxcIj09PWl8fFwiYXV0b1wiPT09aSYmdC5oZWlnaHQ8dC5lbGVtZW50WzBdLnNjcm9sbEhlaWdodD9WLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MCxoZWlnaHQ6ZT9WLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MH19LGdldFdpdGhpbkluZm86ZnVuY3Rpb24odCl7dmFyIGU9Vih0fHx3aW5kb3cpLGk9VChlWzBdKSxzPSEhZVswXSYmOT09PWVbMF0ubm9kZVR5cGU7cmV0dXJue2VsZW1lbnQ6ZSxpc1dpbmRvdzppLGlzRG9jdW1lbnQ6cyxvZmZzZXQ6IWkmJiFzP1YodCkub2Zmc2V0KCk6e2xlZnQ6MCx0b3A6MH0sc2Nyb2xsTGVmdDplLnNjcm9sbExlZnQoKSxzY3JvbGxUb3A6ZS5zY3JvbGxUb3AoKSx3aWR0aDplLm91dGVyV2lkdGgoKSxoZWlnaHQ6ZS5vdXRlckhlaWdodCgpfX19LFYuZm4ucG9zaXRpb249ZnVuY3Rpb24odSl7aWYoIXV8fCF1Lm9mKXJldHVybiBDLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZCxwLGYsZyxtLHQsXz1cInN0cmluZ1wiPT10eXBlb2YodT1WLmV4dGVuZCh7fSx1KSkub2Y/Vihkb2N1bWVudCkuZmluZCh1Lm9mKTpWKHUub2YpLHY9Vi5wb3NpdGlvbi5nZXRXaXRoaW5JbmZvKHUud2l0aGluKSxiPVYucG9zaXRpb24uZ2V0U2Nyb2xsSW5mbyh2KSx5PSh1LmNvbGxpc2lvbnx8XCJmbGlwXCIpLnNwbGl0KFwiIFwiKSx3PXt9LGU9OT09PSh0PShlPV8pWzBdKS5ub2RlVHlwZT97d2lkdGg6ZS53aWR0aCgpLGhlaWdodDplLmhlaWdodCgpLG9mZnNldDp7dG9wOjAsbGVmdDowfX06VCh0KT97d2lkdGg6ZS53aWR0aCgpLGhlaWdodDplLmhlaWdodCgpLG9mZnNldDp7dG9wOmUuc2Nyb2xsVG9wKCksbGVmdDplLnNjcm9sbExlZnQoKX19OnQucHJldmVudERlZmF1bHQ/e3dpZHRoOjAsaGVpZ2h0OjAsb2Zmc2V0Ont0b3A6dC5wYWdlWSxsZWZ0OnQucGFnZVh9fTp7d2lkdGg6ZS5vdXRlcldpZHRoKCksaGVpZ2h0OmUub3V0ZXJIZWlnaHQoKSxvZmZzZXQ6ZS5vZmZzZXQoKX07cmV0dXJuIF9bMF0ucHJldmVudERlZmF1bHQmJih1LmF0PVwibGVmdCB0b3BcIikscD1lLndpZHRoLGY9ZS5oZWlnaHQsZz1lLm9mZnNldCxtPVYuZXh0ZW5kKHt9LGcpLFYuZWFjaChbXCJteVwiLFwiYXRcIl0sZnVuY3Rpb24oKXt2YXIgdCxlLGk9KHVbdGhpc118fFwiXCIpLnNwbGl0KFwiIFwiKTsxPT09aS5sZW5ndGgmJihpPW8udGVzdChpWzBdKT9pLmNvbmNhdChbXCJjZW50ZXJcIl0pOmwudGVzdChpWzBdKT9bXCJjZW50ZXJcIl0uY29uY2F0KGkpOltcImNlbnRlclwiLFwiY2VudGVyXCJdKSxpWzBdPW8udGVzdChpWzBdKT9pWzBdOlwiY2VudGVyXCIsaVsxXT1sLnRlc3QoaVsxXSk/aVsxXTpcImNlbnRlclwiLHQ9aC5leGVjKGlbMF0pLGU9aC5leGVjKGlbMV0pLHdbdGhpc109W3Q/dFswXTowLGU/ZVswXTowXSx1W3RoaXNdPVtjLmV4ZWMoaVswXSlbMF0sYy5leGVjKGlbMV0pWzBdXX0pLDE9PT15Lmxlbmd0aCYmKHlbMV09eVswXSksXCJyaWdodFwiPT09dS5hdFswXT9tLmxlZnQrPXA6XCJjZW50ZXJcIj09PXUuYXRbMF0mJihtLmxlZnQrPXAvMiksXCJib3R0b21cIj09PXUuYXRbMV0/bS50b3ArPWY6XCJjZW50ZXJcIj09PXUuYXRbMV0mJihtLnRvcCs9Zi8yKSxkPUQody5hdCxwLGYpLG0ubGVmdCs9ZFswXSxtLnRvcCs9ZFsxXSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgaSx0LGE9Vih0aGlzKSxyPWEub3V0ZXJXaWR0aCgpLGw9YS5vdXRlckhlaWdodCgpLGU9SSh0aGlzLFwibWFyZ2luTGVmdFwiKSxzPUkodGhpcyxcIm1hcmdpblRvcFwiKSxuPXIrZStJKHRoaXMsXCJtYXJnaW5SaWdodFwiKStiLndpZHRoLG89bCtzK0kodGhpcyxcIm1hcmdpbkJvdHRvbVwiKStiLmhlaWdodCxoPVYuZXh0ZW5kKHt9LG0pLGM9RCh3Lm15LGEub3V0ZXJXaWR0aCgpLGEub3V0ZXJIZWlnaHQoKSk7XCJyaWdodFwiPT09dS5teVswXT9oLmxlZnQtPXI6XCJjZW50ZXJcIj09PXUubXlbMF0mJihoLmxlZnQtPXIvMiksXCJib3R0b21cIj09PXUubXlbMV0/aC50b3AtPWw6XCJjZW50ZXJcIj09PXUubXlbMV0mJihoLnRvcC09bC8yKSxoLmxlZnQrPWNbMF0saC50b3ArPWNbMV0saT17bWFyZ2luTGVmdDplLG1hcmdpblRvcDpzfSxWLmVhY2goW1wibGVmdFwiLFwidG9wXCJdLGZ1bmN0aW9uKHQsZSl7Vi51aS5wb3NpdGlvblt5W3RdXSYmVi51aS5wb3NpdGlvblt5W3RdXVtlXShoLHt0YXJnZXRXaWR0aDpwLHRhcmdldEhlaWdodDpmLGVsZW1XaWR0aDpyLGVsZW1IZWlnaHQ6bCxjb2xsaXNpb25Qb3NpdGlvbjppLGNvbGxpc2lvbldpZHRoOm4sY29sbGlzaW9uSGVpZ2h0Om8sb2Zmc2V0OltkWzBdK2NbMF0sZFsxXStjWzFdXSxteTp1Lm15LGF0OnUuYXQsd2l0aGluOnYsZWxlbTphfSl9KSx1LnVzaW5nJiYodD1mdW5jdGlvbih0KXt2YXIgZT1nLmxlZnQtaC5sZWZ0LGk9ZStwLXIscz1nLnRvcC1oLnRvcCxuPXMrZi1sLG89e3RhcmdldDp7ZWxlbWVudDpfLGxlZnQ6Zy5sZWZ0LHRvcDpnLnRvcCx3aWR0aDpwLGhlaWdodDpmfSxlbGVtZW50OntlbGVtZW50OmEsbGVmdDpoLmxlZnQsdG9wOmgudG9wLHdpZHRoOnIsaGVpZ2h0Omx9LGhvcml6b250YWw6aTwwP1wibGVmdFwiOjA8ZT9cInJpZ2h0XCI6XCJjZW50ZXJcIix2ZXJ0aWNhbDpuPDA/XCJ0b3BcIjowPHM/XCJib3R0b21cIjpcIm1pZGRsZVwifTtwPHImJmsoZStpKTxwJiYoby5ob3Jpem9udGFsPVwiY2VudGVyXCIpLGY8bCYmayhzK24pPGYmJihvLnZlcnRpY2FsPVwibWlkZGxlXCIpLHgoayhlKSxrKGkpKT54KGsocyksayhuKSk/by5pbXBvcnRhbnQ9XCJob3Jpem9udGFsXCI6by5pbXBvcnRhbnQ9XCJ2ZXJ0aWNhbFwiLHUudXNpbmcuY2FsbCh0aGlzLHQsbyl9KSxhLm9mZnNldChWLmV4dGVuZChoLHt1c2luZzp0fSkpfSl9LFYudWkucG9zaXRpb249e2ZpdDp7bGVmdDpmdW5jdGlvbih0LGUpe3ZhciBpPWUud2l0aGluLHM9aS5pc1dpbmRvdz9pLnNjcm9sbExlZnQ6aS5vZmZzZXQubGVmdCxuPWkud2lkdGgsbz10LmxlZnQtZS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LGE9cy1vLHI9bytlLmNvbGxpc2lvbldpZHRoLW4tcztlLmNvbGxpc2lvbldpZHRoPm4/MDxhJiZyPD0wPyhpPXQubGVmdCthK2UuY29sbGlzaW9uV2lkdGgtbi1zLHQubGVmdCs9YS1pKTp0LmxlZnQ9ISgwPHImJmE8PTApJiZyPGE/cytuLWUuY29sbGlzaW9uV2lkdGg6czowPGE/dC5sZWZ0Kz1hOjA8cj90LmxlZnQtPXI6dC5sZWZ0PXgodC5sZWZ0LW8sdC5sZWZ0KX0sdG9wOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS53aXRoaW4scz1pLmlzV2luZG93P2kuc2Nyb2xsVG9wOmkub2Zmc2V0LnRvcCxuPWUud2l0aGluLmhlaWdodCxvPXQudG9wLWUuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLGE9cy1vLHI9bytlLmNvbGxpc2lvbkhlaWdodC1uLXM7ZS5jb2xsaXNpb25IZWlnaHQ+bj8wPGEmJnI8PTA/KGk9dC50b3ArYStlLmNvbGxpc2lvbkhlaWdodC1uLXMsdC50b3ArPWEtaSk6dC50b3A9ISgwPHImJmE8PTApJiZyPGE/cytuLWUuY29sbGlzaW9uSGVpZ2h0OnM6MDxhP3QudG9wKz1hOjA8cj90LnRvcC09cjp0LnRvcD14KHQudG9wLW8sdC50b3ApfX0sZmxpcDp7bGVmdDpmdW5jdGlvbih0LGUpe3ZhciBpPWUud2l0aGluLHM9aS5vZmZzZXQubGVmdCtpLnNjcm9sbExlZnQsbj1pLndpZHRoLG89aS5pc1dpbmRvdz9pLnNjcm9sbExlZnQ6aS5vZmZzZXQubGVmdCxhPXQubGVmdC1lLmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpbkxlZnQscj1hLW8sbD1hK2UuY29sbGlzaW9uV2lkdGgtbi1vLGg9XCJsZWZ0XCI9PT1lLm15WzBdPy1lLmVsZW1XaWR0aDpcInJpZ2h0XCI9PT1lLm15WzBdP2UuZWxlbVdpZHRoOjAsaT1cImxlZnRcIj09PWUuYXRbMF0/ZS50YXJnZXRXaWR0aDpcInJpZ2h0XCI9PT1lLmF0WzBdPy1lLnRhcmdldFdpZHRoOjAsYT0tMiplLm9mZnNldFswXTtyPDA/KChzPXQubGVmdCtoK2krYStlLmNvbGxpc2lvbldpZHRoLW4tcyk8MHx8czxrKHIpKSYmKHQubGVmdCs9aCtpK2EpOjA8bCYmKDA8KG89dC5sZWZ0LWUuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCtoK2krYS1vKXx8ayhvKTxsKSYmKHQubGVmdCs9aCtpK2EpfSx0b3A6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLndpdGhpbixzPWkub2Zmc2V0LnRvcCtpLnNjcm9sbFRvcCxuPWkuaGVpZ2h0LG89aS5pc1dpbmRvdz9pLnNjcm9sbFRvcDppLm9mZnNldC50b3AsYT10LnRvcC1lLmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpblRvcCxyPWEtbyxsPWErZS5jb2xsaXNpb25IZWlnaHQtbi1vLGg9XCJ0b3BcIj09PWUubXlbMV0/LWUuZWxlbUhlaWdodDpcImJvdHRvbVwiPT09ZS5teVsxXT9lLmVsZW1IZWlnaHQ6MCxpPVwidG9wXCI9PT1lLmF0WzFdP2UudGFyZ2V0SGVpZ2h0OlwiYm90dG9tXCI9PT1lLmF0WzFdPy1lLnRhcmdldEhlaWdodDowLGE9LTIqZS5vZmZzZXRbMV07cjwwPygocz10LnRvcCtoK2krYStlLmNvbGxpc2lvbkhlaWdodC1uLXMpPDB8fHM8ayhyKSkmJih0LnRvcCs9aCtpK2EpOjA8bCYmKDA8KG89dC50b3AtZS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3AraCtpK2Etbyl8fGsobyk8bCkmJih0LnRvcCs9aCtpK2EpfX0sZmxpcGZpdDp7bGVmdDpmdW5jdGlvbigpe1YudWkucG9zaXRpb24uZmxpcC5sZWZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxWLnVpLnBvc2l0aW9uLmZpdC5sZWZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdG9wOmZ1bmN0aW9uKCl7Vi51aS5wb3NpdGlvbi5mbGlwLnRvcC5hcHBseSh0aGlzLGFyZ3VtZW50cyksVi51aS5wb3NpdGlvbi5maXQudG9wLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fTt2YXIgdDtWLnVpLnBvc2l0aW9uLFYuZXh0ZW5kKFYuZXhwci5wc2V1ZG9zLHtkYXRhOlYuZXhwci5jcmVhdGVQc2V1ZG8/Vi5leHByLmNyZWF0ZVBzZXVkbyhmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuISFWLmRhdGEodCxlKX19KTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuISFWLmRhdGEodCxpWzNdKX19KSxWLmZuLmV4dGVuZCh7ZGlzYWJsZVNlbGVjdGlvbjoodD1cIm9uc2VsZWN0c3RhcnRcImluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik/XCJzZWxlY3RzdGFydFwiOlwibW91c2Vkb3duXCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbih0K1wiLnVpLWRpc2FibGVTZWxlY3Rpb25cIixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9KX0pLGVuYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9mZihcIi51aS1kaXNhYmxlU2VsZWN0aW9uXCIpfX0pO1YudWkuZm9jdXNhYmxlPWZ1bmN0aW9uKHQsZSl7dmFyIGkscyxuLG8sYT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuXCJhcmVhXCI9PT1hPyhzPShpPXQucGFyZW50Tm9kZSkubmFtZSwhKCF0LmhyZWZ8fCFzfHxcIm1hcFwiIT09aS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSYmKDA8KHM9VihcImltZ1t1c2VtYXA9JyNcIitzK1wiJ11cIikpLmxlbmd0aCYmcy5pcyhcIjp2aXNpYmxlXCIpKSk6KC9eKGlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvLnRlc3QoYSk/KG49IXQuZGlzYWJsZWQpJiYobz1WKHQpLmNsb3Nlc3QoXCJmaWVsZHNldFwiKVswXSkmJihuPSFvLmRpc2FibGVkKTpuPVwiYVwiPT09YSYmdC5ocmVmfHxlLG4mJlYodCkuaXMoXCI6dmlzaWJsZVwiKSYmZnVuY3Rpb24odCl7dmFyIGU9dC5jc3MoXCJ2aXNpYmlsaXR5XCIpO2Zvcig7XCJpbmhlcml0XCI9PT1lOyl0PXQucGFyZW50KCksZT10LmNzcyhcInZpc2liaWxpdHlcIik7cmV0dXJuXCJ2aXNpYmxlXCI9PT1lfShWKHQpKSl9LFYuZXh0ZW5kKFYuZXhwci5wc2V1ZG9zLHtmb2N1c2FibGU6ZnVuY3Rpb24odCl7cmV0dXJuIFYudWkuZm9jdXNhYmxlKHQsbnVsbCE9Vi5hdHRyKHQsXCJ0YWJpbmRleFwiKSl9fSk7dmFyIGUsZDtWLnVpLmZvY3VzYWJsZSxWLmZuLl9mb3JtPWZ1bmN0aW9uKCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHRoaXNbMF0uZm9ybT90aGlzLmNsb3Nlc3QoXCJmb3JtXCIpOlYodGhpc1swXS5mb3JtKX0sVi51aS5mb3JtUmVzZXRNaXhpbj17X2Zvcm1SZXNldEhhbmRsZXI6ZnVuY3Rpb24oKXt2YXIgZT1WKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1lLmRhdGEoXCJ1aS1mb3JtLXJlc2V0LWluc3RhbmNlc1wiKTtWLmVhY2godCxmdW5jdGlvbigpe3RoaXMucmVmcmVzaCgpfSl9KX0sX2JpbmRGb3JtUmVzZXRIYW5kbGVyOmZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5mb3JtPXRoaXMuZWxlbWVudC5fZm9ybSgpLHRoaXMuZm9ybS5sZW5ndGgmJigodD10aGlzLmZvcm0uZGF0YShcInVpLWZvcm0tcmVzZXQtaW5zdGFuY2VzXCIpfHxbXSkubGVuZ3RofHx0aGlzLmZvcm0ub24oXCJyZXNldC51aS1mb3JtLXJlc2V0XCIsdGhpcy5fZm9ybVJlc2V0SGFuZGxlciksdC5wdXNoKHRoaXMpLHRoaXMuZm9ybS5kYXRhKFwidWktZm9ybS1yZXNldC1pbnN0YW5jZXNcIix0KSl9LF91bmJpbmRGb3JtUmVzZXRIYW5kbGVyOmZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5mb3JtLmxlbmd0aCYmKCh0PXRoaXMuZm9ybS5kYXRhKFwidWktZm9ybS1yZXNldC1pbnN0YW5jZXNcIikpLnNwbGljZShWLmluQXJyYXkodGhpcyx0KSwxKSx0Lmxlbmd0aD90aGlzLmZvcm0uZGF0YShcInVpLWZvcm0tcmVzZXQtaW5zdGFuY2VzXCIsdCk6dGhpcy5mb3JtLnJlbW92ZURhdGEoXCJ1aS1mb3JtLXJlc2V0LWluc3RhbmNlc1wiKS5vZmYoXCJyZXNldC51aS1mb3JtLXJlc2V0XCIpKX19O1YuZXhwci5wc2V1ZG9zfHwoVi5leHByLnBzZXVkb3M9Vi5leHByW1wiOlwiXSksVi51bmlxdWVTb3J0fHwoVi51bmlxdWVTb3J0PVYudW5pcXVlKSxWLmVzY2FwZVNlbGVjdG9yfHwoZT0vKFtcXDAtXFx4MWZcXHg3Zl18Xi0/XFxkKXxeLSR8W15cXHg4MC1cXHVGRkZGXFx3LV0vZyxkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/XCJcXDBcIj09PXQ/XCJcdWZmZmRcIjp0LnNsaWNlKDAsLTEpK1wiXFxcXFwiK3QuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKS50b1N0cmluZygxNikrXCIgXCI6XCJcXFxcXCIrdH0sVi5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm4odCtcIlwiKS5yZXBsYWNlKGUsZCl9KSxWLmZuLmV2ZW4mJlYuZm4ub2RkfHxWLmZuLmV4dGVuZCh7ZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdCUyPT0wfSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdCUyPT0xfSl9fSk7Vi51aS5rZXlDb2RlPXtCQUNLU1BBQ0U6OCxDT01NQToxODgsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LExFRlQ6MzcsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTUEFDRTozMixUQUI6OSxVUDozOH0sVi5mbi5sYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdCxlLGk7cmV0dXJuIHRoaXMubGVuZ3RoP3RoaXNbMF0ubGFiZWxzJiZ0aGlzWzBdLmxhYmVscy5sZW5ndGg/dGhpcy5wdXNoU3RhY2sodGhpc1swXS5sYWJlbHMpOihlPXRoaXMuZXEoMCkucGFyZW50cyhcImxhYmVsXCIpLCh0PXRoaXMuYXR0cihcImlkXCIpKSYmKGk9KGk9dGhpcy5lcSgwKS5wYXJlbnRzKCkubGFzdCgpKS5hZGQoKGkubGVuZ3RoP2k6dGhpcykuc2libGluZ3MoKSksdD1cImxhYmVsW2Zvcj0nXCIrVi5lc2NhcGVTZWxlY3Rvcih0KStcIiddXCIsZT1lLmFkZChpLmZpbmQodCkuYWRkQmFjayh0KSkpLHRoaXMucHVzaFN0YWNrKGUpKTp0aGlzLnB1c2hTdGFjayhbXSl9LFYuZm4uc2Nyb2xsUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3NzKFwicG9zaXRpb25cIiksaT1cImFic29sdXRlXCI9PT1lLHM9dD8vKGF1dG98c2Nyb2xsfGhpZGRlbikvOi8oYXV0b3xzY3JvbGwpLyx0PXRoaXMucGFyZW50cygpLmZpbHRlcihmdW5jdGlvbigpe3ZhciB0PVYodGhpcyk7cmV0dXJuKCFpfHxcInN0YXRpY1wiIT09dC5jc3MoXCJwb3NpdGlvblwiKSkmJnMudGVzdCh0LmNzcyhcIm92ZXJmbG93XCIpK3QuY3NzKFwib3ZlcmZsb3cteVwiKSt0LmNzcyhcIm92ZXJmbG93LXhcIikpfSkuZXEoMCk7cmV0dXJuXCJmaXhlZFwiIT09ZSYmdC5sZW5ndGg/dDpWKHRoaXNbMF0ub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpfSxWLmV4dGVuZChWLmV4cHIucHNldWRvcyx7dGFiYmFibGU6ZnVuY3Rpb24odCl7dmFyIGU9Vi5hdHRyKHQsXCJ0YWJpbmRleFwiKSxpPW51bGwhPWU7cmV0dXJuKCFpfHwwPD1lKSYmVi51aS5mb2N1c2FibGUodCxpKX19KSxWLmZuLmV4dGVuZCh7dW5pcXVlSWQ6KHA9MCxmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt0aGlzLmlkfHwodGhpcy5pZD1cInVpLWlkLVwiKyArK3ApfSl9KSxyZW1vdmVVbmlxdWVJZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsvXnVpLWlkLVxcZCskLy50ZXN0KHRoaXMuaWQpJiZWKHRoaXMpLnJlbW92ZUF0dHIoXCJpZFwiKX0pfX0pLFYudWkuaWU9ISEvbXNpZSBbXFx3Ll0rLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7dmFyIHAsZj0hMTtWKGRvY3VtZW50KS5vbihcIm1vdXNldXBcIixmdW5jdGlvbigpe2Y9ITF9KTtWLndpZGdldChcInVpLm1vdXNlXCIse3ZlcnNpb246XCIxLjEzLjJcIixvcHRpb25zOntjYW5jZWw6XCJpbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiwgc2VsZWN0LCBvcHRpb25cIixkaXN0YW5jZToxLGRlbGF5OjB9LF9tb3VzZUluaXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuZWxlbWVudC5vbihcIm1vdXNlZG93bi5cIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24odCl7cmV0dXJuIGUuX21vdXNlRG93bih0KX0pLm9uKFwiY2xpY2suXCIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKHQpe2lmKCEwPT09Vi5kYXRhKHQudGFyZ2V0LGUud2lkZ2V0TmFtZStcIi5wcmV2ZW50Q2xpY2tFdmVudFwiKSlyZXR1cm4gVi5yZW1vdmVEYXRhKHQudGFyZ2V0LGUud2lkZ2V0TmFtZStcIi5wcmV2ZW50Q2xpY2tFdmVudFwiKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLCExfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Lm9mZihcIi5cIit0aGlzLndpZGdldE5hbWUpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlJiZ0aGlzLmRvY3VtZW50Lm9mZihcIm1vdXNlbW92ZS5cIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLm9mZihcIm1vdXNldXAuXCIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24odCl7aWYoIWYpe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKHQpLHRoaXMuX21vdXNlRG93bkV2ZW50PXQ7dmFyIGU9dGhpcyxpPTE9PT10LndoaWNoLHM9IShcInN0cmluZ1wiIT10eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbHx8IXQudGFyZ2V0Lm5vZGVOYW1lKSYmVih0LnRhcmdldCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuY2FuY2VsKS5sZW5ndGg7cmV0dXJuIGkmJiFzJiZ0aGlzLl9tb3VzZUNhcHR1cmUodCk/KHRoaXMubW91c2VEZWxheU1ldD0hdGhpcy5vcHRpb25zLmRlbGF5LHRoaXMubW91c2VEZWxheU1ldHx8KHRoaXMuX21vdXNlRGVsYXlUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5tb3VzZURlbGF5TWV0PSEwfSx0aGlzLm9wdGlvbnMuZGVsYXkpKSx0aGlzLl9tb3VzZURpc3RhbmNlTWV0KHQpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KHQpJiYodGhpcy5fbW91c2VTdGFydGVkPSExIT09dGhpcy5fbW91c2VTdGFydCh0KSwhdGhpcy5fbW91c2VTdGFydGVkKT8odC5wcmV2ZW50RGVmYXVsdCgpLCEwKTooITA9PT1WLmRhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lK1wiLnByZXZlbnRDbGlja0V2ZW50XCIpJiZWLnJlbW92ZURhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lK1wiLnByZXZlbnRDbGlja0V2ZW50XCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBlLl9tb3VzZU1vdmUodCl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbih0KXtyZXR1cm4gZS5fbW91c2VVcCh0KX0sdGhpcy5kb2N1bWVudC5vbihcIm1vdXNlbW92ZS5cIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLm9uKFwibW91c2V1cC5cIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSx0LnByZXZlbnREZWZhdWx0KCksZj0hMCkpOiEwfX0sX21vdXNlTW92ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9tb3VzZU1vdmVkKXtpZihWLnVpLmllJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlPDkpJiYhdC5idXR0b24pcmV0dXJuIHRoaXMuX21vdXNlVXAodCk7aWYoIXQud2hpY2gpaWYodC5vcmlnaW5hbEV2ZW50LmFsdEtleXx8dC5vcmlnaW5hbEV2ZW50LmN0cmxLZXl8fHQub3JpZ2luYWxFdmVudC5tZXRhS2V5fHx0Lm9yaWdpbmFsRXZlbnQuc2hpZnRLZXkpdGhpcy5pZ25vcmVNaXNzaW5nV2hpY2g9ITA7ZWxzZSBpZighdGhpcy5pZ25vcmVNaXNzaW5nV2hpY2gpcmV0dXJuIHRoaXMuX21vdXNlVXAodCl9cmV0dXJuKHQud2hpY2h8fHQuYnV0dG9uKSYmKHRoaXMuX21vdXNlTW92ZWQ9ITApLHRoaXMuX21vdXNlU3RhcnRlZD8odGhpcy5fbW91c2VEcmFnKHQpLHQucHJldmVudERlZmF1bHQoKSk6KHRoaXMuX21vdXNlRGlzdGFuY2VNZXQodCkmJnRoaXMuX21vdXNlRGVsYXlNZXQodCkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEhPT10aGlzLl9tb3VzZVN0YXJ0KHRoaXMuX21vdXNlRG93bkV2ZW50LHQpLHRoaXMuX21vdXNlU3RhcnRlZD90aGlzLl9tb3VzZURyYWcodCk6dGhpcy5fbW91c2VVcCh0KSksIXRoaXMuX21vdXNlU3RhcnRlZCl9LF9tb3VzZVVwOmZ1bmN0aW9uKHQpe3RoaXMuZG9jdW1lbnQub2ZmKFwibW91c2Vtb3ZlLlwiK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKFwibW91c2V1cC5cIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEsdC50YXJnZXQ9PT10aGlzLl9tb3VzZURvd25FdmVudC50YXJnZXQmJlYuZGF0YSh0LnRhcmdldCx0aGlzLndpZGdldE5hbWUrXCIucHJldmVudENsaWNrRXZlbnRcIiwhMCksdGhpcy5fbW91c2VTdG9wKHQpKSx0aGlzLl9tb3VzZURlbGF5VGltZXImJihjbGVhclRpbWVvdXQodGhpcy5fbW91c2VEZWxheVRpbWVyKSxkZWxldGUgdGhpcy5fbW91c2VEZWxheVRpbWVyKSx0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMSxmPSExLHQucHJldmVudERlZmF1bHQoKX0sX21vdXNlRGlzdGFuY2VNZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KE1hdGguYWJzKHRoaXMuX21vdXNlRG93bkV2ZW50LnBhZ2VYLXQucGFnZVgpLE1hdGguYWJzKHRoaXMuX21vdXNlRG93bkV2ZW50LnBhZ2VZLXQucGFnZVkpKT49dGhpcy5vcHRpb25zLmRpc3RhbmNlfSxfbW91c2VEZWxheU1ldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vdXNlRGVsYXlNZXR9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKCl7fSxfbW91c2VEcmFnOmZ1bmN0aW9uKCl7fSxfbW91c2VTdG9wOmZ1bmN0aW9uKCl7fSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksVi51aS5wbHVnaW49e2FkZDpmdW5jdGlvbih0LGUsaSl7dmFyIHMsbj1WLnVpW3RdLnByb3RvdHlwZTtmb3IocyBpbiBpKW4ucGx1Z2luc1tzXT1uLnBsdWdpbnNbc118fFtdLG4ucGx1Z2luc1tzXS5wdXNoKFtlLGlbc11dKX0sY2FsbDpmdW5jdGlvbih0LGUsaSxzKXt2YXIgbixvPXQucGx1Z2luc1tlXTtpZihvJiYoc3x8dC5lbGVtZW50WzBdLnBhcmVudE5vZGUmJjExIT09dC5lbGVtZW50WzBdLnBhcmVudE5vZGUubm9kZVR5cGUpKWZvcihuPTA7bjxvLmxlbmd0aDtuKyspdC5vcHRpb25zW29bbl1bMF1dJiZvW25dWzFdLmFwcGx5KHQuZWxlbWVudCxpKX19LFYudWkuc2FmZUFjdGl2ZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIGk7dHJ5e2k9ZS5hY3RpdmVFbGVtZW50fWNhdGNoKHQpe2k9ZS5ib2R5fXJldHVybihpPWl8fGUuYm9keSkubm9kZU5hbWV8fChpPWUuYm9keSksaX0sVi51aS5zYWZlQmx1cj1mdW5jdGlvbih0KXt0JiZcImJvZHlcIiE9PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmVih0KS50cmlnZ2VyKFwiYmx1clwiKX07Vi53aWRnZXQoXCJ1aS5kcmFnZ2FibGVcIixWLnVpLm1vdXNlLHt2ZXJzaW9uOlwiMS4xMy4yXCIsd2lkZ2V0RXZlbnRQcmVmaXg6XCJkcmFnXCIsb3B0aW9uczp7YWRkQ2xhc3NlczohMCxhcHBlbmRUbzpcInBhcmVudFwiLGF4aXM6ITEsY29ubmVjdFRvU29ydGFibGU6ITEsY29udGFpbm1lbnQ6ITEsY3Vyc29yOlwiYXV0b1wiLGN1cnNvckF0OiExLGdyaWQ6ITEsaGFuZGxlOiExLGhlbHBlcjpcIm9yaWdpbmFsXCIsaWZyYW1lRml4OiExLG9wYWNpdHk6ITEscmVmcmVzaFBvc2l0aW9uczohMSxyZXZlcnQ6ITEscmV2ZXJ0RHVyYXRpb246NTAwLHNjb3BlOlwiZGVmYXVsdFwiLHNjcm9sbDohMCxzY3JvbGxTZW5zaXRpdml0eToyMCxzY3JvbGxTcGVlZDoyMCxzbmFwOiExLHNuYXBNb2RlOlwiYm90aFwiLHNuYXBUb2xlcmFuY2U6MjAsc3RhY2s6ITEsekluZGV4OiExLGRyYWc6bnVsbCxzdGFydDpudWxsLHN0b3A6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe1wib3JpZ2luYWxcIj09PXRoaXMub3B0aW9ucy5oZWxwZXImJnRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKSx0aGlzLm9wdGlvbnMuYWRkQ2xhc3NlcyYmdGhpcy5fYWRkQ2xhc3MoXCJ1aS1kcmFnZ2FibGVcIiksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VJbml0KCl9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXt0aGlzLl9zdXBlcih0LGUpLFwiaGFuZGxlXCI9PT10JiYodGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCkpfSxfZGVzdHJveTpmdW5jdGlvbigpeyh0aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50KS5pcyhcIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmdcIik/dGhpcy5kZXN0cm95T25DbGVhcj0hMDoodGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VEZXN0cm95KCkpfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucztyZXR1cm4hKHRoaXMuaGVscGVyfHxlLmRpc2FibGVkfHwwPFYodC50YXJnZXQpLmNsb3Nlc3QoXCIudWktcmVzaXphYmxlLWhhbmRsZVwiKS5sZW5ndGgpJiYodGhpcy5oYW5kbGU9dGhpcy5fZ2V0SGFuZGxlKHQpLCEhdGhpcy5oYW5kbGUmJih0aGlzLl9ibHVyQWN0aXZlRWxlbWVudCh0KSx0aGlzLl9ibG9ja0ZyYW1lcyghMD09PWUuaWZyYW1lRml4P1wiaWZyYW1lXCI6ZS5pZnJhbWVGaXgpLCEwKSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbih0KXt0aGlzLmlmcmFtZUJsb2Nrcz10aGlzLmRvY3VtZW50LmZpbmQodCkubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKTtyZXR1cm4gVihcIjxkaXY+XCIpLmNzcyhcInBvc2l0aW9uXCIsXCJhYnNvbHV0ZVwiKS5hcHBlbmRUbyh0LnBhcmVudCgpKS5vdXRlcldpZHRoKHQub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodCh0Lm91dGVySGVpZ2h0KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2JsdXJBY3RpdmVFbGVtZW50OmZ1bmN0aW9uKHQpe3ZhciBlPVYudWkuc2FmZUFjdGl2ZUVsZW1lbnQodGhpcy5kb2N1bWVudFswXSk7Vih0LnRhcmdldCkuY2xvc2VzdChlKS5sZW5ndGh8fFYudWkuc2FmZUJsdXIoZSl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucztyZXR1cm4gdGhpcy5oZWxwZXI9dGhpcy5fY3JlYXRlSGVscGVyKHQpLHRoaXMuX2FkZENsYXNzKHRoaXMuaGVscGVyLFwidWktZHJhZ2dhYmxlLWRyYWdnaW5nXCIpLHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSxWLnVpLmRkbWFuYWdlciYmKFYudWkuZGRtYW5hZ2VyLmN1cnJlbnQ9dGhpcyksdGhpcy5fY2FjaGVNYXJnaW5zKCksdGhpcy5jc3NQb3NpdGlvbj10aGlzLmhlbHBlci5jc3MoXCJwb3NpdGlvblwiKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoITApLHRoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpLHRoaXMuaGFzRml4ZWRBbmNlc3Rvcj0wPHRoaXMuaGVscGVyLnBhcmVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm5cImZpeGVkXCI9PT1WKHRoaXMpLmNzcyhcInBvc2l0aW9uXCIpfSkubGVuZ3RoLHRoaXMucG9zaXRpb25BYnM9dGhpcy5lbGVtZW50Lm9mZnNldCgpLHRoaXMuX3JlZnJlc2hPZmZzZXRzKHQpLHRoaXMub3JpZ2luYWxQb3NpdGlvbj10aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCwhMSksdGhpcy5vcmlnaW5hbFBhZ2VYPXQucGFnZVgsdGhpcy5vcmlnaW5hbFBhZ2VZPXQucGFnZVksZS5jdXJzb3JBdCYmdGhpcy5fYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcihlLmN1cnNvckF0KSx0aGlzLl9zZXRDb250YWlubWVudCgpLCExPT09dGhpcy5fdHJpZ2dlcihcInN0YXJ0XCIsdCk/KHRoaXMuX2NsZWFyKCksITEpOih0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksVi51aS5kZG1hbmFnZXImJiFlLmRyb3BCZWhhdmlvdXImJlYudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCksdGhpcy5fbW91c2VEcmFnKHQsITApLFYudWkuZGRtYW5hZ2VyJiZWLnVpLmRkbWFuYWdlci5kcmFnU3RhcnQodGhpcyx0KSwhMCl9LF9yZWZyZXNoT2Zmc2V0czpmdW5jdGlvbih0KXt0aGlzLm9mZnNldD17dG9wOnRoaXMucG9zaXRpb25BYnMudG9wLXRoaXMubWFyZ2lucy50b3AsbGVmdDp0aGlzLnBvc2l0aW9uQWJzLmxlZnQtdGhpcy5tYXJnaW5zLmxlZnQsc2Nyb2xsOiExLHBhcmVudDp0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKSxyZWxhdGl2ZTp0aGlzLl9nZXRSZWxhdGl2ZU9mZnNldCgpfSx0aGlzLm9mZnNldC5jbGljaz17bGVmdDp0LnBhZ2VYLXRoaXMub2Zmc2V0LmxlZnQsdG9wOnQucGFnZVktdGhpcy5vZmZzZXQudG9wfX0sX21vdXNlRHJhZzpmdW5jdGlvbih0LGUpe2lmKHRoaXMuaGFzRml4ZWRBbmNlc3RvciYmKHRoaXMub2Zmc2V0LnBhcmVudD10aGlzLl9nZXRQYXJlbnRPZmZzZXQoKSksdGhpcy5wb3NpdGlvbj10aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKHQsITApLHRoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0aW9uVG8oXCJhYnNvbHV0ZVwiKSwhZSl7ZT10aGlzLl91aUhhc2goKTtpZighMT09PXRoaXMuX3RyaWdnZXIoXCJkcmFnXCIsdCxlKSlyZXR1cm4gdGhpcy5fbW91c2VVcChuZXcgVi5FdmVudChcIm1vdXNldXBcIix0KSksITE7dGhpcy5wb3NpdGlvbj1lLnBvc2l0aW9ufXJldHVybiB0aGlzLmhlbHBlclswXS5zdHlsZS5sZWZ0PXRoaXMucG9zaXRpb24ubGVmdCtcInB4XCIsdGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wK1wicHhcIixWLnVpLmRkbWFuYWdlciYmVi51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLHQpLCExfSxfbW91c2VTdG9wOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT0hMTtyZXR1cm4gVi51aS5kZG1hbmFnZXImJiF0aGlzLm9wdGlvbnMuZHJvcEJlaGF2aW91ciYmKGk9Vi51aS5kZG1hbmFnZXIuZHJvcCh0aGlzLHQpKSx0aGlzLmRyb3BwZWQmJihpPXRoaXMuZHJvcHBlZCx0aGlzLmRyb3BwZWQ9ITEpLFwiaW52YWxpZFwiPT09dGhpcy5vcHRpb25zLnJldmVydCYmIWl8fFwidmFsaWRcIj09PXRoaXMub3B0aW9ucy5yZXZlcnQmJml8fCEwPT09dGhpcy5vcHRpb25zLnJldmVydHx8XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5vcHRpb25zLnJldmVydCYmdGhpcy5vcHRpb25zLnJldmVydC5jYWxsKHRoaXMuZWxlbWVudCxpKT9WKHRoaXMuaGVscGVyKS5hbmltYXRlKHRoaXMub3JpZ2luYWxQb3NpdGlvbixwYXJzZUludCh0aGlzLm9wdGlvbnMucmV2ZXJ0RHVyYXRpb24sMTApLGZ1bmN0aW9uKCl7ITEhPT1lLl90cmlnZ2VyKFwic3RvcFwiLHQpJiZlLl9jbGVhcigpfSk6ITEhPT10aGlzLl90cmlnZ2VyKFwic3RvcFwiLHQpJiZ0aGlzLl9jbGVhcigpLCExfSxfbW91c2VVcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdW5ibG9ja0ZyYW1lcygpLFYudWkuZGRtYW5hZ2VyJiZWLnVpLmRkbWFuYWdlci5kcmFnU3RvcCh0aGlzLHQpLHRoaXMuaGFuZGxlRWxlbWVudC5pcyh0LnRhcmdldCkmJnRoaXMuZWxlbWVudC50cmlnZ2VyKFwiZm9jdXNcIiksVi51aS5tb3VzZS5wcm90b3R5cGUuX21vdXNlVXAuY2FsbCh0aGlzLHQpfSxjYW5jZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWxwZXIuaXMoXCIudWktZHJhZ2dhYmxlLWRyYWdnaW5nXCIpP3RoaXMuX21vdXNlVXAobmV3IFYuRXZlbnQoXCJtb3VzZXVwXCIse3RhcmdldDp0aGlzLmVsZW1lbnRbMF19KSk6dGhpcy5fY2xlYXIoKSx0aGlzfSxfZ2V0SGFuZGxlOmZ1bmN0aW9uKHQpe3JldHVybiF0aGlzLm9wdGlvbnMuaGFuZGxlfHwhIVYodC50YXJnZXQpLmNsb3Nlc3QodGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhhbmRsZSkpLmxlbmd0aH0sX3NldEhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudD10aGlzLm9wdGlvbnMuaGFuZGxlP3RoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5oYW5kbGUpOnRoaXMuZWxlbWVudCx0aGlzLl9hZGRDbGFzcyh0aGlzLmhhbmRsZUVsZW1lbnQsXCJ1aS1kcmFnZ2FibGUtaGFuZGxlXCIpfSxfcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVFbGVtZW50LFwidWktZHJhZ2dhYmxlLWhhbmRsZVwiKX0sX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMsaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmhlbHBlcix0PWk/VihlLmhlbHBlci5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW3RdKSk6XCJjbG9uZVwiPT09ZS5oZWxwZXI/dGhpcy5lbGVtZW50LmNsb25lKCkucmVtb3ZlQXR0cihcImlkXCIpOnRoaXMuZWxlbWVudDtyZXR1cm4gdC5wYXJlbnRzKFwiYm9keVwiKS5sZW5ndGh8fHQuYXBwZW5kVG8oXCJwYXJlbnRcIj09PWUuYXBwZW5kVG8/dGhpcy5lbGVtZW50WzBdLnBhcmVudE5vZGU6ZS5hcHBlbmRUbyksaSYmdFswXT09PXRoaXMuZWxlbWVudFswXSYmdGhpcy5fc2V0UG9zaXRpb25SZWxhdGl2ZSgpLHRbMF09PT10aGlzLmVsZW1lbnRbMF18fC8oZml4ZWR8YWJzb2x1dGUpLy50ZXN0KHQuY3NzKFwicG9zaXRpb25cIikpfHx0LmNzcyhcInBvc2l0aW9uXCIsXCJhYnNvbHV0ZVwiKSx0fSxfc2V0UG9zaXRpb25SZWxhdGl2ZTpmdW5jdGlvbigpey9eKD86cnxhfGYpLy50ZXN0KHRoaXMuZWxlbWVudC5jc3MoXCJwb3NpdGlvblwiKSl8fCh0aGlzLmVsZW1lbnRbMF0uc3R5bGUucG9zaXRpb249XCJyZWxhdGl2ZVwiKX0sX2FkanVzdE9mZnNldEZyb21IZWxwZXI6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PXQuc3BsaXQoXCIgXCIpKSxBcnJheS5pc0FycmF5KHQpJiYodD17bGVmdDordFswXSx0b3A6K3RbMV18fDB9KSxcImxlZnRcImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksXCJyaWdodFwiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10LnJpZ2h0K3RoaXMubWFyZ2lucy5sZWZ0KSxcInRvcFwiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10LnRvcCt0aGlzLm1hcmdpbnMudG9wKSxcImJvdHRvbVwiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2lzUm9vdE5vZGU6ZnVuY3Rpb24odCl7cmV0dXJuLyhodG1sfGJvZHkpL2kudGVzdCh0LnRhZ05hbWUpfHx0PT09dGhpcy5kb2N1bWVudFswXX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpLGU9dGhpcy5kb2N1bWVudFswXTtyZXR1cm5cImFic29sdXRlXCI9PT10aGlzLmNzc1Bvc2l0aW9uJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9PWUmJlYuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pJiYodC5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCksdC50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKSx0aGlzLl9pc1Jvb3ROb2RlKHRoaXMub2Zmc2V0UGFyZW50WzBdKSYmKHQ9e3RvcDowLGxlZnQ6MH0pLHt0b3A6dC50b3ArKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcyhcImJvcmRlclRvcFdpZHRoXCIpLDEwKXx8MCksbGVmdDp0LmxlZnQrKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcyhcImJvcmRlckxlZnRXaWR0aFwiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoXCJyZWxhdGl2ZVwiIT09dGhpcy5jc3NQb3NpdGlvbilyZXR1cm57dG9wOjAsbGVmdDowfTt2YXIgdD10aGlzLmVsZW1lbnQucG9zaXRpb24oKSxlPXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6dC50b3AtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcyhcInRvcFwiKSwxMCl8fDApKyhlPzA6dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCkpLGxlZnQ6dC5sZWZ0LShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoXCJsZWZ0XCIpLDEwKXx8MCkrKGU/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkpfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKFwibWFyZ2luTGVmdFwiKSwxMCl8fDAsdG9wOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoXCJtYXJnaW5Ub3BcIiksMTApfHwwLHJpZ2h0OnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoXCJtYXJnaW5SaWdodFwiKSwxMCl8fDAsYm90dG9tOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoXCJtYXJnaW5Cb3R0b21cIiksMTApfHwwfX0sX2NhY2hlSGVscGVyUHJvcG9ydGlvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlbHBlclByb3BvcnRpb25zPXt3aWR0aDp0aGlzLmhlbHBlci5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuaGVscGVyLm91dGVySGVpZ2h0KCl9fSxfc2V0Q29udGFpbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgdCxlLGkscz10aGlzLm9wdGlvbnMsbj10aGlzLmRvY3VtZW50WzBdO3RoaXMucmVsYXRpdmVDb250YWluZXI9bnVsbCxzLmNvbnRhaW5tZW50P1wid2luZG93XCIhPT1zLmNvbnRhaW5tZW50P1wiZG9jdW1lbnRcIiE9PXMuY29udGFpbm1lbnQ/cy5jb250YWlubWVudC5jb25zdHJ1Y3RvciE9PUFycmF5PyhcInBhcmVudFwiPT09cy5jb250YWlubWVudCYmKHMuY29udGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZSksKGk9KGU9VihzLmNvbnRhaW5tZW50KSlbMF0pJiYodD0vKHNjcm9sbHxhdXRvKS8udGVzdChlLmNzcyhcIm92ZXJmbG93XCIpKSx0aGlzLmNvbnRhaW5tZW50PVsocGFyc2VJbnQoZS5jc3MoXCJib3JkZXJMZWZ0V2lkdGhcIiksMTApfHwwKSsocGFyc2VJbnQoZS5jc3MoXCJwYWRkaW5nTGVmdFwiKSwxMCl8fDApLChwYXJzZUludChlLmNzcyhcImJvcmRlclRvcFdpZHRoXCIpLDEwKXx8MCkrKHBhcnNlSW50KGUuY3NzKFwicGFkZGluZ1RvcFwiKSwxMCl8fDApLCh0P01hdGgubWF4KGkuc2Nyb2xsV2lkdGgsaS5vZmZzZXRXaWR0aCk6aS5vZmZzZXRXaWR0aCktKHBhcnNlSW50KGUuY3NzKFwiYm9yZGVyUmlnaHRXaWR0aFwiKSwxMCl8fDApLShwYXJzZUludChlLmNzcyhcInBhZGRpbmdSaWdodFwiKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQtdGhpcy5tYXJnaW5zLnJpZ2h0LCh0P01hdGgubWF4KGkuc2Nyb2xsSGVpZ2h0LGkub2Zmc2V0SGVpZ2h0KTppLm9mZnNldEhlaWdodCktKHBhcnNlSW50KGUuY3NzKFwiYm9yZGVyQm90dG9tV2lkdGhcIiksMTApfHwwKS0ocGFyc2VJbnQoZS5jc3MoXCJwYWRkaW5nQm90dG9tXCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcC10aGlzLm1hcmdpbnMuYm90dG9tXSx0aGlzLnJlbGF0aXZlQ29udGFpbmVyPWUpKTp0aGlzLmNvbnRhaW5tZW50PXMuY29udGFpbm1lbnQ6dGhpcy5jb250YWlubWVudD1bMCwwLFYobikud2lkdGgoKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lucy5sZWZ0LChWKG4pLmhlaWdodCgpfHxuLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdOnRoaXMuY29udGFpbm1lbnQ9W1Yod2luZG93KS5zY3JvbGxMZWZ0KCktdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCxWKHdpbmRvdykuc2Nyb2xsVG9wKCktdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3AsVih3aW5kb3cpLnNjcm9sbExlZnQoKStWKHdpbmRvdykud2lkdGgoKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lucy5sZWZ0LFYod2luZG93KS5zY3JvbGxUb3AoKSsoVih3aW5kb3cpLmhlaWdodCgpfHxuLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdOnRoaXMuY29udGFpbm1lbnQ9bnVsbH0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKHQsZSl7ZT1lfHx0aGlzLnBvc2l0aW9uO3ZhciBpPVwiYWJzb2x1dGVcIj09PXQ/MTotMSx0PXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6ZS50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKmkrdGhpcy5vZmZzZXQucGFyZW50LnRvcCppLShcImZpeGVkXCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLm9mZnNldC5zY3JvbGwudG9wOnQ/MDp0aGlzLm9mZnNldC5zY3JvbGwudG9wKSppLGxlZnQ6ZS5sZWZ0K3RoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQqaSt0aGlzLm9mZnNldC5wYXJlbnQubGVmdCppLShcImZpeGVkXCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLm9mZnNldC5zY3JvbGwubGVmdDp0PzA6dGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQpKml9fSxfZ2VuZXJhdGVQb3NpdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpLHM9dGhpcy5vcHRpb25zLG49dGhpcy5faXNSb290Tm9kZSh0aGlzLnNjcm9sbFBhcmVudFswXSksbz10LnBhZ2VYLGE9dC5wYWdlWTtyZXR1cm4gbiYmdGhpcy5vZmZzZXQuc2Nyb2xsfHwodGhpcy5vZmZzZXQuc2Nyb2xsPXt0b3A6dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCksbGVmdDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCl9KSxlJiYodGhpcy5jb250YWlubWVudCYmKGk9dGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj8oaT10aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpLFt0aGlzLmNvbnRhaW5tZW50WzBdK2kubGVmdCx0aGlzLmNvbnRhaW5tZW50WzFdK2kudG9wLHRoaXMuY29udGFpbm1lbnRbMl0raS5sZWZ0LHRoaXMuY29udGFpbm1lbnRbM10raS50b3BdKTp0aGlzLmNvbnRhaW5tZW50LHQucGFnZVgtdGhpcy5vZmZzZXQuY2xpY2subGVmdDxpWzBdJiYobz1pWzBdK3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQpLHQucGFnZVktdGhpcy5vZmZzZXQuY2xpY2sudG9wPGlbMV0mJihhPWlbMV0rdGhpcy5vZmZzZXQuY2xpY2sudG9wKSx0LnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+aVsyXSYmKG89aVsyXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSx0LnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD5pWzNdJiYoYT1pWzNdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCkpLHMuZ3JpZCYmKHQ9cy5ncmlkWzFdP3RoaXMub3JpZ2luYWxQYWdlWStNYXRoLnJvdW5kKChhLXRoaXMub3JpZ2luYWxQYWdlWSkvcy5ncmlkWzFdKSpzLmdyaWRbMV06dGhpcy5vcmlnaW5hbFBhZ2VZLGE9IWl8fHQtdGhpcy5vZmZzZXQuY2xpY2sudG9wPj1pWzFdfHx0LXRoaXMub2Zmc2V0LmNsaWNrLnRvcD5pWzNdP3Q6dC10aGlzLm9mZnNldC5jbGljay50b3A+PWlbMV0/dC1zLmdyaWRbMV06dCtzLmdyaWRbMV0sdD1zLmdyaWRbMF0/dGhpcy5vcmlnaW5hbFBhZ2VYK01hdGgucm91bmQoKG8tdGhpcy5vcmlnaW5hbFBhZ2VYKS9zLmdyaWRbMF0pKnMuZ3JpZFswXTp0aGlzLm9yaWdpbmFsUGFnZVgsbz0haXx8dC10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj1pWzBdfHx0LXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+aVsyXT90OnQtdGhpcy5vZmZzZXQuY2xpY2subGVmdD49aVswXT90LXMuZ3JpZFswXTp0K3MuZ3JpZFswXSksXCJ5XCI9PT1zLmF4aXMmJihvPXRoaXMub3JpZ2luYWxQYWdlWCksXCJ4XCI9PT1zLmF4aXMmJihhPXRoaXMub3JpZ2luYWxQYWdlWSkpLHt0b3A6YS10aGlzLm9mZnNldC5jbGljay50b3AtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKFwiZml4ZWRcIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMub2Zmc2V0LnNjcm9sbC50b3A6bj8wOnRoaXMub2Zmc2V0LnNjcm9sbC50b3ApLGxlZnQ6by10aGlzLm9mZnNldC5jbGljay5sZWZ0LXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQrKFwiZml4ZWRcIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0Om4/MDp0aGlzLm9mZnNldC5zY3JvbGwubGVmdCl9fSxfY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhlbHBlcixcInVpLWRyYWdnYWJsZS1kcmFnZ2luZ1wiKSx0aGlzLmhlbHBlclswXT09PXRoaXMuZWxlbWVudFswXXx8dGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsfHx0aGlzLmhlbHBlci5yZW1vdmUoKSx0aGlzLmhlbHBlcj1udWxsLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSx0aGlzLmRlc3Ryb3lPbkNsZWFyJiZ0aGlzLmRlc3Ryb3koKX0sX3RyaWdnZXI6ZnVuY3Rpb24odCxlLGkpe3JldHVybiBpPWl8fHRoaXMuX3VpSGFzaCgpLFYudWkucGx1Z2luLmNhbGwodGhpcyx0LFtlLGksdGhpc10sITApLC9eKGRyYWd8c3RhcnR8c3RvcCkvLnRlc3QodCkmJih0aGlzLnBvc2l0aW9uQWJzPXRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKFwiYWJzb2x1dGVcIiksaS5vZmZzZXQ9dGhpcy5wb3NpdGlvbkFicyksVi5XaWRnZXQucHJvdG90eXBlLl90cmlnZ2VyLmNhbGwodGhpcyx0LGUsaSl9LHBsdWdpbnM6e30sX3VpSGFzaDpmdW5jdGlvbigpe3JldHVybntoZWxwZXI6dGhpcy5oZWxwZXIscG9zaXRpb246dGhpcy5wb3NpdGlvbixvcmlnaW5hbFBvc2l0aW9uOnRoaXMub3JpZ2luYWxQb3NpdGlvbixvZmZzZXQ6dGhpcy5wb3NpdGlvbkFic319fSksVi51aS5wbHVnaW4uYWRkKFwiZHJhZ2dhYmxlXCIsXCJjb25uZWN0VG9Tb3J0YWJsZVwiLHtzdGFydDpmdW5jdGlvbihlLHQsaSl7dmFyIHM9Vi5leHRlbmQoe30sdCx7aXRlbTppLmVsZW1lbnR9KTtpLnNvcnRhYmxlcz1bXSxWKGkub3B0aW9ucy5jb25uZWN0VG9Tb3J0YWJsZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PVYodGhpcykuc29ydGFibGUoXCJpbnN0YW5jZVwiKTt0JiYhdC5vcHRpb25zLmRpc2FibGVkJiYoaS5zb3J0YWJsZXMucHVzaCh0KSx0LnJlZnJlc2hQb3NpdGlvbnMoKSx0Ll90cmlnZ2VyKFwiYWN0aXZhdGVcIixlLHMpKX0pfSxzdG9wOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz1WLmV4dGVuZCh7fSx0LHtpdGVtOmkuZWxlbWVudH0pO2kuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSxWLmVhY2goaS5zb3J0YWJsZXMsZnVuY3Rpb24oKXt2YXIgdD10aGlzO3QuaXNPdmVyPyh0LmlzT3Zlcj0wLGkuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCx0LmNhbmNlbEhlbHBlclJlbW92YWw9ITEsdC5fc3RvcmVkQ1NTPXtwb3NpdGlvbjp0LnBsYWNlaG9sZGVyLmNzcyhcInBvc2l0aW9uXCIpLHRvcDp0LnBsYWNlaG9sZGVyLmNzcyhcInRvcFwiKSxsZWZ0OnQucGxhY2Vob2xkZXIuY3NzKFwibGVmdFwiKX0sdC5fbW91c2VTdG9wKGUpLHQub3B0aW9ucy5oZWxwZXI9dC5vcHRpb25zLl9oZWxwZXIpOih0LmNhbmNlbEhlbHBlclJlbW92YWw9ITAsdC5fdHJpZ2dlcihcImRlYWN0aXZhdGVcIixlLHMpKX0pfSxkcmFnOmZ1bmN0aW9uKGkscyxuKXtWLmVhY2gobi5zb3J0YWJsZXMsZnVuY3Rpb24oKXt2YXIgdD0hMSxlPXRoaXM7ZS5wb3NpdGlvbkFicz1uLnBvc2l0aW9uQWJzLGUuaGVscGVyUHJvcG9ydGlvbnM9bi5oZWxwZXJQcm9wb3J0aW9ucyxlLm9mZnNldC5jbGljaz1uLm9mZnNldC5jbGljayxlLl9pbnRlcnNlY3RzV2l0aChlLmNvbnRhaW5lckNhY2hlKSYmKHQ9ITAsVi5lYWNoKG4uc29ydGFibGVzLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9zaXRpb25BYnM9bi5wb3NpdGlvbkFicyx0aGlzLmhlbHBlclByb3BvcnRpb25zPW4uaGVscGVyUHJvcG9ydGlvbnMsdGhpcy5vZmZzZXQuY2xpY2s9bi5vZmZzZXQuY2xpY2ssdGhpcyE9PWUmJnRoaXMuX2ludGVyc2VjdHNXaXRoKHRoaXMuY29udGFpbmVyQ2FjaGUpJiZWLmNvbnRhaW5zKGUuZWxlbWVudFswXSx0aGlzLmVsZW1lbnRbMF0pJiYodD0hMSksdH0pKSx0PyhlLmlzT3Zlcnx8KGUuaXNPdmVyPTEsbi5fcGFyZW50PXMuaGVscGVyLnBhcmVudCgpLGUuY3VycmVudEl0ZW09cy5oZWxwZXIuYXBwZW5kVG8oZS5lbGVtZW50KS5kYXRhKFwidWktc29ydGFibGUtaXRlbVwiLCEwKSxlLm9wdGlvbnMuX2hlbHBlcj1lLm9wdGlvbnMuaGVscGVyLGUub3B0aW9ucy5oZWxwZXI9ZnVuY3Rpb24oKXtyZXR1cm4gcy5oZWxwZXJbMF19LGkudGFyZ2V0PWUuY3VycmVudEl0ZW1bMF0sZS5fbW91c2VDYXB0dXJlKGksITApLGUuX21vdXNlU3RhcnQoaSwhMCwhMCksZS5vZmZzZXQuY2xpY2sudG9wPW4ub2Zmc2V0LmNsaWNrLnRvcCxlLm9mZnNldC5jbGljay5sZWZ0PW4ub2Zmc2V0LmNsaWNrLmxlZnQsZS5vZmZzZXQucGFyZW50LmxlZnQtPW4ub2Zmc2V0LnBhcmVudC5sZWZ0LWUub2Zmc2V0LnBhcmVudC5sZWZ0LGUub2Zmc2V0LnBhcmVudC50b3AtPW4ub2Zmc2V0LnBhcmVudC50b3AtZS5vZmZzZXQucGFyZW50LnRvcCxuLl90cmlnZ2VyKFwidG9Tb3J0YWJsZVwiLGkpLG4uZHJvcHBlZD1lLmVsZW1lbnQsVi5lYWNoKG4uc29ydGFibGVzLGZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoUG9zaXRpb25zKCl9KSxuLmN1cnJlbnRJdGVtPW4uZWxlbWVudCxlLmZyb21PdXRzaWRlPW4pLGUuY3VycmVudEl0ZW0mJihlLl9tb3VzZURyYWcoaSkscy5wb3NpdGlvbj1lLnBvc2l0aW9uKSk6ZS5pc092ZXImJihlLmlzT3Zlcj0wLGUuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCxlLm9wdGlvbnMuX3JldmVydD1lLm9wdGlvbnMucmV2ZXJ0LGUub3B0aW9ucy5yZXZlcnQ9ITEsZS5fdHJpZ2dlcihcIm91dFwiLGksZS5fdWlIYXNoKGUpKSxlLl9tb3VzZVN0b3AoaSwhMCksZS5vcHRpb25zLnJldmVydD1lLm9wdGlvbnMuX3JldmVydCxlLm9wdGlvbnMuaGVscGVyPWUub3B0aW9ucy5faGVscGVyLGUucGxhY2Vob2xkZXImJmUucGxhY2Vob2xkZXIucmVtb3ZlKCkscy5oZWxwZXIuYXBwZW5kVG8obi5fcGFyZW50KSxuLl9yZWZyZXNoT2Zmc2V0cyhpKSxzLnBvc2l0aW9uPW4uX2dlbmVyYXRlUG9zaXRpb24oaSwhMCksbi5fdHJpZ2dlcihcImZyb21Tb3J0YWJsZVwiLGkpLG4uZHJvcHBlZD0hMSxWLmVhY2gobi5zb3J0YWJsZXMsZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX0pKX0pfX0pLFYudWkucGx1Z2luLmFkZChcImRyYWdnYWJsZVwiLFwiY3Vyc29yXCIse3N0YXJ0OmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz1WKFwiYm9keVwiKSxpPWkub3B0aW9ucztzLmNzcyhcImN1cnNvclwiKSYmKGkuX2N1cnNvcj1zLmNzcyhcImN1cnNvclwiKSkscy5jc3MoXCJjdXJzb3JcIixpLmN1cnNvcil9LHN0b3A6ZnVuY3Rpb24odCxlLGkpe2k9aS5vcHRpb25zO2kuX2N1cnNvciYmVihcImJvZHlcIikuY3NzKFwiY3Vyc29yXCIsaS5fY3Vyc29yKX19KSxWLnVpLnBsdWdpbi5hZGQoXCJkcmFnZ2FibGVcIixcIm9wYWNpdHlcIix7c3RhcnQ6ZnVuY3Rpb24odCxlLGkpe2U9VihlLmhlbHBlciksaT1pLm9wdGlvbnM7ZS5jc3MoXCJvcGFjaXR5XCIpJiYoaS5fb3BhY2l0eT1lLmNzcyhcIm9wYWNpdHlcIikpLGUuY3NzKFwib3BhY2l0eVwiLGkub3BhY2l0eSl9LHN0b3A6ZnVuY3Rpb24odCxlLGkpe2k9aS5vcHRpb25zO2kuX29wYWNpdHkmJlYoZS5oZWxwZXIpLmNzcyhcIm9wYWNpdHlcIixpLl9vcGFjaXR5KX19KSxWLnVpLnBsdWdpbi5hZGQoXCJkcmFnZ2FibGVcIixcInNjcm9sbFwiLHtzdGFydDpmdW5jdGlvbih0LGUsaSl7aS5zY3JvbGxQYXJlbnROb3RIaWRkZW58fChpLnNjcm9sbFBhcmVudE5vdEhpZGRlbj1pLmhlbHBlci5zY3JvbGxQYXJlbnQoITEpKSxpLnNjcm9sbFBhcmVudE5vdEhpZGRlblswXSE9PWkuZG9jdW1lbnRbMF0mJlwiSFRNTFwiIT09aS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0udGFnTmFtZSYmKGkub3ZlcmZsb3dPZmZzZXQ9aS5zY3JvbGxQYXJlbnROb3RIaWRkZW4ub2Zmc2V0KCkpfSxkcmFnOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz1pLm9wdGlvbnMsbj0hMSxvPWkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuWzBdLGE9aS5kb2N1bWVudFswXTtvIT09YSYmXCJIVE1MXCIhPT1vLnRhZ05hbWU/KHMuYXhpcyYmXCJ4XCI9PT1zLmF4aXN8fChpLm92ZXJmbG93T2Zmc2V0LnRvcCtvLm9mZnNldEhlaWdodC10LnBhZ2VZPHMuc2Nyb2xsU2Vuc2l0aXZpdHk/by5zY3JvbGxUb3A9bj1vLnNjcm9sbFRvcCtzLnNjcm9sbFNwZWVkOnQucGFnZVktaS5vdmVyZmxvd09mZnNldC50b3A8cy5zY3JvbGxTZW5zaXRpdml0eSYmKG8uc2Nyb2xsVG9wPW49by5zY3JvbGxUb3Atcy5zY3JvbGxTcGVlZCkpLHMuYXhpcyYmXCJ5XCI9PT1zLmF4aXN8fChpLm92ZXJmbG93T2Zmc2V0LmxlZnQrby5vZmZzZXRXaWR0aC10LnBhZ2VYPHMuc2Nyb2xsU2Vuc2l0aXZpdHk/by5zY3JvbGxMZWZ0PW49by5zY3JvbGxMZWZ0K3Muc2Nyb2xsU3BlZWQ6dC5wYWdlWC1pLm92ZXJmbG93T2Zmc2V0LmxlZnQ8cy5zY3JvbGxTZW5zaXRpdml0eSYmKG8uc2Nyb2xsTGVmdD1uPW8uc2Nyb2xsTGVmdC1zLnNjcm9sbFNwZWVkKSkpOihzLmF4aXMmJlwieFwiPT09cy5heGlzfHwodC5wYWdlWS1WKGEpLnNjcm9sbFRvcCgpPHMuc2Nyb2xsU2Vuc2l0aXZpdHk/bj1WKGEpLnNjcm9sbFRvcChWKGEpLnNjcm9sbFRvcCgpLXMuc2Nyb2xsU3BlZWQpOlYod2luZG93KS5oZWlnaHQoKS0odC5wYWdlWS1WKGEpLnNjcm9sbFRvcCgpKTxzLnNjcm9sbFNlbnNpdGl2aXR5JiYobj1WKGEpLnNjcm9sbFRvcChWKGEpLnNjcm9sbFRvcCgpK3Muc2Nyb2xsU3BlZWQpKSkscy5heGlzJiZcInlcIj09PXMuYXhpc3x8KHQucGFnZVgtVihhKS5zY3JvbGxMZWZ0KCk8cy5zY3JvbGxTZW5zaXRpdml0eT9uPVYoYSkuc2Nyb2xsTGVmdChWKGEpLnNjcm9sbExlZnQoKS1zLnNjcm9sbFNwZWVkKTpWKHdpbmRvdykud2lkdGgoKS0odC5wYWdlWC1WKGEpLnNjcm9sbExlZnQoKSk8cy5zY3JvbGxTZW5zaXRpdml0eSYmKG49VihhKS5zY3JvbGxMZWZ0KFYoYSkuc2Nyb2xsTGVmdCgpK3Muc2Nyb2xsU3BlZWQpKSkpLCExIT09biYmVi51aS5kZG1hbmFnZXImJiFzLmRyb3BCZWhhdmlvdXImJlYudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKGksdCl9fSksVi51aS5wbHVnaW4uYWRkKFwiZHJhZ2dhYmxlXCIsXCJzbmFwXCIse3N0YXJ0OmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz1pLm9wdGlvbnM7aS5zbmFwRWxlbWVudHM9W10sVihzLnNuYXAuY29uc3RydWN0b3IhPT1TdHJpbmc/cy5zbmFwLml0ZW1zfHxcIjpkYXRhKHVpLWRyYWdnYWJsZSlcIjpzLnNuYXApLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLGU9dC5vZmZzZXQoKTt0aGlzIT09aS5lbGVtZW50WzBdJiZpLnNuYXBFbGVtZW50cy5wdXNoKHtpdGVtOnRoaXMsd2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKSx0b3A6ZS50b3AsbGVmdDplLmxlZnR9KX0pfSxkcmFnOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIHMsbixvLGEscixsLGgsYyx1LGQ9aS5vcHRpb25zLHA9ZC5zbmFwVG9sZXJhbmNlLGY9ZS5vZmZzZXQubGVmdCxnPWYraS5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCxtPWUub2Zmc2V0LnRvcCxfPW0raS5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsdj1pLnNuYXBFbGVtZW50cy5sZW5ndGgtMTswPD12O3YtLSlsPShyPWkuc25hcEVsZW1lbnRzW3ZdLmxlZnQtaS5tYXJnaW5zLmxlZnQpK2kuc25hcEVsZW1lbnRzW3ZdLndpZHRoLGM9KGg9aS5zbmFwRWxlbWVudHNbdl0udG9wLWkubWFyZ2lucy50b3ApK2kuc25hcEVsZW1lbnRzW3ZdLmhlaWdodCxnPHItcHx8bCtwPGZ8fF88aC1wfHxjK3A8bXx8IVYuY29udGFpbnMoaS5zbmFwRWxlbWVudHNbdl0uaXRlbS5vd25lckRvY3VtZW50LGkuc25hcEVsZW1lbnRzW3ZdLml0ZW0pPyhpLnNuYXBFbGVtZW50c1t2XS5zbmFwcGluZyYmaS5vcHRpb25zLnNuYXAucmVsZWFzZSYmaS5vcHRpb25zLnNuYXAucmVsZWFzZS5jYWxsKGkuZWxlbWVudCx0LFYuZXh0ZW5kKGkuX3VpSGFzaCgpLHtzbmFwSXRlbTppLnNuYXBFbGVtZW50c1t2XS5pdGVtfSkpLGkuc25hcEVsZW1lbnRzW3ZdLnNuYXBwaW5nPSExKTooXCJpbm5lclwiIT09ZC5zbmFwTW9kZSYmKHM9TWF0aC5hYnMoaC1fKTw9cCxuPU1hdGguYWJzKGMtbSk8PXAsbz1NYXRoLmFicyhyLWcpPD1wLGE9TWF0aC5hYnMobC1mKTw9cCxzJiYoZS5wb3NpdGlvbi50b3A9aS5fY29udmVydFBvc2l0aW9uVG8oXCJyZWxhdGl2ZVwiLHt0b3A6aC1pLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCxsZWZ0OjB9KS50b3ApLG4mJihlLnBvc2l0aW9uLnRvcD1pLl9jb252ZXJ0UG9zaXRpb25UbyhcInJlbGF0aXZlXCIse3RvcDpjLGxlZnQ6MH0pLnRvcCksbyYmKGUucG9zaXRpb24ubGVmdD1pLl9jb252ZXJ0UG9zaXRpb25UbyhcInJlbGF0aXZlXCIse3RvcDowLGxlZnQ6ci1pLmhlbHBlclByb3BvcnRpb25zLndpZHRofSkubGVmdCksYSYmKGUucG9zaXRpb24ubGVmdD1pLl9jb252ZXJ0UG9zaXRpb25UbyhcInJlbGF0aXZlXCIse3RvcDowLGxlZnQ6bH0pLmxlZnQpKSx1PXN8fG58fG98fGEsXCJvdXRlclwiIT09ZC5zbmFwTW9kZSYmKHM9TWF0aC5hYnMoaC1tKTw9cCxuPU1hdGguYWJzKGMtXyk8PXAsbz1NYXRoLmFicyhyLWYpPD1wLGE9TWF0aC5hYnMobC1nKTw9cCxzJiYoZS5wb3NpdGlvbi50b3A9aS5fY29udmVydFBvc2l0aW9uVG8oXCJyZWxhdGl2ZVwiLHt0b3A6aCxsZWZ0OjB9KS50b3ApLG4mJihlLnBvc2l0aW9uLnRvcD1pLl9jb252ZXJ0UG9zaXRpb25UbyhcInJlbGF0aXZlXCIse3RvcDpjLWkuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGxlZnQ6MH0pLnRvcCksbyYmKGUucG9zaXRpb24ubGVmdD1pLl9jb252ZXJ0UG9zaXRpb25UbyhcInJlbGF0aXZlXCIse3RvcDowLGxlZnQ6cn0pLmxlZnQpLGEmJihlLnBvc2l0aW9uLmxlZnQ9aS5fY29udmVydFBvc2l0aW9uVG8oXCJyZWxhdGl2ZVwiLHt0b3A6MCxsZWZ0OmwtaS5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQpKSwhaS5zbmFwRWxlbWVudHNbdl0uc25hcHBpbmcmJihzfHxufHxvfHxhfHx1KSYmaS5vcHRpb25zLnNuYXAuc25hcCYmaS5vcHRpb25zLnNuYXAuc25hcC5jYWxsKGkuZWxlbWVudCx0LFYuZXh0ZW5kKGkuX3VpSGFzaCgpLHtzbmFwSXRlbTppLnNuYXBFbGVtZW50c1t2XS5pdGVtfSkpLGkuc25hcEVsZW1lbnRzW3ZdLnNuYXBwaW5nPXN8fG58fG98fGF8fHUpfX0pLFYudWkucGx1Z2luLmFkZChcImRyYWdnYWJsZVwiLFwic3RhY2tcIix7c3RhcnQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzLGk9aS5vcHRpb25zLGk9Vi5tYWtlQXJyYXkoVihpLnN0YWNrKSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybihwYXJzZUludChWKHQpLmNzcyhcInpJbmRleFwiKSwxMCl8fDApLShwYXJzZUludChWKGUpLmNzcyhcInpJbmRleFwiKSwxMCl8fDApfSk7aS5sZW5ndGgmJihzPXBhcnNlSW50KFYoaVswXSkuY3NzKFwiekluZGV4XCIpLDEwKXx8MCxWKGkpLmVhY2goZnVuY3Rpb24odCl7Vih0aGlzKS5jc3MoXCJ6SW5kZXhcIixzK3QpfSksdGhpcy5jc3MoXCJ6SW5kZXhcIixzK2kubGVuZ3RoKSl9fSksVi51aS5wbHVnaW4uYWRkKFwiZHJhZ2dhYmxlXCIsXCJ6SW5kZXhcIix7c3RhcnQ6ZnVuY3Rpb24odCxlLGkpe2U9VihlLmhlbHBlciksaT1pLm9wdGlvbnM7ZS5jc3MoXCJ6SW5kZXhcIikmJihpLl96SW5kZXg9ZS5jc3MoXCJ6SW5kZXhcIikpLGUuY3NzKFwiekluZGV4XCIsaS56SW5kZXgpfSxzdG9wOmZ1bmN0aW9uKHQsZSxpKXtpPWkub3B0aW9ucztpLl96SW5kZXgmJlYoZS5oZWxwZXIpLmNzcyhcInpJbmRleFwiLGkuX3pJbmRleCl9fSk7Vi51aS5kcmFnZ2FibGU7ZnVuY3Rpb24gZyh0LGUsaSl7cmV0dXJuIGU8PXQmJnQ8ZStpfVYud2lkZ2V0KFwidWkuZHJvcHBhYmxlXCIse3ZlcnNpb246XCIxLjEzLjJcIix3aWRnZXRFdmVudFByZWZpeDpcImRyb3BcIixvcHRpb25zOnthY2NlcHQ6XCIqXCIsYWRkQ2xhc3NlczohMCxncmVlZHk6ITEsc2NvcGU6XCJkZWZhdWx0XCIsdG9sZXJhbmNlOlwiaW50ZXJzZWN0XCIsYWN0aXZhdGU6bnVsbCxkZWFjdGl2YXRlOm51bGwsZHJvcDpudWxsLG91dDpudWxsLG92ZXI6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5vcHRpb25zLGk9ZS5hY2NlcHQ7dGhpcy5pc292ZXI9ITEsdGhpcy5pc291dD0hMCx0aGlzLmFjY2VwdD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBpP2k6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaXMoaSl9LHRoaXMucHJvcG9ydGlvbnM9ZnVuY3Rpb24oKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdD10fHx7d2lkdGg6dGhpcy5lbGVtZW50WzBdLm9mZnNldFdpZHRoLGhlaWdodDp0aGlzLmVsZW1lbnRbMF0ub2Zmc2V0SGVpZ2h0fTt0PWFyZ3VtZW50c1swXX0sdGhpcy5fYWRkVG9NYW5hZ2VyKGUuc2NvcGUpLGUuYWRkQ2xhc3NlcyYmdGhpcy5fYWRkQ2xhc3MoXCJ1aS1kcm9wcGFibGVcIil9LF9hZGRUb01hbmFnZXI6ZnVuY3Rpb24odCl7Vi51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0XT1WLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdfHxbXSxWLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdLnB1c2godGhpcyl9LF9zcGxpY2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXT09PXRoaXMmJnQuc3BsaWNlKGUsMSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9Vi51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZSh0KX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpO1wiYWNjZXB0XCI9PT10P3RoaXMuYWNjZXB0PVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5pcyhlKX06XCJzY29wZVwiPT09dCYmKGk9Vi51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdLHRoaXMuX3NwbGljZShpKSx0aGlzLl9hZGRUb01hbmFnZXIoZSkpLHRoaXMuX3N1cGVyKHQsZSl9LF9hY3RpdmF0ZTpmdW5jdGlvbih0KXt2YXIgZT1WLnVpLmRkbWFuYWdlci5jdXJyZW50O3RoaXMuX2FkZEFjdGl2ZUNsYXNzKCksZSYmdGhpcy5fdHJpZ2dlcihcImFjdGl2YXRlXCIsdCx0aGlzLnVpKGUpKX0sX2RlYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGU9Vi51aS5kZG1hbmFnZXIuY3VycmVudDt0aGlzLl9yZW1vdmVBY3RpdmVDbGFzcygpLGUmJnRoaXMuX3RyaWdnZXIoXCJkZWFjdGl2YXRlXCIsdCx0aGlzLnVpKGUpKX0sX292ZXI6ZnVuY3Rpb24odCl7dmFyIGU9Vi51aS5kZG1hbmFnZXIuY3VycmVudDtlJiYoZS5jdXJyZW50SXRlbXx8ZS5lbGVtZW50KVswXSE9PXRoaXMuZWxlbWVudFswXSYmdGhpcy5hY2NlcHQuY2FsbCh0aGlzLmVsZW1lbnRbMF0sZS5jdXJyZW50SXRlbXx8ZS5lbGVtZW50KSYmKHRoaXMuX2FkZEhvdmVyQ2xhc3MoKSx0aGlzLl90cmlnZ2VyKFwib3ZlclwiLHQsdGhpcy51aShlKSkpfSxfb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPVYudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7ZSYmKGUuY3VycmVudEl0ZW18fGUuZWxlbWVudClbMF0hPT10aGlzLmVsZW1lbnRbMF0mJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLGUuY3VycmVudEl0ZW18fGUuZWxlbWVudCkmJih0aGlzLl9yZW1vdmVIb3ZlckNsYXNzKCksdGhpcy5fdHJpZ2dlcihcIm91dFwiLHQsdGhpcy51aShlKSkpfSxfZHJvcDpmdW5jdGlvbihlLHQpe3ZhciBpPXR8fFYudWkuZGRtYW5hZ2VyLmN1cnJlbnQscz0hMTtyZXR1cm4hKCFpfHwoaS5jdXJyZW50SXRlbXx8aS5lbGVtZW50KVswXT09PXRoaXMuZWxlbWVudFswXSkmJih0aGlzLmVsZW1lbnQuZmluZChcIjpkYXRhKHVpLWRyb3BwYWJsZSlcIikubm90KFwiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZ1wiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKS5kcm9wcGFibGUoXCJpbnN0YW5jZVwiKTtpZih0Lm9wdGlvbnMuZ3JlZWR5JiYhdC5vcHRpb25zLmRpc2FibGVkJiZ0Lm9wdGlvbnMuc2NvcGU9PT1pLm9wdGlvbnMuc2NvcGUmJnQuYWNjZXB0LmNhbGwodC5lbGVtZW50WzBdLGkuY3VycmVudEl0ZW18fGkuZWxlbWVudCkmJlYudWkuaW50ZXJzZWN0KGksVi5leHRlbmQodCx7b2Zmc2V0OnQuZWxlbWVudC5vZmZzZXQoKX0pLHQub3B0aW9ucy50b2xlcmFuY2UsZSkpcmV0dXJuIShzPSEwKX0pLCFzJiYoISF0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpJiYodGhpcy5fcmVtb3ZlQWN0aXZlQ2xhc3MoKSx0aGlzLl9yZW1vdmVIb3ZlckNsYXNzKCksdGhpcy5fdHJpZ2dlcihcImRyb3BcIixlLHRoaXMudWkoaSkpLHRoaXMuZWxlbWVudCkpKX0sdWk6ZnVuY3Rpb24odCl7cmV0dXJue2RyYWdnYWJsZTp0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQsaGVscGVyOnQuaGVscGVyLHBvc2l0aW9uOnQucG9zaXRpb24sb2Zmc2V0OnQucG9zaXRpb25BYnN9fSxfYWRkSG92ZXJDbGFzczpmdW5jdGlvbigpe3RoaXMuX2FkZENsYXNzKFwidWktZHJvcHBhYmxlLWhvdmVyXCIpfSxfcmVtb3ZlSG92ZXJDbGFzczpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUNsYXNzKFwidWktZHJvcHBhYmxlLWhvdmVyXCIpfSxfYWRkQWN0aXZlQ2xhc3M6ZnVuY3Rpb24oKXt0aGlzLl9hZGRDbGFzcyhcInVpLWRyb3BwYWJsZS1hY3RpdmVcIil9LF9yZW1vdmVBY3RpdmVDbGFzczpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUNsYXNzKFwidWktZHJvcHBhYmxlLWFjdGl2ZVwiKX19KSxWLnVpLmludGVyc2VjdD1mdW5jdGlvbih0LGUsaSxzKXtpZighZS5vZmZzZXQpcmV0dXJuITE7dmFyIG49KHQucG9zaXRpb25BYnN8fHQucG9zaXRpb24uYWJzb2x1dGUpLmxlZnQrdC5tYXJnaW5zLmxlZnQsbz0odC5wb3NpdGlvbkFic3x8dC5wb3NpdGlvbi5hYnNvbHV0ZSkudG9wK3QubWFyZ2lucy50b3AsYT1uK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgscj1vK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGw9ZS5vZmZzZXQubGVmdCxoPWUub2Zmc2V0LnRvcCxjPWwrZS5wcm9wb3J0aW9ucygpLndpZHRoLHU9aCtlLnByb3BvcnRpb25zKCkuaGVpZ2h0O3N3aXRjaChpKXtjYXNlXCJmaXRcIjpyZXR1cm4gbDw9biYmYTw9YyYmaDw9byYmcjw9dTtjYXNlXCJpbnRlcnNlY3RcIjpyZXR1cm4gbDxuK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMiYmYS10LmhlbHBlclByb3BvcnRpb25zLndpZHRoLzI8YyYmaDxvK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzImJnItdC5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQvMjx1O2Nhc2VcInBvaW50ZXJcIjpyZXR1cm4gZyhzLnBhZ2VZLGgsZS5wcm9wb3J0aW9ucygpLmhlaWdodCkmJmcocy5wYWdlWCxsLGUucHJvcG9ydGlvbnMoKS53aWR0aCk7Y2FzZVwidG91Y2hcIjpyZXR1cm4oaDw9byYmbzw9dXx8aDw9ciYmcjw9dXx8bzxoJiZ1PHIpJiYobDw9biYmbjw9Y3x8bDw9YSYmYTw9Y3x8bjxsJiZjPGEpO2RlZmF1bHQ6cmV0dXJuITF9fSwhKFYudWkuZGRtYW5hZ2VyPXtjdXJyZW50Om51bGwsZHJvcHBhYmxlczp7ZGVmYXVsdDpbXX0scHJlcGFyZU9mZnNldHM6ZnVuY3Rpb24odCxlKXt2YXIgaSxzLG49Vi51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0Lm9wdGlvbnMuc2NvcGVdfHxbXSxvPWU/ZS50eXBlOm51bGwsYT0odC5jdXJyZW50SXRlbXx8dC5lbGVtZW50KS5maW5kKFwiOmRhdGEodWktZHJvcHBhYmxlKVwiKS5hZGRCYWNrKCk7dDpmb3IoaT0wO2k8bi5sZW5ndGg7aSsrKWlmKCEobltpXS5vcHRpb25zLmRpc2FibGVkfHx0JiYhbltpXS5hY2NlcHQuY2FsbChuW2ldLmVsZW1lbnRbMF0sdC5jdXJyZW50SXRlbXx8dC5lbGVtZW50KSkpe2ZvcihzPTA7czxhLmxlbmd0aDtzKyspaWYoYVtzXT09PW5baV0uZWxlbWVudFswXSl7bltpXS5wcm9wb3J0aW9ucygpLmhlaWdodD0wO2NvbnRpbnVlIHR9bltpXS52aXNpYmxlPVwibm9uZVwiIT09bltpXS5lbGVtZW50LmNzcyhcImRpc3BsYXlcIiksbltpXS52aXNpYmxlJiYoXCJtb3VzZWRvd25cIj09PW8mJm5baV0uX2FjdGl2YXRlLmNhbGwobltpXSxlKSxuW2ldLm9mZnNldD1uW2ldLmVsZW1lbnQub2Zmc2V0KCksbltpXS5wcm9wb3J0aW9ucyh7d2lkdGg6bltpXS5lbGVtZW50WzBdLm9mZnNldFdpZHRoLGhlaWdodDpuW2ldLmVsZW1lbnRbMF0ub2Zmc2V0SGVpZ2h0fSkpfX0sZHJvcDpmdW5jdGlvbih0LGUpe3ZhciBpPSExO3JldHVybiBWLmVhY2goKFYudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10pLnNsaWNlKCksZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMmJighdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLnZpc2libGUmJlYudWkuaW50ZXJzZWN0KHQsdGhpcyx0aGlzLm9wdGlvbnMudG9sZXJhbmNlLGUpJiYoaT10aGlzLl9kcm9wLmNhbGwodGhpcyxlKXx8aSksIXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy52aXNpYmxlJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSx0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQpJiYodGhpcy5pc291dD0hMCx0aGlzLmlzb3Zlcj0hMSx0aGlzLl9kZWFjdGl2YXRlLmNhbGwodGhpcyxlKSkpfSksaX0sZHJhZ1N0YXJ0OmZ1bmN0aW9uKHQsZSl7dC5lbGVtZW50LnBhcmVudHNVbnRpbChcImJvZHlcIikub24oXCJzY3JvbGwuZHJvcHBhYmxlXCIsZnVuY3Rpb24oKXt0Lm9wdGlvbnMucmVmcmVzaFBvc2l0aW9uc3x8Vi51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModCxlKX0pfSxkcmFnOmZ1bmN0aW9uKG4sbyl7bi5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMmJlYudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKG4sbyksVi5lYWNoKFYudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbbi5vcHRpb25zLnNjb3BlXXx8W10sZnVuY3Rpb24oKXt2YXIgdCxlLGksczt0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fHRoaXMuZ3JlZWR5Q2hpbGR8fCF0aGlzLnZpc2libGV8fChzPSEoaT1WLnVpLmludGVyc2VjdChuLHRoaXMsdGhpcy5vcHRpb25zLnRvbGVyYW5jZSxvKSkmJnRoaXMuaXNvdmVyP1wiaXNvdXRcIjppJiYhdGhpcy5pc292ZXI/XCJpc292ZXJcIjpudWxsKSYmKHRoaXMub3B0aW9ucy5ncmVlZHkmJihlPXRoaXMub3B0aW9ucy5zY29wZSwoaT10aGlzLmVsZW1lbnQucGFyZW50cyhcIjpkYXRhKHVpLWRyb3BwYWJsZSlcIikuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIFYodGhpcykuZHJvcHBhYmxlKFwiaW5zdGFuY2VcIikub3B0aW9ucy5zY29wZT09PWV9KSkubGVuZ3RoJiYoKHQ9VihpWzBdKS5kcm9wcGFibGUoXCJpbnN0YW5jZVwiKSkuZ3JlZWR5Q2hpbGQ9XCJpc292ZXJcIj09PXMpKSx0JiZcImlzb3ZlclwiPT09cyYmKHQuaXNvdmVyPSExLHQuaXNvdXQ9ITAsdC5fb3V0LmNhbGwodCxvKSksdGhpc1tzXT0hMCx0aGlzW1wiaXNvdXRcIj09PXM/XCJpc292ZXJcIjpcImlzb3V0XCJdPSExLHRoaXNbXCJpc292ZXJcIj09PXM/XCJfb3ZlclwiOlwiX291dFwiXS5jYWxsKHRoaXMsbyksdCYmXCJpc291dFwiPT09cyYmKHQuaXNvdXQ9ITEsdC5pc292ZXI9ITAsdC5fb3Zlci5jYWxsKHQsbykpKX0pfSxkcmFnU3RvcDpmdW5jdGlvbih0LGUpe3QuZWxlbWVudC5wYXJlbnRzVW50aWwoXCJib2R5XCIpLm9mZihcInNjcm9sbC5kcm9wcGFibGVcIiksdC5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnN8fFYudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHQsZSl9fSkhPT1WLnVpQmFja0NvbXBhdCYmVi53aWRnZXQoXCJ1aS5kcm9wcGFibGVcIixWLnVpLmRyb3BwYWJsZSx7b3B0aW9uczp7aG92ZXJDbGFzczohMSxhY3RpdmVDbGFzczohMX0sX2FkZEFjdGl2ZUNsYXNzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIoKSx0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJnRoaXMuZWxlbWVudC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpfSxfcmVtb3ZlQWN0aXZlQ2xhc3M6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlcigpLHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyYmdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyl9LF9hZGRIb3ZlckNsYXNzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIoKSx0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzKX0sX3JlbW92ZUhvdmVyQ2xhc3M6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlcigpLHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzJiZ0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MpfX0pO1YudWkuZHJvcHBhYmxlO1Yud2lkZ2V0KFwidWkucmVzaXphYmxlXCIsVi51aS5tb3VzZSx7dmVyc2lvbjpcIjEuMTMuMlwiLHdpZGdldEV2ZW50UHJlZml4OlwicmVzaXplXCIsb3B0aW9uczp7YWxzb1Jlc2l6ZTohMSxhbmltYXRlOiExLGFuaW1hdGVEdXJhdGlvbjpcInNsb3dcIixhbmltYXRlRWFzaW5nOlwic3dpbmdcIixhc3BlY3RSYXRpbzohMSxhdXRvSGlkZTohMSxjbGFzc2VzOntcInVpLXJlc2l6YWJsZS1zZVwiOlwidWktaWNvbiB1aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZVwifSxjb250YWlubWVudDohMSxnaG9zdDohMSxncmlkOiExLGhhbmRsZXM6XCJlLHMsc2VcIixoZWxwZXI6ITEsbWF4SGVpZ2h0Om51bGwsbWF4V2lkdGg6bnVsbCxtaW5IZWlnaHQ6MTAsbWluV2lkdGg6MTAsekluZGV4OjkwLHJlc2l6ZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxfbnVtOmZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUZsb2F0KHQpfHwwfSxfaXNOdW1iZXI6ZnVuY3Rpb24odCl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQodCkpfSxfaGFzU2Nyb2xsOmZ1bmN0aW9uKHQsZSl7aWYoXCJoaWRkZW5cIj09PVYodCkuY3NzKFwib3ZlcmZsb3dcIikpcmV0dXJuITE7dmFyIGk9ZSYmXCJsZWZ0XCI9PT1lP1wic2Nyb2xsTGVmdFwiOlwic2Nyb2xsVG9wXCIscz0hMTtpZigwPHRbaV0pcmV0dXJuITA7dHJ5e3RbaV09MSxzPTA8dFtpXSx0W2ldPTB9Y2F0Y2godCl7fXJldHVybiBzfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLm9wdGlvbnMsaT10aGlzO3RoaXMuX2FkZENsYXNzKFwidWktcmVzaXphYmxlXCIpLFYuZXh0ZW5kKHRoaXMse19hc3BlY3RSYXRpbzohIWUuYXNwZWN0UmF0aW8sYXNwZWN0UmF0aW86ZS5hc3BlY3RSYXRpbyxvcmlnaW5hbEVsZW1lbnQ6dGhpcy5lbGVtZW50LF9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzOltdLF9oZWxwZXI6ZS5oZWxwZXJ8fGUuZ2hvc3R8fGUuYW5pbWF0ZT9lLmhlbHBlcnx8XCJ1aS1yZXNpemFibGUtaGVscGVyXCI6bnVsbH0pLHRoaXMuZWxlbWVudFswXS5ub2RlTmFtZS5tYXRjaCgvXihjYW52YXN8dGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbnxpbWcpJC9pKSYmKHRoaXMuZWxlbWVudC53cmFwKFYoXCI8ZGl2IGNsYXNzPSd1aS13cmFwcGVyJz48L2Rpdj5cIikuY3NzKHtvdmVyZmxvdzpcImhpZGRlblwiLHBvc2l0aW9uOnRoaXMuZWxlbWVudC5jc3MoXCJwb3NpdGlvblwiKSx3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSx0b3A6dGhpcy5lbGVtZW50LmNzcyhcInRvcFwiKSxsZWZ0OnRoaXMuZWxlbWVudC5jc3MoXCJsZWZ0XCIpfSkpLHRoaXMuZWxlbWVudD10aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YShcInVpLXJlc2l6YWJsZVwiLHRoaXMuZWxlbWVudC5yZXNpemFibGUoXCJpbnN0YW5jZVwiKSksdGhpcy5lbGVtZW50SXNXcmFwcGVyPSEwLHQ9e21hcmdpblRvcDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoXCJtYXJnaW5Ub3BcIiksbWFyZ2luUmlnaHQ6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKFwibWFyZ2luUmlnaHRcIiksbWFyZ2luQm90dG9tOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyhcIm1hcmdpbkJvdHRvbVwiKSxtYXJnaW5MZWZ0OnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyhcIm1hcmdpbkxlZnRcIil9LHRoaXMuZWxlbWVudC5jc3ModCksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKFwibWFyZ2luXCIsMCksdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlPXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyhcInJlc2l6ZVwiKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoXCJyZXNpemVcIixcIm5vbmVcIiksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5wdXNoKHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyh7cG9zaXRpb246XCJzdGF0aWNcIix6b29tOjEsZGlzcGxheTpcImJsb2NrXCJ9KSksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHQpLHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLHRoaXMuX3NldHVwSGFuZGxlcygpLGUuYXV0b0hpZGUmJlYodGhpcy5lbGVtZW50KS5vbihcIm1vdXNlZW50ZXJcIixmdW5jdGlvbigpe2UuZGlzYWJsZWR8fChpLl9yZW1vdmVDbGFzcyhcInVpLXJlc2l6YWJsZS1hdXRvaGlkZVwiKSxpLl9oYW5kbGVzLnNob3coKSl9KS5vbihcIm1vdXNlbGVhdmVcIixmdW5jdGlvbigpe2UuZGlzYWJsZWR8fGkucmVzaXppbmd8fChpLl9hZGRDbGFzcyhcInVpLXJlc2l6YWJsZS1hdXRvaGlkZVwiKSxpLl9oYW5kbGVzLmhpZGUoKSl9KSx0aGlzLl9tb3VzZUluaXQoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZURlc3Ryb3koKSx0aGlzLl9hZGRlZEhhbmRsZXMucmVtb3ZlKCk7ZnVuY3Rpb24gdCh0KXtWKHQpLnJlbW92ZURhdGEoXCJyZXNpemFibGVcIikucmVtb3ZlRGF0YShcInVpLXJlc2l6YWJsZVwiKS5vZmYoXCIucmVzaXphYmxlXCIpfXZhciBlO3JldHVybiB0aGlzLmVsZW1lbnRJc1dyYXBwZXImJih0KHRoaXMuZWxlbWVudCksZT10aGlzLmVsZW1lbnQsdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHtwb3NpdGlvbjplLmNzcyhcInBvc2l0aW9uXCIpLHdpZHRoOmUub3V0ZXJXaWR0aCgpLGhlaWdodDplLm91dGVySGVpZ2h0KCksdG9wOmUuY3NzKFwidG9wXCIpLGxlZnQ6ZS5jc3MoXCJsZWZ0XCIpfSkuaW5zZXJ0QWZ0ZXIoZSksZS5yZW1vdmUoKSksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKFwicmVzaXplXCIsdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlKSx0KHRoaXMub3JpZ2luYWxFbGVtZW50KSx0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3N1cGVyKHQsZSksdCl7Y2FzZVwiaGFuZGxlc1wiOnRoaXMuX3JlbW92ZUhhbmRsZXMoKSx0aGlzLl9zZXR1cEhhbmRsZXMoKTticmVhaztjYXNlXCJhc3BlY3RSYXRpb1wiOnRoaXMuX2FzcGVjdFJhdGlvPSEhZX19LF9zZXR1cEhhbmRsZXM6ZnVuY3Rpb24oKXt2YXIgdCxlLGkscyxuLG89dGhpcy5vcHRpb25zLGE9dGhpcztpZih0aGlzLmhhbmRsZXM9by5oYW5kbGVzfHwoVihcIi51aS1yZXNpemFibGUtaGFuZGxlXCIsdGhpcy5lbGVtZW50KS5sZW5ndGg/e246XCIudWktcmVzaXphYmxlLW5cIixlOlwiLnVpLXJlc2l6YWJsZS1lXCIsczpcIi51aS1yZXNpemFibGUtc1wiLHc6XCIudWktcmVzaXphYmxlLXdcIixzZTpcIi51aS1yZXNpemFibGUtc2VcIixzdzpcIi51aS1yZXNpemFibGUtc3dcIixuZTpcIi51aS1yZXNpemFibGUtbmVcIixudzpcIi51aS1yZXNpemFibGUtbndcIn06XCJlLHMsc2VcIiksdGhpcy5faGFuZGxlcz1WKCksdGhpcy5fYWRkZWRIYW5kbGVzPVYoKSx0aGlzLmhhbmRsZXMuY29uc3RydWN0b3I9PT1TdHJpbmcpZm9yKFwiYWxsXCI9PT10aGlzLmhhbmRsZXMmJih0aGlzLmhhbmRsZXM9XCJuLGUscyx3LHNlLHN3LG5lLG53XCIpLGk9dGhpcy5oYW5kbGVzLnNwbGl0KFwiLFwiKSx0aGlzLmhhbmRsZXM9e30sZT0wO2U8aS5sZW5ndGg7ZSsrKXM9XCJ1aS1yZXNpemFibGUtXCIrKHQ9U3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoaVtlXSkpLG49VihcIjxkaXY+XCIpLHRoaXMuX2FkZENsYXNzKG4sXCJ1aS1yZXNpemFibGUtaGFuZGxlIFwiK3MpLG4uY3NzKHt6SW5kZXg6by56SW5kZXh9KSx0aGlzLmhhbmRsZXNbdF09XCIudWktcmVzaXphYmxlLVwiK3QsdGhpcy5lbGVtZW50LmNoaWxkcmVuKHRoaXMuaGFuZGxlc1t0XSkubGVuZ3RofHwodGhpcy5lbGVtZW50LmFwcGVuZChuKSx0aGlzLl9hZGRlZEhhbmRsZXM9dGhpcy5fYWRkZWRIYW5kbGVzLmFkZChuKSk7dGhpcy5fcmVuZGVyQXhpcz1mdW5jdGlvbih0KXt2YXIgZSxpLHM7Zm9yKGUgaW4gdD10fHx0aGlzLmVsZW1lbnQsdGhpcy5oYW5kbGVzKXRoaXMuaGFuZGxlc1tlXS5jb25zdHJ1Y3Rvcj09PVN0cmluZz90aGlzLmhhbmRsZXNbZV09dGhpcy5lbGVtZW50LmNoaWxkcmVuKHRoaXMuaGFuZGxlc1tlXSkuZmlyc3QoKS5zaG93KCk6KHRoaXMuaGFuZGxlc1tlXS5qcXVlcnl8fHRoaXMuaGFuZGxlc1tlXS5ub2RlVHlwZSkmJih0aGlzLmhhbmRsZXNbZV09Vih0aGlzLmhhbmRsZXNbZV0pLHRoaXMuX29uKHRoaXMuaGFuZGxlc1tlXSx7bW91c2Vkb3duOmEuX21vdXNlRG93bn0pKSx0aGlzLmVsZW1lbnRJc1dyYXBwZXImJnRoaXMub3JpZ2luYWxFbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9eKHRleHRhcmVhfGlucHV0fHNlbGVjdHxidXR0b24pJC9pKSYmKGk9Vih0aGlzLmhhbmRsZXNbZV0sdGhpcy5lbGVtZW50KSxzPS9zd3xuZXxud3xzZXxufHMvLnRlc3QoZSk/aS5vdXRlckhlaWdodCgpOmkub3V0ZXJXaWR0aCgpLGk9W1wicGFkZGluZ1wiLC9uZXxud3xuLy50ZXN0KGUpP1wiVG9wXCI6L3NlfHN3fHMvLnRlc3QoZSk/XCJCb3R0b21cIjovXmUkLy50ZXN0KGUpP1wiUmlnaHRcIjpcIkxlZnRcIl0uam9pbihcIlwiKSx0LmNzcyhpLHMpLHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLHRoaXMuX2hhbmRsZXM9dGhpcy5faGFuZGxlcy5hZGQodGhpcy5oYW5kbGVzW2VdKX0sdGhpcy5fcmVuZGVyQXhpcyh0aGlzLmVsZW1lbnQpLHRoaXMuX2hhbmRsZXM9dGhpcy5faGFuZGxlcy5hZGQodGhpcy5lbGVtZW50LmZpbmQoXCIudWktcmVzaXphYmxlLWhhbmRsZVwiKSksdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCksdGhpcy5faGFuZGxlcy5vbihcIm1vdXNlb3ZlclwiLGZ1bmN0aW9uKCl7YS5yZXNpemluZ3x8KHRoaXMuY2xhc3NOYW1lJiYobj10aGlzLmNsYXNzTmFtZS5tYXRjaCgvdWktcmVzaXphYmxlLShzZXxzd3xuZXxud3xufGV8c3x3KS9pKSksYS5heGlzPW4mJm5bMV0/blsxXTpcInNlXCIpfSksby5hdXRvSGlkZSYmKHRoaXMuX2hhbmRsZXMuaGlkZSgpLHRoaXMuX2FkZENsYXNzKFwidWktcmVzaXphYmxlLWF1dG9oaWRlXCIpKX0sX3JlbW92ZUhhbmRsZXM6ZnVuY3Rpb24oKXt0aGlzLl9hZGRlZEhhbmRsZXMucmVtb3ZlKCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzPSExO2ZvcihlIGluIHRoaXMuaGFuZGxlcykoaT1WKHRoaXMuaGFuZGxlc1tlXSlbMF0pIT09dC50YXJnZXQmJiFWLmNvbnRhaW5zKGksdC50YXJnZXQpfHwocz0hMCk7cmV0dXJuIXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmc30sX21vdXNlU3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxzPXRoaXMub3B0aW9ucyxuPXRoaXMuZWxlbWVudDtyZXR1cm4gdGhpcy5yZXNpemluZz0hMCx0aGlzLl9yZW5kZXJQcm94eSgpLGU9dGhpcy5fbnVtKHRoaXMuaGVscGVyLmNzcyhcImxlZnRcIikpLGk9dGhpcy5fbnVtKHRoaXMuaGVscGVyLmNzcyhcInRvcFwiKSkscy5jb250YWlubWVudCYmKGUrPVYocy5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwLGkrPVYocy5jb250YWlubWVudCkuc2Nyb2xsVG9wKCl8fDApLHRoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMucG9zaXRpb249e2xlZnQ6ZSx0b3A6aX0sdGhpcy5zaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6dGhpcy5oZWxwZXIud2lkdGgoKSxoZWlnaHQ6dGhpcy5oZWxwZXIuaGVpZ2h0KCl9Ont3aWR0aDpuLndpZHRoKCksaGVpZ2h0Om4uaGVpZ2h0KCl9LHRoaXMub3JpZ2luYWxTaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6bi5vdXRlcldpZHRoKCksaGVpZ2h0Om4ub3V0ZXJIZWlnaHQoKX06e3dpZHRoOm4ud2lkdGgoKSxoZWlnaHQ6bi5oZWlnaHQoKX0sdGhpcy5zaXplRGlmZj17d2lkdGg6bi5vdXRlcldpZHRoKCktbi53aWR0aCgpLGhlaWdodDpuLm91dGVySGVpZ2h0KCktbi5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtsZWZ0OmUsdG9wOml9LHRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uPXtsZWZ0OnQucGFnZVgsdG9wOnQucGFnZVl9LHRoaXMuYXNwZWN0UmF0aW89XCJudW1iZXJcIj09dHlwZW9mIHMuYXNwZWN0UmF0aW8/cy5hc3BlY3RSYXRpbzp0aGlzLm9yaWdpbmFsU2l6ZS53aWR0aC90aGlzLm9yaWdpbmFsU2l6ZS5oZWlnaHR8fDEscz1WKFwiLnVpLXJlc2l6YWJsZS1cIit0aGlzLmF4aXMpLmNzcyhcImN1cnNvclwiKSxWKFwiYm9keVwiKS5jc3MoXCJjdXJzb3JcIixcImF1dG9cIj09PXM/dGhpcy5heGlzK1wiLXJlc2l6ZVwiOnMpLHRoaXMuX2FkZENsYXNzKFwidWktcmVzaXphYmxlLXJlc2l6aW5nXCIpLHRoaXMuX3Byb3BhZ2F0ZShcInN0YXJ0XCIsdCksITB9LF9tb3VzZURyYWc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24saT10aGlzLmF4aXMscz10LnBhZ2VYLWUubGVmdHx8MCxlPXQucGFnZVktZS50b3B8fDAsaT10aGlzLl9jaGFuZ2VbaV07cmV0dXJuIHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksaSYmKGU9aS5hcHBseSh0aGlzLFt0LHMsZV0pLHRoaXMuX3VwZGF0ZVZpcnR1YWxCb3VuZGFyaWVzKHQuc2hpZnRLZXkpLCh0aGlzLl9hc3BlY3RSYXRpb3x8dC5zaGlmdEtleSkmJihlPXRoaXMuX3VwZGF0ZVJhdGlvKGUsdCkpLGU9dGhpcy5fcmVzcGVjdFNpemUoZSx0KSx0aGlzLl91cGRhdGVDYWNoZShlKSx0aGlzLl9wcm9wYWdhdGUoXCJyZXNpemVcIix0KSxlPXRoaXMuX2FwcGx5Q2hhbmdlcygpLCF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpLFYuaXNFbXB0eU9iamVjdChlKXx8KHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksdGhpcy5fdHJpZ2dlcihcInJlc2l6ZVwiLHQsdGhpcy51aSgpKSx0aGlzLl9hcHBseUNoYW5nZXMoKSkpLCExfSxfbW91c2VTdG9wOmZ1bmN0aW9uKHQpe3RoaXMucmVzaXppbmc9ITE7dmFyIGUsaSxzLG49dGhpcy5vcHRpb25zLG89dGhpcztyZXR1cm4gdGhpcy5faGVscGVyJiYocz0oZT0oaT10aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzKS5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoaVswXS5ub2RlTmFtZSkpJiZ0aGlzLl9oYXNTY3JvbGwoaVswXSxcImxlZnRcIik/MDpvLnNpemVEaWZmLmhlaWdodCxpPWU/MDpvLnNpemVEaWZmLndpZHRoLGU9e3dpZHRoOm8uaGVscGVyLndpZHRoKCktaSxoZWlnaHQ6by5oZWxwZXIuaGVpZ2h0KCktc30saT1wYXJzZUZsb2F0KG8uZWxlbWVudC5jc3MoXCJsZWZ0XCIpKSsoby5wb3NpdGlvbi5sZWZ0LW8ub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KXx8bnVsbCxzPXBhcnNlRmxvYXQoby5lbGVtZW50LmNzcyhcInRvcFwiKSkrKG8ucG9zaXRpb24udG9wLW8ub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsLG4uYW5pbWF0ZXx8dGhpcy5lbGVtZW50LmNzcyhWLmV4dGVuZChlLHt0b3A6cyxsZWZ0Oml9KSksby5oZWxwZXIuaGVpZ2h0KG8uc2l6ZS5oZWlnaHQpLG8uaGVscGVyLndpZHRoKG8uc2l6ZS53aWR0aCksdGhpcy5faGVscGVyJiYhbi5hbmltYXRlJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpKSxWKFwiYm9keVwiKS5jc3MoXCJjdXJzb3JcIixcImF1dG9cIiksdGhpcy5fcmVtb3ZlQ2xhc3MoXCJ1aS1yZXNpemFibGUtcmVzaXppbmdcIiksdGhpcy5fcHJvcGFnYXRlKFwic3RvcFwiLHQpLHRoaXMuX2hlbHBlciYmdGhpcy5oZWxwZXIucmVtb3ZlKCksITF9LF91cGRhdGVQcmV2UHJvcGVydGllczpmdW5jdGlvbigpe3RoaXMucHJldlBvc2l0aW9uPXt0b3A6dGhpcy5wb3NpdGlvbi50b3AsbGVmdDp0aGlzLnBvc2l0aW9uLmxlZnR9LHRoaXMucHJldlNpemU9e3dpZHRoOnRoaXMuc2l6ZS53aWR0aCxoZWlnaHQ6dGhpcy5zaXplLmhlaWdodH19LF9hcHBseUNoYW5nZXM6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5wb3NpdGlvbi50b3AhPT10aGlzLnByZXZQb3NpdGlvbi50b3AmJih0LnRvcD10aGlzLnBvc2l0aW9uLnRvcCtcInB4XCIpLHRoaXMucG9zaXRpb24ubGVmdCE9PXRoaXMucHJldlBvc2l0aW9uLmxlZnQmJih0LmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0K1wicHhcIiksdGhpcy5zaXplLndpZHRoIT09dGhpcy5wcmV2U2l6ZS53aWR0aCYmKHQud2lkdGg9dGhpcy5zaXplLndpZHRoK1wicHhcIiksdGhpcy5zaXplLmhlaWdodCE9PXRoaXMucHJldlNpemUuaGVpZ2h0JiYodC5oZWlnaHQ9dGhpcy5zaXplLmhlaWdodCtcInB4XCIpLHRoaXMuaGVscGVyLmNzcyh0KSx0fSxfdXBkYXRlVmlydHVhbEJvdW5kYXJpZXM6ZnVuY3Rpb24odCl7dmFyIGUsaSxzPXRoaXMub3B0aW9ucyxuPXttaW5XaWR0aDp0aGlzLl9pc051bWJlcihzLm1pbldpZHRoKT9zLm1pbldpZHRoOjAsbWF4V2lkdGg6dGhpcy5faXNOdW1iZXIocy5tYXhXaWR0aCk/cy5tYXhXaWR0aDoxLzAsbWluSGVpZ2h0OnRoaXMuX2lzTnVtYmVyKHMubWluSGVpZ2h0KT9zLm1pbkhlaWdodDowLG1heEhlaWdodDp0aGlzLl9pc051bWJlcihzLm1heEhlaWdodCk/cy5tYXhIZWlnaHQ6MS8wfTsodGhpcy5fYXNwZWN0UmF0aW98fHQpJiYoZT1uLm1pbkhlaWdodCp0aGlzLmFzcGVjdFJhdGlvLGk9bi5taW5XaWR0aC90aGlzLmFzcGVjdFJhdGlvLHM9bi5tYXhIZWlnaHQqdGhpcy5hc3BlY3RSYXRpbyx0PW4ubWF4V2lkdGgvdGhpcy5hc3BlY3RSYXRpbyxlPm4ubWluV2lkdGgmJihuLm1pbldpZHRoPWUpLGk+bi5taW5IZWlnaHQmJihuLm1pbkhlaWdodD1pKSxzPG4ubWF4V2lkdGgmJihuLm1heFdpZHRoPXMpLHQ8bi5tYXhIZWlnaHQmJihuLm1heEhlaWdodD10KSksdGhpcy5fdkJvdW5kYXJpZXM9bn0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKHQpe3RoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMuX2lzTnVtYmVyKHQubGVmdCkmJih0aGlzLnBvc2l0aW9uLmxlZnQ9dC5sZWZ0KSx0aGlzLl9pc051bWJlcih0LnRvcCkmJih0aGlzLnBvc2l0aW9uLnRvcD10LnRvcCksdGhpcy5faXNOdW1iZXIodC5oZWlnaHQpJiYodGhpcy5zaXplLmhlaWdodD10LmhlaWdodCksdGhpcy5faXNOdW1iZXIodC53aWR0aCkmJih0aGlzLnNpemUud2lkdGg9dC53aWR0aCl9LF91cGRhdGVSYXRpbzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnBvc2l0aW9uLGk9dGhpcy5zaXplLHM9dGhpcy5heGlzO3JldHVybiB0aGlzLl9pc051bWJlcih0LmhlaWdodCk/dC53aWR0aD10LmhlaWdodCp0aGlzLmFzcGVjdFJhdGlvOnRoaXMuX2lzTnVtYmVyKHQud2lkdGgpJiYodC5oZWlnaHQ9dC53aWR0aC90aGlzLmFzcGVjdFJhdGlvKSxcInN3XCI9PT1zJiYodC5sZWZ0PWUubGVmdCsoaS53aWR0aC10LndpZHRoKSx0LnRvcD1udWxsKSxcIm53XCI9PT1zJiYodC50b3A9ZS50b3ArKGkuaGVpZ2h0LXQuaGVpZ2h0KSx0LmxlZnQ9ZS5sZWZ0KyhpLndpZHRoLXQud2lkdGgpKSx0fSxfcmVzcGVjdFNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdkJvdW5kYXJpZXMsaT10aGlzLmF4aXMscz10aGlzLl9pc051bWJlcih0LndpZHRoKSYmZS5tYXhXaWR0aCYmZS5tYXhXaWR0aDx0LndpZHRoLG49dGhpcy5faXNOdW1iZXIodC5oZWlnaHQpJiZlLm1heEhlaWdodCYmZS5tYXhIZWlnaHQ8dC5oZWlnaHQsbz10aGlzLl9pc051bWJlcih0LndpZHRoKSYmZS5taW5XaWR0aCYmZS5taW5XaWR0aD50LndpZHRoLGE9dGhpcy5faXNOdW1iZXIodC5oZWlnaHQpJiZlLm1pbkhlaWdodCYmZS5taW5IZWlnaHQ+dC5oZWlnaHQscj10aGlzLm9yaWdpbmFsUG9zaXRpb24ubGVmdCt0aGlzLm9yaWdpbmFsU2l6ZS53aWR0aCxsPXRoaXMub3JpZ2luYWxQb3NpdGlvbi50b3ArdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0LGg9L3N3fG53fHcvLnRlc3QoaSksaT0vbnd8bmV8bi8udGVzdChpKTtyZXR1cm4gbyYmKHQud2lkdGg9ZS5taW5XaWR0aCksYSYmKHQuaGVpZ2h0PWUubWluSGVpZ2h0KSxzJiYodC53aWR0aD1lLm1heFdpZHRoKSxuJiYodC5oZWlnaHQ9ZS5tYXhIZWlnaHQpLG8mJmgmJih0LmxlZnQ9ci1lLm1pbldpZHRoKSxzJiZoJiYodC5sZWZ0PXItZS5tYXhXaWR0aCksYSYmaSYmKHQudG9wPWwtZS5taW5IZWlnaHQpLG4mJmkmJih0LnRvcD1sLWUubWF4SGVpZ2h0KSx0LndpZHRofHx0LmhlaWdodHx8dC5sZWZ0fHwhdC50b3A/dC53aWR0aHx8dC5oZWlnaHR8fHQudG9wfHwhdC5sZWZ0fHwodC5sZWZ0PW51bGwpOnQudG9wPW51bGwsdH0sX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9uczpmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxpPVtdLHM9W3QuY3NzKFwiYm9yZGVyVG9wV2lkdGhcIiksdC5jc3MoXCJib3JkZXJSaWdodFdpZHRoXCIpLHQuY3NzKFwiYm9yZGVyQm90dG9tV2lkdGhcIiksdC5jc3MoXCJib3JkZXJMZWZ0V2lkdGhcIildLG49W3QuY3NzKFwicGFkZGluZ1RvcFwiKSx0LmNzcyhcInBhZGRpbmdSaWdodFwiKSx0LmNzcyhcInBhZGRpbmdCb3R0b21cIiksdC5jc3MoXCJwYWRkaW5nTGVmdFwiKV07ZTw0O2UrKylpW2VdPXBhcnNlRmxvYXQoc1tlXSl8fDAsaVtlXSs9cGFyc2VGbG9hdChuW2VdKXx8MDtyZXR1cm57aGVpZ2h0OmlbMF0raVsyXSx3aWR0aDppWzFdK2lbM119fSxfcHJvcG9ydGlvbmFsbHlSZXNpemU6ZnVuY3Rpb24oKXtpZih0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLmxlbmd0aClmb3IodmFyIHQsZT0wLGk9dGhpcy5oZWxwZXJ8fHRoaXMuZWxlbWVudDtlPHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoO2UrKyl0PXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHNbZV0sdGhpcy5vdXRlckRpbWVuc2lvbnN8fCh0aGlzLm91dGVyRGltZW5zaW9ucz10aGlzLl9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnModCkpLHQuY3NzKHtoZWlnaHQ6aS5oZWlnaHQoKS10aGlzLm91dGVyRGltZW5zaW9ucy5oZWlnaHR8fDAsd2lkdGg6aS53aWR0aCgpLXRoaXMub3V0ZXJEaW1lbnNpb25zLndpZHRofHwwfSl9LF9yZW5kZXJQcm94eTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudCxlPXRoaXMub3B0aW9uczt0aGlzLmVsZW1lbnRPZmZzZXQ9dC5vZmZzZXQoKSx0aGlzLl9oZWxwZXI/KHRoaXMuaGVscGVyPXRoaXMuaGVscGVyfHxWKFwiPGRpdj48L2Rpdj5cIikuY3NzKHtvdmVyZmxvdzpcImhpZGRlblwifSksdGhpcy5fYWRkQ2xhc3ModGhpcy5oZWxwZXIsdGhpcy5faGVscGVyKSx0aGlzLmhlbHBlci5jc3Moe3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLHBvc2l0aW9uOlwiYWJzb2x1dGVcIixsZWZ0OnRoaXMuZWxlbWVudE9mZnNldC5sZWZ0K1wicHhcIix0b3A6dGhpcy5lbGVtZW50T2Zmc2V0LnRvcCtcInB4XCIsekluZGV4OisrZS56SW5kZXh9KSx0aGlzLmhlbHBlci5hcHBlbmRUbyhcImJvZHlcIikuZGlzYWJsZVNlbGVjdGlvbigpKTp0aGlzLmhlbHBlcj10aGlzLmVsZW1lbnR9LF9jaGFuZ2U6e2U6ZnVuY3Rpb24odCxlKXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrZX19LHc6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLm9yaWdpbmFsU2l6ZTtyZXR1cm57bGVmdDp0aGlzLm9yaWdpbmFsUG9zaXRpb24ubGVmdCtlLHdpZHRoOmkud2lkdGgtZX19LG46ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMub3JpZ2luYWxTaXplO3JldHVybnt0b3A6dGhpcy5vcmlnaW5hbFBvc2l0aW9uLnRvcCtpLGhlaWdodDpzLmhlaWdodC1pfX0sczpmdW5jdGlvbih0LGUsaSl7cmV0dXJue2hlaWdodDp0aGlzLm9yaWdpbmFsU2l6ZS5oZWlnaHQraX19LHNlOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gVi5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS5lLmFwcGx5KHRoaXMsW3QsZSxpXSkpfSxzdzpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIFYuZXh0ZW5kKHRoaXMuX2NoYW5nZS5zLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2Uudy5hcHBseSh0aGlzLFt0LGUsaV0pKX0sbmU6ZnVuY3Rpb24odCxlLGkpe3JldHVybiBWLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcyxbdCxlLGldKSl9LG53OmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gVi5leHRlbmQodGhpcy5fY2hhbmdlLm4uYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsW3QsZSxpXSkpfX0sX3Byb3BhZ2F0ZTpmdW5jdGlvbih0LGUpe1YudWkucGx1Z2luLmNhbGwodGhpcyx0LFtlLHRoaXMudWkoKV0pLFwicmVzaXplXCIhPT10JiZ0aGlzLl90cmlnZ2VyKHQsZSx0aGlzLnVpKCkpfSxwbHVnaW5zOnt9LHVpOmZ1bmN0aW9uKCl7cmV0dXJue29yaWdpbmFsRWxlbWVudDp0aGlzLm9yaWdpbmFsRWxlbWVudCxlbGVtZW50OnRoaXMuZWxlbWVudCxoZWxwZXI6dGhpcy5oZWxwZXIscG9zaXRpb246dGhpcy5wb3NpdGlvbixzaXplOnRoaXMuc2l6ZSxvcmlnaW5hbFNpemU6dGhpcy5vcmlnaW5hbFNpemUsb3JpZ2luYWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb259fX0pLFYudWkucGx1Z2luLmFkZChcInJlc2l6YWJsZVwiLFwiYW5pbWF0ZVwiLHtzdG9wOmZ1bmN0aW9uKGUpe3ZhciBpPVYodGhpcykucmVzaXphYmxlKFwiaW5zdGFuY2VcIiksdD1pLm9wdGlvbnMscz1pLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLG49cy5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3Qoc1swXS5ub2RlTmFtZSksbz1uJiZpLl9oYXNTY3JvbGwoc1swXSxcImxlZnRcIik/MDppLnNpemVEaWZmLmhlaWdodCxhPW4/MDppLnNpemVEaWZmLndpZHRoLG49e3dpZHRoOmkuc2l6ZS53aWR0aC1hLGhlaWdodDppLnNpemUuaGVpZ2h0LW99LGE9cGFyc2VGbG9hdChpLmVsZW1lbnQuY3NzKFwibGVmdFwiKSkrKGkucG9zaXRpb24ubGVmdC1pLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsbz1wYXJzZUZsb2F0KGkuZWxlbWVudC5jc3MoXCJ0b3BcIikpKyhpLnBvc2l0aW9uLnRvcC1pLm9yaWdpbmFsUG9zaXRpb24udG9wKXx8bnVsbDtpLmVsZW1lbnQuYW5pbWF0ZShWLmV4dGVuZChuLG8mJmE/e3RvcDpvLGxlZnQ6YX06e30pLHtkdXJhdGlvbjp0LmFuaW1hdGVEdXJhdGlvbixlYXNpbmc6dC5hbmltYXRlRWFzaW5nLHN0ZXA6ZnVuY3Rpb24oKXt2YXIgdD17d2lkdGg6cGFyc2VGbG9hdChpLmVsZW1lbnQuY3NzKFwid2lkdGhcIikpLGhlaWdodDpwYXJzZUZsb2F0KGkuZWxlbWVudC5jc3MoXCJoZWlnaHRcIikpLHRvcDpwYXJzZUZsb2F0KGkuZWxlbWVudC5jc3MoXCJ0b3BcIikpLGxlZnQ6cGFyc2VGbG9hdChpLmVsZW1lbnQuY3NzKFwibGVmdFwiKSl9O3MmJnMubGVuZ3RoJiZWKHNbMF0pLmNzcyh7d2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9KSxpLl91cGRhdGVDYWNoZSh0KSxpLl9wcm9wYWdhdGUoXCJyZXNpemVcIixlKX19KX19KSxWLnVpLnBsdWdpbi5hZGQoXCJyZXNpemFibGVcIixcImNvbnRhaW5tZW50XCIse3N0YXJ0OmZ1bmN0aW9uKCl7dmFyIGkscyxuPVYodGhpcykucmVzaXphYmxlKFwiaW5zdGFuY2VcIiksdD1uLm9wdGlvbnMsZT1uLmVsZW1lbnQsbz10LmNvbnRhaW5tZW50LGE9byBpbnN0YW5jZW9mIFY/by5nZXQoMCk6L3BhcmVudC8udGVzdChvKT9lLnBhcmVudCgpLmdldCgwKTpvO2EmJihuLmNvbnRhaW5lckVsZW1lbnQ9VihhKSwvZG9jdW1lbnQvLnRlc3Qobyl8fG89PT1kb2N1bWVudD8obi5jb250YWluZXJPZmZzZXQ9e2xlZnQ6MCx0b3A6MH0sbi5jb250YWluZXJQb3NpdGlvbj17bGVmdDowLHRvcDowfSxuLnBhcmVudERhdGE9e2VsZW1lbnQ6Vihkb2N1bWVudCksbGVmdDowLHRvcDowLHdpZHRoOlYoZG9jdW1lbnQpLndpZHRoKCksaGVpZ2h0OlYoZG9jdW1lbnQpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0fSk6KGk9VihhKSxzPVtdLFYoW1wiVG9wXCIsXCJSaWdodFwiLFwiTGVmdFwiLFwiQm90dG9tXCJdKS5lYWNoKGZ1bmN0aW9uKHQsZSl7c1t0XT1uLl9udW0oaS5jc3MoXCJwYWRkaW5nXCIrZSkpfSksbi5jb250YWluZXJPZmZzZXQ9aS5vZmZzZXQoKSxuLmNvbnRhaW5lclBvc2l0aW9uPWkucG9zaXRpb24oKSxuLmNvbnRhaW5lclNpemU9e2hlaWdodDppLmlubmVySGVpZ2h0KCktc1szXSx3aWR0aDppLmlubmVyV2lkdGgoKS1zWzFdfSx0PW4uY29udGFpbmVyT2Zmc2V0LGU9bi5jb250YWluZXJTaXplLmhlaWdodCxvPW4uY29udGFpbmVyU2l6ZS53aWR0aCxvPW4uX2hhc1Njcm9sbChhLFwibGVmdFwiKT9hLnNjcm9sbFdpZHRoOm8sZT1uLl9oYXNTY3JvbGwoYSk/YS5zY3JvbGxIZWlnaHQ6ZSxuLnBhcmVudERhdGE9e2VsZW1lbnQ6YSxsZWZ0OnQubGVmdCx0b3A6dC50b3Asd2lkdGg6byxoZWlnaHQ6ZX0pKX0scmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPVYodGhpcykucmVzaXphYmxlKFwiaW5zdGFuY2VcIiksaT1lLm9wdGlvbnMscz1lLmNvbnRhaW5lck9mZnNldCxuPWUucG9zaXRpb24sbz1lLl9hc3BlY3RSYXRpb3x8dC5zaGlmdEtleSxhPXt0b3A6MCxsZWZ0OjB9LHI9ZS5jb250YWluZXJFbGVtZW50LHQ9ITA7clswXSE9PWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KHIuY3NzKFwicG9zaXRpb25cIikpJiYoYT1zKSxuLmxlZnQ8KGUuX2hlbHBlcj9zLmxlZnQ6MCkmJihlLnNpemUud2lkdGg9ZS5zaXplLndpZHRoKyhlLl9oZWxwZXI/ZS5wb3NpdGlvbi5sZWZ0LXMubGVmdDplLnBvc2l0aW9uLmxlZnQtYS5sZWZ0KSxvJiYoZS5zaXplLmhlaWdodD1lLnNpemUud2lkdGgvZS5hc3BlY3RSYXRpbyx0PSExKSxlLnBvc2l0aW9uLmxlZnQ9aS5oZWxwZXI/cy5sZWZ0OjApLG4udG9wPChlLl9oZWxwZXI/cy50b3A6MCkmJihlLnNpemUuaGVpZ2h0PWUuc2l6ZS5oZWlnaHQrKGUuX2hlbHBlcj9lLnBvc2l0aW9uLnRvcC1zLnRvcDplLnBvc2l0aW9uLnRvcCksbyYmKGUuc2l6ZS53aWR0aD1lLnNpemUuaGVpZ2h0KmUuYXNwZWN0UmF0aW8sdD0hMSksZS5wb3NpdGlvbi50b3A9ZS5faGVscGVyP3MudG9wOjApLGk9ZS5jb250YWluZXJFbGVtZW50LmdldCgwKT09PWUuZWxlbWVudC5wYXJlbnQoKS5nZXQoMCksbj0vcmVsYXRpdmV8YWJzb2x1dGUvLnRlc3QoZS5jb250YWluZXJFbGVtZW50LmNzcyhcInBvc2l0aW9uXCIpKSxpJiZuPyhlLm9mZnNldC5sZWZ0PWUucGFyZW50RGF0YS5sZWZ0K2UucG9zaXRpb24ubGVmdCxlLm9mZnNldC50b3A9ZS5wYXJlbnREYXRhLnRvcCtlLnBvc2l0aW9uLnRvcCk6KGUub2Zmc2V0LmxlZnQ9ZS5lbGVtZW50Lm9mZnNldCgpLmxlZnQsZS5vZmZzZXQudG9wPWUuZWxlbWVudC5vZmZzZXQoKS50b3ApLG49TWF0aC5hYnMoZS5zaXplRGlmZi53aWR0aCsoZS5faGVscGVyP2Uub2Zmc2V0LmxlZnQtYS5sZWZ0OmUub2Zmc2V0LmxlZnQtcy5sZWZ0KSkscz1NYXRoLmFicyhlLnNpemVEaWZmLmhlaWdodCsoZS5faGVscGVyP2Uub2Zmc2V0LnRvcC1hLnRvcDplLm9mZnNldC50b3Atcy50b3ApKSxuK2Uuc2l6ZS53aWR0aD49ZS5wYXJlbnREYXRhLndpZHRoJiYoZS5zaXplLndpZHRoPWUucGFyZW50RGF0YS53aWR0aC1uLG8mJihlLnNpemUuaGVpZ2h0PWUuc2l6ZS53aWR0aC9lLmFzcGVjdFJhdGlvLHQ9ITEpKSxzK2Uuc2l6ZS5oZWlnaHQ+PWUucGFyZW50RGF0YS5oZWlnaHQmJihlLnNpemUuaGVpZ2h0PWUucGFyZW50RGF0YS5oZWlnaHQtcyxvJiYoZS5zaXplLndpZHRoPWUuc2l6ZS5oZWlnaHQqZS5hc3BlY3RSYXRpbyx0PSExKSksdHx8KGUucG9zaXRpb24ubGVmdD1lLnByZXZQb3NpdGlvbi5sZWZ0LGUucG9zaXRpb24udG9wPWUucHJldlBvc2l0aW9uLnRvcCxlLnNpemUud2lkdGg9ZS5wcmV2U2l6ZS53aWR0aCxlLnNpemUuaGVpZ2h0PWUucHJldlNpemUuaGVpZ2h0KX0sc3RvcDpmdW5jdGlvbigpe3ZhciB0PVYodGhpcykucmVzaXphYmxlKFwiaW5zdGFuY2VcIiksZT10Lm9wdGlvbnMsaT10LmNvbnRhaW5lck9mZnNldCxzPXQuY29udGFpbmVyUG9zaXRpb24sbj10LmNvbnRhaW5lckVsZW1lbnQsbz1WKHQuaGVscGVyKSxhPW8ub2Zmc2V0KCkscj1vLm91dGVyV2lkdGgoKS10LnNpemVEaWZmLndpZHRoLG89by5vdXRlckhlaWdodCgpLXQuc2l6ZURpZmYuaGVpZ2h0O3QuX2hlbHBlciYmIWUuYW5pbWF0ZSYmL3JlbGF0aXZlLy50ZXN0KG4uY3NzKFwicG9zaXRpb25cIikpJiZWKHRoaXMpLmNzcyh7bGVmdDphLmxlZnQtcy5sZWZ0LWkubGVmdCx3aWR0aDpyLGhlaWdodDpvfSksdC5faGVscGVyJiYhZS5hbmltYXRlJiYvc3RhdGljLy50ZXN0KG4uY3NzKFwicG9zaXRpb25cIikpJiZWKHRoaXMpLmNzcyh7bGVmdDphLmxlZnQtcy5sZWZ0LWkubGVmdCx3aWR0aDpyLGhlaWdodDpvfSl9fSksVi51aS5wbHVnaW4uYWRkKFwicmVzaXphYmxlXCIsXCJhbHNvUmVzaXplXCIse3N0YXJ0OmZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKS5yZXNpemFibGUoXCJpbnN0YW5jZVwiKS5vcHRpb25zO1YodC5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKTt0LmRhdGEoXCJ1aS1yZXNpemFibGUtYWxzb3Jlc2l6ZVwiLHt3aWR0aDpwYXJzZUZsb2F0KHQud2lkdGgoKSksaGVpZ2h0OnBhcnNlRmxvYXQodC5oZWlnaHQoKSksbGVmdDpwYXJzZUZsb2F0KHQuY3NzKFwibGVmdFwiKSksdG9wOnBhcnNlRmxvYXQodC5jc3MoXCJ0b3BcIikpfSl9KX0scmVzaXplOmZ1bmN0aW9uKHQsaSl7dmFyIGU9Vih0aGlzKS5yZXNpemFibGUoXCJpbnN0YW5jZVwiKSxzPWUub3B0aW9ucyxuPWUub3JpZ2luYWxTaXplLG89ZS5vcmlnaW5hbFBvc2l0aW9uLGE9e2hlaWdodDplLnNpemUuaGVpZ2h0LW4uaGVpZ2h0fHwwLHdpZHRoOmUuc2l6ZS53aWR0aC1uLndpZHRofHwwLHRvcDplLnBvc2l0aW9uLnRvcC1vLnRvcHx8MCxsZWZ0OmUucG9zaXRpb24ubGVmdC1vLmxlZnR8fDB9O1Yocy5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKSxzPVYodGhpcykuZGF0YShcInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplXCIpLG49e30sZT10LnBhcmVudHMoaS5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aD9bXCJ3aWR0aFwiLFwiaGVpZ2h0XCJdOltcIndpZHRoXCIsXCJoZWlnaHRcIixcInRvcFwiLFwibGVmdFwiXTtWLmVhY2goZSxmdW5jdGlvbih0LGUpe3ZhciBpPShzW2VdfHwwKSsoYVtlXXx8MCk7aSYmMDw9aSYmKG5bZV09aXx8bnVsbCl9KSx0LmNzcyhuKX0pfSxzdG9wOmZ1bmN0aW9uKCl7Vih0aGlzKS5yZW1vdmVEYXRhKFwidWktcmVzaXphYmxlLWFsc29yZXNpemVcIil9fSksVi51aS5wbHVnaW4uYWRkKFwicmVzaXphYmxlXCIsXCJnaG9zdFwiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PVYodGhpcykucmVzaXphYmxlKFwiaW5zdGFuY2VcIiksZT10LnNpemU7dC5naG9zdD10Lm9yaWdpbmFsRWxlbWVudC5jbG9uZSgpLHQuZ2hvc3QuY3NzKHtvcGFjaXR5Oi4yNSxkaXNwbGF5OlwiYmxvY2tcIixwb3NpdGlvbjpcInJlbGF0aXZlXCIsaGVpZ2h0OmUuaGVpZ2h0LHdpZHRoOmUud2lkdGgsbWFyZ2luOjAsbGVmdDowLHRvcDowfSksdC5fYWRkQ2xhc3ModC5naG9zdCxcInVpLXJlc2l6YWJsZS1naG9zdFwiKSwhMSE9PVYudWlCYWNrQ29tcGF0JiZcInN0cmluZ1wiPT10eXBlb2YgdC5vcHRpb25zLmdob3N0JiZ0Lmdob3N0LmFkZENsYXNzKHRoaXMub3B0aW9ucy5naG9zdCksdC5naG9zdC5hcHBlbmRUbyh0LmhlbHBlcil9LHJlc2l6ZTpmdW5jdGlvbigpe3ZhciB0PVYodGhpcykucmVzaXphYmxlKFwiaW5zdGFuY2VcIik7dC5naG9zdCYmdC5naG9zdC5jc3Moe3Bvc2l0aW9uOlwicmVsYXRpdmVcIixoZWlnaHQ6dC5zaXplLmhlaWdodCx3aWR0aDp0LnNpemUud2lkdGh9KX0sc3RvcDpmdW5jdGlvbigpe3ZhciB0PVYodGhpcykucmVzaXphYmxlKFwiaW5zdGFuY2VcIik7dC5naG9zdCYmdC5oZWxwZXImJnQuaGVscGVyLmdldCgwKS5yZW1vdmVDaGlsZCh0Lmdob3N0LmdldCgwKSl9fSksVi51aS5wbHVnaW4uYWRkKFwicmVzaXphYmxlXCIsXCJncmlkXCIse3Jlc2l6ZTpmdW5jdGlvbigpe3ZhciB0LGU9Vih0aGlzKS5yZXNpemFibGUoXCJpbnN0YW5jZVwiKSxpPWUub3B0aW9ucyxzPWUuc2l6ZSxuPWUub3JpZ2luYWxTaXplLG89ZS5vcmlnaW5hbFBvc2l0aW9uLGE9ZS5heGlzLHI9XCJudW1iZXJcIj09dHlwZW9mIGkuZ3JpZD9baS5ncmlkLGkuZ3JpZF06aS5ncmlkLGw9clswXXx8MSxoPXJbMV18fDEsYz1NYXRoLnJvdW5kKChzLndpZHRoLW4ud2lkdGgpL2wpKmwsdT1NYXRoLnJvdW5kKChzLmhlaWdodC1uLmhlaWdodCkvaCkqaCxkPW4ud2lkdGgrYyxwPW4uaGVpZ2h0K3UsZj1pLm1heFdpZHRoJiZpLm1heFdpZHRoPGQsZz1pLm1heEhlaWdodCYmaS5tYXhIZWlnaHQ8cCxtPWkubWluV2lkdGgmJmkubWluV2lkdGg+ZCxzPWkubWluSGVpZ2h0JiZpLm1pbkhlaWdodD5wO2kuZ3JpZD1yLG0mJihkKz1sKSxzJiYocCs9aCksZiYmKGQtPWwpLGcmJihwLT1oKSwvXihzZXxzfGUpJC8udGVzdChhKT8oZS5zaXplLndpZHRoPWQsZS5zaXplLmhlaWdodD1wKTovXihuZSkkLy50ZXN0KGEpPyhlLnNpemUud2lkdGg9ZCxlLnNpemUuaGVpZ2h0PXAsZS5wb3NpdGlvbi50b3A9by50b3AtdSk6L14oc3cpJC8udGVzdChhKT8oZS5zaXplLndpZHRoPWQsZS5zaXplLmhlaWdodD1wLGUucG9zaXRpb24ubGVmdD1vLmxlZnQtYyk6KChwLWg8PTB8fGQtbDw9MCkmJih0PWUuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyh0aGlzKSksMDxwLWg/KGUuc2l6ZS5oZWlnaHQ9cCxlLnBvc2l0aW9uLnRvcD1vLnRvcC11KToocD1oLXQuaGVpZ2h0LGUuc2l6ZS5oZWlnaHQ9cCxlLnBvc2l0aW9uLnRvcD1vLnRvcCtuLmhlaWdodC1wKSwwPGQtbD8oZS5zaXplLndpZHRoPWQsZS5wb3NpdGlvbi5sZWZ0PW8ubGVmdC1jKTooZD1sLXQud2lkdGgsZS5zaXplLndpZHRoPWQsZS5wb3NpdGlvbi5sZWZ0PW8ubGVmdCtuLndpZHRoLWQpKX19KTtWLnVpLnJlc2l6YWJsZSxWLndpZGdldChcInVpLnNlbGVjdGFibGVcIixWLnVpLm1vdXNlLHt2ZXJzaW9uOlwiMS4xMy4yXCIsb3B0aW9uczp7YXBwZW5kVG86XCJib2R5XCIsYXV0b1JlZnJlc2g6ITAsZGlzdGFuY2U6MCxmaWx0ZXI6XCIqXCIsdG9sZXJhbmNlOlwidG91Y2hcIixzZWxlY3RlZDpudWxsLHNlbGVjdGluZzpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsLHVuc2VsZWN0ZWQ6bnVsbCx1bnNlbGVjdGluZzpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLl9hZGRDbGFzcyhcInVpLXNlbGVjdGFibGVcIiksdGhpcy5kcmFnZ2VkPSExLHRoaXMucmVmcmVzaD1mdW5jdGlvbigpe2kuZWxlbWVudFBvcz1WKGkuZWxlbWVudFswXSkub2Zmc2V0KCksaS5zZWxlY3RlZXM9VihpLm9wdGlvbnMuZmlsdGVyLGkuZWxlbWVudFswXSksaS5fYWRkQ2xhc3MoaS5zZWxlY3RlZXMsXCJ1aS1zZWxlY3RlZVwiKSxpLnNlbGVjdGVlcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKSxlPXQub2Zmc2V0KCksZT17bGVmdDplLmxlZnQtaS5lbGVtZW50UG9zLmxlZnQsdG9wOmUudG9wLWkuZWxlbWVudFBvcy50b3B9O1YuZGF0YSh0aGlzLFwic2VsZWN0YWJsZS1pdGVtXCIse2VsZW1lbnQ6dGhpcywkZWxlbWVudDp0LGxlZnQ6ZS5sZWZ0LHRvcDplLnRvcCxyaWdodDplLmxlZnQrdC5vdXRlcldpZHRoKCksYm90dG9tOmUudG9wK3Qub3V0ZXJIZWlnaHQoKSxzdGFydHNlbGVjdGVkOiExLHNlbGVjdGVkOnQuaGFzQ2xhc3MoXCJ1aS1zZWxlY3RlZFwiKSxzZWxlY3Rpbmc6dC5oYXNDbGFzcyhcInVpLXNlbGVjdGluZ1wiKSx1bnNlbGVjdGluZzp0Lmhhc0NsYXNzKFwidWktdW5zZWxlY3RpbmdcIil9KX0pfSx0aGlzLnJlZnJlc2goKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLmhlbHBlcj1WKFwiPGRpdj5cIiksdGhpcy5fYWRkQ2xhc3ModGhpcy5oZWxwZXIsXCJ1aS1zZWxlY3RhYmxlLWhlbHBlclwiKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVlcy5yZW1vdmVEYXRhKFwic2VsZWN0YWJsZS1pdGVtXCIpLHRoaXMuX21vdXNlRGVzdHJveSgpfSxfbW91c2VTdGFydDpmdW5jdGlvbihpKXt2YXIgcz10aGlzLHQ9dGhpcy5vcHRpb25zO3RoaXMub3Bvcz1baS5wYWdlWCxpLnBhZ2VZXSx0aGlzLmVsZW1lbnRQb3M9Vih0aGlzLmVsZW1lbnRbMF0pLm9mZnNldCgpLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWVzPVYodC5maWx0ZXIsdGhpcy5lbGVtZW50WzBdKSx0aGlzLl90cmlnZ2VyKFwic3RhcnRcIixpKSxWKHQuYXBwZW5kVG8pLmFwcGVuZCh0aGlzLmhlbHBlciksdGhpcy5oZWxwZXIuY3NzKHtsZWZ0OmkucGFnZVgsdG9wOmkucGFnZVksd2lkdGg6MCxoZWlnaHQ6MH0pLHQuYXV0b1JlZnJlc2gmJnRoaXMucmVmcmVzaCgpLHRoaXMuc2VsZWN0ZWVzLmZpbHRlcihcIi51aS1zZWxlY3RlZFwiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vi5kYXRhKHRoaXMsXCJzZWxlY3RhYmxlLWl0ZW1cIik7dC5zdGFydHNlbGVjdGVkPSEwLGkubWV0YUtleXx8aS5jdHJsS2V5fHwocy5fcmVtb3ZlQ2xhc3ModC4kZWxlbWVudCxcInVpLXNlbGVjdGVkXCIpLHQuc2VsZWN0ZWQ9ITEscy5fYWRkQ2xhc3ModC4kZWxlbWVudCxcInVpLXVuc2VsZWN0aW5nXCIpLHQudW5zZWxlY3Rpbmc9ITAscy5fdHJpZ2dlcihcInVuc2VsZWN0aW5nXCIsaSx7dW5zZWxlY3Rpbmc6dC5lbGVtZW50fSkpfSksVihpLnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQsZT1WLmRhdGEodGhpcyxcInNlbGVjdGFibGUtaXRlbVwiKTtpZihlKXJldHVybiB0PSFpLm1ldGFLZXkmJiFpLmN0cmxLZXl8fCFlLiRlbGVtZW50Lmhhc0NsYXNzKFwidWktc2VsZWN0ZWRcIikscy5fcmVtb3ZlQ2xhc3MoZS4kZWxlbWVudCx0P1widWktdW5zZWxlY3RpbmdcIjpcInVpLXNlbGVjdGVkXCIpLl9hZGRDbGFzcyhlLiRlbGVtZW50LHQ/XCJ1aS1zZWxlY3RpbmdcIjpcInVpLXVuc2VsZWN0aW5nXCIpLGUudW5zZWxlY3Rpbmc9IXQsZS5zZWxlY3Rpbmc9dCwoZS5zZWxlY3RlZD10KT9zLl90cmlnZ2VyKFwic2VsZWN0aW5nXCIsaSx7c2VsZWN0aW5nOmUuZWxlbWVudH0pOnMuX3RyaWdnZXIoXCJ1bnNlbGVjdGluZ1wiLGkse3Vuc2VsZWN0aW5nOmUuZWxlbWVudH0pLCExfSkpfSxfbW91c2VEcmFnOmZ1bmN0aW9uKHMpe2lmKHRoaXMuZHJhZ2dlZD0hMCwhdGhpcy5vcHRpb25zLmRpc2FibGVkKXt2YXIgdCxuPXRoaXMsbz10aGlzLm9wdGlvbnMsYT10aGlzLm9wb3NbMF0scj10aGlzLm9wb3NbMV0sbD1zLnBhZ2VYLGg9cy5wYWdlWTtyZXR1cm4gbDxhJiYodD1sLGw9YSxhPXQpLGg8ciYmKHQ9aCxoPXIscj10KSx0aGlzLmhlbHBlci5jc3Moe2xlZnQ6YSx0b3A6cix3aWR0aDpsLWEsaGVpZ2h0Omgtcn0pLHRoaXMuc2VsZWN0ZWVzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WLmRhdGEodGhpcyxcInNlbGVjdGFibGUtaXRlbVwiKSxlPSExLGk9e307dCYmdC5lbGVtZW50IT09bi5lbGVtZW50WzBdJiYoaS5sZWZ0PXQubGVmdCtuLmVsZW1lbnRQb3MubGVmdCxpLnJpZ2h0PXQucmlnaHQrbi5lbGVtZW50UG9zLmxlZnQsaS50b3A9dC50b3Arbi5lbGVtZW50UG9zLnRvcCxpLmJvdHRvbT10LmJvdHRvbStuLmVsZW1lbnRQb3MudG9wLFwidG91Y2hcIj09PW8udG9sZXJhbmNlP2U9IShpLmxlZnQ+bHx8aS5yaWdodDxhfHxpLnRvcD5ofHxpLmJvdHRvbTxyKTpcImZpdFwiPT09by50b2xlcmFuY2UmJihlPWkubGVmdD5hJiZpLnJpZ2h0PGwmJmkudG9wPnImJmkuYm90dG9tPGgpLGU/KHQuc2VsZWN0ZWQmJihuLl9yZW1vdmVDbGFzcyh0LiRlbGVtZW50LFwidWktc2VsZWN0ZWRcIiksdC5zZWxlY3RlZD0hMSksdC51bnNlbGVjdGluZyYmKG4uX3JlbW92ZUNsYXNzKHQuJGVsZW1lbnQsXCJ1aS11bnNlbGVjdGluZ1wiKSx0LnVuc2VsZWN0aW5nPSExKSx0LnNlbGVjdGluZ3x8KG4uX2FkZENsYXNzKHQuJGVsZW1lbnQsXCJ1aS1zZWxlY3RpbmdcIiksdC5zZWxlY3Rpbmc9ITAsbi5fdHJpZ2dlcihcInNlbGVjdGluZ1wiLHMse3NlbGVjdGluZzp0LmVsZW1lbnR9KSkpOih0LnNlbGVjdGluZyYmKChzLm1ldGFLZXl8fHMuY3RybEtleSkmJnQuc3RhcnRzZWxlY3RlZD8obi5fcmVtb3ZlQ2xhc3ModC4kZWxlbWVudCxcInVpLXNlbGVjdGluZ1wiKSx0LnNlbGVjdGluZz0hMSxuLl9hZGRDbGFzcyh0LiRlbGVtZW50LFwidWktc2VsZWN0ZWRcIiksdC5zZWxlY3RlZD0hMCk6KG4uX3JlbW92ZUNsYXNzKHQuJGVsZW1lbnQsXCJ1aS1zZWxlY3RpbmdcIiksdC5zZWxlY3Rpbmc9ITEsdC5zdGFydHNlbGVjdGVkJiYobi5fYWRkQ2xhc3ModC4kZWxlbWVudCxcInVpLXVuc2VsZWN0aW5nXCIpLHQudW5zZWxlY3Rpbmc9ITApLG4uX3RyaWdnZXIoXCJ1bnNlbGVjdGluZ1wiLHMse3Vuc2VsZWN0aW5nOnQuZWxlbWVudH0pKSksdC5zZWxlY3RlZCYmKHMubWV0YUtleXx8cy5jdHJsS2V5fHx0LnN0YXJ0c2VsZWN0ZWR8fChuLl9yZW1vdmVDbGFzcyh0LiRlbGVtZW50LFwidWktc2VsZWN0ZWRcIiksdC5zZWxlY3RlZD0hMSxuLl9hZGRDbGFzcyh0LiRlbGVtZW50LFwidWktdW5zZWxlY3RpbmdcIiksdC51bnNlbGVjdGluZz0hMCxuLl90cmlnZ2VyKFwidW5zZWxlY3RpbmdcIixzLHt1bnNlbGVjdGluZzp0LmVsZW1lbnR9KSkpKSl9KSwhMX19LF9tb3VzZVN0b3A6ZnVuY3Rpb24oZSl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5kcmFnZ2VkPSExLFYoXCIudWktdW5zZWxlY3RpbmdcIix0aGlzLmVsZW1lbnRbMF0pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WLmRhdGEodGhpcyxcInNlbGVjdGFibGUtaXRlbVwiKTtpLl9yZW1vdmVDbGFzcyh0LiRlbGVtZW50LFwidWktdW5zZWxlY3RpbmdcIiksdC51bnNlbGVjdGluZz0hMSx0LnN0YXJ0c2VsZWN0ZWQ9ITEsaS5fdHJpZ2dlcihcInVuc2VsZWN0ZWRcIixlLHt1bnNlbGVjdGVkOnQuZWxlbWVudH0pfSksVihcIi51aS1zZWxlY3RpbmdcIix0aGlzLmVsZW1lbnRbMF0pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WLmRhdGEodGhpcyxcInNlbGVjdGFibGUtaXRlbVwiKTtpLl9yZW1vdmVDbGFzcyh0LiRlbGVtZW50LFwidWktc2VsZWN0aW5nXCIpLl9hZGRDbGFzcyh0LiRlbGVtZW50LFwidWktc2VsZWN0ZWRcIiksdC5zZWxlY3Rpbmc9ITEsdC5zZWxlY3RlZD0hMCx0LnN0YXJ0c2VsZWN0ZWQ9ITAsaS5fdHJpZ2dlcihcInNlbGVjdGVkXCIsZSx7c2VsZWN0ZWQ6dC5lbGVtZW50fSl9KSx0aGlzLl90cmlnZ2VyKFwic3RvcFwiLGUpLHRoaXMuaGVscGVyLnJlbW92ZSgpLCExfX0pLFYud2lkZ2V0KFwidWkuc29ydGFibGVcIixWLnVpLm1vdXNlLHt2ZXJzaW9uOlwiMS4xMy4yXCIsd2lkZ2V0RXZlbnRQcmVmaXg6XCJzb3J0XCIscmVhZHk6ITEsb3B0aW9uczp7YXBwZW5kVG86XCJwYXJlbnRcIixheGlzOiExLGNvbm5lY3RXaXRoOiExLGNvbnRhaW5tZW50OiExLGN1cnNvcjpcImF1dG9cIixjdXJzb3JBdDohMSxkcm9wT25FbXB0eTohMCxmb3JjZVBsYWNlaG9sZGVyU2l6ZTohMSxmb3JjZUhlbHBlclNpemU6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOlwib3JpZ2luYWxcIixpdGVtczpcIj4gKlwiLG9wYWNpdHk6ITEscGxhY2Vob2xkZXI6ITEscmV2ZXJ0OiExLHNjcm9sbDohMCxzY3JvbGxTZW5zaXRpdml0eToyMCxzY3JvbGxTcGVlZDoyMCxzY29wZTpcImRlZmF1bHRcIix0b2xlcmFuY2U6XCJpbnRlcnNlY3RcIix6SW5kZXg6MWUzLGFjdGl2YXRlOm51bGwsYmVmb3JlU3RvcDpudWxsLGNoYW5nZTpudWxsLGRlYWN0aXZhdGU6bnVsbCxvdXQ6bnVsbCxvdmVyOm51bGwscmVjZWl2ZTpudWxsLHJlbW92ZTpudWxsLHNvcnQ6bnVsbCxzdGFydDpudWxsLHN0b3A6bnVsbCx1cGRhdGU6bnVsbH0sX2lzT3ZlckF4aXM6ZnVuY3Rpb24odCxlLGkpe3JldHVybiBlPD10JiZ0PGUraX0sX2lzRmxvYXRpbmc6ZnVuY3Rpb24odCl7cmV0dXJuL2xlZnR8cmlnaHQvLnRlc3QodC5jc3MoXCJmbG9hdFwiKSl8fC9pbmxpbmV8dGFibGUtY2VsbC8udGVzdCh0LmNzcyhcImRpc3BsYXlcIikpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJDYWNoZT17fSx0aGlzLl9hZGRDbGFzcyhcInVpLXNvcnRhYmxlXCIpLHRoaXMucmVmcmVzaCgpLHRoaXMub2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKSx0aGlzLnJlYWR5PSEwfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsZSl7dGhpcy5fc3VwZXIodCxlKSxcImhhbmRsZVwiPT09dCYmdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCl9LF9zZXRIYW5kbGVDbGFzc05hbWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3JlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5maW5kKFwiLnVpLXNvcnRhYmxlLWhhbmRsZVwiKSxcInVpLXNvcnRhYmxlLWhhbmRsZVwiKSxWLmVhY2godGhpcy5pdGVtcyxmdW5jdGlvbigpe3QuX2FkZENsYXNzKHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGU/dGhpcy5pdGVtLmZpbmQodGhpcy5pbnN0YW5jZS5vcHRpb25zLmhhbmRsZSk6dGhpcy5pdGVtLFwidWktc29ydGFibGUtaGFuZGxlXCIpfSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fbW91c2VEZXN0cm95KCk7Zm9yKHZhciB0PXRoaXMuaXRlbXMubGVuZ3RoLTE7MDw9dDt0LS0pdGhpcy5pdGVtc1t0XS5pdGVtLnJlbW92ZURhdGEodGhpcy53aWRnZXROYW1lK1wiLWl0ZW1cIik7cmV0dXJuIHRoaXN9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24odCxlKXt2YXIgaT1udWxsLHM9ITEsbj10aGlzO3JldHVybiF0aGlzLnJldmVydGluZyYmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJlwic3RhdGljXCIhPT10aGlzLm9wdGlvbnMudHlwZSYmKHRoaXMuX3JlZnJlc2hJdGVtcyh0KSxWKHQudGFyZ2V0KS5wYXJlbnRzKCkuZWFjaChmdW5jdGlvbigpe2lmKFYuZGF0YSh0aGlzLG4ud2lkZ2V0TmFtZStcIi1pdGVtXCIpPT09bilyZXR1cm4gaT1WKHRoaXMpLCExfSksVi5kYXRhKHQudGFyZ2V0LG4ud2lkZ2V0TmFtZStcIi1pdGVtXCIpPT09biYmKGk9Vih0LnRhcmdldCkpLCEhaSYmKCEodGhpcy5vcHRpb25zLmhhbmRsZSYmIWUmJihWKHRoaXMub3B0aW9ucy5oYW5kbGUsaSkuZmluZChcIipcIikuYWRkQmFjaygpLmVhY2goZnVuY3Rpb24oKXt0aGlzPT09dC50YXJnZXQmJihzPSEwKX0pLCFzKSkmJih0aGlzLmN1cnJlbnRJdGVtPWksdGhpcy5fcmVtb3ZlQ3VycmVudHNGcm9tSXRlbXMoKSwhMCkpKSl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKHQsZSxpKXt2YXIgcyxuLG89dGhpcy5vcHRpb25zO2lmKCh0aGlzLmN1cnJlbnRDb250YWluZXI9dGhpcykucmVmcmVzaFBvc2l0aW9ucygpLHRoaXMuYXBwZW5kVG89VihcInBhcmVudFwiIT09by5hcHBlbmRUbz9vLmFwcGVuZFRvOnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KCkpLHRoaXMuaGVscGVyPXRoaXMuX2NyZWF0ZUhlbHBlcih0KSx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksdGhpcy5fY2FjaGVNYXJnaW5zKCksdGhpcy5vZmZzZXQ9dGhpcy5jdXJyZW50SXRlbS5vZmZzZXQoKSx0aGlzLm9mZnNldD17dG9wOnRoaXMub2Zmc2V0LnRvcC10aGlzLm1hcmdpbnMudG9wLGxlZnQ6dGhpcy5vZmZzZXQubGVmdC10aGlzLm1hcmdpbnMubGVmdH0sVi5leHRlbmQodGhpcy5vZmZzZXQse2NsaWNrOntsZWZ0OnQucGFnZVgtdGhpcy5vZmZzZXQubGVmdCx0b3A6dC5wYWdlWS10aGlzLm9mZnNldC50b3B9LHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9KSx0aGlzLmhlbHBlci5jc3MoXCJwb3NpdGlvblwiLFwiYWJzb2x1dGVcIiksdGhpcy5jc3NQb3NpdGlvbj10aGlzLmhlbHBlci5jc3MoXCJwb3NpdGlvblwiKSxvLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKG8uY3Vyc29yQXQpLHRoaXMuZG9tUG9zaXRpb249e3ByZXY6dGhpcy5jdXJyZW50SXRlbS5wcmV2KClbMF0scGFyZW50OnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF19LHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5jdXJyZW50SXRlbS5oaWRlKCksdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXIoKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLnBsYWNlaG9sZGVyLnNjcm9sbFBhcmVudCgpLFYuZXh0ZW5kKHRoaXMub2Zmc2V0LHtwYXJlbnQ6dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCl9KSxvLmNvbnRhaW5tZW50JiZ0aGlzLl9zZXRDb250YWlubWVudCgpLG8uY3Vyc29yJiZcImF1dG9cIiE9PW8uY3Vyc29yJiYobj10aGlzLmRvY3VtZW50LmZpbmQoXCJib2R5XCIpLHRoaXMuc3RvcmVkQ3Vyc29yPW4uY3NzKFwiY3Vyc29yXCIpLG4uY3NzKFwiY3Vyc29yXCIsby5jdXJzb3IpLHRoaXMuc3RvcmVkU3R5bGVzaGVldD1WKFwiPHN0eWxlPip7IGN1cnNvcjogXCIrby5jdXJzb3IrXCIgIWltcG9ydGFudDsgfTwvc3R5bGU+XCIpLmFwcGVuZFRvKG4pKSxvLnpJbmRleCYmKHRoaXMuaGVscGVyLmNzcyhcInpJbmRleFwiKSYmKHRoaXMuX3N0b3JlZFpJbmRleD10aGlzLmhlbHBlci5jc3MoXCJ6SW5kZXhcIikpLHRoaXMuaGVscGVyLmNzcyhcInpJbmRleFwiLG8uekluZGV4KSksby5vcGFjaXR5JiYodGhpcy5oZWxwZXIuY3NzKFwib3BhY2l0eVwiKSYmKHRoaXMuX3N0b3JlZE9wYWNpdHk9dGhpcy5oZWxwZXIuY3NzKFwib3BhY2l0eVwiKSksdGhpcy5oZWxwZXIuY3NzKFwib3BhY2l0eVwiLG8ub3BhY2l0eSkpLHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmXCJIVE1MXCIhPT10aGlzLnNjcm9sbFBhcmVudFswXS50YWdOYW1lJiYodGhpcy5vdmVyZmxvd09mZnNldD10aGlzLnNjcm9sbFBhcmVudC5vZmZzZXQoKSksdGhpcy5fdHJpZ2dlcihcInN0YXJ0XCIsdCx0aGlzLl91aUhhc2goKSksdGhpcy5fcHJlc2VydmVIZWxwZXJQcm9wb3J0aW9uc3x8dGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpLCFpKWZvcihzPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTswPD1zO3MtLSl0aGlzLmNvbnRhaW5lcnNbc10uX3RyaWdnZXIoXCJhY3RpdmF0ZVwiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKTtyZXR1cm4gVi51aS5kZG1hbmFnZXImJihWLnVpLmRkbWFuYWdlci5jdXJyZW50PXRoaXMpLFYudWkuZGRtYW5hZ2VyJiYhby5kcm9wQmVoYXZpb3VyJiZWLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLHQpLHRoaXMuZHJhZ2dpbmc9ITAsdGhpcy5fYWRkQ2xhc3ModGhpcy5oZWxwZXIsXCJ1aS1zb3J0YWJsZS1oZWxwZXJcIiksdGhpcy5oZWxwZXIucGFyZW50KCkuaXModGhpcy5hcHBlbmRUbyl8fCh0aGlzLmhlbHBlci5kZXRhY2goKS5hcHBlbmRUbyh0aGlzLmFwcGVuZFRvKSx0aGlzLm9mZnNldC5wYXJlbnQ9dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCkpLHRoaXMucG9zaXRpb249dGhpcy5vcmlnaW5hbFBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCksdGhpcy5vcmlnaW5hbFBhZ2VYPXQucGFnZVgsdGhpcy5vcmlnaW5hbFBhZ2VZPXQucGFnZVksdGhpcy5sYXN0UG9zaXRpb25BYnM9dGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbyhcImFic29sdXRlXCIpLHRoaXMuX21vdXNlRHJhZyh0KSwhMH0sX3Njcm9sbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMsaT0hMTtyZXR1cm4gdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdJiZcIkhUTUxcIiE9PXRoaXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWU/KHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wK3RoaXMuc2Nyb2xsUGFyZW50WzBdLm9mZnNldEhlaWdodC10LnBhZ2VZPGUuc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPWk9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wK2Uuc2Nyb2xsU3BlZWQ6dC5wYWdlWS10aGlzLm92ZXJmbG93T2Zmc2V0LnRvcDxlLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPWk9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wLWUuc2Nyb2xsU3BlZWQpLHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCt0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRXaWR0aC10LnBhZ2VYPGUuc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1pPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQrZS5zY3JvbGxTcGVlZDp0LnBhZ2VYLXRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdDxlLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1pPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQtZS5zY3JvbGxTcGVlZCkpOih0LnBhZ2VZLXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCk8ZS5zY3JvbGxTZW5zaXRpdml0eT9pPXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKHRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCktZS5zY3JvbGxTcGVlZCk6dGhpcy53aW5kb3cuaGVpZ2h0KCktKHQucGFnZVktdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSk8ZS5zY3JvbGxTZW5zaXRpdml0eSYmKGk9dGhpcy5kb2N1bWVudC5zY3JvbGxUb3AodGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKStlLnNjcm9sbFNwZWVkKSksdC5wYWdlWC10aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKTxlLnNjcm9sbFNlbnNpdGl2aXR5P2k9dGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpLWUuc2Nyb2xsU3BlZWQpOnRoaXMud2luZG93LndpZHRoKCktKHQucGFnZVgtdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkpPGUuc2Nyb2xsU2Vuc2l0aXZpdHkmJihpPXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCh0aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKStlLnNjcm9sbFNwZWVkKSkpLGl9LF9tb3VzZURyYWc6ZnVuY3Rpb24odCl7dmFyIGUsaSxzLG4sbz10aGlzLm9wdGlvbnM7Zm9yKHRoaXMucG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0KSx0aGlzLnBvc2l0aW9uQWJzPXRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKFwiYWJzb2x1dGVcIiksdGhpcy5vcHRpb25zLmF4aXMmJlwieVwiPT09dGhpcy5vcHRpb25zLmF4aXN8fCh0aGlzLmhlbHBlclswXS5zdHlsZS5sZWZ0PXRoaXMucG9zaXRpb24ubGVmdCtcInB4XCIpLHRoaXMub3B0aW9ucy5heGlzJiZcInhcIj09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wK1wicHhcIiksby5zY3JvbGwmJiExIT09dGhpcy5fc2Nyb2xsKHQpJiYodGhpcy5fcmVmcmVzaEl0ZW1Qb3NpdGlvbnMoITApLFYudWkuZGRtYW5hZ2VyJiYhby5kcm9wQmVoYXZpb3VyJiZWLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLHQpKSx0aGlzLmRyYWdEaXJlY3Rpb249e3ZlcnRpY2FsOnRoaXMuX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLGhvcml6b250YWw6dGhpcy5fZ2V0RHJhZ0hvcml6b250YWxEaXJlY3Rpb24oKX0sZT10aGlzLml0ZW1zLmxlbmd0aC0xOzA8PWU7ZS0tKWlmKGk9dGhpcy5pdGVtc1tlXSxzPWkuaXRlbVswXSxuPXRoaXMuX2ludGVyc2VjdHNXaXRoUG9pbnRlcihpKSxuJiZpLmluc3RhbmNlPT09dGhpcy5jdXJyZW50Q29udGFpbmVyJiYhKHM9PT10aGlzLmN1cnJlbnRJdGVtWzBdfHx0aGlzLnBsYWNlaG9sZGVyWzE9PT1uP1wibmV4dFwiOlwicHJldlwiXSgpWzBdPT09c3x8Vi5jb250YWlucyh0aGlzLnBsYWNlaG9sZGVyWzBdLHMpfHxcInNlbWktZHluYW1pY1wiPT09dGhpcy5vcHRpb25zLnR5cGUmJlYuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHMpKSl7aWYodGhpcy5kaXJlY3Rpb249MT09PW4/XCJkb3duXCI6XCJ1cFwiLFwicG9pbnRlclwiIT09dGhpcy5vcHRpb25zLnRvbGVyYW5jZSYmIXRoaXMuX2ludGVyc2VjdHNXaXRoU2lkZXMoaSkpYnJlYWs7dGhpcy5fcmVhcnJhbmdlKHQsaSksdGhpcy5fdHJpZ2dlcihcImNoYW5nZVwiLHQsdGhpcy5fdWlIYXNoKCkpO2JyZWFrfXJldHVybiB0aGlzLl9jb250YWN0Q29udGFpbmVycyh0KSxWLnVpLmRkbWFuYWdlciYmVi51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLHQpLHRoaXMuX3RyaWdnZXIoXCJzb3J0XCIsdCx0aGlzLl91aUhhc2goKSksdGhpcy5sYXN0UG9zaXRpb25BYnM9dGhpcy5wb3NpdGlvbkFicywhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0LGUpe3ZhciBpLHMsbixvO2lmKHQpcmV0dXJuIFYudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJlYudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSx0aGlzLm9wdGlvbnMucmV2ZXJ0PyhzPShpPXRoaXMpLnBsYWNlaG9sZGVyLm9mZnNldCgpLG89e30sKG49dGhpcy5vcHRpb25zLmF4aXMpJiZcInhcIiE9PW58fChvLmxlZnQ9cy5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0Kyh0aGlzLm9mZnNldFBhcmVudFswXT09PXRoaXMuZG9jdW1lbnRbMF0uYm9keT8wOnRoaXMub2Zmc2V0UGFyZW50WzBdLnNjcm9sbExlZnQpKSxuJiZcInlcIiE9PW58fChvLnRvcD1zLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLXRoaXMubWFyZ2lucy50b3ArKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsVG9wKSksdGhpcy5yZXZlcnRpbmc9ITAsVih0aGlzLmhlbHBlcikuYW5pbWF0ZShvLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnQsMTApfHw1MDAsZnVuY3Rpb24oKXtpLl9jbGVhcih0KX0pKTp0aGlzLl9jbGVhcih0LGUpLCExfSxjYW5jZWw6ZnVuY3Rpb24oKXtpZih0aGlzLmRyYWdnaW5nKXt0aGlzLl9tb3VzZVVwKG5ldyBWLkV2ZW50KFwibW91c2V1cFwiLHt0YXJnZXQ6bnVsbH0pKSxcIm9yaWdpbmFsXCI9PT10aGlzLm9wdGlvbnMuaGVscGVyPyh0aGlzLmN1cnJlbnRJdGVtLmNzcyh0aGlzLl9zdG9yZWRDU1MpLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuY3VycmVudEl0ZW0sXCJ1aS1zb3J0YWJsZS1oZWxwZXJcIikpOnRoaXMuY3VycmVudEl0ZW0uc2hvdygpO2Zvcih2YXIgdD10aGlzLmNvbnRhaW5lcnMubGVuZ3RoLTE7MDw9dDt0LS0pdGhpcy5jb250YWluZXJzW3RdLl90cmlnZ2VyKFwiZGVhY3RpdmF0ZVwiLG51bGwsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbdF0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1t0XS5fdHJpZ2dlcihcIm91dFwiLG51bGwsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbdF0uY29udGFpbmVyQ2FjaGUub3Zlcj0wKX1yZXR1cm4gdGhpcy5wbGFjZWhvbGRlciYmKHRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZSYmdGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pLFwib3JpZ2luYWxcIiE9PXRoaXMub3B0aW9ucy5oZWxwZXImJnRoaXMuaGVscGVyJiZ0aGlzLmhlbHBlclswXS5wYXJlbnROb2RlJiZ0aGlzLmhlbHBlci5yZW1vdmUoKSxWLmV4dGVuZCh0aGlzLHtoZWxwZXI6bnVsbCxkcmFnZ2luZzohMSxyZXZlcnRpbmc6ITEsX25vRmluYWxTb3J0Om51bGx9KSx0aGlzLmRvbVBvc2l0aW9uLnByZXY/Vih0aGlzLmRvbVBvc2l0aW9uLnByZXYpLmFmdGVyKHRoaXMuY3VycmVudEl0ZW0pOlYodGhpcy5kb21Qb3NpdGlvbi5wYXJlbnQpLnByZXBlbmQodGhpcy5jdXJyZW50SXRlbSkpLHRoaXN9LHNlcmlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXRJdGVtc0FzalF1ZXJ5KGUmJmUuY29ubmVjdGVkKSxpPVtdO3JldHVybiBlPWV8fHt9LFYodCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PShWKGUuaXRlbXx8dGhpcykuYXR0cihlLmF0dHJpYnV0ZXx8XCJpZFwiKXx8XCJcIikubWF0Y2goZS5leHByZXNzaW9ufHwvKC4rKVtcXC09X10oLispLyk7dCYmaS5wdXNoKChlLmtleXx8dFsxXStcIltdXCIpK1wiPVwiKyhlLmtleSYmZS5leHByZXNzaW9uP3RbMV06dFsyXSkpfSksIWkubGVuZ3RoJiZlLmtleSYmaS5wdXNoKGUua2V5K1wiPVwiKSxpLmpvaW4oXCImXCIpfSx0b0FycmF5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldEl0ZW1zQXNqUXVlcnkodCYmdC5jb25uZWN0ZWQpLGk9W107cmV0dXJuIHQ9dHx8e30sZS5lYWNoKGZ1bmN0aW9uKCl7aS5wdXNoKFYodC5pdGVtfHx0aGlzKS5hdHRyKHQuYXR0cmlidXRlfHxcImlkXCIpfHxcIlwiKX0pLGl9LF9pbnRlcnNlY3RzV2l0aDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnBvc2l0aW9uQWJzLmxlZnQsaT1lK3RoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgscz10aGlzLnBvc2l0aW9uQWJzLnRvcCxuPXMrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbz10LmxlZnQsYT1vK3Qud2lkdGgscj10LnRvcCxsPXIrdC5oZWlnaHQsaD10aGlzLm9mZnNldC5jbGljay50b3AsYz10aGlzLm9mZnNldC5jbGljay5sZWZ0LGg9XCJ4XCI9PT10aGlzLm9wdGlvbnMuYXhpc3x8cjxzK2gmJnMraDxsLGM9XCJ5XCI9PT10aGlzLm9wdGlvbnMuYXhpc3x8bzxlK2MmJmUrYzxhLGM9aCYmYztyZXR1cm5cInBvaW50ZXJcIj09PXRoaXMub3B0aW9ucy50b2xlcmFuY2V8fHRoaXMub3B0aW9ucy5mb3JjZVBvaW50ZXJGb3JDb250YWluZXJzfHxcInBvaW50ZXJcIiE9PXRoaXMub3B0aW9ucy50b2xlcmFuY2UmJnRoaXMuaGVscGVyUHJvcG9ydGlvbnNbdGhpcy5mbG9hdGluZz9cIndpZHRoXCI6XCJoZWlnaHRcIl0+dFt0aGlzLmZsb2F0aW5nP1wid2lkdGhcIjpcImhlaWdodFwiXT9jOm88ZSt0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLzImJmktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC8yPGEmJnI8cyt0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yJiZuLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI8bH0sX2ludGVyc2VjdHNXaXRoUG9pbnRlcjpmdW5jdGlvbih0KXt2YXIgZT1cInhcIj09PXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCx0LnRvcCx0LmhlaWdodCksdD1cInlcIj09PXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMubGVmdCt0aGlzLm9mZnNldC5jbGljay5sZWZ0LHQubGVmdCx0LndpZHRoKTtyZXR1cm4hKCFlfHwhdCkmJihlPXRoaXMuZHJhZ0RpcmVjdGlvbi52ZXJ0aWNhbCx0PXRoaXMuZHJhZ0RpcmVjdGlvbi5ob3Jpem9udGFsLHRoaXMuZmxvYXRpbmc/XCJyaWdodFwiPT09dHx8XCJkb3duXCI9PT1lPzI6MTplJiYoXCJkb3duXCI9PT1lPzI6MSkpfSxfaW50ZXJzZWN0c1dpdGhTaWRlczpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCx0LnRvcCt0LmhlaWdodC8yLHQuaGVpZ2h0KSxpPXRoaXMuX2lzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy5sZWZ0K3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQsdC5sZWZ0K3Qud2lkdGgvMix0LndpZHRoKSxzPXRoaXMuZHJhZ0RpcmVjdGlvbi52ZXJ0aWNhbCx0PXRoaXMuZHJhZ0RpcmVjdGlvbi5ob3Jpem9udGFsO3JldHVybiB0aGlzLmZsb2F0aW5nJiZ0P1wicmlnaHRcIj09PXQmJml8fFwibGVmdFwiPT09dCYmIWk6cyYmKFwiZG93blwiPT09cyYmZXx8XCJ1cFwiPT09cyYmIWUpfSxfZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wb3NpdGlvbkFicy50b3AtdGhpcy5sYXN0UG9zaXRpb25BYnMudG9wO3JldHVybiAwIT10JiYoMDx0P1wiZG93blwiOlwidXBcIil9LF9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMucG9zaXRpb25BYnMubGVmdC10aGlzLmxhc3RQb3NpdGlvbkFicy5sZWZ0O3JldHVybiAwIT10JiYoMDx0P1wicmlnaHRcIjpcImxlZnRcIil9LHJlZnJlc2g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlZnJlc2hJdGVtcyh0KSx0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKSx0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKSx0aGlzfSxfY29ubmVjdFdpdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7cmV0dXJuIHQuY29ubmVjdFdpdGguY29uc3RydWN0b3I9PT1TdHJpbmc/W3QuY29ubmVjdFdpdGhdOnQuY29ubmVjdFdpdGh9LF9nZXRJdGVtc0FzalF1ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBlLGkscyxuLG89W10sYT1bXSxyPXRoaXMuX2Nvbm5lY3RXaXRoKCk7aWYociYmdClmb3IoZT1yLmxlbmd0aC0xOzA8PWU7ZS0tKWZvcihpPShzPVYocltlXSx0aGlzLmRvY3VtZW50WzBdKSkubGVuZ3RoLTE7MDw9aTtpLS0pKG49Vi5kYXRhKHNbaV0sdGhpcy53aWRnZXRGdWxsTmFtZSkpJiZuIT09dGhpcyYmIW4ub3B0aW9ucy5kaXNhYmxlZCYmYS5wdXNoKFtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLm9wdGlvbnMuaXRlbXM/bi5vcHRpb25zLml0ZW1zLmNhbGwobi5lbGVtZW50KTpWKG4ub3B0aW9ucy5pdGVtcyxuLmVsZW1lbnQpLm5vdChcIi51aS1zb3J0YWJsZS1oZWxwZXJcIikubm90KFwiLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyXCIpLG5dKTtmdW5jdGlvbiBsKCl7by5wdXNoKHRoaXMpfWZvcihhLnB1c2goW1wiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMub3B0aW9ucy5pdGVtcz90aGlzLm9wdGlvbnMuaXRlbXMuY2FsbCh0aGlzLmVsZW1lbnQsbnVsbCx7b3B0aW9uczp0aGlzLm9wdGlvbnMsaXRlbTp0aGlzLmN1cnJlbnRJdGVtfSk6Vih0aGlzLm9wdGlvbnMuaXRlbXMsdGhpcy5lbGVtZW50KS5ub3QoXCIudWktc29ydGFibGUtaGVscGVyXCIpLm5vdChcIi51aS1zb3J0YWJsZS1wbGFjZWhvbGRlclwiKSx0aGlzXSksZT1hLmxlbmd0aC0xOzA8PWU7ZS0tKWFbZV1bMF0uZWFjaChsKTtyZXR1cm4gVihvKX0sX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyZW50SXRlbS5maW5kKFwiOmRhdGEoXCIrdGhpcy53aWRnZXROYW1lK1wiLWl0ZW0pXCIpO3RoaXMuaXRlbXM9Vi5ncmVwKHRoaXMuaXRlbXMsZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxpLmxlbmd0aDtlKyspaWYoaVtlXT09PXQuaXRlbVswXSlyZXR1cm4hMTtyZXR1cm4hMH0pfSxfcmVmcmVzaEl0ZW1zOmZ1bmN0aW9uKHQpe3RoaXMuaXRlbXM9W10sdGhpcy5jb250YWluZXJzPVt0aGlzXTt2YXIgZSxpLHMsbixvLGEscixsLGg9dGhpcy5pdGVtcyxjPVtbXCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5vcHRpb25zLml0ZW1zP3RoaXMub3B0aW9ucy5pdGVtcy5jYWxsKHRoaXMuZWxlbWVudFswXSx0LHtpdGVtOnRoaXMuY3VycmVudEl0ZW19KTpWKHRoaXMub3B0aW9ucy5pdGVtcyx0aGlzLmVsZW1lbnQpLHRoaXNdXSx1PXRoaXMuX2Nvbm5lY3RXaXRoKCk7aWYodSYmdGhpcy5yZWFkeSlmb3IoZT11Lmxlbmd0aC0xOzA8PWU7ZS0tKWZvcihpPShzPVYodVtlXSx0aGlzLmRvY3VtZW50WzBdKSkubGVuZ3RoLTE7MDw9aTtpLS0pKG49Vi5kYXRhKHNbaV0sdGhpcy53aWRnZXRGdWxsTmFtZSkpJiZuIT09dGhpcyYmIW4ub3B0aW9ucy5kaXNhYmxlZCYmKGMucHVzaChbXCJmdW5jdGlvblwiPT10eXBlb2Ygbi5vcHRpb25zLml0ZW1zP24ub3B0aW9ucy5pdGVtcy5jYWxsKG4uZWxlbWVudFswXSx0LHtpdGVtOnRoaXMuY3VycmVudEl0ZW19KTpWKG4ub3B0aW9ucy5pdGVtcyxuLmVsZW1lbnQpLG5dKSx0aGlzLmNvbnRhaW5lcnMucHVzaChuKSk7Zm9yKGU9Yy5sZW5ndGgtMTswPD1lO2UtLSlmb3Iobz1jW2VdWzFdLGk9MCxsPShhPWNbZV1bMF0pLmxlbmd0aDtpPGw7aSsrKShyPVYoYVtpXSkpLmRhdGEodGhpcy53aWRnZXROYW1lK1wiLWl0ZW1cIixvKSxoLnB1c2goe2l0ZW06cixpbnN0YW5jZTpvLHdpZHRoOjAsaGVpZ2h0OjAsbGVmdDowLHRvcDowfSl9LF9yZWZyZXNoSXRlbVBvc2l0aW9uczpmdW5jdGlvbih0KXtmb3IodmFyIGUsaSxzPXRoaXMuaXRlbXMubGVuZ3RoLTE7MDw9cztzLS0pZT10aGlzLml0ZW1zW3NdLHRoaXMuY3VycmVudENvbnRhaW5lciYmZS5pbnN0YW5jZSE9PXRoaXMuY3VycmVudENvbnRhaW5lciYmZS5pdGVtWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXXx8KGk9dGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQ/Vih0aGlzLm9wdGlvbnMudG9sZXJhbmNlRWxlbWVudCxlLml0ZW0pOmUuaXRlbSx0fHwoZS53aWR0aD1pLm91dGVyV2lkdGgoKSxlLmhlaWdodD1pLm91dGVySGVpZ2h0KCkpLGk9aS5vZmZzZXQoKSxlLmxlZnQ9aS5sZWZ0LGUudG9wPWkudG9wKX0scmVmcmVzaFBvc2l0aW9uczpmdW5jdGlvbih0KXt2YXIgZSxpO2lmKHRoaXMuZmxvYXRpbmc9ISF0aGlzLml0ZW1zLmxlbmd0aCYmKFwieFwiPT09dGhpcy5vcHRpb25zLmF4aXN8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5pdGVtc1swXS5pdGVtKSksdGhpcy5vZmZzZXRQYXJlbnQmJnRoaXMuaGVscGVyJiYodGhpcy5vZmZzZXQucGFyZW50PXRoaXMuX2dldFBhcmVudE9mZnNldCgpKSx0aGlzLl9yZWZyZXNoSXRlbVBvc2l0aW9ucyh0KSx0aGlzLm9wdGlvbnMuY3VzdG9tJiZ0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzKXRoaXMub3B0aW9ucy5jdXN0b20ucmVmcmVzaENvbnRhaW5lcnMuY2FsbCh0aGlzKTtlbHNlIGZvcihlPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTswPD1lO2UtLSlpPXRoaXMuY29udGFpbmVyc1tlXS5lbGVtZW50Lm9mZnNldCgpLHRoaXMuY29udGFpbmVyc1tlXS5jb250YWluZXJDYWNoZS5sZWZ0PWkubGVmdCx0aGlzLmNvbnRhaW5lcnNbZV0uY29udGFpbmVyQ2FjaGUudG9wPWkudG9wLHRoaXMuY29udGFpbmVyc1tlXS5jb250YWluZXJDYWNoZS53aWR0aD10aGlzLmNvbnRhaW5lcnNbZV0uZWxlbWVudC5vdXRlcldpZHRoKCksdGhpcy5jb250YWluZXJzW2VdLmNvbnRhaW5lckNhY2hlLmhlaWdodD10aGlzLmNvbnRhaW5lcnNbZV0uZWxlbWVudC5vdXRlckhlaWdodCgpO3JldHVybiB0aGlzfSxfY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24oaSl7dmFyIHMsbixvPShpPWl8fHRoaXMpLm9wdGlvbnM7by5wbGFjZWhvbGRlciYmby5wbGFjZWhvbGRlci5jb25zdHJ1Y3RvciE9PVN0cmluZ3x8KHM9by5wbGFjZWhvbGRlcixuPWkuY3VycmVudEl0ZW1bMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxvLnBsYWNlaG9sZGVyPXtlbGVtZW50OmZ1bmN0aW9uKCl7dmFyIHQ9VihcIjxcIituK1wiPlwiLGkuZG9jdW1lbnRbMF0pO3JldHVybiBpLl9hZGRDbGFzcyh0LFwidWktc29ydGFibGUtcGxhY2Vob2xkZXJcIixzfHxpLmN1cnJlbnRJdGVtWzBdLmNsYXNzTmFtZSkuX3JlbW92ZUNsYXNzKHQsXCJ1aS1zb3J0YWJsZS1oZWxwZXJcIiksXCJ0Ym9keVwiPT09bj9pLl9jcmVhdGVUclBsYWNlaG9sZGVyKGkuY3VycmVudEl0ZW0uZmluZChcInRyXCIpLmVxKDApLFYoXCI8dHI+XCIsaS5kb2N1bWVudFswXSkuYXBwZW5kVG8odCkpOlwidHJcIj09PW4/aS5fY3JlYXRlVHJQbGFjZWhvbGRlcihpLmN1cnJlbnRJdGVtLHQpOlwiaW1nXCI9PT1uJiZ0LmF0dHIoXCJzcmNcIixpLmN1cnJlbnRJdGVtLmF0dHIoXCJzcmNcIikpLHN8fHQuY3NzKFwidmlzaWJpbGl0eVwiLFwiaGlkZGVuXCIpLHR9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe3MmJiFvLmZvcmNlUGxhY2Vob2xkZXJTaXplfHwoZS5oZWlnaHQoKSYmKCFvLmZvcmNlUGxhY2Vob2xkZXJTaXplfHxcInRib2R5XCIhPT1uJiZcInRyXCIhPT1uKXx8ZS5oZWlnaHQoaS5jdXJyZW50SXRlbS5pbm5lckhlaWdodCgpLXBhcnNlSW50KGkuY3VycmVudEl0ZW0uY3NzKFwicGFkZGluZ1RvcFwiKXx8MCwxMCktcGFyc2VJbnQoaS5jdXJyZW50SXRlbS5jc3MoXCJwYWRkaW5nQm90dG9tXCIpfHwwLDEwKSksZS53aWR0aCgpfHxlLndpZHRoKGkuY3VycmVudEl0ZW0uaW5uZXJXaWR0aCgpLXBhcnNlSW50KGkuY3VycmVudEl0ZW0uY3NzKFwicGFkZGluZ0xlZnRcIil8fDAsMTApLXBhcnNlSW50KGkuY3VycmVudEl0ZW0uY3NzKFwicGFkZGluZ1JpZ2h0XCIpfHwwLDEwKSkpfX0pLGkucGxhY2Vob2xkZXI9VihvLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbChpLmVsZW1lbnQsaS5jdXJyZW50SXRlbSkpLGkuY3VycmVudEl0ZW0uYWZ0ZXIoaS5wbGFjZWhvbGRlciksby5wbGFjZWhvbGRlci51cGRhdGUoaSxpLnBsYWNlaG9sZGVyKX0sX2NyZWF0ZVRyUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3QuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCl7VihcIjx0ZD4mIzE2MDs8L3RkPlwiLGkuZG9jdW1lbnRbMF0pLmF0dHIoXCJjb2xzcGFuXCIsVih0aGlzKS5hdHRyKFwiY29sc3BhblwiKXx8MSkuYXBwZW5kVG8oZSl9KX0sX2NvbnRhY3RDb250YWluZXJzOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpLHMsbixvLGEscixsLGgsYz1udWxsLHU9bnVsbCxkPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTswPD1kO2QtLSlWLmNvbnRhaW5zKHRoaXMuY3VycmVudEl0ZW1bMF0sdGhpcy5jb250YWluZXJzW2RdLmVsZW1lbnRbMF0pfHwodGhpcy5faW50ZXJzZWN0c1dpdGgodGhpcy5jb250YWluZXJzW2RdLmNvbnRhaW5lckNhY2hlKT9jJiZWLmNvbnRhaW5zKHRoaXMuY29udGFpbmVyc1tkXS5lbGVtZW50WzBdLGMuZWxlbWVudFswXSl8fChjPXRoaXMuY29udGFpbmVyc1tkXSx1PWQpOnRoaXMuY29udGFpbmVyc1tkXS5jb250YWluZXJDYWNoZS5vdmVyJiYodGhpcy5jb250YWluZXJzW2RdLl90cmlnZ2VyKFwib3V0XCIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1tkXS5jb250YWluZXJDYWNoZS5vdmVyPTApKTtpZihjKWlmKDE9PT10aGlzLmNvbnRhaW5lcnMubGVuZ3RoKXRoaXMuY29udGFpbmVyc1t1XS5jb250YWluZXJDYWNoZS5vdmVyfHwodGhpcy5jb250YWluZXJzW3VdLl90cmlnZ2VyKFwib3ZlclwiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbdV0uY29udGFpbmVyQ2FjaGUub3Zlcj0xKTtlbHNle2ZvcihpPTFlNCxzPW51bGwsbj0obD1jLmZsb2F0aW5nfHx0aGlzLl9pc0Zsb2F0aW5nKHRoaXMuY3VycmVudEl0ZW0pKT9cImxlZnRcIjpcInRvcFwiLG89bD9cIndpZHRoXCI6XCJoZWlnaHRcIixoPWw/XCJwYWdlWFwiOlwicGFnZVlcIixlPXRoaXMuaXRlbXMubGVuZ3RoLTE7MDw9ZTtlLS0pVi5jb250YWlucyh0aGlzLmNvbnRhaW5lcnNbdV0uZWxlbWVudFswXSx0aGlzLml0ZW1zW2VdLml0ZW1bMF0pJiZ0aGlzLml0ZW1zW2VdLml0ZW1bMF0hPT10aGlzLmN1cnJlbnRJdGVtWzBdJiYoYT10aGlzLml0ZW1zW2VdLml0ZW0ub2Zmc2V0KClbbl0scj0hMSx0W2hdLWE+dGhpcy5pdGVtc1tlXVtvXS8yJiYocj0hMCksTWF0aC5hYnModFtoXS1hKTxpJiYoaT1NYXRoLmFicyh0W2hdLWEpLHM9dGhpcy5pdGVtc1tlXSx0aGlzLmRpcmVjdGlvbj1yP1widXBcIjpcImRvd25cIikpOyhzfHx0aGlzLm9wdGlvbnMuZHJvcE9uRW1wdHkpJiYodGhpcy5jdXJyZW50Q29udGFpbmVyIT09dGhpcy5jb250YWluZXJzW3VdPyhzP3RoaXMuX3JlYXJyYW5nZSh0LHMsbnVsbCwhMCk6dGhpcy5fcmVhcnJhbmdlKHQsbnVsbCx0aGlzLmNvbnRhaW5lcnNbdV0uZWxlbWVudCwhMCksdGhpcy5fdHJpZ2dlcihcImNoYW5nZVwiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMuY29udGFpbmVyc1t1XS5fdHJpZ2dlcihcImNoYW5nZVwiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmN1cnJlbnRDb250YWluZXI9dGhpcy5jb250YWluZXJzW3VdLHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlci51cGRhdGUodGhpcy5jdXJyZW50Q29udGFpbmVyLHRoaXMucGxhY2Vob2xkZXIpLHRoaXMuc2Nyb2xsUGFyZW50PXRoaXMucGxhY2Vob2xkZXIuc2Nyb2xsUGFyZW50KCksdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdJiZcIkhUTUxcIiE9PXRoaXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWUmJih0aGlzLm92ZXJmbG93T2Zmc2V0PXRoaXMuc2Nyb2xsUGFyZW50Lm9mZnNldCgpKSx0aGlzLmNvbnRhaW5lcnNbdV0uX3RyaWdnZXIoXCJvdmVyXCIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1t1XS5jb250YWluZXJDYWNoZS5vdmVyPTEpOnRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyfHwodGhpcy5jb250YWluZXJzW3VdLl90cmlnZ2VyKFwib3ZlclwiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyPTEpKX19LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZS5oZWxwZXI/VihlLmhlbHBlci5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW3QsdGhpcy5jdXJyZW50SXRlbV0pKTpcImNsb25lXCI9PT1lLmhlbHBlcj90aGlzLmN1cnJlbnRJdGVtLmNsb25lKCk6dGhpcy5jdXJyZW50SXRlbTtyZXR1cm4gdC5wYXJlbnRzKFwiYm9keVwiKS5sZW5ndGh8fHRoaXMuYXBwZW5kVG9bMF0uYXBwZW5kQ2hpbGQodFswXSksdFswXT09PXRoaXMuY3VycmVudEl0ZW1bMF0mJih0aGlzLl9zdG9yZWRDU1M9e3dpZHRoOnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUuaGVpZ2h0LHBvc2l0aW9uOnRoaXMuY3VycmVudEl0ZW0uY3NzKFwicG9zaXRpb25cIiksdG9wOnRoaXMuY3VycmVudEl0ZW0uY3NzKFwidG9wXCIpLGxlZnQ6dGhpcy5jdXJyZW50SXRlbS5jc3MoXCJsZWZ0XCIpfSksdFswXS5zdHlsZS53aWR0aCYmIWUuZm9yY2VIZWxwZXJTaXplfHx0LndpZHRoKHRoaXMuY3VycmVudEl0ZW0ud2lkdGgoKSksdFswXS5zdHlsZS5oZWlnaHQmJiFlLmZvcmNlSGVscGVyU2l6ZXx8dC5oZWlnaHQodGhpcy5jdXJyZW50SXRlbS5oZWlnaHQoKSksdH0sX2FkanVzdE9mZnNldEZyb21IZWxwZXI6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PXQuc3BsaXQoXCIgXCIpKSxBcnJheS5pc0FycmF5KHQpJiYodD17bGVmdDordFswXSx0b3A6K3RbMV18fDB9KSxcImxlZnRcImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksXCJyaWdodFwiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10LnJpZ2h0K3RoaXMubWFyZ2lucy5sZWZ0KSxcInRvcFwiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10LnRvcCt0aGlzLm1hcmdpbnMudG9wKSxcImJvdHRvbVwiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3RoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpO3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpO3JldHVyblwiYWJzb2x1dGVcIj09PXRoaXMuY3NzUG9zaXRpb24mJnRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmVi5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSkmJih0LmxlZnQrPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKSx0LnRvcCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCkpLCh0aGlzLm9mZnNldFBhcmVudFswXT09PXRoaXMuZG9jdW1lbnRbMF0uYm9keXx8dGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFtZSYmXCJodG1sXCI9PT10aGlzLm9mZnNldFBhcmVudFswXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJlYudWkuaWUpJiYodD17dG9wOjAsbGVmdDowfSkse3RvcDp0LnRvcCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKFwiYm9yZGVyVG9wV2lkdGhcIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKFwiYm9yZGVyTGVmdFdpZHRoXCIpLDEwKXx8MCl9fSxfZ2V0UmVsYXRpdmVPZmZzZXQ6ZnVuY3Rpb24oKXtpZihcInJlbGF0aXZlXCIhPT10aGlzLmNzc1Bvc2l0aW9uKXJldHVybnt0b3A6MCxsZWZ0OjB9O3ZhciB0PXRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTtyZXR1cm57dG9wOnQudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoXCJ0b3BcIiksMTApfHwwKSt0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OnQubGVmdC0ocGFyc2VJbnQodGhpcy5oZWxwZXIuY3NzKFwibGVmdFwiKSwxMCl8fDApK3RoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKX19LF9jYWNoZU1hcmdpbnM6ZnVuY3Rpb24oKXt0aGlzLm1hcmdpbnM9e2xlZnQ6cGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoXCJtYXJnaW5MZWZ0XCIpLDEwKXx8MCx0b3A6cGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoXCJtYXJnaW5Ub3BcIiksMTApfHwwfX0sX2NhY2hlSGVscGVyUHJvcG9ydGlvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlbHBlclByb3BvcnRpb25zPXt3aWR0aDp0aGlzLmhlbHBlci5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuaGVscGVyLm91dGVySGVpZ2h0KCl9fSxfc2V0Q29udGFpbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgdCxlLGk9dGhpcy5vcHRpb25zO1wicGFyZW50XCI9PT1pLmNvbnRhaW5tZW50JiYoaS5jb250YWlubWVudD10aGlzLmhlbHBlclswXS5wYXJlbnROb2RlKSxcImRvY3VtZW50XCIhPT1pLmNvbnRhaW5tZW50JiZcIndpbmRvd1wiIT09aS5jb250YWlubWVudHx8KHRoaXMuY29udGFpbm1lbnQ9WzAtdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCwwLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLFwiZG9jdW1lbnRcIj09PWkuY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCwoXCJkb2N1bWVudFwiPT09aS5jb250YWlubWVudD90aGlzLmRvY3VtZW50LmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0OnRoaXMud2luZG93LmhlaWdodCgpfHx0aGlzLmRvY3VtZW50WzBdLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKSwvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvLnRlc3QoaS5jb250YWlubWVudCl8fCh0PVYoaS5jb250YWlubWVudClbMF0sZT1WKGkuY29udGFpbm1lbnQpLm9mZnNldCgpLGk9XCJoaWRkZW5cIiE9PVYodCkuY3NzKFwib3ZlcmZsb3dcIiksdGhpcy5jb250YWlubWVudD1bZS5sZWZ0KyhwYXJzZUludChWKHQpLmNzcyhcImJvcmRlckxlZnRXaWR0aFwiKSwxMCl8fDApKyhwYXJzZUludChWKHQpLmNzcyhcInBhZGRpbmdMZWZ0XCIpLDEwKXx8MCktdGhpcy5tYXJnaW5zLmxlZnQsZS50b3ArKHBhcnNlSW50KFYodCkuY3NzKFwiYm9yZGVyVG9wV2lkdGhcIiksMTApfHwwKSsocGFyc2VJbnQoVih0KS5jc3MoXCJwYWRkaW5nVG9wXCIpLDEwKXx8MCktdGhpcy5tYXJnaW5zLnRvcCxlLmxlZnQrKGk/TWF0aC5tYXgodC5zY3JvbGxXaWR0aCx0Lm9mZnNldFdpZHRoKTp0Lm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoVih0KS5jc3MoXCJib3JkZXJMZWZ0V2lkdGhcIiksMTApfHwwKS0ocGFyc2VJbnQoVih0KS5jc3MoXCJwYWRkaW5nUmlnaHRcIiksMTApfHwwKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lucy5sZWZ0LGUudG9wKyhpP01hdGgubWF4KHQuc2Nyb2xsSGVpZ2h0LHQub2Zmc2V0SGVpZ2h0KTp0Lm9mZnNldEhlaWdodCktKHBhcnNlSW50KFYodCkuY3NzKFwiYm9yZGVyVG9wV2lkdGhcIiksMTApfHwwKS0ocGFyc2VJbnQoVih0KS5jc3MoXCJwYWRkaW5nQm90dG9tXCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcF0pfSxfY29udmVydFBvc2l0aW9uVG86ZnVuY3Rpb24odCxlKXtlPWV8fHRoaXMucG9zaXRpb247dmFyIGk9XCJhYnNvbHV0ZVwiPT09dD8xOi0xLHM9XCJhYnNvbHV0ZVwiIT09dGhpcy5jc3NQb3NpdGlvbnx8dGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdJiZWLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKT90aGlzLnNjcm9sbFBhcmVudDp0aGlzLm9mZnNldFBhcmVudCx0PS8oaHRtbHxib2R5KS9pLnRlc3Qoc1swXS50YWdOYW1lKTtyZXR1cm57dG9wOmUudG9wK3RoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcCppK3RoaXMub2Zmc2V0LnBhcmVudC50b3AqaS0oXCJmaXhlZFwiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk6dD8wOnMuc2Nyb2xsVG9wKCkpKmksbGVmdDplLmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCppK3RoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KmktKFwiZml4ZWRcIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKTp0PzA6cy5zY3JvbGxMZWZ0KCkpKml9fSxfZ2VuZXJhdGVQb3NpdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMsaT10LnBhZ2VYLHM9dC5wYWdlWSxuPVwiYWJzb2x1dGVcIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmVi5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSk/dGhpcy5zY3JvbGxQYXJlbnQ6dGhpcy5vZmZzZXRQYXJlbnQsbz0vKGh0bWx8Ym9keSkvaS50ZXN0KG5bMF0udGFnTmFtZSk7cmV0dXJuXCJyZWxhdGl2ZVwiIT09dGhpcy5jc3NQb3NpdGlvbnx8dGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMub2Zmc2V0UGFyZW50WzBdfHwodGhpcy5vZmZzZXQucmVsYXRpdmU9dGhpcy5fZ2V0UmVsYXRpdmVPZmZzZXQoKSksdGhpcy5vcmlnaW5hbFBvc2l0aW9uJiYodGhpcy5jb250YWlubWVudCYmKHQucGFnZVgtdGhpcy5vZmZzZXQuY2xpY2subGVmdDx0aGlzLmNvbnRhaW5tZW50WzBdJiYoaT10aGlzLmNvbnRhaW5tZW50WzBdK3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQpLHQucGFnZVktdGhpcy5vZmZzZXQuY2xpY2sudG9wPHRoaXMuY29udGFpbm1lbnRbMV0mJihzPXRoaXMuY29udGFpbm1lbnRbMV0rdGhpcy5vZmZzZXQuY2xpY2sudG9wKSx0LnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+dGhpcy5jb250YWlubWVudFsyXSYmKGk9dGhpcy5jb250YWlubWVudFsyXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSx0LnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD50aGlzLmNvbnRhaW5tZW50WzNdJiYocz10aGlzLmNvbnRhaW5tZW50WzNdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCkpLGUuZ3JpZCYmKHQ9dGhpcy5vcmlnaW5hbFBhZ2VZK01hdGgucm91bmQoKHMtdGhpcy5vcmlnaW5hbFBhZ2VZKS9lLmdyaWRbMV0pKmUuZ3JpZFsxXSxzPSF0aGlzLmNvbnRhaW5tZW50fHx0LXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49dGhpcy5jb250YWlubWVudFsxXSYmdC10aGlzLm9mZnNldC5jbGljay50b3A8PXRoaXMuY29udGFpbm1lbnRbM10/dDp0LXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49dGhpcy5jb250YWlubWVudFsxXT90LWUuZ3JpZFsxXTp0K2UuZ3JpZFsxXSx0PXRoaXMub3JpZ2luYWxQYWdlWCtNYXRoLnJvdW5kKChpLXRoaXMub3JpZ2luYWxQYWdlWCkvZS5ncmlkWzBdKSplLmdyaWRbMF0saT0hdGhpcy5jb250YWlubWVudHx8dC10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj10aGlzLmNvbnRhaW5tZW50WzBdJiZ0LXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8PXRoaXMuY29udGFpbm1lbnRbMl0/dDp0LXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PXRoaXMuY29udGFpbm1lbnRbMF0/dC1lLmdyaWRbMF06dCtlLmdyaWRbMF0pKSx7dG9wOnMtdGhpcy5vZmZzZXQuY2xpY2sudG9wLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wKyhcImZpeGVkXCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTpvPzA6bi5zY3JvbGxUb3AoKSksbGVmdDppLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQtdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCsoXCJmaXhlZFwiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOm8/MDpuLnNjcm9sbExlZnQoKSl9fSxfcmVhcnJhbmdlOmZ1bmN0aW9uKHQsZSxpLHMpe2k/aVswXS5hcHBlbmRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKTplLml0ZW1bMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5wbGFjZWhvbGRlclswXSxcImRvd25cIj09PXRoaXMuZGlyZWN0aW9uP2UuaXRlbVswXTplLml0ZW1bMF0ubmV4dFNpYmxpbmcpLHRoaXMuY291bnRlcj10aGlzLmNvdW50ZXI/Kyt0aGlzLmNvdW50ZXI6MTt2YXIgbj10aGlzLmNvdW50ZXI7dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtuPT09dGhpcy5jb3VudGVyJiZ0aGlzLnJlZnJlc2hQb3NpdGlvbnMoIXMpfSl9LF9jbGVhcjpmdW5jdGlvbih0LGUpe3RoaXMucmV2ZXJ0aW5nPSExO3ZhciBpLHM9W107aWYoIXRoaXMuX25vRmluYWxTb3J0JiZ0aGlzLmN1cnJlbnRJdGVtLnBhcmVudCgpLmxlbmd0aCYmdGhpcy5wbGFjZWhvbGRlci5iZWZvcmUodGhpcy5jdXJyZW50SXRlbSksdGhpcy5fbm9GaW5hbFNvcnQ9bnVsbCx0aGlzLmhlbHBlclswXT09PXRoaXMuY3VycmVudEl0ZW1bMF0pe2ZvcihpIGluIHRoaXMuX3N0b3JlZENTUylcImF1dG9cIiE9PXRoaXMuX3N0b3JlZENTU1tpXSYmXCJzdGF0aWNcIiE9PXRoaXMuX3N0b3JlZENTU1tpXXx8KHRoaXMuX3N0b3JlZENTU1tpXT1cIlwiKTt0aGlzLmN1cnJlbnRJdGVtLmNzcyh0aGlzLl9zdG9yZWRDU1MpLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuY3VycmVudEl0ZW0sXCJ1aS1zb3J0YWJsZS1oZWxwZXJcIil9ZWxzZSB0aGlzLmN1cnJlbnRJdGVtLnNob3coKTtmdW5jdGlvbiBuKGUsaSxzKXtyZXR1cm4gZnVuY3Rpb24odCl7cy5fdHJpZ2dlcihlLHQsaS5fdWlIYXNoKGkpKX19Zm9yKHRoaXMuZnJvbU91dHNpZGUmJiFlJiZzLnB1c2goZnVuY3Rpb24odCl7dGhpcy5fdHJpZ2dlcihcInJlY2VpdmVcIix0LHRoaXMuX3VpSGFzaCh0aGlzLmZyb21PdXRzaWRlKSl9KSwhdGhpcy5mcm9tT3V0c2lkZSYmdGhpcy5kb21Qb3NpdGlvbi5wcmV2PT09dGhpcy5jdXJyZW50SXRlbS5wcmV2KCkubm90KFwiLnVpLXNvcnRhYmxlLWhlbHBlclwiKVswXSYmdGhpcy5kb21Qb3NpdGlvbi5wYXJlbnQ9PT10aGlzLmN1cnJlbnRJdGVtLnBhcmVudCgpWzBdfHxlfHxzLnB1c2goZnVuY3Rpb24odCl7dGhpcy5fdHJpZ2dlcihcInVwZGF0ZVwiLHQsdGhpcy5fdWlIYXNoKCkpfSksdGhpcyE9PXRoaXMuY3VycmVudENvbnRhaW5lciYmKGV8fChzLnB1c2goZnVuY3Rpb24odCl7dGhpcy5fdHJpZ2dlcihcInJlbW92ZVwiLHQsdGhpcy5fdWlIYXNoKCkpfSkscy5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKFwicmVjZWl2ZVwiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKX19LmNhbGwodGhpcyx0aGlzLmN1cnJlbnRDb250YWluZXIpKSxzLnB1c2goZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2UuX3RyaWdnZXIoXCJ1cGRhdGVcIix0LHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jdXJyZW50Q29udGFpbmVyKSkpKSxpPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTswPD1pO2ktLSllfHxzLnB1c2gobihcImRlYWN0aXZhdGVcIix0aGlzLHRoaXMuY29udGFpbmVyc1tpXSkpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5vdmVyJiYocy5wdXNoKG4oXCJvdXRcIix0aGlzLHRoaXMuY29udGFpbmVyc1tpXSkpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5vdmVyPTApO2lmKHRoaXMuc3RvcmVkQ3Vyc29yJiYodGhpcy5kb2N1bWVudC5maW5kKFwiYm9keVwiKS5jc3MoXCJjdXJzb3JcIix0aGlzLnN0b3JlZEN1cnNvciksdGhpcy5zdG9yZWRTdHlsZXNoZWV0LnJlbW92ZSgpKSx0aGlzLl9zdG9yZWRPcGFjaXR5JiZ0aGlzLmhlbHBlci5jc3MoXCJvcGFjaXR5XCIsdGhpcy5fc3RvcmVkT3BhY2l0eSksdGhpcy5fc3RvcmVkWkluZGV4JiZ0aGlzLmhlbHBlci5jc3MoXCJ6SW5kZXhcIixcImF1dG9cIj09PXRoaXMuX3N0b3JlZFpJbmRleD9cIlwiOnRoaXMuX3N0b3JlZFpJbmRleCksdGhpcy5kcmFnZ2luZz0hMSxlfHx0aGlzLl90cmlnZ2VyKFwiYmVmb3JlU3RvcFwiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKSx0aGlzLmNhbmNlbEhlbHBlclJlbW92YWx8fCh0aGlzLmhlbHBlclswXSE9PXRoaXMuY3VycmVudEl0ZW1bMF0mJnRoaXMuaGVscGVyLnJlbW92ZSgpLHRoaXMuaGVscGVyPW51bGwpLCFlKXtmb3IoaT0wO2k8cy5sZW5ndGg7aSsrKXNbaV0uY2FsbCh0aGlzLHQpO3RoaXMuX3RyaWdnZXIoXCJzdG9wXCIsdCx0aGlzLl91aUhhc2goKSl9cmV0dXJuIHRoaXMuZnJvbU91dHNpZGU9ITEsIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbH0sX3RyaWdnZXI6ZnVuY3Rpb24oKXshMT09PVYuV2lkZ2V0LnByb3RvdHlwZS5fdHJpZ2dlci5hcHBseSh0aGlzLGFyZ3VtZW50cykmJnRoaXMuY2FuY2VsKCl9LF91aUhhc2g6ZnVuY3Rpb24odCl7dmFyIGU9dHx8dGhpcztyZXR1cm57aGVscGVyOmUuaGVscGVyLHBsYWNlaG9sZGVyOmUucGxhY2Vob2xkZXJ8fFYoW10pLHBvc2l0aW9uOmUucG9zaXRpb24sb3JpZ2luYWxQb3NpdGlvbjplLm9yaWdpbmFsUG9zaXRpb24sb2Zmc2V0OmUucG9zaXRpb25BYnMsaXRlbTplLmN1cnJlbnRJdGVtLHNlbmRlcjp0P3QuZWxlbWVudDpudWxsfX19KSxWLndpZGdldChcInVpLmFjY29yZGlvblwiLHt2ZXJzaW9uOlwiMS4xMy4yXCIsb3B0aW9uczp7YWN0aXZlOjAsYW5pbWF0ZTp7fSxjbGFzc2VzOntcInVpLWFjY29yZGlvbi1oZWFkZXJcIjpcInVpLWNvcm5lci10b3BcIixcInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkXCI6XCJ1aS1jb3JuZXItYWxsXCIsXCJ1aS1hY2NvcmRpb24tY29udGVudFwiOlwidWktY29ybmVyLWJvdHRvbVwifSxjb2xsYXBzaWJsZTohMSxldmVudDpcImNsaWNrXCIsaGVhZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LmZpbmQoXCI+IGxpID4gOmZpcnN0LWNoaWxkXCIpLmFkZCh0LmZpbmQoXCI+IDpub3QobGkpXCIpLmV2ZW4oKSl9LGhlaWdodFN0eWxlOlwiYXV0b1wiLGljb25zOnthY3RpdmVIZWFkZXI6XCJ1aS1pY29uLXRyaWFuZ2xlLTEtc1wiLGhlYWRlcjpcInVpLWljb24tdHJpYW5nbGUtMS1lXCJ9LGFjdGl2YXRlOm51bGwsYmVmb3JlQWN0aXZhdGU6bnVsbH0saGlkZVByb3BzOntib3JkZXJUb3BXaWR0aDpcImhpZGVcIixib3JkZXJCb3R0b21XaWR0aDpcImhpZGVcIixwYWRkaW5nVG9wOlwiaGlkZVwiLHBhZGRpbmdCb3R0b206XCJoaWRlXCIsaGVpZ2h0OlwiaGlkZVwifSxzaG93UHJvcHM6e2JvcmRlclRvcFdpZHRoOlwic2hvd1wiLGJvcmRlckJvdHRvbVdpZHRoOlwic2hvd1wiLHBhZGRpbmdUb3A6XCJzaG93XCIscGFkZGluZ0JvdHRvbTpcInNob3dcIixoZWlnaHQ6XCJzaG93XCJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7dGhpcy5wcmV2U2hvdz10aGlzLnByZXZIaWRlPVYoKSx0aGlzLl9hZGRDbGFzcyhcInVpLWFjY29yZGlvblwiLFwidWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldFwiKSx0aGlzLmVsZW1lbnQuYXR0cihcInJvbGVcIixcInRhYmxpc3RcIiksdC5jb2xsYXBzaWJsZXx8ITEhPT10LmFjdGl2ZSYmbnVsbCE9dC5hY3RpdmV8fCh0LmFjdGl2ZT0wKSx0aGlzLl9wcm9jZXNzUGFuZWxzKCksdC5hY3RpdmU8MCYmKHQuYWN0aXZlKz10aGlzLmhlYWRlcnMubGVuZ3RoKSx0aGlzLl9yZWZyZXNoKCl9LF9nZXRDcmVhdGVFdmVudERhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aGVhZGVyOnRoaXMuYWN0aXZlLHBhbmVsOnRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5uZXh0KCk6VigpfX0sX2NyZWF0ZUljb25zOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLm9wdGlvbnMuaWNvbnM7ZSYmKHQ9VihcIjxzcGFuPlwiKSx0aGlzLl9hZGRDbGFzcyh0LFwidWktYWNjb3JkaW9uLWhlYWRlci1pY29uXCIsXCJ1aS1pY29uIFwiK2UuaGVhZGVyKSx0LnByZXBlbmRUbyh0aGlzLmhlYWRlcnMpLHQ9dGhpcy5hY3RpdmUuY2hpbGRyZW4oXCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uXCIpLHRoaXMuX3JlbW92ZUNsYXNzKHQsZS5oZWFkZXIpLl9hZGRDbGFzcyh0LG51bGwsZS5hY3RpdmVIZWFkZXIpLl9hZGRDbGFzcyh0aGlzLmhlYWRlcnMsXCJ1aS1hY2NvcmRpb24taWNvbnNcIikpfSxfZGVzdHJveUljb25zOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oZWFkZXJzLFwidWktYWNjb3JkaW9uLWljb25zXCIpLHRoaXMuaGVhZGVycy5jaGlsZHJlbihcIi51aS1hY2NvcmRpb24taGVhZGVyLWljb25cIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoXCJyb2xlXCIpLHRoaXMuaGVhZGVycy5yZW1vdmVBdHRyKFwicm9sZSBhcmlhLWV4cGFuZGVkIGFyaWEtc2VsZWN0ZWQgYXJpYS1jb250cm9scyB0YWJJbmRleFwiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMuX2Rlc3Ryb3lJY29ucygpLHQ9dGhpcy5oZWFkZXJzLm5leHQoKS5jc3MoXCJkaXNwbGF5XCIsXCJcIikucmVtb3ZlQXR0cihcInJvbGUgYXJpYS1oaWRkZW4gYXJpYS1sYWJlbGxlZGJ5XCIpLnJlbW92ZVVuaXF1ZUlkKCksXCJjb250ZW50XCIhPT10aGlzLm9wdGlvbnMuaGVpZ2h0U3R5bGUmJnQuY3NzKFwiaGVpZ2h0XCIsXCJcIil9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXtcImFjdGl2ZVwiIT09dD8oXCJldmVudFwiPT09dCYmKHRoaXMub3B0aW9ucy5ldmVudCYmdGhpcy5fb2ZmKHRoaXMuaGVhZGVycyx0aGlzLm9wdGlvbnMuZXZlbnQpLHRoaXMuX3NldHVwRXZlbnRzKGUpKSx0aGlzLl9zdXBlcih0LGUpLFwiY29sbGFwc2libGVcIiE9PXR8fGV8fCExIT09dGhpcy5vcHRpb25zLmFjdGl2ZXx8dGhpcy5fYWN0aXZhdGUoMCksXCJpY29uc1wiPT09dCYmKHRoaXMuX2Rlc3Ryb3lJY29ucygpLGUmJnRoaXMuX2NyZWF0ZUljb25zKCkpKTp0aGlzLl9hY3RpdmF0ZShlKX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKHQpe3RoaXMuX3N1cGVyKHQpLHRoaXMuZWxlbWVudC5hdHRyKFwiYXJpYS1kaXNhYmxlZFwiLHQpLHRoaXMuX3RvZ2dsZUNsYXNzKG51bGwsXCJ1aS1zdGF0ZS1kaXNhYmxlZFwiLCEhdCksdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSxudWxsLFwidWktc3RhdGUtZGlzYWJsZWRcIiwhIXQpfSxfa2V5ZG93bjpmdW5jdGlvbih0KXtpZighdC5hbHRLZXkmJiF0LmN0cmxLZXkpe3ZhciBlPVYudWkua2V5Q29kZSxpPXRoaXMuaGVhZGVycy5sZW5ndGgscz10aGlzLmhlYWRlcnMuaW5kZXgodC50YXJnZXQpLG49ITE7c3dpdGNoKHQua2V5Q29kZSl7Y2FzZSBlLlJJR0hUOmNhc2UgZS5ET1dOOm49dGhpcy5oZWFkZXJzWyhzKzEpJWldO2JyZWFrO2Nhc2UgZS5MRUZUOmNhc2UgZS5VUDpuPXRoaXMuaGVhZGVyc1socy0xK2kpJWldO2JyZWFrO2Nhc2UgZS5TUEFDRTpjYXNlIGUuRU5URVI6dGhpcy5fZXZlbnRIYW5kbGVyKHQpO2JyZWFrO2Nhc2UgZS5IT01FOm49dGhpcy5oZWFkZXJzWzBdO2JyZWFrO2Nhc2UgZS5FTkQ6bj10aGlzLmhlYWRlcnNbaS0xXX1uJiYoVih0LnRhcmdldCkuYXR0cihcInRhYkluZGV4XCIsLTEpLFYobikuYXR0cihcInRhYkluZGV4XCIsMCksVihuKS50cmlnZ2VyKFwiZm9jdXNcIiksdC5wcmV2ZW50RGVmYXVsdCgpKX19LF9wYW5lbEtleURvd246ZnVuY3Rpb24odCl7dC5rZXlDb2RlPT09Vi51aS5rZXlDb2RlLlVQJiZ0LmN0cmxLZXkmJlYodC5jdXJyZW50VGFyZ2V0KS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zO3RoaXMuX3Byb2Nlc3NQYW5lbHMoKSwhMT09PXQuYWN0aXZlJiYhMD09PXQuY29sbGFwc2libGV8fCF0aGlzLmhlYWRlcnMubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1WKCkpOiExPT09dC5hY3RpdmU/dGhpcy5fYWN0aXZhdGUoMCk6dGhpcy5hY3RpdmUubGVuZ3RoJiYhVi5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5hY3RpdmVbMF0pP3RoaXMuaGVhZGVycy5sZW5ndGg9PT10aGlzLmhlYWRlcnMuZmluZChcIi51aS1zdGF0ZS1kaXNhYmxlZFwiKS5sZW5ndGg/KHQuYWN0aXZlPSExLHRoaXMuYWN0aXZlPVYoKSk6dGhpcy5fYWN0aXZhdGUoTWF0aC5tYXgoMCx0LmFjdGl2ZS0xKSk6dC5hY3RpdmU9dGhpcy5oZWFkZXJzLmluZGV4KHRoaXMuYWN0aXZlKSx0aGlzLl9kZXN0cm95SWNvbnMoKSx0aGlzLl9yZWZyZXNoKCl9LF9wcm9jZXNzUGFuZWxzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oZWFkZXJzLGU9dGhpcy5wYW5lbHM7XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmhlYWRlcj90aGlzLmhlYWRlcnM9dGhpcy5vcHRpb25zLmhlYWRlcih0aGlzLmVsZW1lbnQpOnRoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhlYWRlcnMsXCJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkXCIsXCJ1aS1zdGF0ZS1kZWZhdWx0XCIpLHRoaXMucGFuZWxzPXRoaXMuaGVhZGVycy5uZXh0KCkuZmlsdGVyKFwiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKVwiKS5oaWRlKCksdGhpcy5fYWRkQ2xhc3ModGhpcy5wYW5lbHMsXCJ1aS1hY2NvcmRpb24tY29udGVudFwiLFwidWktaGVscGVyLXJlc2V0IHVpLXdpZGdldC1jb250ZW50XCIpLGUmJih0aGlzLl9vZmYodC5ub3QodGhpcy5oZWFkZXJzKSksdGhpcy5fb2ZmKGUubm90KHRoaXMucGFuZWxzKSkpfSxfcmVmcmVzaDpmdW5jdGlvbigpe3ZhciBpLHQ9dGhpcy5vcHRpb25zLGU9dC5oZWlnaHRTdHlsZSxzPXRoaXMuZWxlbWVudC5wYXJlbnQoKTt0aGlzLmFjdGl2ZT10aGlzLl9maW5kQWN0aXZlKHQuYWN0aXZlKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmFjdGl2ZSxcInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlXCIsXCJ1aS1zdGF0ZS1hY3RpdmVcIikuX3JlbW92ZUNsYXNzKHRoaXMuYWN0aXZlLFwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWRcIiksdGhpcy5fYWRkQ2xhc3ModGhpcy5hY3RpdmUubmV4dCgpLFwidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlXCIpLHRoaXMuYWN0aXZlLm5leHQoKS5zaG93KCksdGhpcy5oZWFkZXJzLmF0dHIoXCJyb2xlXCIsXCJ0YWJcIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PVYodGhpcyksZT10LnVuaXF1ZUlkKCkuYXR0cihcImlkXCIpLGk9dC5uZXh0KCkscz1pLnVuaXF1ZUlkKCkuYXR0cihcImlkXCIpO3QuYXR0cihcImFyaWEtY29udHJvbHNcIixzKSxpLmF0dHIoXCJhcmlhLWxhYmVsbGVkYnlcIixlKX0pLm5leHQoKS5hdHRyKFwicm9sZVwiLFwidGFicGFuZWxcIiksdGhpcy5oZWFkZXJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7XCJhcmlhLXNlbGVjdGVkXCI6XCJmYWxzZVwiLFwiYXJpYS1leHBhbmRlZFwiOlwiZmFsc2VcIix0YWJJbmRleDotMX0pLm5leHQoKS5hdHRyKHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9KS5oaWRlKCksdGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLmF0dHIoe1wiYXJpYS1zZWxlY3RlZFwiOlwidHJ1ZVwiLFwiYXJpYS1leHBhbmRlZFwiOlwidHJ1ZVwiLHRhYkluZGV4OjB9KS5uZXh0KCkuYXR0cih7XCJhcmlhLWhpZGRlblwiOlwiZmFsc2VcIn0pOnRoaXMuaGVhZGVycy5lcSgwKS5hdHRyKFwidGFiSW5kZXhcIiwwKSx0aGlzLl9jcmVhdGVJY29ucygpLHRoaXMuX3NldHVwRXZlbnRzKHQuZXZlbnQpLFwiZmlsbFwiPT09ZT8oaT1zLmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncyhcIjp2aXNpYmxlXCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLGU9dC5jc3MoXCJwb3NpdGlvblwiKTtcImFic29sdXRlXCIhPT1lJiZcImZpeGVkXCIhPT1lJiYoaS09dC5vdXRlckhlaWdodCghMCkpfSksdGhpcy5oZWFkZXJzLmVhY2goZnVuY3Rpb24oKXtpLT1WKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMuaGVhZGVycy5uZXh0KCkuZWFjaChmdW5jdGlvbigpe1YodGhpcykuaGVpZ2h0KE1hdGgubWF4KDAsaS1WKHRoaXMpLmlubmVySGVpZ2h0KCkrVih0aGlzKS5oZWlnaHQoKSkpfSkuY3NzKFwib3ZlcmZsb3dcIixcImF1dG9cIikpOlwiYXV0b1wiPT09ZSYmKGk9MCx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLmlzKFwiOnZpc2libGVcIik7dHx8Vih0aGlzKS5zaG93KCksaT1NYXRoLm1heChpLFYodGhpcykuY3NzKFwiaGVpZ2h0XCIsXCJcIikuaGVpZ2h0KCkpLHR8fFYodGhpcykuaGlkZSgpfSkuaGVpZ2h0KGkpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKHQpe3Q9dGhpcy5fZmluZEFjdGl2ZSh0KVswXTt0IT09dGhpcy5hY3RpdmVbMF0mJih0PXR8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OnQsY3VycmVudFRhcmdldDp0LHByZXZlbnREZWZhdWx0OlYubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHQ/dGhpcy5oZWFkZXJzLmVxKHQpOlYoKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKHQpe3ZhciBpPXtrZXlkb3duOlwiX2tleWRvd25cIn07dCYmVi5lYWNoKHQuc3BsaXQoXCIgXCIpLGZ1bmN0aW9uKHQsZSl7aVtlXT1cIl9ldmVudEhhbmRsZXJcIn0pLHRoaXMuX29mZih0aGlzLmhlYWRlcnMuYWRkKHRoaXMuaGVhZGVycy5uZXh0KCkpKSx0aGlzLl9vbih0aGlzLmhlYWRlcnMsaSksdGhpcy5fb24odGhpcy5oZWFkZXJzLm5leHQoKSx7a2V5ZG93bjpcIl9wYW5lbEtleURvd25cIn0pLHRoaXMuX2hvdmVyYWJsZSh0aGlzLmhlYWRlcnMpLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmhlYWRlcnMpfSxfZXZlbnRIYW5kbGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucyxpPXRoaXMuYWN0aXZlLHM9Vih0LmN1cnJlbnRUYXJnZXQpLG49c1swXT09PWlbMF0sbz1uJiZlLmNvbGxhcHNpYmxlLGE9bz9WKCk6cy5uZXh0KCkscj1pLm5leHQoKSxhPXtvbGRIZWFkZXI6aSxvbGRQYW5lbDpyLG5ld0hlYWRlcjpvP1YoKTpzLG5ld1BhbmVsOmF9O3QucHJldmVudERlZmF1bHQoKSxuJiYhZS5jb2xsYXBzaWJsZXx8ITE9PT10aGlzLl90cmlnZ2VyKFwiYmVmb3JlQWN0aXZhdGVcIix0LGEpfHwoZS5hY3RpdmU9IW8mJnRoaXMuaGVhZGVycy5pbmRleChzKSx0aGlzLmFjdGl2ZT1uP1YoKTpzLHRoaXMuX3RvZ2dsZShhKSx0aGlzLl9yZW1vdmVDbGFzcyhpLFwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmVcIixcInVpLXN0YXRlLWFjdGl2ZVwiKSxlLmljb25zJiYoaT1pLmNoaWxkcmVuKFwiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvblwiKSx0aGlzLl9yZW1vdmVDbGFzcyhpLG51bGwsZS5pY29ucy5hY3RpdmVIZWFkZXIpLl9hZGRDbGFzcyhpLG51bGwsZS5pY29ucy5oZWFkZXIpKSxufHwodGhpcy5fcmVtb3ZlQ2xhc3MocyxcInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkXCIpLl9hZGRDbGFzcyhzLFwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmVcIixcInVpLXN0YXRlLWFjdGl2ZVwiKSxlLmljb25zJiYobj1zLmNoaWxkcmVuKFwiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvblwiKSx0aGlzLl9yZW1vdmVDbGFzcyhuLG51bGwsZS5pY29ucy5oZWFkZXIpLl9hZGRDbGFzcyhuLG51bGwsZS5pY29ucy5hY3RpdmVIZWFkZXIpKSx0aGlzLl9hZGRDbGFzcyhzLm5leHQoKSxcInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZVwiKSkpfSxfdG9nZ2xlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubmV3UGFuZWwsaT10aGlzLnByZXZTaG93Lmxlbmd0aD90aGlzLnByZXZTaG93OnQub2xkUGFuZWw7dGhpcy5wcmV2U2hvdy5hZGQodGhpcy5wcmV2SGlkZSkuc3RvcCghMCwhMCksdGhpcy5wcmV2U2hvdz1lLHRoaXMucHJldkhpZGU9aSx0aGlzLm9wdGlvbnMuYW5pbWF0ZT90aGlzLl9hbmltYXRlKGUsaSx0KTooaS5oaWRlKCksZS5zaG93KCksdGhpcy5fdG9nZ2xlQ29tcGxldGUodCkpLGkuYXR0cih7XCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSksaS5wcmV2KCkuYXR0cih7XCJhcmlhLXNlbGVjdGVkXCI6XCJmYWxzZVwiLFwiYXJpYS1leHBhbmRlZFwiOlwiZmFsc2VcIn0pLGUubGVuZ3RoJiZpLmxlbmd0aD9pLnByZXYoKS5hdHRyKHt0YWJJbmRleDotMSxcImFyaWEtZXhwYW5kZWRcIjpcImZhbHNlXCJ9KTplLmxlbmd0aCYmdGhpcy5oZWFkZXJzLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAwPT09cGFyc2VJbnQoVih0aGlzKS5hdHRyKFwidGFiSW5kZXhcIiksMTApfSkuYXR0cihcInRhYkluZGV4XCIsLTEpLGUuYXR0cihcImFyaWEtaGlkZGVuXCIsXCJmYWxzZVwiKS5wcmV2KCkuYXR0cih7XCJhcmlhLXNlbGVjdGVkXCI6XCJ0cnVlXCIsXCJhcmlhLWV4cGFuZGVkXCI6XCJ0cnVlXCIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbih0LGksZSl7dmFyIHMsbixvLGE9dGhpcyxyPTAsbD10LmNzcyhcImJveC1zaXppbmdcIiksaD10Lmxlbmd0aCYmKCFpLmxlbmd0aHx8dC5pbmRleCgpPGkuaW5kZXgoKSksYz10aGlzLm9wdGlvbnMuYW5pbWF0ZXx8e30sdT1oJiZjLmRvd258fGMsaD1mdW5jdGlvbigpe2EuX3RvZ2dsZUNvbXBsZXRlKGUpfTtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgdSYmKG89dSksXCJzdHJpbmdcIj09dHlwZW9mIHUmJihuPXUpLG49bnx8dS5lYXNpbmd8fGMuZWFzaW5nLG89b3x8dS5kdXJhdGlvbnx8Yy5kdXJhdGlvbixpLmxlbmd0aD90Lmxlbmd0aD8ocz10LnNob3coKS5vdXRlckhlaWdodCgpLGkuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyx7ZHVyYXRpb246byxlYXNpbmc6bixzdGVwOmZ1bmN0aW9uKHQsZSl7ZS5ub3c9TWF0aC5yb3VuZCh0KX19KSx2b2lkIHQuaGlkZSgpLmFuaW1hdGUodGhpcy5zaG93UHJvcHMse2R1cmF0aW9uOm8sZWFzaW5nOm4sY29tcGxldGU6aCxzdGVwOmZ1bmN0aW9uKHQsZSl7ZS5ub3c9TWF0aC5yb3VuZCh0KSxcImhlaWdodFwiIT09ZS5wcm9wP1wiY29udGVudC1ib3hcIj09PWwmJihyKz1lLm5vdyk6XCJjb250ZW50XCIhPT1hLm9wdGlvbnMuaGVpZ2h0U3R5bGUmJihlLm5vdz1NYXRoLnJvdW5kKHMtaS5vdXRlckhlaWdodCgpLXIpLHI9MCl9fSkpOmkuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyxvLG4saCk6dC5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLG8sbixoKX0sX3RvZ2dsZUNvbXBsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXQub2xkUGFuZWwsaT1lLnByZXYoKTt0aGlzLl9yZW1vdmVDbGFzcyhlLFwidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlXCIpLHRoaXMuX3JlbW92ZUNsYXNzKGksXCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZVwiKS5fYWRkQ2xhc3MoaSxcInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkXCIpLGUubGVuZ3RoJiYoZS5wYXJlbnQoKVswXS5jbGFzc05hbWU9ZS5wYXJlbnQoKVswXS5jbGFzc05hbWUpLHRoaXMuX3RyaWdnZXIoXCJhY3RpdmF0ZVwiLG51bGwsdCl9fSksVi53aWRnZXQoXCJ1aS5tZW51XCIse3ZlcnNpb246XCIxLjEzLjJcIixkZWZhdWx0RWxlbWVudDpcIjx1bD5cIixkZWxheTozMDAsb3B0aW9uczp7aWNvbnM6e3N1Ym1lbnU6XCJ1aS1pY29uLWNhcmV0LTEtZVwifSxpdGVtczpcIj4gKlwiLG1lbnVzOlwidWxcIixwb3NpdGlvbjp7bXk6XCJsZWZ0IHRvcFwiLGF0OlwicmlnaHQgdG9wXCJ9LHJvbGU6XCJtZW51XCIsYmx1cjpudWxsLGZvY3VzOm51bGwsc2VsZWN0Om51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZU1lbnU9dGhpcy5lbGVtZW50LHRoaXMubW91c2VIYW5kbGVkPSExLHRoaXMubGFzdE1vdXNlUG9zaXRpb249e3g6bnVsbCx5Om51bGx9LHRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmF0dHIoe3JvbGU6dGhpcy5vcHRpb25zLnJvbGUsdGFiSW5kZXg6MH0pLHRoaXMuX2FkZENsYXNzKFwidWktbWVudVwiLFwidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50XCIpLHRoaXMuX29uKHtcIm1vdXNlZG93biAudWktbWVudS1pdGVtXCI6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2FjdGl2YXRlSXRlbSh0KX0sXCJjbGljayAudWktbWVudS1pdGVtXCI6ZnVuY3Rpb24odCl7dmFyIGU9Vih0LnRhcmdldCksaT1WKFYudWkuc2FmZUFjdGl2ZUVsZW1lbnQodGhpcy5kb2N1bWVudFswXSkpOyF0aGlzLm1vdXNlSGFuZGxlZCYmZS5ub3QoXCIudWktc3RhdGUtZGlzYWJsZWRcIikubGVuZ3RoJiYodGhpcy5zZWxlY3QodCksdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpfHwodGhpcy5tb3VzZUhhbmRsZWQ9ITApLGUuaGFzKFwiLnVpLW1lbnVcIikubGVuZ3RoP3RoaXMuZXhwYW5kKHQpOiF0aGlzLmVsZW1lbnQuaXMoXCI6Zm9jdXNcIikmJmkuY2xvc2VzdChcIi51aS1tZW51XCIpLmxlbmd0aCYmKHRoaXMuZWxlbWVudC50cmlnZ2VyKFwiZm9jdXNcIixbITBdKSx0aGlzLmFjdGl2ZSYmMT09PXRoaXMuYWN0aXZlLnBhcmVudHMoXCIudWktbWVudVwiKS5sZW5ndGgmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSkpfSxcIm1vdXNlZW50ZXIgLnVpLW1lbnUtaXRlbVwiOlwiX2FjdGl2YXRlSXRlbVwiLFwibW91c2Vtb3ZlIC51aS1tZW51LWl0ZW1cIjpcIl9hY3RpdmF0ZUl0ZW1cIixtb3VzZWxlYXZlOlwiY29sbGFwc2VBbGxcIixcIm1vdXNlbGVhdmUgLnVpLW1lbnVcIjpcImNvbGxhcHNlQWxsXCIsZm9jdXM6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmFjdGl2ZXx8dGhpcy5fbWVudUl0ZW1zKCkuZmlyc3QoKTtlfHx0aGlzLmZvY3VzKHQsaSl9LGJsdXI6ZnVuY3Rpb24odCl7dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtWLmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSxWLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pKXx8dGhpcy5jb2xsYXBzZUFsbCh0KX0pfSxrZXlkb3duOlwiX2tleWRvd25cIn0pLHRoaXMucmVmcmVzaCgpLHRoaXMuX29uKHRoaXMuZG9jdW1lbnQse2NsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuX2Nsb3NlT25Eb2N1bWVudENsaWNrKHQpJiZ0aGlzLmNvbGxhcHNlQWxsKHQsITApLHRoaXMubW91c2VIYW5kbGVkPSExfX0pfSxfYWN0aXZhdGVJdGVtOmZ1bmN0aW9uKHQpe3ZhciBlLGk7dGhpcy5wcmV2aW91c0ZpbHRlcnx8dC5jbGllbnRYPT09dGhpcy5sYXN0TW91c2VQb3NpdGlvbi54JiZ0LmNsaWVudFk9PT10aGlzLmxhc3RNb3VzZVBvc2l0aW9uLnl8fCh0aGlzLmxhc3RNb3VzZVBvc2l0aW9uPXt4OnQuY2xpZW50WCx5OnQuY2xpZW50WX0sZT1WKHQudGFyZ2V0KS5jbG9zZXN0KFwiLnVpLW1lbnUtaXRlbVwiKSxpPVYodC5jdXJyZW50VGFyZ2V0KSxlWzBdPT09aVswXSYmKGkuaXMoXCIudWktc3RhdGUtYWN0aXZlXCIpfHwodGhpcy5fcmVtb3ZlQ2xhc3MoaS5zaWJsaW5ncygpLmNoaWxkcmVuKFwiLnVpLXN0YXRlLWFjdGl2ZVwiKSxudWxsLFwidWktc3RhdGUtYWN0aXZlXCIpLHRoaXMuZm9jdXModCxpKSkpKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuZmluZChcIi51aS1tZW51LWl0ZW1cIikucmVtb3ZlQXR0cihcInJvbGUgYXJpYS1kaXNhYmxlZFwiKS5jaGlsZHJlbihcIi51aS1tZW51LWl0ZW0td3JhcHBlclwiKS5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUF0dHIoXCJ0YWJJbmRleCByb2xlIGFyaWEtaGFzcG9wdXBcIik7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIikuZmluZChcIi51aS1tZW51XCIpLmFkZEJhY2soKS5yZW1vdmVBdHRyKFwicm9sZSBhcmlhLWxhYmVsbGVkYnkgYXJpYS1leHBhbmRlZCBhcmlhLWhpZGRlbiBhcmlhLWRpc2FibGVkIHRhYkluZGV4XCIpLnJlbW92ZVVuaXF1ZUlkKCkuc2hvdygpLHQuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKTt0LmRhdGEoXCJ1aS1tZW51LXN1Ym1lbnUtY2FyZXRcIikmJnQucmVtb3ZlKCl9KX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGUsaSxzLG49ITA7c3dpdGNoKHQua2V5Q29kZSl7Y2FzZSBWLnVpLmtleUNvZGUuUEFHRV9VUDp0aGlzLnByZXZpb3VzUGFnZSh0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5QQUdFX0RPV046dGhpcy5uZXh0UGFnZSh0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5IT01FOnRoaXMuX21vdmUoXCJmaXJzdFwiLFwiZmlyc3RcIix0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5FTkQ6dGhpcy5fbW92ZShcImxhc3RcIixcImxhc3RcIix0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5VUDp0aGlzLnByZXZpb3VzKHQpO2JyZWFrO2Nhc2UgVi51aS5rZXlDb2RlLkRPV046dGhpcy5uZXh0KHQpO2JyZWFrO2Nhc2UgVi51aS5rZXlDb2RlLkxFRlQ6dGhpcy5jb2xsYXBzZSh0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5SSUdIVDp0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLmlzKFwiLnVpLXN0YXRlLWRpc2FibGVkXCIpJiZ0aGlzLmV4cGFuZCh0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5FTlRFUjpjYXNlIFYudWkua2V5Q29kZS5TUEFDRTp0aGlzLl9hY3RpdmF0ZSh0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5FU0NBUEU6dGhpcy5jb2xsYXBzZSh0KTticmVhaztkZWZhdWx0Om49ITEsZT10aGlzLnByZXZpb3VzRmlsdGVyfHxcIlwiLHM9ITEsaT05Njw9dC5rZXlDb2RlJiZ0LmtleUNvZGU8PTEwNT8odC5rZXlDb2RlLTk2KS50b1N0cmluZygpOlN0cmluZy5mcm9tQ2hhckNvZGUodC5rZXlDb2RlKSxjbGVhclRpbWVvdXQodGhpcy5maWx0ZXJUaW1lciksaT09PWU/cz0hMDppPWUraSxlPXRoaXMuX2ZpbHRlck1lbnVJdGVtcyhpKSwoZT1zJiYtMSE9PWUuaW5kZXgodGhpcy5hY3RpdmUubmV4dCgpKT90aGlzLmFjdGl2ZS5uZXh0QWxsKFwiLnVpLW1lbnUtaXRlbVwiKTplKS5sZW5ndGh8fChpPVN0cmluZy5mcm9tQ2hhckNvZGUodC5rZXlDb2RlKSxlPXRoaXMuX2ZpbHRlck1lbnVJdGVtcyhpKSksZS5sZW5ndGg/KHRoaXMuZm9jdXModCxlKSx0aGlzLnByZXZpb3VzRmlsdGVyPWksdGhpcy5maWx0ZXJUaW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLnByZXZpb3VzRmlsdGVyfSwxZTMpKTpkZWxldGUgdGhpcy5wcmV2aW91c0ZpbHRlcn1uJiZ0LnByZXZlbnREZWZhdWx0KCl9LF9hY3RpdmF0ZTpmdW5jdGlvbih0KXt0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLmlzKFwiLnVpLXN0YXRlLWRpc2FibGVkXCIpJiYodGhpcy5hY3RpdmUuY2hpbGRyZW4oXCJbYXJpYS1oYXNwb3B1cD0ndHJ1ZSddXCIpLmxlbmd0aD90aGlzLmV4cGFuZCh0KTp0aGlzLnNlbGVjdCh0KSl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxlLHM9dGhpcyxuPXRoaXMub3B0aW9ucy5pY29ucy5zdWJtZW51LGk9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLm1lbnVzKTt0aGlzLl90b2dnbGVDbGFzcyhcInVpLW1lbnUtaWNvbnNcIixudWxsLCEhdGhpcy5lbGVtZW50LmZpbmQoXCIudWktaWNvblwiKS5sZW5ndGgpLGU9aS5maWx0ZXIoXCI6bm90KC51aS1tZW51KVwiKS5oaWRlKCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSxcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCIsXCJhcmlhLWV4cGFuZGVkXCI6XCJmYWxzZVwifSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PVYodGhpcyksZT10LnByZXYoKSxpPVYoXCI8c3Bhbj5cIikuZGF0YShcInVpLW1lbnUtc3VibWVudS1jYXJldFwiLCEwKTtzLl9hZGRDbGFzcyhpLFwidWktbWVudS1pY29uXCIsXCJ1aS1pY29uIFwiK24pLGUuYXR0cihcImFyaWEtaGFzcG9wdXBcIixcInRydWVcIikucHJlcGVuZChpKSx0LmF0dHIoXCJhcmlhLWxhYmVsbGVkYnlcIixlLmF0dHIoXCJpZFwiKSl9KSx0aGlzLl9hZGRDbGFzcyhlLFwidWktbWVudVwiLFwidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWZyb250XCIpLCh0PWkuYWRkKHRoaXMuZWxlbWVudCkuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpKS5ub3QoXCIudWktbWVudS1pdGVtXCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpO3MuX2lzRGl2aWRlcih0KSYmcy5fYWRkQ2xhc3ModCxcInVpLW1lbnUtZGl2aWRlclwiLFwidWktd2lkZ2V0LWNvbnRlbnRcIil9KSxpPShlPXQubm90KFwiLnVpLW1lbnUtaXRlbSwgLnVpLW1lbnUtZGl2aWRlclwiKSkuY2hpbGRyZW4oKS5ub3QoXCIudWktbWVudVwiKS51bmlxdWVJZCgpLmF0dHIoe3RhYkluZGV4Oi0xLHJvbGU6dGhpcy5faXRlbVJvbGUoKX0pLHRoaXMuX2FkZENsYXNzKGUsXCJ1aS1tZW51LWl0ZW1cIikuX2FkZENsYXNzKGksXCJ1aS1tZW51LWl0ZW0td3JhcHBlclwiKSx0LmZpbHRlcihcIi51aS1zdGF0ZS1kaXNhYmxlZFwiKS5hdHRyKFwiYXJpYS1kaXNhYmxlZFwiLFwidHJ1ZVwiKSx0aGlzLmFjdGl2ZSYmIVYuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKSYmdGhpcy5ibHVyKCl9LF9pdGVtUm9sZTpmdW5jdGlvbigpe3JldHVybnttZW51OlwibWVudWl0ZW1cIixsaXN0Ym94Olwib3B0aW9uXCJ9W3RoaXMub3B0aW9ucy5yb2xlXX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpO1wiaWNvbnNcIj09PXQmJihpPXRoaXMuZWxlbWVudC5maW5kKFwiLnVpLW1lbnUtaWNvblwiKSx0aGlzLl9yZW1vdmVDbGFzcyhpLG51bGwsdGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUpLl9hZGRDbGFzcyhpLG51bGwsZS5zdWJtZW51KSksdGhpcy5fc3VwZXIodCxlKX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKHQpe3RoaXMuX3N1cGVyKHQpLHRoaXMuZWxlbWVudC5hdHRyKFwiYXJpYS1kaXNhYmxlZFwiLFN0cmluZyh0KSksdGhpcy5fdG9nZ2xlQ2xhc3MobnVsbCxcInVpLXN0YXRlLWRpc2FibGVkXCIsISF0KX0sZm9jdXM6ZnVuY3Rpb24odCxlKXt2YXIgaTt0aGlzLmJsdXIodCx0JiZcImZvY3VzXCI9PT10LnR5cGUpLHRoaXMuX3Njcm9sbEludG9WaWV3KGUpLHRoaXMuYWN0aXZlPWUuZmlyc3QoKSxpPXRoaXMuYWN0aXZlLmNoaWxkcmVuKFwiLnVpLW1lbnUtaXRlbS13cmFwcGVyXCIpLHRoaXMuX2FkZENsYXNzKGksbnVsbCxcInVpLXN0YXRlLWFjdGl2ZVwiKSx0aGlzLm9wdGlvbnMucm9sZSYmdGhpcy5lbGVtZW50LmF0dHIoXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIixpLmF0dHIoXCJpZFwiKSksaT10aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KFwiLnVpLW1lbnUtaXRlbVwiKS5jaGlsZHJlbihcIi51aS1tZW51LWl0ZW0td3JhcHBlclwiKSx0aGlzLl9hZGRDbGFzcyhpLG51bGwsXCJ1aS1zdGF0ZS1hY3RpdmVcIiksdCYmXCJrZXlkb3duXCI9PT10LnR5cGU/dGhpcy5fY2xvc2UoKTp0aGlzLnRpbWVyPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5fY2xvc2UoKX0sdGhpcy5kZWxheSksKGk9ZS5jaGlsZHJlbihcIi51aS1tZW51XCIpKS5sZW5ndGgmJnQmJi9ebW91c2UvLnRlc3QodC50eXBlKSYmdGhpcy5fc3RhcnRPcGVuaW5nKGkpLHRoaXMuYWN0aXZlTWVudT1lLnBhcmVudCgpLHRoaXMuX3RyaWdnZXIoXCJmb2N1c1wiLHQse2l0ZW06ZX0pfSxfc2Nyb2xsSW50b1ZpZXc6ZnVuY3Rpb24odCl7dmFyIGUsaSxzO3RoaXMuX2hhc1Njcm9sbCgpJiYoaT1wYXJzZUZsb2F0KFYuY3NzKHRoaXMuYWN0aXZlTWVudVswXSxcImJvcmRlclRvcFdpZHRoXCIpKXx8MCxzPXBhcnNlRmxvYXQoVi5jc3ModGhpcy5hY3RpdmVNZW51WzBdLFwicGFkZGluZ1RvcFwiKSl8fDAsZT10Lm9mZnNldCgpLnRvcC10aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wLWktcyxpPXRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKSxzPXRoaXMuYWN0aXZlTWVudS5oZWlnaHQoKSx0PXQub3V0ZXJIZWlnaHQoKSxlPDA/dGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcChpK2UpOnM8ZSt0JiZ0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKGkrZS1zK3QpKX0sYmx1cjpmdW5jdGlvbih0LGUpe2V8fGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmFjdGl2ZSYmKHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuYWN0aXZlLmNoaWxkcmVuKFwiLnVpLW1lbnUtaXRlbS13cmFwcGVyXCIpLG51bGwsXCJ1aS1zdGF0ZS1hY3RpdmVcIiksdGhpcy5fdHJpZ2dlcihcImJsdXJcIix0LHtpdGVtOnRoaXMuYWN0aXZlfSksdGhpcy5hY3RpdmU9bnVsbCl9LF9zdGFydE9wZW5pbmc6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLFwidHJ1ZVwiPT09dC5hdHRyKFwiYXJpYS1oaWRkZW5cIikmJih0aGlzLnRpbWVyPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5fY2xvc2UoKSx0aGlzLl9vcGVuKHQpfSx0aGlzLmRlbGF5KSl9LF9vcGVuOmZ1bmN0aW9uKHQpe3ZhciBlPVYuZXh0ZW5kKHtvZjp0aGlzLmFjdGl2ZX0sdGhpcy5vcHRpb25zLnBvc2l0aW9uKTtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5lbGVtZW50LmZpbmQoXCIudWktbWVudVwiKS5ub3QodC5wYXJlbnRzKFwiLnVpLW1lbnVcIikpLmhpZGUoKS5hdHRyKFwiYXJpYS1oaWRkZW5cIixcInRydWVcIiksdC5zaG93KCkucmVtb3ZlQXR0cihcImFyaWEtaGlkZGVuXCIpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsXCJ0cnVlXCIpLnBvc2l0aW9uKGUpfSxjb2xsYXBzZUFsbDpmdW5jdGlvbihlLGkpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dmFyIHQ9aT90aGlzLmVsZW1lbnQ6VihlJiZlLnRhcmdldCkuY2xvc2VzdCh0aGlzLmVsZW1lbnQuZmluZChcIi51aS1tZW51XCIpKTt0Lmxlbmd0aHx8KHQ9dGhpcy5lbGVtZW50KSx0aGlzLl9jbG9zZSh0KSx0aGlzLmJsdXIoZSksdGhpcy5fcmVtb3ZlQ2xhc3ModC5maW5kKFwiLnVpLXN0YXRlLWFjdGl2ZVwiKSxudWxsLFwidWktc3RhdGUtYWN0aXZlXCIpLHRoaXMuYWN0aXZlTWVudT10fSxpPzA6dGhpcy5kZWxheSl9LF9jbG9zZTpmdW5jdGlvbih0KXsodD10fHwodGhpcy5hY3RpdmU/dGhpcy5hY3RpdmUucGFyZW50KCk6dGhpcy5lbGVtZW50KSkuZmluZChcIi51aS1tZW51XCIpLmhpZGUoKS5hdHRyKFwiYXJpYS1oaWRkZW5cIixcInRydWVcIikuYXR0cihcImFyaWEtZXhwYW5kZWRcIixcImZhbHNlXCIpfSxfY2xvc2VPbkRvY3VtZW50Q2xpY2s6ZnVuY3Rpb24odCl7cmV0dXJuIVYodC50YXJnZXQpLmNsb3Nlc3QoXCIudWktbWVudVwiKS5sZW5ndGh9LF9pc0RpdmlkZXI6ZnVuY3Rpb24odCl7cmV0dXJuIS9bXlxcLVxcdTIwMTRcXHUyMDEzXFxzXS8udGVzdCh0LnRleHQoKSl9LGNvbGxhcHNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYWN0aXZlJiZ0aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KFwiLnVpLW1lbnUtaXRlbVwiLHRoaXMuZWxlbWVudCk7ZSYmZS5sZW5ndGgmJih0aGlzLl9jbG9zZSgpLHRoaXMuZm9jdXModCxlKSl9LGV4cGFuZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmFjdGl2ZSYmdGhpcy5fbWVudUl0ZW1zKHRoaXMuYWN0aXZlLmNoaWxkcmVuKFwiLnVpLW1lbnVcIikpLmZpcnN0KCk7ZSYmZS5sZW5ndGgmJih0aGlzLl9vcGVuKGUucGFyZW50KCkpLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5mb2N1cyh0LGUpfSkpfSxuZXh0OmZ1bmN0aW9uKHQpe3RoaXMuX21vdmUoXCJuZXh0XCIsXCJmaXJzdFwiLHQpfSxwcmV2aW91czpmdW5jdGlvbih0KXt0aGlzLl9tb3ZlKFwicHJldlwiLFwibGFzdFwiLHQpfSxpc0ZpcnN0SXRlbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLnByZXZBbGwoXCIudWktbWVudS1pdGVtXCIpLmxlbmd0aH0saXNMYXN0SXRlbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLm5leHRBbGwoXCIudWktbWVudS1pdGVtXCIpLmxlbmd0aH0sX21lbnVJdGVtczpmdW5jdGlvbih0KXtyZXR1cm4odHx8dGhpcy5lbGVtZW50KS5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuZmlsdGVyKFwiLnVpLW1lbnUtaXRlbVwiKX0sX21vdmU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzO3RoaXMuYWN0aXZlJiYocz1cImZpcnN0XCI9PT10fHxcImxhc3RcIj09PXQ/dGhpcy5hY3RpdmVbXCJmaXJzdFwiPT09dD9cInByZXZBbGxcIjpcIm5leHRBbGxcIl0oXCIudWktbWVudS1pdGVtXCIpLmxhc3QoKTp0aGlzLmFjdGl2ZVt0K1wiQWxsXCJdKFwiLnVpLW1lbnUtaXRlbVwiKS5maXJzdCgpKSxzJiZzLmxlbmd0aCYmdGhpcy5hY3RpdmV8fChzPXRoaXMuX21lbnVJdGVtcyh0aGlzLmFjdGl2ZU1lbnUpW2VdKCkpLHRoaXMuZm9jdXMoaSxzKX0sbmV4dFBhZ2U6ZnVuY3Rpb24odCl7dmFyIGUsaSxzO3RoaXMuYWN0aXZlP3RoaXMuaXNMYXN0SXRlbSgpfHwodGhpcy5faGFzU2Nyb2xsKCk/KGk9dGhpcy5hY3RpdmUub2Zmc2V0KCkudG9wLHM9dGhpcy5lbGVtZW50LmlubmVySGVpZ2h0KCksMD09PVYuZm4uanF1ZXJ5LmluZGV4T2YoXCIzLjIuXCIpJiYocys9dGhpcy5lbGVtZW50WzBdLm9mZnNldEhlaWdodC10aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSksdGhpcy5hY3RpdmUubmV4dEFsbChcIi51aS1tZW51LWl0ZW1cIikuZWFjaChmdW5jdGlvbigpe3JldHVybihlPVYodGhpcykpLm9mZnNldCgpLnRvcC1pLXM8MH0pLHRoaXMuZm9jdXModCxlKSk6dGhpcy5mb2N1cyh0LHRoaXMuX21lbnVJdGVtcyh0aGlzLmFjdGl2ZU1lbnUpW3RoaXMuYWN0aXZlP1wibGFzdFwiOlwiZmlyc3RcIl0oKSkpOnRoaXMubmV4dCh0KX0scHJldmlvdXNQYWdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksczt0aGlzLmFjdGl2ZT90aGlzLmlzRmlyc3RJdGVtKCl8fCh0aGlzLl9oYXNTY3JvbGwoKT8oaT10aGlzLmFjdGl2ZS5vZmZzZXQoKS50b3Ascz10aGlzLmVsZW1lbnQuaW5uZXJIZWlnaHQoKSwwPT09Vi5mbi5qcXVlcnkuaW5kZXhPZihcIjMuMi5cIikmJihzKz10aGlzLmVsZW1lbnRbMF0ub2Zmc2V0SGVpZ2h0LXRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpKSx0aGlzLmFjdGl2ZS5wcmV2QWxsKFwiLnVpLW1lbnUtaXRlbVwiKS5lYWNoKGZ1bmN0aW9uKCl7cmV0dXJuIDA8KGU9Vih0aGlzKSkub2Zmc2V0KCkudG9wLWkrc30pLHRoaXMuZm9jdXModCxlKSk6dGhpcy5mb2N1cyh0LHRoaXMuX21lbnVJdGVtcyh0aGlzLmFjdGl2ZU1lbnUpLmZpcnN0KCkpKTp0aGlzLm5leHQodCl9LF9oYXNTY3JvbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCk8dGhpcy5lbGVtZW50LnByb3AoXCJzY3JvbGxIZWlnaHRcIil9LHNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLmFjdGl2ZT10aGlzLmFjdGl2ZXx8Vih0LnRhcmdldCkuY2xvc2VzdChcIi51aS1tZW51LWl0ZW1cIik7dmFyIGU9e2l0ZW06dGhpcy5hY3RpdmV9O3RoaXMuYWN0aXZlLmhhcyhcIi51aS1tZW51XCIpLmxlbmd0aHx8dGhpcy5jb2xsYXBzZUFsbCh0LCEwKSx0aGlzLl90cmlnZ2VyKFwic2VsZWN0XCIsdCxlKX0sX2ZpbHRlck1lbnVJdGVtczpmdW5jdGlvbih0KXt2YXIgdD10LnJlcGxhY2UoL1tcXC1cXFtcXF17fSgpKis/LixcXFxcXFxeJHwjXFxzXS9nLFwiXFxcXCQmXCIpLGU9bmV3IFJlZ0V4cChcIl5cIit0LFwiaVwiKTtyZXR1cm4gdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maWx0ZXIoXCIudWktbWVudS1pdGVtXCIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBlLnRlc3QoU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoVih0aGlzKS5jaGlsZHJlbihcIi51aS1tZW51LWl0ZW0td3JhcHBlclwiKS50ZXh0KCkpKX0pfX0pO1Yud2lkZ2V0KFwidWkuYXV0b2NvbXBsZXRlXCIse3ZlcnNpb246XCIxLjEzLjJcIixkZWZhdWx0RWxlbWVudDpcIjxpbnB1dD5cIixvcHRpb25zOnthcHBlbmRUbzpudWxsLGF1dG9Gb2N1czohMSxkZWxheTozMDAsbWluTGVuZ3RoOjEscG9zaXRpb246e215OlwibGVmdCB0b3BcIixhdDpcImxlZnQgYm90dG9tXCIsY29sbGlzaW9uOlwibm9uZVwifSxzb3VyY2U6bnVsbCxjaGFuZ2U6bnVsbCxjbG9zZTpudWxsLGZvY3VzOm51bGwsb3BlbjpudWxsLHJlc3BvbnNlOm51bGwsc2VhcmNoOm51bGwsc2VsZWN0Om51bGx9LHJlcXVlc3RJbmRleDowLHBlbmRpbmc6MCxsaXZlUmVnaW9uVGltZXI6bnVsbCxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGkscyxuLHQ9dGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksZT1cInRleHRhcmVhXCI9PT10LHQ9XCJpbnB1dFwiPT09dDt0aGlzLmlzTXVsdGlMaW5lPWV8fCF0JiZ0aGlzLl9pc0NvbnRlbnRFZGl0YWJsZSh0aGlzLmVsZW1lbnQpLHRoaXMudmFsdWVNZXRob2Q9dGhpcy5lbGVtZW50W2V8fHQ/XCJ2YWxcIjpcInRleHRcIl0sdGhpcy5pc05ld01lbnU9ITAsdGhpcy5fYWRkQ2xhc3MoXCJ1aS1hdXRvY29tcGxldGUtaW5wdXRcIiksdGhpcy5lbGVtZW50LmF0dHIoXCJhdXRvY29tcGxldGVcIixcIm9mZlwiKSx0aGlzLl9vbih0aGlzLmVsZW1lbnQse2tleWRvd246ZnVuY3Rpb24odCl7aWYodGhpcy5lbGVtZW50LnByb3AoXCJyZWFkT25seVwiKSlzPW49aT0hMDtlbHNle3M9bj1pPSExO3ZhciBlPVYudWkua2V5Q29kZTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGUuUEFHRV9VUDppPSEwLHRoaXMuX21vdmUoXCJwcmV2aW91c1BhZ2VcIix0KTticmVhaztjYXNlIGUuUEFHRV9ET1dOOmk9ITAsdGhpcy5fbW92ZShcIm5leHRQYWdlXCIsdCk7YnJlYWs7Y2FzZSBlLlVQOmk9ITAsdGhpcy5fa2V5RXZlbnQoXCJwcmV2aW91c1wiLHQpO2JyZWFrO2Nhc2UgZS5ET1dOOmk9ITAsdGhpcy5fa2V5RXZlbnQoXCJuZXh0XCIsdCk7YnJlYWs7Y2FzZSBlLkVOVEVSOnRoaXMubWVudS5hY3RpdmUmJihpPSEwLHQucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnUuc2VsZWN0KHQpKTticmVhaztjYXNlIGUuVEFCOnRoaXMubWVudS5hY3RpdmUmJnRoaXMubWVudS5zZWxlY3QodCk7YnJlYWs7Y2FzZSBlLkVTQ0FQRTp0aGlzLm1lbnUuZWxlbWVudC5pcyhcIjp2aXNpYmxlXCIpJiYodGhpcy5pc011bHRpTGluZXx8dGhpcy5fdmFsdWUodGhpcy50ZXJtKSx0aGlzLmNsb3NlKHQpLHQucHJldmVudERlZmF1bHQoKSk7YnJlYWs7ZGVmYXVsdDpzPSEwLHRoaXMuX3NlYXJjaFRpbWVvdXQodCl9fX0sa2V5cHJlc3M6ZnVuY3Rpb24odCl7aWYoaSlyZXR1cm4gaT0hMSx2b2lkKHRoaXMuaXNNdWx0aUxpbmUmJiF0aGlzLm1lbnUuZWxlbWVudC5pcyhcIjp2aXNpYmxlXCIpfHx0LnByZXZlbnREZWZhdWx0KCkpO2lmKCFzKXt2YXIgZT1WLnVpLmtleUNvZGU7c3dpdGNoKHQua2V5Q29kZSl7Y2FzZSBlLlBBR0VfVVA6dGhpcy5fbW92ZShcInByZXZpb3VzUGFnZVwiLHQpO2JyZWFrO2Nhc2UgZS5QQUdFX0RPV046dGhpcy5fbW92ZShcIm5leHRQYWdlXCIsdCk7YnJlYWs7Y2FzZSBlLlVQOnRoaXMuX2tleUV2ZW50KFwicHJldmlvdXNcIix0KTticmVhaztjYXNlIGUuRE9XTjp0aGlzLl9rZXlFdmVudChcIm5leHRcIix0KX19fSxpbnB1dDpmdW5jdGlvbih0KXtpZihuKXJldHVybiBuPSExLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpO3RoaXMuX3NlYXJjaFRpbWVvdXQodCl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZEl0ZW09bnVsbCx0aGlzLnByZXZpb3VzPXRoaXMuX3ZhbHVlKCl9LGJsdXI6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoaW5nKSx0aGlzLmNsb3NlKHQpLHRoaXMuX2NoYW5nZSh0KX19KSx0aGlzLl9pbml0U291cmNlKCksdGhpcy5tZW51PVYoXCI8dWw+XCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLm1lbnUoe3JvbGU6bnVsbH0pLmhpZGUoKS5hdHRyKHt1bnNlbGVjdGFibGU6XCJvblwifSkubWVudShcImluc3RhbmNlXCIpLHRoaXMuX2FkZENsYXNzKHRoaXMubWVudS5lbGVtZW50LFwidWktYXV0b2NvbXBsZXRlXCIsXCJ1aS1mcm9udFwiKSx0aGlzLl9vbih0aGlzLm1lbnUuZWxlbWVudCx7bW91c2Vkb3duOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX0sbWVudWZvY3VzOmZ1bmN0aW9uKHQsZSl7dmFyIGkscztpZih0aGlzLmlzTmV3TWVudSYmKHRoaXMuaXNOZXdNZW51PSExLHQub3JpZ2luYWxFdmVudCYmL15tb3VzZS8udGVzdCh0Lm9yaWdpbmFsRXZlbnQudHlwZSkpKXJldHVybiB0aGlzLm1lbnUuYmx1cigpLHZvaWQgdGhpcy5kb2N1bWVudC5vbmUoXCJtb3VzZW1vdmVcIixmdW5jdGlvbigpe1YodC50YXJnZXQpLnRyaWdnZXIodC5vcmlnaW5hbEV2ZW50KX0pO3M9ZS5pdGVtLmRhdGEoXCJ1aS1hdXRvY29tcGxldGUtaXRlbVwiKSwhMSE9PXRoaXMuX3RyaWdnZXIoXCJmb2N1c1wiLHQse2l0ZW06c30pJiZ0Lm9yaWdpbmFsRXZlbnQmJi9ea2V5Ly50ZXN0KHQub3JpZ2luYWxFdmVudC50eXBlKSYmdGhpcy5fdmFsdWUocy52YWx1ZSksKGk9ZS5pdGVtLmF0dHIoXCJhcmlhLWxhYmVsXCIpfHxzLnZhbHVlKSYmU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoaSkubGVuZ3RoJiYoY2xlYXJUaW1lb3V0KHRoaXMubGl2ZVJlZ2lvblRpbWVyKSx0aGlzLmxpdmVSZWdpb25UaW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMubGl2ZVJlZ2lvbi5odG1sKFYoXCI8ZGl2PlwiKS50ZXh0KGkpKX0sMTAwKSl9LG1lbnVzZWxlY3Q6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLml0ZW0uZGF0YShcInVpLWF1dG9jb21wbGV0ZS1pdGVtXCIpLHM9dGhpcy5wcmV2aW91czt0aGlzLmVsZW1lbnRbMF0hPT1WLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pJiYodGhpcy5lbGVtZW50LnRyaWdnZXIoXCJmb2N1c1wiKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXMsdGhpcy5zZWxlY3RlZEl0ZW09aX0pKSwhMSE9PXRoaXMuX3RyaWdnZXIoXCJzZWxlY3RcIix0LHtpdGVtOml9KSYmdGhpcy5fdmFsdWUoaS52YWx1ZSksdGhpcy50ZXJtPXRoaXMuX3ZhbHVlKCksdGhpcy5jbG9zZSh0KSx0aGlzLnNlbGVjdGVkSXRlbT1pfX0pLHRoaXMubGl2ZVJlZ2lvbj1WKFwiPGRpdj5cIix7cm9sZTpcInN0YXR1c1wiLFwiYXJpYS1saXZlXCI6XCJhc3NlcnRpdmVcIixcImFyaWEtcmVsZXZhbnRcIjpcImFkZGl0aW9uc1wifSkuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLl9hZGRDbGFzcyh0aGlzLmxpdmVSZWdpb24sbnVsbCxcInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZVwiKSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoXCJhdXRvY29tcGxldGVcIil9fSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoaW5nKSx0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cihcImF1dG9jb21wbGV0ZVwiKSx0aGlzLm1lbnUuZWxlbWVudC5yZW1vdmUoKSx0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXt0aGlzLl9zdXBlcih0LGUpLFwic291cmNlXCI9PT10JiZ0aGlzLl9pbml0U291cmNlKCksXCJhcHBlbmRUb1wiPT09dCYmdGhpcy5tZW51LmVsZW1lbnQuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksXCJkaXNhYmxlZFwiPT09dCYmZSYmdGhpcy54aHImJnRoaXMueGhyLmFib3J0KCl9LF9pc0V2ZW50VGFyZ2V0SW5XaWRnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tZW51LmVsZW1lbnRbMF07cmV0dXJuIHQudGFyZ2V0PT09dGhpcy5lbGVtZW50WzBdfHx0LnRhcmdldD09PWV8fFYuY29udGFpbnMoZSx0LnRhcmdldCl9LF9jbG9zZU9uQ2xpY2tPdXRzaWRlOmZ1bmN0aW9uKHQpe3RoaXMuX2lzRXZlbnRUYXJnZXRJbldpZGdldCh0KXx8dGhpcy5jbG9zZSgpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuKHQ9dCYmKHQuanF1ZXJ5fHx0Lm5vZGVUeXBlP1YodCk6dGhpcy5kb2N1bWVudC5maW5kKHQpLmVxKDApKSkmJnRbMF18fCh0PXRoaXMuZWxlbWVudC5jbG9zZXN0KFwiLnVpLWZyb250LCBkaWFsb2dcIikpLHQubGVuZ3RofHwodD10aGlzLmRvY3VtZW50WzBdLmJvZHkpLHR9LF9pbml0U291cmNlOmZ1bmN0aW9uKCl7dmFyIGkscyxuPXRoaXM7QXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMuc291cmNlKT8oaT10aGlzLm9wdGlvbnMuc291cmNlLHRoaXMuc291cmNlPWZ1bmN0aW9uKHQsZSl7ZShWLnVpLmF1dG9jb21wbGV0ZS5maWx0ZXIoaSx0LnRlcm0pKX0pOlwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuc291cmNlPyhzPXRoaXMub3B0aW9ucy5zb3VyY2UsdGhpcy5zb3VyY2U9ZnVuY3Rpb24odCxlKXtuLnhociYmbi54aHIuYWJvcnQoKSxuLnhocj1WLmFqYXgoe3VybDpzLGRhdGE6dCxkYXRhVHlwZTpcImpzb25cIixzdWNjZXNzOmZ1bmN0aW9uKHQpe2UodCl9LGVycm9yOmZ1bmN0aW9uKCl7ZShbXSl9fSl9KTp0aGlzLnNvdXJjZT10aGlzLm9wdGlvbnMuc291cmNlfSxfc2VhcmNoVGltZW91dDpmdW5jdGlvbihzKXtjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuc2VhcmNoaW5nPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50ZXJtPT09dGhpcy5fdmFsdWUoKSxlPXRoaXMubWVudS5lbGVtZW50LmlzKFwiOnZpc2libGVcIiksaT1zLmFsdEtleXx8cy5jdHJsS2V5fHxzLm1ldGFLZXl8fHMuc2hpZnRLZXk7dCYmKCF0fHxlfHxpKXx8KHRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsdGhpcy5zZWFyY2gobnVsbCxzKSl9LHRoaXMub3B0aW9ucy5kZWxheSl9LHNlYXJjaDpmdW5jdGlvbih0LGUpe3JldHVybiB0PW51bGwhPXQ/dDp0aGlzLl92YWx1ZSgpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLHQubGVuZ3RoPHRoaXMub3B0aW9ucy5taW5MZW5ndGg/dGhpcy5jbG9zZShlKTohMSE9PXRoaXMuX3RyaWdnZXIoXCJzZWFyY2hcIixlKT90aGlzLl9zZWFyY2godCk6dm9pZCAwfSxfc2VhcmNoOmZ1bmN0aW9uKHQpe3RoaXMucGVuZGluZysrLHRoaXMuX2FkZENsYXNzKFwidWktYXV0b2NvbXBsZXRlLWxvYWRpbmdcIiksdGhpcy5jYW5jZWxTZWFyY2g9ITEsdGhpcy5zb3VyY2Uoe3Rlcm06dH0sdGhpcy5fcmVzcG9uc2UoKSl9LF9yZXNwb25zZTpmdW5jdGlvbigpe3ZhciBlPSsrdGhpcy5yZXF1ZXN0SW5kZXg7cmV0dXJuIGZ1bmN0aW9uKHQpe2U9PT10aGlzLnJlcXVlc3RJbmRleCYmdGhpcy5fX3Jlc3BvbnNlKHQpLHRoaXMucGVuZGluZy0tLHRoaXMucGVuZGluZ3x8dGhpcy5fcmVtb3ZlQ2xhc3MoXCJ1aS1hdXRvY29tcGxldGUtbG9hZGluZ1wiKX0uYmluZCh0aGlzKX0sX19yZXNwb25zZTpmdW5jdGlvbih0KXt0PXQmJnRoaXMuX25vcm1hbGl6ZSh0KSx0aGlzLl90cmlnZ2VyKFwicmVzcG9uc2VcIixudWxsLHtjb250ZW50OnR9KSwhdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0JiZ0Lmxlbmd0aCYmIXRoaXMuY2FuY2VsU2VhcmNoPyh0aGlzLl9zdWdnZXN0KHQpLHRoaXMuX3RyaWdnZXIoXCJvcGVuXCIpKTp0aGlzLl9jbG9zZSgpfSxjbG9zZTpmdW5jdGlvbih0KXt0aGlzLmNhbmNlbFNlYXJjaD0hMCx0aGlzLl9jbG9zZSh0KX0sX2Nsb3NlOmZ1bmN0aW9uKHQpe3RoaXMuX29mZih0aGlzLmRvY3VtZW50LFwibW91c2Vkb3duXCIpLHRoaXMubWVudS5lbGVtZW50LmlzKFwiOnZpc2libGVcIikmJih0aGlzLm1lbnUuZWxlbWVudC5oaWRlKCksdGhpcy5tZW51LmJsdXIoKSx0aGlzLmlzTmV3TWVudT0hMCx0aGlzLl90cmlnZ2VyKFwiY2xvc2VcIix0KSl9LF9jaGFuZ2U6ZnVuY3Rpb24odCl7dGhpcy5wcmV2aW91cyE9PXRoaXMuX3ZhbHVlKCkmJnRoaXMuX3RyaWdnZXIoXCJjaGFuZ2VcIix0LHtpdGVtOnRoaXMuc2VsZWN0ZWRJdGVtfSl9LF9ub3JtYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJiZ0WzBdLmxhYmVsJiZ0WzBdLnZhbHVlP3Q6Vi5tYXAodCxmdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97bGFiZWw6dCx2YWx1ZTp0fTpWLmV4dGVuZCh7fSx0LHtsYWJlbDp0LmxhYmVsfHx0LnZhbHVlLHZhbHVlOnQudmFsdWV8fHQubGFiZWx9KX0pfSxfc3VnZ2VzdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm1lbnUuZWxlbWVudC5lbXB0eSgpO3RoaXMuX3JlbmRlck1lbnUoZSx0KSx0aGlzLmlzTmV3TWVudT0hMCx0aGlzLm1lbnUucmVmcmVzaCgpLGUuc2hvdygpLHRoaXMuX3Jlc2l6ZU1lbnUoKSxlLnBvc2l0aW9uKFYuZXh0ZW5kKHtvZjp0aGlzLmVsZW1lbnR9LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpLHRoaXMub3B0aW9ucy5hdXRvRm9jdXMmJnRoaXMubWVudS5uZXh0KCksdGhpcy5fb24odGhpcy5kb2N1bWVudCx7bW91c2Vkb3duOlwiX2Nsb3NlT25DbGlja091dHNpZGVcIn0pfSxfcmVzaXplTWVudTpmdW5jdGlvbigpe3ZhciB0PXRoaXMubWVudS5lbGVtZW50O3Qub3V0ZXJXaWR0aChNYXRoLm1heCh0LndpZHRoKFwiXCIpLm91dGVyV2lkdGgoKSsxLHRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCkpKX0sX3JlbmRlck1lbnU6ZnVuY3Rpb24oaSx0KXt2YXIgcz10aGlzO1YuZWFjaCh0LGZ1bmN0aW9uKHQsZSl7cy5fcmVuZGVySXRlbURhdGEoaSxlKX0pfSxfcmVuZGVySXRlbURhdGE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcmVuZGVySXRlbSh0LGUpLmRhdGEoXCJ1aS1hdXRvY29tcGxldGUtaXRlbVwiLGUpfSxfcmVuZGVySXRlbTpmdW5jdGlvbih0LGUpe3JldHVybiBWKFwiPGxpPlwiKS5hcHBlbmQoVihcIjxkaXY+XCIpLnRleHQoZS5sYWJlbCkpLmFwcGVuZFRvKHQpfSxfbW92ZTpmdW5jdGlvbih0LGUpe2lmKHRoaXMubWVudS5lbGVtZW50LmlzKFwiOnZpc2libGVcIikpcmV0dXJuIHRoaXMubWVudS5pc0ZpcnN0SXRlbSgpJiYvXnByZXZpb3VzLy50ZXN0KHQpfHx0aGlzLm1lbnUuaXNMYXN0SXRlbSgpJiYvXm5leHQvLnRlc3QodCk/KHRoaXMuaXNNdWx0aUxpbmV8fHRoaXMuX3ZhbHVlKHRoaXMudGVybSksdm9pZCB0aGlzLm1lbnUuYmx1cigpKTp2b2lkIHRoaXMubWVudVt0XShlKTt0aGlzLnNlYXJjaChudWxsLGUpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW51LmVsZW1lbnR9LF92YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlTWV0aG9kLmFwcGx5KHRoaXMuZWxlbWVudCxhcmd1bWVudHMpfSxfa2V5RXZlbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLmlzTXVsdGlMaW5lJiYhdGhpcy5tZW51LmVsZW1lbnQuaXMoXCI6dmlzaWJsZVwiKXx8KHRoaXMuX21vdmUodCxlKSxlLnByZXZlbnREZWZhdWx0KCkpfSxfaXNDb250ZW50RWRpdGFibGU6ZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXJldHVybiExO3ZhciBlPXQucHJvcChcImNvbnRlbnRFZGl0YWJsZVwiKTtyZXR1cm5cImluaGVyaXRcIj09PWU/dGhpcy5faXNDb250ZW50RWRpdGFibGUodC5wYXJlbnQoKSk6XCJ0cnVlXCI9PT1lfX0pLFYuZXh0ZW5kKFYudWkuYXV0b2NvbXBsZXRlLHtlc2NhcGVSZWdleDpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXFwtXFxbXFxde30oKSorPy4sXFxcXFxcXiR8I1xcc10vZyxcIlxcXFwkJlwiKX0sZmlsdGVyOmZ1bmN0aW9uKHQsZSl7dmFyIGk9bmV3IFJlZ0V4cChWLnVpLmF1dG9jb21wbGV0ZS5lc2NhcGVSZWdleChlKSxcImlcIik7cmV0dXJuIFYuZ3JlcCh0LGZ1bmN0aW9uKHQpe3JldHVybiBpLnRlc3QodC5sYWJlbHx8dC52YWx1ZXx8dCl9KX19KSxWLndpZGdldChcInVpLmF1dG9jb21wbGV0ZVwiLFYudWkuYXV0b2NvbXBsZXRlLHtvcHRpb25zOnttZXNzYWdlczp7bm9SZXN1bHRzOlwiTm8gc2VhcmNoIHJlc3VsdHMuXCIscmVzdWx0czpmdW5jdGlvbih0KXtyZXR1cm4gdCsoMTx0P1wiIHJlc3VsdHMgYXJlXCI6XCIgcmVzdWx0IGlzXCIpK1wiIGF2YWlsYWJsZSwgdXNlIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUuXCJ9fX0sX19yZXNwb25zZTpmdW5jdGlvbih0KXt2YXIgZTt0aGlzLl9zdXBlckFwcGx5KGFyZ3VtZW50cyksdGhpcy5vcHRpb25zLmRpc2FibGVkfHx0aGlzLmNhbmNlbFNlYXJjaHx8KGU9dCYmdC5sZW5ndGg/dGhpcy5vcHRpb25zLm1lc3NhZ2VzLnJlc3VsdHModC5sZW5ndGgpOnRoaXMub3B0aW9ucy5tZXNzYWdlcy5ub1Jlc3VsdHMsY2xlYXJUaW1lb3V0KHRoaXMubGl2ZVJlZ2lvblRpbWVyKSx0aGlzLmxpdmVSZWdpb25UaW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMubGl2ZVJlZ2lvbi5odG1sKFYoXCI8ZGl2PlwiKS50ZXh0KGUpKX0sMTAwKSl9fSk7Vi51aS5hdXRvY29tcGxldGU7dmFyIG09L3VpLWNvcm5lci0oW2Etel0pezIsNn0vZztWLndpZGdldChcInVpLmNvbnRyb2xncm91cFwiLHt2ZXJzaW9uOlwiMS4xMy4yXCIsZGVmYXVsdEVsZW1lbnQ6XCI8ZGl2PlwiLG9wdGlvbnM6e2RpcmVjdGlvbjpcImhvcml6b250YWxcIixkaXNhYmxlZDpudWxsLG9ubHlWaXNpYmxlOiEwLGl0ZW1zOntidXR0b246XCJpbnB1dFt0eXBlPWJ1dHRvbl0sIGlucHV0W3R5cGU9c3VibWl0XSwgaW5wdXRbdHlwZT1yZXNldF0sIGJ1dHRvbiwgYVwiLGNvbnRyb2xncm91cExhYmVsOlwiLnVpLWNvbnRyb2xncm91cC1sYWJlbFwiLGNoZWNrYm94cmFkaW86XCJpbnB1dFt0eXBlPSdjaGVja2JveCddLCBpbnB1dFt0eXBlPSdyYWRpbyddXCIsc2VsZWN0bWVudTpcInNlbGVjdFwiLHNwaW5uZXI6XCIudWktc3Bpbm5lci1pbnB1dFwifX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX2VuaGFuY2UoKX0sX2VuaGFuY2U6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYXR0cihcInJvbGVcIixcInRvb2xiYXJcIiksdGhpcy5yZWZyZXNoKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fY2FsbENoaWxkTWV0aG9kKFwiZGVzdHJveVwiKSx0aGlzLmNoaWxkV2lkZ2V0cy5yZW1vdmVEYXRhKFwidWktY29udHJvbGdyb3VwLWRhdGFcIiksdGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoXCJyb2xlXCIpLHRoaXMub3B0aW9ucy5pdGVtcy5jb250cm9sZ3JvdXBMYWJlbCYmdGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zLmNvbnRyb2xncm91cExhYmVsKS5maW5kKFwiLnVpLWNvbnRyb2xncm91cC1sYWJlbC1jb250ZW50c1wiKS5jb250ZW50cygpLnVud3JhcCgpfSxfaW5pdFdpZGdldHM6ZnVuY3Rpb24oKXt2YXIgbz10aGlzLGE9W107Vi5lYWNoKHRoaXMub3B0aW9ucy5pdGVtcyxmdW5jdGlvbihzLHQpe3ZhciBlLG49e307aWYodClyZXR1cm5cImNvbnRyb2xncm91cExhYmVsXCI9PT1zPygoZT1vLmVsZW1lbnQuZmluZCh0KSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PVYodGhpcyk7dC5jaGlsZHJlbihcIi51aS1jb250cm9sZ3JvdXAtbGFiZWwtY29udGVudHNcIikubGVuZ3RofHx0LmNvbnRlbnRzKCkud3JhcEFsbChcIjxzcGFuIGNsYXNzPSd1aS1jb250cm9sZ3JvdXAtbGFiZWwtY29udGVudHMnPjwvc3Bhbj5cIil9KSxvLl9hZGRDbGFzcyhlLG51bGwsXCJ1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktc3RhdGUtZGVmYXVsdFwiKSx2b2lkKGE9YS5jb25jYXQoZS5nZXQoKSkpKTp2b2lkKFYuZm5bc10mJihuPW9bXCJfXCIrcytcIk9wdGlvbnNcIl0/b1tcIl9cIitzK1wiT3B0aW9uc1wiXShcIm1pZGRsZVwiKTp7Y2xhc3Nlczp7fX0sby5lbGVtZW50LmZpbmQodCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PVYodGhpcyksZT10W3NdKFwiaW5zdGFuY2VcIiksaT1WLndpZGdldC5leHRlbmQoe30sbik7XCJidXR0b25cIj09PXMmJnQucGFyZW50KFwiLnVpLXNwaW5uZXJcIikubGVuZ3RofHwoKGU9ZXx8dFtzXSgpW3NdKFwiaW5zdGFuY2VcIikpJiYoaS5jbGFzc2VzPW8uX3Jlc29sdmVDbGFzc2VzVmFsdWVzKGkuY2xhc3NlcyxlKSksdFtzXShpKSxpPXRbc10oXCJ3aWRnZXRcIiksVi5kYXRhKGlbMF0sXCJ1aS1jb250cm9sZ3JvdXAtZGF0YVwiLGV8fHRbc10oXCJpbnN0YW5jZVwiKSksYS5wdXNoKGlbMF0pKX0pKSl9KSx0aGlzLmNoaWxkV2lkZ2V0cz1WKFYudW5pcXVlU29ydChhKSksdGhpcy5fYWRkQ2xhc3ModGhpcy5jaGlsZFdpZGdldHMsXCJ1aS1jb250cm9sZ3JvdXAtaXRlbVwiKX0sX2NhbGxDaGlsZE1ldGhvZDpmdW5jdGlvbihlKXt0aGlzLmNoaWxkV2lkZ2V0cy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKS5kYXRhKFwidWktY29udHJvbGdyb3VwLWRhdGFcIik7dCYmdFtlXSYmdFtlXSgpfSl9LF91cGRhdGVDb3JuZXJDbGFzczpmdW5jdGlvbih0LGUpe2U9dGhpcy5fYnVpbGRTaW1wbGVPcHRpb25zKGUsXCJsYWJlbFwiKS5jbGFzc2VzLmxhYmVsO3RoaXMuX3JlbW92ZUNsYXNzKHQsbnVsbCxcInVpLWNvcm5lci10b3AgdWktY29ybmVyLWJvdHRvbSB1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQgdWktY29ybmVyLWFsbFwiKSx0aGlzLl9hZGRDbGFzcyh0LG51bGwsZSl9LF9idWlsZFNpbXBsZU9wdGlvbnM6ZnVuY3Rpb24odCxlKXt2YXIgaT1cInZlcnRpY2FsXCI9PT10aGlzLm9wdGlvbnMuZGlyZWN0aW9uLHM9e2NsYXNzZXM6e319O3JldHVybiBzLmNsYXNzZXNbZV09e21pZGRsZTpcIlwiLGZpcnN0OlwidWktY29ybmVyLVwiKyhpP1widG9wXCI6XCJsZWZ0XCIpLGxhc3Q6XCJ1aS1jb3JuZXItXCIrKGk/XCJib3R0b21cIjpcInJpZ2h0XCIpLG9ubHk6XCJ1aS1jb3JuZXItYWxsXCJ9W3RdLHN9LF9zcGlubmVyT3B0aW9uczpmdW5jdGlvbih0KXt0PXRoaXMuX2J1aWxkU2ltcGxlT3B0aW9ucyh0LFwidWktc3Bpbm5lclwiKTtyZXR1cm4gdC5jbGFzc2VzW1widWktc3Bpbm5lci11cFwiXT1cIlwiLHQuY2xhc3Nlc1tcInVpLXNwaW5uZXItZG93blwiXT1cIlwiLHR9LF9idXR0b25PcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9idWlsZFNpbXBsZU9wdGlvbnModCxcInVpLWJ1dHRvblwiKX0sX2NoZWNrYm94cmFkaW9PcHRpb25zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9idWlsZFNpbXBsZU9wdGlvbnModCxcInVpLWNoZWNrYm94cmFkaW8tbGFiZWxcIil9LF9zZWxlY3RtZW51T3B0aW9uczpmdW5jdGlvbih0KXt2YXIgZT1cInZlcnRpY2FsXCI9PT10aGlzLm9wdGlvbnMuZGlyZWN0aW9uO3JldHVybnt3aWR0aDplJiZcImF1dG9cIixjbGFzc2VzOnttaWRkbGU6e1widWktc2VsZWN0bWVudS1idXR0b24tb3BlblwiOlwiXCIsXCJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1jbG9zZWRcIjpcIlwifSxmaXJzdDp7XCJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1vcGVuXCI6XCJ1aS1jb3JuZXItXCIrKGU/XCJ0b3BcIjpcInRsXCIpLFwidWktc2VsZWN0bWVudS1idXR0b24tY2xvc2VkXCI6XCJ1aS1jb3JuZXItXCIrKGU/XCJ0b3BcIjpcImxlZnRcIil9LGxhc3Q6e1widWktc2VsZWN0bWVudS1idXR0b24tb3BlblwiOmU/XCJcIjpcInVpLWNvcm5lci10clwiLFwidWktc2VsZWN0bWVudS1idXR0b24tY2xvc2VkXCI6XCJ1aS1jb3JuZXItXCIrKGU/XCJib3R0b21cIjpcInJpZ2h0XCIpfSxvbmx5OntcInVpLXNlbGVjdG1lbnUtYnV0dG9uLW9wZW5cIjpcInVpLWNvcm5lci10b3BcIixcInVpLXNlbGVjdG1lbnUtYnV0dG9uLWNsb3NlZFwiOlwidWktY29ybmVyLWFsbFwifX1bdF19fSxfcmVzb2x2ZUNsYXNzZXNWYWx1ZXM6ZnVuY3Rpb24oaSxzKXt2YXIgbj17fTtyZXR1cm4gVi5lYWNoKGksZnVuY3Rpb24odCl7dmFyIGU9cy5vcHRpb25zLmNsYXNzZXNbdF18fFwiXCIsZT1TdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChlLnJlcGxhY2UobSxcIlwiKSk7blt0XT0oZStcIiBcIitpW3RdKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpfSksbn0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe1wiZGlyZWN0aW9uXCI9PT10JiZ0aGlzLl9yZW1vdmVDbGFzcyhcInVpLWNvbnRyb2xncm91cC1cIit0aGlzLm9wdGlvbnMuZGlyZWN0aW9uKSx0aGlzLl9zdXBlcih0LGUpLFwiZGlzYWJsZWRcIiE9PXQ/dGhpcy5yZWZyZXNoKCk6dGhpcy5fY2FsbENoaWxkTWV0aG9kKGU/XCJkaXNhYmxlXCI6XCJlbmFibGVcIil9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgbixvPXRoaXM7dGhpcy5fYWRkQ2xhc3MoXCJ1aS1jb250cm9sZ3JvdXAgdWktY29udHJvbGdyb3VwLVwiK3RoaXMub3B0aW9ucy5kaXJlY3Rpb24pLFwiaG9yaXpvbnRhbFwiPT09dGhpcy5vcHRpb25zLmRpcmVjdGlvbiYmdGhpcy5fYWRkQ2xhc3MobnVsbCxcInVpLWhlbHBlci1jbGVhcmZpeFwiKSx0aGlzLl9pbml0V2lkZ2V0cygpLG49dGhpcy5jaGlsZFdpZGdldHMsdGhpcy5vcHRpb25zLm9ubHlWaXNpYmxlJiYobj1uLmZpbHRlcihcIjp2aXNpYmxlXCIpKSxuLmxlbmd0aCYmKFYuZWFjaChbXCJmaXJzdFwiLFwibGFzdFwiXSxmdW5jdGlvbih0LGUpe3ZhciBpLHM9bltlXSgpLmRhdGEoXCJ1aS1jb250cm9sZ3JvdXAtZGF0YVwiKTtzJiZvW1wiX1wiK3Mud2lkZ2V0TmFtZStcIk9wdGlvbnNcIl0/KChpPW9bXCJfXCIrcy53aWRnZXROYW1lK1wiT3B0aW9uc1wiXSgxPT09bi5sZW5ndGg/XCJvbmx5XCI6ZSkpLmNsYXNzZXM9by5fcmVzb2x2ZUNsYXNzZXNWYWx1ZXMoaS5jbGFzc2VzLHMpLHMuZWxlbWVudFtzLndpZGdldE5hbWVdKGkpKTpvLl91cGRhdGVDb3JuZXJDbGFzcyhuW2VdKCksZSl9KSx0aGlzLl9jYWxsQ2hpbGRNZXRob2QoXCJyZWZyZXNoXCIpKX19KTtWLndpZGdldChcInVpLmNoZWNrYm94cmFkaW9cIixbVi51aS5mb3JtUmVzZXRNaXhpbix7dmVyc2lvbjpcIjEuMTMuMlwiLG9wdGlvbnM6e2Rpc2FibGVkOm51bGwsbGFiZWw6bnVsbCxpY29uOiEwLGNsYXNzZXM6e1widWktY2hlY2tib3hyYWRpby1sYWJlbFwiOlwidWktY29ybmVyLWFsbFwiLFwidWktY2hlY2tib3hyYWRpby1pY29uXCI6XCJ1aS1jb3JuZXItYWxsXCJ9fSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5fc3VwZXIoKXx8e307cmV0dXJuIHRoaXMuX3JlYWRUeXBlKCksdD10aGlzLmVsZW1lbnQubGFiZWxzKCksdGhpcy5sYWJlbD1WKHRbdC5sZW5ndGgtMV0pLHRoaXMubGFiZWwubGVuZ3RofHxWLmVycm9yKFwiTm8gbGFiZWwgZm91bmQgZm9yIGNoZWNrYm94cmFkaW8gd2lkZ2V0XCIpLHRoaXMub3JpZ2luYWxMYWJlbD1cIlwiLCh0PXRoaXMubGFiZWwuY29udGVudHMoKS5ub3QodGhpcy5lbGVtZW50WzBdKSkubGVuZ3RoJiYodGhpcy5vcmlnaW5hbExhYmVsKz10LmNsb25lKCkud3JhcEFsbChcIjxkaXY+PC9kaXY+XCIpLnBhcmVudCgpLmh0bWwoKSksdGhpcy5vcmlnaW5hbExhYmVsJiYoZS5sYWJlbD10aGlzLm9yaWdpbmFsTGFiZWwpLG51bGwhPSh0PXRoaXMuZWxlbWVudFswXS5kaXNhYmxlZCkmJihlLmRpc2FibGVkPXQpLGV9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnRbMF0uY2hlY2tlZDt0aGlzLl9iaW5kRm9ybVJlc2V0SGFuZGxlcigpLG51bGw9PXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmKHRoaXMub3B0aW9ucy5kaXNhYmxlZD10aGlzLmVsZW1lbnRbMF0uZGlzYWJsZWQpLHRoaXMuX3NldE9wdGlvbihcImRpc2FibGVkXCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9hZGRDbGFzcyhcInVpLWNoZWNrYm94cmFkaW9cIixcInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZVwiKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmxhYmVsLFwidWktY2hlY2tib3hyYWRpby1sYWJlbFwiLFwidWktYnV0dG9uIHVpLXdpZGdldFwiKSxcInJhZGlvXCI9PT10aGlzLnR5cGUmJnRoaXMuX2FkZENsYXNzKHRoaXMubGFiZWwsXCJ1aS1jaGVja2JveHJhZGlvLXJhZGlvLWxhYmVsXCIpLHRoaXMub3B0aW9ucy5sYWJlbCYmdGhpcy5vcHRpb25zLmxhYmVsIT09dGhpcy5vcmlnaW5hbExhYmVsP3RoaXMuX3VwZGF0ZUxhYmVsKCk6dGhpcy5vcmlnaW5hbExhYmVsJiYodGhpcy5vcHRpb25zLmxhYmVsPXRoaXMub3JpZ2luYWxMYWJlbCksdGhpcy5fZW5oYW5jZSgpLHQmJnRoaXMuX2FkZENsYXNzKHRoaXMubGFiZWwsXCJ1aS1jaGVja2JveHJhZGlvLWNoZWNrZWRcIixcInVpLXN0YXRlLWFjdGl2ZVwiKSx0aGlzLl9vbih7Y2hhbmdlOlwiX3RvZ2dsZUNsYXNzZXNcIixmb2N1czpmdW5jdGlvbigpe3RoaXMuX2FkZENsYXNzKHRoaXMubGFiZWwsbnVsbCxcInVpLXN0YXRlLWZvY3VzIHVpLXZpc3VhbC1mb2N1c1wiKX0sYmx1cjpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUNsYXNzKHRoaXMubGFiZWwsbnVsbCxcInVpLXN0YXRlLWZvY3VzIHVpLXZpc3VhbC1mb2N1c1wiKX19KX0sX3JlYWRUeXBlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7dGhpcy50eXBlPXRoaXMuZWxlbWVudFswXS50eXBlLFwiaW5wdXRcIj09PXQmJi9yYWRpb3xjaGVja2JveC8udGVzdCh0aGlzLnR5cGUpfHxWLmVycm9yKFwiQ2FuJ3QgY3JlYXRlIGNoZWNrYm94cmFkaW8gb24gZWxlbWVudC5ub2RlTmFtZT1cIit0K1wiIGFuZCBlbGVtZW50LnR5cGU9XCIrdGhpcy50eXBlKX0sX2VuaGFuY2U6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVJY29uKHRoaXMuZWxlbWVudFswXS5jaGVja2VkKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGFiZWx9LF9nZXRSYWRpb0dyb3VwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50WzBdLm5hbWUsZT1cImlucHV0W25hbWU9J1wiK1YuZXNjYXBlU2VsZWN0b3IodCkrXCInXVwiO3JldHVybiB0Pyh0aGlzLmZvcm0ubGVuZ3RoP1YodGhpcy5mb3JtWzBdLmVsZW1lbnRzKS5maWx0ZXIoZSk6VihlKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PVYodGhpcykuX2Zvcm0oKS5sZW5ndGh9KSkubm90KHRoaXMuZWxlbWVudCk6VihbXSl9LF90b2dnbGVDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50WzBdLmNoZWNrZWQ7dGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5sYWJlbCxcInVpLWNoZWNrYm94cmFkaW8tY2hlY2tlZFwiLFwidWktc3RhdGUtYWN0aXZlXCIsdCksdGhpcy5vcHRpb25zLmljb24mJlwiY2hlY2tib3hcIj09PXRoaXMudHlwZSYmdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5pY29uLG51bGwsXCJ1aS1pY29uLWNoZWNrIHVpLXN0YXRlLWNoZWNrZWRcIix0KS5fdG9nZ2xlQ2xhc3ModGhpcy5pY29uLG51bGwsXCJ1aS1pY29uLWJsYW5rXCIsIXQpLFwicmFkaW9cIj09PXRoaXMudHlwZSYmdGhpcy5fZ2V0UmFkaW9Hcm91cCgpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLmNoZWNrYm94cmFkaW8oXCJpbnN0YW5jZVwiKTt0JiZ0Ll9yZW1vdmVDbGFzcyh0LmxhYmVsLFwidWktY2hlY2tib3hyYWRpby1jaGVja2VkXCIsXCJ1aS1zdGF0ZS1hY3RpdmVcIil9KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl91bmJpbmRGb3JtUmVzZXRIYW5kbGVyKCksdGhpcy5pY29uJiYodGhpcy5pY29uLnJlbW92ZSgpLHRoaXMuaWNvblNwYWNlLnJlbW92ZSgpKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe2lmKFwibGFiZWxcIiE9PXR8fGUpe2lmKHRoaXMuX3N1cGVyKHQsZSksXCJkaXNhYmxlZFwiPT09dClyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5sYWJlbCxudWxsLFwidWktc3RhdGUtZGlzYWJsZWRcIixlKSx2b2lkKHRoaXMuZWxlbWVudFswXS5kaXNhYmxlZD1lKTt0aGlzLnJlZnJlc2goKX19LF91cGRhdGVJY29uOmZ1bmN0aW9uKHQpe3ZhciBlPVwidWktaWNvbiB1aS1pY29uLWJhY2tncm91bmQgXCI7dGhpcy5vcHRpb25zLmljb24/KHRoaXMuaWNvbnx8KHRoaXMuaWNvbj1WKFwiPHNwYW4+XCIpLHRoaXMuaWNvblNwYWNlPVYoXCI8c3Bhbj4gPC9zcGFuPlwiKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmljb25TcGFjZSxcInVpLWNoZWNrYm94cmFkaW8taWNvbi1zcGFjZVwiKSksXCJjaGVja2JveFwiPT09dGhpcy50eXBlPyhlKz10P1widWktaWNvbi1jaGVjayB1aS1zdGF0ZS1jaGVja2VkXCI6XCJ1aS1pY29uLWJsYW5rXCIsdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5pY29uLG51bGwsdD9cInVpLWljb24tYmxhbmtcIjpcInVpLWljb24tY2hlY2tcIikpOmUrPVwidWktaWNvbi1ibGFua1wiLHRoaXMuX2FkZENsYXNzKHRoaXMuaWNvbixcInVpLWNoZWNrYm94cmFkaW8taWNvblwiLGUpLHR8fHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuaWNvbixudWxsLFwidWktaWNvbi1jaGVjayB1aS1zdGF0ZS1jaGVja2VkXCIpLHRoaXMuaWNvbi5wcmVwZW5kVG8odGhpcy5sYWJlbCkuYWZ0ZXIodGhpcy5pY29uU3BhY2UpKTp2b2lkIDAhPT10aGlzLmljb24mJih0aGlzLmljb24ucmVtb3ZlKCksdGhpcy5pY29uU3BhY2UucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWNvbil9LF91cGRhdGVMYWJlbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMubGFiZWwuY29udGVudHMoKS5ub3QodGhpcy5lbGVtZW50WzBdKTt0aGlzLmljb24mJih0PXQubm90KHRoaXMuaWNvblswXSkpLHRoaXMuaWNvblNwYWNlJiYodD10Lm5vdCh0aGlzLmljb25TcGFjZVswXSkpLHQucmVtb3ZlKCksdGhpcy5sYWJlbC5hcHBlbmQodGhpcy5vcHRpb25zLmxhYmVsKX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudFswXS5jaGVja2VkLGU9dGhpcy5lbGVtZW50WzBdLmRpc2FibGVkO3RoaXMuX3VwZGF0ZUljb24odCksdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5sYWJlbCxcInVpLWNoZWNrYm94cmFkaW8tY2hlY2tlZFwiLFwidWktc3RhdGUtYWN0aXZlXCIsdCksbnVsbCE9PXRoaXMub3B0aW9ucy5sYWJlbCYmdGhpcy5fdXBkYXRlTGFiZWwoKSxlIT09dGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDplfSl9fV0pO3ZhciBfO1YudWkuY2hlY2tib3hyYWRpbztWLndpZGdldChcInVpLmJ1dHRvblwiLHt2ZXJzaW9uOlwiMS4xMy4yXCIsZGVmYXVsdEVsZW1lbnQ6XCI8YnV0dG9uPlwiLG9wdGlvbnM6e2NsYXNzZXM6e1widWktYnV0dG9uXCI6XCJ1aS1jb3JuZXItYWxsXCJ9LGRpc2FibGVkOm51bGwsaWNvbjpudWxsLGljb25Qb3NpdGlvbjpcImJlZ2lubmluZ1wiLGxhYmVsOm51bGwsc2hvd0xhYmVsOiEwfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5fc3VwZXIoKXx8e307cmV0dXJuIHRoaXMuaXNJbnB1dD10aGlzLmVsZW1lbnQuaXMoXCJpbnB1dFwiKSxudWxsIT0odD10aGlzLmVsZW1lbnRbMF0uZGlzYWJsZWQpJiYoZS5kaXNhYmxlZD10KSx0aGlzLm9yaWdpbmFsTGFiZWw9dGhpcy5pc0lucHV0P3RoaXMuZWxlbWVudC52YWwoKTp0aGlzLmVsZW1lbnQuaHRtbCgpLHRoaXMub3JpZ2luYWxMYWJlbCYmKGUubGFiZWw9dGhpcy5vcmlnaW5hbExhYmVsKSxlfSxfY3JlYXRlOmZ1bmN0aW9uKCl7IXRoaXMub3B0aW9uLnNob3dMYWJlbCYhdGhpcy5vcHRpb25zLmljb24mJih0aGlzLm9wdGlvbnMuc2hvd0xhYmVsPSEwKSxudWxsPT10aGlzLm9wdGlvbnMuZGlzYWJsZWQmJih0aGlzLm9wdGlvbnMuZGlzYWJsZWQ9dGhpcy5lbGVtZW50WzBdLmRpc2FibGVkfHwhMSksdGhpcy5oYXNUaXRsZT0hIXRoaXMuZWxlbWVudC5hdHRyKFwidGl0bGVcIiksdGhpcy5vcHRpb25zLmxhYmVsJiZ0aGlzLm9wdGlvbnMubGFiZWwhPT10aGlzLm9yaWdpbmFsTGFiZWwmJih0aGlzLmlzSW5wdXQ/dGhpcy5lbGVtZW50LnZhbCh0aGlzLm9wdGlvbnMubGFiZWwpOnRoaXMuZWxlbWVudC5odG1sKHRoaXMub3B0aW9ucy5sYWJlbCkpLHRoaXMuX2FkZENsYXNzKFwidWktYnV0dG9uXCIsXCJ1aS13aWRnZXRcIiksdGhpcy5fc2V0T3B0aW9uKFwiZGlzYWJsZWRcIix0aGlzLm9wdGlvbnMuZGlzYWJsZWQpLHRoaXMuX2VuaGFuY2UoKSx0aGlzLmVsZW1lbnQuaXMoXCJhXCIpJiZ0aGlzLl9vbih7a2V5dXA6ZnVuY3Rpb24odCl7dC5rZXlDb2RlPT09Vi51aS5rZXlDb2RlLlNQQUNFJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZWxlbWVudFswXS5jbGljaz90aGlzLmVsZW1lbnRbMF0uY2xpY2soKTp0aGlzLmVsZW1lbnQudHJpZ2dlcihcImNsaWNrXCIpKX19KX0sX2VuaGFuY2U6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuaXMoXCJidXR0b25cIil8fHRoaXMuZWxlbWVudC5hdHRyKFwicm9sZVwiLFwiYnV0dG9uXCIpLHRoaXMub3B0aW9ucy5pY29uJiYodGhpcy5fdXBkYXRlSWNvbihcImljb25cIix0aGlzLm9wdGlvbnMuaWNvbiksdGhpcy5fdXBkYXRlVG9vbHRpcCgpKX0sX3VwZGF0ZVRvb2x0aXA6ZnVuY3Rpb24oKXt0aGlzLnRpdGxlPXRoaXMuZWxlbWVudC5hdHRyKFwidGl0bGVcIiksdGhpcy5vcHRpb25zLnNob3dMYWJlbHx8dGhpcy50aXRsZXx8dGhpcy5lbGVtZW50LmF0dHIoXCJ0aXRsZVwiLHRoaXMub3B0aW9ucy5sYWJlbCl9LF91cGRhdGVJY29uOmZ1bmN0aW9uKHQsZSl7dmFyIGk9XCJpY29uUG9zaXRpb25cIiE9PXQscz1pP3RoaXMub3B0aW9ucy5pY29uUG9zaXRpb246ZSx0PVwidG9wXCI9PT1zfHxcImJvdHRvbVwiPT09czt0aGlzLmljb24/aSYmdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5pY29uLG51bGwsdGhpcy5vcHRpb25zLmljb24pOih0aGlzLmljb249VihcIjxzcGFuPlwiKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmljb24sXCJ1aS1idXR0b24taWNvblwiLFwidWktaWNvblwiKSx0aGlzLm9wdGlvbnMuc2hvd0xhYmVsfHx0aGlzLl9hZGRDbGFzcyhcInVpLWJ1dHRvbi1pY29uLW9ubHlcIikpLGkmJnRoaXMuX2FkZENsYXNzKHRoaXMuaWNvbixudWxsLGUpLHRoaXMuX2F0dGFjaEljb24ocyksdD8odGhpcy5fYWRkQ2xhc3ModGhpcy5pY29uLG51bGwsXCJ1aS13aWRnZXQtaWNvbi1ibG9ja1wiKSx0aGlzLmljb25TcGFjZSYmdGhpcy5pY29uU3BhY2UucmVtb3ZlKCkpOih0aGlzLmljb25TcGFjZXx8KHRoaXMuaWNvblNwYWNlPVYoXCI8c3Bhbj4gPC9zcGFuPlwiKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmljb25TcGFjZSxcInVpLWJ1dHRvbi1pY29uLXNwYWNlXCIpKSx0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmljb24sbnVsbCxcInVpLXdpZ2V0LWljb24tYmxvY2tcIiksdGhpcy5fYXR0YWNoSWNvblNwYWNlKHMpKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cihcInJvbGVcIiksdGhpcy5pY29uJiZ0aGlzLmljb24ucmVtb3ZlKCksdGhpcy5pY29uU3BhY2UmJnRoaXMuaWNvblNwYWNlLnJlbW92ZSgpLHRoaXMuaGFzVGl0bGV8fHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKFwidGl0bGVcIil9LF9hdHRhY2hJY29uU3BhY2U6ZnVuY3Rpb24odCl7dGhpcy5pY29uWy9eKD86ZW5kfGJvdHRvbSkvLnRlc3QodCk/XCJiZWZvcmVcIjpcImFmdGVyXCJdKHRoaXMuaWNvblNwYWNlKX0sX2F0dGFjaEljb246ZnVuY3Rpb24odCl7dGhpcy5lbGVtZW50Wy9eKD86ZW5kfGJvdHRvbSkvLnRlc3QodCk/XCJhcHBlbmRcIjpcInByZXBlbmRcIl0odGhpcy5pY29uKX0sX3NldE9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU9KHZvaWQgMD09PXQuc2hvd0xhYmVsP3RoaXMub3B0aW9uczp0KS5zaG93TGFiZWwsaT0odm9pZCAwPT09dC5pY29uP3RoaXMub3B0aW9uczp0KS5pY29uO2V8fGl8fCh0LnNob3dMYWJlbD0hMCksdGhpcy5fc3VwZXIodCl9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXtcImljb25cIj09PXQmJihlP3RoaXMuX3VwZGF0ZUljb24odCxlKTp0aGlzLmljb24mJih0aGlzLmljb24ucmVtb3ZlKCksdGhpcy5pY29uU3BhY2UmJnRoaXMuaWNvblNwYWNlLnJlbW92ZSgpKSksXCJpY29uUG9zaXRpb25cIj09PXQmJnRoaXMuX3VwZGF0ZUljb24odCxlKSxcInNob3dMYWJlbFwiPT09dCYmKHRoaXMuX3RvZ2dsZUNsYXNzKFwidWktYnV0dG9uLWljb24tb25seVwiLG51bGwsIWUpLHRoaXMuX3VwZGF0ZVRvb2x0aXAoKSksXCJsYWJlbFwiPT09dCYmKHRoaXMuaXNJbnB1dD90aGlzLmVsZW1lbnQudmFsKGUpOih0aGlzLmVsZW1lbnQuaHRtbChlKSx0aGlzLmljb24mJih0aGlzLl9hdHRhY2hJY29uKHRoaXMub3B0aW9ucy5pY29uUG9zaXRpb24pLHRoaXMuX2F0dGFjaEljb25TcGFjZSh0aGlzLm9wdGlvbnMuaWNvblBvc2l0aW9uKSkpKSx0aGlzLl9zdXBlcih0LGUpLFwiZGlzYWJsZWRcIj09PXQmJih0aGlzLl90b2dnbGVDbGFzcyhudWxsLFwidWktc3RhdGUtZGlzYWJsZWRcIixlKSwodGhpcy5lbGVtZW50WzBdLmRpc2FibGVkPWUpJiZ0aGlzLmVsZW1lbnQudHJpZ2dlcihcImJsdXJcIikpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LmlzKFwiaW5wdXQsIGJ1dHRvblwiKT90aGlzLmVsZW1lbnRbMF0uZGlzYWJsZWQ6dGhpcy5lbGVtZW50Lmhhc0NsYXNzKFwidWktYnV0dG9uLWRpc2FibGVkXCIpO3QhPT10aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOnR9KSx0aGlzLl91cGRhdGVUb29sdGlwKCl9fSksITEhPT1WLnVpQmFja0NvbXBhdCYmKFYud2lkZ2V0KFwidWkuYnV0dG9uXCIsVi51aS5idXR0b24se29wdGlvbnM6e3RleHQ6ITAsaWNvbnM6e3ByaW1hcnk6bnVsbCxzZWNvbmRhcnk6bnVsbH19LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc2hvd0xhYmVsJiYhdGhpcy5vcHRpb25zLnRleHQmJih0aGlzLm9wdGlvbnMuc2hvd0xhYmVsPXRoaXMub3B0aW9ucy50ZXh0KSwhdGhpcy5vcHRpb25zLnNob3dMYWJlbCYmdGhpcy5vcHRpb25zLnRleHQmJih0aGlzLm9wdGlvbnMudGV4dD10aGlzLm9wdGlvbnMuc2hvd0xhYmVsKSx0aGlzLm9wdGlvbnMuaWNvbnx8IXRoaXMub3B0aW9ucy5pY29ucy5wcmltYXJ5JiYhdGhpcy5vcHRpb25zLmljb25zLnNlY29uZGFyeT90aGlzLm9wdGlvbnMuaWNvbiYmKHRoaXMub3B0aW9ucy5pY29ucy5wcmltYXJ5PXRoaXMub3B0aW9ucy5pY29uKTp0aGlzLm9wdGlvbnMuaWNvbnMucHJpbWFyeT90aGlzLm9wdGlvbnMuaWNvbj10aGlzLm9wdGlvbnMuaWNvbnMucHJpbWFyeToodGhpcy5vcHRpb25zLmljb249dGhpcy5vcHRpb25zLmljb25zLnNlY29uZGFyeSx0aGlzLm9wdGlvbnMuaWNvblBvc2l0aW9uPVwiZW5kXCIpLHRoaXMuX3N1cGVyKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXtcInRleHRcIiE9PXQ/KFwic2hvd0xhYmVsXCI9PT10JiYodGhpcy5vcHRpb25zLnRleHQ9ZSksXCJpY29uXCI9PT10JiYodGhpcy5vcHRpb25zLmljb25zLnByaW1hcnk9ZSksXCJpY29uc1wiPT09dCYmKGUucHJpbWFyeT8odGhpcy5fc3VwZXIoXCJpY29uXCIsZS5wcmltYXJ5KSx0aGlzLl9zdXBlcihcImljb25Qb3NpdGlvblwiLFwiYmVnaW5uaW5nXCIpKTplLnNlY29uZGFyeSYmKHRoaXMuX3N1cGVyKFwiaWNvblwiLGUuc2Vjb25kYXJ5KSx0aGlzLl9zdXBlcihcImljb25Qb3NpdGlvblwiLFwiZW5kXCIpKSksdGhpcy5fc3VwZXJBcHBseShhcmd1bWVudHMpKTp0aGlzLl9zdXBlcihcInNob3dMYWJlbFwiLGUpfX0pLFYuZm4uYnV0dG9uPShfPVYuZm4uYnV0dG9uLGZ1bmN0aW9uKGkpe3ZhciB0PVwic3RyaW5nXCI9PXR5cGVvZiBpLHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLG49dGhpcztyZXR1cm4gdD90aGlzLmxlbmd0aHx8XCJpbnN0YW5jZVwiIT09aT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLmF0dHIoXCJ0eXBlXCIpLGU9XCJjaGVja2JveFwiIT09dCYmXCJyYWRpb1wiIT09dD9cImJ1dHRvblwiOlwiY2hlY2tib3hyYWRpb1wiLHQ9Vi5kYXRhKHRoaXMsXCJ1aS1cIitlKTtyZXR1cm5cImluc3RhbmNlXCI9PT1pPyhuPXQsITEpOnQ/XCJmdW5jdGlvblwiIT10eXBlb2YgdFtpXXx8XCJfXCI9PT1pLmNoYXJBdCgwKT9WLmVycm9yKFwibm8gc3VjaCBtZXRob2QgJ1wiK2krXCInIGZvciBidXR0b24gd2lkZ2V0IGluc3RhbmNlXCIpOihlPXRbaV0uYXBwbHkodCxzKSkhPT10JiZ2b2lkIDAhPT1lPyhuPWUmJmUuanF1ZXJ5P24ucHVzaFN0YWNrKGUuZ2V0KCkpOmUsITEpOnZvaWQgMDpWLmVycm9yKFwiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiBidXR0b24gcHJpb3IgdG8gaW5pdGlhbGl6YXRpb247IGF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnXCIraStcIidcIil9KTpuPXZvaWQgMDoocy5sZW5ndGgmJihpPVYud2lkZ2V0LmV4dGVuZC5hcHBseShudWxsLFtpXS5jb25jYXQocykpKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLmF0dHIoXCJ0eXBlXCIpLGU9XCJjaGVja2JveFwiIT09dCYmXCJyYWRpb1wiIT09dD9cImJ1dHRvblwiOlwiY2hlY2tib3hyYWRpb1wiLHQ9Vi5kYXRhKHRoaXMsXCJ1aS1cIitlKTt0Pyh0Lm9wdGlvbihpfHx7fSksdC5faW5pdCYmdC5faW5pdCgpKTpcImJ1dHRvblwiIT1lP1YodGhpcykuY2hlY2tib3hyYWRpbyhWLmV4dGVuZCh7aWNvbjohMX0saSkpOl8uY2FsbChWKHRoaXMpLGkpfSkpLG59KSxWLmZuLmJ1dHRvbnNldD1mdW5jdGlvbigpe3JldHVybiBWLnVpLmNvbnRyb2xncm91cHx8Vi5lcnJvcihcIkNvbnRyb2xncm91cCB3aWRnZXQgbWlzc2luZ1wiKSxcIm9wdGlvblwiPT09YXJndW1lbnRzWzBdJiZcIml0ZW1zXCI9PT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1syXT90aGlzLmNvbnRyb2xncm91cC5hcHBseSh0aGlzLFthcmd1bWVudHNbMF0sXCJpdGVtcy5idXR0b25cIixhcmd1bWVudHNbMl1dKTpcIm9wdGlvblwiPT09YXJndW1lbnRzWzBdJiZcIml0ZW1zXCI9PT1hcmd1bWVudHNbMV0/dGhpcy5jb250cm9sZ3JvdXAuYXBwbHkodGhpcyxbYXJndW1lbnRzWzBdLFwiaXRlbXMuYnV0dG9uXCJdKTooXCJvYmplY3RcIj09dHlwZW9mIGFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLml0ZW1zJiYoYXJndW1lbnRzWzBdLml0ZW1zPXtidXR0b246YXJndW1lbnRzWzBdLml0ZW1zfSksdGhpcy5jb250cm9sZ3JvdXAuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pO3ZhciB2O1YudWkuYnV0dG9uO2Z1bmN0aW9uIGIoKXt0aGlzLl9jdXJJbnN0PW51bGwsdGhpcy5fa2V5RXZlbnQ9ITEsdGhpcy5fZGlzYWJsZWRJbnB1dHM9W10sdGhpcy5fZGF0ZXBpY2tlclNob3dpbmc9ITEsdGhpcy5faW5EaWFsb2c9ITEsdGhpcy5fbWFpbkRpdklkPVwidWktZGF0ZXBpY2tlci1kaXZcIix0aGlzLl9pbmxpbmVDbGFzcz1cInVpLWRhdGVwaWNrZXItaW5saW5lXCIsdGhpcy5fYXBwZW5kQ2xhc3M9XCJ1aS1kYXRlcGlja2VyLWFwcGVuZFwiLHRoaXMuX3RyaWdnZXJDbGFzcz1cInVpLWRhdGVwaWNrZXItdHJpZ2dlclwiLHRoaXMuX2RpYWxvZ0NsYXNzPVwidWktZGF0ZXBpY2tlci1kaWFsb2dcIix0aGlzLl9kaXNhYmxlQ2xhc3M9XCJ1aS1kYXRlcGlja2VyLWRpc2FibGVkXCIsdGhpcy5fdW5zZWxlY3RhYmxlQ2xhc3M9XCJ1aS1kYXRlcGlja2VyLXVuc2VsZWN0YWJsZVwiLHRoaXMuX2N1cnJlbnRDbGFzcz1cInVpLWRhdGVwaWNrZXItY3VycmVudC1kYXlcIix0aGlzLl9kYXlPdmVyQ2xhc3M9XCJ1aS1kYXRlcGlja2VyLWRheXMtY2VsbC1vdmVyXCIsdGhpcy5yZWdpb25hbD1bXSx0aGlzLnJlZ2lvbmFsW1wiXCJdPXtjbG9zZVRleHQ6XCJEb25lXCIscHJldlRleHQ6XCJQcmV2XCIsbmV4dFRleHQ6XCJOZXh0XCIsY3VycmVudFRleHQ6XCJUb2RheVwiLG1vbnRoTmFtZXM6W1wiSmFudWFyeVwiLFwiRmVicnVhcnlcIixcIk1hcmNoXCIsXCJBcHJpbFwiLFwiTWF5XCIsXCJKdW5lXCIsXCJKdWx5XCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2N0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlY2VtYmVyXCJdLG1vbnRoTmFtZXNTaG9ydDpbXCJKYW5cIixcIkZlYlwiLFwiTWFyXCIsXCJBcHJcIixcIk1heVwiLFwiSnVuXCIsXCJKdWxcIixcIkF1Z1wiLFwiU2VwXCIsXCJPY3RcIixcIk5vdlwiLFwiRGVjXCJdLGRheU5hbWVzOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdLGRheU5hbWVzU2hvcnQ6W1wiU3VuXCIsXCJNb25cIixcIlR1ZVwiLFwiV2VkXCIsXCJUaHVcIixcIkZyaVwiLFwiU2F0XCJdLGRheU5hbWVzTWluOltcIlN1XCIsXCJNb1wiLFwiVHVcIixcIldlXCIsXCJUaFwiLFwiRnJcIixcIlNhXCJdLHdlZWtIZWFkZXI6XCJXa1wiLGRhdGVGb3JtYXQ6XCJtbS9kZC95eVwiLGZpcnN0RGF5OjAsaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHllYXJTdWZmaXg6XCJcIixzZWxlY3RNb250aExhYmVsOlwiU2VsZWN0IG1vbnRoXCIsc2VsZWN0WWVhckxhYmVsOlwiU2VsZWN0IHllYXJcIn0sdGhpcy5fZGVmYXVsdHM9e3Nob3dPbjpcImZvY3VzXCIsc2hvd0FuaW06XCJmYWRlSW5cIixzaG93T3B0aW9uczp7fSxkZWZhdWx0RGF0ZTpudWxsLGFwcGVuZFRleHQ6XCJcIixidXR0b25UZXh0OlwiLi4uXCIsYnV0dG9uSW1hZ2U6XCJcIixidXR0b25JbWFnZU9ubHk6ITEsaGlkZUlmTm9QcmV2TmV4dDohMSxuYXZpZ2F0aW9uQXNEYXRlRm9ybWF0OiExLGdvdG9DdXJyZW50OiExLGNoYW5nZU1vbnRoOiExLGNoYW5nZVllYXI6ITEseWVhclJhbmdlOlwiYy0xMDpjKzEwXCIsc2hvd090aGVyTW9udGhzOiExLHNlbGVjdE90aGVyTW9udGhzOiExLHNob3dXZWVrOiExLGNhbGN1bGF0ZVdlZWs6dGhpcy5pc284NjAxV2VlayxzaG9ydFllYXJDdXRvZmY6XCIrMTBcIixtaW5EYXRlOm51bGwsbWF4RGF0ZTpudWxsLGR1cmF0aW9uOlwiZmFzdFwiLGJlZm9yZVNob3dEYXk6bnVsbCxiZWZvcmVTaG93Om51bGwsb25TZWxlY3Q6bnVsbCxvbkNoYW5nZU1vbnRoWWVhcjpudWxsLG9uQ2xvc2U6bnVsbCxvblVwZGF0ZURhdGVwaWNrZXI6bnVsbCxudW1iZXJPZk1vbnRoczoxLHNob3dDdXJyZW50QXRQb3M6MCxzdGVwTW9udGhzOjEsc3RlcEJpZ01vbnRoczoxMixhbHRGaWVsZDpcIlwiLGFsdEZvcm1hdDpcIlwiLGNvbnN0cmFpbklucHV0OiEwLHNob3dCdXR0b25QYW5lbDohMSxhdXRvU2l6ZTohMSxkaXNhYmxlZDohMX0sVi5leHRlbmQodGhpcy5fZGVmYXVsdHMsdGhpcy5yZWdpb25hbFtcIlwiXSksdGhpcy5yZWdpb25hbC5lbj1WLmV4dGVuZCghMCx7fSx0aGlzLnJlZ2lvbmFsW1wiXCJdKSx0aGlzLnJlZ2lvbmFsW1wiZW4tVVNcIl09Vi5leHRlbmQoITAse30sdGhpcy5yZWdpb25hbC5lbiksdGhpcy5kcERpdj15KFYoXCI8ZGl2IGlkPSdcIit0aGlzLl9tYWluRGl2SWQrXCInIGNsYXNzPSd1aS1kYXRlcGlja2VyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLWFsbCc+PC9kaXY+XCIpKX1mdW5jdGlvbiB5KHQpe3ZhciBlPVwiYnV0dG9uLCAudWktZGF0ZXBpY2tlci1wcmV2LCAudWktZGF0ZXBpY2tlci1uZXh0LCAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCBhXCI7cmV0dXJuIHQub24oXCJtb3VzZW91dFwiLGUsZnVuY3Rpb24oKXtWKHRoaXMpLnJlbW92ZUNsYXNzKFwidWktc3RhdGUtaG92ZXJcIiksLTEhPT10aGlzLmNsYXNzTmFtZS5pbmRleE9mKFwidWktZGF0ZXBpY2tlci1wcmV2XCIpJiZWKHRoaXMpLnJlbW92ZUNsYXNzKFwidWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyXCIpLC0xIT09dGhpcy5jbGFzc05hbWUuaW5kZXhPZihcInVpLWRhdGVwaWNrZXItbmV4dFwiKSYmVih0aGlzKS5yZW1vdmVDbGFzcyhcInVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlclwiKX0pLm9uKFwibW91c2VvdmVyXCIsZSx3KX1mdW5jdGlvbiB3KCl7Vi5kYXRlcGlja2VyLl9pc0Rpc2FibGVkRGF0ZXBpY2tlcigodi5pbmxpbmU/di5kcERpdi5wYXJlbnQoKTp2LmlucHV0KVswXSl8fChWKHRoaXMpLnBhcmVudHMoXCIudWktZGF0ZXBpY2tlci1jYWxlbmRhclwiKS5maW5kKFwiYVwiKS5yZW1vdmVDbGFzcyhcInVpLXN0YXRlLWhvdmVyXCIpLFYodGhpcykuYWRkQ2xhc3MoXCJ1aS1zdGF0ZS1ob3ZlclwiKSwtMSE9PXRoaXMuY2xhc3NOYW1lLmluZGV4T2YoXCJ1aS1kYXRlcGlja2VyLXByZXZcIikmJlYodGhpcykuYWRkQ2xhc3MoXCJ1aS1kYXRlcGlja2VyLXByZXYtaG92ZXJcIiksLTEhPT10aGlzLmNsYXNzTmFtZS5pbmRleE9mKFwidWktZGF0ZXBpY2tlci1uZXh0XCIpJiZWKHRoaXMpLmFkZENsYXNzKFwidWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyXCIpKX1mdW5jdGlvbiBQKHQsZSl7Zm9yKHZhciBpIGluIFYuZXh0ZW5kKHQsZSksZSludWxsPT1lW2ldJiYodFtpXT1lW2ldKTtyZXR1cm4gdH1WLmV4dGVuZChWLnVpLHtkYXRlcGlja2VyOnt2ZXJzaW9uOlwiMS4xMy4yXCJ9fSksVi5leHRlbmQoYi5wcm90b3R5cGUse21hcmtlckNsYXNzTmFtZTpcImhhc0RhdGVwaWNrZXJcIixtYXhSb3dzOjQsX3dpZGdldERhdGVwaWNrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kcERpdn0sc2V0RGVmYXVsdHM6ZnVuY3Rpb24odCl7cmV0dXJuIFAodGhpcy5fZGVmYXVsdHMsdHx8e30pLHRoaXN9LF9hdHRhY2hEYXRlcGlja2VyOmZ1bmN0aW9uKHQsZSl7dmFyIGkscz10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksbj1cImRpdlwiPT09c3x8XCJzcGFuXCI9PT1zO3QuaWR8fCh0aGlzLnV1aWQrPTEsdC5pZD1cImRwXCIrdGhpcy51dWlkKSwoaT10aGlzLl9uZXdJbnN0KFYodCksbikpLnNldHRpbmdzPVYuZXh0ZW5kKHt9LGV8fHt9KSxcImlucHV0XCI9PT1zP3RoaXMuX2Nvbm5lY3REYXRlcGlja2VyKHQsaSk6biYmdGhpcy5faW5saW5lRGF0ZXBpY2tlcih0LGkpfSxfbmV3SW5zdDpmdW5jdGlvbih0LGUpe3JldHVybntpZDp0WzBdLmlkLnJlcGxhY2UoLyhbXkEtWmEtejAtOV9cXC1dKS9nLFwiXFxcXFxcXFwkMVwiKSxpbnB1dDp0LHNlbGVjdGVkRGF5OjAsc2VsZWN0ZWRNb250aDowLHNlbGVjdGVkWWVhcjowLGRyYXdNb250aDowLGRyYXdZZWFyOjAsaW5saW5lOmUsZHBEaXY6ZT95KFYoXCI8ZGl2IGNsYXNzPSdcIit0aGlzLl9pbmxpbmVDbGFzcytcIiB1aS1kYXRlcGlja2VyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLWFsbCc+PC9kaXY+XCIpKTp0aGlzLmRwRGl2fX0sX2Nvbm5lY3REYXRlcGlja2VyOmZ1bmN0aW9uKHQsZSl7dmFyIGk9Vih0KTtlLmFwcGVuZD1WKFtdKSxlLnRyaWdnZXI9VihbXSksaS5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSl8fCh0aGlzLl9hdHRhY2htZW50cyhpLGUpLGkuYWRkQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpLm9uKFwia2V5ZG93blwiLHRoaXMuX2RvS2V5RG93bikub24oXCJrZXlwcmVzc1wiLHRoaXMuX2RvS2V5UHJlc3MpLm9uKFwia2V5dXBcIix0aGlzLl9kb0tleVVwKSx0aGlzLl9hdXRvU2l6ZShlKSxWLmRhdGEodCxcImRhdGVwaWNrZXJcIixlKSxlLnNldHRpbmdzLmRpc2FibGVkJiZ0aGlzLl9kaXNhYmxlRGF0ZXBpY2tlcih0KSl9LF9hdHRhY2htZW50czpmdW5jdGlvbih0LGUpe3ZhciBpLHM9dGhpcy5fZ2V0KGUsXCJhcHBlbmRUZXh0XCIpLG49dGhpcy5fZ2V0KGUsXCJpc1JUTFwiKTtlLmFwcGVuZCYmZS5hcHBlbmQucmVtb3ZlKCkscyYmKGUuYXBwZW5kPVYoXCI8c3Bhbj5cIikuYWRkQ2xhc3ModGhpcy5fYXBwZW5kQ2xhc3MpLnRleHQocyksdFtuP1wiYmVmb3JlXCI6XCJhZnRlclwiXShlLmFwcGVuZCkpLHQub2ZmKFwiZm9jdXNcIix0aGlzLl9zaG93RGF0ZXBpY2tlciksZS50cmlnZ2VyJiZlLnRyaWdnZXIucmVtb3ZlKCksXCJmb2N1c1wiIT09KGk9dGhpcy5fZ2V0KGUsXCJzaG93T25cIikpJiZcImJvdGhcIiE9PWl8fHQub24oXCJmb2N1c1wiLHRoaXMuX3Nob3dEYXRlcGlja2VyKSxcImJ1dHRvblwiIT09aSYmXCJib3RoXCIhPT1pfHwocz10aGlzLl9nZXQoZSxcImJ1dHRvblRleHRcIiksaT10aGlzLl9nZXQoZSxcImJ1dHRvbkltYWdlXCIpLHRoaXMuX2dldChlLFwiYnV0dG9uSW1hZ2VPbmx5XCIpP2UudHJpZ2dlcj1WKFwiPGltZz5cIikuYWRkQ2xhc3ModGhpcy5fdHJpZ2dlckNsYXNzKS5hdHRyKHtzcmM6aSxhbHQ6cyx0aXRsZTpzfSk6KGUudHJpZ2dlcj1WKFwiPGJ1dHRvbiB0eXBlPSdidXR0b24nPlwiKS5hZGRDbGFzcyh0aGlzLl90cmlnZ2VyQ2xhc3MpLGk/ZS50cmlnZ2VyLmh0bWwoVihcIjxpbWc+XCIpLmF0dHIoe3NyYzppLGFsdDpzLHRpdGxlOnN9KSk6ZS50cmlnZ2VyLnRleHQocykpLHRbbj9cImJlZm9yZVwiOlwiYWZ0ZXJcIl0oZS50cmlnZ2VyKSxlLnRyaWdnZXIub24oXCJjbGlja1wiLGZ1bmN0aW9uKCl7cmV0dXJuIFYuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcmJlYuZGF0ZXBpY2tlci5fbGFzdElucHV0PT09dFswXT9WLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk6KFYuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcmJlYuZGF0ZXBpY2tlci5fbGFzdElucHV0IT09dFswXSYmVi5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpLFYuZGF0ZXBpY2tlci5fc2hvd0RhdGVwaWNrZXIodFswXSkpLCExfSkpfSxfYXV0b1NpemU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzLG4sbyxhO3RoaXMuX2dldCh0LFwiYXV0b1NpemVcIikmJiF0LmlubGluZSYmKG89bmV3IERhdGUoMjAwOSwxMSwyMCksKGE9dGhpcy5fZ2V0KHQsXCJkYXRlRm9ybWF0XCIpKS5tYXRjaCgvW0RNXS8pJiYoZT1mdW5jdGlvbih0KXtmb3Iobj1zPWk9MDtuPHQubGVuZ3RoO24rKyl0W25dLmxlbmd0aD5pJiYoaT10W25dLmxlbmd0aCxzPW4pO3JldHVybiBzfSxvLnNldE1vbnRoKGUodGhpcy5fZ2V0KHQsYS5tYXRjaCgvTU0vKT9cIm1vbnRoTmFtZXNcIjpcIm1vbnRoTmFtZXNTaG9ydFwiKSkpLG8uc2V0RGF0ZShlKHRoaXMuX2dldCh0LGEubWF0Y2goL0RELyk/XCJkYXlOYW1lc1wiOlwiZGF5TmFtZXNTaG9ydFwiKSkrMjAtby5nZXREYXkoKSkpLHQuaW5wdXQuYXR0cihcInNpemVcIix0aGlzLl9mb3JtYXREYXRlKHQsbykubGVuZ3RoKSl9LF9pbmxpbmVEYXRlcGlja2VyOmZ1bmN0aW9uKHQsZSl7dmFyIGk9Vih0KTtpLmhhc0NsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKXx8KGkuYWRkQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpLmFwcGVuZChlLmRwRGl2KSxWLmRhdGEodCxcImRhdGVwaWNrZXJcIixlKSx0aGlzLl9zZXREYXRlKGUsdGhpcy5fZ2V0RGVmYXVsdERhdGUoZSksITApLHRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoZSksdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGUpLGUuc2V0dGluZ3MuZGlzYWJsZWQmJnRoaXMuX2Rpc2FibGVEYXRlcGlja2VyKHQpLGUuZHBEaXYuY3NzKFwiZGlzcGxheVwiLFwiYmxvY2tcIikpfSxfZGlhbG9nRGF0ZXBpY2tlcjpmdW5jdGlvbih0LGUsaSxzLG4pe3ZhciBvLGE9dGhpcy5fZGlhbG9nSW5zdDtyZXR1cm4gYXx8KHRoaXMudXVpZCs9MSxvPVwiZHBcIit0aGlzLnV1aWQsdGhpcy5fZGlhbG9nSW5wdXQ9VihcIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nXCIrbytcIicgc3R5bGU9J3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMTAwcHg7IHdpZHRoOiAwcHg7Jy8+XCIpLHRoaXMuX2RpYWxvZ0lucHV0Lm9uKFwia2V5ZG93blwiLHRoaXMuX2RvS2V5RG93biksVihcImJvZHlcIikuYXBwZW5kKHRoaXMuX2RpYWxvZ0lucHV0KSwoYT10aGlzLl9kaWFsb2dJbnN0PXRoaXMuX25ld0luc3QodGhpcy5fZGlhbG9nSW5wdXQsITEpKS5zZXR0aW5ncz17fSxWLmRhdGEodGhpcy5fZGlhbG9nSW5wdXRbMF0sXCJkYXRlcGlja2VyXCIsYSkpLFAoYS5zZXR0aW5ncyxzfHx7fSksZT1lJiZlLmNvbnN0cnVjdG9yPT09RGF0ZT90aGlzLl9mb3JtYXREYXRlKGEsZSk6ZSx0aGlzLl9kaWFsb2dJbnB1dC52YWwoZSksdGhpcy5fcG9zPW4/bi5sZW5ndGg/bjpbbi5wYWdlWCxuLnBhZ2VZXTpudWxsLHRoaXMuX3Bvc3x8KG89ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQsbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCx0aGlzLl9wb3M9W28vMi0xMDArZSxzLzItMTUwK25dKSx0aGlzLl9kaWFsb2dJbnB1dC5jc3MoXCJsZWZ0XCIsdGhpcy5fcG9zWzBdKzIwK1wicHhcIikuY3NzKFwidG9wXCIsdGhpcy5fcG9zWzFdK1wicHhcIiksYS5zZXR0aW5ncy5vblNlbGVjdD1pLHRoaXMuX2luRGlhbG9nPSEwLHRoaXMuZHBEaXYuYWRkQ2xhc3ModGhpcy5fZGlhbG9nQ2xhc3MpLHRoaXMuX3Nob3dEYXRlcGlja2VyKHRoaXMuX2RpYWxvZ0lucHV0WzBdKSxWLmJsb2NrVUkmJlYuYmxvY2tVSSh0aGlzLmRwRGl2KSxWLmRhdGEodGhpcy5fZGlhbG9nSW5wdXRbMF0sXCJkYXRlcGlja2VyXCIsYSksdGhpc30sX2Rlc3Ryb3lEYXRlcGlja2VyOmZ1bmN0aW9uKHQpe3ZhciBlLGk9Vih0KSxzPVYuZGF0YSh0LFwiZGF0ZXBpY2tlclwiKTtpLmhhc0NsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKSYmKGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLFYucmVtb3ZlRGF0YSh0LFwiZGF0ZXBpY2tlclwiKSxcImlucHV0XCI9PT1lPyhzLmFwcGVuZC5yZW1vdmUoKSxzLnRyaWdnZXIucmVtb3ZlKCksaS5yZW1vdmVDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkub2ZmKFwiZm9jdXNcIix0aGlzLl9zaG93RGF0ZXBpY2tlcikub2ZmKFwia2V5ZG93blwiLHRoaXMuX2RvS2V5RG93bikub2ZmKFwia2V5cHJlc3NcIix0aGlzLl9kb0tleVByZXNzKS5vZmYoXCJrZXl1cFwiLHRoaXMuX2RvS2V5VXApKTpcImRpdlwiIT09ZSYmXCJzcGFuXCIhPT1lfHxpLnJlbW92ZUNsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKS5lbXB0eSgpLHY9PT1zJiYodj1udWxsLHRoaXMuX2N1ckluc3Q9bnVsbCkpfSxfZW5hYmxlRGF0ZXBpY2tlcjpmdW5jdGlvbihlKXt2YXIgdCxpPVYoZSkscz1WLmRhdGEoZSxcImRhdGVwaWNrZXJcIik7aS5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkmJihcImlucHV0XCI9PT0odD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpPyhlLmRpc2FibGVkPSExLHMudHJpZ2dlci5maWx0ZXIoXCJidXR0b25cIikuZWFjaChmdW5jdGlvbigpe3RoaXMuZGlzYWJsZWQ9ITF9KS5lbmQoKS5maWx0ZXIoXCJpbWdcIikuY3NzKHtvcGFjaXR5OlwiMS4wXCIsY3Vyc29yOlwiXCJ9KSk6XCJkaXZcIiE9PXQmJlwic3BhblwiIT09dHx8KChpPWkuY2hpbGRyZW4oXCIuXCIrdGhpcy5faW5saW5lQ2xhc3MpKS5jaGlsZHJlbigpLnJlbW92ZUNsYXNzKFwidWktc3RhdGUtZGlzYWJsZWRcIiksaS5maW5kKFwic2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXJcIikucHJvcChcImRpc2FibGVkXCIsITEpKSx0aGlzLl9kaXNhYmxlZElucHV0cz1WLm1hcCh0aGlzLl9kaXNhYmxlZElucHV0cyxmdW5jdGlvbih0KXtyZXR1cm4gdD09PWU/bnVsbDp0fSkpfSxfZGlzYWJsZURhdGVwaWNrZXI6ZnVuY3Rpb24oZSl7dmFyIHQsaT1WKGUpLHM9Vi5kYXRhKGUsXCJkYXRlcGlja2VyXCIpO2kuaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpJiYoXCJpbnB1dFwiPT09KHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT8oZS5kaXNhYmxlZD0hMCxzLnRyaWdnZXIuZmlsdGVyKFwiYnV0dG9uXCIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVkPSEwfSkuZW5kKCkuZmlsdGVyKFwiaW1nXCIpLmNzcyh7b3BhY2l0eTpcIjAuNVwiLGN1cnNvcjpcImRlZmF1bHRcIn0pKTpcImRpdlwiIT09dCYmXCJzcGFuXCIhPT10fHwoKGk9aS5jaGlsZHJlbihcIi5cIit0aGlzLl9pbmxpbmVDbGFzcykpLmNoaWxkcmVuKCkuYWRkQ2xhc3MoXCJ1aS1zdGF0ZS1kaXNhYmxlZFwiKSxpLmZpbmQoXCJzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhclwiKS5wcm9wKFwiZGlzYWJsZWRcIiwhMCkpLHRoaXMuX2Rpc2FibGVkSW5wdXRzPVYubWFwKHRoaXMuX2Rpc2FibGVkSW5wdXRzLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09ZT9udWxsOnR9KSx0aGlzLl9kaXNhYmxlZElucHV0c1t0aGlzLl9kaXNhYmxlZElucHV0cy5sZW5ndGhdPWUpfSxfaXNEaXNhYmxlZERhdGVwaWNrZXI6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTx0aGlzLl9kaXNhYmxlZElucHV0cy5sZW5ndGg7ZSsrKWlmKHRoaXMuX2Rpc2FibGVkSW5wdXRzW2VdPT09dClyZXR1cm4hMDtyZXR1cm4hMX0sX2dldEluc3Q6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBWLmRhdGEodCxcImRhdGVwaWNrZXJcIil9Y2F0Y2godCl7dGhyb3dcIk1pc3NpbmcgaW5zdGFuY2UgZGF0YSBmb3IgdGhpcyBkYXRlcGlja2VyXCJ9fSxfb3B0aW9uRGF0ZXBpY2tlcjpmdW5jdGlvbih0LGUsaSl7dmFyIHMsbixvPXRoaXMuX2dldEluc3QodCk7aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJlwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVyblwiZGVmYXVsdHNcIj09PWU/Vi5leHRlbmQoe30sVi5kYXRlcGlja2VyLl9kZWZhdWx0cyk6bz9cImFsbFwiPT09ZT9WLmV4dGVuZCh7fSxvLnNldHRpbmdzKTp0aGlzLl9nZXQobyxlKTpudWxsO3M9ZXx8e30sXCJzdHJpbmdcIj09dHlwZW9mIGUmJigocz17fSlbZV09aSksbyYmKHRoaXMuX2N1ckluc3Q9PT1vJiZ0aGlzLl9oaWRlRGF0ZXBpY2tlcigpLG49dGhpcy5fZ2V0RGF0ZURhdGVwaWNrZXIodCwhMCksZT10aGlzLl9nZXRNaW5NYXhEYXRlKG8sXCJtaW5cIiksaT10aGlzLl9nZXRNaW5NYXhEYXRlKG8sXCJtYXhcIiksUChvLnNldHRpbmdzLHMpLG51bGwhPT1lJiZ2b2lkIDAhPT1zLmRhdGVGb3JtYXQmJnZvaWQgMD09PXMubWluRGF0ZSYmKG8uc2V0dGluZ3MubWluRGF0ZT10aGlzLl9mb3JtYXREYXRlKG8sZSkpLG51bGwhPT1pJiZ2b2lkIDAhPT1zLmRhdGVGb3JtYXQmJnZvaWQgMD09PXMubWF4RGF0ZSYmKG8uc2V0dGluZ3MubWF4RGF0ZT10aGlzLl9mb3JtYXREYXRlKG8saSkpLFwiZGlzYWJsZWRcImluIHMmJihzLmRpc2FibGVkP3RoaXMuX2Rpc2FibGVEYXRlcGlja2VyKHQpOnRoaXMuX2VuYWJsZURhdGVwaWNrZXIodCkpLHRoaXMuX2F0dGFjaG1lbnRzKFYodCksbyksdGhpcy5fYXV0b1NpemUobyksdGhpcy5fc2V0RGF0ZShvLG4pLHRoaXMuX3VwZGF0ZUFsdGVybmF0ZShvKSx0aGlzLl91cGRhdGVEYXRlcGlja2VyKG8pKX0sX2NoYW5nZURhdGVwaWNrZXI6ZnVuY3Rpb24odCxlLGkpe3RoaXMuX29wdGlvbkRhdGVwaWNrZXIodCxlLGkpfSxfcmVmcmVzaERhdGVwaWNrZXI6ZnVuY3Rpb24odCl7dD10aGlzLl9nZXRJbnN0KHQpO3QmJnRoaXMuX3VwZGF0ZURhdGVwaWNrZXIodCl9LF9zZXREYXRlRGF0ZXBpY2tlcjpmdW5jdGlvbih0LGUpe3Q9dGhpcy5fZ2V0SW5zdCh0KTt0JiYodGhpcy5fc2V0RGF0ZSh0LGUpLHRoaXMuX3VwZGF0ZURhdGVwaWNrZXIodCksdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKHQpKX0sX2dldERhdGVEYXRlcGlja2VyOmZ1bmN0aW9uKHQsZSl7dD10aGlzLl9nZXRJbnN0KHQpO3JldHVybiB0JiYhdC5pbmxpbmUmJnRoaXMuX3NldERhdGVGcm9tRmllbGQodCxlKSx0P3RoaXMuX2dldERhdGUodCk6bnVsbH0sX2RvS2V5RG93bjpmdW5jdGlvbih0KXt2YXIgZSxpLHM9Vi5kYXRlcGlja2VyLl9nZXRJbnN0KHQudGFyZ2V0KSxuPSEwLG89cy5kcERpdi5pcyhcIi51aS1kYXRlcGlja2VyLXJ0bFwiKTtpZihzLl9rZXlFdmVudD0hMCxWLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nKXN3aXRjaCh0LmtleUNvZGUpe2Nhc2UgOTpWLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCksbj0hMTticmVhaztjYXNlIDEzOnJldHVybihpPVYoXCJ0ZC5cIitWLmRhdGVwaWNrZXIuX2RheU92ZXJDbGFzcytcIjpub3QoLlwiK1YuZGF0ZXBpY2tlci5fY3VycmVudENsYXNzK1wiKVwiLHMuZHBEaXYpKVswXSYmVi5kYXRlcGlja2VyLl9zZWxlY3REYXkodC50YXJnZXQscy5zZWxlY3RlZE1vbnRoLHMuc2VsZWN0ZWRZZWFyLGlbMF0pLChlPVYuZGF0ZXBpY2tlci5fZ2V0KHMsXCJvblNlbGVjdFwiKSk/KGk9Vi5kYXRlcGlja2VyLl9mb3JtYXREYXRlKHMpLGUuYXBwbHkocy5pbnB1dD9zLmlucHV0WzBdOm51bGwsW2ksc10pKTpWLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCksITE7Y2FzZSAyNzpWLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7YnJlYWs7Y2FzZSAzMzpWLmRhdGVwaWNrZXIuX2FkanVzdERhdGUodC50YXJnZXQsdC5jdHJsS2V5Py1WLmRhdGVwaWNrZXIuX2dldChzLFwic3RlcEJpZ01vbnRoc1wiKTotVi5kYXRlcGlja2VyLl9nZXQocyxcInN0ZXBNb250aHNcIiksXCJNXCIpO2JyZWFrO2Nhc2UgMzQ6Vi5kYXRlcGlja2VyLl9hZGp1c3REYXRlKHQudGFyZ2V0LHQuY3RybEtleT8rVi5kYXRlcGlja2VyLl9nZXQocyxcInN0ZXBCaWdNb250aHNcIik6K1YuZGF0ZXBpY2tlci5fZ2V0KHMsXCJzdGVwTW9udGhzXCIpLFwiTVwiKTticmVhaztjYXNlIDM1Oih0LmN0cmxLZXl8fHQubWV0YUtleSkmJlYuZGF0ZXBpY2tlci5fY2xlYXJEYXRlKHQudGFyZ2V0KSxuPXQuY3RybEtleXx8dC5tZXRhS2V5O2JyZWFrO2Nhc2UgMzY6KHQuY3RybEtleXx8dC5tZXRhS2V5KSYmVi5kYXRlcGlja2VyLl9nb3RvVG9kYXkodC50YXJnZXQpLG49dC5jdHJsS2V5fHx0Lm1ldGFLZXk7YnJlYWs7Y2FzZSAzNzoodC5jdHJsS2V5fHx0Lm1ldGFLZXkpJiZWLmRhdGVwaWNrZXIuX2FkanVzdERhdGUodC50YXJnZXQsbz8xOi0xLFwiRFwiKSxuPXQuY3RybEtleXx8dC5tZXRhS2V5LHQub3JpZ2luYWxFdmVudC5hbHRLZXkmJlYuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZSh0LnRhcmdldCx0LmN0cmxLZXk/LVYuZGF0ZXBpY2tlci5fZ2V0KHMsXCJzdGVwQmlnTW9udGhzXCIpOi1WLmRhdGVwaWNrZXIuX2dldChzLFwic3RlcE1vbnRoc1wiKSxcIk1cIik7YnJlYWs7Y2FzZSAzODoodC5jdHJsS2V5fHx0Lm1ldGFLZXkpJiZWLmRhdGVwaWNrZXIuX2FkanVzdERhdGUodC50YXJnZXQsLTcsXCJEXCIpLG49dC5jdHJsS2V5fHx0Lm1ldGFLZXk7YnJlYWs7Y2FzZSAzOToodC5jdHJsS2V5fHx0Lm1ldGFLZXkpJiZWLmRhdGVwaWNrZXIuX2FkanVzdERhdGUodC50YXJnZXQsbz8tMToxLFwiRFwiKSxuPXQuY3RybEtleXx8dC5tZXRhS2V5LHQub3JpZ2luYWxFdmVudC5hbHRLZXkmJlYuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZSh0LnRhcmdldCx0LmN0cmxLZXk/K1YuZGF0ZXBpY2tlci5fZ2V0KHMsXCJzdGVwQmlnTW9udGhzXCIpOitWLmRhdGVwaWNrZXIuX2dldChzLFwic3RlcE1vbnRoc1wiKSxcIk1cIik7YnJlYWs7Y2FzZSA0MDoodC5jdHJsS2V5fHx0Lm1ldGFLZXkpJiZWLmRhdGVwaWNrZXIuX2FkanVzdERhdGUodC50YXJnZXQsNyxcIkRcIiksbj10LmN0cmxLZXl8fHQubWV0YUtleTticmVhaztkZWZhdWx0Om49ITF9ZWxzZSAzNj09PXQua2V5Q29kZSYmdC5jdHJsS2V5P1YuZGF0ZXBpY2tlci5fc2hvd0RhdGVwaWNrZXIodGhpcyk6bj0hMTtuJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfSxfZG9LZXlQcmVzczpmdW5jdGlvbih0KXt2YXIgZSxpPVYuZGF0ZXBpY2tlci5fZ2V0SW5zdCh0LnRhcmdldCk7aWYoVi5kYXRlcGlja2VyLl9nZXQoaSxcImNvbnN0cmFpbklucHV0XCIpKXJldHVybiBlPVYuZGF0ZXBpY2tlci5fcG9zc2libGVDaGFycyhWLmRhdGVwaWNrZXIuX2dldChpLFwiZGF0ZUZvcm1hdFwiKSksaT1TdHJpbmcuZnJvbUNoYXJDb2RlKG51bGw9PXQuY2hhckNvZGU/dC5rZXlDb2RlOnQuY2hhckNvZGUpLHQuY3RybEtleXx8dC5tZXRhS2V5fHxpPFwiIFwifHwhZXx8LTE8ZS5pbmRleE9mKGkpfSxfZG9LZXlVcDpmdW5jdGlvbih0KXt2YXIgZT1WLmRhdGVwaWNrZXIuX2dldEluc3QodC50YXJnZXQpO2lmKGUuaW5wdXQudmFsKCkhPT1lLmxhc3RWYWwpdHJ5e1YuZGF0ZXBpY2tlci5wYXJzZURhdGUoVi5kYXRlcGlja2VyLl9nZXQoZSxcImRhdGVGb3JtYXRcIiksZS5pbnB1dD9lLmlucHV0LnZhbCgpOm51bGwsVi5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoZSkpJiYoVi5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKGUpLFYuZGF0ZXBpY2tlci5fdXBkYXRlQWx0ZXJuYXRlKGUpLFYuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcihlKSl9Y2F0Y2godCl7fXJldHVybiEwfSxfc2hvd0RhdGVwaWNrZXI6ZnVuY3Rpb24odCl7dmFyIGUsaSxzLG47XCJpbnB1dFwiIT09KHQ9dC50YXJnZXR8fHQpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJih0PVYoXCJpbnB1dFwiLHQucGFyZW50Tm9kZSlbMF0pLFYuZGF0ZXBpY2tlci5faXNEaXNhYmxlZERhdGVwaWNrZXIodCl8fFYuZGF0ZXBpY2tlci5fbGFzdElucHV0PT09dHx8KG49Vi5kYXRlcGlja2VyLl9nZXRJbnN0KHQpLFYuZGF0ZXBpY2tlci5fY3VySW5zdCYmVi5kYXRlcGlja2VyLl9jdXJJbnN0IT09biYmKFYuZGF0ZXBpY2tlci5fY3VySW5zdC5kcERpdi5zdG9wKCEwLCEwKSxuJiZWLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nJiZWLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKFYuZGF0ZXBpY2tlci5fY3VySW5zdC5pbnB1dFswXSkpLCExIT09KGk9KHM9Vi5kYXRlcGlja2VyLl9nZXQobixcImJlZm9yZVNob3dcIikpP3MuYXBwbHkodCxbdCxuXSk6e30pJiYoUChuLnNldHRpbmdzLGkpLG4ubGFzdFZhbD1udWxsLFYuZGF0ZXBpY2tlci5fbGFzdElucHV0PXQsVi5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKG4pLFYuZGF0ZXBpY2tlci5faW5EaWFsb2cmJih0LnZhbHVlPVwiXCIpLFYuZGF0ZXBpY2tlci5fcG9zfHwoVi5kYXRlcGlja2VyLl9wb3M9Vi5kYXRlcGlja2VyLl9maW5kUG9zKHQpLFYuZGF0ZXBpY2tlci5fcG9zWzFdKz10Lm9mZnNldEhlaWdodCksZT0hMSxWKHQpLnBhcmVudHMoKS5lYWNoKGZ1bmN0aW9uKCl7cmV0dXJuIShlfD1cImZpeGVkXCI9PT1WKHRoaXMpLmNzcyhcInBvc2l0aW9uXCIpKX0pLHM9e2xlZnQ6Vi5kYXRlcGlja2VyLl9wb3NbMF0sdG9wOlYuZGF0ZXBpY2tlci5fcG9zWzFdfSxWLmRhdGVwaWNrZXIuX3Bvcz1udWxsLG4uZHBEaXYuZW1wdHkoKSxuLmRwRGl2LmNzcyh7cG9zaXRpb246XCJhYnNvbHV0ZVwiLGRpc3BsYXk6XCJibG9ja1wiLHRvcDpcIi0xMDAwcHhcIn0pLFYuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcihuKSxzPVYuZGF0ZXBpY2tlci5fY2hlY2tPZmZzZXQobixzLGUpLG4uZHBEaXYuY3NzKHtwb3NpdGlvbjpWLmRhdGVwaWNrZXIuX2luRGlhbG9nJiZWLmJsb2NrVUk/XCJzdGF0aWNcIjplP1wiZml4ZWRcIjpcImFic29sdXRlXCIsZGlzcGxheTpcIm5vbmVcIixsZWZ0OnMubGVmdCtcInB4XCIsdG9wOnMudG9wK1wicHhcIn0pLG4uaW5saW5lfHwoaT1WLmRhdGVwaWNrZXIuX2dldChuLFwic2hvd0FuaW1cIikscz1WLmRhdGVwaWNrZXIuX2dldChuLFwiZHVyYXRpb25cIiksbi5kcERpdi5jc3MoXCJ6LWluZGV4XCIsZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk7dC5sZW5ndGgmJnRbMF0hPT1kb2N1bWVudDspe2lmKGU9dC5jc3MoXCJwb3NpdGlvblwiKSwoXCJhYnNvbHV0ZVwiPT09ZXx8XCJyZWxhdGl2ZVwiPT09ZXx8XCJmaXhlZFwiPT09ZSkmJihpPXBhcnNlSW50KHQuY3NzKFwiekluZGV4XCIpLDEwKSwhaXNOYU4oaSkmJjAhPT1pKSlyZXR1cm4gaTt0PXQucGFyZW50KCl9cmV0dXJuIDB9KFYodCkpKzEpLFYuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmc9ITAsVi5lZmZlY3RzJiZWLmVmZmVjdHMuZWZmZWN0W2ldP24uZHBEaXYuc2hvdyhpLFYuZGF0ZXBpY2tlci5fZ2V0KG4sXCJzaG93T3B0aW9uc1wiKSxzKTpuLmRwRGl2W2l8fFwic2hvd1wiXShpP3M6bnVsbCksVi5kYXRlcGlja2VyLl9zaG91bGRGb2N1c0lucHV0KG4pJiZuLmlucHV0LnRyaWdnZXIoXCJmb2N1c1wiKSxWLmRhdGVwaWNrZXIuX2N1ckluc3Q9bikpKX0sX3VwZGF0ZURhdGVwaWNrZXI6ZnVuY3Rpb24odCl7dGhpcy5tYXhSb3dzPTQsKHY9dCkuZHBEaXYuZW1wdHkoKS5hcHBlbmQodGhpcy5fZ2VuZXJhdGVIVE1MKHQpKSx0aGlzLl9hdHRhY2hIYW5kbGVycyh0KTt2YXIgZSxpPXRoaXMuX2dldE51bWJlck9mTW9udGhzKHQpLHM9aVsxXSxuPXQuZHBEaXYuZmluZChcIi5cIit0aGlzLl9kYXlPdmVyQ2xhc3MrXCIgYVwiKSxvPVYuZGF0ZXBpY2tlci5fZ2V0KHQsXCJvblVwZGF0ZURhdGVwaWNrZXJcIik7MDxuLmxlbmd0aCYmdy5hcHBseShuLmdldCgwKSksdC5kcERpdi5yZW1vdmVDbGFzcyhcInVpLWRhdGVwaWNrZXItbXVsdGktMiB1aS1kYXRlcGlja2VyLW11bHRpLTMgdWktZGF0ZXBpY2tlci1tdWx0aS00XCIpLndpZHRoKFwiXCIpLDE8cyYmdC5kcERpdi5hZGRDbGFzcyhcInVpLWRhdGVwaWNrZXItbXVsdGktXCIrcykuY3NzKFwid2lkdGhcIiwxNypzK1wiZW1cIiksdC5kcERpdlsoMSE9PWlbMF18fDEhPT1pWzFdP1wiYWRkXCI6XCJyZW1vdmVcIikrXCJDbGFzc1wiXShcInVpLWRhdGVwaWNrZXItbXVsdGlcIiksdC5kcERpdlsodGhpcy5fZ2V0KHQsXCJpc1JUTFwiKT9cImFkZFwiOlwicmVtb3ZlXCIpK1wiQ2xhc3NcIl0oXCJ1aS1kYXRlcGlja2VyLXJ0bFwiKSx0PT09Vi5kYXRlcGlja2VyLl9jdXJJbnN0JiZWLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nJiZWLmRhdGVwaWNrZXIuX3Nob3VsZEZvY3VzSW5wdXQodCkmJnQuaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpLHQueWVhcnNodG1sJiYoZT10LnllYXJzaHRtbCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZT09PXQueWVhcnNodG1sJiZ0LnllYXJzaHRtbCYmdC5kcERpdi5maW5kKFwic2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhclwiKS5maXJzdCgpLnJlcGxhY2VXaXRoKHQueWVhcnNodG1sKSxlPXQueWVhcnNodG1sPW51bGx9LDApKSxvJiZvLmFwcGx5KHQuaW5wdXQ/dC5pbnB1dFswXTpudWxsLFt0XSl9LF9zaG91bGRGb2N1c0lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmlucHV0JiZ0LmlucHV0LmlzKFwiOnZpc2libGVcIikmJiF0LmlucHV0LmlzKFwiOmRpc2FibGVkXCIpJiYhdC5pbnB1dC5pcyhcIjpmb2N1c1wiKX0sX2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10LmRwRGl2Lm91dGVyV2lkdGgoKSxuPXQuZHBEaXYub3V0ZXJIZWlnaHQoKSxvPXQuaW5wdXQ/dC5pbnB1dC5vdXRlcldpZHRoKCk6MCxhPXQuaW5wdXQ/dC5pbnB1dC5vdXRlckhlaWdodCgpOjAscj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgrKGk/MDpWKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkpLGw9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCsoaT8wOlYoZG9jdW1lbnQpLnNjcm9sbFRvcCgpKTtyZXR1cm4gZS5sZWZ0LT10aGlzLl9nZXQodCxcImlzUlRMXCIpP3MtbzowLGUubGVmdC09aSYmZS5sZWZ0PT09dC5pbnB1dC5vZmZzZXQoKS5sZWZ0P1YoZG9jdW1lbnQpLnNjcm9sbExlZnQoKTowLGUudG9wLT1pJiZlLnRvcD09PXQuaW5wdXQub2Zmc2V0KCkudG9wK2E/Vihkb2N1bWVudCkuc2Nyb2xsVG9wKCk6MCxlLmxlZnQtPU1hdGgubWluKGUubGVmdCxlLmxlZnQrcz5yJiZzPHI/TWF0aC5hYnMoZS5sZWZ0K3Mtcik6MCksZS50b3AtPU1hdGgubWluKGUudG9wLGUudG9wK24+bCYmbjxsP01hdGguYWJzKG4rYSk6MCksZX0sX2ZpbmRQb3M6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2dldEluc3QodCksaT10aGlzLl9nZXQoZSxcImlzUlRMXCIpO3QmJihcImhpZGRlblwiPT09dC50eXBlfHwxIT09dC5ub2RlVHlwZXx8Vi5leHByLnBzZXVkb3MuaGlkZGVuKHQpKTspdD10W2k/XCJwcmV2aW91c1NpYmxpbmdcIjpcIm5leHRTaWJsaW5nXCJdO3JldHVyblsoZT1WKHQpLm9mZnNldCgpKS5sZWZ0LGUudG9wXX0sX2hpZGVEYXRlcGlja2VyOmZ1bmN0aW9uKHQpe3ZhciBlLGkscz10aGlzLl9jdXJJbnN0OyFzfHx0JiZzIT09Vi5kYXRhKHQsXCJkYXRlcGlja2VyXCIpfHx0aGlzLl9kYXRlcGlja2VyU2hvd2luZyYmKGU9dGhpcy5fZ2V0KHMsXCJzaG93QW5pbVwiKSxpPXRoaXMuX2dldChzLFwiZHVyYXRpb25cIiksdD1mdW5jdGlvbigpe1YuZGF0ZXBpY2tlci5fdGlkeURpYWxvZyhzKX0sVi5lZmZlY3RzJiYoVi5lZmZlY3RzLmVmZmVjdFtlXXx8Vi5lZmZlY3RzW2VdKT9zLmRwRGl2LmhpZGUoZSxWLmRhdGVwaWNrZXIuX2dldChzLFwic2hvd09wdGlvbnNcIiksaSx0KTpzLmRwRGl2W1wic2xpZGVEb3duXCI9PT1lP1wic2xpZGVVcFwiOlwiZmFkZUluXCI9PT1lP1wiZmFkZU91dFwiOlwiaGlkZVwiXShlP2k6bnVsbCx0KSxlfHx0KCksdGhpcy5fZGF0ZXBpY2tlclNob3dpbmc9ITEsKHQ9dGhpcy5fZ2V0KHMsXCJvbkNsb3NlXCIpKSYmdC5hcHBseShzLmlucHV0P3MuaW5wdXRbMF06bnVsbCxbcy5pbnB1dD9zLmlucHV0LnZhbCgpOlwiXCIsc10pLHRoaXMuX2xhc3RJbnB1dD1udWxsLHRoaXMuX2luRGlhbG9nJiYodGhpcy5fZGlhbG9nSW5wdXQuY3NzKHtwb3NpdGlvbjpcImFic29sdXRlXCIsbGVmdDpcIjBcIix0b3A6XCItMTAwcHhcIn0pLFYuYmxvY2tVSSYmKFYudW5ibG9ja1VJKCksVihcImJvZHlcIikuYXBwZW5kKHRoaXMuZHBEaXYpKSksdGhpcy5faW5EaWFsb2c9ITEpfSxfdGlkeURpYWxvZzpmdW5jdGlvbih0KXt0LmRwRGl2LnJlbW92ZUNsYXNzKHRoaXMuX2RpYWxvZ0NsYXNzKS5vZmYoXCIudWktZGF0ZXBpY2tlci1jYWxlbmRhclwiKX0sX2NoZWNrRXh0ZXJuYWxDbGljazpmdW5jdGlvbih0KXt2YXIgZTtWLmRhdGVwaWNrZXIuX2N1ckluc3QmJihlPVYodC50YXJnZXQpLHQ9Vi5kYXRlcGlja2VyLl9nZXRJbnN0KGVbMF0pLChlWzBdLmlkPT09Vi5kYXRlcGlja2VyLl9tYWluRGl2SWR8fDAhPT1lLnBhcmVudHMoXCIjXCIrVi5kYXRlcGlja2VyLl9tYWluRGl2SWQpLmxlbmd0aHx8ZS5oYXNDbGFzcyhWLmRhdGVwaWNrZXIubWFya2VyQ2xhc3NOYW1lKXx8ZS5jbG9zZXN0KFwiLlwiK1YuZGF0ZXBpY2tlci5fdHJpZ2dlckNsYXNzKS5sZW5ndGh8fCFWLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nfHxWLmRhdGVwaWNrZXIuX2luRGlhbG9nJiZWLmJsb2NrVUkpJiYoIWUuaGFzQ2xhc3MoVi5kYXRlcGlja2VyLm1hcmtlckNsYXNzTmFtZSl8fFYuZGF0ZXBpY2tlci5fY3VySW5zdD09PXQpfHxWLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCkpfSxfYWRqdXN0RGF0ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9Vih0KSx0PXRoaXMuX2dldEluc3Qoc1swXSk7dGhpcy5faXNEaXNhYmxlZERhdGVwaWNrZXIoc1swXSl8fCh0aGlzLl9hZGp1c3RJbnN0RGF0ZSh0LGUsaSksdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcih0KSl9LF9nb3RvVG9kYXk6ZnVuY3Rpb24odCl7dmFyIGU9Vih0KSxpPXRoaXMuX2dldEluc3QoZVswXSk7dGhpcy5fZ2V0KGksXCJnb3RvQ3VycmVudFwiKSYmaS5jdXJyZW50RGF5PyhpLnNlbGVjdGVkRGF5PWkuY3VycmVudERheSxpLmRyYXdNb250aD1pLnNlbGVjdGVkTW9udGg9aS5jdXJyZW50TW9udGgsaS5kcmF3WWVhcj1pLnNlbGVjdGVkWWVhcj1pLmN1cnJlbnRZZWFyKToodD1uZXcgRGF0ZSxpLnNlbGVjdGVkRGF5PXQuZ2V0RGF0ZSgpLGkuZHJhd01vbnRoPWkuc2VsZWN0ZWRNb250aD10LmdldE1vbnRoKCksaS5kcmF3WWVhcj1pLnNlbGVjdGVkWWVhcj10LmdldEZ1bGxZZWFyKCkpLHRoaXMuX25vdGlmeUNoYW5nZShpKSx0aGlzLl9hZGp1c3REYXRlKGUpfSxfc2VsZWN0TW9udGhZZWFyOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz1WKHQpLHQ9dGhpcy5fZ2V0SW5zdChzWzBdKTt0W1wic2VsZWN0ZWRcIisoXCJNXCI9PT1pP1wiTW9udGhcIjpcIlllYXJcIildPXRbXCJkcmF3XCIrKFwiTVwiPT09aT9cIk1vbnRoXCI6XCJZZWFyXCIpXT1wYXJzZUludChlLm9wdGlvbnNbZS5zZWxlY3RlZEluZGV4XS52YWx1ZSwxMCksdGhpcy5fbm90aWZ5Q2hhbmdlKHQpLHRoaXMuX2FkanVzdERhdGUocyl9LF9zZWxlY3REYXk6ZnVuY3Rpb24odCxlLGkscyl7dmFyIG49Vih0KTtWKHMpLmhhc0NsYXNzKHRoaXMuX3Vuc2VsZWN0YWJsZUNsYXNzKXx8dGhpcy5faXNEaXNhYmxlZERhdGVwaWNrZXIoblswXSl8fCgobj10aGlzLl9nZXRJbnN0KG5bMF0pKS5zZWxlY3RlZERheT1uLmN1cnJlbnREYXk9cGFyc2VJbnQoVihcImFcIixzKS5hdHRyKFwiZGF0YS1kYXRlXCIpKSxuLnNlbGVjdGVkTW9udGg9bi5jdXJyZW50TW9udGg9ZSxuLnNlbGVjdGVkWWVhcj1uLmN1cnJlbnRZZWFyPWksdGhpcy5fc2VsZWN0RGF0ZSh0LHRoaXMuX2Zvcm1hdERhdGUobixuLmN1cnJlbnREYXksbi5jdXJyZW50TW9udGgsbi5jdXJyZW50WWVhcikpKX0sX2NsZWFyRGF0ZTpmdW5jdGlvbih0KXt0PVYodCk7dGhpcy5fc2VsZWN0RGF0ZSh0LFwiXCIpfSxfc2VsZWN0RGF0ZTpmdW5jdGlvbih0LGUpe3ZhciBpPVYodCksdD10aGlzLl9nZXRJbnN0KGlbMF0pO2U9bnVsbCE9ZT9lOnRoaXMuX2Zvcm1hdERhdGUodCksdC5pbnB1dCYmdC5pbnB1dC52YWwoZSksdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKHQpLChpPXRoaXMuX2dldCh0LFwib25TZWxlY3RcIikpP2kuYXBwbHkodC5pbnB1dD90LmlucHV0WzBdOm51bGwsW2UsdF0pOnQuaW5wdXQmJnQuaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKSx0LmlubGluZT90aGlzLl91cGRhdGVEYXRlcGlja2VyKHQpOih0aGlzLl9oaWRlRGF0ZXBpY2tlcigpLHRoaXMuX2xhc3RJbnB1dD10LmlucHV0WzBdLFwib2JqZWN0XCIhPXR5cGVvZiB0LmlucHV0WzBdJiZ0LmlucHV0LnRyaWdnZXIoXCJmb2N1c1wiKSx0aGlzLl9sYXN0SW5wdXQ9bnVsbCl9LF91cGRhdGVBbHRlcm5hdGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzPXRoaXMuX2dldCh0LFwiYWx0RmllbGRcIik7cyYmKGU9dGhpcy5fZ2V0KHQsXCJhbHRGb3JtYXRcIil8fHRoaXMuX2dldCh0LFwiZGF0ZUZvcm1hdFwiKSxpPXRoaXMuX2dldERhdGUodCksdD10aGlzLmZvcm1hdERhdGUoZSxpLHRoaXMuX2dldEZvcm1hdENvbmZpZyh0KSksVihkb2N1bWVudCkuZmluZChzKS52YWwodCkpfSxub1dlZWtlbmRzOmZ1bmN0aW9uKHQpe3Q9dC5nZXREYXkoKTtyZXR1cm5bMDx0JiZ0PDYsXCJcIl19LGlzbzg2MDFXZWVrOmZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBEYXRlKHQuZ2V0VGltZSgpKTtyZXR1cm4gZS5zZXREYXRlKGUuZ2V0RGF0ZSgpKzQtKGUuZ2V0RGF5KCl8fDcpKSx0PWUuZ2V0VGltZSgpLGUuc2V0TW9udGgoMCksZS5zZXREYXRlKDEpLE1hdGguZmxvb3IoTWF0aC5yb3VuZCgodC1lKS84NjRlNSkvNykrMX0scGFyc2VEYXRlOmZ1bmN0aW9uKGUsbix0KXtpZihudWxsPT1lfHxudWxsPT1uKXRocm93XCJJbnZhbGlkIGFyZ3VtZW50c1wiO2lmKFwiXCI9PT0obj1cIm9iamVjdFwiPT10eXBlb2Ygbj9uLnRvU3RyaW5nKCk6bitcIlwiKSlyZXR1cm4gbnVsbDtmb3IodmFyIGkscyxvLGE9MCxyPSh0P3Quc2hvcnRZZWFyQ3V0b2ZmOm51bGwpfHx0aGlzLl9kZWZhdWx0cy5zaG9ydFllYXJDdXRvZmYscj1cInN0cmluZ1wiIT10eXBlb2Ygcj9yOihuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSUxMDArcGFyc2VJbnQociwxMCksbD0odD90LmRheU5hbWVzU2hvcnQ6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLmRheU5hbWVzU2hvcnQsaD0odD90LmRheU5hbWVzOm51bGwpfHx0aGlzLl9kZWZhdWx0cy5kYXlOYW1lcyxjPSh0P3QubW9udGhOYW1lc1Nob3J0Om51bGwpfHx0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzU2hvcnQsdT0odD90Lm1vbnRoTmFtZXM6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXMsZD0tMSxwPS0xLGY9LTEsZz0tMSxtPSExLF89ZnVuY3Rpb24odCl7dD13KzE8ZS5sZW5ndGgmJmUuY2hhckF0KHcrMSk9PT10O3JldHVybiB0JiZ3KyssdH0sdj1mdW5jdGlvbih0KXt2YXIgZT1fKHQpLGU9XCJAXCI9PT10PzE0OlwiIVwiPT09dD8yMDpcInlcIj09PXQmJmU/NDpcIm9cIj09PXQ/MzoyLGU9bmV3IFJlZ0V4cChcIl5cXFxcZHtcIisoXCJ5XCI9PT10P2U6MSkrXCIsXCIrZStcIn1cIiksZT1uLnN1YnN0cmluZyhhKS5tYXRjaChlKTtpZighZSl0aHJvd1wiTWlzc2luZyBudW1iZXIgYXQgcG9zaXRpb24gXCIrYTtyZXR1cm4gYSs9ZVswXS5sZW5ndGgscGFyc2VJbnQoZVswXSwxMCl9LGI9ZnVuY3Rpb24odCxlLGkpe3ZhciBzPS0xLGU9Vi5tYXAoXyh0KT9pOmUsZnVuY3Rpb24odCxlKXtyZXR1cm5bW2UsdF1dfSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybi0odFsxXS5sZW5ndGgtZVsxXS5sZW5ndGgpfSk7aWYoVi5lYWNoKGUsZnVuY3Rpb24odCxlKXt2YXIgaT1lWzFdO2lmKG4uc3Vic3RyKGEsaS5sZW5ndGgpLnRvTG93ZXJDYXNlKCk9PT1pLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHM9ZVswXSxhKz1pLmxlbmd0aCwhMX0pLC0xIT09cylyZXR1cm4gcysxO3Rocm93XCJVbmtub3duIG5hbWUgYXQgcG9zaXRpb24gXCIrYX0seT1mdW5jdGlvbigpe2lmKG4uY2hhckF0KGEpIT09ZS5jaGFyQXQodykpdGhyb3dcIlVuZXhwZWN0ZWQgbGl0ZXJhbCBhdCBwb3NpdGlvbiBcIithO2ErK30sdz0wO3c8ZS5sZW5ndGg7dysrKWlmKG0pXCInXCIhPT1lLmNoYXJBdCh3KXx8XyhcIidcIik/eSgpOm09ITE7ZWxzZSBzd2l0Y2goZS5jaGFyQXQodykpe2Nhc2VcImRcIjpmPXYoXCJkXCIpO2JyZWFrO2Nhc2VcIkRcIjpiKFwiRFwiLGwsaCk7YnJlYWs7Y2FzZVwib1wiOmc9dihcIm9cIik7YnJlYWs7Y2FzZVwibVwiOnA9dihcIm1cIik7YnJlYWs7Y2FzZVwiTVwiOnA9YihcIk1cIixjLHUpO2JyZWFrO2Nhc2VcInlcIjpkPXYoXCJ5XCIpO2JyZWFrO2Nhc2VcIkBcIjpkPShvPW5ldyBEYXRlKHYoXCJAXCIpKSkuZ2V0RnVsbFllYXIoKSxwPW8uZ2V0TW9udGgoKSsxLGY9by5nZXREYXRlKCk7YnJlYWs7Y2FzZVwiIVwiOmQ9KG89bmV3IERhdGUoKHYoXCIhXCIpLXRoaXMuX3RpY2tzVG8xOTcwKS8xZTQpKS5nZXRGdWxsWWVhcigpLHA9by5nZXRNb250aCgpKzEsZj1vLmdldERhdGUoKTticmVhaztjYXNlXCInXCI6XyhcIidcIik/eSgpOm09ITA7YnJlYWs7ZGVmYXVsdDp5KCl9aWYoYTxuLmxlbmd0aCYmKHM9bi5zdWJzdHIoYSksIS9eXFxzKy8udGVzdChzKSkpdGhyb3dcIkV4dHJhL3VucGFyc2VkIGNoYXJhY3RlcnMgZm91bmQgaW4gZGF0ZTogXCIrcztpZigtMT09PWQ/ZD0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk6ZDwxMDAmJihkKz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCktKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpJTEwMCsoZDw9cj8wOi0xMDApKSwtMTxnKWZvcihwPTEsZj1nOzspe2lmKGY8PShpPXRoaXMuX2dldERheXNJbk1vbnRoKGQscC0xKSkpYnJlYWs7cCsrLGYtPWl9aWYoKG89dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZCxwLTEsZikpKS5nZXRGdWxsWWVhcigpIT09ZHx8by5nZXRNb250aCgpKzEhPT1wfHxvLmdldERhdGUoKSE9PWYpdGhyb3dcIkludmFsaWQgZGF0ZVwiO3JldHVybiBvfSxBVE9NOlwieXktbW0tZGRcIixDT09LSUU6XCJELCBkZCBNIHl5XCIsSVNPXzg2MDE6XCJ5eS1tbS1kZFwiLFJGQ184MjI6XCJELCBkIE0geVwiLFJGQ184NTA6XCJERCwgZGQtTS15XCIsUkZDXzEwMzY6XCJELCBkIE0geVwiLFJGQ18xMTIzOlwiRCwgZCBNIHl5XCIsUkZDXzI4MjI6XCJELCBkIE0geXlcIixSU1M6XCJELCBkIE0geVwiLFRJQ0tTOlwiIVwiLFRJTUVTVEFNUDpcIkBcIixXM0M6XCJ5eS1tbS1kZFwiLF90aWNrc1RvMTk3MDoyNCooNzE4Njg1K01hdGguZmxvb3IoNDkyLjUpLU1hdGguZmxvb3IoMTkuNykrTWF0aC5mbG9vcig0LjkyNSkpKjYwKjYwKjFlNyxmb3JtYXREYXRlOmZ1bmN0aW9uKGUsdCxpKXtpZighdClyZXR1cm5cIlwiO2Z1bmN0aW9uIG4odCl7cmV0dXJuKHQ9YSsxPGUubGVuZ3RoJiZlLmNoYXJBdChhKzEpPT09dCkmJmErKyx0fWZ1bmN0aW9uIHModCxlLGkpe3ZhciBzPVwiXCIrZTtpZihuKHQpKWZvcig7cy5sZW5ndGg8aTspcz1cIjBcIitzO3JldHVybiBzfWZ1bmN0aW9uIG8odCxlLGkscyl7cmV0dXJuKG4odCk/czppKVtlXX12YXIgYSxyPShpP2kuZGF5TmFtZXNTaG9ydDpudWxsKXx8dGhpcy5fZGVmYXVsdHMuZGF5TmFtZXNTaG9ydCxsPShpP2kuZGF5TmFtZXM6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLmRheU5hbWVzLGg9KGk/aS5tb250aE5hbWVzU2hvcnQ6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXNTaG9ydCxjPShpP2kubW9udGhOYW1lczpudWxsKXx8dGhpcy5fZGVmYXVsdHMubW9udGhOYW1lcyx1PVwiXCIsZD0hMTtpZih0KWZvcihhPTA7YTxlLmxlbmd0aDthKyspaWYoZClcIidcIiE9PWUuY2hhckF0KGEpfHxuKFwiJ1wiKT91Kz1lLmNoYXJBdChhKTpkPSExO2Vsc2Ugc3dpdGNoKGUuY2hhckF0KGEpKXtjYXNlXCJkXCI6dSs9cyhcImRcIix0LmdldERhdGUoKSwyKTticmVhaztjYXNlXCJEXCI6dSs9byhcIkRcIix0LmdldERheSgpLHIsbCk7YnJlYWs7Y2FzZVwib1wiOnUrPXMoXCJvXCIsTWF0aC5yb3VuZCgobmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSkuZ2V0VGltZSgpLW5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSwwLDApLmdldFRpbWUoKSkvODY0ZTUpLDMpO2JyZWFrO2Nhc2VcIm1cIjp1Kz1zKFwibVwiLHQuZ2V0TW9udGgoKSsxLDIpO2JyZWFrO2Nhc2VcIk1cIjp1Kz1vKFwiTVwiLHQuZ2V0TW9udGgoKSxoLGMpO2JyZWFrO2Nhc2VcInlcIjp1Kz1uKFwieVwiKT90LmdldEZ1bGxZZWFyKCk6KHQuZ2V0RnVsbFllYXIoKSUxMDA8MTA/XCIwXCI6XCJcIikrdC5nZXRGdWxsWWVhcigpJTEwMDticmVhaztjYXNlXCJAXCI6dSs9dC5nZXRUaW1lKCk7YnJlYWs7Y2FzZVwiIVwiOnUrPTFlNCp0LmdldFRpbWUoKSt0aGlzLl90aWNrc1RvMTk3MDticmVhaztjYXNlXCInXCI6bihcIidcIik/dSs9XCInXCI6ZD0hMDticmVhaztkZWZhdWx0OnUrPWUuY2hhckF0KGEpfXJldHVybiB1fSxfcG9zc2libGVDaGFyczpmdW5jdGlvbihlKXtmb3IodmFyIHQ9XCJcIixpPSExLHM9ZnVuY3Rpb24odCl7dD1uKzE8ZS5sZW5ndGgmJmUuY2hhckF0KG4rMSk9PT10O3JldHVybiB0JiZuKyssdH0sbj0wO248ZS5sZW5ndGg7bisrKWlmKGkpXCInXCIhPT1lLmNoYXJBdChuKXx8cyhcIidcIik/dCs9ZS5jaGFyQXQobik6aT0hMTtlbHNlIHN3aXRjaChlLmNoYXJBdChuKSl7Y2FzZVwiZFwiOmNhc2VcIm1cIjpjYXNlXCJ5XCI6Y2FzZVwiQFwiOnQrPVwiMDEyMzQ1Njc4OVwiO2JyZWFrO2Nhc2VcIkRcIjpjYXNlXCJNXCI6cmV0dXJuIG51bGw7Y2FzZVwiJ1wiOnMoXCInXCIpP3QrPVwiJ1wiOmk9ITA7YnJlYWs7ZGVmYXVsdDp0Kz1lLmNoYXJBdChuKX1yZXR1cm4gdH0sX2dldDpmdW5jdGlvbih0LGUpe3JldHVybih2b2lkIDAhPT10LnNldHRpbmdzW2VdP3Quc2V0dGluZ3M6dGhpcy5fZGVmYXVsdHMpW2VdfSxfc2V0RGF0ZUZyb21GaWVsZDpmdW5jdGlvbih0LGUpe2lmKHQuaW5wdXQudmFsKCkhPT10Lmxhc3RWYWwpe3ZhciBpPXRoaXMuX2dldCh0LFwiZGF0ZUZvcm1hdFwiKSxzPXQubGFzdFZhbD10LmlucHV0P3QuaW5wdXQudmFsKCk6bnVsbCxuPXRoaXMuX2dldERlZmF1bHREYXRlKHQpLG89bixhPXRoaXMuX2dldEZvcm1hdENvbmZpZyh0KTt0cnl7bz10aGlzLnBhcnNlRGF0ZShpLHMsYSl8fG59Y2F0Y2godCl7cz1lP1wiXCI6c310LnNlbGVjdGVkRGF5PW8uZ2V0RGF0ZSgpLHQuZHJhd01vbnRoPXQuc2VsZWN0ZWRNb250aD1vLmdldE1vbnRoKCksdC5kcmF3WWVhcj10LnNlbGVjdGVkWWVhcj1vLmdldEZ1bGxZZWFyKCksdC5jdXJyZW50RGF5PXM/by5nZXREYXRlKCk6MCx0LmN1cnJlbnRNb250aD1zP28uZ2V0TW9udGgoKTowLHQuY3VycmVudFllYXI9cz9vLmdldEZ1bGxZZWFyKCk6MCx0aGlzLl9hZGp1c3RJbnN0RGF0ZSh0KX19LF9nZXREZWZhdWx0RGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVzdHJpY3RNaW5NYXgodCx0aGlzLl9kZXRlcm1pbmVEYXRlKHQsdGhpcy5fZ2V0KHQsXCJkZWZhdWx0RGF0ZVwiKSxuZXcgRGF0ZSkpfSxfZGV0ZXJtaW5lRGF0ZTpmdW5jdGlvbihyLHQsZSl7dmFyIGkscyx0PW51bGw9PXR8fFwiXCI9PT10P2U6XCJzdHJpbmdcIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBWLmRhdGVwaWNrZXIucGFyc2VEYXRlKFYuZGF0ZXBpY2tlci5fZ2V0KHIsXCJkYXRlRm9ybWF0XCIpLHQsVi5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcocikpfWNhdGNoKHQpe31mb3IodmFyIGU9KHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvXmMvKT9WLmRhdGVwaWNrZXIuX2dldERhdGUocik6bnVsbCl8fG5ldyBEYXRlLGk9ZS5nZXRGdWxsWWVhcigpLHM9ZS5nZXRNb250aCgpLG49ZS5nZXREYXRlKCksbz0vKFsrXFwtXT9bMC05XSspXFxzKihkfER8d3xXfG18TXx5fFkpPy9nLGE9by5leGVjKHQpO2E7KXtzd2l0Y2goYVsyXXx8XCJkXCIpe2Nhc2VcImRcIjpjYXNlXCJEXCI6bis9cGFyc2VJbnQoYVsxXSwxMCk7YnJlYWs7Y2FzZVwid1wiOmNhc2VcIldcIjpuKz03KnBhcnNlSW50KGFbMV0sMTApO2JyZWFrO2Nhc2VcIm1cIjpjYXNlXCJNXCI6cys9cGFyc2VJbnQoYVsxXSwxMCksbj1NYXRoLm1pbihuLFYuZGF0ZXBpY2tlci5fZ2V0RGF5c0luTW9udGgoaSxzKSk7YnJlYWs7Y2FzZVwieVwiOmNhc2VcIllcIjppKz1wYXJzZUludChhWzFdLDEwKSxuPU1hdGgubWluKG4sVi5kYXRlcGlja2VyLl9nZXREYXlzSW5Nb250aChpLHMpKX1hPW8uZXhlYyh0KX1yZXR1cm4gbmV3IERhdGUoaSxzLG4pfSh0KTpcIm51bWJlclwiPT10eXBlb2YgdD9pc05hTih0KT9lOihpPXQsKHM9bmV3IERhdGUpLnNldERhdGUocy5nZXREYXRlKCkraSkscyk6bmV3IERhdGUodC5nZXRUaW1lKCkpO3JldHVybih0PXQmJlwiSW52YWxpZCBEYXRlXCI9PT10LnRvU3RyaW5nKCk/ZTp0KSYmKHQuc2V0SG91cnMoMCksdC5zZXRNaW51dGVzKDApLHQuc2V0U2Vjb25kcygwKSx0LnNldE1pbGxpc2Vjb25kcygwKSksdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QodCl9LF9kYXlsaWdodFNhdmluZ0FkanVzdDpmdW5jdGlvbih0KXtyZXR1cm4gdD8odC5zZXRIb3VycygxMjx0LmdldEhvdXJzKCk/dC5nZXRIb3VycygpKzI6MCksdCk6bnVsbH0sX3NldERhdGU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPSFlLG49dC5zZWxlY3RlZE1vbnRoLG89dC5zZWxlY3RlZFllYXIsZT10aGlzLl9yZXN0cmljdE1pbk1heCh0LHRoaXMuX2RldGVybWluZURhdGUodCxlLG5ldyBEYXRlKSk7dC5zZWxlY3RlZERheT10LmN1cnJlbnREYXk9ZS5nZXREYXRlKCksdC5kcmF3TW9udGg9dC5zZWxlY3RlZE1vbnRoPXQuY3VycmVudE1vbnRoPWUuZ2V0TW9udGgoKSx0LmRyYXdZZWFyPXQuc2VsZWN0ZWRZZWFyPXQuY3VycmVudFllYXI9ZS5nZXRGdWxsWWVhcigpLG49PT10LnNlbGVjdGVkTW9udGgmJm89PT10LnNlbGVjdGVkWWVhcnx8aXx8dGhpcy5fbm90aWZ5Q2hhbmdlKHQpLHRoaXMuX2FkanVzdEluc3REYXRlKHQpLHQuaW5wdXQmJnQuaW5wdXQudmFsKHM/XCJcIjp0aGlzLl9mb3JtYXREYXRlKHQpKX0sX2dldERhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIXQuY3VycmVudFllYXJ8fHQuaW5wdXQmJlwiXCI9PT10LmlucHV0LnZhbCgpP251bGw6dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUodC5jdXJyZW50WWVhcix0LmN1cnJlbnRNb250aCx0LmN1cnJlbnREYXkpKX0sX2F0dGFjaEhhbmRsZXJzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldCh0LFwic3RlcE1vbnRoc1wiKSxpPVwiI1wiK3QuaWQucmVwbGFjZSgvXFxcXFxcXFwvZyxcIlxcXFxcIik7dC5kcERpdi5maW5kKFwiW2RhdGEtaGFuZGxlcl1cIikubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9e3ByZXY6ZnVuY3Rpb24oKXtWLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoaSwtZSxcIk1cIil9LG5leHQ6ZnVuY3Rpb24oKXtWLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoaSwrZSxcIk1cIil9LGhpZGU6ZnVuY3Rpb24oKXtWLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCl9LHRvZGF5OmZ1bmN0aW9uKCl7Vi5kYXRlcGlja2VyLl9nb3RvVG9kYXkoaSl9LHNlbGVjdERheTpmdW5jdGlvbigpe3JldHVybiBWLmRhdGVwaWNrZXIuX3NlbGVjdERheShpLCt0aGlzLmdldEF0dHJpYnV0ZShcImRhdGEtbW9udGhcIiksK3RoaXMuZ2V0QXR0cmlidXRlKFwiZGF0YS15ZWFyXCIpLHRoaXMpLCExfSxzZWxlY3RNb250aDpmdW5jdGlvbigpe3JldHVybiBWLmRhdGVwaWNrZXIuX3NlbGVjdE1vbnRoWWVhcihpLHRoaXMsXCJNXCIpLCExfSxzZWxlY3RZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIFYuZGF0ZXBpY2tlci5fc2VsZWN0TW9udGhZZWFyKGksdGhpcyxcIllcIiksITF9fTtWKHRoaXMpLm9uKHRoaXMuZ2V0QXR0cmlidXRlKFwiZGF0YS1ldmVudFwiKSx0W3RoaXMuZ2V0QXR0cmlidXRlKFwiZGF0YS1oYW5kbGVyXCIpXSl9KX0sX2dlbmVyYXRlSFRNTDpmdW5jdGlvbih0KXt2YXIgZSxpLHMsbixvLGEscixsLGgsYyx1LGQscCxmLGcsbSxfLHYsYix5LHcseCxrLEMsRCxJLFQsUCxNLFMsSCx6LEE9bmV3IERhdGUsTz10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksQS5nZXRNb250aCgpLEEuZ2V0RGF0ZSgpKSksTj10aGlzLl9nZXQodCxcImlzUlRMXCIpLEU9dGhpcy5fZ2V0KHQsXCJzaG93QnV0dG9uUGFuZWxcIiksVz10aGlzLl9nZXQodCxcImhpZGVJZk5vUHJldk5leHRcIiksRj10aGlzLl9nZXQodCxcIm5hdmlnYXRpb25Bc0RhdGVGb3JtYXRcIiksTD10aGlzLl9nZXROdW1iZXJPZk1vbnRocyh0KSxSPXRoaXMuX2dldCh0LFwic2hvd0N1cnJlbnRBdFBvc1wiKSxBPXRoaXMuX2dldCh0LFwic3RlcE1vbnRoc1wiKSxZPTEhPT1MWzBdfHwxIT09TFsxXSxCPXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KHQuY3VycmVudERheT9uZXcgRGF0ZSh0LmN1cnJlbnRZZWFyLHQuY3VycmVudE1vbnRoLHQuY3VycmVudERheSk6bmV3IERhdGUoOTk5OSw5LDkpKSxqPXRoaXMuX2dldE1pbk1heERhdGUodCxcIm1pblwiKSxxPXRoaXMuX2dldE1pbk1heERhdGUodCxcIm1heFwiKSxLPXQuZHJhd01vbnRoLVIsVT10LmRyYXdZZWFyO2lmKEs8MCYmKEsrPTEyLFUtLSkscSlmb3IoZT10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShxLmdldEZ1bGxZZWFyKCkscS5nZXRNb250aCgpLUxbMF0qTFsxXSsxLHEuZ2V0RGF0ZSgpKSksZT1qJiZlPGo/ajplO3RoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKFUsSywxKSk+ZTspLS1LPDAmJihLPTExLFUtLSk7Zm9yKHQuZHJhd01vbnRoPUssdC5kcmF3WWVhcj1VLFI9dGhpcy5fZ2V0KHQsXCJwcmV2VGV4dFwiKSxSPUY/dGhpcy5mb3JtYXREYXRlKFIsdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoVSxLLUEsMSkpLHRoaXMuX2dldEZvcm1hdENvbmZpZyh0KSk6UixpPXRoaXMuX2NhbkFkanVzdE1vbnRoKHQsLTEsVSxLKT9WKFwiPGE+XCIpLmF0dHIoe2NsYXNzOlwidWktZGF0ZXBpY2tlci1wcmV2IHVpLWNvcm5lci1hbGxcIixcImRhdGEtaGFuZGxlclwiOlwicHJldlwiLFwiZGF0YS1ldmVudFwiOlwiY2xpY2tcIix0aXRsZTpSfSkuYXBwZW5kKFYoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJ1aS1pY29uIHVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLVwiKyhOP1wiZVwiOlwid1wiKSkudGV4dChSKSlbMF0ub3V0ZXJIVE1MOlc/XCJcIjpWKFwiPGE+XCIpLmF0dHIoe2NsYXNzOlwidWktZGF0ZXBpY2tlci1wcmV2IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGlzYWJsZWRcIix0aXRsZTpSfSkuYXBwZW5kKFYoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJ1aS1pY29uIHVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLVwiKyhOP1wiZVwiOlwid1wiKSkudGV4dChSKSlbMF0ub3V0ZXJIVE1MLFI9dGhpcy5fZ2V0KHQsXCJuZXh0VGV4dFwiKSxSPUY/dGhpcy5mb3JtYXREYXRlKFIsdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoVSxLK0EsMSkpLHRoaXMuX2dldEZvcm1hdENvbmZpZyh0KSk6UixzPXRoaXMuX2NhbkFkanVzdE1vbnRoKHQsMSxVLEspP1YoXCI8YT5cIikuYXR0cih7Y2xhc3M6XCJ1aS1kYXRlcGlja2VyLW5leHQgdWktY29ybmVyLWFsbFwiLFwiZGF0YS1oYW5kbGVyXCI6XCJuZXh0XCIsXCJkYXRhLWV2ZW50XCI6XCJjbGlja1wiLHRpdGxlOlJ9KS5hcHBlbmQoVihcIjxzcGFuPlwiKS5hZGRDbGFzcyhcInVpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtXCIrKE4/XCJ3XCI6XCJlXCIpKS50ZXh0KFIpKVswXS5vdXRlckhUTUw6Vz9cIlwiOlYoXCI8YT5cIikuYXR0cih7Y2xhc3M6XCJ1aS1kYXRlcGlja2VyLW5leHQgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1kaXNhYmxlZFwiLHRpdGxlOlJ9KS5hcHBlbmQoVihcIjxzcGFuPlwiKS5hdHRyKFwiY2xhc3NcIixcInVpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtXCIrKE4/XCJ3XCI6XCJlXCIpKS50ZXh0KFIpKVswXS5vdXRlckhUTUwsQT10aGlzLl9nZXQodCxcImN1cnJlbnRUZXh0XCIpLFc9dGhpcy5fZ2V0KHQsXCJnb3RvQ3VycmVudFwiKSYmdC5jdXJyZW50RGF5P0I6TyxBPUY/dGhpcy5mb3JtYXREYXRlKEEsVyx0aGlzLl9nZXRGb3JtYXRDb25maWcodCkpOkEsUj1cIlwiLHQuaW5saW5lfHwoUj1WKFwiPGJ1dHRvbj5cIikuYXR0cih7dHlwZTpcImJ1dHRvblwiLGNsYXNzOlwidWktZGF0ZXBpY2tlci1jbG9zZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLXByaW9yaXR5LXByaW1hcnkgdWktY29ybmVyLWFsbFwiLFwiZGF0YS1oYW5kbGVyXCI6XCJoaWRlXCIsXCJkYXRhLWV2ZW50XCI6XCJjbGlja1wifSkudGV4dCh0aGlzLl9nZXQodCxcImNsb3NlVGV4dFwiKSlbMF0ub3V0ZXJIVE1MKSxGPVwiXCIsRSYmKEY9VihcIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB1aS13aWRnZXQtY29udGVudCc+XCIpLmFwcGVuZChOP1I6XCJcIikuYXBwZW5kKHRoaXMuX2lzSW5SYW5nZSh0LFcpP1YoXCI8YnV0dG9uPlwiKS5hdHRyKHt0eXBlOlwiYnV0dG9uXCIsY2xhc3M6XCJ1aS1kYXRlcGlja2VyLWN1cnJlbnQgdWktc3RhdGUtZGVmYXVsdCB1aS1wcmlvcml0eS1zZWNvbmRhcnkgdWktY29ybmVyLWFsbFwiLFwiZGF0YS1oYW5kbGVyXCI6XCJ0b2RheVwiLFwiZGF0YS1ldmVudFwiOlwiY2xpY2tcIn0pLnRleHQoQSk6XCJcIikuYXBwZW5kKE4/XCJcIjpSKVswXS5vdXRlckhUTUwpLG49cGFyc2VJbnQodGhpcy5fZ2V0KHQsXCJmaXJzdERheVwiKSwxMCksbj1pc05hTihuKT8wOm4sbz10aGlzLl9nZXQodCxcInNob3dXZWVrXCIpLGE9dGhpcy5fZ2V0KHQsXCJkYXlOYW1lc1wiKSxyPXRoaXMuX2dldCh0LFwiZGF5TmFtZXNNaW5cIiksbD10aGlzLl9nZXQodCxcIm1vbnRoTmFtZXNcIiksaD10aGlzLl9nZXQodCxcIm1vbnRoTmFtZXNTaG9ydFwiKSxjPXRoaXMuX2dldCh0LFwiYmVmb3JlU2hvd0RheVwiKSx1PXRoaXMuX2dldCh0LFwic2hvd090aGVyTW9udGhzXCIpLGQ9dGhpcy5fZ2V0KHQsXCJzZWxlY3RPdGhlck1vbnRoc1wiKSxwPXRoaXMuX2dldERlZmF1bHREYXRlKHQpLGY9XCJcIixtPTA7bTxMWzBdO20rKyl7Zm9yKF89XCJcIix0aGlzLm1heFJvd3M9NCx2PTA7djxMWzFdO3YrKyl7aWYoYj10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShVLEssdC5zZWxlY3RlZERheSkpLHk9XCIgdWktY29ybmVyLWFsbFwiLHc9XCJcIixZKXtpZih3Kz1cIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItZ3JvdXBcIiwxPExbMV0pc3dpdGNoKHYpe2Nhc2UgMDp3Kz1cIiB1aS1kYXRlcGlja2VyLWdyb3VwLWZpcnN0XCIseT1cIiB1aS1jb3JuZXItXCIrKE4/XCJyaWdodFwiOlwibGVmdFwiKTticmVhaztjYXNlIExbMV0tMTp3Kz1cIiB1aS1kYXRlcGlja2VyLWdyb3VwLWxhc3RcIix5PVwiIHVpLWNvcm5lci1cIisoTj9cImxlZnRcIjpcInJpZ2h0XCIpO2JyZWFrO2RlZmF1bHQ6dys9XCIgdWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGVcIix5PVwiXCJ9dys9XCInPlwifWZvcih3Kz1cIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItaGVhZGVyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4XCIreStcIic+XCIrKC9hbGx8bGVmdC8udGVzdCh5KSYmMD09PW0/Tj9zOmk6XCJcIikrKC9hbGx8cmlnaHQvLnRlc3QoeSkmJjA9PT1tP04/aTpzOlwiXCIpK3RoaXMuX2dlbmVyYXRlTW9udGhZZWFySGVhZGVyKHQsSyxVLGoscSwwPG18fDA8dixsLGgpK1wiPC9kaXY+PHRhYmxlIGNsYXNzPSd1aS1kYXRlcGlja2VyLWNhbGVuZGFyJz48dGhlYWQ+PHRyPlwiLHg9bz9cIjx0aCBjbGFzcz0ndWktZGF0ZXBpY2tlci13ZWVrLWNvbCc+XCIrdGhpcy5fZ2V0KHQsXCJ3ZWVrSGVhZGVyXCIpK1wiPC90aD5cIjpcIlwiLGc9MDtnPDc7ZysrKXgrPVwiPHRoIHNjb3BlPSdjb2wnXCIrKDU8PShnK24rNiklNz9cIiBjbGFzcz0ndWktZGF0ZXBpY2tlci13ZWVrLWVuZCdcIjpcIlwiKStcIj48c3BhbiB0aXRsZT0nXCIrYVtrPShnK24pJTddK1wiJz5cIityW2tdK1wiPC9zcGFuPjwvdGg+XCI7Zm9yKHcrPXgrXCI8L3RyPjwvdGhlYWQ+PHRib2R5PlwiLEQ9dGhpcy5fZ2V0RGF5c0luTW9udGgoVSxLKSxVPT09dC5zZWxlY3RlZFllYXImJks9PT10LnNlbGVjdGVkTW9udGgmJih0LnNlbGVjdGVkRGF5PU1hdGgubWluKHQuc2VsZWN0ZWREYXksRCkpLEM9KHRoaXMuX2dldEZpcnN0RGF5T2ZNb250aChVLEspLW4rNyklNyxEPU1hdGguY2VpbCgoQytEKS83KSxJPVkmJnRoaXMubWF4Um93cz5EP3RoaXMubWF4Um93czpELHRoaXMubWF4Um93cz1JLFQ9dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoVSxLLDEtQykpLFA9MDtQPEk7UCsrKXtmb3Iodys9XCI8dHI+XCIsTT1vP1wiPHRkIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstY29sJz5cIit0aGlzLl9nZXQodCxcImNhbGN1bGF0ZVdlZWtcIikoVCkrXCI8L3RkPlwiOlwiXCIsZz0wO2c8NztnKyspUz1jP2MuYXBwbHkodC5pbnB1dD90LmlucHV0WzBdOm51bGwsW1RdKTpbITAsXCJcIl0sej0oSD1ULmdldE1vbnRoKCkhPT1LKSYmIWR8fCFTWzBdfHxqJiZUPGp8fHEmJnE8VCxNKz1cIjx0ZCBjbGFzcz0nXCIrKDU8PShnK24rNiklNz9cIiB1aS1kYXRlcGlja2VyLXdlZWstZW5kXCI6XCJcIikrKEg/XCIgdWktZGF0ZXBpY2tlci1vdGhlci1tb250aFwiOlwiXCIpKyhULmdldFRpbWUoKT09PWIuZ2V0VGltZSgpJiZLPT09dC5zZWxlY3RlZE1vbnRoJiZ0Ll9rZXlFdmVudHx8cC5nZXRUaW1lKCk9PT1ULmdldFRpbWUoKSYmcC5nZXRUaW1lKCk9PT1iLmdldFRpbWUoKT9cIiBcIit0aGlzLl9kYXlPdmVyQ2xhc3M6XCJcIikrKHo/XCIgXCIrdGhpcy5fdW5zZWxlY3RhYmxlQ2xhc3MrXCIgdWktc3RhdGUtZGlzYWJsZWRcIjpcIlwiKSsoSCYmIXU/XCJcIjpcIiBcIitTWzFdKyhULmdldFRpbWUoKT09PUIuZ2V0VGltZSgpP1wiIFwiK3RoaXMuX2N1cnJlbnRDbGFzczpcIlwiKSsoVC5nZXRUaW1lKCk9PT1PLmdldFRpbWUoKT9cIiB1aS1kYXRlcGlja2VyLXRvZGF5XCI6XCJcIikpK1wiJ1wiKyhIJiYhdXx8IVNbMl0/XCJcIjpcIiB0aXRsZT0nXCIrU1syXS5yZXBsYWNlKC8nL2csXCImIzM5O1wiKStcIidcIikrKHo/XCJcIjpcIiBkYXRhLWhhbmRsZXI9J3NlbGVjdERheScgZGF0YS1ldmVudD0nY2xpY2snIGRhdGEtbW9udGg9J1wiK1QuZ2V0TW9udGgoKStcIicgZGF0YS15ZWFyPSdcIitULmdldEZ1bGxZZWFyKCkrXCInXCIpK1wiPlwiKyhIJiYhdT9cIiYjeGEwO1wiOno/XCI8c3BhbiBjbGFzcz0ndWktc3RhdGUtZGVmYXVsdCc+XCIrVC5nZXREYXRlKCkrXCI8L3NwYW4+XCI6XCI8YSBjbGFzcz0ndWktc3RhdGUtZGVmYXVsdFwiKyhULmdldFRpbWUoKT09PU8uZ2V0VGltZSgpP1wiIHVpLXN0YXRlLWhpZ2hsaWdodFwiOlwiXCIpKyhULmdldFRpbWUoKT09PUIuZ2V0VGltZSgpP1wiIHVpLXN0YXRlLWFjdGl2ZVwiOlwiXCIpKyhIP1wiIHVpLXByaW9yaXR5LXNlY29uZGFyeVwiOlwiXCIpK1wiJyBocmVmPScjJyBhcmlhLWN1cnJlbnQ9J1wiKyhULmdldFRpbWUoKT09PUIuZ2V0VGltZSgpP1widHJ1ZVwiOlwiZmFsc2VcIikrXCInIGRhdGEtZGF0ZT0nXCIrVC5nZXREYXRlKCkrXCInPlwiK1QuZ2V0RGF0ZSgpK1wiPC9hPlwiKStcIjwvdGQ+XCIsVC5zZXREYXRlKFQuZ2V0RGF0ZSgpKzEpLFQ9dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QoVCk7dys9TStcIjwvdHI+XCJ9MTE8KytLJiYoSz0wLFUrKyksXys9dys9XCI8L3Rib2R5PjwvdGFibGU+XCIrKFk/XCI8L2Rpdj5cIisoMDxMWzBdJiZ2PT09TFsxXS0xP1wiPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci1yb3ctYnJlYWsnPjwvZGl2PlwiOlwiXCIpOlwiXCIpfWYrPV99cmV0dXJuIGYrPUYsdC5fa2V5RXZlbnQ9ITEsZn0sX2dlbmVyYXRlTW9udGhZZWFySGVhZGVyOmZ1bmN0aW9uKHQsZSxpLHMsbixvLGEscil7dmFyIGwsaCxjLHUsZCxwLGY9dGhpcy5fZ2V0KHQsXCJjaGFuZ2VNb250aFwiKSxnPXRoaXMuX2dldCh0LFwiY2hhbmdlWWVhclwiKSxtPXRoaXMuX2dldCh0LFwic2hvd01vbnRoQWZ0ZXJZZWFyXCIpLF89dGhpcy5fZ2V0KHQsXCJzZWxlY3RNb250aExhYmVsXCIpLHY9dGhpcy5fZ2V0KHQsXCJzZWxlY3RZZWFyTGFiZWxcIiksYj1cIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItdGl0bGUnPlwiLHk9XCJcIjtpZihvfHwhZil5Kz1cIjxzcGFuIGNsYXNzPSd1aS1kYXRlcGlja2VyLW1vbnRoJz5cIithW2VdK1wiPC9zcGFuPlwiO2Vsc2V7Zm9yKGw9cyYmcy5nZXRGdWxsWWVhcigpPT09aSxoPW4mJm4uZ2V0RnVsbFllYXIoKT09PWkseSs9XCI8c2VsZWN0IGNsYXNzPSd1aS1kYXRlcGlja2VyLW1vbnRoJyBhcmlhLWxhYmVsPSdcIitfK1wiJyBkYXRhLWhhbmRsZXI9J3NlbGVjdE1vbnRoJyBkYXRhLWV2ZW50PSdjaGFuZ2UnPlwiLGM9MDtjPDEyO2MrKykoIWx8fGM+PXMuZ2V0TW9udGgoKSkmJighaHx8Yzw9bi5nZXRNb250aCgpKSYmKHkrPVwiPG9wdGlvbiB2YWx1ZT0nXCIrYytcIidcIisoYz09PWU/XCIgc2VsZWN0ZWQ9J3NlbGVjdGVkJ1wiOlwiXCIpK1wiPlwiK3JbY10rXCI8L29wdGlvbj5cIik7eSs9XCI8L3NlbGVjdD5cIn1pZihtfHwoYis9eSsoIW8mJmYmJmc/XCJcIjpcIiYjeGEwO1wiKSksIXQueWVhcnNodG1sKWlmKHQueWVhcnNodG1sPVwiXCIsb3x8IWcpYis9XCI8c3BhbiBjbGFzcz0ndWktZGF0ZXBpY2tlci15ZWFyJz5cIitpK1wiPC9zcGFuPlwiO2Vsc2V7Zm9yKGE9dGhpcy5fZ2V0KHQsXCJ5ZWFyUmFuZ2VcIikuc3BsaXQoXCI6XCIpLHU9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLGQ9KF89ZnVuY3Rpb24odCl7dD10Lm1hdGNoKC9jWytcXC1dLiovKT9pK3BhcnNlSW50KHQuc3Vic3RyaW5nKDEpLDEwKTp0Lm1hdGNoKC9bK1xcLV0uKi8pP3UrcGFyc2VJbnQodCwxMCk6cGFyc2VJbnQodCwxMCk7cmV0dXJuIGlzTmFOKHQpP3U6dH0pKGFbMF0pLHA9TWF0aC5tYXgoZCxfKGFbMV18fFwiXCIpKSxkPXM/TWF0aC5tYXgoZCxzLmdldEZ1bGxZZWFyKCkpOmQscD1uP01hdGgubWluKHAsbi5nZXRGdWxsWWVhcigpKTpwLHQueWVhcnNodG1sKz1cIjxzZWxlY3QgY2xhc3M9J3VpLWRhdGVwaWNrZXIteWVhcicgYXJpYS1sYWJlbD0nXCIrditcIicgZGF0YS1oYW5kbGVyPSdzZWxlY3RZZWFyJyBkYXRhLWV2ZW50PSdjaGFuZ2UnPlwiO2Q8PXA7ZCsrKXQueWVhcnNodG1sKz1cIjxvcHRpb24gdmFsdWU9J1wiK2QrXCInXCIrKGQ9PT1pP1wiIHNlbGVjdGVkPSdzZWxlY3RlZCdcIjpcIlwiKStcIj5cIitkK1wiPC9vcHRpb24+XCI7dC55ZWFyc2h0bWwrPVwiPC9zZWxlY3Q+XCIsYis9dC55ZWFyc2h0bWwsdC55ZWFyc2h0bWw9bnVsbH1yZXR1cm4gYis9dGhpcy5fZ2V0KHQsXCJ5ZWFyU3VmZml4XCIpLG0mJihiKz0oIW8mJmYmJmc/XCJcIjpcIiYjeGEwO1wiKSt5KSxiKz1cIjwvZGl2PlwifSxfYWRqdXN0SW5zdERhdGU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXQuc2VsZWN0ZWRZZWFyKyhcIllcIj09PWk/ZTowKSxuPXQuc2VsZWN0ZWRNb250aCsoXCJNXCI9PT1pP2U6MCksZT1NYXRoLm1pbih0LnNlbGVjdGVkRGF5LHRoaXMuX2dldERheXNJbk1vbnRoKHMsbikpKyhcIkRcIj09PWk/ZTowKSxlPXRoaXMuX3Jlc3RyaWN0TWluTWF4KHQsdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUocyxuLGUpKSk7dC5zZWxlY3RlZERheT1lLmdldERhdGUoKSx0LmRyYXdNb250aD10LnNlbGVjdGVkTW9udGg9ZS5nZXRNb250aCgpLHQuZHJhd1llYXI9dC5zZWxlY3RlZFllYXI9ZS5nZXRGdWxsWWVhcigpLFwiTVwiIT09aSYmXCJZXCIhPT1pfHx0aGlzLl9ub3RpZnlDaGFuZ2UodCl9LF9yZXN0cmljdE1pbk1heDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2dldE1pbk1heERhdGUodCxcIm1pblwiKSx0PXRoaXMuX2dldE1pbk1heERhdGUodCxcIm1heFwiKSxlPWkmJmU8aT9pOmU7cmV0dXJuIHQmJnQ8ZT90OmV9LF9ub3RpZnlDaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0KHQsXCJvbkNoYW5nZU1vbnRoWWVhclwiKTtlJiZlLmFwcGx5KHQuaW5wdXQ/dC5pbnB1dFswXTpudWxsLFt0LnNlbGVjdGVkWWVhcix0LnNlbGVjdGVkTW9udGgrMSx0XSl9LF9nZXROdW1iZXJPZk1vbnRoczpmdW5jdGlvbih0KXt0PXRoaXMuX2dldCh0LFwibnVtYmVyT2ZNb250aHNcIik7cmV0dXJuIG51bGw9PXQ/WzEsMV06XCJudW1iZXJcIj09dHlwZW9mIHQ/WzEsdF06dH0sX2dldE1pbk1heERhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fZGV0ZXJtaW5lRGF0ZSh0LHRoaXMuX2dldCh0LGUrXCJEYXRlXCIpLG51bGwpfSxfZ2V0RGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMzItdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUodCxlLDMyKSkuZ2V0RGF0ZSgpfSxfZ2V0Rmlyc3REYXlPZk1vbnRoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBEYXRlKHQsZSwxKS5nZXREYXkoKX0sX2NhbkFkanVzdE1vbnRoOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBuPXRoaXMuX2dldE51bWJlck9mTW9udGhzKHQpLG49dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoaSxzKyhlPDA/ZTpuWzBdKm5bMV0pLDEpKTtyZXR1cm4gZTwwJiZuLnNldERhdGUodGhpcy5fZ2V0RGF5c0luTW9udGgobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSkpLHRoaXMuX2lzSW5SYW5nZSh0LG4pfSxfaXNJblJhbmdlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fZ2V0TWluTWF4RGF0ZSh0LFwibWluXCIpLHM9dGhpcy5fZ2V0TWluTWF4RGF0ZSh0LFwibWF4XCIpLG49bnVsbCxvPW51bGwsYT10aGlzLl9nZXQodCxcInllYXJSYW5nZVwiKTtyZXR1cm4gYSYmKHQ9YS5zcGxpdChcIjpcIiksYT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksbj1wYXJzZUludCh0WzBdLDEwKSxvPXBhcnNlSW50KHRbMV0sMTApLHRbMF0ubWF0Y2goL1srXFwtXS4qLykmJihuKz1hKSx0WzFdLm1hdGNoKC9bK1xcLV0uKi8pJiYobys9YSkpLCghaXx8ZS5nZXRUaW1lKCk+PWkuZ2V0VGltZSgpKSYmKCFzfHxlLmdldFRpbWUoKTw9cy5nZXRUaW1lKCkpJiYoIW58fGUuZ2V0RnVsbFllYXIoKT49bikmJighb3x8ZS5nZXRGdWxsWWVhcigpPD1vKX0sX2dldEZvcm1hdENvbmZpZzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9nZXQodCxcInNob3J0WWVhckN1dG9mZlwiKTtyZXR1cm57c2hvcnRZZWFyQ3V0b2ZmOmU9XCJzdHJpbmdcIiE9dHlwZW9mIGU/ZToobmV3IERhdGUpLmdldEZ1bGxZZWFyKCklMTAwK3BhcnNlSW50KGUsMTApLGRheU5hbWVzU2hvcnQ6dGhpcy5fZ2V0KHQsXCJkYXlOYW1lc1Nob3J0XCIpLGRheU5hbWVzOnRoaXMuX2dldCh0LFwiZGF5TmFtZXNcIiksbW9udGhOYW1lc1Nob3J0OnRoaXMuX2dldCh0LFwibW9udGhOYW1lc1Nob3J0XCIpLG1vbnRoTmFtZXM6dGhpcy5fZ2V0KHQsXCJtb250aE5hbWVzXCIpfX0sX2Zvcm1hdERhdGU6ZnVuY3Rpb24odCxlLGkscyl7ZXx8KHQuY3VycmVudERheT10LnNlbGVjdGVkRGF5LHQuY3VycmVudE1vbnRoPXQuc2VsZWN0ZWRNb250aCx0LmN1cnJlbnRZZWFyPXQuc2VsZWN0ZWRZZWFyKTtlPWU/XCJvYmplY3RcIj09dHlwZW9mIGU/ZTp0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShzLGksZSkpOnRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKHQuY3VycmVudFllYXIsdC5jdXJyZW50TW9udGgsdC5jdXJyZW50RGF5KSk7cmV0dXJuIHRoaXMuZm9ybWF0RGF0ZSh0aGlzLl9nZXQodCxcImRhdGVGb3JtYXRcIiksZSx0aGlzLl9nZXRGb3JtYXRDb25maWcodCkpfX0pLFYuZm4uZGF0ZXBpY2tlcj1mdW5jdGlvbih0KXtpZighdGhpcy5sZW5ndGgpcmV0dXJuIHRoaXM7Vi5kYXRlcGlja2VyLmluaXRpYWxpemVkfHwoVihkb2N1bWVudCkub24oXCJtb3VzZWRvd25cIixWLmRhdGVwaWNrZXIuX2NoZWNrRXh0ZXJuYWxDbGljayksVi5kYXRlcGlja2VyLmluaXRpYWxpemVkPSEwKSwwPT09VihcIiNcIitWLmRhdGVwaWNrZXIuX21haW5EaXZJZCkubGVuZ3RoJiZWKFwiYm9keVwiKS5hcHBlbmQoVi5kYXRlcGlja2VyLmRwRGl2KTt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJihcImlzRGlzYWJsZWRcIj09PXR8fFwiZ2V0RGF0ZVwiPT09dHx8XCJ3aWRnZXRcIj09PXQpfHxcIm9wdGlvblwiPT09dCYmMj09PWFyZ3VtZW50cy5sZW5ndGgmJlwic3RyaW5nXCI9PXR5cGVvZiBhcmd1bWVudHNbMV0/Vi5kYXRlcGlja2VyW1wiX1wiK3QrXCJEYXRlcGlja2VyXCJdLmFwcGx5KFYuZGF0ZXBpY2tlcixbdGhpc1swXV0uY29uY2F0KGUpKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtcInN0cmluZ1wiPT10eXBlb2YgdD9WLmRhdGVwaWNrZXJbXCJfXCIrdCtcIkRhdGVwaWNrZXJcIl0uYXBwbHkoVi5kYXRlcGlja2VyLFt0aGlzXS5jb25jYXQoZSkpOlYuZGF0ZXBpY2tlci5fYXR0YWNoRGF0ZXBpY2tlcih0aGlzLHQpfSl9LFYuZGF0ZXBpY2tlcj1uZXcgYixWLmRhdGVwaWNrZXIuaW5pdGlhbGl6ZWQ9ITEsVi5kYXRlcGlja2VyLnV1aWQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksVi5kYXRlcGlja2VyLnZlcnNpb249XCIxLjEzLjJcIjtWLmRhdGVwaWNrZXI7Vi53aWRnZXQoXCJ1aS5kaWFsb2dcIix7dmVyc2lvbjpcIjEuMTMuMlwiLG9wdGlvbnM6e2FwcGVuZFRvOlwiYm9keVwiLGF1dG9PcGVuOiEwLGJ1dHRvbnM6W10sY2xhc3Nlczp7XCJ1aS1kaWFsb2dcIjpcInVpLWNvcm5lci1hbGxcIixcInVpLWRpYWxvZy10aXRsZWJhclwiOlwidWktY29ybmVyLWFsbFwifSxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlVGV4dDpcIkNsb3NlXCIsZHJhZ2dhYmxlOiEwLGhpZGU6bnVsbCxoZWlnaHQ6XCJhdXRvXCIsbWF4SGVpZ2h0Om51bGwsbWF4V2lkdGg6bnVsbCxtaW5IZWlnaHQ6MTUwLG1pbldpZHRoOjE1MCxtb2RhbDohMSxwb3NpdGlvbjp7bXk6XCJjZW50ZXJcIixhdDpcImNlbnRlclwiLG9mOndpbmRvdyxjb2xsaXNpb246XCJmaXRcIix1c2luZzpmdW5jdGlvbih0KXt2YXIgZT1WKHRoaXMpLmNzcyh0KS5vZmZzZXQoKS50b3A7ZTwwJiZWKHRoaXMpLmNzcyhcInRvcFwiLHQudG9wLWUpfX0scmVzaXphYmxlOiEwLHNob3c6bnVsbCx0aXRsZTpudWxsLHdpZHRoOjMwMCxiZWZvcmVDbG9zZTpudWxsLGNsb3NlOm51bGwsZHJhZzpudWxsLGRyYWdTdGFydDpudWxsLGRyYWdTdG9wOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzaXplOm51bGwscmVzaXplU3RhcnQ6bnVsbCxyZXNpemVTdG9wOm51bGx9LHNpemVSZWxhdGVkT3B0aW9uczp7YnV0dG9uczohMCxoZWlnaHQ6ITAsbWF4SGVpZ2h0OiEwLG1heFdpZHRoOiEwLG1pbkhlaWdodDohMCxtaW5XaWR0aDohMCx3aWR0aDohMH0scmVzaXphYmxlUmVsYXRlZE9wdGlvbnM6e21heEhlaWdodDohMCxtYXhXaWR0aDohMCxtaW5IZWlnaHQ6ITAsbWluV2lkdGg6ITB9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9yaWdpbmFsQ3NzPXtkaXNwbGF5OnRoaXMuZWxlbWVudFswXS5zdHlsZS5kaXNwbGF5LHdpZHRoOnRoaXMuZWxlbWVudFswXS5zdHlsZS53aWR0aCxtaW5IZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1pbkhlaWdodCxtYXhIZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1heEhlaWdodCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLmhlaWdodH0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtwYXJlbnQ6dGhpcy5lbGVtZW50LnBhcmVudCgpLGluZGV4OnRoaXMuZWxlbWVudC5wYXJlbnQoKS5jaGlsZHJlbigpLmluZGV4KHRoaXMuZWxlbWVudCl9LHRoaXMub3JpZ2luYWxUaXRsZT10aGlzLmVsZW1lbnQuYXR0cihcInRpdGxlXCIpLG51bGw9PXRoaXMub3B0aW9ucy50aXRsZSYmbnVsbCE9dGhpcy5vcmlnaW5hbFRpdGxlJiYodGhpcy5vcHRpb25zLnRpdGxlPXRoaXMub3JpZ2luYWxUaXRsZSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiYodGhpcy5vcHRpb25zLmRpc2FibGVkPSExKSx0aGlzLl9jcmVhdGVXcmFwcGVyKCksdGhpcy5lbGVtZW50LnNob3coKS5yZW1vdmVBdHRyKFwidGl0bGVcIikuYXBwZW5kVG8odGhpcy51aURpYWxvZyksdGhpcy5fYWRkQ2xhc3MoXCJ1aS1kaWFsb2ctY29udGVudFwiLFwidWktd2lkZ2V0LWNvbnRlbnRcIiksdGhpcy5fY3JlYXRlVGl0bGViYXIoKSx0aGlzLl9jcmVhdGVCdXR0b25QYW5lKCksdGhpcy5vcHRpb25zLmRyYWdnYWJsZSYmVi5mbi5kcmFnZ2FibGUmJnRoaXMuX21ha2VEcmFnZ2FibGUoKSx0aGlzLm9wdGlvbnMucmVzaXphYmxlJiZWLmZuLnJlc2l6YWJsZSYmdGhpcy5fbWFrZVJlc2l6YWJsZSgpLHRoaXMuX2lzT3Blbj0hMSx0aGlzLl90cmFja0ZvY3VzKCl9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLmF1dG9PcGVuJiZ0aGlzLm9wZW4oKX0sX2FwcGVuZFRvOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLmFwcGVuZFRvO3JldHVybiB0JiYodC5qcXVlcnl8fHQubm9kZVR5cGUpP1YodCk6dGhpcy5kb2N1bWVudC5maW5kKHR8fFwiYm9keVwiKS5lcSgwKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMub3JpZ2luYWxQb3NpdGlvbjt0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSx0aGlzLl9kZXN0cm95T3ZlcmxheSgpLHRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpLmNzcyh0aGlzLm9yaWdpbmFsQ3NzKS5kZXRhY2goKSx0aGlzLnVpRGlhbG9nLnJlbW92ZSgpLHRoaXMub3JpZ2luYWxUaXRsZSYmdGhpcy5lbGVtZW50LmF0dHIoXCJ0aXRsZVwiLHRoaXMub3JpZ2luYWxUaXRsZSksKHQ9ZS5wYXJlbnQuY2hpbGRyZW4oKS5lcShlLmluZGV4KSkubGVuZ3RoJiZ0WzBdIT09dGhpcy5lbGVtZW50WzBdP3QuYmVmb3JlKHRoaXMuZWxlbWVudCk6ZS5wYXJlbnQuYXBwZW5kKHRoaXMuZWxlbWVudCl9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVpRGlhbG9nfSxkaXNhYmxlOlYubm9vcCxlbmFibGU6Vi5ub29wLGNsb3NlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5faXNPcGVuJiYhMSE9PXRoaXMuX3RyaWdnZXIoXCJiZWZvcmVDbG9zZVwiLHQpJiYodGhpcy5faXNPcGVuPSExLHRoaXMuX2ZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5fZGVzdHJveU92ZXJsYXkoKSx0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSx0aGlzLm9wZW5lci5maWx0ZXIoXCI6Zm9jdXNhYmxlXCIpLnRyaWdnZXIoXCJmb2N1c1wiKS5sZW5ndGh8fFYudWkuc2FmZUJsdXIoVi51aS5zYWZlQWN0aXZlRWxlbWVudCh0aGlzLmRvY3VtZW50WzBdKSksdGhpcy5faGlkZSh0aGlzLnVpRGlhbG9nLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7ZS5fdHJpZ2dlcihcImNsb3NlXCIsdCl9KSl9LGlzT3BlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc09wZW59LG1vdmVUb1RvcDpmdW5jdGlvbigpe3RoaXMuX21vdmVUb1RvcCgpfSxfbW92ZVRvVG9wOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ITEscz10aGlzLnVpRGlhbG9nLnNpYmxpbmdzKFwiLnVpLWZyb250OnZpc2libGVcIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuK1YodGhpcykuY3NzKFwiei1pbmRleFwiKX0pLmdldCgpLHM9TWF0aC5tYXguYXBwbHkobnVsbCxzKTtyZXR1cm4gcz49K3RoaXMudWlEaWFsb2cuY3NzKFwiei1pbmRleFwiKSYmKHRoaXMudWlEaWFsb2cuY3NzKFwiei1pbmRleFwiLHMrMSksaT0hMCksaSYmIWUmJnRoaXMuX3RyaWdnZXIoXCJmb2N1c1wiLHQpLGl9LG9wZW46ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2lzT3Blbj90aGlzLl9tb3ZlVG9Ub3AoKSYmdGhpcy5fZm9jdXNUYWJiYWJsZSgpOih0aGlzLl9pc09wZW49ITAsdGhpcy5vcGVuZXI9VihWLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pKSx0aGlzLl9zaXplKCksdGhpcy5fcG9zaXRpb24oKSx0aGlzLl9jcmVhdGVPdmVybGF5KCksdGhpcy5fbW92ZVRvVG9wKG51bGwsITApLHRoaXMub3ZlcmxheSYmdGhpcy5vdmVybGF5LmNzcyhcInotaW5kZXhcIix0aGlzLnVpRGlhbG9nLmNzcyhcInotaW5kZXhcIiktMSksdGhpcy5fc2hvdyh0aGlzLnVpRGlhbG9nLHRoaXMub3B0aW9ucy5zaG93LGZ1bmN0aW9uKCl7dC5fZm9jdXNUYWJiYWJsZSgpLHQuX3RyaWdnZXIoXCJmb2N1c1wiKX0pLHRoaXMuX21ha2VGb2N1c1RhcmdldCgpLHRoaXMuX3RyaWdnZXIoXCJvcGVuXCIpKX0sX2ZvY3VzVGFiYmFibGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9mb2N1c2VkRWxlbWVudDsodD10fHx0aGlzLmVsZW1lbnQuZmluZChcIlthdXRvZm9jdXNdXCIpKS5sZW5ndGh8fCh0PXRoaXMuZWxlbWVudC5maW5kKFwiOnRhYmJhYmxlXCIpKSx0Lmxlbmd0aHx8KHQ9dGhpcy51aURpYWxvZ0J1dHRvblBhbmUuZmluZChcIjp0YWJiYWJsZVwiKSksdC5sZW5ndGh8fCh0PXRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlLmZpbHRlcihcIjp0YWJiYWJsZVwiKSksdC5sZW5ndGh8fCh0PXRoaXMudWlEaWFsb2cpLHQuZXEoMCkudHJpZ2dlcihcImZvY3VzXCIpfSxfcmVzdG9yZVRhYmJhYmxlRm9jdXM6ZnVuY3Rpb24oKXt2YXIgdD1WLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pO3RoaXMudWlEaWFsb2dbMF09PT10fHxWLmNvbnRhaW5zKHRoaXMudWlEaWFsb2dbMF0sdCl8fHRoaXMuX2ZvY3VzVGFiYmFibGUoKX0sX2tlZXBGb2N1czpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fcmVzdG9yZVRhYmJhYmxlRm9jdXMoKSx0aGlzLl9kZWxheSh0aGlzLl9yZXN0b3JlVGFiYmFibGVGb2N1cyl9LF9jcmVhdGVXcmFwcGVyOmZ1bmN0aW9uKCl7dGhpcy51aURpYWxvZz1WKFwiPGRpdj5cIikuaGlkZSgpLmF0dHIoe3RhYkluZGV4Oi0xLHJvbGU6XCJkaWFsb2dcIn0pLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLHRoaXMuX2FkZENsYXNzKHRoaXMudWlEaWFsb2csXCJ1aS1kaWFsb2dcIixcInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1mcm9udFwiKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nLHtrZXlkb3duOmZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5jbG9zZU9uRXNjYXBlJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmdC5rZXlDb2RlJiZ0LmtleUNvZGU9PT1WLnVpLmtleUNvZGUuRVNDQVBFKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdm9pZCB0aGlzLmNsb3NlKHQpO3ZhciBlLGksczt0LmtleUNvZGUhPT1WLnVpLmtleUNvZGUuVEFCfHx0LmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoZT10aGlzLnVpRGlhbG9nLmZpbmQoXCI6dGFiYmFibGVcIiksaT1lLmZpcnN0KCkscz1lLmxhc3QoKSx0LnRhcmdldCE9PXNbMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8dC5zaGlmdEtleT90LnRhcmdldCE9PWlbMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8IXQuc2hpZnRLZXl8fCh0aGlzLl9kZWxheShmdW5jdGlvbigpe3MudHJpZ2dlcihcImZvY3VzXCIpfSksdC5wcmV2ZW50RGVmYXVsdCgpKToodGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtpLnRyaWdnZXIoXCJmb2N1c1wiKX0pLHQucHJldmVudERlZmF1bHQoKSkpfSxtb3VzZWRvd246ZnVuY3Rpb24odCl7dGhpcy5fbW92ZVRvVG9wKHQpJiZ0aGlzLl9mb2N1c1RhYmJhYmxlKCl9fSksdGhpcy5lbGVtZW50LmZpbmQoXCJbYXJpYS1kZXNjcmliZWRieV1cIikubGVuZ3RofHx0aGlzLnVpRGlhbG9nLmF0dHIoe1wiYXJpYS1kZXNjcmliZWRieVwiOnRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmF0dHIoXCJpZFwiKX0pfSxfY3JlYXRlVGl0bGViYXI6ZnVuY3Rpb24oKXt2YXIgdDt0aGlzLnVpRGlhbG9nVGl0bGViYXI9VihcIjxkaXY+XCIpLHRoaXMuX2FkZENsYXNzKHRoaXMudWlEaWFsb2dUaXRsZWJhcixcInVpLWRpYWxvZy10aXRsZWJhclwiLFwidWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXhcIiksdGhpcy5fb24odGhpcy51aURpYWxvZ1RpdGxlYmFyLHttb3VzZWRvd246ZnVuY3Rpb24odCl7Vih0LnRhcmdldCkuY2xvc2VzdChcIi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2VcIil8fHRoaXMudWlEaWFsb2cudHJpZ2dlcihcImZvY3VzXCIpfX0pLHRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlPVYoXCI8YnV0dG9uIHR5cGU9J2J1dHRvbic+PC9idXR0b24+XCIpLmJ1dHRvbih7bGFiZWw6VihcIjxhPlwiKS50ZXh0KHRoaXMub3B0aW9ucy5jbG9zZVRleHQpLmh0bWwoKSxpY29uOlwidWktaWNvbi1jbG9zZXRoaWNrXCIsc2hvd0xhYmVsOiExfSkuYXBwZW5kVG8odGhpcy51aURpYWxvZ1RpdGxlYmFyKSx0aGlzLl9hZGRDbGFzcyh0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZSxcInVpLWRpYWxvZy10aXRsZWJhci1jbG9zZVwiKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZSx7Y2xpY2s6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2UodCl9fSksdD1WKFwiPHNwYW4+XCIpLnVuaXF1ZUlkKCkucHJlcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fYWRkQ2xhc3ModCxcInVpLWRpYWxvZy10aXRsZVwiKSx0aGlzLl90aXRsZSh0KSx0aGlzLnVpRGlhbG9nVGl0bGViYXIucHJlcGVuZFRvKHRoaXMudWlEaWFsb2cpLHRoaXMudWlEaWFsb2cuYXR0cih7XCJhcmlhLWxhYmVsbGVkYnlcIjp0LmF0dHIoXCJpZFwiKX0pfSxfdGl0bGU6ZnVuY3Rpb24odCl7dGhpcy5vcHRpb25zLnRpdGxlP3QudGV4dCh0aGlzLm9wdGlvbnMudGl0bGUpOnQuaHRtbChcIiYjMTYwO1wiKX0sX2NyZWF0ZUJ1dHRvblBhbmU6ZnVuY3Rpb24oKXt0aGlzLnVpRGlhbG9nQnV0dG9uUGFuZT1WKFwiPGRpdj5cIiksdGhpcy5fYWRkQ2xhc3ModGhpcy51aURpYWxvZ0J1dHRvblBhbmUsXCJ1aS1kaWFsb2ctYnV0dG9ucGFuZVwiLFwidWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4XCIpLHRoaXMudWlCdXR0b25TZXQ9VihcIjxkaXY+XCIpLmFwcGVuZFRvKHRoaXMudWlEaWFsb2dCdXR0b25QYW5lKSx0aGlzLl9hZGRDbGFzcyh0aGlzLnVpQnV0dG9uU2V0LFwidWktZGlhbG9nLWJ1dHRvbnNldFwiKSx0aGlzLl9jcmVhdGVCdXR0b25zKCl9LF9jcmVhdGVCdXR0b25zOmZ1bmN0aW9uKCl7dmFyIHM9dGhpcyx0PXRoaXMub3B0aW9ucy5idXR0b25zO3RoaXMudWlEaWFsb2dCdXR0b25QYW5lLnJlbW92ZSgpLHRoaXMudWlCdXR0b25TZXQuZW1wdHkoKSxWLmlzRW1wdHlPYmplY3QodCl8fEFycmF5LmlzQXJyYXkodCkmJiF0Lmxlbmd0aD90aGlzLl9yZW1vdmVDbGFzcyh0aGlzLnVpRGlhbG9nLFwidWktZGlhbG9nLWJ1dHRvbnNcIik6KFYuZWFjaCh0LGZ1bmN0aW9uKHQsZSl7dmFyIGk7ZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP3tjbGljazplLHRleHQ6dH06ZSxlPVYuZXh0ZW5kKHt0eXBlOlwiYnV0dG9uXCJ9LGUpLGk9ZS5jbGljayx0PXtpY29uOmUuaWNvbixpY29uUG9zaXRpb246ZS5pY29uUG9zaXRpb24sc2hvd0xhYmVsOmUuc2hvd0xhYmVsLGljb25zOmUuaWNvbnMsdGV4dDplLnRleHR9LGRlbGV0ZSBlLmNsaWNrLGRlbGV0ZSBlLmljb24sZGVsZXRlIGUuaWNvblBvc2l0aW9uLGRlbGV0ZSBlLnNob3dMYWJlbCxkZWxldGUgZS5pY29ucyxcImJvb2xlYW5cIj09dHlwZW9mIGUudGV4dCYmZGVsZXRlIGUudGV4dCxWKFwiPGJ1dHRvbj48L2J1dHRvbj5cIixlKS5idXR0b24odCkuYXBwZW5kVG8ocy51aUJ1dHRvblNldCkub24oXCJjbGlja1wiLGZ1bmN0aW9uKCl7aS5hcHBseShzLmVsZW1lbnRbMF0sYXJndW1lbnRzKX0pfSksdGhpcy5fYWRkQ2xhc3ModGhpcy51aURpYWxvZyxcInVpLWRpYWxvZy1idXR0b25zXCIpLHRoaXMudWlEaWFsb2dCdXR0b25QYW5lLmFwcGVuZFRvKHRoaXMudWlEaWFsb2cpKX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLG89dGhpcy5vcHRpb25zO2Z1bmN0aW9uIGEodCl7cmV0dXJue3Bvc2l0aW9uOnQucG9zaXRpb24sb2Zmc2V0OnQub2Zmc2V0fX10aGlzLnVpRGlhbG9nLmRyYWdnYWJsZSh7Y2FuY2VsOlwiLnVpLWRpYWxvZy1jb250ZW50LCAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlXCIsaGFuZGxlOlwiLnVpLWRpYWxvZy10aXRsZWJhclwiLGNvbnRhaW5tZW50OlwiZG9jdW1lbnRcIixzdGFydDpmdW5jdGlvbih0LGUpe24uX2FkZENsYXNzKFYodGhpcyksXCJ1aS1kaWFsb2ctZHJhZ2dpbmdcIiksbi5fYmxvY2tGcmFtZXMoKSxuLl90cmlnZ2VyKFwiZHJhZ1N0YXJ0XCIsdCxhKGUpKX0sZHJhZzpmdW5jdGlvbih0LGUpe24uX3RyaWdnZXIoXCJkcmFnXCIsdCxhKGUpKX0sc3RvcDpmdW5jdGlvbih0LGUpe3ZhciBpPWUub2Zmc2V0LmxlZnQtbi5kb2N1bWVudC5zY3JvbGxMZWZ0KCkscz1lLm9mZnNldC50b3Atbi5kb2N1bWVudC5zY3JvbGxUb3AoKTtvLnBvc2l0aW9uPXtteTpcImxlZnQgdG9wXCIsYXQ6XCJsZWZ0XCIrKDA8PWk/XCIrXCI6XCJcIikraStcIiB0b3BcIisoMDw9cz9cIitcIjpcIlwiKStzLG9mOm4ud2luZG93fSxuLl9yZW1vdmVDbGFzcyhWKHRoaXMpLFwidWktZGlhbG9nLWRyYWdnaW5nXCIpLG4uX3VuYmxvY2tGcmFtZXMoKSxuLl90cmlnZ2VyKFwiZHJhZ1N0b3BcIix0LGEoZSkpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbigpe3ZhciBuPXRoaXMsbz10aGlzLm9wdGlvbnMsdD1vLnJlc2l6YWJsZSxlPXRoaXMudWlEaWFsb2cuY3NzKFwicG9zaXRpb25cIiksdD1cInN0cmluZ1wiPT10eXBlb2YgdD90OlwibixlLHMsdyxzZSxzdyxuZSxud1wiO2Z1bmN0aW9uIGEodCl7cmV0dXJue29yaWdpbmFsUG9zaXRpb246dC5vcmlnaW5hbFBvc2l0aW9uLG9yaWdpbmFsU2l6ZTp0Lm9yaWdpbmFsU2l6ZSxwb3NpdGlvbjp0LnBvc2l0aW9uLHNpemU6dC5zaXplfX10aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSh7Y2FuY2VsOlwiLnVpLWRpYWxvZy1jb250ZW50XCIsY29udGFpbm1lbnQ6XCJkb2N1bWVudFwiLGFsc29SZXNpemU6dGhpcy5lbGVtZW50LG1heFdpZHRoOm8ubWF4V2lkdGgsbWF4SGVpZ2h0Om8ubWF4SGVpZ2h0LG1pbldpZHRoOm8ubWluV2lkdGgsbWluSGVpZ2h0OnRoaXMuX21pbkhlaWdodCgpLGhhbmRsZXM6dCxzdGFydDpmdW5jdGlvbih0LGUpe24uX2FkZENsYXNzKFYodGhpcyksXCJ1aS1kaWFsb2ctcmVzaXppbmdcIiksbi5fYmxvY2tGcmFtZXMoKSxuLl90cmlnZ2VyKFwicmVzaXplU3RhcnRcIix0LGEoZSkpfSxyZXNpemU6ZnVuY3Rpb24odCxlKXtuLl90cmlnZ2VyKFwicmVzaXplXCIsdCxhKGUpKX0sc3RvcDpmdW5jdGlvbih0LGUpe3ZhciBpPW4udWlEaWFsb2cub2Zmc2V0KCkscz1pLmxlZnQtbi5kb2N1bWVudC5zY3JvbGxMZWZ0KCksaT1pLnRvcC1uLmRvY3VtZW50LnNjcm9sbFRvcCgpO28uaGVpZ2h0PW4udWlEaWFsb2cuaGVpZ2h0KCksby53aWR0aD1uLnVpRGlhbG9nLndpZHRoKCksby5wb3NpdGlvbj17bXk6XCJsZWZ0IHRvcFwiLGF0OlwibGVmdFwiKygwPD1zP1wiK1wiOlwiXCIpK3MrXCIgdG9wXCIrKDA8PWk/XCIrXCI6XCJcIikraSxvZjpuLndpbmRvd30sbi5fcmVtb3ZlQ2xhc3MoVih0aGlzKSxcInVpLWRpYWxvZy1yZXNpemluZ1wiKSxuLl91bmJsb2NrRnJhbWVzKCksbi5fdHJpZ2dlcihcInJlc2l6ZVN0b3BcIix0LGEoZSkpfX0pLmNzcyhcInBvc2l0aW9uXCIsZSl9LF90cmFja0ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fb24odGhpcy53aWRnZXQoKSx7Zm9jdXNpbjpmdW5jdGlvbih0KXt0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl9mb2N1c2VkRWxlbWVudD1WKHQudGFyZ2V0KX19KX0sX21ha2VGb2N1c1RhcmdldDpmdW5jdGlvbigpe3RoaXMuX3VudHJhY2tJbnN0YW5jZSgpLHRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCkudW5zaGlmdCh0aGlzKX0sX3VudHJhY2tJbnN0YW5jZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCksZT1WLmluQXJyYXkodGhpcyx0KTstMSE9PWUmJnQuc3BsaWNlKGUsMSl9LF90cmFja2luZ0luc3RhbmNlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZG9jdW1lbnQuZGF0YShcInVpLWRpYWxvZy1pbnN0YW5jZXNcIik7cmV0dXJuIHR8fCh0PVtdLHRoaXMuZG9jdW1lbnQuZGF0YShcInVpLWRpYWxvZy1pbnN0YW5jZXNcIix0KSksdH0sX21pbkhlaWdodDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucztyZXR1cm5cImF1dG9cIj09PXQuaGVpZ2h0P3QubWluSGVpZ2h0Ok1hdGgubWluKHQubWluSGVpZ2h0LHQuaGVpZ2h0KX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy51aURpYWxvZy5pcyhcIjp2aXNpYmxlXCIpO3R8fHRoaXMudWlEaWFsb2cuc2hvdygpLHRoaXMudWlEaWFsb2cucG9zaXRpb24odGhpcy5vcHRpb25zLnBvc2l0aW9uKSx0fHx0aGlzLnVpRGlhbG9nLmhpZGUoKX0sX3NldE9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcyxzPSExLG49e307Vi5lYWNoKHQsZnVuY3Rpb24odCxlKXtpLl9zZXRPcHRpb24odCxlKSx0IGluIGkuc2l6ZVJlbGF0ZWRPcHRpb25zJiYocz0hMCksdCBpbiBpLnJlc2l6YWJsZVJlbGF0ZWRPcHRpb25zJiYoblt0XT1lKX0pLHMmJih0aGlzLl9zaXplKCksdGhpcy5fcG9zaXRpb24oKSksdGhpcy51aURpYWxvZy5pcyhcIjpkYXRhKHVpLXJlc2l6YWJsZSlcIikmJnRoaXMudWlEaWFsb2cucmVzaXphYmxlKFwib3B0aW9uXCIsbil9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXt2YXIgaSxzPXRoaXMudWlEaWFsb2c7XCJkaXNhYmxlZFwiIT09dCYmKHRoaXMuX3N1cGVyKHQsZSksXCJhcHBlbmRUb1wiPT09dCYmdGhpcy51aURpYWxvZy5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSxcImJ1dHRvbnNcIj09PXQmJnRoaXMuX2NyZWF0ZUJ1dHRvbnMoKSxcImNsb3NlVGV4dFwiPT09dCYmdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuYnV0dG9uKHtsYWJlbDpWKFwiPGE+XCIpLnRleHQoXCJcIit0aGlzLm9wdGlvbnMuY2xvc2VUZXh0KS5odG1sKCl9KSxcImRyYWdnYWJsZVwiPT09dCYmKChpPXMuaXMoXCI6ZGF0YSh1aS1kcmFnZ2FibGUpXCIpKSYmIWUmJnMuZHJhZ2dhYmxlKFwiZGVzdHJveVwiKSwhaSYmZSYmdGhpcy5fbWFrZURyYWdnYWJsZSgpKSxcInBvc2l0aW9uXCI9PT10JiZ0aGlzLl9wb3NpdGlvbigpLFwicmVzaXphYmxlXCI9PT10JiYoKGk9cy5pcyhcIjpkYXRhKHVpLXJlc2l6YWJsZSlcIikpJiYhZSYmcy5yZXNpemFibGUoXCJkZXN0cm95XCIpLGkmJlwic3RyaW5nXCI9PXR5cGVvZiBlJiZzLnJlc2l6YWJsZShcIm9wdGlvblwiLFwiaGFuZGxlc1wiLGUpLGl8fCExPT09ZXx8dGhpcy5fbWFrZVJlc2l6YWJsZSgpKSxcInRpdGxlXCI9PT10JiZ0aGlzLl90aXRsZSh0aGlzLnVpRGlhbG9nVGl0bGViYXIuZmluZChcIi51aS1kaWFsb2ctdGl0bGVcIikpKX0sX3NpemU6ZnVuY3Rpb24oKXt2YXIgdCxlLGkscz10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LnNob3coKS5jc3Moe3dpZHRoOlwiYXV0b1wiLG1pbkhlaWdodDowLG1heEhlaWdodDpcIm5vbmVcIixoZWlnaHQ6MH0pLHMubWluV2lkdGg+cy53aWR0aCYmKHMud2lkdGg9cy5taW5XaWR0aCksdD10aGlzLnVpRGlhbG9nLmNzcyh7aGVpZ2h0OlwiYXV0b1wiLHdpZHRoOnMud2lkdGh9KS5vdXRlckhlaWdodCgpLGU9TWF0aC5tYXgoMCxzLm1pbkhlaWdodC10KSxpPVwibnVtYmVyXCI9PXR5cGVvZiBzLm1heEhlaWdodD9NYXRoLm1heCgwLHMubWF4SGVpZ2h0LXQpOlwibm9uZVwiLFwiYXV0b1wiPT09cy5oZWlnaHQ/dGhpcy5lbGVtZW50LmNzcyh7bWluSGVpZ2h0OmUsbWF4SGVpZ2h0OmksaGVpZ2h0OlwiYXV0b1wifSk6dGhpcy5lbGVtZW50LmhlaWdodChNYXRoLm1heCgwLHMuaGVpZ2h0LXQpKSx0aGlzLnVpRGlhbG9nLmlzKFwiOmRhdGEodWktcmVzaXphYmxlKVwiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoXCJvcHRpb25cIixcIm1pbkhlaWdodFwiLHRoaXMuX21pbkhlaWdodCgpKX0sX2Jsb2NrRnJhbWVzOmZ1bmN0aW9uKCl7dGhpcy5pZnJhbWVCbG9ja3M9dGhpcy5kb2N1bWVudC5maW5kKFwiaWZyYW1lXCIpLm1hcChmdW5jdGlvbigpe3ZhciB0PVYodGhpcyk7cmV0dXJuIFYoXCI8ZGl2PlwiKS5jc3Moe3Bvc2l0aW9uOlwiYWJzb2x1dGVcIix3aWR0aDp0Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dC5vdXRlckhlaWdodCgpfSkuYXBwZW5kVG8odC5wYXJlbnQoKSkub2Zmc2V0KHQub2Zmc2V0KCkpWzBdfSl9LF91bmJsb2NrRnJhbWVzOmZ1bmN0aW9uKCl7dGhpcy5pZnJhbWVCbG9ja3MmJih0aGlzLmlmcmFtZUJsb2Nrcy5yZW1vdmUoKSxkZWxldGUgdGhpcy5pZnJhbWVCbG9ja3MpfSxfYWxsb3dJbnRlcmFjdGlvbjpmdW5jdGlvbih0KXtyZXR1cm4hIVYodC50YXJnZXQpLmNsb3Nlc3QoXCIudWktZGlhbG9nXCIpLmxlbmd0aHx8ISFWKHQudGFyZ2V0KS5jbG9zZXN0KFwiLnVpLWRhdGVwaWNrZXJcIikubGVuZ3RofSxfY3JlYXRlT3ZlcmxheTpmdW5jdGlvbigpe3ZhciBpLHM7dGhpcy5vcHRpb25zLm1vZGFsJiYoaT1WLmZuLmpxdWVyeS5zdWJzdHJpbmcoMCw0KSxzPSEwLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7cz0hMX0pLHRoaXMuZG9jdW1lbnQuZGF0YShcInVpLWRpYWxvZy1vdmVybGF5c1wiKXx8dGhpcy5kb2N1bWVudC5vbihcImZvY3VzaW4udWktZGlhbG9nXCIsZnVuY3Rpb24odCl7dmFyIGU7c3x8KChlPXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKClbMF0pLl9hbGxvd0ludGVyYWN0aW9uKHQpfHwodC5wcmV2ZW50RGVmYXVsdCgpLGUuX2ZvY3VzVGFiYmFibGUoKSxcIjMuNC5cIiE9PWkmJlwiMy41LlwiIT09aXx8ZS5fZGVsYXkoZS5fcmVzdG9yZVRhYmJhYmxlRm9jdXMpKSl9LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheT1WKFwiPGRpdj5cIikuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksdGhpcy5fYWRkQ2xhc3ModGhpcy5vdmVybGF5LG51bGwsXCJ1aS13aWRnZXQtb3ZlcmxheSB1aS1mcm9udFwiKSx0aGlzLl9vbih0aGlzLm92ZXJsYXkse21vdXNlZG93bjpcIl9rZWVwRm9jdXNcIn0pLHRoaXMuZG9jdW1lbnQuZGF0YShcInVpLWRpYWxvZy1vdmVybGF5c1wiLCh0aGlzLmRvY3VtZW50LmRhdGEoXCJ1aS1kaWFsb2ctb3ZlcmxheXNcIil8fDApKzEpKX0sX2Rlc3Ryb3lPdmVybGF5OmZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5vcHRpb25zLm1vZGFsJiZ0aGlzLm92ZXJsYXkmJigodD10aGlzLmRvY3VtZW50LmRhdGEoXCJ1aS1kaWFsb2ctb3ZlcmxheXNcIiktMSk/dGhpcy5kb2N1bWVudC5kYXRhKFwidWktZGlhbG9nLW92ZXJsYXlzXCIsdCk6KHRoaXMuZG9jdW1lbnQub2ZmKFwiZm9jdXNpbi51aS1kaWFsb2dcIiksdGhpcy5kb2N1bWVudC5yZW1vdmVEYXRhKFwidWktZGlhbG9nLW92ZXJsYXlzXCIpKSx0aGlzLm92ZXJsYXkucmVtb3ZlKCksdGhpcy5vdmVybGF5PW51bGwpfX0pLCExIT09Vi51aUJhY2tDb21wYXQmJlYud2lkZ2V0KFwidWkuZGlhbG9nXCIsVi51aS5kaWFsb2cse29wdGlvbnM6e2RpYWxvZ0NsYXNzOlwiXCJ9LF9jcmVhdGVXcmFwcGVyOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIoKSx0aGlzLnVpRGlhbG9nLmFkZENsYXNzKHRoaXMub3B0aW9ucy5kaWFsb2dDbGFzcyl9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXtcImRpYWxvZ0NsYXNzXCI9PT10JiZ0aGlzLnVpRGlhbG9nLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5kaWFsb2dDbGFzcykuYWRkQ2xhc3MoZSksdGhpcy5fc3VwZXJBcHBseShhcmd1bWVudHMpfX0pO1YudWkuZGlhbG9nLFYud2lkZ2V0KFwidWkucHJvZ3Jlc3NiYXJcIix7dmVyc2lvbjpcIjEuMTMuMlwiLG9wdGlvbnM6e2NsYXNzZXM6e1widWktcHJvZ3Jlc3NiYXJcIjpcInVpLWNvcm5lci1hbGxcIixcInVpLXByb2dyZXNzYmFyLXZhbHVlXCI6XCJ1aS1jb3JuZXItbGVmdFwiLFwidWktcHJvZ3Jlc3NiYXItY29tcGxldGVcIjpcInVpLWNvcm5lci1yaWdodFwifSxtYXg6MTAwLHZhbHVlOjAsY2hhbmdlOm51bGwsY29tcGxldGU6bnVsbH0sbWluOjAsX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMub2xkVmFsdWU9dGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX2NvbnN0cmFpbmVkVmFsdWUoKSx0aGlzLmVsZW1lbnQuYXR0cih7cm9sZTpcInByb2dyZXNzYmFyXCIsXCJhcmlhLXZhbHVlbWluXCI6dGhpcy5taW59KSx0aGlzLl9hZGRDbGFzcyhcInVpLXByb2dyZXNzYmFyXCIsXCJ1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnRcIiksdGhpcy52YWx1ZURpdj1WKFwiPGRpdj5cIikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSx0aGlzLl9hZGRDbGFzcyh0aGlzLnZhbHVlRGl2LFwidWktcHJvZ3Jlc3NiYXItdmFsdWVcIixcInVpLXdpZGdldC1oZWFkZXJcIiksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoXCJyb2xlIGFyaWEtdmFsdWVtaW4gYXJpYS12YWx1ZW1heCBhcmlhLXZhbHVlbm93XCIpLHRoaXMudmFsdWVEaXYucmVtb3ZlKCl9LHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZTt0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZSh0KSx0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX2NvbnN0cmFpbmVkVmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXRoaXMub3B0aW9ucy52YWx1ZSksdGhpcy5pbmRldGVybWluYXRlPSExPT09dCxcIm51bWJlclwiIT10eXBlb2YgdCYmKHQ9MCksIXRoaXMuaW5kZXRlcm1pbmF0ZSYmTWF0aC5taW4odGhpcy5vcHRpb25zLm1heCxNYXRoLm1heCh0aGlzLm1pbix0KSl9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPXQudmFsdWU7ZGVsZXRlIHQudmFsdWUsdGhpcy5fc3VwZXIodCksdGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX2NvbnN0cmFpbmVkVmFsdWUoZSksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXtcIm1heFwiPT09dCYmKGU9TWF0aC5tYXgodGhpcy5taW4sZSkpLHRoaXMuX3N1cGVyKHQsZSl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbih0KXt0aGlzLl9zdXBlcih0KSx0aGlzLmVsZW1lbnQuYXR0cihcImFyaWEtZGlzYWJsZWRcIix0KSx0aGlzLl90b2dnbGVDbGFzcyhudWxsLFwidWktc3RhdGUtZGlzYWJsZWRcIiwhIXQpfSxfcGVyY2VudGFnZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV0ZXJtaW5hdGU/MTAwOjEwMCoodGhpcy5vcHRpb25zLnZhbHVlLXRoaXMubWluKS8odGhpcy5vcHRpb25zLm1heC10aGlzLm1pbil9LF9yZWZyZXNoVmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMudmFsdWUsZT10aGlzLl9wZXJjZW50YWdlKCk7dGhpcy52YWx1ZURpdi50b2dnbGUodGhpcy5pbmRldGVybWluYXRlfHx0PnRoaXMubWluKS53aWR0aChlLnRvRml4ZWQoMCkrXCIlXCIpLHRoaXMuX3RvZ2dsZUNsYXNzKHRoaXMudmFsdWVEaXYsXCJ1aS1wcm9ncmVzc2Jhci1jb21wbGV0ZVwiLG51bGwsdD09PXRoaXMub3B0aW9ucy5tYXgpLl90b2dnbGVDbGFzcyhcInVpLXByb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGVcIixudWxsLHRoaXMuaW5kZXRlcm1pbmF0ZSksdGhpcy5pbmRldGVybWluYXRlPyh0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cihcImFyaWEtdmFsdWVub3dcIiksdGhpcy5vdmVybGF5RGl2fHwodGhpcy5vdmVybGF5RGl2PVYoXCI8ZGl2PlwiKS5hcHBlbmRUbyh0aGlzLnZhbHVlRGl2KSx0aGlzLl9hZGRDbGFzcyh0aGlzLm92ZXJsYXlEaXYsXCJ1aS1wcm9ncmVzc2Jhci1vdmVybGF5XCIpKSk6KHRoaXMuZWxlbWVudC5hdHRyKHtcImFyaWEtdmFsdWVtYXhcIjp0aGlzLm9wdGlvbnMubWF4LFwiYXJpYS12YWx1ZW5vd1wiOnR9KSx0aGlzLm92ZXJsYXlEaXYmJih0aGlzLm92ZXJsYXlEaXYucmVtb3ZlKCksdGhpcy5vdmVybGF5RGl2PW51bGwpKSx0aGlzLm9sZFZhbHVlIT09dCYmKHRoaXMub2xkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKFwiY2hhbmdlXCIpKSx0PT09dGhpcy5vcHRpb25zLm1heCYmdGhpcy5fdHJpZ2dlcihcImNvbXBsZXRlXCIpfX0pLFYud2lkZ2V0KFwidWkuc2VsZWN0bWVudVwiLFtWLnVpLmZvcm1SZXNldE1peGluLHt2ZXJzaW9uOlwiMS4xMy4yXCIsZGVmYXVsdEVsZW1lbnQ6XCI8c2VsZWN0PlwiLG9wdGlvbnM6e2FwcGVuZFRvOm51bGwsY2xhc3Nlczp7XCJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1vcGVuXCI6XCJ1aS1jb3JuZXItdG9wXCIsXCJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1jbG9zZWRcIjpcInVpLWNvcm5lci1hbGxcIn0sZGlzYWJsZWQ6bnVsbCxpY29uczp7YnV0dG9uOlwidWktaWNvbi10cmlhbmdsZS0xLXNcIn0scG9zaXRpb246e215OlwibGVmdCB0b3BcIixhdDpcImxlZnQgYm90dG9tXCIsY29sbGlzaW9uOlwibm9uZVwifSx3aWR0aDohMSxjaGFuZ2U6bnVsbCxjbG9zZTpudWxsLGZvY3VzOm51bGwsb3BlbjpudWxsLHNlbGVjdDpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LnVuaXF1ZUlkKCkuYXR0cihcImlkXCIpO3RoaXMuaWRzPXtlbGVtZW50OnQsYnV0dG9uOnQrXCItYnV0dG9uXCIsbWVudTp0K1wiLW1lbnVcIn0sdGhpcy5fZHJhd0J1dHRvbigpLHRoaXMuX2RyYXdNZW51KCksdGhpcy5fYmluZEZvcm1SZXNldEhhbmRsZXIoKSx0aGlzLl9yZW5kZXJlZD0hMSx0aGlzLm1lbnVJdGVtcz1WKCl9LF9kcmF3QnV0dG9uOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLGk9dGhpcy5fcGFyc2VPcHRpb24odGhpcy5lbGVtZW50LmZpbmQoXCJvcHRpb246c2VsZWN0ZWRcIiksdGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpO3RoaXMubGFiZWxzPXRoaXMuZWxlbWVudC5sYWJlbHMoKS5hdHRyKFwiZm9yXCIsdGhpcy5pZHMuYnV0dG9uKSx0aGlzLl9vbih0aGlzLmxhYmVscyx7Y2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5idXR0b24udHJpZ2dlcihcImZvY3VzXCIpLHQucHJldmVudERlZmF1bHQoKX19KSx0aGlzLmVsZW1lbnQuaGlkZSgpLHRoaXMuYnV0dG9uPVYoXCI8c3Bhbj5cIix7dGFiaW5kZXg6dGhpcy5vcHRpb25zLmRpc2FibGVkPy0xOjAsaWQ6dGhpcy5pZHMuYnV0dG9uLHJvbGU6XCJjb21ib2JveFwiLFwiYXJpYS1leHBhbmRlZFwiOlwiZmFsc2VcIixcImFyaWEtYXV0b2NvbXBsZXRlXCI6XCJsaXN0XCIsXCJhcmlhLW93bnNcIjp0aGlzLmlkcy5tZW51LFwiYXJpYS1oYXNwb3B1cFwiOlwidHJ1ZVwiLHRpdGxlOnRoaXMuZWxlbWVudC5hdHRyKFwidGl0bGVcIil9KS5pbnNlcnRBZnRlcih0aGlzLmVsZW1lbnQpLHRoaXMuX2FkZENsYXNzKHRoaXMuYnV0dG9uLFwidWktc2VsZWN0bWVudS1idXR0b24gdWktc2VsZWN0bWVudS1idXR0b24tY2xvc2VkXCIsXCJ1aS1idXR0b24gdWktd2lkZ2V0XCIpLHQ9VihcIjxzcGFuPlwiKS5hcHBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5fYWRkQ2xhc3ModCxcInVpLXNlbGVjdG1lbnUtaWNvblwiLFwidWktaWNvbiBcIit0aGlzLm9wdGlvbnMuaWNvbnMuYnV0dG9uKSx0aGlzLmJ1dHRvbkl0ZW09dGhpcy5fcmVuZGVyQnV0dG9uSXRlbShpKS5hcHBlbmRUbyh0aGlzLmJ1dHRvbiksITEhPT10aGlzLm9wdGlvbnMud2lkdGgmJnRoaXMuX3Jlc2l6ZUJ1dHRvbigpLHRoaXMuX29uKHRoaXMuYnV0dG9uLHRoaXMuX2J1dHRvbkV2ZW50cyksdGhpcy5idXR0b24ub25lKFwiZm9jdXNpblwiLGZ1bmN0aW9uKCl7ZS5fcmVuZGVyZWR8fGUuX3JlZnJlc2hNZW51KCl9KX0sX2RyYXdNZW51OmZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLm1lbnU9VihcIjx1bD5cIix7XCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwiLFwiYXJpYS1sYWJlbGxlZGJ5XCI6dGhpcy5pZHMuYnV0dG9uLGlkOnRoaXMuaWRzLm1lbnV9KSx0aGlzLm1lbnVXcmFwPVYoXCI8ZGl2PlwiKS5hcHBlbmQodGhpcy5tZW51KSx0aGlzLl9hZGRDbGFzcyh0aGlzLm1lbnVXcmFwLFwidWktc2VsZWN0bWVudS1tZW51XCIsXCJ1aS1mcm9udFwiKSx0aGlzLm1lbnVXcmFwLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLHRoaXMubWVudUluc3RhbmNlPXRoaXMubWVudS5tZW51KHtjbGFzc2VzOntcInVpLW1lbnVcIjpcInVpLWNvcm5lci1ib3R0b21cIn0scm9sZTpcImxpc3Rib3hcIixzZWxlY3Q6ZnVuY3Rpb24odCxlKXt0LnByZXZlbnREZWZhdWx0KCksaS5fc2V0U2VsZWN0aW9uKCksaS5fc2VsZWN0KGUuaXRlbS5kYXRhKFwidWktc2VsZWN0bWVudS1pdGVtXCIpLHQpfSxmb2N1czpmdW5jdGlvbih0LGUpe2U9ZS5pdGVtLmRhdGEoXCJ1aS1zZWxlY3RtZW51LWl0ZW1cIik7bnVsbCE9aS5mb2N1c0luZGV4JiZlLmluZGV4IT09aS5mb2N1c0luZGV4JiYoaS5fdHJpZ2dlcihcImZvY3VzXCIsdCx7aXRlbTplfSksaS5pc09wZW58fGkuX3NlbGVjdChlLHQpKSxpLmZvY3VzSW5kZXg9ZS5pbmRleCxpLmJ1dHRvbi5hdHRyKFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCIsaS5tZW51SXRlbXMuZXEoZS5pbmRleCkuYXR0cihcImlkXCIpKX19KS5tZW51KFwiaW5zdGFuY2VcIiksdGhpcy5tZW51SW5zdGFuY2UuX29mZih0aGlzLm1lbnUsXCJtb3VzZWxlYXZlXCIpLHRoaXMubWVudUluc3RhbmNlLl9jbG9zZU9uRG9jdW1lbnRDbGljaz1mdW5jdGlvbigpe3JldHVybiExfSx0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuITF9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fcmVmcmVzaE1lbnUoKSx0aGlzLmJ1dHRvbkl0ZW0ucmVwbGFjZVdpdGgodGhpcy5idXR0b25JdGVtPXRoaXMuX3JlbmRlckJ1dHRvbkl0ZW0odGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkuZGF0YShcInVpLXNlbGVjdG1lbnUtaXRlbVwiKXx8e30pKSxudWxsPT09dGhpcy5vcHRpb25zLndpZHRoJiZ0aGlzLl9yZXNpemVCdXR0b24oKX0sX3JlZnJlc2hNZW51OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LmZpbmQoXCJvcHRpb25cIik7dGhpcy5tZW51LmVtcHR5KCksdGhpcy5fcGFyc2VPcHRpb25zKHQpLHRoaXMuX3JlbmRlck1lbnUodGhpcy5tZW51LHRoaXMuaXRlbXMpLHRoaXMubWVudUluc3RhbmNlLnJlZnJlc2goKSx0aGlzLm1lbnVJdGVtcz10aGlzLm1lbnUuZmluZChcImxpXCIpLm5vdChcIi51aS1zZWxlY3RtZW51LW9wdGdyb3VwXCIpLmZpbmQoXCIudWktbWVudS1pdGVtLXdyYXBwZXJcIiksdGhpcy5fcmVuZGVyZWQ9ITAsdC5sZW5ndGgmJih0PXRoaXMuX2dldFNlbGVjdGVkSXRlbSgpLHRoaXMubWVudUluc3RhbmNlLmZvY3VzKG51bGwsdCksdGhpcy5fc2V0QXJpYSh0LmRhdGEoXCJ1aS1zZWxlY3RtZW51LWl0ZW1cIikpLHRoaXMuX3NldE9wdGlvbihcImRpc2FibGVkXCIsdGhpcy5lbGVtZW50LnByb3AoXCJkaXNhYmxlZFwiKSkpfSxvcGVuOmZ1bmN0aW9uKHQpe3RoaXMub3B0aW9ucy5kaXNhYmxlZHx8KHRoaXMuX3JlbmRlcmVkPyh0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLm1lbnUuZmluZChcIi51aS1zdGF0ZS1hY3RpdmVcIiksbnVsbCxcInVpLXN0YXRlLWFjdGl2ZVwiKSx0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyhudWxsLHRoaXMuX2dldFNlbGVjdGVkSXRlbSgpKSk6dGhpcy5fcmVmcmVzaE1lbnUoKSx0aGlzLm1lbnVJdGVtcy5sZW5ndGgmJih0aGlzLmlzT3Blbj0hMCx0aGlzLl90b2dnbGVBdHRyKCksdGhpcy5fcmVzaXplTWVudSgpLHRoaXMuX3Bvc2l0aW9uKCksdGhpcy5fb24odGhpcy5kb2N1bWVudCx0aGlzLl9kb2N1bWVudENsaWNrKSx0aGlzLl90cmlnZ2VyKFwib3BlblwiLHQpKSl9LF9wb3NpdGlvbjpmdW5jdGlvbigpe3RoaXMubWVudVdyYXAucG9zaXRpb24oVi5leHRlbmQoe29mOnRoaXMuYnV0dG9ufSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKX0sY2xvc2U6ZnVuY3Rpb24odCl7dGhpcy5pc09wZW4mJih0aGlzLmlzT3Blbj0hMSx0aGlzLl90b2dnbGVBdHRyKCksdGhpcy5yYW5nZT1udWxsLHRoaXMuX29mZih0aGlzLmRvY3VtZW50KSx0aGlzLl90cmlnZ2VyKFwiY2xvc2VcIix0KSl9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1dHRvbn0sbWVudVdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbnV9LF9yZW5kZXJCdXR0b25JdGVtOmZ1bmN0aW9uKHQpe3ZhciBlPVYoXCI8c3Bhbj5cIik7cmV0dXJuIHRoaXMuX3NldFRleHQoZSx0LmxhYmVsKSx0aGlzLl9hZGRDbGFzcyhlLFwidWktc2VsZWN0bWVudS10ZXh0XCIpLGV9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHMsdCl7dmFyIG49dGhpcyxvPVwiXCI7Vi5lYWNoKHQsZnVuY3Rpb24odCxlKXt2YXIgaTtlLm9wdGdyb3VwIT09byYmKGk9VihcIjxsaT5cIix7dGV4dDplLm9wdGdyb3VwfSksbi5fYWRkQ2xhc3MoaSxcInVpLXNlbGVjdG1lbnUtb3B0Z3JvdXBcIixcInVpLW1lbnUtZGl2aWRlclwiKyhlLmVsZW1lbnQucGFyZW50KFwib3B0Z3JvdXBcIikucHJvcChcImRpc2FibGVkXCIpP1wiIHVpLXN0YXRlLWRpc2FibGVkXCI6XCJcIikpLGkuYXBwZW5kVG8ocyksbz1lLm9wdGdyb3VwKSxuLl9yZW5kZXJJdGVtRGF0YShzLGUpfSl9LF9yZW5kZXJJdGVtRGF0YTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9yZW5kZXJJdGVtKHQsZSkuZGF0YShcInVpLXNlbGVjdG1lbnUtaXRlbVwiLGUpfSxfcmVuZGVySXRlbTpmdW5jdGlvbih0LGUpe3ZhciBpPVYoXCI8bGk+XCIpLHM9VihcIjxkaXY+XCIse3RpdGxlOmUuZWxlbWVudC5hdHRyKFwidGl0bGVcIil9KTtyZXR1cm4gZS5kaXNhYmxlZCYmdGhpcy5fYWRkQ2xhc3MoaSxudWxsLFwidWktc3RhdGUtZGlzYWJsZWRcIiksdGhpcy5fc2V0VGV4dChzLGUubGFiZWwpLGkuYXBwZW5kKHMpLmFwcGVuZFRvKHQpfSxfc2V0VGV4dDpmdW5jdGlvbih0LGUpe2U/dC50ZXh0KGUpOnQuaHRtbChcIiYjMTYwO1wiKX0sX21vdmU6ZnVuY3Rpb24odCxlKXt2YXIgaSxzPVwiLnVpLW1lbnUtaXRlbVwiO3RoaXMuaXNPcGVuP2k9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5mb2N1c0luZGV4KS5wYXJlbnQoXCJsaVwiKTooaT10aGlzLm1lbnVJdGVtcy5lcSh0aGlzLmVsZW1lbnRbMF0uc2VsZWN0ZWRJbmRleCkucGFyZW50KFwibGlcIikscys9XCI6bm90KC51aS1zdGF0ZS1kaXNhYmxlZClcIiksKHM9XCJmaXJzdFwiPT09dHx8XCJsYXN0XCI9PT10P2lbXCJmaXJzdFwiPT09dD9cInByZXZBbGxcIjpcIm5leHRBbGxcIl0ocykuZXEoLTEpOmlbdCtcIkFsbFwiXShzKS5lcSgwKSkubGVuZ3RoJiZ0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyhlLHMpfSxfZ2V0U2VsZWN0ZWRJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVudUl0ZW1zLmVxKHRoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4KS5wYXJlbnQoXCJsaVwiKX0sX3RvZ2dsZTpmdW5jdGlvbih0KXt0aGlzW3RoaXMuaXNPcGVuP1wiY2xvc2VcIjpcIm9wZW5cIl0odCl9LF9zZXRTZWxlY3Rpb246ZnVuY3Rpb24oKXt2YXIgdDt0aGlzLnJhbmdlJiYod2luZG93LmdldFNlbGVjdGlvbj8oKHQ9d2luZG93LmdldFNlbGVjdGlvbigpKS5yZW1vdmVBbGxSYW5nZXMoKSx0LmFkZFJhbmdlKHRoaXMucmFuZ2UpKTp0aGlzLnJhbmdlLnNlbGVjdCgpLHRoaXMuYnV0dG9uLnRyaWdnZXIoXCJmb2N1c1wiKSl9LF9kb2N1bWVudENsaWNrOnttb3VzZWRvd246ZnVuY3Rpb24odCl7dGhpcy5pc09wZW4mJihWKHQudGFyZ2V0KS5jbG9zZXN0KFwiLnVpLXNlbGVjdG1lbnUtbWVudSwgI1wiK1YuZXNjYXBlU2VsZWN0b3IodGhpcy5pZHMuYnV0dG9uKSkubGVuZ3RofHx0aGlzLmNsb3NlKHQpKX19LF9idXR0b25FdmVudHM6e21vdXNlZG93bjpmdW5jdGlvbigpe3ZhciB0O3dpbmRvdy5nZXRTZWxlY3Rpb24/KHQ9d2luZG93LmdldFNlbGVjdGlvbigpKS5yYW5nZUNvdW50JiYodGhpcy5yYW5nZT10LmdldFJhbmdlQXQoMCkpOnRoaXMucmFuZ2U9ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCl9LGNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuX3NldFNlbGVjdGlvbigpLHRoaXMuX3RvZ2dsZSh0KX0sa2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgZT0hMDtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIFYudWkua2V5Q29kZS5UQUI6Y2FzZSBWLnVpLmtleUNvZGUuRVNDQVBFOnRoaXMuY2xvc2UodCksZT0hMTticmVhaztjYXNlIFYudWkua2V5Q29kZS5FTlRFUjp0aGlzLmlzT3BlbiYmdGhpcy5fc2VsZWN0Rm9jdXNlZEl0ZW0odCk7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuVVA6dC5hbHRLZXk/dGhpcy5fdG9nZ2xlKHQpOnRoaXMuX21vdmUoXCJwcmV2XCIsdCk7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuRE9XTjp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZShcIm5leHRcIix0KTticmVhaztjYXNlIFYudWkua2V5Q29kZS5TUEFDRTp0aGlzLmlzT3Blbj90aGlzLl9zZWxlY3RGb2N1c2VkSXRlbSh0KTp0aGlzLl90b2dnbGUodCk7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuTEVGVDp0aGlzLl9tb3ZlKFwicHJldlwiLHQpO2JyZWFrO2Nhc2UgVi51aS5rZXlDb2RlLlJJR0hUOnRoaXMuX21vdmUoXCJuZXh0XCIsdCk7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuSE9NRTpjYXNlIFYudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMuX21vdmUoXCJmaXJzdFwiLHQpO2JyZWFrO2Nhc2UgVi51aS5rZXlDb2RlLkVORDpjYXNlIFYudWkua2V5Q29kZS5QQUdFX0RPV046dGhpcy5fbW92ZShcImxhc3RcIix0KTticmVhaztkZWZhdWx0OnRoaXMubWVudS50cmlnZ2VyKHQpLGU9ITF9ZSYmdC5wcmV2ZW50RGVmYXVsdCgpfX0sX3NlbGVjdEZvY3VzZWRJdGVtOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWVudUl0ZW1zLmVxKHRoaXMuZm9jdXNJbmRleCkucGFyZW50KFwibGlcIik7ZS5oYXNDbGFzcyhcInVpLXN0YXRlLWRpc2FibGVkXCIpfHx0aGlzLl9zZWxlY3QoZS5kYXRhKFwidWktc2VsZWN0bWVudS1pdGVtXCIpLHQpfSxfc2VsZWN0OmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXg7dGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXg9dC5pbmRleCx0aGlzLmJ1dHRvbkl0ZW0ucmVwbGFjZVdpdGgodGhpcy5idXR0b25JdGVtPXRoaXMuX3JlbmRlckJ1dHRvbkl0ZW0odCkpLHRoaXMuX3NldEFyaWEodCksdGhpcy5fdHJpZ2dlcihcInNlbGVjdFwiLGUse2l0ZW06dH0pLHQuaW5kZXghPT1pJiZ0aGlzLl90cmlnZ2VyKFwiY2hhbmdlXCIsZSx7aXRlbTp0fSksdGhpcy5jbG9zZShlKX0sX3NldEFyaWE6ZnVuY3Rpb24odCl7dD10aGlzLm1lbnVJdGVtcy5lcSh0LmluZGV4KS5hdHRyKFwiaWRcIik7dGhpcy5idXR0b24uYXR0cih7XCJhcmlhLWxhYmVsbGVkYnlcIjp0LFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6dH0pLHRoaXMubWVudS5hdHRyKFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCIsdCl9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxlKXt2YXIgaTtcImljb25zXCI9PT10JiYoaT10aGlzLmJ1dHRvbi5maW5kKFwic3Bhbi51aS1pY29uXCIpLHRoaXMuX3JlbW92ZUNsYXNzKGksbnVsbCx0aGlzLm9wdGlvbnMuaWNvbnMuYnV0dG9uKS5fYWRkQ2xhc3MoaSxudWxsLGUuYnV0dG9uKSksdGhpcy5fc3VwZXIodCxlKSxcImFwcGVuZFRvXCI9PT10JiZ0aGlzLm1lbnVXcmFwLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLFwid2lkdGhcIj09PXQmJnRoaXMuX3Jlc2l6ZUJ1dHRvbigpfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24odCl7dGhpcy5fc3VwZXIodCksdGhpcy5tZW51SW5zdGFuY2Uub3B0aW9uKFwiZGlzYWJsZWRcIix0KSx0aGlzLmJ1dHRvbi5hdHRyKFwiYXJpYS1kaXNhYmxlZFwiLHQpLHRoaXMuX3RvZ2dsZUNsYXNzKHRoaXMuYnV0dG9uLG51bGwsXCJ1aS1zdGF0ZS1kaXNhYmxlZFwiLHQpLHRoaXMuZWxlbWVudC5wcm9wKFwiZGlzYWJsZWRcIix0KSx0Pyh0aGlzLmJ1dHRvbi5hdHRyKFwidGFiaW5kZXhcIiwtMSksdGhpcy5jbG9zZSgpKTp0aGlzLmJ1dHRvbi5hdHRyKFwidGFiaW5kZXhcIiwwKX0sX2FwcGVuZFRvOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLmFwcGVuZFRvO3JldHVybih0PXQmJih0LmpxdWVyeXx8dC5ub2RlVHlwZT9WKHQpOnRoaXMuZG9jdW1lbnQuZmluZCh0KS5lcSgwKSkpJiZ0WzBdfHwodD10aGlzLmVsZW1lbnQuY2xvc2VzdChcIi51aS1mcm9udCwgZGlhbG9nXCIpKSx0Lmxlbmd0aHx8KHQ9dGhpcy5kb2N1bWVudFswXS5ib2R5KSx0fSxfdG9nZ2xlQXR0cjpmdW5jdGlvbigpe3RoaXMuYnV0dG9uLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsdGhpcy5pc09wZW4pLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuYnV0dG9uLFwidWktc2VsZWN0bWVudS1idXR0b24tXCIrKHRoaXMuaXNPcGVuP1wiY2xvc2VkXCI6XCJvcGVuXCIpKS5fYWRkQ2xhc3ModGhpcy5idXR0b24sXCJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1cIisodGhpcy5pc09wZW4/XCJvcGVuXCI6XCJjbG9zZWRcIikpLl90b2dnbGVDbGFzcyh0aGlzLm1lbnVXcmFwLFwidWktc2VsZWN0bWVudS1vcGVuXCIsbnVsbCx0aGlzLmlzT3BlbiksdGhpcy5tZW51LmF0dHIoXCJhcmlhLWhpZGRlblwiLCF0aGlzLmlzT3Blbil9LF9yZXNpemVCdXR0b246ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMud2lkdGg7ITEhPT10PyhudWxsPT09dCYmKHQ9dGhpcy5lbGVtZW50LnNob3coKS5vdXRlcldpZHRoKCksdGhpcy5lbGVtZW50LmhpZGUoKSksdGhpcy5idXR0b24ub3V0ZXJXaWR0aCh0KSk6dGhpcy5idXR0b24uY3NzKFwid2lkdGhcIixcIlwiKX0sX3Jlc2l6ZU1lbnU6ZnVuY3Rpb24oKXt0aGlzLm1lbnUub3V0ZXJXaWR0aChNYXRoLm1heCh0aGlzLmJ1dHRvbi5vdXRlcldpZHRoKCksdGhpcy5tZW51LndpZHRoKFwiXCIpLm91dGVyV2lkdGgoKSsxKSl9LF9nZXRDcmVhdGVPcHRpb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3VwZXIoKTtyZXR1cm4gdC5kaXNhYmxlZD10aGlzLmVsZW1lbnQucHJvcChcImRpc2FibGVkXCIpLHR9LF9wYXJzZU9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcyxzPVtdO3QuZWFjaChmdW5jdGlvbih0LGUpe2UuaGlkZGVufHxzLnB1c2goaS5fcGFyc2VPcHRpb24oVihlKSx0KSl9KSx0aGlzLml0ZW1zPXN9LF9wYXJzZU9wdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpPXQucGFyZW50KFwib3B0Z3JvdXBcIik7cmV0dXJue2VsZW1lbnQ6dCxpbmRleDplLHZhbHVlOnQudmFsKCksbGFiZWw6dC50ZXh0KCksb3B0Z3JvdXA6aS5hdHRyKFwibGFiZWxcIil8fFwiXCIsZGlzYWJsZWQ6aS5wcm9wKFwiZGlzYWJsZWRcIil8fHQucHJvcChcImRpc2FibGVkXCIpfX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl91bmJpbmRGb3JtUmVzZXRIYW5kbGVyKCksdGhpcy5tZW51V3JhcC5yZW1vdmUoKSx0aGlzLmJ1dHRvbi5yZW1vdmUoKSx0aGlzLmVsZW1lbnQuc2hvdygpLHRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpLHRoaXMubGFiZWxzLmF0dHIoXCJmb3JcIix0aGlzLmlkcy5lbGVtZW50KX19XSksVi53aWRnZXQoXCJ1aS5zbGlkZXJcIixWLnVpLm1vdXNlLHt2ZXJzaW9uOlwiMS4xMy4yXCIsd2lkZ2V0RXZlbnRQcmVmaXg6XCJzbGlkZVwiLG9wdGlvbnM6e2FuaW1hdGU6ITEsY2xhc3Nlczp7XCJ1aS1zbGlkZXJcIjpcInVpLWNvcm5lci1hbGxcIixcInVpLXNsaWRlci1oYW5kbGVcIjpcInVpLWNvcm5lci1hbGxcIixcInVpLXNsaWRlci1yYW5nZVwiOlwidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyXCJ9LGRpc3RhbmNlOjAsbWF4OjEwMCxtaW46MCxvcmllbnRhdGlvbjpcImhvcml6b250YWxcIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9hZGRDbGFzcyhcInVpLXNsaWRlciB1aS1zbGlkZXItXCIrdGhpcy5vcmllbnRhdGlvbixcInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudFwiKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fYW5pbWF0ZU9mZj0hMX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9jcmVhdGVSYW5nZSgpLHRoaXMuX2NyZWF0ZUhhbmRsZXMoKSx0aGlzLl9zZXR1cEV2ZW50cygpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfY3JlYXRlSGFuZGxlczpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5vcHRpb25zLGk9dGhpcy5lbGVtZW50LmZpbmQoXCIudWktc2xpZGVyLWhhbmRsZVwiKSxzPVtdLG49ZS52YWx1ZXMmJmUudmFsdWVzLmxlbmd0aHx8MTtmb3IoaS5sZW5ndGg+biYmKGkuc2xpY2UobikucmVtb3ZlKCksaT1pLnNsaWNlKDAsbikpLHQ9aS5sZW5ndGg7dDxuO3QrKylzLnB1c2goXCI8c3BhbiB0YWJpbmRleD0nMCc+PC9zcGFuPlwiKTt0aGlzLmhhbmRsZXM9aS5hZGQoVihzLmpvaW4oXCJcIikpLmFwcGVuZFRvKHRoaXMuZWxlbWVudCkpLHRoaXMuX2FkZENsYXNzKHRoaXMuaGFuZGxlcyxcInVpLXNsaWRlci1oYW5kbGVcIixcInVpLXN0YXRlLWRlZmF1bHRcIiksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKHQpe1YodGhpcykuZGF0YShcInVpLXNsaWRlci1oYW5kbGUtaW5kZXhcIix0KS5hdHRyKFwidGFiSW5kZXhcIiwwKX0pfSxfY3JlYXRlUmFuZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7dC5yYW5nZT8oITA9PT10LnJhbmdlJiYodC52YWx1ZXM/dC52YWx1ZXMubGVuZ3RoJiYyIT09dC52YWx1ZXMubGVuZ3RoP3QudmFsdWVzPVt0LnZhbHVlc1swXSx0LnZhbHVlc1swXV06QXJyYXkuaXNBcnJheSh0LnZhbHVlcykmJih0LnZhbHVlcz10LnZhbHVlcy5zbGljZSgwKSk6dC52YWx1ZXM9W3RoaXMuX3ZhbHVlTWluKCksdGhpcy5fdmFsdWVNaW4oKV0pLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UubGVuZ3RoPyh0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLnJhbmdlLFwidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4XCIpLHRoaXMucmFuZ2UuY3NzKHtsZWZ0OlwiXCIsYm90dG9tOlwiXCJ9KSk6KHRoaXMucmFuZ2U9VihcIjxkaXY+XCIpLmFwcGVuZFRvKHRoaXMuZWxlbWVudCksdGhpcy5fYWRkQ2xhc3ModGhpcy5yYW5nZSxcInVpLXNsaWRlci1yYW5nZVwiKSksXCJtaW5cIiE9PXQucmFuZ2UmJlwibWF4XCIhPT10LnJhbmdlfHx0aGlzLl9hZGRDbGFzcyh0aGlzLnJhbmdlLFwidWktc2xpZGVyLXJhbmdlLVwiK3QucmFuZ2UpKToodGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLnJhbmdlPW51bGwpfSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24oKXt0aGlzLl9vZmYodGhpcy5oYW5kbGVzKSx0aGlzLl9vbih0aGlzLmhhbmRsZXMsdGhpcy5faGFuZGxlRXZlbnRzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy5oYW5kbGVzKSx0aGlzLl9mb2N1c2FibGUodGhpcy5oYW5kbGVzKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZXMucmVtb3ZlKCksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLl9tb3VzZURlc3Ryb3koKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbih0KXt2YXIgaSxzLG4sbyxlLGEscj10aGlzLGw9dGhpcy5vcHRpb25zO3JldHVybiFsLmRpc2FibGVkJiYodGhpcy5lbGVtZW50U2l6ZT17d2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCl9LHRoaXMuZWxlbWVudE9mZnNldD10aGlzLmVsZW1lbnQub2Zmc2V0KCksYT17eDp0LnBhZ2VYLHk6dC5wYWdlWX0saT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2UoYSkscz10aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkrMSx0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmFicyhpLXIudmFsdWVzKHQpKTsoZTxzfHxzPT09ZSYmKHQ9PT1yLl9sYXN0Q2hhbmdlZFZhbHVlfHxyLnZhbHVlcyh0KT09PWwubWluKSkmJihzPWUsbj1WKHRoaXMpLG89dCl9KSwhMSE9PXRoaXMuX3N0YXJ0KHQsbykmJih0aGlzLl9tb3VzZVNsaWRpbmc9ITAsdGhpcy5faGFuZGxlSW5kZXg9byx0aGlzLl9hZGRDbGFzcyhuLG51bGwsXCJ1aS1zdGF0ZS1hY3RpdmVcIiksbi50cmlnZ2VyKFwiZm9jdXNcIiksZT1uLm9mZnNldCgpLGE9IVYodC50YXJnZXQpLnBhcmVudHMoKS5hZGRCYWNrKCkuaXMoXCIudWktc2xpZGVyLWhhbmRsZVwiKSx0aGlzLl9jbGlja09mZnNldD1hP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OnQucGFnZVgtZS5sZWZ0LW4ud2lkdGgoKS8yLHRvcDp0LnBhZ2VZLWUudG9wLW4uaGVpZ2h0KCkvMi0ocGFyc2VJbnQobi5jc3MoXCJib3JkZXJUb3BXaWR0aFwiKSwxMCl8fDApLShwYXJzZUludChuLmNzcyhcImJvcmRlckJvdHRvbVdpZHRoXCIpLDEwKXx8MCkrKHBhcnNlSW50KG4uY3NzKFwibWFyZ2luVG9wXCIpLDEwKXx8MCl9LHRoaXMuaGFuZGxlcy5oYXNDbGFzcyhcInVpLXN0YXRlLWhvdmVyXCIpfHx0aGlzLl9zbGlkZSh0LG8saSksdGhpcy5fYW5pbWF0ZU9mZj0hMCkpfSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiEwfSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQpe3ZhciBlPXt4OnQucGFnZVgseTp0LnBhZ2VZfSxlPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShlKTtyZXR1cm4gdGhpcy5fc2xpZGUodCx0aGlzLl9oYW5kbGVJbmRleCxlKSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVzLG51bGwsXCJ1aS1zdGF0ZS1hY3RpdmVcIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AodCx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKHQsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPVwidmVydGljYWxcIj09PXRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj9cInZlcnRpY2FsXCI6XCJob3Jpem9udGFsXCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24odCl7dmFyIGUsdD1cImhvcml6b250YWxcIj09PXRoaXMub3JpZW50YXRpb24/KGU9dGhpcy5lbGVtZW50U2l6ZS53aWR0aCx0LngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LmxlZnQ6MCkpOihlPXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0LHQueS10aGlzLmVsZW1lbnRPZmZzZXQudG9wLSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC50b3A6MCkpLHQ9dC9lO3JldHVybiAxPHQmJih0PTEpLHQ8MCYmKHQ9MCksXCJ2ZXJ0aWNhbFwiPT09dGhpcy5vcmllbnRhdGlvbiYmKHQ9MS10KSxlPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSxlPXRoaXMuX3ZhbHVlTWluKCkrdCplLHRoaXMuX3RyaW1BbGlnblZhbHVlKGUpfSxfdWlIYXNoOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSxoYW5kbGVJbmRleDp0LHZhbHVlOnZvaWQgMCE9PWU/ZTp0aGlzLnZhbHVlKCl9O3JldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYocy52YWx1ZT12b2lkIDAhPT1lP2U6dGhpcy52YWx1ZXModCkscy52YWx1ZXM9aXx8dGhpcy52YWx1ZXMoKSksc30sX2hhc011bHRpcGxlVmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RofSxfc3RhcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcihcInN0YXJ0XCIsdCx0aGlzLl91aUhhc2goZSkpfSxfc2xpZGU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzLG49dGhpcy52YWx1ZSgpLG89dGhpcy52YWx1ZXMoKTt0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYocz10aGlzLnZhbHVlcyhlPzA6MSksbj10aGlzLnZhbHVlcyhlKSwyPT09dGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgmJiEwPT09dGhpcy5vcHRpb25zLnJhbmdlJiYoaT0wPT09ZT9NYXRoLm1pbihzLGkpOk1hdGgubWF4KHMsaSkpLG9bZV09aSksaSE9PW4mJiExIT09dGhpcy5fdHJpZ2dlcihcInNsaWRlXCIsdCx0aGlzLl91aUhhc2goZSxpLG8pKSYmKHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy52YWx1ZXMoZSxpKTp0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24odCxlKXt0aGlzLl90cmlnZ2VyKFwic3RvcFwiLHQsdGhpcy5fdWlIYXNoKGUpKX0sX2NoYW5nZTpmdW5jdGlvbih0LGUpe3RoaXMuX2tleVNsaWRpbmd8fHRoaXMuX21vdXNlU2xpZGluZ3x8KHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9ZSx0aGlzLl90cmlnZ2VyKFwiY2hhbmdlXCIsdCx0aGlzLl91aUhhc2goZSkpKX0sdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl90cmltQWxpZ25WYWx1ZSh0KSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIHRoaXMuX2NoYW5nZShudWxsLDApKTp0aGlzLl92YWx1ZSgpfSx2YWx1ZXM6ZnVuY3Rpb24odCxlKXt2YXIgaSxzLG47aWYoMTxhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLm9wdGlvbnMudmFsdWVzW3RdPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHZvaWQgdGhpcy5fY2hhbmdlKG51bGwsdCk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3ZhbHVlcygpO2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMuX3ZhbHVlcyh0KTp0aGlzLnZhbHVlKCk7Zm9yKGk9dGhpcy5vcHRpb25zLnZhbHVlcyxzPXQsbj0wO248aS5sZW5ndGg7bis9MSlpW25dPXRoaXMuX3RyaW1BbGlnblZhbHVlKHNbbl0pLHRoaXMuX2NoYW5nZShudWxsLG4pO3RoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIGkscz0wO3N3aXRjaChcInJhbmdlXCI9PT10JiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKFwibWluXCI9PT1lPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6XCJtYXhcIj09PWUmJih0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoLTEpLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCkpLEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihzPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSx0aGlzLl9zdXBlcih0LGUpLHQpe2Nhc2VcIm9yaWVudGF0aW9uXCI6dGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9yZW1vdmVDbGFzcyhcInVpLXNsaWRlci1ob3Jpem9udGFsIHVpLXNsaWRlci12ZXJ0aWNhbFwiKS5fYWRkQ2xhc3MoXCJ1aS1zbGlkZXItXCIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5vcHRpb25zLnJhbmdlJiZ0aGlzLl9yZWZyZXNoUmFuZ2UoZSksdGhpcy5oYW5kbGVzLmNzcyhcImhvcml6b250YWxcIj09PWU/XCJib3R0b21cIjpcImxlZnRcIixcIlwiKTticmVhaztjYXNlXCJ2YWx1ZVwiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5fY2hhbmdlKG51bGwsMCksdGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlXCJ2YWx1ZXNcIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxpPXMtMTswPD1pO2ktLSl0aGlzLl9jaGFuZ2UobnVsbCxpKTt0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2VcInN0ZXBcIjpjYXNlXCJtaW5cIjpjYXNlXCJtYXhcIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2NhbGN1bGF0ZU5ld01heCgpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZVwicmFuZ2VcIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKHQpe3RoaXMuX3N1cGVyKHQpLHRoaXMuX3RvZ2dsZUNsYXNzKG51bGwsXCJ1aS1zdGF0ZS1kaXNhYmxlZFwiLCEhdCl9LF92YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy52YWx1ZTtyZXR1cm4gdD10aGlzLl90cmltQWxpZ25WYWx1ZSh0KX0sX3ZhbHVlczpmdW5jdGlvbih0KXt2YXIgZSxpO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQ9dGhpcy5vcHRpb25zLnZhbHVlc1t0XSx0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpO2lmKHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkpe2ZvcihlPXRoaXMub3B0aW9ucy52YWx1ZXMuc2xpY2UoKSxpPTA7aTxlLmxlbmd0aDtpKz0xKWVbaV09dGhpcy5fdHJpbUFsaWduVmFsdWUoZVtpXSk7cmV0dXJuIGV9cmV0dXJuW119LF90cmltQWxpZ25WYWx1ZTpmdW5jdGlvbih0KXtpZih0PD10aGlzLl92YWx1ZU1pbigpKXJldHVybiB0aGlzLl92YWx1ZU1pbigpO2lmKHQ+PXRoaXMuX3ZhbHVlTWF4KCkpcmV0dXJuIHRoaXMuX3ZhbHVlTWF4KCk7dmFyIGU9MDx0aGlzLm9wdGlvbnMuc3RlcD90aGlzLm9wdGlvbnMuc3RlcDoxLGk9KHQtdGhpcy5fdmFsdWVNaW4oKSklZSx0PXQtaTtyZXR1cm4gMipNYXRoLmFicyhpKT49ZSYmKHQrPTA8aT9lOi1lKSxwYXJzZUZsb2F0KHQudG9GaXhlZCg1KSl9LF9jYWxjdWxhdGVOZXdNYXg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMubWF4LGU9dGhpcy5fdmFsdWVNaW4oKSxpPXRoaXMub3B0aW9ucy5zdGVwOyh0PU1hdGgucm91bmQoKHQtZSkvaSkqaStlKT50aGlzLm9wdGlvbnMubWF4JiYodC09aSksdGhpcy5tYXg9cGFyc2VGbG9hdCh0LnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJih0PU1hdGgubWF4KHQsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSx0fSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24odCl7dmFyIGU9dC50b1N0cmluZygpLHQ9ZS5pbmRleE9mKFwiLlwiKTtyZXR1cm4tMT09PXQ/MDplLmxlbmd0aC10LTF9LF92YWx1ZU1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMubWlufSxfdmFsdWVNYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXh9LF9yZWZyZXNoUmFuZ2U6ZnVuY3Rpb24odCl7XCJ2ZXJ0aWNhbFwiPT09dCYmdGhpcy5yYW5nZS5jc3Moe3dpZHRoOlwiXCIsbGVmdDpcIlwifSksXCJob3Jpem9udGFsXCI9PT10JiZ0aGlzLnJhbmdlLmNzcyh7aGVpZ2h0OlwiXCIsYm90dG9tOlwiXCJ9KX0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciBlLGksdCxzLG4sbz10aGlzLm9wdGlvbnMucmFuZ2UsYT10aGlzLm9wdGlvbnMscj10aGlzLGw9IXRoaXMuX2FuaW1hdGVPZmYmJmEuYW5pbWF0ZSxoPXt9O3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24odCl7aT0oci52YWx1ZXModCktci5fdmFsdWVNaW4oKSkvKHIuX3ZhbHVlTWF4KCktci5fdmFsdWVNaW4oKSkqMTAwLGhbXCJob3Jpem9udGFsXCI9PT1yLm9yaWVudGF0aW9uP1wibGVmdFwiOlwiYm90dG9tXCJdPWkrXCIlXCIsVih0aGlzKS5zdG9wKDEsMSlbbD9cImFuaW1hdGVcIjpcImNzc1wiXShoLGEuYW5pbWF0ZSksITA9PT1yLm9wdGlvbnMucmFuZ2UmJihcImhvcml6b250YWxcIj09PXIub3JpZW50YXRpb24/KDA9PT10JiZyLnJhbmdlLnN0b3AoMSwxKVtsP1wiYW5pbWF0ZVwiOlwiY3NzXCJdKHtsZWZ0OmkrXCIlXCJ9LGEuYW5pbWF0ZSksMT09PXQmJnIucmFuZ2VbbD9cImFuaW1hdGVcIjpcImNzc1wiXSh7d2lkdGg6aS1lK1wiJVwifSx7cXVldWU6ITEsZHVyYXRpb246YS5hbmltYXRlfSkpOigwPT09dCYmci5yYW5nZS5zdG9wKDEsMSlbbD9cImFuaW1hdGVcIjpcImNzc1wiXSh7Ym90dG9tOmkrXCIlXCJ9LGEuYW5pbWF0ZSksMT09PXQmJnIucmFuZ2VbbD9cImFuaW1hdGVcIjpcImNzc1wiXSh7aGVpZ2h0OmktZStcIiVcIn0se3F1ZXVlOiExLGR1cmF0aW9uOmEuYW5pbWF0ZX0pKSksZT1pfSk6KHQ9dGhpcy52YWx1ZSgpLHM9dGhpcy5fdmFsdWVNaW4oKSxuPXRoaXMuX3ZhbHVlTWF4KCksaT1uIT09cz8odC1zKS8obi1zKSoxMDA6MCxoW1wiaG9yaXpvbnRhbFwiPT09dGhpcy5vcmllbnRhdGlvbj9cImxlZnRcIjpcImJvdHRvbVwiXT1pK1wiJVwiLHRoaXMuaGFuZGxlLnN0b3AoMSwxKVtsP1wiYW5pbWF0ZVwiOlwiY3NzXCJdKGgsYS5hbmltYXRlKSxcIm1pblwiPT09byYmXCJob3Jpem9udGFsXCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtsP1wiYW5pbWF0ZVwiOlwiY3NzXCJdKHt3aWR0aDppK1wiJVwifSxhLmFuaW1hdGUpLFwibWF4XCI9PT1vJiZcImhvcml6b250YWxcIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2w/XCJhbmltYXRlXCI6XCJjc3NcIl0oe3dpZHRoOjEwMC1pK1wiJVwifSxhLmFuaW1hdGUpLFwibWluXCI9PT1vJiZcInZlcnRpY2FsXCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtsP1wiYW5pbWF0ZVwiOlwiY3NzXCJdKHtoZWlnaHQ6aStcIiVcIn0sYS5hbmltYXRlKSxcIm1heFwiPT09byYmXCJ2ZXJ0aWNhbFwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbbD9cImFuaW1hdGVcIjpcImNzc1wiXSh7aGVpZ2h0OjEwMC1pK1wiJVwifSxhLmFuaW1hdGUpKX0sX2hhbmRsZUV2ZW50czp7a2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgZSxpLHMsbj1WKHQudGFyZ2V0KS5kYXRhKFwidWktc2xpZGVyLWhhbmRsZS1pbmRleFwiKTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIFYudWkua2V5Q29kZS5IT01FOmNhc2UgVi51aS5rZXlDb2RlLkVORDpjYXNlIFYudWkua2V5Q29kZS5QQUdFX1VQOmNhc2UgVi51aS5rZXlDb2RlLlBBR0VfRE9XTjpjYXNlIFYudWkua2V5Q29kZS5VUDpjYXNlIFYudWkua2V5Q29kZS5SSUdIVDpjYXNlIFYudWkua2V5Q29kZS5ET1dOOmNhc2UgVi51aS5rZXlDb2RlLkxFRlQ6aWYodC5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9rZXlTbGlkaW5nJiYodGhpcy5fa2V5U2xpZGluZz0hMCx0aGlzLl9hZGRDbGFzcyhWKHQudGFyZ2V0KSxudWxsLFwidWktc3RhdGUtYWN0aXZlXCIpLCExPT09dGhpcy5fc3RhcnQodCxuKSkpcmV0dXJufXN3aXRjaChzPXRoaXMub3B0aW9ucy5zdGVwLGU9aT10aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMudmFsdWVzKG4pOnRoaXMudmFsdWUoKSx0LmtleUNvZGUpe2Nhc2UgVi51aS5rZXlDb2RlLkhPTUU6aT10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgVi51aS5rZXlDb2RlLkVORDppPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuUEFHRV9VUDppPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuUEFHRV9ET1dOOmk9dGhpcy5fdHJpbUFsaWduVmFsdWUoZS0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIFYudWkua2V5Q29kZS5VUDpjYXNlIFYudWkua2V5Q29kZS5SSUdIVDppZihlPT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47aT10aGlzLl90cmltQWxpZ25WYWx1ZShlK3MpO2JyZWFrO2Nhc2UgVi51aS5rZXlDb2RlLkRPV046Y2FzZSBWLnVpLmtleUNvZGUuTEVGVDppZihlPT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47aT10aGlzLl90cmltQWxpZ25WYWx1ZShlLXMpfXRoaXMuX3NsaWRlKHQsbixpKX0sa2V5dXA6ZnVuY3Rpb24odCl7dmFyIGU9Vih0LnRhcmdldCkuZGF0YShcInVpLXNsaWRlci1oYW5kbGUtaW5kZXhcIik7dGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITEsdGhpcy5fc3RvcCh0LGUpLHRoaXMuX2NoYW5nZSh0LGUpLHRoaXMuX3JlbW92ZUNsYXNzKFYodC50YXJnZXQpLG51bGwsXCJ1aS1zdGF0ZS1hY3RpdmVcIikpfX19KTtmdW5jdGlvbiBNKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC52YWwoKTtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9yZWZyZXNoKCksdCE9PXRoaXMuZWxlbWVudC52YWwoKSYmdGhpcy5fdHJpZ2dlcihcImNoYW5nZVwiKX19Vi53aWRnZXQoXCJ1aS5zcGlubmVyXCIse3ZlcnNpb246XCIxLjEzLjJcIixkZWZhdWx0RWxlbWVudDpcIjxpbnB1dD5cIix3aWRnZXRFdmVudFByZWZpeDpcInNwaW5cIixvcHRpb25zOntjbGFzc2VzOntcInVpLXNwaW5uZXJcIjpcInVpLWNvcm5lci1hbGxcIixcInVpLXNwaW5uZXItZG93blwiOlwidWktY29ybmVyLWJyXCIsXCJ1aS1zcGlubmVyLXVwXCI6XCJ1aS1jb3JuZXItdHJcIn0sY3VsdHVyZTpudWxsLGljb25zOntkb3duOlwidWktaWNvbi10cmlhbmdsZS0xLXNcIix1cDpcInVpLWljb24tdHJpYW5nbGUtMS1uXCJ9LGluY3JlbWVudGFsOiEwLG1heDpudWxsLG1pbjpudWxsLG51bWJlckZvcm1hdDpudWxsLHBhZ2U6MTAsc3RlcDoxLGNoYW5nZTpudWxsLHNwaW46bnVsbCxzdGFydDpudWxsLHN0b3A6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX3NldE9wdGlvbihcIm1heFwiLHRoaXMub3B0aW9ucy5tYXgpLHRoaXMuX3NldE9wdGlvbihcIm1pblwiLHRoaXMub3B0aW9ucy5taW4pLHRoaXMuX3NldE9wdGlvbihcInN0ZXBcIix0aGlzLm9wdGlvbnMuc3RlcCksXCJcIiE9PXRoaXMudmFsdWUoKSYmdGhpcy5fdmFsdWUodGhpcy5lbGVtZW50LnZhbCgpLCEwKSx0aGlzLl9kcmF3KCksdGhpcy5fb24odGhpcy5fZXZlbnRzKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fb24odGhpcy53aW5kb3cse2JlZm9yZXVubG9hZDpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyKFwiYXV0b2NvbXBsZXRlXCIpfX0pfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3ZhciBzPXRoaXMuX3N1cGVyKCksbj10aGlzLmVsZW1lbnQ7cmV0dXJuIFYuZWFjaChbXCJtaW5cIixcIm1heFwiLFwic3RlcFwiXSxmdW5jdGlvbih0LGUpe3ZhciBpPW4uYXR0cihlKTtudWxsIT1pJiZpLmxlbmd0aCYmKHNbZV09aSl9KSxzfSxfZXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKHQpe3RoaXMuX3N0YXJ0KHQpJiZ0aGlzLl9rZXlkb3duKHQpJiZ0LnByZXZlbnREZWZhdWx0KCl9LGtleXVwOlwiX3N0b3BcIixmb2N1czpmdW5jdGlvbigpe3RoaXMucHJldmlvdXM9dGhpcy5lbGVtZW50LnZhbCgpfSxibHVyOmZ1bmN0aW9uKHQpe3RoaXMuY2FuY2VsQmx1cj9kZWxldGUgdGhpcy5jYW5jZWxCbHVyOih0aGlzLl9zdG9wKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMucHJldmlvdXMhPT10aGlzLmVsZW1lbnQudmFsKCkmJnRoaXMuX3RyaWdnZXIoXCJjaGFuZ2VcIix0KSl9LG1vdXNld2hlZWw6ZnVuY3Rpb24odCxlKXt2YXIgaT1WLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pO2lmKHRoaXMuZWxlbWVudFswXT09PWkmJmUpe2lmKCF0aGlzLnNwaW5uaW5nJiYhdGhpcy5fc3RhcnQodCkpcmV0dXJuITE7dGhpcy5fc3BpbigoMDxlPzE6LTEpKnRoaXMub3B0aW9ucy5zdGVwLHQpLGNsZWFyVGltZW91dCh0aGlzLm1vdXNld2hlZWxUaW1lciksdGhpcy5tb3VzZXdoZWVsVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnNwaW5uaW5nJiZ0aGlzLl9zdG9wKHQpfSwxMDApLHQucHJldmVudERlZmF1bHQoKX19LFwibW91c2Vkb3duIC51aS1zcGlubmVyLWJ1dHRvblwiOmZ1bmN0aW9uKHQpe3ZhciBlO2Z1bmN0aW9uIGkoKXt0aGlzLmVsZW1lbnRbMF09PT1WLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pfHwodGhpcy5lbGVtZW50LnRyaWdnZXIoXCJmb2N1c1wiKSx0aGlzLnByZXZpb3VzPWUsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPWV9KSl9ZT10aGlzLmVsZW1lbnRbMF09PT1WLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pP3RoaXMucHJldmlvdXM6dGhpcy5lbGVtZW50LnZhbCgpLHQucHJldmVudERlZmF1bHQoKSxpLmNhbGwodGhpcyksdGhpcy5jYW5jZWxCbHVyPSEwLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuY2FuY2VsQmx1cixpLmNhbGwodGhpcyl9KSwhMSE9PXRoaXMuX3N0YXJ0KHQpJiZ0aGlzLl9yZXBlYXQobnVsbCxWKHQuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoXCJ1aS1zcGlubmVyLXVwXCIpPzE6LTEsdCl9LFwibW91c2V1cCAudWktc3Bpbm5lci1idXR0b25cIjpcIl9zdG9wXCIsXCJtb3VzZWVudGVyIC51aS1zcGlubmVyLWJ1dHRvblwiOmZ1bmN0aW9uKHQpe2lmKFYodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcyhcInVpLXN0YXRlLWFjdGl2ZVwiKSlyZXR1cm4hMSE9PXRoaXMuX3N0YXJ0KHQpJiZ2b2lkIHRoaXMuX3JlcGVhdChudWxsLFYodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcyhcInVpLXNwaW5uZXItdXBcIik/MTotMSx0KX0sXCJtb3VzZWxlYXZlIC51aS1zcGlubmVyLWJ1dHRvblwiOlwiX3N0b3BcIn0sX2VuaGFuY2U6ZnVuY3Rpb24oKXt0aGlzLnVpU3Bpbm5lcj10aGlzLmVsZW1lbnQuYXR0cihcImF1dG9jb21wbGV0ZVwiLFwib2ZmXCIpLndyYXAoXCI8c3Bhbj5cIikucGFyZW50KCkuYXBwZW5kKFwiPGE+PC9hPjxhPjwvYT5cIil9LF9kcmF3OmZ1bmN0aW9uKCl7dGhpcy5fZW5oYW5jZSgpLHRoaXMuX2FkZENsYXNzKHRoaXMudWlTcGlubmVyLFwidWktc3Bpbm5lclwiLFwidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50XCIpLHRoaXMuX2FkZENsYXNzKFwidWktc3Bpbm5lci1pbnB1dFwiKSx0aGlzLmVsZW1lbnQuYXR0cihcInJvbGVcIixcInNwaW5idXR0b25cIiksdGhpcy5idXR0b25zPXRoaXMudWlTcGlubmVyLmNoaWxkcmVuKFwiYVwiKS5hdHRyKFwidGFiSW5kZXhcIiwtMSkuYXR0cihcImFyaWEtaGlkZGVuXCIsITApLmJ1dHRvbih7Y2xhc3Nlczp7XCJ1aS1idXR0b25cIjpcIlwifX0pLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuYnV0dG9ucyxcInVpLWNvcm5lci1hbGxcIiksdGhpcy5fYWRkQ2xhc3ModGhpcy5idXR0b25zLmZpcnN0KCksXCJ1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLXVwXCIpLHRoaXMuX2FkZENsYXNzKHRoaXMuYnV0dG9ucy5sYXN0KCksXCJ1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLWRvd25cIiksdGhpcy5idXR0b25zLmZpcnN0KCkuYnV0dG9uKHtpY29uOnRoaXMub3B0aW9ucy5pY29ucy51cCxzaG93TGFiZWw6ITF9KSx0aGlzLmJ1dHRvbnMubGFzdCgpLmJ1dHRvbih7aWNvbjp0aGlzLm9wdGlvbnMuaWNvbnMuZG93bixzaG93TGFiZWw6ITF9KSx0aGlzLmJ1dHRvbnMuaGVpZ2h0KCk+TWF0aC5jZWlsKC41KnRoaXMudWlTcGlubmVyLmhlaWdodCgpKSYmMDx0aGlzLnVpU3Bpbm5lci5oZWlnaHQoKSYmdGhpcy51aVNwaW5uZXIuaGVpZ2h0KHRoaXMudWlTcGlubmVyLmhlaWdodCgpKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLGk9Vi51aS5rZXlDb2RlO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgaS5VUDpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsMSx0KSwhMDtjYXNlIGkuRE9XTjpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsLTEsdCksITA7Y2FzZSBpLlBBR0VfVVA6cmV0dXJuIHRoaXMuX3JlcGVhdChudWxsLGUucGFnZSx0KSwhMDtjYXNlIGkuUEFHRV9ET1dOOnJldHVybiB0aGlzLl9yZXBlYXQobnVsbCwtZS5wYWdlLHQpLCEwfXJldHVybiExfSxfc3RhcnQ6ZnVuY3Rpb24odCl7cmV0dXJuISghdGhpcy5zcGlubmluZyYmITE9PT10aGlzLl90cmlnZ2VyKFwic3RhcnRcIix0KSkmJih0aGlzLmNvdW50ZXJ8fCh0aGlzLmNvdW50ZXI9MSksdGhpcy5zcGlubmluZz0hMCl9LF9yZXBlYXQ6ZnVuY3Rpb24odCxlLGkpe3Q9dHx8NTAwLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5fcmVwZWF0KDQwLGUsaSl9LHQpLHRoaXMuX3NwaW4oZSp0aGlzLm9wdGlvbnMuc3RlcCxpKX0sX3NwaW46ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnZhbHVlKCl8fDA7dGhpcy5jb3VudGVyfHwodGhpcy5jb3VudGVyPTEpLGk9dGhpcy5fYWRqdXN0VmFsdWUoaSt0KnRoaXMuX2luY3JlbWVudCh0aGlzLmNvdW50ZXIpKSx0aGlzLnNwaW5uaW5nJiYhMT09PXRoaXMuX3RyaWdnZXIoXCJzcGluXCIsZSx7dmFsdWU6aX0pfHwodGhpcy5fdmFsdWUoaSksdGhpcy5jb3VudGVyKyspfSxfaW5jcmVtZW50OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucy5pbmNyZW1lbnRhbDtyZXR1cm4gZT9cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UodCk6TWF0aC5mbG9vcih0KnQqdC81ZTQtdCp0LzUwMCsxNyp0LzIwMCsxKToxfSxfcHJlY2lzaW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLnN0ZXApO3JldHVybiBudWxsIT09dGhpcy5vcHRpb25zLm1pbiYmKHQ9TWF0aC5tYXgodCx0aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMubWluKSkpLHR9LF9wcmVjaXNpb25PZjpmdW5jdGlvbih0KXt2YXIgZT10LnRvU3RyaW5nKCksdD1lLmluZGV4T2YoXCIuXCIpO3JldHVybi0xPT09dD8wOmUubGVuZ3RoLXQtMX0sX2FkanVzdFZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucyxpPW51bGwhPT1lLm1pbj9lLm1pbjowLHM9dC1pO3JldHVybiB0PWkrTWF0aC5yb3VuZChzL2Uuc3RlcCkqZS5zdGVwLHQ9cGFyc2VGbG9hdCh0LnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKSxudWxsIT09ZS5tYXgmJnQ+ZS5tYXg/ZS5tYXg6bnVsbCE9PWUubWluJiZ0PGUubWluP2UubWluOnR9LF9zdG9wOmZ1bmN0aW9uKHQpe3RoaXMuc3Bpbm5pbmcmJihjbGVhclRpbWVvdXQodGhpcy50aW1lciksY2xlYXJUaW1lb3V0KHRoaXMubW91c2V3aGVlbFRpbWVyKSx0aGlzLmNvdW50ZXI9MCx0aGlzLnNwaW5uaW5nPSExLHRoaXMuX3RyaWdnZXIoXCJzdG9wXCIsdCkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIGk7aWYoXCJjdWx0dXJlXCI9PT10fHxcIm51bWJlckZvcm1hdFwiPT09dClyZXR1cm4gaT10aGlzLl9wYXJzZSh0aGlzLmVsZW1lbnQudmFsKCkpLHRoaXMub3B0aW9uc1t0XT1lLHZvaWQgdGhpcy5lbGVtZW50LnZhbCh0aGlzLl9mb3JtYXQoaSkpO1wibWF4XCIhPT10JiZcIm1pblwiIT09dCYmXCJzdGVwXCIhPT10fHxcInN0cmluZ1wiPT10eXBlb2YgZSYmKGU9dGhpcy5fcGFyc2UoZSkpLFwiaWNvbnNcIj09PXQmJihpPXRoaXMuYnV0dG9ucy5maXJzdCgpLmZpbmQoXCIudWktaWNvblwiKSx0aGlzLl9yZW1vdmVDbGFzcyhpLG51bGwsdGhpcy5vcHRpb25zLmljb25zLnVwKSx0aGlzLl9hZGRDbGFzcyhpLG51bGwsZS51cCksaT10aGlzLmJ1dHRvbnMubGFzdCgpLmZpbmQoXCIudWktaWNvblwiKSx0aGlzLl9yZW1vdmVDbGFzcyhpLG51bGwsdGhpcy5vcHRpb25zLmljb25zLmRvd24pLHRoaXMuX2FkZENsYXNzKGksbnVsbCxlLmRvd24pKSx0aGlzLl9zdXBlcih0LGUpfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24odCl7dGhpcy5fc3VwZXIodCksdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy51aVNwaW5uZXIsbnVsbCxcInVpLXN0YXRlLWRpc2FibGVkXCIsISF0KSx0aGlzLmVsZW1lbnQucHJvcChcImRpc2FibGVkXCIsISF0KSx0aGlzLmJ1dHRvbnMuYnV0dG9uKHQ/XCJkaXNhYmxlXCI6XCJlbmFibGVcIil9LF9zZXRPcHRpb25zOk0oZnVuY3Rpb24odCl7dGhpcy5fc3VwZXIodCl9KSxfcGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJlwiXCIhPT10JiYodD13aW5kb3cuR2xvYmFsaXplJiZ0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0P0dsb2JhbGl6ZS5wYXJzZUZsb2F0KHQsMTAsdGhpcy5vcHRpb25zLmN1bHR1cmUpOit0KSxcIlwiPT09dHx8aXNOYU4odCk/bnVsbDp0fSxfZm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVyblwiXCI9PT10P1wiXCI6d2luZG93Lkdsb2JhbGl6ZSYmdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdD9HbG9iYWxpemUuZm9ybWF0KHQsdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6dH0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYXR0cih7XCJhcmlhLXZhbHVlbWluXCI6dGhpcy5vcHRpb25zLm1pbixcImFyaWEtdmFsdWVtYXhcIjp0aGlzLm9wdGlvbnMubWF4LFwiYXJpYS12YWx1ZW5vd1wiOnRoaXMuX3BhcnNlKHRoaXMuZWxlbWVudC52YWwoKSl9KX0saXNWYWxpZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMudmFsdWUoKTtyZXR1cm4gbnVsbCE9PXQmJnQ9PT10aGlzLl9hZGp1c3RWYWx1ZSh0KX0sX3ZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk7XCJcIiE9PXQmJm51bGwhPT0oaT10aGlzLl9wYXJzZSh0KSkmJihlfHwoaT10aGlzLl9hZGp1c3RWYWx1ZShpKSksdD10aGlzLl9mb3JtYXQoaSkpLHRoaXMuZWxlbWVudC52YWwodCksdGhpcy5fcmVmcmVzaCgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5wcm9wKFwiZGlzYWJsZWRcIiwhMSkucmVtb3ZlQXR0cihcImF1dG9jb21wbGV0ZSByb2xlIGFyaWEtdmFsdWVtaW4gYXJpYS12YWx1ZW1heCBhcmlhLXZhbHVlbm93XCIpLHRoaXMudWlTcGlubmVyLnJlcGxhY2VXaXRoKHRoaXMuZWxlbWVudCl9LHN0ZXBVcDpNKGZ1bmN0aW9uKHQpe3RoaXMuX3N0ZXBVcCh0KX0pLF9zdGVwVXA6ZnVuY3Rpb24odCl7dGhpcy5fc3RhcnQoKSYmKHRoaXMuX3NwaW4oKHR8fDEpKnRoaXMub3B0aW9ucy5zdGVwKSx0aGlzLl9zdG9wKCkpfSxzdGVwRG93bjpNKGZ1bmN0aW9uKHQpe3RoaXMuX3N0ZXBEb3duKHQpfSksX3N0ZXBEb3duOmZ1bmN0aW9uKHQpe3RoaXMuX3N0YXJ0KCkmJih0aGlzLl9zcGluKCh0fHwxKSotdGhpcy5vcHRpb25zLnN0ZXApLHRoaXMuX3N0b3AoKSl9LHBhZ2VVcDpNKGZ1bmN0aW9uKHQpe3RoaXMuX3N0ZXBVcCgodHx8MSkqdGhpcy5vcHRpb25zLnBhZ2UpfSkscGFnZURvd246TShmdW5jdGlvbih0KXt0aGlzLl9zdGVwRG93bigodHx8MSkqdGhpcy5vcHRpb25zLnBhZ2UpfSksdmFsdWU6ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3BhcnNlKHRoaXMuZWxlbWVudC52YWwoKSk7TSh0aGlzLl92YWx1ZSkuY2FsbCh0aGlzLHQpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51aVNwaW5uZXJ9fSksITEhPT1WLnVpQmFja0NvbXBhdCYmVi53aWRnZXQoXCJ1aS5zcGlubmVyXCIsVi51aS5zcGlubmVyLHtfZW5oYW5jZTpmdW5jdGlvbigpe3RoaXMudWlTcGlubmVyPXRoaXMuZWxlbWVudC5hdHRyKFwiYXV0b2NvbXBsZXRlXCIsXCJvZmZcIikud3JhcCh0aGlzLl91aVNwaW5uZXJIdG1sKCkpLnBhcmVudCgpLmFwcGVuZCh0aGlzLl9idXR0b25IdG1sKCkpfSxfdWlTcGlubmVySHRtbDpmdW5jdGlvbigpe3JldHVyblwiPHNwYW4+XCJ9LF9idXR0b25IdG1sOmZ1bmN0aW9uKCl7cmV0dXJuXCI8YT48L2E+PGE+PC9hPlwifX0pO3ZhciBTO1YudWkuc3Bpbm5lcjtWLndpZGdldChcInVpLnRhYnNcIix7dmVyc2lvbjpcIjEuMTMuMlwiLGRlbGF5OjMwMCxvcHRpb25zOnthY3RpdmU6bnVsbCxjbGFzc2VzOntcInVpLXRhYnNcIjpcInVpLWNvcm5lci1hbGxcIixcInVpLXRhYnMtbmF2XCI6XCJ1aS1jb3JuZXItYWxsXCIsXCJ1aS10YWJzLXBhbmVsXCI6XCJ1aS1jb3JuZXItYm90dG9tXCIsXCJ1aS10YWJzLXRhYlwiOlwidWktY29ybmVyLXRvcFwifSxjb2xsYXBzaWJsZTohMSxldmVudDpcImNsaWNrXCIsaGVpZ2h0U3R5bGU6XCJjb250ZW50XCIsaGlkZTpudWxsLHNob3c6bnVsbCxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGwsYmVmb3JlTG9hZDpudWxsLGxvYWQ6bnVsbH0sX2lzTG9jYWw6KFM9LyMuKiQvLGZ1bmN0aW9uKHQpe3ZhciBlPXQuaHJlZi5yZXBsYWNlKFMsXCJcIiksaT1sb2NhdGlvbi5ocmVmLnJlcGxhY2UoUyxcIlwiKTt0cnl7ZT1kZWNvZGVVUklDb21wb25lbnQoZSl9Y2F0Y2godCl7fXRyeXtpPWRlY29kZVVSSUNvbXBvbmVudChpKX1jYXRjaCh0KXt9cmV0dXJuIDE8dC5oYXNoLmxlbmd0aCYmZT09PWl9KSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMub3B0aW9uczt0aGlzLnJ1bm5pbmc9ITEsdGhpcy5fYWRkQ2xhc3MoXCJ1aS10YWJzXCIsXCJ1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnRcIiksdGhpcy5fdG9nZ2xlQ2xhc3MoXCJ1aS10YWJzLWNvbGxhcHNpYmxlXCIsbnVsbCx0LmNvbGxhcHNpYmxlKSx0aGlzLl9wcm9jZXNzVGFicygpLHQuYWN0aXZlPXRoaXMuX2luaXRpYWxBY3RpdmUoKSxBcnJheS5pc0FycmF5KHQuZGlzYWJsZWQpJiYodC5kaXNhYmxlZD1WLnVuaXF1ZVNvcnQodC5kaXNhYmxlZC5jb25jYXQoVi5tYXAodGhpcy50YWJzLmZpbHRlcihcIi51aS1zdGF0ZS1kaXNhYmxlZFwiKSxmdW5jdGlvbih0KXtyZXR1cm4gZS50YWJzLmluZGV4KHQpfSkpKS5zb3J0KCkpLCExIT09dGhpcy5vcHRpb25zLmFjdGl2ZSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLmFjdGl2ZT10aGlzLl9maW5kQWN0aXZlKHQuYWN0aXZlKTp0aGlzLmFjdGl2ZT1WKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMuYWN0aXZlLmxlbmd0aCYmdGhpcy5sb2FkKHQuYWN0aXZlKX0sX2luaXRpYWxBY3RpdmU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLm9wdGlvbnMuYWN0aXZlLHQ9dGhpcy5vcHRpb25zLmNvbGxhcHNpYmxlLHM9bG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSk7cmV0dXJuIG51bGw9PT1pJiYocyYmdGhpcy50YWJzLmVhY2goZnVuY3Rpb24odCxlKXtpZihWKGUpLmF0dHIoXCJhcmlhLWNvbnRyb2xzXCIpPT09cylyZXR1cm4gaT10LCExfSksbnVsbD09PWkmJihpPXRoaXMudGFicy5pbmRleCh0aGlzLnRhYnMuZmlsdGVyKFwiLnVpLXRhYnMtYWN0aXZlXCIpKSksbnVsbCE9PWkmJi0xIT09aXx8KGk9ISF0aGlzLnRhYnMubGVuZ3RoJiYwKSksITEhPT1pJiYtMT09PShpPXRoaXMudGFicy5pbmRleCh0aGlzLnRhYnMuZXEoaSkpKSYmKGk9IXQmJjApLCF0JiYhMT09PWkmJnRoaXMuYW5jaG9ycy5sZW5ndGgmJihpPTApLGl9LF9nZXRDcmVhdGVFdmVudERhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dGFiOnRoaXMuYWN0aXZlLHBhbmVsOnRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLl9nZXRQYW5lbEZvclRhYih0aGlzLmFjdGl2ZSk6VigpfX0sX3RhYktleWRvd246ZnVuY3Rpb24odCl7dmFyIGU9VihWLnVpLnNhZmVBY3RpdmVFbGVtZW50KHRoaXMuZG9jdW1lbnRbMF0pKS5jbG9zZXN0KFwibGlcIiksaT10aGlzLnRhYnMuaW5kZXgoZSkscz0hMDtpZighdGhpcy5faGFuZGxlUGFnZU5hdih0KSl7c3dpdGNoKHQua2V5Q29kZSl7Y2FzZSBWLnVpLmtleUNvZGUuUklHSFQ6Y2FzZSBWLnVpLmtleUNvZGUuRE9XTjppKys7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuVVA6Y2FzZSBWLnVpLmtleUNvZGUuTEVGVDpzPSExLGktLTticmVhaztjYXNlIFYudWkua2V5Q29kZS5FTkQ6aT10aGlzLmFuY2hvcnMubGVuZ3RoLTE7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuSE9NRTppPTA7YnJlYWs7Y2FzZSBWLnVpLmtleUNvZGUuU1BBQ0U6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5hY3RpdmF0aW5nKSx2b2lkIHRoaXMuX2FjdGl2YXRlKGkpO2Nhc2UgVi51aS5rZXlDb2RlLkVOVEVSOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdm9pZCB0aGlzLl9hY3RpdmF0ZShpIT09dGhpcy5vcHRpb25zLmFjdGl2ZSYmaSk7ZGVmYXVsdDpyZXR1cm59dC5wcmV2ZW50RGVmYXVsdCgpLGNsZWFyVGltZW91dCh0aGlzLmFjdGl2YXRpbmcpLGk9dGhpcy5fZm9jdXNOZXh0VGFiKGkscyksdC5jdHJsS2V5fHx0Lm1ldGFLZXl8fChlLmF0dHIoXCJhcmlhLXNlbGVjdGVkXCIsXCJmYWxzZVwiKSx0aGlzLnRhYnMuZXEoaSkuYXR0cihcImFyaWEtc2VsZWN0ZWRcIixcInRydWVcIiksdGhpcy5hY3RpdmF0aW5nPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5vcHRpb24oXCJhY3RpdmVcIixpKX0sdGhpcy5kZWxheSkpfX0sX3BhbmVsS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVQYWdlTmF2KHQpfHx0LmN0cmxLZXkmJnQua2V5Q29kZT09PVYudWkua2V5Q29kZS5VUCYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmFjdGl2ZS50cmlnZ2VyKFwiZm9jdXNcIikpfSxfaGFuZGxlUGFnZU5hdjpmdW5jdGlvbih0KXtyZXR1cm4gdC5hbHRLZXkmJnQua2V5Q29kZT09PVYudWkua2V5Q29kZS5QQUdFX1VQPyh0aGlzLl9hY3RpdmF0ZSh0aGlzLl9mb2N1c05leHRUYWIodGhpcy5vcHRpb25zLmFjdGl2ZS0xLCExKSksITApOnQuYWx0S2V5JiZ0LmtleUNvZGU9PT1WLnVpLmtleUNvZGUuUEFHRV9ET1dOPyh0aGlzLl9hY3RpdmF0ZSh0aGlzLl9mb2N1c05leHRUYWIodGhpcy5vcHRpb25zLmFjdGl2ZSsxLCEwKSksITApOnZvaWQgMH0sX2ZpbmROZXh0VGFiOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy50YWJzLmxlbmd0aC0xO2Zvcig7LTEhPT1WLmluQXJyYXkoKGk8dCYmKHQ9MCksdDwwJiYodD1pKSx0KSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQpOyl0PWU/dCsxOnQtMTtyZXR1cm4gdH0sX2ZvY3VzTmV4dFRhYjpmdW5jdGlvbih0LGUpe3JldHVybiB0PXRoaXMuX2ZpbmROZXh0VGFiKHQsZSksdGhpcy50YWJzLmVxKHQpLnRyaWdnZXIoXCJmb2N1c1wiKSx0fSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsZSl7XCJhY3RpdmVcIiE9PXQ/KHRoaXMuX3N1cGVyKHQsZSksXCJjb2xsYXBzaWJsZVwiPT09dCYmKHRoaXMuX3RvZ2dsZUNsYXNzKFwidWktdGFicy1jb2xsYXBzaWJsZVwiLG51bGwsZSksZXx8ITEhPT10aGlzLm9wdGlvbnMuYWN0aXZlfHx0aGlzLl9hY3RpdmF0ZSgwKSksXCJldmVudFwiPT09dCYmdGhpcy5fc2V0dXBFdmVudHMoZSksXCJoZWlnaHRTdHlsZVwiPT09dCYmdGhpcy5fc2V0dXBIZWlnaHRTdHlsZShlKSk6dGhpcy5fYWN0aXZhdGUoZSl9LF9zYW5pdGl6ZVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0P3QucmVwbGFjZSgvWyFcIiQlJicoKSorLC5cXC86Ozw9Pj9AXFxbXFxdXFxeYHt8fX5dL2csXCJcXFxcJCZcIik6XCJcIn0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucyxlPXRoaXMudGFibGlzdC5jaGlsZHJlbihcIjpoYXMoYVtocmVmXSlcIik7dC5kaXNhYmxlZD1WLm1hcChlLmZpbHRlcihcIi51aS1zdGF0ZS1kaXNhYmxlZFwiKSxmdW5jdGlvbih0KXtyZXR1cm4gZS5pbmRleCh0KX0pLHRoaXMuX3Byb2Nlc3NUYWJzKCksITEhPT10LmFjdGl2ZSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLmFjdGl2ZS5sZW5ndGgmJiFWLmNvbnRhaW5zKHRoaXMudGFibGlzdFswXSx0aGlzLmFjdGl2ZVswXSk/dGhpcy50YWJzLmxlbmd0aD09PXQuZGlzYWJsZWQubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1WKCkpOnRoaXMuX2FjdGl2YXRlKHRoaXMuX2ZpbmROZXh0VGFiKE1hdGgubWF4KDAsdC5hY3RpdmUtMSksITEpKTp0LmFjdGl2ZT10aGlzLnRhYnMuaW5kZXgodGhpcy5hY3RpdmUpOih0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1WKCkpLHRoaXMuX3JlZnJlc2goKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCh0aGlzLm9wdGlvbnMuZGlzYWJsZWQpLHRoaXMuX3NldHVwRXZlbnRzKHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBIZWlnaHRTdHlsZSh0aGlzLm9wdGlvbnMuaGVpZ2h0U3R5bGUpLHRoaXMudGFicy5ub3QodGhpcy5hY3RpdmUpLmF0dHIoe1wiYXJpYS1zZWxlY3RlZFwiOlwiZmFsc2VcIixcImFyaWEtZXhwYW5kZWRcIjpcImZhbHNlXCIsdGFiSW5kZXg6LTF9KSx0aGlzLnBhbmVscy5ub3QodGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpKS5oaWRlKCkuYXR0cih7XCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSksdGhpcy5hY3RpdmUubGVuZ3RoPyh0aGlzLmFjdGl2ZS5hdHRyKHtcImFyaWEtc2VsZWN0ZWRcIjpcInRydWVcIixcImFyaWEtZXhwYW5kZWRcIjpcInRydWVcIix0YWJJbmRleDowfSksdGhpcy5fYWRkQ2xhc3ModGhpcy5hY3RpdmUsXCJ1aS10YWJzLWFjdGl2ZVwiLFwidWktc3RhdGUtYWN0aXZlXCIpLHRoaXMuX2dldFBhbmVsRm9yVGFiKHRoaXMuYWN0aXZlKS5zaG93KCkuYXR0cih7XCJhcmlhLWhpZGRlblwiOlwiZmFsc2VcIn0pKTp0aGlzLnRhYnMuZXEoMCkuYXR0cihcInRhYkluZGV4XCIsMCl9LF9wcm9jZXNzVGFiczpmdW5jdGlvbigpe3ZhciBsPXRoaXMsdD10aGlzLnRhYnMsZT10aGlzLmFuY2hvcnMsaT10aGlzLnBhbmVsczt0aGlzLnRhYmxpc3Q9dGhpcy5fZ2V0TGlzdCgpLmF0dHIoXCJyb2xlXCIsXCJ0YWJsaXN0XCIpLHRoaXMuX2FkZENsYXNzKHRoaXMudGFibGlzdCxcInVpLXRhYnMtbmF2XCIsXCJ1aS1oZWxwZXItcmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXJcIiksdGhpcy50YWJsaXN0Lm9uKFwibW91c2Vkb3duXCIrdGhpcy5ldmVudE5hbWVzcGFjZSxcIj4gbGlcIixmdW5jdGlvbih0KXtWKHRoaXMpLmlzKFwiLnVpLXN0YXRlLWRpc2FibGVkXCIpJiZ0LnByZXZlbnREZWZhdWx0KCl9KS5vbihcImZvY3VzXCIrdGhpcy5ldmVudE5hbWVzcGFjZSxcIi51aS10YWJzLWFuY2hvclwiLGZ1bmN0aW9uKCl7Vih0aGlzKS5jbG9zZXN0KFwibGlcIikuaXMoXCIudWktc3RhdGUtZGlzYWJsZWRcIikmJnRoaXMuYmx1cigpfSksdGhpcy50YWJzPXRoaXMudGFibGlzdC5maW5kKFwiPiBsaTpoYXMoYVtocmVmXSlcIikuYXR0cih7cm9sZTpcInRhYlwiLHRhYkluZGV4Oi0xfSksdGhpcy5fYWRkQ2xhc3ModGhpcy50YWJzLFwidWktdGFicy10YWJcIixcInVpLXN0YXRlLWRlZmF1bHRcIiksdGhpcy5hbmNob3JzPXRoaXMudGFicy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gVihcImFcIix0aGlzKVswXX0pLmF0dHIoe3RhYkluZGV4Oi0xfSksdGhpcy5fYWRkQ2xhc3ModGhpcy5hbmNob3JzLFwidWktdGFicy1hbmNob3JcIiksdGhpcy5wYW5lbHM9VigpLHRoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIGkscyxuLG89VihlKS51bmlxdWVJZCgpLmF0dHIoXCJpZFwiKSxhPVYoZSkuY2xvc2VzdChcImxpXCIpLHI9YS5hdHRyKFwiYXJpYS1jb250cm9sc1wiKTtsLl9pc0xvY2FsKGUpPyhuPShpPWUuaGFzaCkuc3Vic3RyaW5nKDEpLHM9bC5lbGVtZW50LmZpbmQobC5fc2FuaXRpemVTZWxlY3RvcihpKSkpOihpPVwiI1wiKyhuPWEuYXR0cihcImFyaWEtY29udHJvbHNcIil8fFYoe30pLnVuaXF1ZUlkKClbMF0uaWQpLChzPWwuZWxlbWVudC5maW5kKGkpKS5sZW5ndGh8fChzPWwuX2NyZWF0ZVBhbmVsKG4pKS5pbnNlcnRBZnRlcihsLnBhbmVsc1t0LTFdfHxsLnRhYmxpc3QpLHMuYXR0cihcImFyaWEtbGl2ZVwiLFwicG9saXRlXCIpKSxzLmxlbmd0aCYmKGwucGFuZWxzPWwucGFuZWxzLmFkZChzKSksciYmYS5kYXRhKFwidWktdGFicy1hcmlhLWNvbnRyb2xzXCIsciksYS5hdHRyKHtcImFyaWEtY29udHJvbHNcIjpuLFwiYXJpYS1sYWJlbGxlZGJ5XCI6b30pLHMuYXR0cihcImFyaWEtbGFiZWxsZWRieVwiLG8pfSksdGhpcy5wYW5lbHMuYXR0cihcInJvbGVcIixcInRhYnBhbmVsXCIpLHRoaXMuX2FkZENsYXNzKHRoaXMucGFuZWxzLFwidWktdGFicy1wYW5lbFwiLFwidWktd2lkZ2V0LWNvbnRlbnRcIiksdCYmKHRoaXMuX29mZih0Lm5vdCh0aGlzLnRhYnMpKSx0aGlzLl9vZmYoZS5ub3QodGhpcy5hbmNob3JzKSksdGhpcy5fb2ZmKGkubm90KHRoaXMucGFuZWxzKSkpfSxfZ2V0TGlzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhYmxpc3R8fHRoaXMuZWxlbWVudC5maW5kKFwib2wsIHVsXCIpLmVxKDApfSxfY3JlYXRlUGFuZWw6ZnVuY3Rpb24odCl7cmV0dXJuIFYoXCI8ZGl2PlwiKS5hdHRyKFwiaWRcIix0KS5kYXRhKFwidWktdGFicy1kZXN0cm95XCIsITApfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24odCl7dmFyIGUsaTtmb3IoQXJyYXkuaXNBcnJheSh0KSYmKHQubGVuZ3RoP3QubGVuZ3RoPT09dGhpcy5hbmNob3JzLmxlbmd0aCYmKHQ9ITApOnQ9ITEpLGk9MDtlPXRoaXMudGFic1tpXTtpKyspZT1WKGUpLCEwPT09dHx8LTEhPT1WLmluQXJyYXkoaSx0KT8oZS5hdHRyKFwiYXJpYS1kaXNhYmxlZFwiLFwidHJ1ZVwiKSx0aGlzLl9hZGRDbGFzcyhlLG51bGwsXCJ1aS1zdGF0ZS1kaXNhYmxlZFwiKSk6KGUucmVtb3ZlQXR0cihcImFyaWEtZGlzYWJsZWRcIiksdGhpcy5fcmVtb3ZlQ2xhc3MoZSxudWxsLFwidWktc3RhdGUtZGlzYWJsZWRcIikpO3RoaXMub3B0aW9ucy5kaXNhYmxlZD10LHRoaXMuX3RvZ2dsZUNsYXNzKHRoaXMud2lkZ2V0KCksdGhpcy53aWRnZXRGdWxsTmFtZStcIi1kaXNhYmxlZFwiLG51bGwsITA9PT10KX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKHQpe3ZhciBpPXt9O3QmJlYuZWFjaCh0LnNwbGl0KFwiIFwiKSxmdW5jdGlvbih0LGUpe2lbZV09XCJfZXZlbnRIYW5kbGVyXCJ9KSx0aGlzLl9vZmYodGhpcy5hbmNob3JzLmFkZCh0aGlzLnRhYnMpLmFkZCh0aGlzLnBhbmVscykpLHRoaXMuX29uKCEwLHRoaXMuYW5jaG9ycyx7Y2xpY2s6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpfX0pLHRoaXMuX29uKHRoaXMuYW5jaG9ycyxpKSx0aGlzLl9vbih0aGlzLnRhYnMse2tleWRvd246XCJfdGFiS2V5ZG93blwifSksdGhpcy5fb24odGhpcy5wYW5lbHMse2tleWRvd246XCJfcGFuZWxLZXlkb3duXCJ9KSx0aGlzLl9mb2N1c2FibGUodGhpcy50YWJzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy50YWJzKX0sX3NldHVwSGVpZ2h0U3R5bGU6ZnVuY3Rpb24odCl7dmFyIGksZT10aGlzLmVsZW1lbnQucGFyZW50KCk7XCJmaWxsXCI9PT10PyhpPWUuaGVpZ2h0KCksaS09dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCktdGhpcy5lbGVtZW50LmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncyhcIjp2aXNpYmxlXCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLGU9dC5jc3MoXCJwb3NpdGlvblwiKTtcImFic29sdXRlXCIhPT1lJiZcImZpeGVkXCIhPT1lJiYoaS09dC5vdXRlckhlaWdodCghMCkpfSksdGhpcy5lbGVtZW50LmNoaWxkcmVuKCkubm90KHRoaXMucGFuZWxzKS5lYWNoKGZ1bmN0aW9uKCl7aS09Vih0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLnBhbmVscy5lYWNoKGZ1bmN0aW9uKCl7Vih0aGlzKS5oZWlnaHQoTWF0aC5tYXgoMCxpLVYodGhpcykuaW5uZXJIZWlnaHQoKStWKHRoaXMpLmhlaWdodCgpKSl9KS5jc3MoXCJvdmVyZmxvd1wiLFwiYXV0b1wiKSk6XCJhdXRvXCI9PT10JiYoaT0wLHRoaXMucGFuZWxzLmVhY2goZnVuY3Rpb24oKXtpPU1hdGgubWF4KGksVih0aGlzKS5oZWlnaHQoXCJcIikuaGVpZ2h0KCkpfSkuaGVpZ2h0KGkpKX0sX2V2ZW50SGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMsaT10aGlzLmFjdGl2ZSxzPVYodC5jdXJyZW50VGFyZ2V0KS5jbG9zZXN0KFwibGlcIiksbj1zWzBdPT09aVswXSxvPW4mJmUuY29sbGFwc2libGUsYT1vP1YoKTp0aGlzLl9nZXRQYW5lbEZvclRhYihzKSxyPWkubGVuZ3RoP3RoaXMuX2dldFBhbmVsRm9yVGFiKGkpOlYoKSxpPXtvbGRUYWI6aSxvbGRQYW5lbDpyLG5ld1RhYjpvP1YoKTpzLG5ld1BhbmVsOmF9O3QucHJldmVudERlZmF1bHQoKSxzLmhhc0NsYXNzKFwidWktc3RhdGUtZGlzYWJsZWRcIil8fHMuaGFzQ2xhc3MoXCJ1aS10YWJzLWxvYWRpbmdcIil8fHRoaXMucnVubmluZ3x8biYmIWUuY29sbGFwc2libGV8fCExPT09dGhpcy5fdHJpZ2dlcihcImJlZm9yZUFjdGl2YXRlXCIsdCxpKXx8KGUuYWN0aXZlPSFvJiZ0aGlzLnRhYnMuaW5kZXgocyksdGhpcy5hY3RpdmU9bj9WKCk6cyx0aGlzLnhociYmdGhpcy54aHIuYWJvcnQoKSxyLmxlbmd0aHx8YS5sZW5ndGh8fFYuZXJyb3IoXCJqUXVlcnkgVUkgVGFiczogTWlzbWF0Y2hpbmcgZnJhZ21lbnQgaWRlbnRpZmllci5cIiksYS5sZW5ndGgmJnRoaXMubG9hZCh0aGlzLnRhYnMuaW5kZXgocyksdCksdGhpcy5fdG9nZ2xlKHQsaSkpfSxfdG9nZ2xlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPWUubmV3UGFuZWwsbj1lLm9sZFBhbmVsO2Z1bmN0aW9uIG8oKXtpLnJ1bm5pbmc9ITEsaS5fdHJpZ2dlcihcImFjdGl2YXRlXCIsdCxlKX1mdW5jdGlvbiBhKCl7aS5fYWRkQ2xhc3MoZS5uZXdUYWIuY2xvc2VzdChcImxpXCIpLFwidWktdGFicy1hY3RpdmVcIixcInVpLXN0YXRlLWFjdGl2ZVwiKSxzLmxlbmd0aCYmaS5vcHRpb25zLnNob3c/aS5fc2hvdyhzLGkub3B0aW9ucy5zaG93LG8pOihzLnNob3coKSxvKCkpfXRoaXMucnVubmluZz0hMCxuLmxlbmd0aCYmdGhpcy5vcHRpb25zLmhpZGU/dGhpcy5faGlkZShuLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7aS5fcmVtb3ZlQ2xhc3MoZS5vbGRUYWIuY2xvc2VzdChcImxpXCIpLFwidWktdGFicy1hY3RpdmVcIixcInVpLXN0YXRlLWFjdGl2ZVwiKSxhKCl9KToodGhpcy5fcmVtb3ZlQ2xhc3MoZS5vbGRUYWIuY2xvc2VzdChcImxpXCIpLFwidWktdGFicy1hY3RpdmVcIixcInVpLXN0YXRlLWFjdGl2ZVwiKSxuLmhpZGUoKSxhKCkpLG4uYXR0cihcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpLGUub2xkVGFiLmF0dHIoe1wiYXJpYS1zZWxlY3RlZFwiOlwiZmFsc2VcIixcImFyaWEtZXhwYW5kZWRcIjpcImZhbHNlXCJ9KSxzLmxlbmd0aCYmbi5sZW5ndGg/ZS5vbGRUYWIuYXR0cihcInRhYkluZGV4XCIsLTEpOnMubGVuZ3RoJiZ0aGlzLnRhYnMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1WKHRoaXMpLmF0dHIoXCJ0YWJJbmRleFwiKX0pLmF0dHIoXCJ0YWJJbmRleFwiLC0xKSxzLmF0dHIoXCJhcmlhLWhpZGRlblwiLFwiZmFsc2VcIiksZS5uZXdUYWIuYXR0cih7XCJhcmlhLXNlbGVjdGVkXCI6XCJ0cnVlXCIsXCJhcmlhLWV4cGFuZGVkXCI6XCJ0cnVlXCIsdGFiSW5kZXg6MH0pfSxfYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIHQ9dGhpcy5fZmluZEFjdGl2ZSh0KTt0WzBdIT09dGhpcy5hY3RpdmVbMF0mJih0Lmxlbmd0aHx8KHQ9dGhpcy5hY3RpdmUpLHQ9dC5maW5kKFwiLnVpLXRhYnMtYW5jaG9yXCIpWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OnQsY3VycmVudFRhcmdldDp0LHByZXZlbnREZWZhdWx0OlYubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuITE9PT10P1YoKTp0aGlzLnRhYnMuZXEodCl9LF9nZXRJbmRleDpmdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9dGhpcy5hbmNob3JzLmluZGV4KHRoaXMuYW5jaG9ycy5maWx0ZXIoXCJbaHJlZiQ9J1wiK1YuZXNjYXBlU2VsZWN0b3IodCkrXCInXVwiKSkpLHR9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy54aHImJnRoaXMueGhyLmFib3J0KCksdGhpcy50YWJsaXN0LnJlbW92ZUF0dHIoXCJyb2xlXCIpLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKSx0aGlzLmFuY2hvcnMucmVtb3ZlQXR0cihcInJvbGUgdGFiSW5kZXhcIikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLnRhYnMuYWRkKHRoaXMucGFuZWxzKS5lYWNoKGZ1bmN0aW9uKCl7Vi5kYXRhKHRoaXMsXCJ1aS10YWJzLWRlc3Ryb3lcIik/Vih0aGlzKS5yZW1vdmUoKTpWKHRoaXMpLnJlbW92ZUF0dHIoXCJyb2xlIHRhYkluZGV4IGFyaWEtbGl2ZSBhcmlhLWJ1c3kgYXJpYS1zZWxlY3RlZCBhcmlhLWxhYmVsbGVkYnkgYXJpYS1oaWRkZW4gYXJpYS1leHBhbmRlZFwiKX0pLHRoaXMudGFicy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKSxlPXQuZGF0YShcInVpLXRhYnMtYXJpYS1jb250cm9sc1wiKTtlP3QuYXR0cihcImFyaWEtY29udHJvbHNcIixlKS5yZW1vdmVEYXRhKFwidWktdGFicy1hcmlhLWNvbnRyb2xzXCIpOnQucmVtb3ZlQXR0cihcImFyaWEtY29udHJvbHNcIil9KSx0aGlzLnBhbmVscy5zaG93KCksXCJjb250ZW50XCIhPT10aGlzLm9wdGlvbnMuaGVpZ2h0U3R5bGUmJnRoaXMucGFuZWxzLmNzcyhcImhlaWdodFwiLFwiXCIpfSxlbmFibGU6ZnVuY3Rpb24oaSl7dmFyIHQ9dGhpcy5vcHRpb25zLmRpc2FibGVkOyExIT09dCYmKHQ9dm9pZCAwIT09aSYmKGk9dGhpcy5fZ2V0SW5kZXgoaSksQXJyYXkuaXNBcnJheSh0KT9WLm1hcCh0LGZ1bmN0aW9uKHQpe3JldHVybiB0IT09aT90Om51bGx9KTpWLm1hcCh0aGlzLnRhYnMsZnVuY3Rpb24odCxlKXtyZXR1cm4gZSE9PWk/ZTpudWxsfSkpLHRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHQpKX0sZGlzYWJsZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMuZGlzYWJsZWQ7aWYoITAhPT1lKXtpZih2b2lkIDA9PT10KWU9ITA7ZWxzZXtpZih0PXRoaXMuX2dldEluZGV4KHQpLC0xIT09Vi5pbkFycmF5KHQsZSkpcmV0dXJuO2U9QXJyYXkuaXNBcnJheShlKT9WLm1lcmdlKFt0XSxlKS5zb3J0KCk6W3RdfXRoaXMuX3NldE9wdGlvbkRpc2FibGVkKGUpfX0sbG9hZDpmdW5jdGlvbih0LHMpe3Q9dGhpcy5fZ2V0SW5kZXgodCk7ZnVuY3Rpb24gbih0LGUpe1wiYWJvcnRcIj09PWUmJm8ucGFuZWxzLnN0b3AoITEsITApLG8uX3JlbW92ZUNsYXNzKGksXCJ1aS10YWJzLWxvYWRpbmdcIiksYS5yZW1vdmVBdHRyKFwiYXJpYS1idXN5XCIpLHQ9PT1vLnhociYmZGVsZXRlIG8ueGhyfXZhciBvPXRoaXMsaT10aGlzLnRhYnMuZXEodCksdD1pLmZpbmQoXCIudWktdGFicy1hbmNob3JcIiksYT10aGlzLl9nZXRQYW5lbEZvclRhYihpKSxyPXt0YWI6aSxwYW5lbDphfTt0aGlzLl9pc0xvY2FsKHRbMF0pfHwodGhpcy54aHI9Vi5hamF4KHRoaXMuX2FqYXhTZXR0aW5ncyh0LHMscikpLHRoaXMueGhyJiZcImNhbmNlbGVkXCIhPT10aGlzLnhoci5zdGF0dXNUZXh0JiYodGhpcy5fYWRkQ2xhc3MoaSxcInVpLXRhYnMtbG9hZGluZ1wiKSxhLmF0dHIoXCJhcmlhLWJ1c3lcIixcInRydWVcIiksdGhpcy54aHIuZG9uZShmdW5jdGlvbih0LGUsaSl7c2V0VGltZW91dChmdW5jdGlvbigpe2EuaHRtbCh0KSxvLl90cmlnZ2VyKFwibG9hZFwiLHMsciksbihpLGUpfSwxKX0pLmZhaWwoZnVuY3Rpb24odCxlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bih0LGUpfSwxKX0pKSl9LF9hamF4U2V0dGluZ3M6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXRoaXM7cmV0dXJue3VybDp0LmF0dHIoXCJocmVmXCIpLnJlcGxhY2UoLyMuKiQvLFwiXCIpLGJlZm9yZVNlbmQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5fdHJpZ2dlcihcImJlZm9yZUxvYWRcIixpLFYuZXh0ZW5kKHtqcVhIUjp0LGFqYXhTZXR0aW5nczplfSxzKSl9fX0sX2dldFBhbmVsRm9yVGFiOmZ1bmN0aW9uKHQpe3Q9Vih0KS5hdHRyKFwiYXJpYS1jb250cm9sc1wiKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbmQodGhpcy5fc2FuaXRpemVTZWxlY3RvcihcIiNcIit0KSl9fSksITEhPT1WLnVpQmFja0NvbXBhdCYmVi53aWRnZXQoXCJ1aS50YWJzXCIsVi51aS50YWJzLHtfcHJvY2Vzc1RhYnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlckFwcGx5KGFyZ3VtZW50cyksdGhpcy5fYWRkQ2xhc3ModGhpcy50YWJzLFwidWktdGFiXCIpfX0pO1YudWkudGFicztWLndpZGdldChcInVpLnRvb2x0aXBcIix7dmVyc2lvbjpcIjEuMTMuMlwiLG9wdGlvbnM6e2NsYXNzZXM6e1widWktdG9vbHRpcFwiOlwidWktY29ybmVyLWFsbCB1aS13aWRnZXQtc2hhZG93XCJ9LGNvbnRlbnQ6ZnVuY3Rpb24oKXt2YXIgdD1WKHRoaXMpLmF0dHIoXCJ0aXRsZVwiKTtyZXR1cm4gVihcIjxhPlwiKS50ZXh0KHQpLmh0bWwoKX0saGlkZTohMCxpdGVtczpcIlt0aXRsZV06bm90KFtkaXNhYmxlZF0pXCIscG9zaXRpb246e215OlwibGVmdCB0b3ArMTVcIixhdDpcImxlZnQgYm90dG9tXCIsY29sbGlzaW9uOlwiZmxpcGZpdCBmbGlwXCJ9LHNob3c6ITAsdHJhY2s6ITEsY2xvc2U6bnVsbCxvcGVuOm51bGx9LF9hZGREZXNjcmliZWRCeTpmdW5jdGlvbih0LGUpe3ZhciBpPSh0LmF0dHIoXCJhcmlhLWRlc2NyaWJlZGJ5XCIpfHxcIlwiKS5zcGxpdCgvXFxzKy8pO2kucHVzaChlKSx0LmRhdGEoXCJ1aS10b29sdGlwLWlkXCIsZSkuYXR0cihcImFyaWEtZGVzY3JpYmVkYnlcIixTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChpLmpvaW4oXCIgXCIpKSl9LF9yZW1vdmVEZXNjcmliZWRCeTpmdW5jdGlvbih0KXt2YXIgZT10LmRhdGEoXCJ1aS10b29sdGlwLWlkXCIpLGk9KHQuYXR0cihcImFyaWEtZGVzY3JpYmVkYnlcIil8fFwiXCIpLnNwbGl0KC9cXHMrLyksZT1WLmluQXJyYXkoZSxpKTstMSE9PWUmJmkuc3BsaWNlKGUsMSksdC5yZW1vdmVEYXRhKFwidWktdG9vbHRpcC1pZFwiKSwoaT1TdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChpLmpvaW4oXCIgXCIpKSk/dC5hdHRyKFwiYXJpYS1kZXNjcmliZWRieVwiLGkpOnQucmVtb3ZlQXR0cihcImFyaWEtZGVzY3JpYmVkYnlcIil9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9vbih7bW91c2VvdmVyOlwib3BlblwiLGZvY3VzaW46XCJvcGVuXCJ9KSx0aGlzLnRvb2x0aXBzPXt9LHRoaXMucGFyZW50cz17fSx0aGlzLmxpdmVSZWdpb249VihcIjxkaXY+XCIpLmF0dHIoe3JvbGU6XCJsb2dcIixcImFyaWEtbGl2ZVwiOlwiYXNzZXJ0aXZlXCIsXCJhcmlhLXJlbGV2YW50XCI6XCJhZGRpdGlvbnNcIn0pLmFwcGVuZFRvKHRoaXMuZG9jdW1lbnRbMF0uYm9keSksdGhpcy5fYWRkQ2xhc3ModGhpcy5saXZlUmVnaW9uLG51bGwsXCJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGVcIiksdGhpcy5kaXNhYmxlZFRpdGxlcz1WKFtdKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7dGhpcy5fc3VwZXIodCxlKSxcImNvbnRlbnRcIj09PXQmJlYuZWFjaCh0aGlzLnRvb2x0aXBzLGZ1bmN0aW9uKHQsZSl7aS5fdXBkYXRlQ29udGVudChlLmVsZW1lbnQpfSl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbih0KXt0aGlzW3Q/XCJfZGlzYWJsZVwiOlwiX2VuYWJsZVwiXSgpfSxfZGlzYWJsZTpmdW5jdGlvbigpe3ZhciBzPXRoaXM7Vi5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24odCxlKXt2YXIgaT1WLkV2ZW50KFwiYmx1clwiKTtpLnRhcmdldD1pLmN1cnJlbnRUYXJnZXQ9ZS5lbGVtZW50WzBdLHMuY2xvc2UoaSwhMCl9KSx0aGlzLmRpc2FibGVkVGl0bGVzPXRoaXMuZGlzYWJsZWRUaXRsZXMuYWRkKHRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuYWRkQmFjaygpLmZpbHRlcihmdW5jdGlvbigpe3ZhciB0PVYodGhpcyk7aWYodC5pcyhcIlt0aXRsZV1cIikpcmV0dXJuIHQuZGF0YShcInVpLXRvb2x0aXAtdGl0bGVcIix0LmF0dHIoXCJ0aXRsZVwiKSkucmVtb3ZlQXR0cihcInRpdGxlXCIpfSkpfSxfZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZFRpdGxlcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Vih0aGlzKTt0LmRhdGEoXCJ1aS10b29sdGlwLXRpdGxlXCIpJiZ0LmF0dHIoXCJ0aXRsZVwiLHQuZGF0YShcInVpLXRvb2x0aXAtdGl0bGVcIikpfSksdGhpcy5kaXNhYmxlZFRpdGxlcz1WKFtdKX0sb3BlbjpmdW5jdGlvbih0KXt2YXIgaT10aGlzLGU9Vih0P3QudGFyZ2V0OnRoaXMuZWxlbWVudCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuaXRlbXMpO2UubGVuZ3RoJiYhZS5kYXRhKFwidWktdG9vbHRpcC1pZFwiKSYmKGUuYXR0cihcInRpdGxlXCIpJiZlLmRhdGEoXCJ1aS10b29sdGlwLXRpdGxlXCIsZS5hdHRyKFwidGl0bGVcIikpLGUuZGF0YShcInVpLXRvb2x0aXAtb3BlblwiLCEwKSx0JiZcIm1vdXNlb3ZlclwiPT09dC50eXBlJiZlLnBhcmVudHMoKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQsZT1WKHRoaXMpO2UuZGF0YShcInVpLXRvb2x0aXAtb3BlblwiKSYmKCh0PVYuRXZlbnQoXCJibHVyXCIpKS50YXJnZXQ9dC5jdXJyZW50VGFyZ2V0PXRoaXMsaS5jbG9zZSh0LCEwKSksZS5hdHRyKFwidGl0bGVcIikmJihlLnVuaXF1ZUlkKCksaS5wYXJlbnRzW3RoaXMuaWRdPXtlbGVtZW50OnRoaXMsdGl0bGU6ZS5hdHRyKFwidGl0bGVcIil9LGUuYXR0cihcInRpdGxlXCIsXCJcIikpfSksdGhpcy5fcmVnaXN0ZXJDbG9zZUhhbmRsZXJzKHQsZSksdGhpcy5fdXBkYXRlQ29udGVudChlLHQpKX0sX3VwZGF0ZUNvbnRlbnQ6ZnVuY3Rpb24oZSxpKXt2YXIgdD10aGlzLm9wdGlvbnMuY29udGVudCxzPXRoaXMsbj1pP2kudHlwZTpudWxsO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0fHx0Lm5vZGVUeXBlfHx0LmpxdWVyeSlyZXR1cm4gdGhpcy5fb3BlbihpLGUsdCk7KHQ9dC5jYWxsKGVbMF0sZnVuY3Rpb24odCl7cy5fZGVsYXkoZnVuY3Rpb24oKXtlLmRhdGEoXCJ1aS10b29sdGlwLW9wZW5cIikmJihpJiYoaS50eXBlPW4pLHRoaXMuX29wZW4oaSxlLHQpKX0pfSkpJiZ0aGlzLl9vcGVuKGksZSx0KX0sX29wZW46ZnVuY3Rpb24odCxlLGkpe3ZhciBzLG4sbyxhPVYuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucy5wb3NpdGlvbik7ZnVuY3Rpb24gcih0KXthLm9mPXQsbi5pcyhcIjpoaWRkZW5cIil8fG4ucG9zaXRpb24oYSl9aSYmKChzPXRoaXMuX2ZpbmQoZSkpP3MudG9vbHRpcC5maW5kKFwiLnVpLXRvb2x0aXAtY29udGVudFwiKS5odG1sKGkpOihlLmlzKFwiW3RpdGxlXVwiKSYmKHQmJlwibW91c2VvdmVyXCI9PT10LnR5cGU/ZS5hdHRyKFwidGl0bGVcIixcIlwiKTplLnJlbW92ZUF0dHIoXCJ0aXRsZVwiKSkscz10aGlzLl90b29sdGlwKGUpLG49cy50b29sdGlwLHRoaXMuX2FkZERlc2NyaWJlZEJ5KGUsbi5hdHRyKFwiaWRcIikpLG4uZmluZChcIi51aS10b29sdGlwLWNvbnRlbnRcIikuaHRtbChpKSx0aGlzLmxpdmVSZWdpb24uY2hpbGRyZW4oKS5oaWRlKCksKGk9VihcIjxkaXY+XCIpLmh0bWwobi5maW5kKFwiLnVpLXRvb2x0aXAtY29udGVudFwiKS5odG1sKCkpKS5yZW1vdmVBdHRyKFwibmFtZVwiKS5maW5kKFwiW25hbWVdXCIpLnJlbW92ZUF0dHIoXCJuYW1lXCIpLGkucmVtb3ZlQXR0cihcImlkXCIpLmZpbmQoXCJbaWRdXCIpLnJlbW92ZUF0dHIoXCJpZFwiKSxpLmFwcGVuZFRvKHRoaXMubGl2ZVJlZ2lvbiksdGhpcy5vcHRpb25zLnRyYWNrJiZ0JiYvXm1vdXNlLy50ZXN0KHQudHlwZSk/KHRoaXMuX29uKHRoaXMuZG9jdW1lbnQse21vdXNlbW92ZTpyfSkscih0KSk6bi5wb3NpdGlvbihWLmV4dGVuZCh7b2Y6ZX0sdGhpcy5vcHRpb25zLnBvc2l0aW9uKSksbi5oaWRlKCksdGhpcy5fc2hvdyhuLHRoaXMub3B0aW9ucy5zaG93KSx0aGlzLm9wdGlvbnMudHJhY2smJnRoaXMub3B0aW9ucy5zaG93JiZ0aGlzLm9wdGlvbnMuc2hvdy5kZWxheSYmKG89dGhpcy5kZWxheWVkU2hvdz1zZXRJbnRlcnZhbChmdW5jdGlvbigpe24uaXMoXCI6dmlzaWJsZVwiKSYmKHIoYS5vZiksY2xlYXJJbnRlcnZhbChvKSl9LDEzKSksdGhpcy5fdHJpZ2dlcihcIm9wZW5cIix0LHt0b29sdGlwOm59KSkpfSxfcmVnaXN0ZXJDbG9zZUhhbmRsZXJzOmZ1bmN0aW9uKHQsZSl7dmFyIGk9e2tleXVwOmZ1bmN0aW9uKHQpe3Qua2V5Q29kZT09PVYudWkua2V5Q29kZS5FU0NBUEUmJigodD1WLkV2ZW50KHQpKS5jdXJyZW50VGFyZ2V0PWVbMF0sdGhpcy5jbG9zZSh0LCEwKSl9fTtlWzBdIT09dGhpcy5lbGVtZW50WzBdJiYoaS5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9maW5kKGUpO3QmJnRoaXMuX3JlbW92ZVRvb2x0aXAodC50b29sdGlwKX0pLHQmJlwibW91c2VvdmVyXCIhPT10LnR5cGV8fChpLm1vdXNlbGVhdmU9XCJjbG9zZVwiKSx0JiZcImZvY3VzaW5cIiE9PXQudHlwZXx8KGkuZm9jdXNvdXQ9XCJjbG9zZVwiKSx0aGlzLl9vbighMCxlLGkpfSxjbG9zZTpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMscz1WKHQ/dC5jdXJyZW50VGFyZ2V0OnRoaXMuZWxlbWVudCksbj10aGlzLl9maW5kKHMpO24/KGU9bi50b29sdGlwLG4uY2xvc2luZ3x8KGNsZWFySW50ZXJ2YWwodGhpcy5kZWxheWVkU2hvdykscy5kYXRhKFwidWktdG9vbHRpcC10aXRsZVwiKSYmIXMuYXR0cihcInRpdGxlXCIpJiZzLmF0dHIoXCJ0aXRsZVwiLHMuZGF0YShcInVpLXRvb2x0aXAtdGl0bGVcIikpLHRoaXMuX3JlbW92ZURlc2NyaWJlZEJ5KHMpLG4uaGlkaW5nPSEwLGUuc3RvcCghMCksdGhpcy5faGlkZShlLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7aS5fcmVtb3ZlVG9vbHRpcChWKHRoaXMpKX0pLHMucmVtb3ZlRGF0YShcInVpLXRvb2x0aXAtb3BlblwiKSx0aGlzLl9vZmYocyxcIm1vdXNlbGVhdmUgZm9jdXNvdXQga2V5dXBcIiksc1swXSE9PXRoaXMuZWxlbWVudFswXSYmdGhpcy5fb2ZmKHMsXCJyZW1vdmVcIiksdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQsXCJtb3VzZW1vdmVcIiksdCYmXCJtb3VzZWxlYXZlXCI9PT10LnR5cGUmJlYuZWFjaCh0aGlzLnBhcmVudHMsZnVuY3Rpb24odCxlKXtWKGUuZWxlbWVudCkuYXR0cihcInRpdGxlXCIsZS50aXRsZSksZGVsZXRlIGkucGFyZW50c1t0XX0pLG4uY2xvc2luZz0hMCx0aGlzLl90cmlnZ2VyKFwiY2xvc2VcIix0LHt0b29sdGlwOmV9KSxuLmhpZGluZ3x8KG4uY2xvc2luZz0hMSkpKTpzLnJlbW92ZURhdGEoXCJ1aS10b29sdGlwLW9wZW5cIil9LF90b29sdGlwOmZ1bmN0aW9uKHQpe3ZhciBlPVYoXCI8ZGl2PlwiKS5hdHRyKFwicm9sZVwiLFwidG9vbHRpcFwiKSxpPVYoXCI8ZGl2PlwiKS5hcHBlbmRUbyhlKSxzPWUudW5pcXVlSWQoKS5hdHRyKFwiaWRcIik7cmV0dXJuIHRoaXMuX2FkZENsYXNzKGksXCJ1aS10b29sdGlwLWNvbnRlbnRcIiksdGhpcy5fYWRkQ2xhc3MoZSxcInVpLXRvb2x0aXBcIixcInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudFwiKSxlLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKHQpKSx0aGlzLnRvb2x0aXBzW3NdPXtlbGVtZW50OnQsdG9vbHRpcDplfX0sX2ZpbmQ6ZnVuY3Rpb24odCl7dD10LmRhdGEoXCJ1aS10b29sdGlwLWlkXCIpO3JldHVybiB0P3RoaXMudG9vbHRpcHNbdF06bnVsbH0sX3JlbW92ZVRvb2x0aXA6ZnVuY3Rpb24odCl7Y2xlYXJJbnRlcnZhbCh0aGlzLmRlbGF5ZWRTaG93KSx0LnJlbW92ZSgpLGRlbGV0ZSB0aGlzLnRvb2x0aXBzW3QuYXR0cihcImlkXCIpXX0sX2FwcGVuZFRvOmZ1bmN0aW9uKHQpe3Q9dC5jbG9zZXN0KFwiLnVpLWZyb250LCBkaWFsb2dcIik7cmV0dXJuIHQubGVuZ3RofHwodD10aGlzLmRvY3VtZW50WzBdLmJvZHkpLHR9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHM9dGhpcztWLmVhY2godGhpcy50b29sdGlwcyxmdW5jdGlvbih0LGUpe3ZhciBpPVYuRXZlbnQoXCJibHVyXCIpLGU9ZS5lbGVtZW50O2kudGFyZ2V0PWkuY3VycmVudFRhcmdldD1lWzBdLHMuY2xvc2UoaSwhMCksVihcIiNcIit0KS5yZW1vdmUoKSxlLmRhdGEoXCJ1aS10b29sdGlwLXRpdGxlXCIpJiYoZS5hdHRyKFwidGl0bGVcIil8fGUuYXR0cihcInRpdGxlXCIsZS5kYXRhKFwidWktdG9vbHRpcC10aXRsZVwiKSksZS5yZW1vdmVEYXRhKFwidWktdG9vbHRpcC10aXRsZVwiKSl9KSx0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCl9fSksITEhPT1WLnVpQmFja0NvbXBhdCYmVi53aWRnZXQoXCJ1aS50b29sdGlwXCIsVi51aS50b29sdGlwLHtvcHRpb25zOnt0b29sdGlwQ2xhc3M6bnVsbH0sX3Rvb2x0aXA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdXBlckFwcGx5KGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMub3B0aW9ucy50b29sdGlwQ2xhc3MmJnQudG9vbHRpcC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzKSx0fX0pO1YudWkudG9vbHRpcDt2YXIgSCx6PVYsQT17fSxPPUEudG9TdHJpbmcsTj0vXihbXFwtK10pPVxccyooXFxkK1xcLj9cXGQqKS8sRT1be3JlOi9yZ2JhP1xcKFxccyooXFxkezEsM30pXFxzKixcXHMqKFxcZHsxLDN9KVxccyosXFxzKihcXGR7MSwzfSlcXHMqKD86LFxccyooXFxkPyg/OlxcLlxcZCspPylcXHMqKT9cXCkvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVyblt0WzFdLHRbMl0sdFszXSx0WzRdXX19LHtyZTovcmdiYT9cXChcXHMqKFxcZCsoPzpcXC5cXGQrKT8pXFwlXFxzKixcXHMqKFxcZCsoPzpcXC5cXGQrKT8pXFwlXFxzKixcXHMqKFxcZCsoPzpcXC5cXGQrKT8pXFwlXFxzKig/OixcXHMqKFxcZD8oPzpcXC5cXGQrKT8pXFxzKik/XFwpLyxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm5bMi41NSp0WzFdLDIuNTUqdFsyXSwyLjU1KnRbM10sdFs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pPy8scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuW3BhcnNlSW50KHRbMV0sMTYpLHBhcnNlSW50KHRbMl0sMTYpLHBhcnNlSW50KHRbM10sMTYpLHRbNF0/KHBhcnNlSW50KHRbNF0sMTYpLzI1NSkudG9GaXhlZCgyKToxXX19LHtyZTovIyhbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSk/LyxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm5bcGFyc2VJbnQodFsxXSt0WzFdLDE2KSxwYXJzZUludCh0WzJdK3RbMl0sMTYpLHBhcnNlSW50KHRbM10rdFszXSwxNiksdFs0XT8ocGFyc2VJbnQodFs0XSt0WzRdLDE2KS8yNTUpLnRvRml4ZWQoMik6MV19fSx7cmU6L2hzbGE/XFwoXFxzKihcXGQrKD86XFwuXFxkKyk/KVxccyosXFxzKihcXGQrKD86XFwuXFxkKyk/KVxcJVxccyosXFxzKihcXGQrKD86XFwuXFxkKyk/KVxcJVxccyooPzosXFxzKihcXGQ/KD86XFwuXFxkKyk/KVxccyopP1xcKS8sc3BhY2U6XCJoc2xhXCIscGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuW3RbMV0sdFsyXS8xMDAsdFszXS8xMDAsdFs0XV19fV0sVz16LkNvbG9yPWZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiBuZXcgei5Db2xvci5mbi5wYXJzZSh0LGUsaSxzKX0sRj17cmdiYTp7cHJvcHM6e3JlZDp7aWR4OjAsdHlwZTpcImJ5dGVcIn0sZ3JlZW46e2lkeDoxLHR5cGU6XCJieXRlXCJ9LGJsdWU6e2lkeDoyLHR5cGU6XCJieXRlXCJ9fX0saHNsYTp7cHJvcHM6e2h1ZTp7aWR4OjAsdHlwZTpcImRlZ3JlZXNcIn0sc2F0dXJhdGlvbjp7aWR4OjEsdHlwZTpcInBlcmNlbnRcIn0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOlwicGVyY2VudFwifX19fSxMPXtieXRlOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LFI9Vy5zdXBwb3J0PXt9LFk9eihcIjxwPlwiKVswXSxCPXouZWFjaDtmdW5jdGlvbiBqKHQpe3JldHVybiBudWxsPT10P3QrXCJcIjpcIm9iamVjdFwiPT10eXBlb2YgdD9BW08uY2FsbCh0KV18fFwib2JqZWN0XCI6dHlwZW9mIHR9ZnVuY3Rpb24gcSh0LGUsaSl7dmFyIHM9TFtlLnR5cGVdfHx7fTtyZXR1cm4gbnVsbD09dD9pfHwhZS5kZWY/bnVsbDplLmRlZjoodD1zLmZsb29yP35+dDpwYXJzZUZsb2F0KHQpLGlzTmFOKHQpP2UuZGVmOnMubW9kPyh0K3MubW9kKSVzLm1vZDpNYXRoLm1pbihzLm1heCxNYXRoLm1heCgwLHQpKSl9ZnVuY3Rpb24gSyhzKXt2YXIgbj1XKCksbz1uLl9yZ2JhPVtdO3JldHVybiBzPXMudG9Mb3dlckNhc2UoKSxCKEUsZnVuY3Rpb24odCxlKXt2YXIgaT1lLnJlLmV4ZWMocyksaT1pJiZlLnBhcnNlKGkpLGU9ZS5zcGFjZXx8XCJyZ2JhXCI7aWYoaSlyZXR1cm4gaT1uW2VdKGkpLG5bRltlXS5jYWNoZV09aVtGW2VdLmNhY2hlXSxvPW4uX3JnYmE9aS5fcmdiYSwhMX0pLG8ubGVuZ3RoPyhcIjAsMCwwLDBcIj09PW8uam9pbigpJiZ6LmV4dGVuZChvLEgudHJhbnNwYXJlbnQpLG4pOkhbc119ZnVuY3Rpb24gVSh0LGUsaSl7cmV0dXJuIDYqKGk9KGkrMSklMSk8MT90KyhlLXQpKmkqNjoyKmk8MT9lOjMqaTwyP3QrKGUtdCkqKDIvMy1pKSo2OnR9WS5zdHlsZS5jc3NUZXh0PVwiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEsMSwxLC41KVwiLFIucmdiYT0tMTxZLnN0eWxlLmJhY2tncm91bmRDb2xvci5pbmRleE9mKFwicmdiYVwiKSxCKEYsZnVuY3Rpb24odCxlKXtlLmNhY2hlPVwiX1wiK3QsZS5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZTpcInBlcmNlbnRcIixkZWY6MX19KSx6LmVhY2goXCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbFwiLnNwbGl0KFwiIFwiKSxmdW5jdGlvbih0LGUpe0FbXCJbb2JqZWN0IFwiK2UrXCJdXCJdPWUudG9Mb3dlckNhc2UoKX0pLFcuZm49ei5leHRlbmQoVy5wcm90b3R5cGUse3BhcnNlOmZ1bmN0aW9uKG4sdCxlLGkpe2lmKHZvaWQgMD09PW4pcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49eihuKS5jc3ModCksdD12b2lkIDApO3ZhciBvPXRoaXMscz1qKG4pLGE9dGhpcy5fcmdiYT1bXTtyZXR1cm4gdm9pZCAwIT09dCYmKG49W24sdCxlLGldLHM9XCJhcnJheVwiKSxcInN0cmluZ1wiPT09cz90aGlzLnBhcnNlKEsobil8fEguX2RlZmF1bHQpOlwiYXJyYXlcIj09PXM/KEIoRi5yZ2JhLnByb3BzLGZ1bmN0aW9uKHQsZSl7YVtlLmlkeF09cShuW2UuaWR4XSxlKX0pLHRoaXMpOlwib2JqZWN0XCI9PT1zPyhCKEYsbiBpbnN0YW5jZW9mIFc/ZnVuY3Rpb24odCxlKXtuW2UuY2FjaGVdJiYob1tlLmNhY2hlXT1uW2UuY2FjaGVdLnNsaWNlKCkpfTpmdW5jdGlvbih0LGkpe3ZhciBzPWkuY2FjaGU7QihpLnByb3BzLGZ1bmN0aW9uKHQsZSl7aWYoIW9bc10mJmkudG8pe2lmKFwiYWxwaGFcIj09PXR8fG51bGw9PW5bdF0pcmV0dXJuO29bc109aS50byhvLl9yZ2JhKX1vW3NdW2UuaWR4XT1xKG5bdF0sZSwhMCl9KSxvW3NdJiZ6LmluQXJyYXkobnVsbCxvW3NdLnNsaWNlKDAsMykpPDAmJihudWxsPT1vW3NdWzNdJiYob1tzXVszXT0xKSxpLmZyb20mJihvLl9yZ2JhPWkuZnJvbShvW3NdKSkpfSksdGhpcyk6dm9pZCAwfSxpczpmdW5jdGlvbih0KXt2YXIgbj1XKHQpLG89ITAsYT10aGlzO3JldHVybiBCKEYsZnVuY3Rpb24odCxlKXt2YXIgaSxzPW5bZS5jYWNoZV07cmV0dXJuIHMmJihpPWFbZS5jYWNoZV18fGUudG8mJmUudG8oYS5fcmdiYSl8fFtdLEIoZS5wcm9wcyxmdW5jdGlvbih0LGUpe2lmKG51bGwhPXNbZS5pZHhdKXJldHVybiBvPXNbZS5pZHhdPT09aVtlLmlkeF19KSksb30pLG99LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBpPVtdLHM9dGhpcztyZXR1cm4gQihGLGZ1bmN0aW9uKHQsZSl7c1tlLmNhY2hlXSYmaS5wdXNoKHQpfSksaS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbih0LGEpe3ZhciBlPShoPVcodCkpLl9zcGFjZSgpLGk9RltlXSx0PTA9PT10aGlzLmFscGhhKCk/VyhcInRyYW5zcGFyZW50XCIpOnRoaXMscj10W2kuY2FjaGVdfHxpLnRvKHQuX3JnYmEpLGw9ci5zbGljZSgpLGg9aFtpLmNhY2hlXTtyZXR1cm4gQihpLnByb3BzLGZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS5pZHgscz1yW2ldLG49aFtpXSxvPUxbZS50eXBlXXx8e307bnVsbCE9PW4mJihudWxsPT09cz9sW2ldPW46KG8ubW9kJiYoby5tb2QvMjxuLXM/cys9by5tb2Q6by5tb2QvMjxzLW4mJihzLT1vLm1vZCkpLGxbaV09cSgobi1zKSphK3MsZSkpKX0pLHRoaXNbZV0obCl9LGJsZW5kOmZ1bmN0aW9uKHQpe2lmKDE9PT10aGlzLl9yZ2JhWzNdKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuX3JnYmEuc2xpY2UoKSxpPWUucG9wKCkscz1XKHQpLl9yZ2JhO3JldHVybiBXKHoubWFwKGUsZnVuY3Rpb24odCxlKXtyZXR1cm4oMS1pKSpzW2VdK2kqdH0pKX0sdG9SZ2JhU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9XCJyZ2JhKFwiLGU9ei5tYXAodGhpcy5fcmdiYSxmdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10P3Q6MjxlPzE6MH0pO3JldHVybiAxPT09ZVszXSYmKGUucG9wKCksdD1cInJnYihcIiksdCtlLmpvaW4oKStcIilcIn0sdG9Ic2xhU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9XCJoc2xhKFwiLGU9ei5tYXAodGhpcy5oc2xhKCksZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dCYmKHQ9MjxlPzE6MCksZSYmZTwzJiYodD1NYXRoLnJvdW5kKDEwMCp0KStcIiVcIiksdH0pO3JldHVybiAxPT09ZVszXSYmKGUucG9wKCksdD1cImhzbChcIiksdCtlLmpvaW4oKStcIilcIn0sdG9IZXhTdHJpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmdiYS5zbGljZSgpLGk9ZS5wb3AoKTtyZXR1cm4gdCYmZS5wdXNoKH5+KDI1NSppKSksXCIjXCIrei5tYXAoZSxmdW5jdGlvbih0KXtyZXR1cm4gMT09PSh0PSh0fHwwKS50b1N0cmluZygxNikpLmxlbmd0aD9cIjBcIit0OnR9KS5qb2luKFwiXCIpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5fcmdiYVszXT9cInRyYW5zcGFyZW50XCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSxXLmZuLnBhcnNlLnByb3RvdHlwZT1XLmZuLEYuaHNsYS50bz1mdW5jdGlvbih0KXtpZihudWxsPT10WzBdfHxudWxsPT10WzFdfHxudWxsPT10WzJdKXJldHVybltudWxsLG51bGwsbnVsbCx0WzNdXTt2YXIgZT10WzBdLzI1NSxpPXRbMV0vMjU1LHM9dFsyXS8yNTUsbj10WzNdLG89TWF0aC5tYXgoZSxpLHMpLGE9TWF0aC5taW4oZSxpLHMpLHI9by1hLGw9bythLHQ9LjUqbCxpPWE9PT1vPzA6ZT09PW8/NjAqKGktcykvciszNjA6aT09PW8/NjAqKHMtZSkvcisxMjA6NjAqKGUtaSkvcisyNDAsbD0wPT1yPzA6dDw9LjU/ci9sOnIvKDItbCk7cmV0dXJuW01hdGgucm91bmQoaSklMzYwLGwsdCxudWxsPT1uPzE6bl19LEYuaHNsYS5mcm9tPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXRbMF18fG51bGw9PXRbMV18fG51bGw9PXRbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLHRbM11dO3ZhciBlPXRbMF0vMzYwLGk9dFsxXSxzPXRbMl0sdD10WzNdLGk9czw9LjU/cyooMStpKTpzK2ktcyppLHM9MipzLWk7cmV0dXJuW01hdGgucm91bmQoMjU1KlUocyxpLGUrMS8zKSksTWF0aC5yb3VuZCgyNTUqVShzLGksZSkpLE1hdGgucm91bmQoMjU1KlUocyxpLGUtMS8zKSksdF19LEIoRixmdW5jdGlvbihsLHQpe3ZhciBlPXQucHJvcHMsbz10LmNhY2hlLGE9dC50byxyPXQuZnJvbTtXLmZuW2xdPWZ1bmN0aW9uKHQpe2lmKGEmJiF0aGlzW29dJiYodGhpc1tvXT1hKHRoaXMuX3JnYmEpKSx2b2lkIDA9PT10KXJldHVybiB0aGlzW29dLnNsaWNlKCk7dmFyIGk9aih0KSxzPVwiYXJyYXlcIj09PWl8fFwib2JqZWN0XCI9PT1pP3Q6YXJndW1lbnRzLG49dGhpc1tvXS5zbGljZSgpO3JldHVybiBCKGUsZnVuY3Rpb24odCxlKXt0PXNbXCJvYmplY3RcIj09PWk/dDplLmlkeF07bnVsbD09dCYmKHQ9bltlLmlkeF0pLG5bZS5pZHhdPXEodCxlKX0pLHI/KCh0PVcocihuKSkpW29dPW4sdCk6VyhuKX0sQihlLGZ1bmN0aW9uKGEscil7Vy5mblthXXx8KFcuZm5bYV09ZnVuY3Rpb24odCl7dmFyIGUsaT1qKHQpLHM9XCJhbHBoYVwiPT09YT90aGlzLl9oc2xhP1wiaHNsYVwiOlwicmdiYVwiOmwsbj10aGlzW3NdKCksbz1uW3IuaWR4XTtyZXR1cm5cInVuZGVmaW5lZFwiPT09aT9vOihcImZ1bmN0aW9uXCI9PT1pJiYoaT1qKHQ9dC5jYWxsKHRoaXMsbykpKSxudWxsPT10JiZyLmVtcHR5P3RoaXM6KFwic3RyaW5nXCI9PT1pJiYoZT1OLmV4ZWModCkpJiYodD1vK3BhcnNlRmxvYXQoZVsyXSkqKFwiK1wiPT09ZVsxXT8xOi0xKSksbltyLmlkeF09dCx0aGlzW3NdKG4pKSl9KX0pfSksVy5ob29rPWZ1bmN0aW9uKHQpe3Q9dC5zcGxpdChcIiBcIik7Qih0LGZ1bmN0aW9uKHQsbyl7ei5jc3NIb29rc1tvXT17c2V0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscyxuPVwiXCI7aWYoXCJ0cmFuc3BhcmVudFwiIT09ZSYmKFwic3RyaW5nXCIhPT1qKGUpfHwoaT1LKGUpKSkpe2lmKGU9VyhpfHxlKSwhUi5yZ2JhJiYxIT09ZS5fcmdiYVszXSl7Zm9yKHM9XCJiYWNrZ3JvdW5kQ29sb3JcIj09PW8/dC5wYXJlbnROb2RlOnQ7KFwiXCI9PT1ufHxcInRyYW5zcGFyZW50XCI9PT1uKSYmcyYmcy5zdHlsZTspdHJ5e249ei5jc3MocyxcImJhY2tncm91bmRDb2xvclwiKSxzPXMucGFyZW50Tm9kZX1jYXRjaCh0KXt9ZT1lLmJsZW5kKG4mJlwidHJhbnNwYXJlbnRcIiE9PW4/bjpcIl9kZWZhdWx0XCIpfWU9ZS50b1JnYmFTdHJpbmcoKX10cnl7dC5zdHlsZVtvXT1lfWNhdGNoKHQpe319fSx6LmZ4LnN0ZXBbb109ZnVuY3Rpb24odCl7dC5jb2xvckluaXR8fCh0LnN0YXJ0PVcodC5lbGVtLG8pLHQuZW5kPVcodC5lbmQpLHQuY29sb3JJbml0PSEwKSx6LmNzc0hvb2tzW29dLnNldCh0LmVsZW0sdC5zdGFydC50cmFuc2l0aW9uKHQuZW5kLHQucG9zKSl9fSl9LFcuaG9vayhcImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3JcIiksei5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGkpe3ZhciBzPXt9O3JldHVybiBCKFtcIlRvcFwiLFwiUmlnaHRcIixcIkJvdHRvbVwiLFwiTGVmdFwiXSxmdW5jdGlvbih0LGUpe3NbXCJib3JkZXJcIitlK1wiQ29sb3JcIl09aX0pLHN9fSxIPXouQ29sb3IubmFtZXM9e2FxdWE6XCIjMDBmZmZmXCIsYmxhY2s6XCIjMDAwMDAwXCIsYmx1ZTpcIiMwMDAwZmZcIixmdWNoc2lhOlwiI2ZmMDBmZlwiLGdyYXk6XCIjODA4MDgwXCIsZ3JlZW46XCIjMDA4MDAwXCIsbGltZTpcIiMwMGZmMDBcIixtYXJvb246XCIjODAwMDAwXCIsbmF2eTpcIiMwMDAwODBcIixvbGl2ZTpcIiM4MDgwMDBcIixwdXJwbGU6XCIjODAwMDgwXCIscmVkOlwiI2ZmMDAwMFwiLHNpbHZlcjpcIiNjMGMwYzBcIix0ZWFsOlwiIzAwODA4MFwiLHdoaXRlOlwiI2ZmZmZmZlwiLHllbGxvdzpcIiNmZmZmMDBcIix0cmFuc3BhcmVudDpbbnVsbCxudWxsLG51bGwsMF0sX2RlZmF1bHQ6XCIjZmZmZmZmXCJ9O3ZhciBYLCQsRyxRLEosWix0dCxldCxpdCxzdCxudD1cInVpLWVmZmVjdHMtXCIsb3Q9XCJ1aS1lZmZlY3RzLXN0eWxlXCIsYXQ9XCJ1aS1lZmZlY3RzLWFuaW1hdGVkXCI7ZnVuY3Rpb24gcnQodCl7dmFyIGUsaSxzPXQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldz90Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpOnQuY3VycmVudFN0eWxlLG49e307aWYocyYmcy5sZW5ndGgmJnNbMF0mJnNbc1swXV0pZm9yKGk9cy5sZW5ndGg7aS0tOylcInN0cmluZ1wiPT10eXBlb2Ygc1tlPXNbaV1dJiYobltlLnJlcGxhY2UoLy0oW1xcZGEtel0pL2dpLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudG9VcHBlckNhc2UoKX0pXT1zW2VdKTtlbHNlIGZvcihlIGluIHMpXCJzdHJpbmdcIj09dHlwZW9mIHNbZV0mJihuW2VdPXNbZV0pO3JldHVybiBufWZ1bmN0aW9uIGx0KHQsZSxpLHMpe3JldHVybiBWLmlzUGxhaW5PYmplY3QodCkmJih0PShlPXQpLmVmZmVjdCksdD17ZWZmZWN0OnR9LG51bGw9PWUmJihlPXt9KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocz1lLGk9bnVsbCxlPXt9KSxcIm51bWJlclwiIT10eXBlb2YgZSYmIVYuZnguc3BlZWRzW2VdfHwocz1pLGk9ZSxlPXt9KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBpJiYocz1pLGk9bnVsbCksZSYmVi5leHRlbmQodCxlKSxpPWl8fGUuZHVyYXRpb24sdC5kdXJhdGlvbj1WLmZ4Lm9mZj8wOlwibnVtYmVyXCI9PXR5cGVvZiBpP2k6aSBpbiBWLmZ4LnNwZWVkcz9WLmZ4LnNwZWVkc1tpXTpWLmZ4LnNwZWVkcy5fZGVmYXVsdCx0LmNvbXBsZXRlPXN8fGUuY29tcGxldGUsdH1mdW5jdGlvbiBodCh0KXtyZXR1cm4hdHx8XCJudW1iZXJcIj09dHlwZW9mIHR8fFYuZnguc3BlZWRzW3RdfHwoXCJzdHJpbmdcIj09dHlwZW9mIHQmJiFWLmVmZmVjdHMuZWZmZWN0W3RdfHwoXCJmdW5jdGlvblwiPT10eXBlb2YgdHx8XCJvYmplY3RcIj09dHlwZW9mIHQmJiF0LmVmZmVjdCkpfWZ1bmN0aW9uIGN0KHQsZSl7dmFyIGk9ZS5vdXRlcldpZHRoKCksZT1lLm91dGVySGVpZ2h0KCksdD0vXnJlY3RcXCgoLT9cXGQqXFwuP1xcZCpweHwtP1xcZCslfGF1dG8pLD9cXHMqKC0/XFxkKlxcLj9cXGQqcHh8LT9cXGQrJXxhdXRvKSw/XFxzKigtP1xcZCpcXC4/XFxkKnB4fC0/XFxkKyV8YXV0byksP1xccyooLT9cXGQqXFwuP1xcZCpweHwtP1xcZCslfGF1dG8pXFwpJC8uZXhlYyh0KXx8W1wiXCIsMCxpLGUsMF07cmV0dXJue3RvcDpwYXJzZUZsb2F0KHRbMV0pfHwwLHJpZ2h0OlwiYXV0b1wiPT09dFsyXT9pOnBhcnNlRmxvYXQodFsyXSksYm90dG9tOlwiYXV0b1wiPT09dFszXT9lOnBhcnNlRmxvYXQodFszXSksbGVmdDpwYXJzZUZsb2F0KHRbNF0pfHwwfX1WLmVmZmVjdHM9e2VmZmVjdDp7fX0sUT1bXCJhZGRcIixcInJlbW92ZVwiLFwidG9nZ2xlXCJdLEo9e2JvcmRlcjoxLGJvcmRlckJvdHRvbToxLGJvcmRlckNvbG9yOjEsYm9yZGVyTGVmdDoxLGJvcmRlclJpZ2h0OjEsYm9yZGVyVG9wOjEsYm9yZGVyV2lkdGg6MSxtYXJnaW46MSxwYWRkaW5nOjF9LFYuZWFjaChbXCJib3JkZXJMZWZ0U3R5bGVcIixcImJvcmRlclJpZ2h0U3R5bGVcIixcImJvcmRlckJvdHRvbVN0eWxlXCIsXCJib3JkZXJUb3BTdHlsZVwiXSxmdW5jdGlvbih0LGUpe1YuZnguc3RlcFtlXT1mdW5jdGlvbih0KXsoXCJub25lXCIhPT10LmVuZCYmIXQuc2V0QXR0cnx8MT09PXQucG9zJiYhdC5zZXRBdHRyKSYmKHouc3R5bGUodC5lbGVtLGUsdC5lbmQpLHQuc2V0QXR0cj0hMCl9fSksVi5mbi5hZGRCYWNrfHwoVi5mbi5hZGRCYWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmFkZChudWxsPT10P3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKHQpKX0pLFYuZWZmZWN0cy5hbmltYXRlQ2xhc3M9ZnVuY3Rpb24obix0LGUsaSl7dmFyIG89Vi5zcGVlZCh0LGUsaSk7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgaT1WKHRoaXMpLHQ9aS5hdHRyKFwiY2xhc3NcIil8fFwiXCIsZT0oZT1vLmNoaWxkcmVuP2kuZmluZChcIipcIikuYWRkQmFjaygpOmkpLm1hcChmdW5jdGlvbigpe3JldHVybntlbDpWKHRoaXMpLHN0YXJ0OnJ0KHRoaXMpfX0pLHM9ZnVuY3Rpb24oKXtWLmVhY2goUSxmdW5jdGlvbih0LGUpe25bZV0mJmlbZStcIkNsYXNzXCJdKG5bZV0pfSl9O3MoKSxlPWUubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kPXJ0KHRoaXMuZWxbMF0pLHRoaXMuZGlmZj1mdW5jdGlvbih0LGUpe3ZhciBpLHMsbj17fTtmb3IoaSBpbiBlKXM9ZVtpXSx0W2ldIT09cyYmKEpbaV18fCFWLmZ4LnN0ZXBbaV0mJmlzTmFOKHBhcnNlRmxvYXQocykpfHwobltpXT1zKSk7cmV0dXJuIG59KHRoaXMuc3RhcnQsdGhpcy5lbmQpLHRoaXN9KSxpLmF0dHIoXCJjbGFzc1wiLHQpLGU9ZS5tYXAoZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9Vi5EZWZlcnJlZCgpLGk9Vi5leHRlbmQoe30sbyx7cXVldWU6ITEsY29tcGxldGU6ZnVuY3Rpb24oKXtlLnJlc29sdmUodCl9fSk7cmV0dXJuIHRoaXMuZWwuYW5pbWF0ZSh0aGlzLmRpZmYsaSksZS5wcm9taXNlKCl9KSxWLndoZW4uYXBwbHkoVixlLmdldCgpKS5kb25lKGZ1bmN0aW9uKCl7cygpLFYuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsO1YuZWFjaCh0aGlzLmRpZmYsZnVuY3Rpb24odCl7ZS5jc3ModCxcIlwiKX0pfSksby5jb21wbGV0ZS5jYWxsKGlbMF0pfSl9KX0sVi5mbi5leHRlbmQoe2FkZENsYXNzOihHPVYuZm4uYWRkQ2xhc3MsZnVuY3Rpb24odCxlLGkscyl7cmV0dXJuIGU/Vi5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse2FkZDp0fSxlLGkscyk6Ry5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxyZW1vdmVDbGFzczooJD1WLmZuLnJlbW92ZUNsYXNzLGZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiAxPGFyZ3VtZW50cy5sZW5ndGg/Vi5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse3JlbW92ZTp0fSxlLGkscyk6JC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSx0b2dnbGVDbGFzczooWD1WLmZuLnRvZ2dsZUNsYXNzLGZ1bmN0aW9uKHQsZSxpLHMsbil7cmV0dXJuXCJib29sZWFuXCI9PXR5cGVvZiBlfHx2b2lkIDA9PT1lP2k/Vi5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMsZT97YWRkOnR9OntyZW1vdmU6dH0saSxzLG4pOlguYXBwbHkodGhpcyxhcmd1bWVudHMpOlYuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHt0b2dnbGU6dH0sZSxpLHMpfSksc3dpdGNoQ2xhc3M6ZnVuY3Rpb24odCxlLGkscyxuKXtyZXR1cm4gVi5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse2FkZDplLHJlbW92ZTp0fSxpLHMsbil9fSksVi5leHByJiZWLmV4cHIucHNldWRvcyYmVi5leHByLnBzZXVkb3MuYW5pbWF0ZWQmJihWLmV4cHIucHNldWRvcy5hbmltYXRlZD0oWj1WLmV4cHIucHNldWRvcy5hbmltYXRlZCxmdW5jdGlvbih0KXtyZXR1cm4hIVYodCkuZGF0YShhdCl8fFoodCl9KSksITEhPT1WLnVpQmFja0NvbXBhdCYmVi5leHRlbmQoVi5lZmZlY3RzLHtzYXZlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPTAscz1lLmxlbmd0aDtpPHM7aSsrKW51bGwhPT1lW2ldJiZ0LmRhdGEobnQrZVtpXSx0WzBdLnN0eWxlW2VbaV1dKX0scmVzdG9yZTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaSxzPTAsbj1lLmxlbmd0aDtzPG47cysrKW51bGwhPT1lW3NdJiYoaT10LmRhdGEobnQrZVtzXSksdC5jc3MoZVtzXSxpKSl9LHNldE1vZGU6ZnVuY3Rpb24odCxlKXtyZXR1cm5cInRvZ2dsZVwiPT09ZSYmKGU9dC5pcyhcIjpoaWRkZW5cIik/XCJzaG93XCI6XCJoaWRlXCIpLGV9LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oaSl7aWYoaS5wYXJlbnQoKS5pcyhcIi51aS1lZmZlY3RzLXdyYXBwZXJcIikpcmV0dXJuIGkucGFyZW50KCk7dmFyIHM9e3dpZHRoOmkub3V0ZXJXaWR0aCghMCksaGVpZ2h0Omkub3V0ZXJIZWlnaHQoITApLGZsb2F0OmkuY3NzKFwiZmxvYXRcIil9LHQ9VihcIjxkaXY+PC9kaXY+XCIpLmFkZENsYXNzKFwidWktZWZmZWN0cy13cmFwcGVyXCIpLmNzcyh7Zm9udFNpemU6XCIxMDAlXCIsYmFja2dyb3VuZDpcInRyYW5zcGFyZW50XCIsYm9yZGVyOlwibm9uZVwiLG1hcmdpbjowLHBhZGRpbmc6MH0pLGU9e3dpZHRoOmkud2lkdGgoKSxoZWlnaHQ6aS5oZWlnaHQoKX0sbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3RyeXtuLmlkfWNhdGNoKHQpe249ZG9jdW1lbnQuYm9keX1yZXR1cm4gaS53cmFwKHQpLGlbMF0hPT1uJiYhVi5jb250YWlucyhpWzBdLG4pfHxWKG4pLnRyaWdnZXIoXCJmb2N1c1wiKSx0PWkucGFyZW50KCksXCJzdGF0aWNcIj09PWkuY3NzKFwicG9zaXRpb25cIik/KHQuY3NzKHtwb3NpdGlvbjpcInJlbGF0aXZlXCJ9KSxpLmNzcyh7cG9zaXRpb246XCJyZWxhdGl2ZVwifSkpOihWLmV4dGVuZChzLHtwb3NpdGlvbjppLmNzcyhcInBvc2l0aW9uXCIpLHpJbmRleDppLmNzcyhcInotaW5kZXhcIil9KSxWLmVhY2goW1widG9wXCIsXCJsZWZ0XCIsXCJib3R0b21cIixcInJpZ2h0XCJdLGZ1bmN0aW9uKHQsZSl7c1tlXT1pLmNzcyhlKSxpc05hTihwYXJzZUludChzW2VdLDEwKSkmJihzW2VdPVwiYXV0b1wiKX0pLGkuY3NzKHtwb3NpdGlvbjpcInJlbGF0aXZlXCIsdG9wOjAsbGVmdDowLHJpZ2h0OlwiYXV0b1wiLGJvdHRvbTpcImF1dG9cIn0pKSxpLmNzcyhlKSx0LmNzcyhzKS5zaG93KCl9LHJlbW92ZVdyYXBwZXI6ZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtyZXR1cm4gdC5wYXJlbnQoKS5pcyhcIi51aS1lZmZlY3RzLXdyYXBwZXJcIikmJih0LnBhcmVudCgpLnJlcGxhY2VXaXRoKHQpLHRbMF0hPT1lJiYhVi5jb250YWlucyh0WzBdLGUpfHxWKGUpLnRyaWdnZXIoXCJmb2N1c1wiKSksdH19KSxWLmV4dGVuZChWLmVmZmVjdHMse3ZlcnNpb246XCIxLjEzLjJcIixkZWZpbmU6ZnVuY3Rpb24odCxlLGkpe3JldHVybiBpfHwoaT1lLGU9XCJlZmZlY3RcIiksVi5lZmZlY3RzLmVmZmVjdFt0XT1pLFYuZWZmZWN0cy5lZmZlY3RbdF0ubW9kZT1lLGl9LHNjYWxlZERpbWVuc2lvbnM6ZnVuY3Rpb24odCxlLGkpe2lmKDA9PT1lKXJldHVybntoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTt2YXIgcz1cImhvcml6b250YWxcIiE9PWk/KGV8fDEwMCkvMTAwOjEsZT1cInZlcnRpY2FsXCIhPT1pPyhlfHwxMDApLzEwMDoxO3JldHVybntoZWlnaHQ6dC5oZWlnaHQoKSplLHdpZHRoOnQud2lkdGgoKSpzLG91dGVySGVpZ2h0OnQub3V0ZXJIZWlnaHQoKSplLG91dGVyV2lkdGg6dC5vdXRlcldpZHRoKCkqc319LGNsaXBUb0JveDpmdW5jdGlvbih0KXtyZXR1cm57d2lkdGg6dC5jbGlwLnJpZ2h0LXQuY2xpcC5sZWZ0LGhlaWdodDp0LmNsaXAuYm90dG9tLXQuY2xpcC50b3AsbGVmdDp0LmNsaXAubGVmdCx0b3A6dC5jbGlwLnRvcH19LHVuc2hpZnQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXQucXVldWUoKTsxPGUmJnMuc3BsaWNlLmFwcGx5KHMsWzEsMF0uY29uY2F0KHMuc3BsaWNlKGUsaSkpKSx0LmRlcXVldWUoKX0sc2F2ZVN0eWxlOmZ1bmN0aW9uKHQpe3QuZGF0YShvdCx0WzBdLnN0eWxlLmNzc1RleHQpfSxyZXN0b3JlU3R5bGU6ZnVuY3Rpb24odCl7dFswXS5zdHlsZS5jc3NUZXh0PXQuZGF0YShvdCl8fFwiXCIsdC5yZW1vdmVEYXRhKG90KX0sbW9kZTpmdW5jdGlvbih0LGUpe3Q9dC5pcyhcIjpoaWRkZW5cIik7cmV0dXJuXCJ0b2dnbGVcIj09PWUmJihlPXQ/XCJzaG93XCI6XCJoaWRlXCIpLCh0P1wiaGlkZVwiPT09ZTpcInNob3dcIj09PWUpJiYoZT1cIm5vbmVcIiksZX0sZ2V0QmFzZWxpbmU6ZnVuY3Rpb24odCxlKXt2YXIgaSxzO3N3aXRjaCh0WzBdKXtjYXNlXCJ0b3BcIjppPTA7YnJlYWs7Y2FzZVwibWlkZGxlXCI6aT0uNTticmVhaztjYXNlXCJib3R0b21cIjppPTE7YnJlYWs7ZGVmYXVsdDppPXRbMF0vZS5oZWlnaHR9c3dpdGNoKHRbMV0pe2Nhc2VcImxlZnRcIjpzPTA7YnJlYWs7Y2FzZVwiY2VudGVyXCI6cz0uNTticmVhaztjYXNlXCJyaWdodFwiOnM9MTticmVhaztkZWZhdWx0OnM9dFsxXS9lLndpZHRofXJldHVybnt4OnMseTppfX0sY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCl7dmFyIGUsaT10LmNzcyhcInBvc2l0aW9uXCIpLHM9dC5wb3NpdGlvbigpO3JldHVybiB0LmNzcyh7bWFyZ2luVG9wOnQuY3NzKFwibWFyZ2luVG9wXCIpLG1hcmdpbkJvdHRvbTp0LmNzcyhcIm1hcmdpbkJvdHRvbVwiKSxtYXJnaW5MZWZ0OnQuY3NzKFwibWFyZ2luTGVmdFwiKSxtYXJnaW5SaWdodDp0LmNzcyhcIm1hcmdpblJpZ2h0XCIpfSkub3V0ZXJXaWR0aCh0Lm91dGVyV2lkdGgoKSkub3V0ZXJIZWlnaHQodC5vdXRlckhlaWdodCgpKSwvXihzdGF0aWN8cmVsYXRpdmUpLy50ZXN0KGkpJiYoaT1cImFic29sdXRlXCIsZT1WKFwiPFwiK3RbMF0ubm9kZU5hbWUrXCI+XCIpLmluc2VydEFmdGVyKHQpLmNzcyh7ZGlzcGxheTovXihpbmxpbmV8cnVieSkvLnRlc3QodC5jc3MoXCJkaXNwbGF5XCIpKT9cImlubGluZS1ibG9ja1wiOlwiYmxvY2tcIix2aXNpYmlsaXR5OlwiaGlkZGVuXCIsbWFyZ2luVG9wOnQuY3NzKFwibWFyZ2luVG9wXCIpLG1hcmdpbkJvdHRvbTp0LmNzcyhcIm1hcmdpbkJvdHRvbVwiKSxtYXJnaW5MZWZ0OnQuY3NzKFwibWFyZ2luTGVmdFwiKSxtYXJnaW5SaWdodDp0LmNzcyhcIm1hcmdpblJpZ2h0XCIpLGZsb2F0OnQuY3NzKFwiZmxvYXRcIil9KS5vdXRlcldpZHRoKHQub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodCh0Lm91dGVySGVpZ2h0KCkpLmFkZENsYXNzKFwidWktZWZmZWN0cy1wbGFjZWhvbGRlclwiKSx0LmRhdGEobnQrXCJwbGFjZWhvbGRlclwiLGUpKSx0LmNzcyh7cG9zaXRpb246aSxsZWZ0OnMubGVmdCx0b3A6cy50b3B9KSxlfSxyZW1vdmVQbGFjZWhvbGRlcjpmdW5jdGlvbih0KXt2YXIgZT1udCtcInBsYWNlaG9sZGVyXCIsaT10LmRhdGEoZSk7aSYmKGkucmVtb3ZlKCksdC5yZW1vdmVEYXRhKGUpKX0sY2xlYW5VcDpmdW5jdGlvbih0KXtWLmVmZmVjdHMucmVzdG9yZVN0eWxlKHQpLFYuZWZmZWN0cy5yZW1vdmVQbGFjZWhvbGRlcih0KX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihzLHQsbixvKXtyZXR1cm4gbz1vfHx7fSxWLmVhY2godCxmdW5jdGlvbih0LGUpe3ZhciBpPXMuY3NzVW5pdChlKTswPGlbMF0mJihvW2VdPWlbMF0qbitpWzFdKX0pLG99fSksVi5mbi5leHRlbmQoe2VmZmVjdDpmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9Vih0aGlzKSxpPVYuZWZmZWN0cy5tb2RlKGUscil8fG87ZS5kYXRhKGF0LCEwKSxsLnB1c2goaSksbyYmKFwic2hvd1wiPT09aXx8aT09PW8mJlwiaGlkZVwiPT09aSkmJmUuc2hvdygpLG8mJlwibm9uZVwiPT09aXx8Vi5lZmZlY3RzLnNhdmVTdHlsZShlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiZ0KCl9dmFyIHM9bHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49Vi5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF0sbz1uLm1vZGUsZT1zLnF1ZXVlLGk9ZXx8XCJmeFwiLGE9cy5jb21wbGV0ZSxyPXMubW9kZSxsPVtdO3JldHVybiBWLmZ4Lm9mZnx8IW4/cj90aGlzW3JdKHMuZHVyYXRpb24sYSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7YSYmYS5jYWxsKHRoaXMpfSk6ITE9PT1lP3RoaXMuZWFjaCh0KS5lYWNoKGgpOnRoaXMucXVldWUoaSx0KS5xdWV1ZShpLGgpO2Z1bmN0aW9uIGgodCl7dmFyIGU9Vih0aGlzKTtmdW5jdGlvbiBpKCl7XCJmdW5jdGlvblwiPT10eXBlb2YgYSYmYS5jYWxsKGVbMF0pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQmJnQoKX1zLm1vZGU9bC5zaGlmdCgpLCExPT09Vi51aUJhY2tDb21wYXR8fG8/XCJub25lXCI9PT1zLm1vZGU/KGVbcl0oKSxpKCkpOm4uY2FsbChlWzBdLHMsZnVuY3Rpb24oKXtlLnJlbW92ZURhdGEoYXQpLFYuZWZmZWN0cy5jbGVhblVwKGUpLFwiaGlkZVwiPT09cy5tb2RlJiZlLmhpZGUoKSxpKCl9KTooZS5pcyhcIjpoaWRkZW5cIik/XCJoaWRlXCI9PT1yOlwic2hvd1wiPT09cik/KGVbcl0oKSxpKCkpOm4uY2FsbChlWzBdLHMsaSl9fSxzaG93OihpdD1WLmZuLnNob3csZnVuY3Rpb24odCl7aWYoaHQodCkpcmV0dXJuIGl0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0PWx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdC5tb2RlPVwic2hvd1wiLHRoaXMuZWZmZWN0LmNhbGwodGhpcyx0KX0pLGhpZGU6KGV0PVYuZm4uaGlkZSxmdW5jdGlvbih0KXtpZihodCh0KSlyZXR1cm4gZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Q9bHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0Lm1vZGU9XCJoaWRlXCIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLHQpfSksdG9nZ2xlOih0dD1WLmZuLnRvZ2dsZSxmdW5jdGlvbih0KXtpZihodCh0KXx8XCJib29sZWFuXCI9PXR5cGVvZiB0KXJldHVybiB0dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dD1sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHQubW9kZT1cInRvZ2dsZVwiLHRoaXMuZWZmZWN0LmNhbGwodGhpcyx0KX0pLGNzc1VuaXQ6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5jc3ModCkscz1bXTtyZXR1cm4gVi5lYWNoKFtcImVtXCIsXCJweFwiLFwiJVwiLFwicHRcIl0sZnVuY3Rpb24odCxlKXswPGkuaW5kZXhPZihlKSYmKHM9W3BhcnNlRmxvYXQoaSksZV0pfSksc30sY3NzQ2xpcDpmdW5jdGlvbih0KXtyZXR1cm4gdD90aGlzLmNzcyhcImNsaXBcIixcInJlY3QoXCIrdC50b3ArXCJweCBcIit0LnJpZ2h0K1wicHggXCIrdC5ib3R0b20rXCJweCBcIit0LmxlZnQrXCJweClcIik6Y3QodGhpcy5jc3MoXCJjbGlwXCIpLHRoaXMpfSx0cmFuc2ZlcjpmdW5jdGlvbih0LGUpe3ZhciBpPVYodGhpcykscz1WKHQudG8pLG49XCJmaXhlZFwiPT09cy5jc3MoXCJwb3NpdGlvblwiKSxvPVYoXCJib2R5XCIpLGE9bj9vLnNjcm9sbFRvcCgpOjAscj1uP28uc2Nyb2xsTGVmdCgpOjAsbz1zLm9mZnNldCgpLG89e3RvcDpvLnRvcC1hLGxlZnQ6by5sZWZ0LXIsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKX0scz1pLm9mZnNldCgpLGw9VihcIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PlwiKTtsLmFwcGVuZFRvKFwiYm9keVwiKS5hZGRDbGFzcyh0LmNsYXNzTmFtZSkuY3NzKHt0b3A6cy50b3AtYSxsZWZ0OnMubGVmdC1yLGhlaWdodDppLmlubmVySGVpZ2h0KCksd2lkdGg6aS5pbm5lcldpZHRoKCkscG9zaXRpb246bj9cImZpeGVkXCI6XCJhYnNvbHV0ZVwifSkuYW5pbWF0ZShvLHQuZHVyYXRpb24sdC5lYXNpbmcsZnVuY3Rpb24oKXtsLnJlbW92ZSgpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUoKX0pfX0pLFYuZnguc3RlcC5jbGlwPWZ1bmN0aW9uKHQpe3QuY2xpcEluaXR8fCh0LnN0YXJ0PVYodC5lbGVtKS5jc3NDbGlwKCksXCJzdHJpbmdcIj09dHlwZW9mIHQuZW5kJiYodC5lbmQ9Y3QodC5lbmQsdC5lbGVtKSksdC5jbGlwSW5pdD0hMCksVih0LmVsZW0pLmNzc0NsaXAoe3RvcDp0LnBvcyoodC5lbmQudG9wLXQuc3RhcnQudG9wKSt0LnN0YXJ0LnRvcCxyaWdodDp0LnBvcyoodC5lbmQucmlnaHQtdC5zdGFydC5yaWdodCkrdC5zdGFydC5yaWdodCxib3R0b206dC5wb3MqKHQuZW5kLmJvdHRvbS10LnN0YXJ0LmJvdHRvbSkrdC5zdGFydC5ib3R0b20sbGVmdDp0LnBvcyoodC5lbmQubGVmdC10LnN0YXJ0LmxlZnQpK3Quc3RhcnQubGVmdH0pfSxzdD17fSxWLmVhY2goW1wiUXVhZFwiLFwiQ3ViaWNcIixcIlF1YXJ0XCIsXCJRdWludFwiLFwiRXhwb1wiXSxmdW5jdGlvbihlLHQpe3N0W3RdPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LGUrMil9fSksVi5leHRlbmQoc3Qse1NpbmU6ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5jb3ModCpNYXRoLlBJLzIpfSxDaXJjOmZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguc3FydCgxLXQqdCl9LEVsYXN0aWM6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10fHwxPT09dD90Oi1NYXRoLnBvdygyLDgqKHQtMSkpKk1hdGguc2luKCg4MCoodC0xKS03LjUpKk1hdGguUEkvMTUpfSxCYWNrOmZ1bmN0aW9uKHQpe3JldHVybiB0KnQqKDMqdC0yKX0sQm91bmNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPTQ7dDwoKGU9TWF0aC5wb3coMiwtLWkpKS0xKS8xMTspO3JldHVybiAxL01hdGgucG93KDQsMy1pKS03LjU2MjUqTWF0aC5wb3coKDMqZS0yKS8yMi10LDIpfX0pLFYuZWFjaChzdCxmdW5jdGlvbih0LGUpe1YuZWFzaW5nW1wiZWFzZUluXCIrdF09ZSxWLmVhc2luZ1tcImVhc2VPdXRcIit0XT1mdW5jdGlvbih0KXtyZXR1cm4gMS1lKDEtdCl9LFYuZWFzaW5nW1wiZWFzZUluT3V0XCIrdF09ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/ZSgyKnQpLzI6MS1lKC0yKnQrMikvMn19KTtZPVYuZWZmZWN0cyxWLmVmZmVjdHMuZGVmaW5lKFwiYmxpbmRcIixcImhpZGVcIixmdW5jdGlvbih0LGUpe3ZhciBpPXt1cDpbXCJib3R0b21cIixcInRvcFwiXSx2ZXJ0aWNhbDpbXCJib3R0b21cIixcInRvcFwiXSxkb3duOltcInRvcFwiLFwiYm90dG9tXCJdLGxlZnQ6W1wicmlnaHRcIixcImxlZnRcIl0saG9yaXpvbnRhbDpbXCJyaWdodFwiLFwibGVmdFwiXSxyaWdodDpbXCJsZWZ0XCIsXCJyaWdodFwiXX0scz1WKHRoaXMpLG49dC5kaXJlY3Rpb258fFwidXBcIixvPXMuY3NzQ2xpcCgpLGE9e2NsaXA6Vi5leHRlbmQoe30sbyl9LHI9Vi5lZmZlY3RzLmNyZWF0ZVBsYWNlaG9sZGVyKHMpO2EuY2xpcFtpW25dWzBdXT1hLmNsaXBbaVtuXVsxXV0sXCJzaG93XCI9PT10Lm1vZGUmJihzLmNzc0NsaXAoYS5jbGlwKSxyJiZyLmNzcyhWLmVmZmVjdHMuY2xpcFRvQm94KGEpKSxhLmNsaXA9byksciYmci5hbmltYXRlKFYuZWZmZWN0cy5jbGlwVG9Cb3goYSksdC5kdXJhdGlvbix0LmVhc2luZykscy5hbmltYXRlKGEse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmV9KX0pLFYuZWZmZWN0cy5kZWZpbmUoXCJib3VuY2VcIixmdW5jdGlvbih0LGUpe3ZhciBpLHMsbj1WKHRoaXMpLG89dC5tb2RlLGE9XCJoaWRlXCI9PT1vLHI9XCJzaG93XCI9PT1vLGw9dC5kaXJlY3Rpb258fFwidXBcIixoPXQuZGlzdGFuY2UsYz10LnRpbWVzfHw1LG89MipjKyhyfHxhPzE6MCksdT10LmR1cmF0aW9uL28sZD10LmVhc2luZyxwPVwidXBcIj09PWx8fFwiZG93blwiPT09bD9cInRvcFwiOlwibGVmdFwiLGY9XCJ1cFwiPT09bHx8XCJsZWZ0XCI9PT1sLGc9MCx0PW4ucXVldWUoKS5sZW5ndGg7Zm9yKFYuZWZmZWN0cy5jcmVhdGVQbGFjZWhvbGRlcihuKSxsPW4uY3NzKHApLGg9aHx8bltcInRvcFwiPT1wP1wib3V0ZXJIZWlnaHRcIjpcIm91dGVyV2lkdGhcIl0oKS8zLHImJigocz17b3BhY2l0eToxfSlbcF09bCxuLmNzcyhcIm9wYWNpdHlcIiwwKS5jc3MocCxmPzIqLWg6MipoKS5hbmltYXRlKHMsdSxkKSksYSYmKGgvPU1hdGgucG93KDIsYy0xKSksKHM9e30pW3BdPWw7ZzxjO2crKykoaT17fSlbcF09KGY/XCItPVwiOlwiKz1cIikraCxuLmFuaW1hdGUoaSx1LGQpLmFuaW1hdGUocyx1LGQpLGg9YT8yKmg6aC8yO2EmJigoaT17b3BhY2l0eTowfSlbcF09KGY/XCItPVwiOlwiKz1cIikraCxuLmFuaW1hdGUoaSx1LGQpKSxuLnF1ZXVlKGUpLFYuZWZmZWN0cy51bnNoaWZ0KG4sdCwxK28pfSksVi5lZmZlY3RzLmRlZmluZShcImNsaXBcIixcImhpZGVcIixmdW5jdGlvbih0LGUpe3ZhciBpPXt9LHM9Vih0aGlzKSxuPXQuZGlyZWN0aW9ufHxcInZlcnRpY2FsXCIsbz1cImJvdGhcIj09PW4sYT1vfHxcImhvcml6b250YWxcIj09PW4sbz1vfHxcInZlcnRpY2FsXCI9PT1uLG49cy5jc3NDbGlwKCk7aS5jbGlwPXt0b3A6bz8obi5ib3R0b20tbi50b3ApLzI6bi50b3AscmlnaHQ6YT8obi5yaWdodC1uLmxlZnQpLzI6bi5yaWdodCxib3R0b206bz8obi5ib3R0b20tbi50b3ApLzI6bi5ib3R0b20sbGVmdDphPyhuLnJpZ2h0LW4ubGVmdCkvMjpuLmxlZnR9LFYuZWZmZWN0cy5jcmVhdGVQbGFjZWhvbGRlcihzKSxcInNob3dcIj09PXQubW9kZSYmKHMuY3NzQ2xpcChpLmNsaXApLGkuY2xpcD1uKSxzLmFuaW1hdGUoaSx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6ZX0pfSksVi5lZmZlY3RzLmRlZmluZShcImRyb3BcIixcImhpZGVcIixmdW5jdGlvbih0LGUpe3ZhciBpPVYodGhpcykscz1cInNob3dcIj09PXQubW9kZSxuPXQuZGlyZWN0aW9ufHxcImxlZnRcIixvPVwidXBcIj09PW58fFwiZG93blwiPT09bj9cInRvcFwiOlwibGVmdFwiLGE9XCJ1cFwiPT09bnx8XCJsZWZ0XCI9PT1uP1wiLT1cIjpcIis9XCIscj1cIis9XCI9PWE/XCItPVwiOlwiKz1cIixsPXtvcGFjaXR5OjB9O1YuZWZmZWN0cy5jcmVhdGVQbGFjZWhvbGRlcihpKSxuPXQuZGlzdGFuY2V8fGlbXCJ0b3BcIj09bz9cIm91dGVySGVpZ2h0XCI6XCJvdXRlcldpZHRoXCJdKCEwKS8yLGxbb109YStuLHMmJihpLmNzcyhsKSxsW29dPXIrbixsLm9wYWNpdHk9MSksaS5hbmltYXRlKGwse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmV9KX0pLFYuZWZmZWN0cy5kZWZpbmUoXCJleHBsb2RlXCIsXCJoaWRlXCIsZnVuY3Rpb24odCxlKXt2YXIgaSxzLG4sbyxhLHIsbD10LnBpZWNlcz9NYXRoLnJvdW5kKE1hdGguc3FydCh0LnBpZWNlcykpOjMsaD1sLGM9Vih0aGlzKSx1PVwic2hvd1wiPT09dC5tb2RlLGQ9Yy5zaG93KCkuY3NzKFwidmlzaWJpbGl0eVwiLFwiaGlkZGVuXCIpLm9mZnNldCgpLHA9TWF0aC5jZWlsKGMub3V0ZXJXaWR0aCgpL2gpLGY9TWF0aC5jZWlsKGMub3V0ZXJIZWlnaHQoKS9sKSxnPVtdO2Z1bmN0aW9uIG0oKXtnLnB1c2godGhpcyksZy5sZW5ndGg9PT1sKmgmJihjLmNzcyh7dmlzaWJpbGl0eTpcInZpc2libGVcIn0pLFYoZykucmVtb3ZlKCksZSgpKX1mb3IoaT0wO2k8bDtpKyspZm9yKG89ZC50b3AraSpmLHI9aS0obC0xKS8yLHM9MDtzPGg7cysrKW49ZC5sZWZ0K3MqcCxhPXMtKGgtMSkvMixjLmNsb25lKCkuYXBwZW5kVG8oXCJib2R5XCIpLndyYXAoXCI8ZGl2PjwvZGl2PlwiKS5jc3Moe3Bvc2l0aW9uOlwiYWJzb2x1dGVcIix2aXNpYmlsaXR5OlwidmlzaWJsZVwiLGxlZnQ6LXMqcCx0b3A6LWkqZn0pLnBhcmVudCgpLmFkZENsYXNzKFwidWktZWZmZWN0cy1leHBsb2RlXCIpLmNzcyh7cG9zaXRpb246XCJhYnNvbHV0ZVwiLG92ZXJmbG93OlwiaGlkZGVuXCIsd2lkdGg6cCxoZWlnaHQ6ZixsZWZ0Om4rKHU/YSpwOjApLHRvcDpvKyh1P3IqZjowKSxvcGFjaXR5OnU/MDoxfSkuYW5pbWF0ZSh7bGVmdDpuKyh1PzA6YSpwKSx0b3A6bysodT8wOnIqZiksb3BhY2l0eTp1PzE6MH0sdC5kdXJhdGlvbnx8NTAwLHQuZWFzaW5nLG0pfSksVi5lZmZlY3RzLmRlZmluZShcImZhZGVcIixcInRvZ2dsZVwiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9XCJzaG93XCI9PT10Lm1vZGU7Vih0aGlzKS5jc3MoXCJvcGFjaXR5XCIsaT8wOjEpLmFuaW1hdGUoe29wYWNpdHk6aT8xOjB9LHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTplfSl9KSxWLmVmZmVjdHMuZGVmaW5lKFwiZm9sZFwiLFwiaGlkZVwiLGZ1bmN0aW9uKGUsdCl7dmFyIGk9Vih0aGlzKSxzPWUubW9kZSxuPVwic2hvd1wiPT09cyxvPVwiaGlkZVwiPT09cyxhPWUuc2l6ZXx8MTUscj0vKFswLTldKyklLy5leGVjKGEpLGw9ISFlLmhvcml6Rmlyc3Q/W1wicmlnaHRcIixcImJvdHRvbVwiXTpbXCJib3R0b21cIixcInJpZ2h0XCJdLGg9ZS5kdXJhdGlvbi8yLGM9Vi5lZmZlY3RzLmNyZWF0ZVBsYWNlaG9sZGVyKGkpLHU9aS5jc3NDbGlwKCksZD17Y2xpcDpWLmV4dGVuZCh7fSx1KX0scD17Y2xpcDpWLmV4dGVuZCh7fSx1KX0sZj1bdVtsWzBdXSx1W2xbMV1dXSxzPWkucXVldWUoKS5sZW5ndGg7ciYmKGE9cGFyc2VJbnQoclsxXSwxMCkvMTAwKmZbbz8wOjFdKSxkLmNsaXBbbFswXV09YSxwLmNsaXBbbFswXV09YSxwLmNsaXBbbFsxXV09MCxuJiYoaS5jc3NDbGlwKHAuY2xpcCksYyYmYy5jc3MoVi5lZmZlY3RzLmNsaXBUb0JveChwKSkscC5jbGlwPXUpLGkucXVldWUoZnVuY3Rpb24odCl7YyYmYy5hbmltYXRlKFYuZWZmZWN0cy5jbGlwVG9Cb3goZCksaCxlLmVhc2luZykuYW5pbWF0ZShWLmVmZmVjdHMuY2xpcFRvQm94KHApLGgsZS5lYXNpbmcpLHQoKX0pLmFuaW1hdGUoZCxoLGUuZWFzaW5nKS5hbmltYXRlKHAsaCxlLmVhc2luZykucXVldWUodCksVi5lZmZlY3RzLnVuc2hpZnQoaSxzLDQpfSksVi5lZmZlY3RzLmRlZmluZShcImhpZ2hsaWdodFwiLFwic2hvd1wiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9Vih0aGlzKSxzPXtiYWNrZ3JvdW5kQ29sb3I6aS5jc3MoXCJiYWNrZ3JvdW5kQ29sb3JcIil9O1wiaGlkZVwiPT09dC5tb2RlJiYocy5vcGFjaXR5PTApLFYuZWZmZWN0cy5zYXZlU3R5bGUoaSksaS5jc3Moe2JhY2tncm91bmRJbWFnZTpcIm5vbmVcIixiYWNrZ3JvdW5kQ29sb3I6dC5jb2xvcnx8XCIjZmZmZjk5XCJ9KS5hbmltYXRlKHMse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmV9KX0pLFYuZWZmZWN0cy5kZWZpbmUoXCJzaXplXCIsZnVuY3Rpb24ocyxlKXt2YXIgbixpPVYodGhpcyksdD1bXCJmb250U2l6ZVwiXSxvPVtcImJvcmRlclRvcFdpZHRoXCIsXCJib3JkZXJCb3R0b21XaWR0aFwiLFwicGFkZGluZ1RvcFwiLFwicGFkZGluZ0JvdHRvbVwiXSxhPVtcImJvcmRlckxlZnRXaWR0aFwiLFwiYm9yZGVyUmlnaHRXaWR0aFwiLFwicGFkZGluZ0xlZnRcIixcInBhZGRpbmdSaWdodFwiXSxyPXMubW9kZSxsPVwiZWZmZWN0XCIhPT1yLGg9cy5zY2FsZXx8XCJib3RoXCIsYz1zLm9yaWdpbnx8W1wibWlkZGxlXCIsXCJjZW50ZXJcIl0sdT1pLmNzcyhcInBvc2l0aW9uXCIpLGQ9aS5wb3NpdGlvbigpLHA9Vi5lZmZlY3RzLnNjYWxlZERpbWVuc2lvbnMoaSksZj1zLmZyb218fHAsZz1zLnRvfHxWLmVmZmVjdHMuc2NhbGVkRGltZW5zaW9ucyhpLDApO1YuZWZmZWN0cy5jcmVhdGVQbGFjZWhvbGRlcihpKSxcInNob3dcIj09PXImJihyPWYsZj1nLGc9ciksbj17ZnJvbTp7eTpmLmhlaWdodC9wLmhlaWdodCx4OmYud2lkdGgvcC53aWR0aH0sdG86e3k6Zy5oZWlnaHQvcC5oZWlnaHQseDpnLndpZHRoL3Aud2lkdGh9fSxcImJveFwiIT09aCYmXCJib3RoXCIhPT1ofHwobi5mcm9tLnkhPT1uLnRvLnkmJihmPVYuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksbyxuLmZyb20ueSxmKSxnPVYuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksbyxuLnRvLnksZykpLG4uZnJvbS54IT09bi50by54JiYoZj1WLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLGEsbi5mcm9tLngsZiksZz1WLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLGEsbi50by54LGcpKSksXCJjb250ZW50XCIhPT1oJiZcImJvdGhcIiE9PWh8fG4uZnJvbS55IT09bi50by55JiYoZj1WLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLHQsbi5mcm9tLnksZiksZz1WLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLHQsbi50by55LGcpKSxjJiYoYz1WLmVmZmVjdHMuZ2V0QmFzZWxpbmUoYyxwKSxmLnRvcD0ocC5vdXRlckhlaWdodC1mLm91dGVySGVpZ2h0KSpjLnkrZC50b3AsZi5sZWZ0PShwLm91dGVyV2lkdGgtZi5vdXRlcldpZHRoKSpjLngrZC5sZWZ0LGcudG9wPShwLm91dGVySGVpZ2h0LWcub3V0ZXJIZWlnaHQpKmMueStkLnRvcCxnLmxlZnQ9KHAub3V0ZXJXaWR0aC1nLm91dGVyV2lkdGgpKmMueCtkLmxlZnQpLGRlbGV0ZSBmLm91dGVySGVpZ2h0LGRlbGV0ZSBmLm91dGVyV2lkdGgsaS5jc3MoZiksXCJjb250ZW50XCIhPT1oJiZcImJvdGhcIiE9PWh8fChvPW8uY29uY2F0KFtcIm1hcmdpblRvcFwiLFwibWFyZ2luQm90dG9tXCJdKS5jb25jYXQodCksYT1hLmNvbmNhdChbXCJtYXJnaW5MZWZ0XCIsXCJtYXJnaW5SaWdodFwiXSksaS5maW5kKFwiKlt3aWR0aF1cIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PVYodGhpcyksZT1WLmVmZmVjdHMuc2NhbGVkRGltZW5zaW9ucyh0KSxpPXtoZWlnaHQ6ZS5oZWlnaHQqbi5mcm9tLnksd2lkdGg6ZS53aWR0aCpuLmZyb20ueCxvdXRlckhlaWdodDplLm91dGVySGVpZ2h0Km4uZnJvbS55LG91dGVyV2lkdGg6ZS5vdXRlcldpZHRoKm4uZnJvbS54fSxlPXtoZWlnaHQ6ZS5oZWlnaHQqbi50by55LHdpZHRoOmUud2lkdGgqbi50by54LG91dGVySGVpZ2h0OmUuaGVpZ2h0Km4udG8ueSxvdXRlcldpZHRoOmUud2lkdGgqbi50by54fTtuLmZyb20ueSE9PW4udG8ueSYmKGk9Vi5lZmZlY3RzLnNldFRyYW5zaXRpb24odCxvLG4uZnJvbS55LGkpLGU9Vi5lZmZlY3RzLnNldFRyYW5zaXRpb24odCxvLG4udG8ueSxlKSksbi5mcm9tLnghPT1uLnRvLngmJihpPVYuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKHQsYSxuLmZyb20ueCxpKSxlPVYuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKHQsYSxuLnRvLngsZSkpLGwmJlYuZWZmZWN0cy5zYXZlU3R5bGUodCksdC5jc3MoaSksdC5hbmltYXRlKGUscy5kdXJhdGlvbixzLmVhc2luZyxmdW5jdGlvbigpe2wmJlYuZWZmZWN0cy5yZXN0b3JlU3R5bGUodCl9KX0pKSxpLmFuaW1hdGUoZyx7cXVldWU6ITEsZHVyYXRpb246cy5kdXJhdGlvbixlYXNpbmc6cy5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgdD1pLm9mZnNldCgpOzA9PT1nLm9wYWNpdHkmJmkuY3NzKFwib3BhY2l0eVwiLGYub3BhY2l0eSksbHx8KGkuY3NzKFwicG9zaXRpb25cIixcInN0YXRpY1wiPT09dT9cInJlbGF0aXZlXCI6dSkub2Zmc2V0KHQpLFYuZWZmZWN0cy5zYXZlU3R5bGUoaSkpLGUoKX19KX0pLFYuZWZmZWN0cy5kZWZpbmUoXCJzY2FsZVwiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9Vih0aGlzKSxzPXQubW9kZSxzPXBhcnNlSW50KHQucGVyY2VudCwxMCl8fCgwPT09cGFyc2VJbnQodC5wZXJjZW50LDEwKXx8XCJlZmZlY3RcIiE9PXM/MDoxMDApLHM9Vi5leHRlbmQoITAse2Zyb206Vi5lZmZlY3RzLnNjYWxlZERpbWVuc2lvbnMoaSksdG86Vi5lZmZlY3RzLnNjYWxlZERpbWVuc2lvbnMoaSxzLHQuZGlyZWN0aW9ufHxcImJvdGhcIiksb3JpZ2luOnQub3JpZ2lufHxbXCJtaWRkbGVcIixcImNlbnRlclwiXX0sdCk7dC5mYWRlJiYocy5mcm9tLm9wYWNpdHk9MSxzLnRvLm9wYWNpdHk9MCksVi5lZmZlY3RzLmVmZmVjdC5zaXplLmNhbGwodGhpcyxzLGUpfSksVi5lZmZlY3RzLmRlZmluZShcInB1ZmZcIixcImhpZGVcIixmdW5jdGlvbih0LGUpe3Q9Vi5leHRlbmQoITAse30sdCx7ZmFkZTohMCxwZXJjZW50OnBhcnNlSW50KHQucGVyY2VudCwxMCl8fDE1MH0pO1YuZWZmZWN0cy5lZmZlY3Quc2NhbGUuY2FsbCh0aGlzLHQsZSl9KSxWLmVmZmVjdHMuZGVmaW5lKFwicHVsc2F0ZVwiLFwic2hvd1wiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9Vih0aGlzKSxzPXQubW9kZSxuPVwic2hvd1wiPT09cyxzPW58fFwiaGlkZVwiPT09cyxvPTIqKHQudGltZXN8fDUpKyhzPzE6MCksYT10LmR1cmF0aW9uL28scj0wLGw9MSxzPWkucXVldWUoKS5sZW5ndGg7Zm9yKCFuJiZpLmlzKFwiOnZpc2libGVcIil8fChpLmNzcyhcIm9wYWNpdHlcIiwwKS5zaG93KCkscj0xKTtsPG87bCsrKWkuYW5pbWF0ZSh7b3BhY2l0eTpyfSxhLHQuZWFzaW5nKSxyPTEtcjtpLmFuaW1hdGUoe29wYWNpdHk6cn0sYSx0LmVhc2luZyksaS5xdWV1ZShlKSxWLmVmZmVjdHMudW5zaGlmdChpLHMsMStvKX0pLFYuZWZmZWN0cy5kZWZpbmUoXCJzaGFrZVwiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9MSxzPVYodGhpcyksbj10LmRpcmVjdGlvbnx8XCJsZWZ0XCIsbz10LmRpc3RhbmNlfHwyMCxhPXQudGltZXN8fDMscj0yKmErMSxsPU1hdGgucm91bmQodC5kdXJhdGlvbi9yKSxoPVwidXBcIj09PW58fFwiZG93blwiPT09bj9cInRvcFwiOlwibGVmdFwiLGM9XCJ1cFwiPT09bnx8XCJsZWZ0XCI9PT1uLHU9e30sZD17fSxwPXt9LG49cy5xdWV1ZSgpLmxlbmd0aDtmb3IoVi5lZmZlY3RzLmNyZWF0ZVBsYWNlaG9sZGVyKHMpLHVbaF09KGM/XCItPVwiOlwiKz1cIikrbyxkW2hdPShjP1wiKz1cIjpcIi09XCIpKzIqbyxwW2hdPShjP1wiLT1cIjpcIis9XCIpKzIqbyxzLmFuaW1hdGUodSxsLHQuZWFzaW5nKTtpPGE7aSsrKXMuYW5pbWF0ZShkLGwsdC5lYXNpbmcpLmFuaW1hdGUocCxsLHQuZWFzaW5nKTtzLmFuaW1hdGUoZCxsLHQuZWFzaW5nKS5hbmltYXRlKHUsbC8yLHQuZWFzaW5nKS5xdWV1ZShlKSxWLmVmZmVjdHMudW5zaGlmdChzLG4sMStyKX0pLFYuZWZmZWN0cy5kZWZpbmUoXCJzbGlkZVwiLFwic2hvd1wiLGZ1bmN0aW9uKHQsZSl7dmFyIGkscyxuPVYodGhpcyksbz17dXA6W1wiYm90dG9tXCIsXCJ0b3BcIl0sZG93bjpbXCJ0b3BcIixcImJvdHRvbVwiXSxsZWZ0OltcInJpZ2h0XCIsXCJsZWZ0XCJdLHJpZ2h0OltcImxlZnRcIixcInJpZ2h0XCJdfSxhPXQubW9kZSxyPXQuZGlyZWN0aW9ufHxcImxlZnRcIixsPVwidXBcIj09PXJ8fFwiZG93blwiPT09cj9cInRvcFwiOlwibGVmdFwiLGg9XCJ1cFwiPT09cnx8XCJsZWZ0XCI9PT1yLGM9dC5kaXN0YW5jZXx8bltcInRvcFwiPT1sP1wib3V0ZXJIZWlnaHRcIjpcIm91dGVyV2lkdGhcIl0oITApLHU9e307Vi5lZmZlY3RzLmNyZWF0ZVBsYWNlaG9sZGVyKG4pLGk9bi5jc3NDbGlwKCkscz1uLnBvc2l0aW9uKClbbF0sdVtsXT0oaD8tMToxKSpjK3MsdS5jbGlwPW4uY3NzQ2xpcCgpLHUuY2xpcFtvW3JdWzFdXT11LmNsaXBbb1tyXVswXV0sXCJzaG93XCI9PT1hJiYobi5jc3NDbGlwKHUuY2xpcCksbi5jc3MobCx1W2xdKSx1LmNsaXA9aSx1W2xdPXMpLG4uYW5pbWF0ZSh1LHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTplfSl9KTshMSE9PVYudWlCYWNrQ29tcGF0JiYoWT1WLmVmZmVjdHMuZGVmaW5lKFwidHJhbnNmZXJcIixmdW5jdGlvbih0LGUpe1YodGhpcykudHJhbnNmZXIodCxlKX0pKX0pO1xuaWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoXCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeVwiKTshZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgdD1qUXVlcnkuZm4uanF1ZXJ5LnNwbGl0KFwiIFwiKVswXS5zcGxpdChcIi5cIik7aWYodFswXTwyJiZ0WzFdPDl8fDE9PXRbMF0mJjk9PXRbMV0mJnRbMl08MXx8Mzx0WzBdKXRocm93IG5ldyBFcnJvcihcIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyLCBidXQgbG93ZXIgdGhhbiB2ZXJzaW9uIDRcIil9KCksZnVuY3Rpb24obyl7XCJ1c2Ugc3RyaWN0XCI7by5mbi5lbXVsYXRlVHJhbnNpdGlvbkVuZD1mdW5jdGlvbih0KXt2YXIgZT0hMSxpPXRoaXM7byh0aGlzKS5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixmdW5jdGlvbigpe2U9ITB9KTtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe2V8fG8oaSkudHJpZ2dlcihvLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpfSx0KSx0aGlzfSxvKGZ1bmN0aW9uKCl7by5zdXBwb3J0LnRyYW5zaXRpb249ZnVuY3Rpb24oKXt2YXIgdCxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJib290c3RyYXBcIiksaT17V2Via2l0VHJhbnNpdGlvbjpcIndlYmtpdFRyYW5zaXRpb25FbmRcIixNb3pUcmFuc2l0aW9uOlwidHJhbnNpdGlvbmVuZFwiLE9UcmFuc2l0aW9uOlwib1RyYW5zaXRpb25FbmQgb3RyYW5zaXRpb25lbmRcIix0cmFuc2l0aW9uOlwidHJhbnNpdGlvbmVuZFwifTtmb3IodCBpbiBpKWlmKHZvaWQgMCE9PWUuc3R5bGVbdF0pcmV0dXJue2VuZDppW3RdfTtyZXR1cm4hMX0oKSxvLnN1cHBvcnQudHJhbnNpdGlvbiYmKG8uZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQ9e2JpbmRUeXBlOm8uc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxkZWxlZ2F0ZVR5cGU6by5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLGhhbmRsZTpmdW5jdGlvbih0KXtpZihvKHQudGFyZ2V0KS5pcyh0aGlzKSlyZXR1cm4gdC5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSl9KX0oalF1ZXJ5KSxmdW5jdGlvbihzKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBhKHQpe3ModCkub24oXCJjbGlja1wiLGUsdGhpcy5jbG9zZSl9dmFyIGU9J1tkYXRhLWRpc21pc3M9XCJhbGVydFwiXSc7YS5WRVJTSU9OPVwiMy40LjFcIixhLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGEucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKHQpe3ZhciBlPXModGhpcyksaT1lLmF0dHIoXCJkYXRhLXRhcmdldFwiKTtpPVwiI1wiPT09KGk9aXx8KGk9ZS5hdHRyKFwiaHJlZlwiKSkmJmkucmVwbGFjZSgvLiooPz0jW15cXHNdKiQpLyxcIlwiKSk/W106aTt2YXIgbz1zKGRvY3VtZW50KS5maW5kKGkpO2Z1bmN0aW9uIG4oKXtvLmRldGFjaCgpLnRyaWdnZXIoXCJjbG9zZWQuYnMuYWxlcnRcIikucmVtb3ZlKCl9dCYmdC5wcmV2ZW50RGVmYXVsdCgpLG8ubGVuZ3RofHwobz1lLmNsb3Nlc3QoXCIuYWxlcnRcIikpLG8udHJpZ2dlcih0PXMuRXZlbnQoXCJjbG9zZS5icy5hbGVydFwiKSksdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KG8ucmVtb3ZlQ2xhc3MoXCJpblwiKSxzLnN1cHBvcnQudHJhbnNpdGlvbiYmby5oYXNDbGFzcyhcImZhZGVcIik/by5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixuKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhLlRSQU5TSVRJT05fRFVSQVRJT04pOm4oKSl9O3ZhciB0PXMuZm4uYWxlcnQ7cy5mbi5hbGVydD1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cyh0aGlzKSxlPXQuZGF0YShcImJzLmFsZXJ0XCIpO2V8fHQuZGF0YShcImJzLmFsZXJ0XCIsZT1uZXcgYSh0aGlzKSksXCJzdHJpbmdcIj09dHlwZW9mIGkmJmVbaV0uY2FsbCh0KX0pfSxzLmZuLmFsZXJ0LkNvbnN0cnVjdG9yPWEscy5mbi5hbGVydC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHMuZm4uYWxlcnQ9dCx0aGlzfSxzKGRvY3VtZW50KS5vbihcImNsaWNrLmJzLmFsZXJ0LmRhdGEtYXBpXCIsZSxhLnByb3RvdHlwZS5jbG9zZSl9KGpRdWVyeSksZnVuY3Rpb24ocyl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZnVuY3Rpb24odCxlKXt0aGlzLiRlbGVtZW50PXModCksdGhpcy5vcHRpb25zPXMuZXh0ZW5kKHt9LG4uREVGQVVMVFMsZSksdGhpcy5pc0xvYWRpbmc9ITF9O2Z1bmN0aW9uIGkobyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXModGhpcyksZT10LmRhdGEoXCJicy5idXR0b25cIiksaT1cIm9iamVjdFwiPT10eXBlb2YgbyYmbztlfHx0LmRhdGEoXCJicy5idXR0b25cIixlPW5ldyBuKHRoaXMsaSkpLFwidG9nZ2xlXCI9PW8/ZS50b2dnbGUoKTpvJiZlLnNldFN0YXRlKG8pfSl9bi5WRVJTSU9OPVwiMy40LjFcIixuLkRFRkFVTFRTPXtsb2FkaW5nVGV4dDpcImxvYWRpbmcuLi5cIn0sbi5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24odCl7dmFyIGU9XCJkaXNhYmxlZFwiLGk9dGhpcy4kZWxlbWVudCxvPWkuaXMoXCJpbnB1dFwiKT9cInZhbFwiOlwiaHRtbFwiLG49aS5kYXRhKCk7dCs9XCJUZXh0XCIsbnVsbD09bi5yZXNldFRleHQmJmkuZGF0YShcInJlc2V0VGV4dFwiLGlbb10oKSksc2V0VGltZW91dChzLnByb3h5KGZ1bmN0aW9uKCl7aVtvXSgobnVsbD09blt0XT90aGlzLm9wdGlvbnM6bilbdF0pLFwibG9hZGluZ1RleHRcIj09dD8odGhpcy5pc0xvYWRpbmc9ITAsaS5hZGRDbGFzcyhlKS5hdHRyKGUsZSkucHJvcChlLCEwKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxpLnJlbW92ZUNsYXNzKGUpLnJlbW92ZUF0dHIoZSkucHJvcChlLCExKSl9LHRoaXMpLDApfSxuLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt2YXIgdCxlPSEwLGk9dGhpcy4kZWxlbWVudC5jbG9zZXN0KCdbZGF0YS10b2dnbGU9XCJidXR0b25zXCJdJyk7aS5sZW5ndGg/KFwicmFkaW9cIj09KHQ9dGhpcy4kZWxlbWVudC5maW5kKFwiaW5wdXRcIikpLnByb3AoXCJ0eXBlXCIpPyh0LnByb3AoXCJjaGVja2VkXCIpJiYoZT0hMSksaS5maW5kKFwiLmFjdGl2ZVwiKS5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKSx0aGlzLiRlbGVtZW50LmFkZENsYXNzKFwiYWN0aXZlXCIpKTpcImNoZWNrYm94XCI9PXQucHJvcChcInR5cGVcIikmJih0LnByb3AoXCJjaGVja2VkXCIpIT09dGhpcy4kZWxlbWVudC5oYXNDbGFzcyhcImFjdGl2ZVwiKSYmKGU9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoXCJhY3RpdmVcIikpLHQucHJvcChcImNoZWNrZWRcIix0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwiYWN0aXZlXCIpKSxlJiZ0LnRyaWdnZXIoXCJjaGFuZ2VcIikpOih0aGlzLiRlbGVtZW50LmF0dHIoXCJhcmlhLXByZXNzZWRcIiwhdGhpcy4kZWxlbWVudC5oYXNDbGFzcyhcImFjdGl2ZVwiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcyhcImFjdGl2ZVwiKSl9O3ZhciB0PXMuZm4uYnV0dG9uO3MuZm4uYnV0dG9uPWkscy5mbi5idXR0b24uQ29uc3RydWN0b3I9bixzLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHMuZm4uYnV0dG9uPXQsdGhpc30scyhkb2N1bWVudCkub24oXCJjbGljay5icy5idXR0b24uZGF0YS1hcGlcIiwnW2RhdGEtdG9nZ2xlXj1cImJ1dHRvblwiXScsZnVuY3Rpb24odCl7dmFyIGU9cyh0LnRhcmdldCkuY2xvc2VzdChcIi5idG5cIik7aS5jYWxsKGUsXCJ0b2dnbGVcIikscyh0LnRhcmdldCkuaXMoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXSwgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJyl8fCh0LnByZXZlbnREZWZhdWx0KCksKGUuaXMoXCJpbnB1dCxidXR0b25cIik/ZTplLmZpbmQoXCJpbnB1dDp2aXNpYmxlLGJ1dHRvbjp2aXNpYmxlXCIpLmZpcnN0KCkpLnRyaWdnZXIoXCJmb2N1c1wiKSl9KS5vbihcImZvY3VzLmJzLmJ1dHRvbi5kYXRhLWFwaSBibHVyLmJzLmJ1dHRvbi5kYXRhLWFwaVwiLCdbZGF0YS10b2dnbGVePVwiYnV0dG9uXCJdJyxmdW5jdGlvbih0KXtzKHQudGFyZ2V0KS5jbG9zZXN0KFwiLmJ0blwiKS50b2dnbGVDbGFzcyhcImZvY3VzXCIsL15mb2N1cyhpbik/JC8udGVzdCh0LnR5cGUpKX0pfShqUXVlcnkpLGZ1bmN0aW9uKGgpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGQodCxlKXt0aGlzLiRlbGVtZW50PWgodCksdGhpcy4kaW5kaWNhdG9ycz10aGlzLiRlbGVtZW50LmZpbmQoXCIuY2Fyb3VzZWwtaW5kaWNhdG9yc1wiKSx0aGlzLm9wdGlvbnM9ZSx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbihcImtleWRvd24uYnMuY2Fyb3VzZWxcIixoLnByb3h5KHRoaXMua2V5ZG93bix0aGlzKSksXCJob3ZlclwiIT10aGlzLm9wdGlvbnMucGF1c2V8fFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fHRoaXMuJGVsZW1lbnQub24oXCJtb3VzZWVudGVyLmJzLmNhcm91c2VsXCIsaC5wcm94eSh0aGlzLnBhdXNlLHRoaXMpKS5vbihcIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWxcIixoLnByb3h5KHRoaXMuY3ljbGUsdGhpcykpfWZ1bmN0aW9uIG4obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PWgodGhpcyksZT10LmRhdGEoXCJicy5jYXJvdXNlbFwiKSxpPWguZXh0ZW5kKHt9LGQuREVGQVVMVFMsdC5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIG4mJm4pLG89XCJzdHJpbmdcIj09dHlwZW9mIG4/bjppLnNsaWRlO2V8fHQuZGF0YShcImJzLmNhcm91c2VsXCIsZT1uZXcgZCh0aGlzLGkpKSxcIm51bWJlclwiPT10eXBlb2Ygbj9lLnRvKG4pOm8/ZVtvXSgpOmkuaW50ZXJ2YWwmJmUucGF1c2UoKS5jeWNsZSgpfSl9ZC5WRVJTSU9OPVwiMy40LjFcIixkLlRSQU5TSVRJT05fRFVSQVRJT049NjAwLGQuREVGQVVMVFM9e2ludGVydmFsOjVlMyxwYXVzZTpcImhvdmVyXCIsd3JhcDohMCxrZXlib2FyZDohMH0sZC5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbih0KXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKHQud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn10LnByZXZlbnREZWZhdWx0KCl9fSxkLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbih0KXtyZXR1cm4gdHx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChoLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxkLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuJGl0ZW1zPXQucGFyZW50KCkuY2hpbGRyZW4oXCIuaXRlbVwiKSx0aGlzLiRpdGVtcy5pbmRleCh0fHx0aGlzLiRhY3RpdmUpfSxkLnByb3RvdHlwZS5nZXRJdGVtRm9yRGlyZWN0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5nZXRJdGVtSW5kZXgoZSk7aWYoKFwicHJldlwiPT10JiYwPT09aXx8XCJuZXh0XCI9PXQmJmk9PXRoaXMuJGl0ZW1zLmxlbmd0aC0xKSYmIXRoaXMub3B0aW9ucy53cmFwKXJldHVybiBlO3Q9KGkrKFwicHJldlwiPT10Py0xOjEpKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKHQpfSxkLnByb3RvdHlwZS50bz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZChcIi5pdGVtLmFjdGl2ZVwiKSk7aWYoISh0PnRoaXMuJGl0ZW1zLmxlbmd0aC0xfHx0PDApKXJldHVybiB0aGlzLnNsaWRpbmc/dGhpcy4kZWxlbWVudC5vbmUoXCJzbGlkLmJzLmNhcm91c2VsXCIsZnVuY3Rpb24oKXtlLnRvKHQpfSk6aT09dD90aGlzLnBhdXNlKCkuY3ljbGUoKTp0aGlzLnNsaWRlKGk8dD9cIm5leHRcIjpcInByZXZcIix0aGlzLiRpdGVtcy5lcSh0KSl9LGQucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKHQpe3JldHVybiB0fHwodGhpcy5wYXVzZWQ9ITApLHRoaXMuJGVsZW1lbnQuZmluZChcIi5uZXh0LCAucHJldlwiKS5sZW5ndGgmJmguc3VwcG9ydC50cmFuc2l0aW9uJiYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGguc3VwcG9ydC50cmFuc2l0aW9uLmVuZCksdGhpcy5jeWNsZSghMCkpLHRoaXMuaW50ZXJ2YWw9Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzfSxkLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYoIXRoaXMuc2xpZGluZylyZXR1cm4gdGhpcy5zbGlkZShcIm5leHRcIil9LGQucHJvdG90eXBlLnByZXY9ZnVuY3Rpb24oKXtpZighdGhpcy5zbGlkaW5nKXJldHVybiB0aGlzLnNsaWRlKFwicHJldlwiKX0sZC5wcm90b3R5cGUuc2xpZGU9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLiRlbGVtZW50LmZpbmQoXCIuaXRlbS5hY3RpdmVcIiksbz1lfHx0aGlzLmdldEl0ZW1Gb3JEaXJlY3Rpb24odCxpKSxuPXRoaXMuaW50ZXJ2YWwscz1cIm5leHRcIj09dD9cImxlZnRcIjpcInJpZ2h0XCIsYT10aGlzO2lmKG8uaGFzQ2xhc3MoXCJhY3RpdmVcIikpcmV0dXJuIHRoaXMuc2xpZGluZz0hMTt2YXIgcj1vWzBdLGU9aC5FdmVudChcInNsaWRlLmJzLmNhcm91c2VsXCIse3JlbGF0ZWRUYXJnZXQ6cixkaXJlY3Rpb246c30pO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihlKSwhZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dGhpcy5zbGlkaW5nPSEwLG4mJnRoaXMucGF1c2UoKSx0aGlzLiRpbmRpY2F0b3JzLmxlbmd0aCYmKHRoaXMuJGluZGljYXRvcnMuZmluZChcIi5hY3RpdmVcIikucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIiksKGU9aCh0aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKClbdGhpcy5nZXRJdGVtSW5kZXgobyldKSkmJmUuYWRkQ2xhc3MoXCJhY3RpdmVcIikpO3ZhciBsPWguRXZlbnQoXCJzbGlkLmJzLmNhcm91c2VsXCIse3JlbGF0ZWRUYXJnZXQ6cixkaXJlY3Rpb246c30pO3JldHVybiBoLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcyhcInNsaWRlXCIpPyhvLmFkZENsYXNzKHQpLFwib2JqZWN0XCI9PXR5cGVvZiBvJiZvLmxlbmd0aCYmb1swXS5vZmZzZXRXaWR0aCxpLmFkZENsYXNzKHMpLG8uYWRkQ2xhc3MocyksaS5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixmdW5jdGlvbigpe28ucmVtb3ZlQ2xhc3MoW3Qsc10uam9pbihcIiBcIikpLmFkZENsYXNzKFwiYWN0aXZlXCIpLGkucmVtb3ZlQ2xhc3MoW1wiYWN0aXZlXCIsc10uam9pbihcIiBcIikpLGEuc2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS4kZWxlbWVudC50cmlnZ2VyKGwpfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTikpOihpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpLG8uYWRkQ2xhc3MoXCJhY3RpdmVcIiksdGhpcy5zbGlkaW5nPSExLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihsKSksbiYmdGhpcy5jeWNsZSgpLHRoaXN9fTt2YXIgdD1oLmZuLmNhcm91c2VsO2Z1bmN0aW9uIGUodCl7dmFyIGU9aCh0aGlzKSxpPShpPWUuYXR0cihcImhyZWZcIikpJiZpLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sXCJcIiksbz1lLmF0dHIoXCJkYXRhLXRhcmdldFwiKXx8aTsoaT1oKGRvY3VtZW50KS5maW5kKG8pKS5oYXNDbGFzcyhcImNhcm91c2VsXCIpJiYobz1oLmV4dGVuZCh7fSxpLmRhdGEoKSxlLmRhdGEoKSksKGU9ZS5hdHRyKFwiZGF0YS1zbGlkZS10b1wiKSkmJihvLmludGVydmFsPSExKSxuLmNhbGwoaSxvKSxlJiZpLmRhdGEoXCJicy5jYXJvdXNlbFwiKS50byhlKSx0LnByZXZlbnREZWZhdWx0KCkpfWguZm4uY2Fyb3VzZWw9bixoLmZuLmNhcm91c2VsLkNvbnN0cnVjdG9yPWQsaC5mbi5jYXJvdXNlbC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGguZm4uY2Fyb3VzZWw9dCx0aGlzfSxoKGRvY3VtZW50KS5vbihcImNsaWNrLmJzLmNhcm91c2VsLmRhdGEtYXBpXCIsXCJbZGF0YS1zbGlkZV1cIixlKS5vbihcImNsaWNrLmJzLmNhcm91c2VsLmRhdGEtYXBpXCIsXCJbZGF0YS1zbGlkZS10b11cIixlKSxoKHdpbmRvdykub24oXCJsb2FkXCIsZnVuY3Rpb24oKXtoKCdbZGF0YS1yaWRlPVwiY2Fyb3VzZWxcIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9aCh0aGlzKTtuLmNhbGwodCx0LmRhdGEoKSl9KX0pfShqUXVlcnkpLGZ1bmN0aW9uKG4pe1widXNlIHN0cmljdFwiO3ZhciBzPWZ1bmN0aW9uKHQsZSl7dGhpcy4kZWxlbWVudD1uKHQpLHRoaXMub3B0aW9ucz1uLmV4dGVuZCh7fSxzLkRFRkFVTFRTLGUpLHRoaXMuJHRyaWdnZXI9bignW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnK3QuaWQrJ1wiXSxbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXRhcmdldD1cIiMnK3QuaWQrJ1wiXScpLHRoaXMudHJhbnNpdGlvbmluZz1udWxsLHRoaXMub3B0aW9ucy5wYXJlbnQ/dGhpcy4kcGFyZW50PXRoaXMuZ2V0UGFyZW50KCk6dGhpcy5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy4kZWxlbWVudCx0aGlzLiR0cmlnZ2VyKSx0aGlzLm9wdGlvbnMudG9nZ2xlJiZ0aGlzLnRvZ2dsZSgpfTtmdW5jdGlvbiBpKHQpe3ZhciBlPXQuYXR0cihcImRhdGEtdGFyZ2V0XCIpfHwoZT10LmF0dHIoXCJocmVmXCIpKSYmZS5yZXBsYWNlKC8uKig/PSNbXlxcc10rJCkvLFwiXCIpO3JldHVybiBuKGRvY3VtZW50KS5maW5kKGUpfWZ1bmN0aW9uIGEobyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4odGhpcyksZT10LmRhdGEoXCJicy5jb2xsYXBzZVwiKSxpPW4uZXh0ZW5kKHt9LHMuREVGQVVMVFMsdC5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIG8mJm8pOyFlJiZpLnRvZ2dsZSYmL3Nob3d8aGlkZS8udGVzdChvKSYmKGkudG9nZ2xlPSExKSxlfHx0LmRhdGEoXCJicy5jb2xsYXBzZVwiLGU9bmV3IHModGhpcyxpKSksXCJzdHJpbmdcIj09dHlwZW9mIG8mJmVbb10oKX0pfXMuVkVSU0lPTj1cIjMuNC4xXCIscy5UUkFOU0lUSU9OX0RVUkFUSU9OPTM1MCxzLkRFRkFVTFRTPXt0b2dnbGU6ITB9LHMucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwid2lkdGhcIik/XCJ3aWR0aFwiOlwiaGVpZ2h0XCJ9LHMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXtpZighdGhpcy50cmFuc2l0aW9uaW5nJiYhdGhpcy4kZWxlbWVudC5oYXNDbGFzcyhcImluXCIpKXt2YXIgdD10aGlzLiRwYXJlbnQmJnRoaXMuJHBhcmVudC5jaGlsZHJlbihcIi5wYW5lbFwiKS5jaGlsZHJlbihcIi5pbiwgLmNvbGxhcHNpbmdcIik7aWYoISh0JiZ0Lmxlbmd0aCYmKG89dC5kYXRhKFwiYnMuY29sbGFwc2VcIikpJiZvLnRyYW5zaXRpb25pbmcpKXt2YXIgZT1uLkV2ZW50KFwic2hvdy5icy5jb2xsYXBzZVwiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSksIWUuaXNEZWZhdWx0UHJldmVudGVkKCkpe3QmJnQubGVuZ3RoJiYoYS5jYWxsKHQsXCJoaWRlXCIpLG98fHQuZGF0YShcImJzLmNvbGxhcHNlXCIsbnVsbCkpO3ZhciBpPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhcImNvbGxhcHNlXCIpLmFkZENsYXNzKFwiY29sbGFwc2luZ1wiKVtpXSgwKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSx0aGlzLiR0cmlnZ2VyLnJlbW92ZUNsYXNzKFwiY29sbGFwc2VkXCIpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITApLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBvPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhcImNvbGxhcHNpbmdcIikuYWRkQ2xhc3MoXCJjb2xsYXBzZSBpblwiKVtpXShcIlwiKSx0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnRyaWdnZXIoXCJzaG93bi5icy5jb2xsYXBzZVwiKX07aWYoIW4uc3VwcG9ydC50cmFuc2l0aW9uKXJldHVybiBvLmNhbGwodGhpcyk7dD1uLmNhbWVsQ2FzZShbXCJzY3JvbGxcIixpXS5qb2luKFwiLVwiKSk7dGhpcy4kZWxlbWVudC5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixuLnByb3h5KG8sdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMuVFJBTlNJVElPTl9EVVJBVElPTilbaV0odGhpcy4kZWxlbWVudFswXVt0XSl9fX19LHMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oKXtpZighdGhpcy50cmFuc2l0aW9uaW5nJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwiaW5cIikpe3ZhciB0PW4uRXZlbnQoXCJoaWRlLmJzLmNvbGxhcHNlXCIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcih0KSwhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGU9dGhpcy5kaW1lbnNpb24oKTt0aGlzLiRlbGVtZW50W2VdKHRoaXMuJGVsZW1lbnRbZV0oKSlbMF0ub2Zmc2V0SGVpZ2h0LHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoXCJjb2xsYXBzaW5nXCIpLnJlbW92ZUNsYXNzKFwiY29sbGFwc2UgaW5cIikuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMSksdGhpcy4kdHJpZ2dlci5hZGRDbGFzcyhcImNvbGxhcHNlZFwiKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCExKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt0PWZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uaW5nPTAsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhcImNvbGxhcHNpbmdcIikuYWRkQ2xhc3MoXCJjb2xsYXBzZVwiKS50cmlnZ2VyKFwiaGlkZGVuLmJzLmNvbGxhcHNlXCIpfTtpZighbi5zdXBwb3J0LnRyYW5zaXRpb24pcmV0dXJuIHQuY2FsbCh0aGlzKTt0aGlzLiRlbGVtZW50W2VdKDApLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLG4ucHJveHkodCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQocy5UUkFOU0lUSU9OX0RVUkFUSU9OKX19fSxzLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoXCJpblwiKT9cImhpZGVcIjpcInNob3dcIl0oKX0scy5wcm90b3R5cGUuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4oZG9jdW1lbnQpLmZpbmQodGhpcy5vcHRpb25zLnBhcmVudCkuZmluZCgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1bZGF0YS1wYXJlbnQ9XCInK3RoaXMub3B0aW9ucy5wYXJlbnQrJ1wiXScpLmVhY2gobi5wcm94eShmdW5jdGlvbih0LGUpe2U9bihlKTt0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhpKGUpLGUpfSx0aGlzKSkuZW5kKCl9LHMucHJvdG90eXBlLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbih0LGUpe3ZhciBpPXQuaGFzQ2xhc3MoXCJpblwiKTt0LmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsaSksZS50b2dnbGVDbGFzcyhcImNvbGxhcHNlZFwiLCFpKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLGkpfTt2YXIgdD1uLmZuLmNvbGxhcHNlO24uZm4uY29sbGFwc2U9YSxuLmZuLmNvbGxhcHNlLkNvbnN0cnVjdG9yPXMsbi5mbi5jb2xsYXBzZS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uZm4uY29sbGFwc2U9dCx0aGlzfSxuKGRvY3VtZW50KS5vbihcImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpXCIsJ1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdJyxmdW5jdGlvbih0KXt2YXIgZT1uKHRoaXMpO2UuYXR0cihcImRhdGEtdGFyZ2V0XCIpfHx0LnByZXZlbnREZWZhdWx0KCk7dD1pKGUpLGU9dC5kYXRhKFwiYnMuY29sbGFwc2VcIik/XCJ0b2dnbGVcIjplLmRhdGEoKTthLmNhbGwodCxlKX0pfShqUXVlcnkpLGZ1bmN0aW9uKG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8odCl7bih0KS5vbihcImNsaWNrLmJzLmRyb3Bkb3duXCIsdGhpcy50b2dnbGUpfXZhciBzPSdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXSc7ZnVuY3Rpb24gYSh0KXt2YXIgZT10LmF0dHIoXCJkYXRhLXRhcmdldFwiKSxlPVwiI1wiIT09KGU9ZXx8KGU9dC5hdHRyKFwiaHJlZlwiKSkmJi8jW0EtWmEtel0vLnRlc3QoZSkmJmUucmVwbGFjZSgvLiooPz0jW15cXHNdKiQpLyxcIlwiKSk/bihkb2N1bWVudCkuZmluZChlKTpudWxsO3JldHVybiBlJiZlLmxlbmd0aD9lOnQucGFyZW50KCl9ZnVuY3Rpb24gcihvKXtvJiYzPT09by53aGljaHx8KG4oXCIuZHJvcGRvd24tYmFja2Ryb3BcIikucmVtb3ZlKCksbihzKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bih0aGlzKSxlPWEodCksaT17cmVsYXRlZFRhcmdldDp0aGlzfTtlLmhhc0NsYXNzKFwib3BlblwiKSYmKG8mJlwiY2xpY2tcIj09by50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KG8udGFyZ2V0LnRhZ05hbWUpJiZuLmNvbnRhaW5zKGVbMF0sby50YXJnZXQpfHwoZS50cmlnZ2VyKG89bi5FdmVudChcImhpZGUuYnMuZHJvcGRvd25cIixpKSksby5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHQuYXR0cihcImFyaWEtZXhwYW5kZWRcIixcImZhbHNlXCIpLGUucmVtb3ZlQ2xhc3MoXCJvcGVuXCIpLnRyaWdnZXIobi5FdmVudChcImhpZGRlbi5icy5kcm9wZG93blwiLGkpKSkpKX0pKX1vLlZFUlNJT049XCIzLjQuMVwiLG8ucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbih0KXt2YXIgZT1uKHRoaXMpO2lmKCFlLmlzKFwiLmRpc2FibGVkLCA6ZGlzYWJsZWRcIikpe3ZhciBpPWEoZSksbz1pLmhhc0NsYXNzKFwib3BlblwiKTtpZihyKCksIW8pe1wib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJiFpLmNsb3Nlc3QoXCIubmF2YmFyLW5hdlwiKS5sZW5ndGgmJm4oZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuYWRkQ2xhc3MoXCJkcm9wZG93bi1iYWNrZHJvcFwiKS5pbnNlcnRBZnRlcihuKHRoaXMpKS5vbihcImNsaWNrXCIscik7bz17cmVsYXRlZFRhcmdldDp0aGlzfTtpZihpLnRyaWdnZXIodD1uLkV2ZW50KFwic2hvdy5icy5kcm9wZG93blwiLG8pKSx0LmlzRGVmYXVsdFByZXZlbnRlZCgpKXJldHVybjtlLnRyaWdnZXIoXCJmb2N1c1wiKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLFwidHJ1ZVwiKSxpLnRvZ2dsZUNsYXNzKFwib3BlblwiKS50cmlnZ2VyKG4uRXZlbnQoXCJzaG93bi5icy5kcm9wZG93blwiLG8pKX1yZXR1cm4hMX19LG8ucHJvdG90eXBlLmtleWRvd249ZnVuY3Rpb24odCl7aWYoLygzOHw0MHwyN3wzMikvLnRlc3QodC53aGljaCkmJiEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpKXt2YXIgZT1uKHRoaXMpO2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLCFlLmlzKFwiLmRpc2FibGVkLCA6ZGlzYWJsZWRcIikpe3ZhciBpPWEoZSksbz1pLmhhc0NsYXNzKFwib3BlblwiKTtpZighbyYmMjchPXQud2hpY2h8fG8mJjI3PT10LndoaWNoKXJldHVybiAyNz09dC53aGljaCYmaS5maW5kKHMpLnRyaWdnZXIoXCJmb2N1c1wiKSxlLnRyaWdnZXIoXCJjbGlja1wiKTtlPWkuZmluZChcIi5kcm9wZG93bi1tZW51IGxpOm5vdCguZGlzYWJsZWQpOnZpc2libGUgYVwiKTtlLmxlbmd0aCYmKGk9ZS5pbmRleCh0LnRhcmdldCksMzg9PXQud2hpY2gmJjA8aSYmaS0tLDQwPT10LndoaWNoJiZpPGUubGVuZ3RoLTEmJmkrKyx+aXx8KGk9MCksZS5lcShpKS50cmlnZ2VyKFwiZm9jdXNcIikpfX19O3ZhciB0PW4uZm4uZHJvcGRvd247bi5mbi5kcm9wZG93bj1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bih0aGlzKSxlPXQuZGF0YShcImJzLmRyb3Bkb3duXCIpO2V8fHQuZGF0YShcImJzLmRyb3Bkb3duXCIsZT1uZXcgbyh0aGlzKSksXCJzdHJpbmdcIj09dHlwZW9mIGkmJmVbaV0uY2FsbCh0KX0pfSxuLmZuLmRyb3Bkb3duLkNvbnN0cnVjdG9yPW8sbi5mbi5kcm9wZG93bi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uZm4uZHJvcGRvd249dCx0aGlzfSxuKGRvY3VtZW50KS5vbihcImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpXCIscikub24oXCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaVwiLFwiLmRyb3Bkb3duIGZvcm1cIixmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfSkub24oXCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaVwiLHMsby5wcm90b3R5cGUudG9nZ2xlKS5vbihcImtleWRvd24uYnMuZHJvcGRvd24uZGF0YS1hcGlcIixzLG8ucHJvdG90eXBlLmtleWRvd24pLm9uKFwia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaVwiLFwiLmRyb3Bkb3duLW1lbnVcIixvLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSxmdW5jdGlvbihzKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBhKHQsZSl7dGhpcy5vcHRpb25zPWUsdGhpcy4kYm9keT1zKGRvY3VtZW50LmJvZHkpLHRoaXMuJGVsZW1lbnQ9cyh0KSx0aGlzLiRkaWFsb2c9dGhpcy4kZWxlbWVudC5maW5kKFwiLm1vZGFsLWRpYWxvZ1wiKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLmZpeGVkQ29udGVudD1cIi5uYXZiYXItZml4ZWQtdG9wLCAubmF2YmFyLWZpeGVkLWJvdHRvbVwiLHRoaXMub3B0aW9ucy5yZW1vdGUmJnRoaXMuJGVsZW1lbnQuZmluZChcIi5tb2RhbC1jb250ZW50XCIpLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSxzLnByb3h5KGZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKFwibG9hZGVkLmJzLm1vZGFsXCIpfSx0aGlzKSl9ZnVuY3Rpb24gcihvLG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1zKHRoaXMpLGU9dC5kYXRhKFwiYnMubW9kYWxcIiksaT1zLmV4dGVuZCh7fSxhLkRFRkFVTFRTLHQuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBvJiZvKTtlfHx0LmRhdGEoXCJicy5tb2RhbFwiLGU9bmV3IGEodGhpcyxpKSksXCJzdHJpbmdcIj09dHlwZW9mIG8/ZVtvXShuKTppLnNob3cmJmUuc2hvdyhuKX0pfWEuVkVSU0lPTj1cIjMuNC4xXCIsYS5UUkFOU0lUSU9OX0RVUkFUSU9OPTMwMCxhLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT049MTUwLGEuREVGQVVMVFM9e2JhY2tkcm9wOiEwLGtleWJvYXJkOiEwLHNob3c6ITB9LGEucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pc1Nob3duP3RoaXMuaGlkZSgpOnRoaXMuc2hvdyh0KX0sYS5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbihpKXt2YXIgbz10aGlzLHQ9cy5FdmVudChcInNob3cuYnMubW9kYWxcIix7cmVsYXRlZFRhcmdldDppfSk7dGhpcy4kZWxlbWVudC50cmlnZ2VyKHQpLHRoaXMuaXNTaG93bnx8dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHRoaXMuaXNTaG93bj0hMCx0aGlzLmNoZWNrU2Nyb2xsYmFyKCksdGhpcy5zZXRTY3JvbGxiYXIoKSx0aGlzLiRib2R5LmFkZENsYXNzKFwibW9kYWwtb3BlblwiKSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksdGhpcy4kZWxlbWVudC5vbihcImNsaWNrLmRpc21pc3MuYnMubW9kYWxcIiwnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJyxzLnByb3h5KHRoaXMuaGlkZSx0aGlzKSksdGhpcy4kZGlhbG9nLm9uKFwibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWxcIixmdW5jdGlvbigpe28uJGVsZW1lbnQub25lKFwibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsXCIsZnVuY3Rpb24odCl7cyh0LnRhcmdldCkuaXMoby4kZWxlbWVudCkmJihvLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITApfSl9KSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7dmFyIHQ9cy5zdXBwb3J0LnRyYW5zaXRpb24mJm8uJGVsZW1lbnQuaGFzQ2xhc3MoXCJmYWRlXCIpO28uJGVsZW1lbnQucGFyZW50KCkubGVuZ3RofHxvLiRlbGVtZW50LmFwcGVuZFRvKG8uJGJvZHkpLG8uJGVsZW1lbnQuc2hvdygpLnNjcm9sbFRvcCgwKSxvLmFkanVzdERpYWxvZygpLHQmJm8uJGVsZW1lbnRbMF0ub2Zmc2V0V2lkdGgsby4kZWxlbWVudC5hZGRDbGFzcyhcImluXCIpLG8uZW5mb3JjZUZvY3VzKCk7dmFyIGU9cy5FdmVudChcInNob3duLmJzLm1vZGFsXCIse3JlbGF0ZWRUYXJnZXQ6aX0pO3Q/by4kZGlhbG9nLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLGZ1bmN0aW9uKCl7by4kZWxlbWVudC50cmlnZ2VyKFwiZm9jdXNcIikudHJpZ2dlcihlKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGEuVFJBTlNJVElPTl9EVVJBVElPTik6by4kZWxlbWVudC50cmlnZ2VyKFwiZm9jdXNcIikudHJpZ2dlcihlKX0pKX0sYS5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbih0KXt0JiZ0LnByZXZlbnREZWZhdWx0KCksdD1zLkV2ZW50KFwiaGlkZS5icy5tb2RhbFwiKSx0aGlzLiRlbGVtZW50LnRyaWdnZXIodCksdGhpcy5pc1Nob3duJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKHRoaXMuaXNTaG93bj0hMSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCkscyhkb2N1bWVudCkub2ZmKFwiZm9jdXNpbi5icy5tb2RhbFwiKSx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKFwiaW5cIikub2ZmKFwiY2xpY2suZGlzbWlzcy5icy5tb2RhbFwiKS5vZmYoXCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWxcIiksdGhpcy4kZGlhbG9nLm9mZihcIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsXCIpLHMuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwiZmFkZVwiKT90aGlzLiRlbGVtZW50Lm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLHMucHJveHkodGhpcy5oaWRlTW9kYWwsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGEuVFJBTlNJVElPTl9EVVJBVElPTik6dGhpcy5oaWRlTW9kYWwoKSl9LGEucHJvdG90eXBlLmVuZm9yY2VGb2N1cz1mdW5jdGlvbigpe3MoZG9jdW1lbnQpLm9mZihcImZvY3VzaW4uYnMubW9kYWxcIikub24oXCJmb2N1c2luLmJzLm1vZGFsXCIscy5wcm94eShmdW5jdGlvbih0KXtkb2N1bWVudD09PXQudGFyZ2V0fHx0aGlzLiRlbGVtZW50WzBdPT09dC50YXJnZXR8fHRoaXMuJGVsZW1lbnQuaGFzKHQudGFyZ2V0KS5sZW5ndGh8fHRoaXMuJGVsZW1lbnQudHJpZ2dlcihcImZvY3VzXCIpfSx0aGlzKSl9LGEucHJvdG90eXBlLmVzY2FwZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmtleWJvYXJkP3RoaXMuJGVsZW1lbnQub24oXCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWxcIixzLnByb3h5KGZ1bmN0aW9uKHQpezI3PT10LndoaWNoJiZ0aGlzLmhpZGUoKX0sdGhpcykpOnRoaXMuaXNTaG93bnx8dGhpcy4kZWxlbWVudC5vZmYoXCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWxcIil9LGEucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93bj9zKHdpbmRvdykub24oXCJyZXNpemUuYnMubW9kYWxcIixzLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLHRoaXMpKTpzKHdpbmRvdykub2ZmKFwicmVzaXplLmJzLm1vZGFsXCIpfSxhLnByb3RvdHlwZS5oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJGVsZW1lbnQuaGlkZSgpLHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24oKXt0LiRib2R5LnJlbW92ZUNsYXNzKFwibW9kYWwtb3BlblwiKSx0LnJlc2V0QWRqdXN0bWVudHMoKSx0LnJlc2V0U2Nyb2xsYmFyKCksdC4kZWxlbWVudC50cmlnZ2VyKFwiaGlkZGVuLmJzLm1vZGFsXCIpfSl9LGEucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy4kYmFja2Ryb3AmJnRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpLHRoaXMuJGJhY2tkcm9wPW51bGx9LGEucHJvdG90eXBlLmJhY2tkcm9wPWZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcyxvPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoXCJmYWRlXCIpP1wiZmFkZVwiOlwiXCI7dGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMuYmFja2Ryb3A/KGU9cy5zdXBwb3J0LnRyYW5zaXRpb24mJm8sdGhpcy4kYmFja2Ryb3A9cyhkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5hZGRDbGFzcyhcIm1vZGFsLWJhY2tkcm9wIFwiK28pLmFwcGVuZFRvKHRoaXMuJGJvZHkpLHRoaXMuJGVsZW1lbnQub24oXCJjbGljay5kaXNtaXNzLmJzLm1vZGFsXCIscy5wcm94eShmdW5jdGlvbih0KXt0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s/dGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrPSExOnQudGFyZ2V0PT09dC5jdXJyZW50VGFyZ2V0JiYoXCJzdGF0aWNcIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSl9LHRoaXMpKSxlJiZ0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aCx0aGlzLiRiYWNrZHJvcC5hZGRDbGFzcyhcImluXCIpLHQmJihlP3RoaXMuJGJhY2tkcm9wLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLHQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGEuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6dCgpKSk6IXRoaXMuaXNTaG93biYmdGhpcy4kYmFja2Ryb3A/KHRoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKFwiaW5cIiksZT1mdW5jdGlvbigpe2kucmVtb3ZlQmFja2Ryb3AoKSx0JiZ0KCl9LHMuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwiZmFkZVwiKT90aGlzLiRiYWNrZHJvcC5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pOmUoKSk6dCYmdCgpfSxhLnByb3RvdHlwZS5oYW5kbGVVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmFkanVzdERpYWxvZygpfSxhLnByb3RvdHlwZS5hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDohdGhpcy5ib2R5SXNPdmVyZmxvd2luZyYmdD90aGlzLnNjcm9sbGJhcldpZHRoOlwiXCIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiF0P3RoaXMuc2Nyb2xsYmFyV2lkdGg6XCJcIn0pfSxhLnByb3RvdHlwZS5yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OlwiXCIscGFkZGluZ1JpZ2h0OlwiXCJ9KX0sYS5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgdCxlPXdpbmRvdy5pbm5lcldpZHRoO2V8fChlPSh0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkucmlnaHQtTWF0aC5hYnModC5sZWZ0KSksdGhpcy5ib2R5SXNPdmVyZmxvd2luZz1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoPGUsdGhpcy5zY3JvbGxiYXJXaWR0aD10aGlzLm1lYXN1cmVTY3JvbGxiYXIoKX0sYS5wcm90b3R5cGUuc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHQ9cGFyc2VJbnQodGhpcy4kYm9keS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIpfHwwLDEwKTt0aGlzLm9yaWdpbmFsQm9keVBhZD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodHx8XCJcIjt2YXIgbj10aGlzLnNjcm9sbGJhcldpZHRoO3RoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJih0aGlzLiRib2R5LmNzcyhcInBhZGRpbmctcmlnaHRcIix0K24pLHModGhpcy5maXhlZENvbnRlbnQpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgaT1lLnN0eWxlLnBhZGRpbmdSaWdodCxvPXMoZSkuY3NzKFwicGFkZGluZy1yaWdodFwiKTtzKGUpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIsaSkuY3NzKFwicGFkZGluZy1yaWdodFwiLHBhcnNlRmxvYXQobykrbitcInB4XCIpfSkpfSxhLnByb3RvdHlwZS5yZXNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3RoaXMuJGJvZHkuY3NzKFwicGFkZGluZy1yaWdodFwiLHRoaXMub3JpZ2luYWxCb2R5UGFkKSxzKHRoaXMuZml4ZWRDb250ZW50KS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9cyhlKS5kYXRhKFwicGFkZGluZy1yaWdodFwiKTtzKGUpLnJlbW92ZURhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpLGUuc3R5bGUucGFkZGluZ1JpZ2h0PWl8fFwiXCJ9KX0sYS5wcm90b3R5cGUubWVhc3VyZVNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5jbGFzc05hbWU9XCJtb2RhbC1zY3JvbGxiYXItbWVhc3VyZVwiLHRoaXMuJGJvZHkuYXBwZW5kKHQpO3ZhciBlPXQub2Zmc2V0V2lkdGgtdC5jbGllbnRXaWR0aDtyZXR1cm4gdGhpcy4kYm9keVswXS5yZW1vdmVDaGlsZCh0KSxlfTt2YXIgdD1zLmZuLm1vZGFsO3MuZm4ubW9kYWw9cixzLmZuLm1vZGFsLkNvbnN0cnVjdG9yPWEscy5mbi5tb2RhbC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHMuZm4ubW9kYWw9dCx0aGlzfSxzKGRvY3VtZW50KS5vbihcImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpXCIsJ1tkYXRhLXRvZ2dsZT1cIm1vZGFsXCJdJyxmdW5jdGlvbih0KXt2YXIgZT1zKHRoaXMpLGk9ZS5hdHRyKFwiaHJlZlwiKSxvPWUuYXR0cihcImRhdGEtdGFyZ2V0XCIpfHxpJiZpLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sXCJcIiksbj1zKGRvY3VtZW50KS5maW5kKG8pLGk9bi5kYXRhKFwiYnMubW9kYWxcIik/XCJ0b2dnbGVcIjpzLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChpKSYmaX0sbi5kYXRhKCksZS5kYXRhKCkpO2UuaXMoXCJhXCIpJiZ0LnByZXZlbnREZWZhdWx0KCksbi5vbmUoXCJzaG93LmJzLm1vZGFsXCIsZnVuY3Rpb24odCl7dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8bi5vbmUoXCJoaWRkZW4uYnMubW9kYWxcIixmdW5jdGlvbigpe2UuaXMoXCI6dmlzaWJsZVwiKSYmZS50cmlnZ2VyKFwiZm9jdXNcIil9KX0pLHIuY2FsbChuLGksdGhpcyl9KX0oalF1ZXJ5KSxmdW5jdGlvbihmKXtcInVzZSBzdHJpY3RcIjt2YXIgbz1bXCJzYW5pdGl6ZVwiLFwid2hpdGVMaXN0XCIsXCJzYW5pdGl6ZUZuXCJdLHU9W1wiYmFja2dyb3VuZFwiLFwiY2l0ZVwiLFwiaHJlZlwiLFwiaXRlbXR5cGVcIixcImxvbmdkZXNjXCIsXCJwb3N0ZXJcIixcInNyY1wiLFwieGxpbms6aHJlZlwiXSx0PXtcIipcIjpbXCJjbGFzc1wiLFwiZGlyXCIsXCJpZFwiLFwibGFuZ1wiLFwicm9sZVwiLC9eYXJpYS1bXFx3LV0qJC9pXSxhOltcInRhcmdldFwiLFwiaHJlZlwiLFwidGl0bGVcIixcInJlbFwiXSxhcmVhOltdLGI6W10sYnI6W10sY29sOltdLGNvZGU6W10sZGl2OltdLGVtOltdLGhyOltdLGgxOltdLGgyOltdLGgzOltdLGg0OltdLGg1OltdLGg2OltdLGk6W10saW1nOltcInNyY1wiLFwiYWx0XCIsXCJ0aXRsZVwiLFwid2lkdGhcIixcImhlaWdodFwiXSxsaTpbXSxvbDpbXSxwOltdLHByZTpbXSxzOltdLHNtYWxsOltdLHNwYW46W10sc3ViOltdLHN1cDpbXSxzdHJvbmc6W10sdTpbXSx1bDpbXX0sZz0vXig/Oig/Omh0dHBzP3xtYWlsdG98ZnRwfHRlbHxmaWxlKTp8W14mOi8/I10qKD86Wy8/I118JCkpL2dpLG09L15kYXRhOig/OmltYWdlXFwvKD86Ym1wfGdpZnxqcGVnfGpwZ3xwbmd8dGlmZnx3ZWJwKXx2aWRlb1xcLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtKXxhdWRpb1xcLyg/Om1wM3xvZ2F8b2dnfG9wdXMpKTtiYXNlNjQsW2EtejAtOSsvXSs9KiQvaTtmdW5jdGlvbiBuKHQsZSxpKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIHQ7aWYoaSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaSlyZXR1cm4gaSh0KTtpZighZG9jdW1lbnQuaW1wbGVtZW50YXRpb258fCFkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQpcmV0dXJuIHQ7aT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoXCJzYW5pdGl6YXRpb25cIik7aS5ib2R5LmlubmVySFRNTD10O2Zvcih2YXIgbz1mLm1hcChlLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSxuPWYoaS5ib2R5KS5maW5kKFwiKlwiKSxzPTAsYT1uLmxlbmd0aDtzPGE7cysrKXt2YXIgcj1uW3NdLGw9ci5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKC0xIT09Zi5pbkFycmF5KGwsbykpZm9yKHZhciBoPWYubWFwKHIuYXR0cmlidXRlcyxmdW5jdGlvbih0KXtyZXR1cm4gdH0pLGQ9W10uY29uY2F0KGVbXCIqXCJdfHxbXSxlW2xdfHxbXSkscD0wLGM9aC5sZW5ndGg7cDxjO3ArKykhZnVuY3Rpb24odCxlKXt2YXIgaT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoLTEhPT1mLmluQXJyYXkoaSxlKSlyZXR1cm4tMT09PWYuaW5BcnJheShpLHUpfHxCb29sZWFuKHQubm9kZVZhbHVlLm1hdGNoKGcpfHx0Lm5vZGVWYWx1ZS5tYXRjaChtKSk7Zm9yKHZhciBvPWYoZSkuZmlsdGVyKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBSZWdFeHB9KSxuPTAscz1vLmxlbmd0aDtuPHM7bisrKWlmKGkubWF0Y2gob1tuXSkpcmV0dXJuIDF9KGhbcF0sZCkmJnIucmVtb3ZlQXR0cmlidXRlKGhbcF0ubm9kZU5hbWUpO2Vsc2Ugci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpfXJldHVybiBpLmJvZHkuaW5uZXJIVE1MfWZ1bmN0aW9uIGwodCxlKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KFwidG9vbHRpcFwiLHQsZSl9bC5WRVJTSU9OPVwiMy40LjFcIixsLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGwuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6XCJ0b3BcIixzZWxlY3RvcjohMSx0ZW1wbGF0ZTonPGRpdiBjbGFzcz1cInRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiPjxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC9kaXY+PGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj48L2Rpdj4nLHRyaWdnZXI6XCJob3ZlciBmb2N1c1wiLHRpdGxlOlwiXCIsZGVsYXk6MCxodG1sOiExLGNvbnRhaW5lcjohMSx2aWV3cG9ydDp7c2VsZWN0b3I6XCJib2R5XCIscGFkZGluZzowfSxzYW5pdGl6ZTohMCxzYW5pdGl6ZUZuOm51bGwsd2hpdGVMaXN0OnR9LGwucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24odCxlLGkpe2lmKHRoaXMuZW5hYmxlZD0hMCx0aGlzLnR5cGU9dCx0aGlzLiRlbGVtZW50PWYoZSksdGhpcy5vcHRpb25zPXRoaXMuZ2V0T3B0aW9ucyhpKSx0aGlzLiR2aWV3cG9ydD10aGlzLm9wdGlvbnMudmlld3BvcnQmJmYoZG9jdW1lbnQpLmZpbmQoZi5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy52aWV3cG9ydCk/dGhpcy5vcHRpb25zLnZpZXdwb3J0LmNhbGwodGhpcyx0aGlzLiRlbGVtZW50KTp0aGlzLm9wdGlvbnMudmlld3BvcnQuc2VsZWN0b3J8fHRoaXMub3B0aW9ucy52aWV3cG9ydCksdGhpcy5pblN0YXRlPXtjbGljazohMSxob3ZlcjohMSxmb2N1czohMX0sdGhpcy4kZWxlbWVudFswXWluc3RhbmNlb2YgZG9jdW1lbnQuY29uc3RydWN0b3ImJiF0aGlzLm9wdGlvbnMuc2VsZWN0b3IpdGhyb3cgbmV3IEVycm9yKFwiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgXCIrdGhpcy50eXBlK1wiIG9uIHRoZSB3aW5kb3cuZG9jdW1lbnQgb2JqZWN0IVwiKTtmb3IodmFyIG89dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoXCIgXCIpLG49by5sZW5ndGg7bi0tOyl7dmFyIHMsYT1vW25dO1wiY2xpY2tcIj09YT90aGlzLiRlbGVtZW50Lm9uKFwiY2xpY2suXCIrdGhpcy50eXBlLHRoaXMub3B0aW9ucy5zZWxlY3RvcixmLnByb3h5KHRoaXMudG9nZ2xlLHRoaXMpKTpcIm1hbnVhbFwiIT1hJiYocz1cImhvdmVyXCI9PWE/XCJtb3VzZWVudGVyXCI6XCJmb2N1c2luXCIsYT1cImhvdmVyXCI9PWE/XCJtb3VzZWxlYXZlXCI6XCJmb2N1c291dFwiLHRoaXMuJGVsZW1lbnQub24ocytcIi5cIit0aGlzLnR5cGUsdGhpcy5vcHRpb25zLnNlbGVjdG9yLGYucHJveHkodGhpcy5lbnRlcix0aGlzKSksdGhpcy4kZWxlbWVudC5vbihhK1wiLlwiK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsZi5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKSl9dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9Zi5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOlwibWFudWFsXCIsc2VsZWN0b3I6XCJcIn0pOnRoaXMuZml4VGl0bGUoKX0sbC5wcm90b3R5cGUuZ2V0RGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5ERUZBVUxUU30sbC5wcm90b3R5cGUuZ2V0T3B0aW9ucz1mdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMuJGVsZW1lbnQuZGF0YSgpO2ZvcihlIGluIGkpaS5oYXNPd25Qcm9wZXJ0eShlKSYmLTEhPT1mLmluQXJyYXkoZSxvKSYmZGVsZXRlIGlbZV07cmV0dXJuKHQ9Zi5leHRlbmQoe30sdGhpcy5nZXREZWZhdWx0cygpLGksdCkpLmRlbGF5JiZcIm51bWJlclwiPT10eXBlb2YgdC5kZWxheSYmKHQuZGVsYXk9e3Nob3c6dC5kZWxheSxoaWRlOnQuZGVsYXl9KSx0LnNhbml0aXplJiYodC50ZW1wbGF0ZT1uKHQudGVtcGxhdGUsdC53aGl0ZUxpc3QsdC5zYW5pdGl6ZUZuKSksdH0sbC5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGk9e30sbz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmYuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKHQsZSl7b1t0XSE9ZSYmKGlbdF09ZSl9KSxpfSxsLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbih0KXt2YXIgZT10IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj90OmYodC5jdXJyZW50VGFyZ2V0KS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlKTtpZihlfHwoZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksZih0LmN1cnJlbnRUYXJnZXQpLmRhdGEoXCJicy5cIit0aGlzLnR5cGUsZSkpLHQgaW5zdGFuY2VvZiBmLkV2ZW50JiYoZS5pblN0YXRlW1wiZm9jdXNpblwiPT10LnR5cGU/XCJmb2N1c1wiOlwiaG92ZXJcIl09ITApLGUudGlwKCkuaGFzQ2xhc3MoXCJpblwiKXx8XCJpblwiPT1lLmhvdmVyU3RhdGUpZS5ob3ZlclN0YXRlPVwiaW5cIjtlbHNle2lmKGNsZWFyVGltZW91dChlLnRpbWVvdXQpLGUuaG92ZXJTdGF0ZT1cImluXCIsIWUub3B0aW9ucy5kZWxheXx8IWUub3B0aW9ucy5kZWxheS5zaG93KXJldHVybiBlLnNob3coKTtlLnRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe1wiaW5cIj09ZS5ob3ZlclN0YXRlJiZlLnNob3coKX0sZS5vcHRpb25zLmRlbGF5LnNob3cpfX0sbC5wcm90b3R5cGUuaXNJblN0YXRlVHJ1ZT1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLmluU3RhdGUpaWYodGhpcy5pblN0YXRlW3RdKXJldHVybiEwO3JldHVybiExfSxsLnByb3RvdHlwZS5sZWF2ZT1mdW5jdGlvbih0KXt2YXIgZT10IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj90OmYodC5jdXJyZW50VGFyZ2V0KS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlKTtpZihlfHwoZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksZih0LmN1cnJlbnRUYXJnZXQpLmRhdGEoXCJicy5cIit0aGlzLnR5cGUsZSkpLHQgaW5zdGFuY2VvZiBmLkV2ZW50JiYoZS5pblN0YXRlW1wiZm9jdXNvdXRcIj09dC50eXBlP1wiZm9jdXNcIjpcImhvdmVyXCJdPSExKSwhZS5pc0luU3RhdGVUcnVlKCkpe2lmKGNsZWFyVGltZW91dChlLnRpbWVvdXQpLGUuaG92ZXJTdGF0ZT1cIm91dFwiLCFlLm9wdGlvbnMuZGVsYXl8fCFlLm9wdGlvbnMuZGVsYXkuaGlkZSlyZXR1cm4gZS5oaWRlKCk7ZS50aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtcIm91dFwiPT1lLmhvdmVyU3RhdGUmJmUuaGlkZSgpfSxlLm9wdGlvbnMuZGVsYXkuaGlkZSl9fSxsLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGUsdCxpLG8sbixzLGEscj1mLkV2ZW50KFwic2hvdy5icy5cIit0aGlzLnR5cGUpO3RoaXMuaGFzQ29udGVudCgpJiZ0aGlzLmVuYWJsZWQmJih0aGlzLiRlbGVtZW50LnRyaWdnZXIociksaT1mLmNvbnRhaW5zKHRoaXMuJGVsZW1lbnRbMF0ub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy4kZWxlbWVudFswXSksIXIuaXNEZWZhdWx0UHJldmVudGVkKCkmJmkmJih0PShlPXRoaXMpLnRpcCgpLHM9dGhpcy5nZXRVSUQodGhpcy50eXBlKSx0aGlzLnNldENvbnRlbnQoKSx0LmF0dHIoXCJpZFwiLHMpLHRoaXMuJGVsZW1lbnQuYXR0cihcImFyaWEtZGVzY3JpYmVkYnlcIixzKSx0aGlzLm9wdGlvbnMuYW5pbWF0aW9uJiZ0LmFkZENsYXNzKFwiZmFkZVwiKSxhPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMub3B0aW9ucy5wbGFjZW1lbnQ/dGhpcy5vcHRpb25zLnBsYWNlbWVudC5jYWxsKHRoaXMsdFswXSx0aGlzLiRlbGVtZW50WzBdKTp0aGlzLm9wdGlvbnMucGxhY2VtZW50LChuPShvPS9cXHM/YXV0bz9cXHM/L2kpLnRlc3QoYSkpJiYoYT1hLnJlcGxhY2UobyxcIlwiKXx8XCJ0b3BcIiksdC5kZXRhY2goKS5jc3Moe3RvcDowLGxlZnQ6MCxkaXNwbGF5OlwiYmxvY2tcIn0pLmFkZENsYXNzKGEpLmRhdGEoXCJicy5cIit0aGlzLnR5cGUsdGhpcyksdGhpcy5vcHRpb25zLmNvbnRhaW5lcj90LmFwcGVuZFRvKGYoZG9jdW1lbnQpLmZpbmQodGhpcy5vcHRpb25zLmNvbnRhaW5lcikpOnQuaW5zZXJ0QWZ0ZXIodGhpcy4kZWxlbWVudCksdGhpcy4kZWxlbWVudC50cmlnZ2VyKFwiaW5zZXJ0ZWQuYnMuXCIrdGhpcy50eXBlKSxyPXRoaXMuZ2V0UG9zaXRpb24oKSxpPXRbMF0ub2Zmc2V0V2lkdGgscz10WzBdLm9mZnNldEhlaWdodCxuJiYobz1hLG49dGhpcy5nZXRQb3NpdGlvbih0aGlzLiR2aWV3cG9ydCksYT1cImJvdHRvbVwiPT1hJiZyLmJvdHRvbStzPm4uYm90dG9tP1widG9wXCI6XCJ0b3BcIj09YSYmci50b3AtczxuLnRvcD9cImJvdHRvbVwiOlwicmlnaHRcIj09YSYmci5yaWdodCtpPm4ud2lkdGg/XCJsZWZ0XCI6XCJsZWZ0XCI9PWEmJnIubGVmdC1pPG4ubGVmdD9cInJpZ2h0XCI6YSx0LnJlbW92ZUNsYXNzKG8pLmFkZENsYXNzKGEpKSxzPXRoaXMuZ2V0Q2FsY3VsYXRlZE9mZnNldChhLHIsaSxzKSx0aGlzLmFwcGx5UGxhY2VtZW50KHMsYSksYT1mdW5jdGlvbigpe3ZhciB0PWUuaG92ZXJTdGF0ZTtlLiRlbGVtZW50LnRyaWdnZXIoXCJzaG93bi5icy5cIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLFwib3V0XCI9PXQmJmUubGVhdmUoZSl9LGYuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiR0aXAuaGFzQ2xhc3MoXCJmYWRlXCIpP3Qub25lKFwiYnNUcmFuc2l0aW9uRW5kXCIsYSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobC5UUkFOU0lUSU9OX0RVUkFUSU9OKTphKCkpKX0sbC5wcm90b3R5cGUuYXBwbHlQbGFjZW1lbnQ9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnRpcCgpLG89aVswXS5vZmZzZXRXaWR0aCxuPWlbMF0ub2Zmc2V0SGVpZ2h0LHM9cGFyc2VJbnQoaS5jc3MoXCJtYXJnaW4tdG9wXCIpLDEwKSxhPXBhcnNlSW50KGkuY3NzKFwibWFyZ2luLWxlZnRcIiksMTApO2lzTmFOKHMpJiYocz0wKSxpc05hTihhKSYmKGE9MCksdC50b3ArPXMsdC5sZWZ0Kz1hLGYub2Zmc2V0LnNldE9mZnNldChpWzBdLGYuZXh0ZW5kKHt1c2luZzpmdW5jdGlvbih0KXtpLmNzcyh7dG9wOk1hdGgucm91bmQodC50b3ApLGxlZnQ6TWF0aC5yb3VuZCh0LmxlZnQpfSl9fSx0KSwwKSxpLmFkZENsYXNzKFwiaW5cIik7dmFyIHI9aVswXS5vZmZzZXRXaWR0aCxzPWlbMF0ub2Zmc2V0SGVpZ2h0O1widG9wXCI9PWUmJnMhPW4mJih0LnRvcD10LnRvcCtuLXMpO2E9dGhpcy5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGEoZSx0LHIscyk7YS5sZWZ0P3QubGVmdCs9YS5sZWZ0OnQudG9wKz1hLnRvcDtlPS90b3B8Ym90dG9tLy50ZXN0KGUpLG49ZT8yKmEubGVmdC1vK3I6MiphLnRvcC1uK3Mscz1lP1wib2Zmc2V0V2lkdGhcIjpcIm9mZnNldEhlaWdodFwiO2kub2Zmc2V0KHQpLHRoaXMucmVwbGFjZUFycm93KG4saVswXVtzXSxlKX0sbC5wcm90b3R5cGUucmVwbGFjZUFycm93PWZ1bmN0aW9uKHQsZSxpKXt0aGlzLmFycm93KCkuY3NzKGk/XCJsZWZ0XCI6XCJ0b3BcIiw1MCooMS10L2UpK1wiJVwiKS5jc3MoaT9cInRvcFwiOlwibGVmdFwiLFwiXCIpfSxsLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50aXAoKSxlPXRoaXMuZ2V0VGl0bGUoKTt0aGlzLm9wdGlvbnMuaHRtbD8odGhpcy5vcHRpb25zLnNhbml0aXplJiYoZT1uKGUsdGhpcy5vcHRpb25zLndoaXRlTGlzdCx0aGlzLm9wdGlvbnMuc2FuaXRpemVGbikpLHQuZmluZChcIi50b29sdGlwLWlubmVyXCIpLmh0bWwoZSkpOnQuZmluZChcIi50b29sdGlwLWlubmVyXCIpLnRleHQoZSksdC5yZW1vdmVDbGFzcyhcImZhZGUgaW4gdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0XCIpfSxsLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1mKHRoaXMuJHRpcCksbz1mLkV2ZW50KFwiaGlkZS5icy5cIit0aGlzLnR5cGUpO2Z1bmN0aW9uIG4oKXtcImluXCIhPWUuaG92ZXJTdGF0ZSYmaS5kZXRhY2goKSxlLiRlbGVtZW50JiZlLiRlbGVtZW50LnJlbW92ZUF0dHIoXCJhcmlhLWRlc2NyaWJlZGJ5XCIpLnRyaWdnZXIoXCJoaWRkZW4uYnMuXCIrZS50eXBlKSx0JiZ0KCl9aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKG8pLCFvLmlzRGVmYXVsdFByZXZlbnRlZCgpKXJldHVybiBpLnJlbW92ZUNsYXNzKFwiaW5cIiksZi5zdXBwb3J0LnRyYW5zaXRpb24mJmkuaGFzQ2xhc3MoXCJmYWRlXCIpP2kub25lKFwiYnNUcmFuc2l0aW9uRW5kXCIsbikuZW11bGF0ZVRyYW5zaXRpb25FbmQobC5UUkFOU0lUSU9OX0RVUkFUSU9OKTpuKCksdGhpcy5ob3ZlclN0YXRlPW51bGwsdGhpc30sbC5wcm90b3R5cGUuZml4VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRlbGVtZW50OyF0LmF0dHIoXCJ0aXRsZVwiKSYmXCJzdHJpbmdcIj09dHlwZW9mIHQuYXR0cihcImRhdGEtb3JpZ2luYWwtdGl0bGVcIil8fHQuYXR0cihcImRhdGEtb3JpZ2luYWwtdGl0bGVcIix0LmF0dHIoXCJ0aXRsZVwiKXx8XCJcIikuYXR0cihcInRpdGxlXCIsXCJcIil9LGwucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfSxsLnByb3RvdHlwZS5nZXRQb3NpdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx0aGlzLiRlbGVtZW50KVswXSxpPVwiQk9EWVwiPT1lLnRhZ05hbWUsbz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO251bGw9PW8ud2lkdGgmJihvPWYuZXh0ZW5kKHt9LG8se3dpZHRoOm8ucmlnaHQtby5sZWZ0LGhlaWdodDpvLmJvdHRvbS1vLnRvcH0pKTtlPXdpbmRvdy5TVkdFbGVtZW50JiZlIGluc3RhbmNlb2Ygd2luZG93LlNWR0VsZW1lbnQsZT1pP3t0b3A6MCxsZWZ0OjB9OmU/bnVsbDp0Lm9mZnNldCgpLHQ9e3Njcm9sbDppP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOnQuc2Nyb2xsVG9wKCl9LGk9aT97d2lkdGg6Zih3aW5kb3cpLndpZHRoKCksaGVpZ2h0OmYod2luZG93KS5oZWlnaHQoKX06bnVsbDtyZXR1cm4gZi5leHRlbmQoe30sbyx0LGksZSl9LGwucHJvdG90eXBlLmdldENhbGN1bGF0ZWRPZmZzZXQ9ZnVuY3Rpb24odCxlLGksbyl7cmV0dXJuXCJib3R0b21cIj09dD97dG9wOmUudG9wK2UuaGVpZ2h0LGxlZnQ6ZS5sZWZ0K2Uud2lkdGgvMi1pLzJ9OlwidG9wXCI9PXQ/e3RvcDplLnRvcC1vLGxlZnQ6ZS5sZWZ0K2Uud2lkdGgvMi1pLzJ9OlwibGVmdFwiPT10P3t0b3A6ZS50b3ArZS5oZWlnaHQvMi1vLzIsbGVmdDplLmxlZnQtaX06e3RvcDplLnRvcCtlLmhlaWdodC8yLW8vMixsZWZ0OmUubGVmdCtlLndpZHRofX0sbC5wcm90b3R5cGUuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhPWZ1bmN0aW9uKHQsZSxpLG8pe3ZhciBuPXt0b3A6MCxsZWZ0OjB9O2lmKCF0aGlzLiR2aWV3cG9ydClyZXR1cm4gbjt2YXIgcyxhPXRoaXMub3B0aW9ucy52aWV3cG9ydCYmdGhpcy5vcHRpb25zLnZpZXdwb3J0LnBhZGRpbmd8fDAscj10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtyZXR1cm4vcmlnaHR8bGVmdC8udGVzdCh0KT8odD1lLnRvcC1hLXIuc2Nyb2xsLHM9ZS50b3ArYS1yLnNjcm9sbCtvLHQ8ci50b3A/bi50b3A9ci50b3AtdDpzPnIudG9wK3IuaGVpZ2h0JiYobi50b3A9ci50b3Arci5oZWlnaHQtcykpOihzPWUubGVmdC1hLGk9ZS5sZWZ0K2EraSxzPHIubGVmdD9uLmxlZnQ9ci5sZWZ0LXM6aT5yLnJpZ2h0JiYobi5sZWZ0PXIubGVmdCtyLndpZHRoLWkpKSxufSxsLnByb3RvdHlwZS5nZXRUaXRsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGVsZW1lbnQsZT10aGlzLm9wdGlvbnM7cmV0dXJuIHQuYXR0cihcImRhdGEtb3JpZ2luYWwtdGl0bGVcIil8fChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRpdGxlP2UudGl0bGUuY2FsbCh0WzBdKTplLnRpdGxlKX0sbC5wcm90b3R5cGUuZ2V0VUlEPWZ1bmN0aW9uKHQpe2Zvcig7dCs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOyk7cmV0dXJuIHR9LGwucHJvdG90eXBlLnRpcD1mdW5jdGlvbigpe2lmKCF0aGlzLiR0aXAmJih0aGlzLiR0aXA9Zih0aGlzLm9wdGlvbnMudGVtcGxhdGUpLDEhPXRoaXMuJHRpcC5sZW5ndGgpKXRocm93IG5ldyBFcnJvcih0aGlzLnR5cGUrXCIgYHRlbXBsYXRlYCBvcHRpb24gbXVzdCBjb25zaXN0IG9mIGV4YWN0bHkgMSB0b3AtbGV2ZWwgZWxlbWVudCFcIik7cmV0dXJuIHRoaXMuJHRpcH0sbC5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZChcIi50b29sdGlwLWFycm93XCIpfSxsLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITB9LGwucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITF9LGwucHJvdG90eXBlLnRvZ2dsZUVuYWJsZWQ9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9IXRoaXMuZW5hYmxlZH0sbC5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dCYmKChlPWYodC5jdXJyZW50VGFyZ2V0KS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxmKHQuY3VycmVudFRhcmdldCkuZGF0YShcImJzLlwiK3RoaXMudHlwZSxlKSkpLHQ/KGUuaW5TdGF0ZS5jbGljaz0hZS5pblN0YXRlLmNsaWNrLGUuaXNJblN0YXRlVHJ1ZSgpP2UuZW50ZXIoZSk6ZS5sZWF2ZShlKSk6ZS50aXAoKS5oYXNDbGFzcyhcImluXCIpP2UubGVhdmUoZSk6ZS5lbnRlcihlKX0sbC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCksdGhpcy5oaWRlKGZ1bmN0aW9uKCl7dC4kZWxlbWVudC5vZmYoXCIuXCIrdC50eXBlKS5yZW1vdmVEYXRhKFwiYnMuXCIrdC50eXBlKSx0LiR0aXAmJnQuJHRpcC5kZXRhY2goKSx0LiR0aXA9bnVsbCx0LiRhcnJvdz1udWxsLHQuJHZpZXdwb3J0PW51bGwsdC4kZWxlbWVudD1udWxsfSl9LGwucHJvdG90eXBlLnNhbml0aXplSHRtbD1mdW5jdGlvbih0KXtyZXR1cm4gbih0LHRoaXMub3B0aW9ucy53aGl0ZUxpc3QsdGhpcy5vcHRpb25zLnNhbml0aXplRm4pfTt2YXIgZT1mLmZuLnRvb2x0aXA7Zi5mbi50b29sdGlwPWZ1bmN0aW9uKG8pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1mKHRoaXMpLGU9dC5kYXRhKFwiYnMudG9vbHRpcFwiKSxpPVwib2JqZWN0XCI9PXR5cGVvZiBvJiZvOyFlJiYvZGVzdHJveXxoaWRlLy50ZXN0KG8pfHwoZXx8dC5kYXRhKFwiYnMudG9vbHRpcFwiLGU9bmV3IGwodGhpcyxpKSksXCJzdHJpbmdcIj09dHlwZW9mIG8mJmVbb10oKSl9KX0sZi5mbi50b29sdGlwLkNvbnN0cnVjdG9yPWwsZi5mbi50b29sdGlwLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZi5mbi50b29sdGlwPWUsdGhpc319KGpRdWVyeSksZnVuY3Rpb24obil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcyh0LGUpe3RoaXMuaW5pdChcInBvcG92ZXJcIix0LGUpfWlmKCFuLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKFwiUG9wb3ZlciByZXF1aXJlcyB0b29sdGlwLmpzXCIpO3MuVkVSU0lPTj1cIjMuNC4xXCIscy5ERUZBVUxUUz1uLmV4dGVuZCh7fSxuLmZuLnRvb2x0aXAuQ29uc3RydWN0b3IuREVGQVVMVFMse3BsYWNlbWVudDpcInJpZ2h0XCIsdHJpZ2dlcjpcImNsaWNrXCIsY29udGVudDpcIlwiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwicG9wb3ZlclwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGgzIGNsYXNzPVwicG9wb3Zlci10aXRsZVwiPjwvaDM+PGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudFwiPjwvZGl2PjwvZGl2Pid9KSwoKHMucHJvdG90eXBlPW4uZXh0ZW5kKHt9LG4uZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1zKS5wcm90b3R5cGUuZ2V0RGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ERUZBVUxUU30scy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcy50aXAoKSxpPXRoaXMuZ2V0VGl0bGUoKSxvPXRoaXMuZ2V0Q29udGVudCgpO3RoaXMub3B0aW9ucy5odG1sPyh0PXR5cGVvZiBvLHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKGk9dGhpcy5zYW5pdGl6ZUh0bWwoaSksXCJzdHJpbmdcIj09dCYmKG89dGhpcy5zYW5pdGl6ZUh0bWwobykpKSxlLmZpbmQoXCIucG9wb3Zlci10aXRsZVwiKS5odG1sKGkpLGUuZmluZChcIi5wb3BvdmVyLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5kZXRhY2goKS5lbmQoKVtcInN0cmluZ1wiPT10P1wiaHRtbFwiOlwiYXBwZW5kXCJdKG8pKTooZS5maW5kKFwiLnBvcG92ZXItdGl0bGVcIikudGV4dChpKSxlLmZpbmQoXCIucG9wb3Zlci1jb250ZW50XCIpLmNoaWxkcmVuKCkuZGV0YWNoKCkuZW5kKCkudGV4dChvKSksZS5yZW1vdmVDbGFzcyhcImZhZGUgdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0IGluXCIpLGUuZmluZChcIi5wb3BvdmVyLXRpdGxlXCIpLmh0bWwoKXx8ZS5maW5kKFwiLnBvcG92ZXItdGl0bGVcIikuaGlkZSgpfSxzLnByb3RvdHlwZS5oYXNDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKXx8dGhpcy5nZXRDb250ZW50KCl9LHMucHJvdG90eXBlLmdldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRlbGVtZW50LGU9dGhpcy5vcHRpb25zO3JldHVybiB0LmF0dHIoXCJkYXRhLWNvbnRlbnRcIil8fChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmNvbnRlbnQ/ZS5jb250ZW50LmNhbGwodFswXSk6ZS5jb250ZW50KX0scy5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZChcIi5hcnJvd1wiKX07dmFyIHQ9bi5mbi5wb3BvdmVyO24uZm4ucG9wb3Zlcj1mdW5jdGlvbihvKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bih0aGlzKSxlPXQuZGF0YShcImJzLnBvcG92ZXJcIiksaT1cIm9iamVjdFwiPT10eXBlb2YgbyYmbzshZSYmL2Rlc3Ryb3l8aGlkZS8udGVzdChvKXx8KGV8fHQuZGF0YShcImJzLnBvcG92ZXJcIixlPW5ldyBzKHRoaXMsaSkpLFwic3RyaW5nXCI9PXR5cGVvZiBvJiZlW29dKCkpfSl9LG4uZm4ucG9wb3Zlci5Db25zdHJ1Y3Rvcj1zLG4uZm4ucG9wb3Zlci5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uZm4ucG9wb3Zlcj10LHRoaXN9fShqUXVlcnkpLGZ1bmN0aW9uKG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHModCxlKXt0aGlzLiRib2R5PW4oZG9jdW1lbnQuYm9keSksdGhpcy4kc2Nyb2xsRWxlbWVudD1uKHQpLmlzKGRvY3VtZW50LmJvZHkpP24od2luZG93KTpuKHQpLHRoaXMub3B0aW9ucz1uLmV4dGVuZCh7fSxzLkRFRkFVTFRTLGUpLHRoaXMuc2VsZWN0b3I9KHRoaXMub3B0aW9ucy50YXJnZXR8fFwiXCIpK1wiIC5uYXYgbGkgPiBhXCIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbihcInNjcm9sbC5icy5zY3JvbGxzcHlcIixuLnByb3h5KHRoaXMucHJvY2Vzcyx0aGlzKSksdGhpcy5yZWZyZXNoKCksdGhpcy5wcm9jZXNzKCl9ZnVuY3Rpb24gZShvKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bih0aGlzKSxlPXQuZGF0YShcImJzLnNjcm9sbHNweVwiKSxpPVwib2JqZWN0XCI9PXR5cGVvZiBvJiZvO2V8fHQuZGF0YShcImJzLnNjcm9sbHNweVwiLGU9bmV3IHModGhpcyxpKSksXCJzdHJpbmdcIj09dHlwZW9mIG8mJmVbb10oKX0pfXMuVkVSU0lPTj1cIjMuNC4xXCIscy5ERUZBVUxUUz17b2Zmc2V0OjEwfSxzLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxzLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxpPVwib2Zmc2V0XCIsbz0wO3RoaXMub2Zmc2V0cz1bXSx0aGlzLnRhcmdldHM9W10sdGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxuLmlzV2luZG93KHRoaXMuJHNjcm9sbEVsZW1lbnRbMF0pfHwoaT1cInBvc2l0aW9uXCIsbz10aGlzLiRzY3JvbGxFbGVtZW50LnNjcm9sbFRvcCgpKSx0aGlzLiRib2R5LmZpbmQodGhpcy5zZWxlY3RvcikubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9bih0aGlzKSxlPXQuZGF0YShcInRhcmdldFwiKXx8dC5hdHRyKFwiaHJlZlwiKSx0PS9eIy4vLnRlc3QoZSkmJm4oZSk7cmV0dXJuIHQmJnQubGVuZ3RoJiZ0LmlzKFwiOnZpc2libGVcIik/W1t0W2ldKCkudG9wK28sZV1dOm51bGx9KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0tZVswXX0pLmVhY2goZnVuY3Rpb24oKXt0Lm9mZnNldHMucHVzaCh0aGlzWzBdKSx0LnRhcmdldHMucHVzaCh0aGlzWzFdKX0pfSxzLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLiRzY3JvbGxFbGVtZW50LnNjcm9sbFRvcCgpK3RoaXMub3B0aW9ucy5vZmZzZXQsaT10aGlzLmdldFNjcm9sbEhlaWdodCgpLG89dGhpcy5vcHRpb25zLm9mZnNldCtpLXRoaXMuJHNjcm9sbEVsZW1lbnQuaGVpZ2h0KCksbj10aGlzLm9mZnNldHMscz10aGlzLnRhcmdldHMsYT10aGlzLmFjdGl2ZVRhcmdldDtpZih0aGlzLnNjcm9sbEhlaWdodCE9aSYmdGhpcy5yZWZyZXNoKCksbzw9ZSlyZXR1cm4gYSE9KHQ9c1tzLmxlbmd0aC0xXSkmJnRoaXMuYWN0aXZhdGUodCk7aWYoYSYmZTxuWzBdKXJldHVybiB0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuY2xlYXIoKTtmb3IodD1uLmxlbmd0aDt0LS07KWEhPXNbdF0mJmU+PW5bdF0mJih2b2lkIDA9PT1uW3QrMV18fGU8blt0KzFdKSYmdGhpcy5hY3RpdmF0ZShzW3RdKX0scy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVUYXJnZXQ9dCx0aGlzLmNsZWFyKCk7dD10aGlzLnNlbGVjdG9yKydbZGF0YS10YXJnZXQ9XCInK3QrJ1wiXSwnK3RoaXMuc2VsZWN0b3IrJ1tocmVmPVwiJyt0KydcIl0nLHQ9bih0KS5wYXJlbnRzKFwibGlcIikuYWRkQ2xhc3MoXCJhY3RpdmVcIik7dC5wYXJlbnQoXCIuZHJvcGRvd24tbWVudVwiKS5sZW5ndGgmJih0PXQuY2xvc2VzdChcImxpLmRyb3Bkb3duXCIpLmFkZENsYXNzKFwiYWN0aXZlXCIpKSx0LnRyaWdnZXIoXCJhY3RpdmF0ZS5icy5zY3JvbGxzcHlcIil9LHMucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7bih0aGlzLnNlbGVjdG9yKS5wYXJlbnRzVW50aWwodGhpcy5vcHRpb25zLnRhcmdldCxcIi5hY3RpdmVcIikucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIil9O3ZhciB0PW4uZm4uc2Nyb2xsc3B5O24uZm4uc2Nyb2xsc3B5PWUsbi5mbi5zY3JvbGxzcHkuQ29uc3RydWN0b3I9cyxuLmZuLnNjcm9sbHNweS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uZm4uc2Nyb2xsc3B5PXQsdGhpc30sbih3aW5kb3cpLm9uKFwibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGlcIixmdW5jdGlvbigpe24oJ1tkYXRhLXNweT1cInNjcm9sbFwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1uKHRoaXMpO2UuY2FsbCh0LHQuZGF0YSgpKX0pfSl9KGpRdWVyeSksZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcih0KXt0aGlzLmVsZW1lbnQ9YSh0KX1mdW5jdGlvbiBlKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1hKHRoaXMpLGU9dC5kYXRhKFwiYnMudGFiXCIpO2V8fHQuZGF0YShcImJzLnRhYlwiLGU9bmV3IHIodGhpcykpLFwic3RyaW5nXCI9PXR5cGVvZiBpJiZlW2ldKCl9KX1yLlZFUlNJT049XCIzLjQuMVwiLHIuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsci5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe3ZhciB0LGUsaSxvPXRoaXMuZWxlbWVudCxuPW8uY2xvc2VzdChcInVsOm5vdCguZHJvcGRvd24tbWVudSlcIikscz0ocz1vLmRhdGEoXCJ0YXJnZXRcIikpfHwocz1vLmF0dHIoXCJocmVmXCIpKSYmcy5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLFwiXCIpO28ucGFyZW50KFwibGlcIikuaGFzQ2xhc3MoXCJhY3RpdmVcIil8fCh0PW4uZmluZChcIi5hY3RpdmU6bGFzdCBhXCIpLGU9YS5FdmVudChcImhpZGUuYnMudGFiXCIse3JlbGF0ZWRUYXJnZXQ6b1swXX0pLGk9YS5FdmVudChcInNob3cuYnMudGFiXCIse3JlbGF0ZWRUYXJnZXQ6dFswXX0pLHQudHJpZ2dlcihlKSxvLnRyaWdnZXIoaSksaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8ZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHM9YShkb2N1bWVudCkuZmluZChzKSx0aGlzLmFjdGl2YXRlKG8uY2xvc2VzdChcImxpXCIpLG4pLHRoaXMuYWN0aXZhdGUocyxzLnBhcmVudCgpLGZ1bmN0aW9uKCl7dC50cmlnZ2VyKHt0eXBlOlwiaGlkZGVuLmJzLnRhYlwiLHJlbGF0ZWRUYXJnZXQ6b1swXX0pLG8udHJpZ2dlcih7dHlwZTpcInNob3duLmJzLnRhYlwiLHJlbGF0ZWRUYXJnZXQ6dFswXX0pfSkpKX0sci5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24odCxlLGkpe3ZhciBvPWUuZmluZChcIj4gLmFjdGl2ZVwiKSxuPWkmJmEuc3VwcG9ydC50cmFuc2l0aW9uJiYoby5sZW5ndGgmJm8uaGFzQ2xhc3MoXCJmYWRlXCIpfHwhIWUuZmluZChcIj4gLmZhZGVcIikubGVuZ3RoKTtmdW5jdGlvbiBzKCl7by5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKS5maW5kKFwiPiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmVcIikucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIikuZW5kKCkuZmluZCgnW2RhdGEtdG9nZ2xlPVwidGFiXCJdJykuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMSksdC5hZGRDbGFzcyhcImFjdGl2ZVwiKS5maW5kKCdbZGF0YS10b2dnbGU9XCJ0YWJcIl0nKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSxuPyh0WzBdLm9mZnNldFdpZHRoLHQuYWRkQ2xhc3MoXCJpblwiKSk6dC5yZW1vdmVDbGFzcyhcImZhZGVcIiksdC5wYXJlbnQoXCIuZHJvcGRvd24tbWVudVwiKS5sZW5ndGgmJnQuY2xvc2VzdChcImxpLmRyb3Bkb3duXCIpLmFkZENsYXNzKFwiYWN0aXZlXCIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT1cInRhYlwiXScpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITApLGkmJmkoKX1vLmxlbmd0aCYmbj9vLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLHMpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHIuVFJBTlNJVElPTl9EVVJBVElPTik6cygpLG8ucmVtb3ZlQ2xhc3MoXCJpblwiKX07dmFyIHQ9YS5mbi50YWI7ZnVuY3Rpb24gaSh0KXt0LnByZXZlbnREZWZhdWx0KCksZS5jYWxsKGEodGhpcyksXCJzaG93XCIpfWEuZm4udGFiPWUsYS5mbi50YWIuQ29uc3RydWN0b3I9cixhLmZuLnRhYi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udGFiPXQsdGhpc30sYShkb2N1bWVudCkub24oXCJjbGljay5icy50YWIuZGF0YS1hcGlcIiwnW2RhdGEtdG9nZ2xlPVwidGFiXCJdJyxpKS5vbihcImNsaWNrLmJzLnRhYi5kYXRhLWFwaVwiLCdbZGF0YS10b2dnbGU9XCJwaWxsXCJdJyxpKX0oalF1ZXJ5KSxmdW5jdGlvbihhKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1mdW5jdGlvbih0LGUpe3RoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxyLkRFRkFVTFRTLGUpO2U9dGhpcy5vcHRpb25zLnRhcmdldD09PXIuREVGQVVMVFMudGFyZ2V0P2EodGhpcy5vcHRpb25zLnRhcmdldCk6YShkb2N1bWVudCkuZmluZCh0aGlzLm9wdGlvbnMudGFyZ2V0KTt0aGlzLiR0YXJnZXQ9ZS5vbihcInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaVwiLGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpKS5vbihcImNsaWNrLmJzLmFmZml4LmRhdGEtYXBpXCIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEodCksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2Z1bmN0aW9uIGkobyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PWEodGhpcyksZT10LmRhdGEoXCJicy5hZmZpeFwiKSxpPVwib2JqZWN0XCI9PXR5cGVvZiBvJiZvO2V8fHQuZGF0YShcImJzLmFmZml4XCIsZT1uZXcgcih0aGlzLGkpKSxcInN0cmluZ1wiPT10eXBlb2YgbyYmZVtvXSgpfSl9ci5WRVJTSU9OPVwiMy40LjFcIixyLlJFU0VUPVwiYWZmaXggYWZmaXgtdG9wIGFmZml4LWJvdHRvbVwiLHIuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LHIucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKHQsZSxpLG8pe3ZhciBuPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxzPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksYT10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9aSYmXCJ0b3BcIj09dGhpcy5hZmZpeGVkKXJldHVybiBuPGkmJlwidG9wXCI7aWYoXCJib3R0b21cIj09dGhpcy5hZmZpeGVkKXJldHVybiBudWxsIT1pPyEobit0aGlzLnVucGluPD1zLnRvcCkmJlwiYm90dG9tXCI6IShuK2E8PXQtbykmJlwiYm90dG9tXCI7dmFyIHI9bnVsbD09dGhpcy5hZmZpeGVkLHM9cj9uOnMudG9wO3JldHVybiBudWxsIT1pJiZuPD1pP1widG9wXCI6bnVsbCE9byYmdC1vPD1zKyhyP2E6ZSkmJlwiYm90dG9tXCJ9LHIucHJvdG90eXBlLmdldFBpbm5lZE9mZnNldD1mdW5jdGlvbigpe2lmKHRoaXMucGlubmVkT2Zmc2V0KXJldHVybiB0aGlzLnBpbm5lZE9mZnNldDt0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHIuUkVTRVQpLmFkZENsYXNzKFwiYWZmaXhcIik7dmFyIHQ9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGU9dGhpcy4kZWxlbWVudC5vZmZzZXQoKTtyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ9ZS50b3AtdH0sci5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3A9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpLDEpfSxyLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy4kZWxlbWVudC5pcyhcIjp2aXNpYmxlXCIpKXt2YXIgdD10aGlzLiRlbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vcHRpb25zLm9mZnNldCxpPWUudG9wLG89ZS5ib3R0b20sbj1NYXRoLm1heChhKGRvY3VtZW50KS5oZWlnaHQoKSxhKGRvY3VtZW50LmJvZHkpLmhlaWdodCgpKTtcIm9iamVjdFwiIT10eXBlb2YgZSYmKG89aT1lKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBpJiYoaT1lLnRvcCh0aGlzLiRlbGVtZW50KSksXCJmdW5jdGlvblwiPT10eXBlb2YgbyYmKG89ZS5ib3R0b20odGhpcy4kZWxlbWVudCkpO3ZhciBzPXRoaXMuZ2V0U3RhdGUobix0LGksbyk7aWYodGhpcy5hZmZpeGVkIT1zKXtudWxsIT10aGlzLnVucGluJiZ0aGlzLiRlbGVtZW50LmNzcyhcInRvcFwiLFwiXCIpO2U9XCJhZmZpeFwiKyhzP1wiLVwiK3M6XCJcIiksaT1hLkV2ZW50KGUrXCIuYnMuYWZmaXhcIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGkpLGkuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO3RoaXMuYWZmaXhlZD1zLHRoaXMudW5waW49XCJib3R0b21cIj09cz90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhyLlJFU0VUKS5hZGRDbGFzcyhlKS50cmlnZ2VyKGUucmVwbGFjZShcImFmZml4XCIsXCJhZmZpeGVkXCIpK1wiLmJzLmFmZml4XCIpfVwiYm90dG9tXCI9PXMmJnRoaXMuJGVsZW1lbnQub2Zmc2V0KHt0b3A6bi10LW99KX19O3ZhciB0PWEuZm4uYWZmaXg7YS5mbi5hZmZpeD1pLGEuZm4uYWZmaXguQ29uc3RydWN0b3I9cixhLmZuLmFmZml4Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5hZmZpeD10LHRoaXN9LGEod2luZG93KS5vbihcImxvYWRcIixmdW5jdGlvbigpe2EoJ1tkYXRhLXNweT1cImFmZml4XCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciB0PWEodGhpcyksZT10LmRhdGEoKTtlLm9mZnNldD1lLm9mZnNldHx8e30sbnVsbCE9ZS5vZmZzZXRCb3R0b20mJihlLm9mZnNldC5ib3R0b209ZS5vZmZzZXRCb3R0b20pLG51bGwhPWUub2Zmc2V0VG9wJiYoZS5vZmZzZXQudG9wPWUub2Zmc2V0VG9wKSxpLmNhbGwodCxlKX0pfSl9KGpRdWVyeSk7XG5cblxuXG4ifSwgImhlYWRlcnNTaXplIjogMCwgImJvZHlTaXplIjogMTA3MDEyLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAxMDcwMTJ9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiA1OC40MjEsICJyZWNlaXZlIjogNTQuMzA3fSwgInBhZ2VyZWYiOiAicGFnZUBmMGI3YWQyN2FjZGI2ZDJhNDQ4ODM3OWUzODZiOGUyMCIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiNTQuMjI5LjE3MC42NiIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjIiLCAic3ViamVjdE5hbWUiOiAiZW5jcnlwdGVkY29ubmVjdGlvbi5uZXQiLCAiaXNzdWVyIjogIkFtYXpvbiBSU0EgMjA0OCBNMDIiLCAidmFsaWRGcm9tIjogMTY5MDE1NjgwMCwgInZhbGlkVG8iOiAxNzI0MTk4Mzk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjQtMDYtMThUMTM6MDU6MDcuNjE2WiIsICJ0aW1lIjogNDcuNDkxLCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS8wV2M5UkhrLnBuZyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogImkuaW1ndXIuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiLzBXYzlSSGsucG5nIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAiaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qLCovKjtxPTAuOCJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyLCB6c3RkIn0sIHsibmFtZSI6ICJhY2NlcHQtbGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMsZW47cT0wLjkifSwgeyJuYW1lIjogInByaW9yaXR5IiwgInZhbHVlIjogInU9MiwgaSJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL3NlY3VyZS5zaWduLWRvYy5jb20vcGFnZXMvODkyNzRhYTU3Yzk2L1hUakpoVEdGelVISXJTbUpWUVRoSlkzaFNkMEpVSzA1bWMzWjFOWGxZTlhaNVUyeHhTMFk1TlhoT2NHUXdUV2x6VjNKaGVXcEpWbFJxVGpoU1NWTm5VQ3R3UkV0VUswZzBWbEJ6VlROUmNYRkRZWEZtV0VGeWVIVkhRVTVWUTNKdmNrMVBXRzlZWlhWVGJrNUlWMHBWY0VGaE4wWXJSMDA1VGsxd2JFMHhiM0pDTnlzeVpteDNjbEIzU0hock1rdzBOM293TUhweVExaDNkbFZ2Tm1sVFNtczRVMjlZUlRVM1Jtd3pPRXB3TDFwa1JFcHZPVkpHU1MwdFREbDZkM0ZFVHpkcGRtUlpZVkZqVFMwdFRYYzBUekZHVVhGSFlteEpTbFJKTDJJcmVDOTZkejA5In0sIHsibmFtZSI6ICJzZWMtY2gtdWEiLCAidmFsdWUiOiAiXCJDaHJvbWl1bVwiO3Y9XCIxMjVcIiwgXCJOb3QuQS9CcmFuZFwiO3Y9XCIyNFwiIn0sIHsibmFtZSI6ICJzZWMtY2gtdWEtbW9iaWxlIiwgInZhbHVlIjogIj8wIn0sIHsibmFtZSI6ICJzZWMtY2gtdWEtcGxhdGZvcm0iLCAidmFsdWUiOiAiXCJXaW5kb3dzXCIifSwgeyJuYW1lIjogInNlYy1mZXRjaC1kZXN0IiwgInZhbHVlIjogImltYWdlIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtc2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJ1c2VyLWFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMjUuMC42NDIyLjI2IFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA5NDQsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImFjY2VwdC1yYW5nZXMiLCAidmFsdWUiOiAiYnl0ZXMifSwgeyJuYW1lIjogImFjY2Vzcy1jb250cm9sLWFsbG93LW1ldGhvZHMiLCAidmFsdWUiOiAiR0VULCBPUFRJT05TIn0sIHsibmFtZSI6ICJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4iLCAidmFsdWUiOiAiKiJ9LCB7Im5hbWUiOiAiYWdlIiwgInZhbHVlIjogIjEzMTU0NDQifSwgeyJuYW1lIjogImNhY2hlLWNvbnRyb2wiLCAidmFsdWUiOiAicHVibGljLCBtYXgtYWdlPTMxNTM2MDAwIn0sIHsibmFtZSI6ICJjb250ZW50LWxlbmd0aCIsICJ2YWx1ZSI6ICI5ODY1NCJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogImltYWdlL3BuZyJ9LCB7Im5hbWUiOiAiZGF0ZSIsICJ2YWx1ZSI6ICJUdWUsIDE4IEp1biAyMDI0IDEzOjA1OjA3IEdNVCJ9LCB7Im5hbWUiOiAiZXRhZyIsICJ2YWx1ZSI6ICJcImM5ODM0Yjg1NWYxNTVkM2YzZjU0ZmZhZTg2NWY2YjhmXCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiTW9uLCAzMCBEZWMgMjAxOSAxNzoyMTozMiBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJjYXQgZmFjdG9yeSAxLjAifSwgeyJuYW1lIjogInN0cmljdC10cmFuc3BvcnQtc2VjdXJpdHkiLCAidmFsdWUiOiAibWF4LWFnZT0zMDAifSwgeyJuYW1lIjogIngtYW16LWNmLWlkIiwgInZhbHVlIjogImN5UlBrVHprUHlJd1dkR3k2cENXQl96RTBiZTgxckNqV1dvUUlUUXB2Z0V6YVlFZUwyM2cwUT09In0sIHsibmFtZSI6ICJ4LWFtei1jZi1wb3AiLCAidmFsdWUiOiAiSUFEODktUDEifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiTWlzcyBmcm9tIGNsb3VkZnJvbnQsIEhJVCwgSElUIn0sIHsibmFtZSI6ICJ4LWNhY2hlLWhpdHMiLCAidmFsdWUiOiAiNzYsIDAifSwgeyJuYW1lIjogIngtY29udGVudC10eXBlLW9wdGlvbnMiLCAidmFsdWUiOiAibm9zbmlmZiJ9LCB7Im5hbWUiOiAieC1zZXJ2ZWQtYnkiLCAidmFsdWUiOiAiY2FjaGUtaWFkLWtqeW83MTAwMTM5LUlBRCwgY2FjaGUtZnJhLWV0b3U4MjIwMTU5LUZSQSJ9LCB7Im5hbWUiOiAieC10aW1lciIsICJ2YWx1ZSI6ICJTMTcxODcxNTkwOC42MzQ1NzAsVlMwLFZFMSJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA5ODY1NCwgIm1pbWVUeXBlIjogImltYWdlL3BuZyIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFsZ0FBQUpZQ0FZQUFBQytacGpjQUFBZ0FFbEVRVlI0bk96ZGQ1aGI5M2tuK3UrcDZHMzZrTU02SkllZGxGalZLRkcyU01tU0hUa3VpWktOZmRlSjc4WnhuR3l5NitjbVR0MmJlemZlSjdtN1NaemMzVFJuRXp1cjJQRzFIZG1PUlhWU2phUkVVU3dpT1p6ZUcyYlE2Mm4zRHhEREFYQXdBMkFPNnJ5ZjU1RklEakRBd1RrSE9DL2UzL3Q3Zjh4dmpwelJRQWdoaEJCQ0RNTldld01JSVlRUVFob05CVmlFRUVJSUlRYWpBSXNRUWdnaHhHQVVZQkZDQ0NHRUdJd0NMRUlJSVlRUWcxR0FSUWdoaEJCaU1BcXdDQ0dFRUVJTVJnRVdJWVFRUW9qQktNQWloQkJDQ0RFWUJWaUVFRUlJSVFhakFJc1FRZ2doeEdBVVlCRkNDQ0dFR0l3Q0xFSUlJWVFRZzFHQVJRZ2hoQkJpTUFxd0NDR0VFRUlNUmdFV0lZUVFRb2pCK0dwdlFLTndjV2F3WU5Bc1dITnVpNmtTb29xRXNKcUFwS2xWMkRwU2JYUitrTld5c2dKTURBODdKOExFNW41MEI1VTRKRlZGUUkxRDFiUXFiQ0VoWkNrS3NGYkp4Wm5STEZqQUxwTU10TEFDTEt5QVpsZ1JWT0x3eXRHaVB3QmRuQm10Z20yMW01c2hwa3FZU0FaTC92MnRaby91Ni9iSk1jekwwYUlmejhUeTJDQzZkRytiVEFZUlZhVVZINk9adDhMRFczSitIbEdTbUpKQ1JXL1RhbFhxL0NpRzBjZE5qOEN3MkdUeUdQSlloUjU3STU4VEFFWVN2cG9JZU8yY2lCYk9CcDVkZnNEQnlaa0JEbWlHRlJFbENhOGNXZlgyNS92Y0NTcHh6RXFSRlg5Zjc1aklxb3JocEsvZ2JjaDNYTXQ5Zk5vRVcycWZMbEhzWjJZdDc3OVMxY3I3b2g3UUVPRXF0QWsydEFxMlpTK2UyWnljR1p0TmJ0MXZvUFhFem9sNVg3ZUxONVgwbUFsVnhyeWtmNEhYQzVxeXNReWorOXdxVk16STRaSzJhVFZxOGZ3b3gzRWo1ZE1tMk5BaE9GWU1yckxaT0JHYlRCNVlXYUVzMitYa3pHVjc3TFdBOXQvYVFBRldpVHljSmVmYlRhRllzRmd2T2lBdzlidjdIV3oraXpFTHR1UVBqNEFhaDRyY2IwY1dWbGp4TVYyc1dUOHpJMVYreUtSV3o0OXlIVGRpdlBXaXMrUnpLRzJkNkN6Yk1XM21jNGU3U2VGby96VysrcjNDVjVIQXNMcTFOTVZnd2FKTnNCdTBSWlhGTWd3czNQSVpGanNubHZUWXFxYkJKOFYxYjFzcGkrVVJjaTlHS2xJMUtaVlVxK2RIT1k4Yk1WWXpiNFhGb01Cb25lZ3NTMGJVeFBKd3JUSUFYTXRvL3pXKytoNm5xcEo4M3lxRFNoeGhKWmxSTDhJeURGeXNHUjRoTjd1U3pzb1VVbDlTU3h5c2FjVmhMenNubGx4TDVGTmljSEhtbkdHUjVmWlhxb2c4ZDV2bXBWakZzMWUxZW42VSs3Z1JZMWhaWWRrdkV6NDVockNhUkVLVkYzL200c3l3YzJMZW9LeU50MkVzR1RCOFc1c0ZDMEpxZ3M2WEV0SCthMndVWUpWQUwrVStKMFVRVUhJekphcW13YWZFRUZEaldDL2tmcE8wRkhnQkRTaHgzY2RQODNDV25LeEpzY1dRaFNva3k1RWViZ29yeVpLZXc2dEUwTUU2ZEo5YmIzOTV1TndMa3F5cXkrNnpjcW5HK1ZHSVNoeTNsVlNqUUxiUUl2bGFrUys0a2xVVlUzSW9JN0JLUzM4KzZIME9BSGV6SlVhL0gxaXc4SEFXd3laSHJEWFYzSC8xOXI2b1J6UkVXQUloSzdPaVl1VUx1YXBwdW0raWVxdDVZUmxHOTF0eVVPZjFMMWZ2czVLd2trUk01ODN2NU13NXRVbDJUdFF0QXZZcHNaS2ZmelZxOGZ5bzFIRWpxMk5pZWQzanBFTEZoQlRRRGE2VzhpbXh2Qk5GbkZ4NWpxdUh0OVIxUFdtMTBmNXJYSFJVUzVBOXpDS3BoWDBqajZwU1RnRTNWMmVId01YbURuL0ZWQWtCSlpIemN4c25nbVdZa3AvTEorc0hTTm5mOFBYcUdCS3FYSlhzRlZDYjUwY2xqeHNwblozVnp6TDZwSGpCbVQrZkVvT3NjODZaV042UUM3bmVKSlI2clNldEJ0cC9hd2NORVpaQWhacHhFVFd4UEV3c3YrSzNTd0FZakJzL1pGZEplc05NVVVWQ1FwVno5Z3VReW9hVUd1aEVWUWxCSlo1VDArVGt6UERKTVVpYUN1dWRIbExacWpsa1VZdm5SeVdQR3ltZFhzYXlsSWthUGlXR1ZqYTMvNUtkTmEwNnM1dFFGUUJLeHZ1dVh1dEpxNEgyMzlwUlgrbVRHcUdYa2RnZ3V0RE1XK3UrdjlWeTBvRkN0dlNIZjBET3pZYXNkbGJhU2xrc3ZleFZUSldxK2tGVmErZEhOWTRiS1kzZWNZb3BjdEZGMENFMTk1Z0NNQ3d6T1N2bDlwVnI0eWtMVXlqYWYydEQ0MFlEWlJSV2tyb2ZoQjdlQWc5U0YvNzBzaFZSVFNvb2MxRVByRXp1dCt1RWV2ZkRQNlpLaTY4L3pjSUtFQmkyNU1KbVNWTXhMMFZ6Q25lZG5CbGhKUW1iVGlEZ3JYTEJiYTJkSDlVNGJyVmtuZWdzK25mNjQvTmwySkxsNVJ1K2k1ZHdmcWlhQmxsVmMyb1RSWVlyYWR1eVNab0tueHpMR0s3bjJWVEJkclZxSCt0SkxleS9lbmxmMURNS3NFb1FVT1B3UUw4dFFOcmRaU3RTRXFxTXNKSkVRcFByTmcyc2x5MWFPdHNzWFVPVXZWOVdPeXlSYjM5M2lMbmYrSUpLdk9vQmJhMmRIOVU2Ym5xS1diSmp0VXM1MVJzaFQvQ2pvclFwL0JJVThGbkhsRGV3bU5xbnhPRGlNMXQvZUFRenJZVllJTnAvalkrR0NFdWdhaHFtazhVdHZXSmllVFFMVnF3VG5kaHE5dWkyRmFobFZsYlFuYWtYemhxSzBKdmV2OXJocG56TlIvT3RwMWR0dFhSK1ZQTzRFV05JbW1MWVl4azVxVWJWTk14TG1lODNGaXhhcUVONVFXai9OVDRLc0VvVVZTV01KUU9JbE5BdmlFV3EwL2NHMFZVM3M3WDBDc2tUcXB3emhLU1hmY2xYQTFTTWZET2pNdTV6cC9DOUZ0VEsrVkh0NDBZYVcwQW5ZK3prekhUZUZJajJYMk9qQUdzVkVxcU1LU21FL3ZnODVxV29iaytoNVpoWUhwMUNialBOV3FTM0VMQmUxaU9zSkhXbkllZWJmbDRNcjVKLzlYa1ZhczNWZnRUQytWRUx4NDJzVHI2aHcxSklNQzRibHFZM1k1ZXlNSVdqL2RlNEtFdzJpRStKQVFvd0s2V0NnUFFRajVYVGJ5T1FabUVGMkRteGJKMnpqV0RuUk4zaHVPeGhwclNZSXVjVW56dFlFK2F4dXVMenNKSkVqSk4wOTJjMUZuUXVSalhPajFvNWJ0VldMeDJyOHcwRnNpZ3RpeWtnTnpBcngzdEVyNTFLK3J5dGRqMWtQYWpXL3F1WDkwVTlvd0NyVE5MWmxQU2ZkazZFZ3pYcHpucHpzS2FhRHJEeWRmWXVwbUNaWjFsRCtyeUVsYVJ1UUpJdmFLaFZsVGcvYXVtNHBWVmpxWng2a1crL21Ga2V4U2FlV0liUnJiMUxHbGpQdFpSUGp1VUU5QzJjRFJPcThlc2ZOaUxhZjQySmhnZ3JKS3drTVNXRmRJdXdqWnpaWXpTV1lXRGhqSW5EcVdnNlA2UFBEenB1OVVrdlkySGgrS0pyOGZJRjEzS1pnbHRKVTNNbW92QXN1K3lpMWVRdTJuK05pVEpZUlhKeFpyUUttUjJTNTZWb3dmVS9ZVFdaMDNPb2xwZkxjYkFtM1dHbVV0ZzVjWEdJckZIVnl2bEJ4NjArUlZVcHA4Q1pCUXNYYXk2cXhqRGZMTlNvV3I1TXVVK0p3Y1daTXpKbjJhc3drUHhvL3pXZTJyMnkxeWhGcHhEWXl0WFhnczNGTURKN3dZSnQrR3hJclp3ZmROenFVemhQQU9RUmNoYzV6OGZEV1hTSEIyT3FWUGJoMlZxYmFGSnZhUDgxRmdxd2lxUlhpMkpoQmQxbWpucjBab2NrdE5vc0JHVVpadGtDN0ZMa0c3cG9GTFZ3ZnRCeHExOEpWVVpNNXh4aXdXSzk0RnB4K3I2SHMrU3NlcEJXaVRyUGdCTFgzWDVTR05wL2pZV0dDSXVrYWhwaWF1NU10bGJCdGxnTW5MMUlMc3N3Y0xIbW5QUnZXcTNPNUhDeCtrRkJvWVhLbllJanAyamJ3dkZnWmFhbVoveXRSaTJjSDNUY01wV3lKQWhRdlU3eVhqbUtEYUlyNStjOHkyS0Q2SUpQamlHc0pqUHF0VnljR1haT3pCdFlKMVM1WW90MzU5dCtveFV6V1NPdEhtYk9WV3IvMWR2N29oNVJnRldDZ0JMUCtDRGJhV21CeVBBNGJGK2ZjOS9KWkJDVHlSQ0dFejRFbGR5WmJyS3FWdXlEcjFoNncwSjZUU3J6aWFwU3pvV2FCUXNIYTZyWjEyeUU3UE1ES1AwY0tlWDhvT05XM3hLcW5MTk9IUUNzRjUxbzVxM1liUGJvWmpwN1kxNkVsQVI2NDk2Y1l2bFp1WEkxZEFsVnptazdRQXBIKzY5eFVJQlZnckNTaEkrSjRUN0hCaHl5cjRlSnliOGIxNGxPckJPZE9HeGZqOTZZRis5R0pqSSsvS2JrVUVIUGVkVGVoYWViZHE5NjI1ZnFqOC9qNjdPWGRHL0wxOFY3NlRERDczU2QxUDNHZkRZNGhEUCtQb1RVQkZwaHk3bmR6b202RityMW9oTmY3RGl1dXoxZm43MVUwRUtqcDkzYjhiQnpTODdQcjBWbjhLejN5b3EvYjRUMCtlSGhMZGhwYVZuVk9WTG8rWkcyMG5GYjZaZ0JLUHE0NmZId0ZueXU3VkF4bTU1WG9jZmV5T2NFZ0cvTVhjYUVZWTlXbkhrNUNwSGhZT05FYkRGNWNOaStIZzV1K1dIYUhrc0xBT0N3ZlQyR0VqNWNDazhncUNRd21ReVczRS9wb0swVHA5M2JjMzUrTVR5Tzd5L2N5UHQ3WGprS095ZkN6Vm53eWVhOUdiY0Y1UVMrT25tMjRHM0lkMXkvTTM5ZDkwdXJFWjV1Mm8yajlxNk1uMDBtZy9qZU1xOVpUeTN2djFKVjgzMVJiNmdHcTBRUE9UZmpmc2VtWlMrYzJYb3NMZmhrODU3RmI1L1RVcWhtRy9GWkdmMmhoblMvcVgzVzlyekRFZWtQcHZSd1dUWUxLK2hPTzU5SUJoY3Y4dGxPT0RldnVNMFdWc2o1VUFSU0tlM2xQc3pLWVY2TzRvaTlhMVhuU0NubngzTEhyWkJqQmhSLzNFaDVURWtoSExGMzRhUnI2NHJCVmJZdEpnOCsyYndYSnBZdnk1RFlVWHNYdHBtYjg5NmViLzFRa2tMN2IyMmdBS3NFRHp1MzZGN0lDMkZpZUp4MmIwZFlTZFJzYzFHV1lYU0xzcGNPTSsyMWR1VDlmUXNyTEg1NFJCWDlEL2Q4ZFVJWHcrTzZGL2R0NXVabFA1Q0ExSWVXWGdCeExqaGM4Y0xSaDUxYnNNL2FYdEx2bWhnZWo3bTNRU3h5aVpTVmpsdWh4d3dvL3JnUjQzMnU3VkRKNTFEYXo3WWNXUEY5VXlxOXpNeFNQaVVHdVV5TlRSc0I3Yi9HUjBPRVJXcmlMU3UrTVZaaVlubDh4Tk9UZDNpdTJsUk53M0RTbC9mMjFNVzRhZG5IMkd0dFIzOThIajRsVnRUVTQ1Z3E0Vnh3V0hjZm4zQnV4dGRuTCtVZHB0TExjc1ZVQ1JmRDR3VS92eEdNT0Vjc3JJQ25tM1lYZFk0c2Q5eUtPV1lBaWo1dTJjclYwTEtTenpramhRMTl2R0tjZG04M0xERDZYTnNoL01YMCtaSUtrNWY3WXJKZWRPS292V3ZaOTllNHpuUEtPcTFNbHBQdnVBNG5mRmpRYWN4Ykx0RVNpcnRyZWYrVnFwcnZpM3BEQVZhUmp1VEpYRjBNaitONmRDYWpWaVE5WkhYQ3VUa25zNUxPeUJSU1cxSnJsaHRxV25xZk0vNitrakpIWjRORE9HTHZRbE5Xa2U5eSt5eGY5cXJVYlZpTldqeEh5bjNNaUhHMm1adDE2d2pUemdhSGNEMDZrM0d4UDJydndsNXJlOTZnN09tbTNmaUw2Zk9HYit0cDkzWmNpODdRT1ZNaTJuK05qUUtzSXVsOWdIMS80WWJ1dDVDWUt1RnNjQWdYdytQNFhOc2hyTSthRnR0dGJpcjQ0bmt4UEw3c041MkhuVnR5c2lZTGNneC9QUGw2UVk5ZmpMMEZERnVrTXliWG9qTWxQY2NaLzIwODAzSkE5N24xOXRrSm5RdlNnaHlyZVBZS3FONDVzcHhLSExOQy9QSGs2eFhOT2dDRkY4blhpbnoxaGd0eURNOTZyK2htVWRLZkQzcWZBMEJoMlpKU1dGZ0JKNXliODlaT2t1VlZjLy9WMi91aUhsRU5WcEd5c3lxRkRFSEZWRW4zRFZTdTJvaHl5cTdWU2RQYkI4dlYvS3prV2xhbUorMm9UbVpybjdVOTUyY0FjQzQ0VlBMenIwYXRuU09WT21aazlkYUxUdDFqRlZNbGZIMzIzUldIcUpiT0JzMldMN082V2c4N3QraSsvMGhoYVA4MUxncXdpcFE5ekZMb3QvSCsrSHhPR3Rqb2J0dVZvRmZjM3grZnh6czZGK3RDaHFXV2N5NDRyUHZ6N0d5VjNvVmpJaG1zU3ZZS3FMMXpwSkxIakt4T3Zremp1ZUJ3d2VmUjJlQ1E3bjNYaTA1REx1UjZ3MWxHdDVCcFpMVC8xZzRhSWl4U2RwZnU5YUlUNjBWblFjV1BmekQrYWprM3JTTDBMZ0FEOFFWTUpJTzZIY3ozV2R0TERuVDY0L080R0I3UENSQ08ycnR3N3M1RkpOL3N3bW9PV2RUYU9WTEpZMFpXSjEvMnF0ampjUzQ0cEh2UjNtZnR3TmxWWm5iVDUvSFNiYTNubXRKS28vMjNkbEFHcTBoNjN3eS8ySEVjcDkzYmMrcG5HazA2VU1pVy92RFhIM0phM1RUemZNTjg2U3lXWHZhcVB6NWYxUStxV2pwSHFuSE1TT24wamxWL2ZLSG9JdWg4ZFhUbUZkWXlMSlJlWHpuS3doU085dC9hUUJtc0lsMlB6dWgrQ0Q3czNMSTQ4K2RpZUJ3K09ZYisrSHhEcmRtazkrMDZuUVVCVWxtUjdObFAyOHpOYU9JdEpSYzJMOGd4blBIMzVSVHVIclYzNFhwMFJyZFBVTFVMYm12cEhLbkdNYXMxcFhTeC9zcm9DMlhZa3VYbEc3NmJMTEc5d29JY3kzbk1KcDBsZGtxeElNZHdOamlVY2U0MDhSWTg3Tnl5Nmd6WldsQUwrNjllM2hmMWpBS3NJbDBNait0T3FWOHFQYVIxR3FtZ1lDSVpYSnhXWGM4cFlMMXMwZlVsMzVUVE5VUzVRMDZyRzViSXQ4K2ZhZG12ZTk5cUI3VzFkSTVVNjVqbDh4L1hQVlR3ZlpkYnlxa1I1UXQrU3AzQ3Z5QkhkUUlzNDRxcHp3V0hjOXFqbkhCdXp0c3NtR1NpL2RmNGFJaXdTREZWd3JQZXEwWDl6bnJSaWRQdTdmaGMyeUg4VHRmSlpYdmMxS3AwVmlQYnRlaDAxcjl6aHlaV08rU1ViajZhVGI5cmUvVy9QZGZLT1ZMTlkwYU1ZMlFtMGNnSkRIb3pYeTJzc09vbXUyc0Y3Yi9HUndGV0Nmcmo4L2lMNmZNbDlRdEt2NEcrMkhHOHJtWnJkZXQwQVo5SUJuTSsvQWQwc2kvNTZvQ0trVzltVkxIM3FaUmFPRWVxZmN4STQ5UExHQisxZDlHNVV5RGFmNDJOQXF3U1RTU0RlTlo3QlY4WmZRRm4vSDFGei9KWkx6cDFoN2hxbGQ1VS8rczZ3VU8rcnNSR1pFVE8rRy9udlMxZmxxdWFxbjJPMU1JeEk2dG41TERlZ2h3MTdMSFM5R29lS1F0VE9OcC9qWXRxc0F5UXJsVkp6d3hKRCs5MG01dVdiUlM1emR5TWZkYjJzbmJPTmtLKzNralpRMDFwL2ZHRm5PTHpmZGFPVlJlZlg0dk80RWg4WG5lZlZtTkI1MkpVK2h5cGxXTldDK3FsWTNXKzRLZlVMS1plVFZkTWxVdDZyT1hvdFZOSm43ZlZyb2VzQjlYYWYvWHl2cWhuRkdDVlFmcGltdjV6bjdVZGU2MGR1alBlOWxvN2FqN0F5dGZkdTVpQzVTYmVZa2lmbCt2UkdkMkFKRi9nVUt2S2ZZN1UwakZicWhwTDVkU0xmUHRsWFFuRFJSWlcwTTE4bFNPREJhUnFIN09EK3RQdUhmajY3THRsZWI1R1EvdXZNZEVRWVFWY2k4N2dXZThWM1ZsWnRiNUVRbnA5T2lQUWtGTitScDRqZE16cWwxN0dZcHU1cWVnc2xsNmdEZ0MrTWdXM0MzSXNaNGkraWJmb3JoRktjdEgrYTB5VXdTckNVWHRYVGpPNE0vNitncWV6WDQvTzVNd09xL1ZDZHlPWFR0bG5iZGR0c05kSWF1RWNvV05Xdi9yajh6a0Z6aFpXd0ZGN1YxRnRNL0pkbU1zNUpIUTJPSVFqV1d1RjZ0VUJFbjIwL3hvUFpiQ0tvRmZqb3pkVHE1RVltY0d3c0VMZWI5YU5vaGJPRVRwbTlVdHZFZ0tRNm85VWFDWXozK0xCL2ZINXNnL1Axa0tibEhwRys2K3hVSUJWaFA3NFFzN1B0cG1iQy82V29UY3pwSmFMUUZORFRma0xzRXVScnphb1VWVDdIS0ZqVnQveU5acTFzQUkrMTNaNHhlbjdEenUzNUoyQmxpOTRNOUxGOERnVlRxOEM3Yi9HUWtPRVJZaXBFdnAxWnJFOTNiUWIzZVptRE55WkRiSlVPcjJmbmZwTjArdEJWQ3Z5QlFXRkZpby8wM0lnSi91UnJpZXA1UmwvcTFIdGM0U09XYTVTbGdRQnF0ZEovb3kvRDlzNmNvUGtKdDZDTDNZY3g5bmcwR0xYLzdTajlpN3N0YmJuRGE0bmtzR0tMZUNkYi91TlZzeUVqYlI2bURsWHFmMVhiKytMZWtRQlZwSGVDWS9yZm9qdHM3WmpuN1c5cUFVN0YrUll4VDcwU3FFMzFLVFhxREtmZ2ZoOHpzVTZQZVJVeTY5N3RhcDVqdEF4cTM4VHlXRE9PblZMTFYzVHNsQ1ZyS05MQjNOVVAxUWEybitOZzRZSWkzUXRPbVBZR20zUGVxOFk4ampsa0srVGR6SEREUGxhQ3pUNnpMUnFuU04wekJySEdYK2ZZZTFidmo1N3FlS2xDR2Y4ZlhXYjhhd0Z0UDhhQXdWWUpTaWxLM2UyWjcxWGFycitLdDlRUXpIOXB0TERaWHFQWGV1ekoxZXJHdWNJSGJQRzhxejN5cXJQb1dvTmlkWGl5Z3IxaFBaZlk2QUFxMFRmWDdpQlo3MVhpcDZWczVvMTZpckZ3Z280b3BPZUxtYW9LVzFBcCtnYldCdlRqeXQ1anRBeGEweWxua1BYb2pQNDQ4blhxMXB2VkV0cmc5WWoybi8xai9uTmtUTmF0VGVpM20wek4yTzk2TVJlYTd2dUVFMS9mQjREOFFYMHgrZHJPbXRGeW9mT0ViSmFLNTFERjhQajhOMnAyYVBoSlVLcWp3SXNRZ2doaEJDRDBSQWhJWVFRUW9qQktNQWloQkJDQ0RFWUJWaUVFRUlJSVFhakFJc1FRZ2doeEdBVVlCRkNDQ0dFR0l3Q0xFSUlJWVFRZzFHQVJRZ2hoQkJpTUFxd0NDR0VFRUlNUmdFV0lZUVFRb2pCS01BaWhCQkNDREVZQlZpRUVFSUlJUWFqQUlzUVFnZ2h4R0FVWUJGQ0NDR0VHSXdDTEVJSUlZUVFnMUdBUlFnaGhCQmlNQXF3Q0NHRUVFSU1SZ0VXSVlRUVFvakJLTUFpaEJCQ0NERVlCVmlFRUVJSUlRYWpBSXNRUWdnaHhHQVVZQkZDQ0NHRUdJeXY5Z2FRMm5UMWhlc1l2VEphOFAwM0h0aUkvYWYyRm5UZndFd0EzbUV2K2k4T1FvcExHYmZ0T3RFRFY0Y0xMWnRhU3Q3V3A3NzhrWUovdHhLUHQ1UlJyejNxaitLVnYzNXQ4ZCtDV2NEcEx6MldjUjhwTHVITTExNWM5ajRBY09ackx5NXVpNnZkaFljKzgwQXhMMGxYc2VkUDJxNFRQZWcrMXIzaVkxcmRWano2K1VkMDcrY2Q4ZUw4dHk4dS92djRwNDhXZFQ0WmJlRENBT1pHNXVFZDhXYjh2UHRZTjFvM05WZDEyd3FWZmI0Vkk5LzdaK0RDQUc2ZTYxMzg5Nk9mZndSV3R6WHY0eFI2VG5VZjY4YTZuZzY0MmwwRmIyUDZmYmwwZTREVSsyRmRUMGZlYzVLUTVWQ0FSU3JxNXJsZURGd1lXUFoyQU9qczZjU2hqOTFUcWMycUNDTmZ1OVZ0aGF2ZGhjQk1BRUFxbUlyNm94a1hxUFJ0YVhyM2tlSlNScUMzcnFlajhCZlVJRW9KSGxvMnRlRDRwNCt1K0xqbi8va2lvdjZvN3UwREZ3WXdjR0dnNEM4bnBRU3QxUTR1cXlHOVgvZWYyb3VOQnpZV2RQL3N3Q290TUJOQVlDYUFrYXRqMkg5cTc1cmJsMlIxYUlpUVZNeWw1eTR2RzJBc05kVTdsWkdGcUhmbGVPMHRtek0vN0xNRHFzQjA1ci8xN3BPZFZjbCtURklhS1M0dEcxd3ROWHBsRkplZXUxeUJyVnBicnI1d2ZjWDl2MXh3dFZUVUg4WDViMS9NZWY4UXNoektZSkdDckhhWWJPRENBS1o2cHpKK2xqMGNOSEJoSUdQb3pEdml4Y0NGZ2JwUHo1ZnJ0YnZiblJuLzlzOEUwZG5UdWZqdlNDQ1c4enZaOS9IUEJCZi9McGlGb29aVmxyUC8xTjZjckV6MnhhelFERU05R3IweW1uRng3K3pweFA1VGV5R1lCUUNwSVBycUM5Y1hqL2RVN3hTOEl4dHFOa05pZFZ0MVB3TisrRWYvbW5HZmZNTzI1WkE5cENqRkpWeDY3bkxHbDRhUnEyUFlkYUluNzJQMFh4eGMvTHRnRnJELzFON0Y5NGNVbDNEMWhlc1o3OTJiWjN0WHpGd1Nra1lCRmlrN0tTN2xmSkFkLy9UUm5JdDU5N0Z1ZFBaMDR2VnZ2TGw0NGVtL09JaU5Cell1WHBqcVRUbGZlL2JGMkR2c0JaWmNUTklacktWRGlkbmY2TDNEZHk5R3RYcHhyN1RsNnNBS3RUUnd0YnF0T1VPK25UMmRFTXhDUnFaeWJtUytxR05nWkcxZ0l4RE1BZzU5N0o2TXVrTzlMTzdpYlRPQmpPSHhYU2Q2TXI1OHBCL3YvTGVseGFETk8rS0ZGSmZxOXZPSVZCWU5FWkt5UzM4b3BXMDd1alZ2cHNUcXRtWjg0NVRpVWtuRjByV2luSzg5TytNVURXUUdUK21nS2wydmxkNmVwWmIrVG5aR2pKUnU2VEczdXZRTHQxczJ0V1JjcUpjTEJraGhpZ2w4c2llWjVDdXdiOTNVblBGdkdpWWtoYUlNRmltN3BkL21BYXc0TE5UWjA0bXJMMXhmL0xmZVVGZTlLUGRyWDlmVGtWSG9IcGdKWkdTc2dGVGdaSFZiRjcreHB3dmRzNy9CVS8yVmNheHVLekNTK3J0M3hJdXAzcW1NN0VpYTNxeE9VcnJzb0drNTJZRnYvNFZCdU5wZE9VRmE5N0h1dWk5VElOVkJBUllweU5KYWkyd3J6WUphK3MzYzZyYXUrQzB6blpuSk42eFZUOHI5MmxzMnR3Qkw2cHE4dzk3VTcyYy83NUlMVDJBbUFLdmJtakU4YUdUOVZTVkUvZEZsejhuVnVIbXVkOFhDNTVXRzU5YjFkR1JrSDFORjdKZlJmYXdib29rdnVoV0pucFZldnhGRG5mVWs2bzltZkRrQkFGZEgvblBhNnJhaVpWTkx4dkRmbWErOXVOaWFBY0NhMm4vRWVCUmdrWXJLTjF5U2JXa2drajMwVmEvSzhkclQzN2pUMzl6VEdhK2xtYStXVFMwWmo1TU8yckx2UTR6VHNxa0Z1MDcwNUFScTJUTkpxYzlTNlFwcHJaRTl2SmR0LzZtOU9iTTkwNjBaZ0x1dFUrcXBaeG1wSFZTRFJVaWRXL3Fobjg1Y3BmOFV6RUpPZGlvOWJMazB5N1VXKzErVlcvZXhiaHovOU5GbGc2ZkFUQUEzei9YaWxiOStqV3A3RExiclJNK0tBVkY2NXVPdUV6M0xabkFITGd6Zy9MY3ZGdFRTZ1pBMHltQ1JnaGcxWTZuUWJGUWhSY0wxcGx5djNkM3VYSnhLbnE2clNsK3NsMTVnMGtPUDZjTDdwUmYwZXZ0bVhrd245MklaT2JUV3NxbGxNWnUxZE5MQ1pPOTB4djZQK3FPNDlOemxvdG9jMEN4Q2ZhVmttNWJXV1UzMVRpSHFqeUtaa0hNeWpnTVhCbUJ6V1JxMnZRZ3hGZ1ZZcE94Y0hhN0ZPb2VvUDdyaU5PZnNpLzl5eTJmVXVrcTg5dXc2cktuZXFjVWdiZW5NUUZlSGF6RUFXenFiVUsrd2x4aFBNQXVMRi9IdVk5MkxRZFhTZXJ2MEpBV3lzcFdXMWluVjBza0l1MDcwNVBSdm14dVpwd0NMRklRQ0xGSjIyZFAvUjYrTUxwc2h5RzdLV2MvdEF5cngybDN0TGxqZDFzVTZrc25lNmNYYmxsNkFiQzdMNHQ5SHJvd3QvcDFtRHhvcmV3M0k3bVBkdXMwdXJXNHJ0aDNibXRIRlBUQk5BVmFsWkM5ZGRmcExqK2wrMGVnKzFwMlJjYVNoWEZJb3FzRWlaWmR1cXBqV2YzRXc3NGRVMUIvTitMWW9tQVhkNmUzMW9sS3ZmZW45bG1hbk1vWUlsOHlvV25xZmVnNWdhMUc2N2kxdDlNcG8zdllCMmJORTZ6bGJXMjlFVTJaK1libWVjMHVIOXh1bFpJR1VId1ZZcENLMkhkMjYrSGNwTHVIMWYzaFR0NzVoYVNmejlPL1YrL0JWSlY2N1hwQ1VmYUhQbHhtcHQvcXJlckEwNEUwdjRaSWRXS2VYUjBxcnQxWVo5Uzc3eTR2ZVl1eUJtUUF1UFhjNTQzMjUwc3hFUXRKb2lKQlVSUGV4YmtRQ3NZeHZpU3YxRzJyWjFGSlNzZkZLL1lGVzZ0dGw5T05WNHJYckJVblpQeFBNUXNaUUlrRDFWM29LNllNRkxGOER0T3RFRDd3ajNzVjk3UjN4NHZWLzhPcmVONjNZTHhPRjlBRXI5bHhmUzlJckp5dzkxaXNkZTZ2YlN2VlhwR0NVd1NJVnMvL1Uzb0tEaHM2ZXpvWmFWTFhjcjEwdis2R1gxY3ErRDlWZmxZZGdGbkQ4VTdsclR1YXoxcHFDMW9wODlYRjZYTzB1SFAvVVVmcENRZ3BHR1N4U1VidE85R0JkVHdlOHcxNzBYeHpNcVUzWmRhTEhrQzdYdGFqY3I3MWxjOHVLTXhDWHRuUUFxUDlWT1ZuZFZqejBtUWN3ZW1VVS9wbGdUbzJQMVczRnB2MGIwTm5UU2JWWFZaUmVhSDJxZHdvalY4ZHk2dUkySHRnSWQ3dVRNbGVrYU14dmpwelJxcjBSaEJCQ0NDR05oSVlJQ1NHRUVFSU1SZ0VXSVlRUVFvakJLTUFpaEJCQ0NERVlCVmlFRUVJSUlRYWpBSXNRUWdnaHhHQVVZQkZDQ0NHRUdJd0NMRUlJSVlRUWcxR0FSUWdoaEJCaU1BcXdDQ0dFRUVJTVJnRVdJWVFRUW9qQktNQWloQkJDQ0RFWUJWaUVFRUlJSVFhakFJc1FRZ2doeEdBVVlCRkNDQ0dFR0l3Q0xFSUlJWVFRZzFHQVJRZ2hoQkJpTUFxd0NDR0VFRUlNUmdFV0lZUVFRb2pCS01BaWhCQkNDREVZQlZpRUVFSUlJUWFqQUlzUVFnZ2h4R0FVWUJGQ0NDR0VHSXdDTEVJSUlZUVFnMUdBUlFnaGhCQmlNQXF3Q0NHRUVFSU1SZ0VXSVlRUVFvakJLTUFpaEJCQ0NERVlCVmlFRUVJSUlRYWpBSXNRUWdnaHhHQVVZQkZDQ0NHRUdJd0NMRUlJSVlRUWcxR0FSUWdoaEJCaU1BcXdDQ0dFRUVJTVJnRVdJWVFRUW9qQktNQWloQkJDQ0RFWUJWaUVFRUlJSVFhakFJc1FRZ2doeEdBVVlCRkNDQ0dFR0l3Q0xFSUlJWVFRZzFHQVJRZ2hoQkJpTUFxd0NDR0VFRUlNUnFSNkN1c0FBQ0FBU1VSQlZBRVdJWVFRUW9qQktNQWloQkJDQ0RFWUJWaUVFRUlJSVFhakFJc1FRZ2doeEdBVVlCRkNDQ0dFR0l3Q0xFSUlXV3MwTGZVZklhUnNLTUFpaEpDMWhtR2d5RXExdDRLUWhrWUJGaUdFckVHY3dGZDdFd2hwYUJSZ0VVSUlJWVFZakFJc1FnZ2hoQkNEVVlCRkNDR0VFR0l3Q3JBSUlZUVFRZ3hHQVJZaGhCQkNpTUVvd0NLRUVFSUlNUmdGV0lRUVFnZ2hCcU1BaXhCQ0NDSEVZQlJnRVVJSUlZUVlqQUlzUWdnaGhCQ0RVWUJGQ0NHRUVHSXdDckFJSVlRUVFneEdBUlloaEJCQ2lNRm9PWFZDQ0dsZ1dqd091WGNBOHZBNGxNbHBxUE0rYU5FWW9LcXBPN0FzR0xzTnJNc0J0dGtEcnEwVjNJWk9jQnZXZ1RHYnE3dnhoTlF4Q3JBSUlhVEJLQlBUU0x6eUJoTG56a082MVg4M21Db1MxOVlDYnNNNjhOMmJ3Ry9iQW43YlpuQmJOb0lSUllPM21KREdRd0VXSVlRMENPbnlkVVNmL1I0U2I3MExhQm9BUU9SWmJPNXlZbU9IRlcxTlpyaHNBcXhtSHV5ZEFwRllRa0VrS2lNY2x4R095dkQ2RS9ENkU1ajF4UkdaOVVLWjlTSjU2ZXJpY3pBc0MyN2pldkE3dG9MdjZZYXd1d2Y4amkyVTdTSWtDL09iSTJlMGFtOEVJWVNzUkpOa2FENC9WSDhRYWpnQzdjNS9haWdDS0FxMFdCeFFWV2pScVA0RDhId3FDR0FBeG1ZREFMQTJLOEF5WU13bXdDU0NzVnJBMm14Z3JCWXdGak1ZdXcyTXFmYXpOY3JJT0VKLy9uVWszM29YQU1DeERBN3U4T0RRemliMGJIYUNZeGxJU1FXeGNCTHhpSVJrWElGZzRpQ2FPQWhtSHFLSmcyak8vYjRkalN1WThzWXd2UkJML2VtTlkybytoa2hNenJ3anc0RGYxQVYrVHcrRTNUc2c3TjhGZnZOR2dHVXE4ZklKcVVrVVlCRkNhb0lteVZCR3hxRk1URUdkbklFd05nNU1URUdlblVmU0gwUThHSzdLZGpHQ0FNNWhCK3V3Z1hIWUFaY0RiSE1UV0xjVGJFc1RXSThMYkVzenVJNVdzQzNObFEwcVZCWFJmL28rSW4vMWo5QWtDUUxQNHVGNzIvRHd2VzB3OHl6Qy9nVENnVGlpd1NTa3BMTHNRekVzQTVPRmg5a2l3R1RsWWJZS3NOZ0U4Q0tYYzk5UVZGb010aVptb3hpZGlXSm1JUTVWdlhzNVlhMW04SHQyUXRpM0M4TCszUkQyOW9DeFVKYUxyQjBVWUJGQ0trNUxKQ0hmdUEzdCtrMlliZzhnT1RDTXdQZzBWQ1ZWSzJSM1d1RnVjc0x1c3NIdXNNSm10OERtc01Kc0VTR0lBaXhXRXdTUmh5QUlpNDlwdG9oZ3VOUzRWeUtXWEh3c0FJakY0dEJVRGZGWUVxcXFJaEZQM1o1TVNKQmxHYkZvQWxKQ1FqSXBJUlpOSUpsSUloWkpJQnFKSVJaTlFKYXlNalo1TUR3SHNiME4zTHAyc09zNndHelpBRzdySnZEZG04QzZYUWJ1UVVBTFJ4RDR2VDlHOHZ3bEFNRGhYVTM0OEQxdDBPSXl3djQ0RXRsWnBoTHhBZ3V6VFlURkpzQmlGMkMxaTdwQmw2eG9tSnlMWW13MmlvblpLTVptb3BqMHhxSGNPUTRNeTRMZnVRM0N3VDBRRHU2RmVHQTNHTHZOa0cwa3BCWlJnRVVJS1RzdGtZUjArUnBNRjk2RmV1VUc1dnRINFhCWjBkblZpblViMjlDNW9RMXRuYzN3dExqUTNPcUNJQW9yUDJnRlNVa1pzVWdjb1dBRVFYOFlvVUFFNFdBRUFWOFl2dmtBNW1mOVdKanp3emNmekFqc2xoTGRMcGkzYjRHMmV3ZTQvYnNnN09sSlpjUktvTTU2NGZ1VjM0WXlOZ216d09MSlErMW9GUm5JVW1uRjdNVVNUQnlzZGhGV1Irby9zMDBFbzVPNFUxUU5VOTRZaHFjaUdKb01ZM2dxaW5sL0hBREFNQXlFbmR2QUh6NEE4Y2hCQ1B0MlV2RThhU2dVWUJGQ3lrTDFMa0E3K3hiRU44NGpjR3NRR3phMW9Ydm5CbXp0MllndE83cmdjRFZlOWtKVlZmZ1hRcGlkOEdKeWJCWlRZM09ZR3AvRDVPZ013c0dzMmpDR2dYbnpCckFIZGtNNGNoRGk0UU1GWlhTVThTbjR2L1JiVUdhOWFMWUplS3pIRGJzcE42TlVTU3pMd09JUVlYT2FZSE9Jc0RoRXNIbUdTa05SQ2NPVHFZQnJhQ3FWNlpKbEJhd293TFIvTjdpajkwQTh2Qi84OW02cTRTSjFqUUlzUW9oaHRGZ2Myc3V2US9qeFM5QjhQdXc3MkkxOWgzdXdiZmNtOEh4MWc0QnFXL0FHTU5RN2hxRytjUXoyam1GMFlCTEpoSFQzRGl3RGNmOGVpQ2VPdy9USWZlRGFXM01lUS9VRjRQdjhmNFF5TllOT2w0aFRQUjRJWEhtREVFblIwTytOd1NweTJPZ3hvWkJuWXhnR0Zyc0FtOHNFdTlNRXEwTUVreWRZVWhRTkk5TVI5STJGY0hzc2pKR3BNR1JaaFdDM2dUOThBUHlSZ3hDUDNRdXVzODNZRjBaSW1WR0FSUWhaTmZuMklDei8rTTlRK29kdzlMNWRPUGJJQWJSMk5GVjdzMnFhcXFnWTZCM0ZqY3Y5K09CeUgwYjZKNkZwZHorT2hmMjdZRDc5Q013ZlBnSEdib01tU2ZELzBtOUN1bkViSFE0UmorLzJnQzlqaGljdXE3ZzJHY0hRZkJ6M2IzR2l5MjBxK2JFWWxvSE5JYVlDTHBjSkZuditvVUJKVmpFMEdVYmZXT3Eva2Vrd05GV0RwYXNEN0lQSElkeC9HTUwrM1dBRTZqSkVhaHNGV0lTUTBxZ2FsTmZQdy9LOUgyS2p4NEtISDdzWFczWjBGZjg0c2d4TmxwZjhxVUJURlVEVlVyMmM5SnBrY2l6QU1HQllMdlYzbGdYRGNhbFdERHdQOER4MGk0SnFXQ1FVeFkwckEzai83UnU0K200dkV2RWtBSUF4aVRBOStpQzBlQUtKVjkrRTI4TGpvM3ViWU9MTHM5S1pyR3E0TmhuQmxZa0kyaHdDVG01M3d5SVkrMXdjejhMdU5zSGhOc1B1Tm9OZjV2RVRrb3FCc1JCNlI0UG9IWXRnZWk0QzNpekNkdWdBdEFlUFFqeCtDR3hiaTZIYlI0Z1JLTUFpaEJSSDA2Q2VPdy94bjc2TEl3YzI0K1RqaDJHMVcxYit2YVFFTlJxRkZvdENTeVNnSlpMUUVvbVN1NHl2aU9QQUNBSVlRUUJFQVl3Z2dqR0pZRVJUcXJjVlg3c1pFQ2twNGYyTHQvRDJLNWR4NDNJLzFEdjdpQUZ3YkxNRGV6cHRCUTNWRld2Y244Q2JnMEdFRWdyMmRscHhiSk96SW5HcXhTYkE3akhENFRiRDZsaSswRDBZa2RBN0VrVHZhQWk5b3hHRXduRTROcTBIKytBeHNQY2ZnYkIvRnhhN3FCSlNSUlJnRVVJS3BseStCdXMvZkF0SDkyN0VvMDhjV242Mlh6SUpOUmlFR2dwQmkwUlQyYWxhd25GZ3pHYXdabk9xcWFqRm11clRWR01YWi85Q0NDLyt5eHQ0OVVjWEZ0dEZPTXdjOW5YYXNLUE5Zc2d3WVV4UzhmWlFFSVB6Y2JBTWd3ZTduZGpSV2tEUVhDUkowZEEzRjBPTFRVQ2JRLy9jNFhnV05sY3F1K1Z3bTNSYlFpdzE1WTJsQXE3eEtQcEdBMkJGRWZaajkwQjU2RDZJOXgwcWVhWW1JYXRGQVJZaFpFWEs5Q3pFUC9zYjdHbzI0eWMrOVNBczFqd05JMlVaeXZ3Q1ZKOFBXanhlMlkwMENHTTJwenE2VzFPTlJSbFQ2YlZIUnBLU0VsNyt3ZHM0ODkzWEVRbkhBQUFXZ2NYQkxqdDJ0VnZBbHBocUdwcVA0NDNCSUJLeUNwRm5jV3FuR3gwclpKR0twV29hcms5RjBUY1h3NE5iWFdqUEUxenBNZHNFT0pzc2NIck1NTnVXLzcxVS9WWUV0NGFEdURVZXhmUnNHSzVkMjZDZWZBRDgvVWZBYlNwaENKdVFFbEdBUlFqSlQ5WEFmdWNIc0wzeEZqN3p1Y2ZRMlpVN3N3MEF0RmdNeXN3czFFQmdjUTI4UnNHSUlsaW5BNnpiRGNaZS9XeElOQkxIRC8vcEZienl3L09MUTRkT000ZWpteHpZM0ZSNHAzUkowZkRXVUJCOWM2bGd6U1p5ZUdLM0IyNkxzVU9uRS80RTNod0tRdVJaUE5iamhtMkZqTlJ5UkJNSFI1TUZ6aVl6Yk02VkE5OXdWTWJONFFCdWpjZHdjemdJMW1FSC8raERZQjY1SDhLdTdYVlhwMGZxQ3dWWWhCQmQ2dFFzdUQvOE16eDQ3eGFjZXZJd0dKMkxrWlpJUUptYWd1b1BWR0VMSzQ4UkJMQnVOMWlQRzR6Vld0VnRHUitheGpmKzMrOWo2UGI0NHMvV3UwUThzTlVGcDNuNUlNWWJrZkR5YlQ5QzhkVHlPVzRManlkMmUxWVYvR1JiR3NCdDhKandvUjF1UTJjOWNqd0xoOGNNWjVNRmRyY3BiOSt0TkUwRFJxWWp1RDRVd3RYaENFSkpGYWFISHdBZXVSL2l2ZnRxYm1pWTFEOEtzQWdoT1pqWDNnYjNqVy9qRjc3d0JMbzJkK1RlUVZhZ1RFOUJtVjlvdUl4Vm9SaVRDTmJ0U1FWYjV1cXNzYWVxS3M1ODkzWDg0TmxYSU11cFlJbG5HUnpkNU1EdUR2MEE4T1pNRk9lSFExRHVyQnZvc2ZKNGNuY1R6QWJPRkp3TlNYaTFQeFhBN1dpMTRLRnVWMW1UUlN6THBHWWwzaGxLNUFxWVlia1FUT0w2WUFpWFIyS1ltb3ZBZFA4Uk1JOC9DdkVRQlZ2RUdCUmdFVUx1VWxWdy8rTWYwRFEwZ0gvM3BZL0JiTTBkaGxFWGZGQW1KMnV2YUwyS0dMTVpiSk1Ibk1jRENKVmY1bWRzYUFwLytWLytDYk5UODRzLzIrQXg0WkZ0cnNWMkRyS3E0WTNCSVBydkRBa0N4Z2RYR29BckV4RzhOeGFDcWdINzF0bHdiSlBEa01mT0ZrNG84TWZrblA1Y0RKTUt0bHpORmppYkxHQUxhTVFhVHlxNE1SVEN4YUU0Um1jaTRFOGNCL2VSRDBQWXZhTXMyMDdXQmdxd0NDRUFBQzBhQS9PN2Y0UTlIUTc4OUdjZnpSMFNUQ1loajQ1QkRZZXJzNEYxZ3JYYndYcmNZTjF1Z0t0YzkvcDRMSUcvLzlyM2NPbk42NHMvYzVsNVBMWXpOVFQzVXE4ZjNzamR6dkV1QzQrUDdqRXV1RXJLS2w3dEQyRE1sd0FBSEZodnc1R054Z2RYa2FTQ3krTVJDQ3lESTV2c3l4YjNzeXdEdThjTVY3TUZEbzk1eFdGRUlOVjM2L3BnRUc4UEpqQVRWb0FuSDRQcEl4OEMyK3d4OG1XUU5ZQUNMRUlJdEFVL2xQL3crM2owNFgwNDlkU1JuTnRWbncveStBU2dLRlhZdWpyRk1HQmRUckNlSnJCT0o4clN1Q3FMcG1uNDhYZk80dnZmZkdueFp5TFBna1dxTTN1YVRlVHdzWDFOaHRWYytXTXlYcnpsUStCT1RkYzlYWFljMm1Ec2hBQlZ3NTBHcUdFYzJlVEFydmJpYXVCWWpvRmpTYkNsVjFPWUxSS1RjZUZXQ09mN3cwaXNYdy9tcDM4UzR1SDlWQnhQQ2tJQkZpRnIzWXdYOFYvNWJUejVzZU00ZWZyZXpOdFVOWlcxOHZ1cnMyME5ndUY1c0I0UDJPYW1pdFJydmZmMkRmek4vL1B0eGI1WlM0azhpNC90YlRKc3R1Q0lMNEhYK3Z5UWxOU2w1TkFHTys3cE1qYTRtbzlJT0RzUVFDaXU0TU03M0ZpL2ltVjdBSURqV0RpYnpYQzMybUJ6RnRhU1l0SWJ3OHRYUStqekpvR1BQd25UVHp5ZTZwdEdTQjRVWUJHeWxzM09JL2JMWDhHcEp3N2o5RWVQWmR5a0pSS1FoNGJydHA5VnJXSXNGbkROVFdBOW5ySU9JZDYrUG9RLy83Ky9pWGcwa2ZGemk4QmlTN01abTVyTTZIU0tXTTNFdnV0VEVWd1lEaUY5RWRuYmFjWHh6YzdTSHpEUGMxd2NDVUhrV0p6ZTVVR3IzZGdhTjlITXc5Tm1oYnZWQ3FHQWpGNDhvZUNWeS9NNGZ6c0k5cEVId0gvbXAyajRrT2lpQUl1UU5VcGI4Q1AraGY4RDk5MjNDNS84TjQ5bTNLWUdncEJIUnNxM2pBMUpEU0c2M2VCYW1zSFliR1Y1aXFIYjQvaHZ2L2QzT1VGV21vbG5zYW5KaE81bU05YTVUQVdQZkdrYThQWndFRGVtbzRzLzI5NXF3Y1BiWEVac05nQWdJYXM0MngvQXFDOEJ1eW5Wbzh0bEx1L3lSbmFYQ2U0MmE2bzRmb1hJTXltcGVQbmlOTTU5NElONDhrRUluLzg1Q3JSSUJncXdDRm1EdEhnQzhpOS9CUnViclBpbEwzOHlveDVGbmZOQ25waW80dGF0UFl6WkRLNmx1U3hacmFIYjQvaTdQLzBPZk43ZzRnTFNlc3dDaTgxTlpteHJNYVBkS2VZdEdaTlZEYS8yQlRDeWNEZXoyZVUyNGZST2oyR2xTYk9oVkordVNGS0IwOHpoeVQzRzFZc1ZndU5ZdUZvc2FHcTNyZGc5UGhLVDhkelpjYnpYSDRUbFp6NE8wMmMvRFVZMHRoTStxVThVWUJHeTFtZ2ExTi82THhCR1IvQ1ZyLzQ4VE9hN0Z3TmxZaExLM0Z3Vk4yNk5ZMWx3SGcvWTFsWXdabU9YNkpFbEdiM1hodkQreFp1NGV2RVdmUFBCdlBlMW16aHNiN1ZnZTZzbG8ybHBVdEh3d2swZnBrTjNBN1VtRzQrUDdtbUdVRUE3aEVMMHpzYnc1bUFBcW9hcUJGZlpyQTRSVGUwMnVGb3N5eGJHajA1SDhNM25SeERpekREOTlxOUJQSHl3Z2x0SmFoRUZXSVNzTWN6Zi96TjgvL0J0L1BaLy9RSTYxcmNzL2x3ZUdZWHE4MVZ4eThoU3JOTUpyclcxTElzVmE1cUdzYUZwWExsd0UxY3Uzc1RvNEZUZSszWTRSZXhvdGFEVEplTEZXejRzUk84V3psc0VGay92YnpZa0FGSTE0TUp3RUIvY0dYYXNWbkExSFV6Q0puSndaSFhENXdVV3paMTJOTFhiOGpZeWxSVU56Nzg5aVZmZW5ZSDE1QU13LzRjdmdIV1ZwdzhZcVgwVVlCR3lobWp2WElIMzEzOFgvOXV2L0NUdU8zblBuUjlxa0llSG9RYnlaelJJOVRBV0M3aTIxdFR3WVprc3pQbHg2YzNyZU9lTmF4anUweDhlWmdBc3ZWaXdESU9uOWpTaHJZaUZtL05KeWlwZXV1M0haQ0NWR2F0R2NEVVRrbkJsSW94ZEhWWnNXR2FXSXNzeThMVGIwTHJlRGw3UTM3N3gyU2orNXcrSEVGQTUySDd2eXhDUDM2dDdQOUxZS01BaVpJMVFBMEZFUHZNcjJMV3pDNy80NVUrbmZrakJWZDFnVENadzdlMWdtOHBiU0QwM3ZZQkxiMTdIdTI5ZXgrakFaTjc3N1dpejRQNHR6bFd2THhoT0tIaitwZy8rV0NvelpoTTVQTFczQ1E1VFpZS3JoS3ppd2tnSVU4RWtUdThzZkxGcmxtWFEzR2xIeXpxN2JrWXJLYW40MWdzanVOUzdBUHZUajhQeXE3OUF0VmxyREFWWWhLd1I4dS8rRVJMdlhzYi8rYlV2d2VHeVVYQlZweGlUQ2R5NmRXQmR4clpEMERNM3ZZQjNYcitHQzYrOWo2bngzTm84RTgraXA4MkMzUjFXMkVzSWlMd1JDV2R1K2hDVFVyTlZ6VHlMcHd6czBiV1NNWDhDNS9vRHNKczRuTjdwS2FtclBjZXphTi9naEtmZHBsdmtmK0c2Rjk5NVpReHNSeHRzWC8xdDhGczJHckRscEI1UWdFWElHaUNmZlJzTFgvbERmUDdMUDRVakQrNUwvWXhxcnVvYTYzQ0EzN2loWW1zZmp2UlA0SzJYMzhQRmMxY1JDY2N5Ym1NWVlFdXpHWHM2ckdoM0ZKYWxHZmNuOEZLdkgvS2RSYWQ1bHNHVGU1b003M09sUjlVMFhCZ0o0WU9wS0RwZEloN3I4VUJjWlpHK3lTcGczUllYYk03YzRjWHArVGorOHJ0OUNNUlYySC9qU3pBL2ZuSlZ6MFhxQXdWWWhEUTRMUkpGOEprdllNdUdGdno2Zi9vc0FKb3QyREE0RG56WCtyTFdaMldUSlJsWDN1bkZXeSsvaHcvZTY0T2ExU3V0dmNtQzNjMG1iR2syNTIxaU91Q040MnkvSDNkaUt6QUFUdTMwWUlQSDJKbVRla0lKQmEvYzltTXVMR0dqeDRSSGQ3aFhQY3k1bEtmVmlvN05ycHhodzJoY3dkODkxNCsrOFRDc1Q1eUU3Y3RmQkdPaUljTkd4ajMwYXovMys5WGVDRUpJK2NULzZwdUlYN3FLWC82dG40SERaWU02TndkbGVxYmFtMFdNb0dsUUF3R0FaY0dXcVZscE5wWmpzVzVERzQ0OWZBQW5IajhDVjVNRDh6TitSRUtwMlgrUm1JemhoVGdHL1Vrd0FEeFdQbU5CNWh2VFVidytFTWdvbUg5d3F4UGRMWmF5Yi90a0lJa2YzL0FoR0ZmUTNXTEdvenM4NEF3TXJnQWdIcFhnbTQxQ01IRXdXKzltNHdTZXhlSGR6WWduRlBTLy9nR1VjMjlEdU84dzJETE1FaVcxZ1FJc1FocVlNamFCd0IvOE41eDg0aWp1TzNsUHFrUDc2RmkxTjRzWVRBdUZLeHBrcFpuTUlycDNic1RKSjQ5aHgrN05TTVNUbUptY2g2WnBTQ1FWalBrUzZKMVBRRkUxZUt3OFBwaUs0c0pJS09NeDluWGFjTkRndFF2MWZEQWR4V3Q5cVNISjdoWXpIdG5tWHRVeVFjdlJWQTNCaFRqaVVRazJseG5zbmVGSGhtR3dhNHNMYm9lSWE1ZkhrUGpCaStCM2RJUHI2aXpQaHBDcW9pRkNRaHBZNkxlK0N1WDhKZnpoWC8wNjdDWU8wdTIrdWxqK1JsVVVzR1ZjcDY5UjhWMWRZRnVhcTdvTi92a2dYbi85Q3M3OTRHMEV2SGNuVUhBY0MwWEpQUGMyZWt4NHJNZTREdkI2c3BmMVNRZFg1WHpPcFRpZXhicXRicmlhTXpOMHQwZEQrUHB6L1VoSUdxeWZld2EyZi90VHFOaEdrWXFnREJZaERVcTZjUnVoci8wdFRqMzlJQTRjMmc1NVlBQ1E1WlYvc1FiNHB1WWd4Wk13MmNvL2JOUkkxR0FRREMrQXNWcXJ0ZzFtcXdrNzkyekdZNTk3SEYzYjF5TzBFTUw4MUFJMExmVmRQaDFET00wY250amRaUGdRM1ZLU291R2xYajhHdktsbGZkSTFWMndGQXhsTjFSQ2NqeUdaVUdCM21jSGNlYjNOTGhQMmJmUGcrb0Fmd2ZQdlE3azlDUEhCbzJDRXlzeWdKT1ZIQVJZaERTcjhSLzhkN093Y2Z2RTNuZ0U3TlFrdEVsMzVsMnFFMlc3RDRLVVB3QWs4TE02Vmg0ODBWVVZ3ZGg3QnVRV1liT1kxbmYxU2cwRXdKak1ZaTdsNkc2RUJEQmlzMjlXRkI1NDZqdjBQN2tVc0VzZjA4TXhpb0NWckRCSmcwR3poRFZ0bVo2bElVc0cvM2x6QVRFZ0NBS3gzaVRpMTAxT1I0RXE3ODcrbFR4V1BTZ2pNeDJCMWlCRHVORkMxVzNnYzN0V012dEVRRm00T1EzNzlQSVQ3am9CMVZIYW9sNVFIQlZpRU5DQzVmd2poUC90YlBIVHFFTzdaM2xGVE13YVRTUmx2dlRlRTU4L2V4RXR2OU9KcTd5UjhnUmc2V3AwUTczVEdaaGdHaXFKZ3NuY1k3dlptOEhrYU5HcXFpdG5CTVF4ZnVZVkVKSVoxUFZ2eTNuY3RVUU9CNmdkWmtnTEdMQUFjQzNlckM0Yy9kQS91ZS9JWU5FM0Q1T0FVcEtTTXVXQVNOK2Rpa0ZnV0hoTm5XS0FWaU1uNDBRMGZBakVGQU5CcUYvQjRtYk5sUUdvaDdKdlRNVVFsQlI1cmJpWktrVlg0NTJMZ09BYldPKzBzUkNGVi9ENDVGOFAwMEN5U3o3OENZZTlPY0IxdFpkMVdVbjRVWUJIU2dDSi8rVTNJZlVQNCtTOThGS2I1MldwdnpxSys0VG44NmQrZHhhWHJZNWlkRHlFWWptTnVJWXpld1ZtODlkNFEybHNjYUc5Sk5kRGtCUjdlMFVsSThTUThuYTA1anlVbkpReThjdzIreVRsWUhIWjBIOWtIam9aWEZxbkJJQmlMeGZCRm80c2lxMkNzZHdOZXE4T0NmZmZ2eHNsUFBnU3p6WUtwb1duRUluSE0rRlBGOEtyQXcyTmlWdFUyWVM0czRWOXYrQkM5MDd6VVplSHhrZDFORVBPc0gyaVVBVzhjNS9vRDJONXFXYkhkUk5pZlFEd3F3KzQyZ1dVWmNDeURlM284Q01ka2pJejZrVGp6R3JpMkZ2QTd0cFoxbTBsNVVZQkZTSVBSd2hFRS8vT2ZZdnYyZFhoMGYyZk4xRjNOZUVQNGs2Ky9pbWdzcVh1N0pDdDQ3NE54Yk9oMG83M0ZBVjRVTVRzOGdYZ2tncmJOWFdEWXV4ZElUZE13OE01VlJBTmhDQ1lSMjQ3dHArQktoeG9JZ0xYYnE3ZEVpNklDQWdlR3p4eXlGVXdDZHR6VGpRLzkxQ053dDdrdzNqZUpjRENLcVlVWWVoY1M0SzBtZUFTbTZJelR1RCtCTXpkOVNDcXBZVWlyeU9LcFBVMndsbkZOdzNCQ3djdDlBUXd0eFBGWWo2ZmdScW1KbUl6Z1FodzJsd204d0lGaEdPelo2b0xBcytnZERpRHgrZ1ZBVVNEZXU0K0szK3NVQlZpRU5KajRqMTlGNHV6Yk9QM1lRV3h3VjNHSWFBbEZVZkVYMzNnZHZtQnN4ZnYyRHN6aWdjTmJJUWdjZkZOemtKTVNuRzFORUpka1ltWUh4K0NiVEExN2JyNW5GeXhVczVLWEdnaUFkVHFyVmp6TnlBb1ltMzVHaCtWWWJONjFFU2MvZGVKdW9CV0lZbnd1aXNHUUFwdkhCaGVyZ2lrZ3dCaFppT09sWGovdXhGYmdXUVpQN0M3dnNqdjljekdjdWVVRHg2WVd2aTUydWFEVWtHRVVvb1ZmN0ptMWRiMGQ3VTBXWEIvd0kvSCtCMURHSmlFK2NCUU1WOTRNSERFZUJWaGtUVkdTQ2lJek1RUkh3L0FQQnhHWmppSVJUQUlhd0Z2NGdqN0lhMTNrYi80WHRNa3AvT3hIOWtPc2thek9pMi9jd3J2WFJndTZiMUpTWUxlWnNIVkRNL3pUYzBqR0VtaGExdzd4VGoyUnFxZ1llZjhXVkZXRnM2MEpIZDJaYTd2SmlvcitrVGtNVHl3Z0drdWl5YjNHZ3k5Tmd4WU1nbk83Z0dvVS82c2F3REpneFB6bm9sNmdGVmdJWTJneWhMRWtpNlpPTjJ4cS9reHN2emVHVjIvZmJWN0tBSGlzeDROT1oza3lkN0txNFkyQklDNk5oOUhtRVBIRTdpYVlTaHlDMURRZ09CK0RxbXF3My9sQzFObGl3ZllORGx6dDl5TitleGp5ZTFkaGV2Zys2dnhlWjJyajA1ZVFNbElTQ21hdWViSFE2NGQvTEFSTjFXQzNXMkN6VzhBQUNJZGpDSWRqNEhnV25rMHV1THFkYU52VEJMNUNDODRhU1l2SEliLzdQdGEzdTJHM1ZySDJab2taYndnL1BudWpxTis1TlRDREQ5Mi9ZL0hmdkhoMzJDVTA3NE1zcFdhR2RXN2J0UGp6cTdjbThkM24zNGZYRjhsNExJWmgwTlhoeG1jK2NSU2RyZVZmSUxrV2FaSUVhV0FRd3ZadEFGK0Y4enFTQUt5bVZPU3pERjdnOE1oUFBvZ0hQM29mWHYrWHQvRER2MzBlM3RrZ25wc05ZZk8yVmh4dUZlR0drdkU3TjJlaWVHc3dtTkVaL3ZnV1o5bVczUW5HRmJ4ODI0LzVpTEZMN1hnbncwakVaR3pZMFFTV1piQjF2UjMvL3BtZCtCL2Y3WVB2NmszNHZ2QWJjUC9YM3dmYjFtTEFxeUNWVUg5WEVFSUtwQ1FWakwwNWhlbjM1aUR5UE82L2R6ZnVmYXdiUFZ2V3c1WTF1eW9TaStQbTRCak9YN21GdDErNWhlRlh4dEM2cHhrYlQ2eURxY0RGYTJ1QmRPMFdWRW5HMW8zVmJUYVpwcW9hdnZHOWk1RGw0cHFiQnNPcHZrV0tMSVBsMkl4K1dCRmZxbm1semUxY2JPSHdWOCsraWF1M0puVWZTOU0wakUzNThKLy80Z3crZnVvQUhsMFN1SzBsV2lJQmFYQUl3clp0S0ZzTDgzelByV2hBTkpGM3FEQWJMM0E0K2NtSDhNQkhqK1BGLy9VcW52L0dTeGp1bjhOd1A5RGRhc0hoRFhZNFRCeHV6a1R4NW1BdzQzZDN0bHV4cDZNOGZjQkdmUW04MWg5QVVsYlIzV0xHd3daM2d3LzU0aGk4UG9kTk81c2hpQnphbTh6NHRXZDI0cSsrMTQveG9WSDQvdDJYNGY3VC93dmN4dlhHUFNrcEd4b2lKQTFwL3JZUE43L1ZEL2hVL054SEg4VVhuM2tLaDNkdlIyZHJFd1NlUTBKV2taUVZTSW9LV2RWZ0VnVjB0VGZqNkw0ZW5Mci9Ya2lTakN2dkRtRHEwaHcwVFlPenkxNFh3NGZ4SDc4QzZmM3JlT1RZTnF6dmNGZDdjL0RjUzlmeDN2WGlsK1paMStiQ3NZT2JNTk0vQ251VE8yTVdvWGQwQ29sSURCM2RHMkYxMmZFLy83OEx1UHpCZUVHUGUzTmdCaDZYRFJzNnE3OXZxa0tTb0NYaVlOMEZ2bjROMEVKQnFONTVxUE5lcVBNTFVPYTgwUHgrcU1GZ3FyZWFKQUdhQm9ibmx5M0dYcTRXS3grTzU3RGpubTZjZVByKzFORHdyVkhNaDVMb25ZMWpPcGpFQjFPWnZkMDZuU0llM1ZHZUx1M3ZUNFR4K2tBUVNwbVgycEVsRmNINUdPenVWUEc3U2VSd2VGY3p4bWFpbUp2MEkvSGlPUWlIOW9OcnJZMHZVU1EveW1DUmhxS3BHa1pmbmNENE85UDQyS1BIOGNsVEQwTGdPVVRpRWlhOEVRU2lDY1FTK3JVY0ZwR0gyMkZHbTh1Q3p6NzlZVHg4WkIvKzlCdi9ncEZ6RS9BTkJyRHJFOXNnMmdxYklWUXQwdlZiQUlET2RsZVZ0d1M0Y25NQ0w3NXhxNlRmN2RuYUJsVlJJU1dTYU43UWtYR2JJc3NBQTdnN1dqRHZpK0RkcTRYVmRxVjk2NGVYY096Z1pyQnJ0R1pZOVFlZ1RFMkI2MXhoL1R0SmduUzdEOXFkNGRpbGROZFhZeGl3VmlzWXV4MnN3d0hHbmxuN3Bpa2FFRXVDc1JTZkViYTdiUGowdi84NFRuN3FJWHpuYS8rQ1M2KzhqM0YvQWdMSFFsWlZhQnBnTjNINDBBN2pneDVWMDNCdUlJait1ZFFFalkwZVU5bVgycEdTQ29hdWU3R3hwd2sybHdtaXdPTHpUMi9ETjU4Znd1VmVIL3kvL0JXNHZ2cGJFSThjTE45R2tGV2pEQlpwR0pxaW9lOTdRMWk0N2Nkdi9NS244S0hqQnhGTEt1aWI4R0hjRzBZNExrRlc4ZzlWeVlxS2NDeUpHVjhVMFlTTWRTMXVmT2krQXhnY244Ym8wQ3dXYnZ2UXZOTUR2c2laUXBVVS9wTy9CaVFKbjNqOEFMZ3FSaEMzaDJieE45OTZHNnBhL0ZLbkZyT0F6LzdrVVVqUktCTGhHTmJ0Mkp4eCs4TEVESGlUaU5aTjYvQ0RsNjlqZE5KWDFPT3Jtb1ltOXhyT1lnSFFJaEV3WmpNWTh6S3pURGtPNnV4c1VXdFhhcElFTFJLQnVyQUExVHNQTFo0QUdBYU1tS3EvWWhRdG95OVdzV3hPSzQ1OCtGN3NQTkNOc2Q1eCtPWlR3NE1PTTQ5am14d0Z0MGdvVkVKV2NlYW1INk8rQklCVWNQWGhuc29zdGFOcEdnTGVHRXgzWmhpeUxJUDkyOTJJeEdXTWpnZVJlUEVjK0UxZDRMZHNYUG5CU0ZWUWdFVWFncVpwdVAzZElRUkhxcHNHQ3dBQUlBQkpSRUZVUS9pOUwvd01lclowWVh3dWhJRXBQNUpGMXY4QVFEd3BZOVlmQmNPeU9QM0FBWXhNekdCc2JBNytvU0RhOWpXRHJjRXAwOHJNSEtMZitBNWFtK3hWclRPNmNuTUNmL090dHlGSnlzcDMxdkh4VXdld2ZYTXJBdE5lTkhXMVo3Um5BQUQvdEJjMnR4T09aamZPWHVpSGR5RmM5SFBFa3pLT0g5eGMwdlkxQ2pVWUF1dHlwWWIyOHBGa2FORVNsMWhTVldpeEdGU2ZIK3I4UEpDVUFKWUZZelBuOU1VcVZ2UDZGanoweUQxd3Vld1l1RFdHY0RTQkVWOENpZ2EwT1FSREFxQmdYTUdQUGxqQWZEU1Y4YTdrVWp0TGhSWmlFRVFlRnBzQWhtR3dlNHNMa3F4aGNEeUV4R3R2Z1czeVFOaTVyYUxiUkFwREFSWnBDTU12aldQNitoeSsvTGxQWUZmM0Jvek1CREcxRUZuNUYxY1Fqa253aDVONDVQQnVYTHM5Qk85TUFJbGdFaTA5SGdPMjJsalNwYXRJdlB3R3RtMXF3YUY5bGY5V0cwL0krTzZaSy9qZW1Tc2xaYTRBWU11R1p2elVVL2VDWVJpb2lnSjdVMjZXS2V3THdPWnh3bXkzNFViZk5DWm5BMFUvVHl5ZXhLbUhkcGEwalExRDA2Q0ZRdUNhbXZNV3ZUTThCM1YrWWZYUHBhclFvdEhVWTBWRFlGMG1NTHhwZFEwMEJSYWIxclhpeEtuRGlNZVRHTzZid0hRd2lTRy9CTGVKaGROY2VnV01OeXpoUng4c0lKSk1mVGxycTlCU08vbUVmSEZ3QWdlclBaWDk2OW5rQk1NdzZCOExJZm5XTzJBc0pnajdkbFZsMjBoK0ZHQ1J1dWU5dVlEQmw4Znc1TU5IY1ByQlE1Z1B4akE2RjlLOWJ5UWF3OERJR0c3MURhSi9lQlNqRTFOWUNBVEJzUnhzVm92dTc4aUtDbDhraVVPN3R1TDgreDhnTkIyQmE0TURabmR0dEVGSVM1eDVEZEtWR3ppNHV3czlXeXUzamxrd0hNZHI1L3Z3ZDk4NWovN2gwdGM4TkpzRS9QTFBQUVRibmZZU3BqekhJeEdKd2VaeGdSY0ZCTU54Zk5BM1hmUnp5YktLRHovUUE2NEdNNUVWcFNqUWtzbThSZStNSUVCZDhBRkthZGxJUFZvMEFjNmhBSEUvb0NwZ2VCRmdpODlvTVJ3THlDb0Vsc1crd3ozWWY3Z0hJd09UbUozeG85OGJSekNwb3NNaGdDOXlmY054ZndMUEwra0c3N0h5ZUhKM0U0UUtuU3YrbUF5UlozSW0xWVQ5Y1hBOHU3aUc0Yll1QjNpT3hlM1JFSkx2dkE4QXFhN3ZwR1pRa1R1cGEwcFN4Y0FMbzdEYkxQalU0dzlCMVRTTXpBWno3dWNQaHZENmhVc1lHQm5ObTEzeHVGMDRkczgrN043ZW5YT2JwbW1JS1J4T0hMMEhMNy8xTGtiUFRzSzl1Ylo2S2ttOUF3Q0FqZ0o2UFMzNG8vaVhsNjVDa2xSWUxRSWNOak04TGd2Y1Rnc2Nkak9jTmpPc0ZoR2l3QzBHSWFxcUlSSkxJaENNWWRvYnhNUjBBTDJETXhpYjhrRXJMV0cxaUdFWS9QeW5qNk9seWI3aWZhMHVCNFE3dzRZSGRuWGgyeis2WE5KenZudDlEUGZmdTZXazMyMGtxdDhQZGQ0T3RsbC9WaHJyY2htN1dMZ0dxUE54Y08xV0lMb0FMYm9BbUIxZ2JNMkFvQjlVNTJVVGdYaXFDSC9UdHZYNHloLy9JbDc3MXd2NC9qZGZRdjlzRkJPQkpJNXZ0S083cGJBVkRRYThjWnp0OXlQOUVXRTNjWGhpVi9uWE1kUUFETS9ITVRnZng4SDF0cnpEa0ZQREFUQXNnNmIyMUFTQ0R4OU5UUUQ1NFJzVGlIejlXVUJSWVB2Zi8wMVp0NVVVamdJc1V0ZW0zNTlETWlMaEp4NC9Eb3RKaERjUWc1UlZjelU0TW9ZZnZYd09raXhEc1BMbzNOY0Mxd1k3ZURNUFZWSVJtb3BnOXZvOGZBc0JQUC9xRzdnOU9JSW5UajRJazg3NmJidDdldkRXZTljUW1BZ2hNaHVGcmEwOC9YWktJZC9xQndDc0wyQUdvYVpwdVB6QmVNbERlVVppR0FhZitjbWoyTFd0WStVN0E3QjVuSXZmN2wwT00wd2lqMFN5K1BVV0wzOHdUZ0hXSGZMRUpBUzdIWXdwTnl0cmVJQUZRRWtIV0dueEVMUjRDQkJ0cVVETFZGajNmVWJrQVpHSGR1ZjRzeXlMUjUrNkR3ZVA3Y0kvL3ZmbmNPM1NiYnphNThldzM0cjdOOWxoRWZJSFNqZW1vM2hyNk82WE14UFA0dkZkSGxqRjhnWlhvNzRFM2hrTndXN2k4TWcyMTRvZDRTY0gvV0FZQnA0N256MGZQdHFCZUZMQlN4ZW5FZm43YjROeDJHRjk1dW15YmpNcERBMFJrcnJXLzYvRGtLSXlmdW1aSjJHem1ERTJGMEo4U1hIMXhQUXN2dmY4eTFBVUJlc090V0h2VCs5QTB6WTNyTTBXbUYwbVdKck1jRzEwWU4yaGRvaDJBYjdCSUh6K0FLWm52ZGk5dlRzblRjOXhMR0t4T0NabjVpRGFSYmcyT2lyOWtuVXBrOU9JZnVNN0VIZ09uM2o4NElvOXU2d1dFVTY3R2RkdlQxVm9DL1VKUElmUGZ1SW9EaGRSTTViOTJ2cUc1M0s2dHhjaUZJN2o5QW1xV3dHUXFzZUtSY0hwWkxFWVVZUXk1OFdxMDVSTEtSbzRsd2xNZHNDalNFQThBQ1FpWUhnQjRBcVljY2d5aTFtc05Jdk5qR01QSDBCTHV3ZDlId3hqMWg5RDMzd0NOb0ZGa3pVM3IzQmxJb0lMSTNmTENqaVd3ZWxkSHJTVXNTM0xRbFRHSzdmOXVESVJ3WjRPS3g3YzZpcTRJM3pZSDRmRkpzSjBaN1dKSFJ1ZGlNWVZqRXhIa0x4NEdYejNKdkNiTjVSdDIwbGgxbmdCQXFsbnlZaUV5RndNNjl1YjBlcHhRVkUxQktLSnhkdFZWY1VMWjkrRXFxcFlmNndEM2FjM2djMzM3WkFCT3U5dHc1NVBiUWZEQUdPVDAzai9BLzBlVGp1M3BiSWVDd1BGRjFlWHkyTC9xelluMkFJL3BCODR2QlcvK0xNUHd1V296b0xRelc0YmZ2WGZQb0o3OTY3dVF2RFVvM3RLK3IxRVVzYmc2UHlxbnJ1UmFKRW9sSmxaM2R0WSs4cER0OFZTL0luOE4wb3hhQXVqMEJaR2dPVHlzeGdac3dBbXp6bC8zNlAzNEQvOSthL2k0TEZkaUNka3ZOcm54MnVESVNTV1pMbmZHUTNobmRITW1zMkh0N25RVWFZVkhDUkZ3OXREUVh6dnFoZnpFUW1uZG5wd1QxZHgrMWZUZ0xIYkM0aUdrb3MvKy9qSkRUaTBzd2tBRVB5RFA0RXlVbGp6WFZJK0ZHQ1J1aFdaVG4zd2J1MUtEUzBGbzRtTUw5bDlReVB3QllLd3RsaXc1V1JYUVkvcDZYYWg0NTVVZ2ZpbHEvcnI1N1UyTjhGc01pRjZwL0ZnTFpDdTNnUUFiRnhYM096R3ZUczY4VHRmZWh5UDNyY0Qvejk3NXgzZVZuM3YvOWM1MnJMa3ZXSTdpYlAzQk1MZUVFWm95MnhMQ3kwdExiZFF1bmR2VzdwdWFhSFF5US9hMHBaU2VtOWJadGtyWVljUUNDRjdPWTczdHJYSDJiOC81QmxidGl3ZHgwN1E2M255UkQ0Nk92cGFsbzdlNXpQZUg3dnR5UGg3Q1FLY2R2eHN2blBUK1ZSWEZXWjh2T3FxSW5MVEZJbVB2YkE5NCtjL2x0RGEyakNrNGNKSDlKb3ZzUFRSQkZZZmNoU2pweDdEMXdCcVBQbCtvM2hyNVJaNHVPbTdIK2U2TDE2TzArV2dwajNDb3p0OXRBUmszcW9Mc2ExNWFQVHpoQmxlWmhkTnpFVkhmVStjaDk3cllsZGJsRHlubFE4dEwySkdtak1UZGQyZ1lWODNpcHlJMkF2QVI5Zk9aSHFaR3lNZUozRExMMDF0VHNneWZySUNLOHRSUzZ3bmNjSXR5azhVZFFlajhwRDdhK29TRHQ4Vng1Y212Y0lkaWNvVHloTEhDNGNKQklkM0l3cUNRRkZCUHBxc0lZZUh1MXhQQnNxMmhCaXNTbU04anROaDQvSUxWL0RqcjY3am9yTVdVNWcvY1hWbHl4ZFc4TzNQbmM5SFAzQWNUb2Q1NlpjckxralAwZnBRUXhmZGFhUVhqMWtNQTYycGVkaG13V04rS3R5UU5JeG9pclZ6VWdTajZ4QkdvQ1dSUmp3TXdUWDJlK21VYzFkenkyOXZadDZTYXNJeGhhZDM5N0NqZGVqZmZsNkppeFdWcWRWL2pZZUlyUEhDUGo4djdQTVRrVFZtRmpyNDBMSWk4akt3a29ERVdKMkd2ZDBZdmJXVU5xdklKeTZlamMwcW9oNm9KZnF2eDgxWWZwWTB5UXFzTEVjdGZRWGExbDdUd2toczZJazNHRW9ZVU9hVWpFOHd1SXFjMkhyck5FS1JrZE1UZlpZT1NtVHlCWmJ1QzZEVzFnTXdmWndSck1GNDNBN1duYjJFSDMzNVlyNTQzWm1jZGRJOHlvb3ovMkl0S2ZSd3dSbUwrT0dYTHVLR3EwK2RrQm1KeHkyYlRuSGgrTDhZRGVDZS8zM2Q5UFVjemVpaEVMcmZQMlNiNEhTQXhmd0lweDZVeDk1cE1MRUFSdGRCakZBSEdJT2FXYXlXbE14TGkwb0wrUHIvWE0rbG4xZzc3S0tyMUd2ajlEbm1kd2J2NzRqeDBIdGQxUGRlRUs2b3pPSDhCUVhZeG1rZmtZeFlSS0hsMEVDNVFrbUJnd3RPU294Qml2MzlJWXpZS0pHL0xCTkt0b3N3eTFGTDMxV2IzanZLSXlLTkxIYU1rU2VuallyTmJVT0pxa2w5a3FiUzRPYytEeHhSRktnb3pYd0dvU0FJeko5Vnl2eFppVlNwUHhpam9hV0h4aFkvTFIwQi9NRVkvbUNNVUNRK3BBdlI1YlNSNjNHUzUzVlJWdXhsUmtVQmM2dExLRW5CZXNFTWJ2elk2ZnowcnVjd3hsbU0zZG9SNU5sWDkzQmh0dUM5SDYybEZURXZiNGdScU9oMm80ZEc5cGRMRnowb1l5a2ZaOFRVTUNEU2pSRUxnTGNFd2RVcjJGMDJDSTJkRWhNRWdZdXZPSU9GcStmeHg1LzlnNTRPUDZJb3NLREVaYXBMZTBUV2VMMDJTR1B2bUIyTEtIREduTHlVTFNQR2c2OGpRbTZoRTI5QjR0aG5yaTdsMWEwZEJJTWhZZzgvaGZ1YUsxSTZUdGVCQmg2Ni9nY2M5OGtQY2NMMWw1bSt6dmNiV1lHVjVhakYwVnVFNmc5R2lFbnFNTXVCZ3J3OFdqdTZDTFVrakVISGd4SlZlbzh4OGhWdEtKS292eEltMkI4bkZlUXQyNEJFZXRBMkFYVlUrYmt1OG5NcldiNncwdlJqbTBsWmlaZDE1eXpoeWZVN3gvM1lwemJzcEx3NGw1V0xwL2J2ZUtRd1pCbTlzd3V4dEtSL20rQjJnOWtDSzZxQVprQTYwUnhkaFVBclJ0U0g0QzFEY0RveFFxbEhhMmJQbXNZdGYvazY5LzNpWDJ4OWJRZXYxUWJwanV1Y09EMG5ZOGYybXM0WUd3OEYrODFLM1hhUjh4Y1VtRDRyY1RETkIzM01XMW1HeFNwaXM0cWN0NmFjUjE1cUpQN0U4eWtKTERVdThkRDFQOEJYMzRvbVQzNWsvbGhnOHI4ZHNtUkprejRuOVliV1RxSWpSSzhxeWhNUm1QWnRYZU02cmhTVVVhSXFKWVVGT0Vmd0JWSTBuVUR2RjQwemIySTZqY2FEOGs2aVVIdlc5SkdOSXQ5UFhIakdJaGJQUzgxUGF6Q0dBWC8rOTV0czNsWS9BYXM2T2xFNzJvY1VTUXV1Q1NqOE5rQVBqVE5OZURoS1BGRUlIMmtEeGpkMzFLWERUVCsvbm85KzZUSkVpOGp1bGpCUDcwM1VTYVdEcE9xczMrL241WnBBdjdncThkaTRkRm54aElvclNOUmpkVFFOQ09EakZ4Vml0UWlvVGEzOVhjYWowWFdnQVY5OUt6YTNreFVmdVdBaWwvcStJU3V3c2h5MWVLYmxJRnBGYXB0YThZZUdkL1F0bkRNTG04MUt0Q3RHNDV1cCt6MjF2cHRvVlYrOFlPUUJxczBkZmlLUkNIYVBMYm50d3hGQ2EycEZhMHVzTnl1d0V0eDB6ZWxNbnpiK09pL0RNTGova2MzOC9aRzNKMkJWUnlHcWx2Qy82a1Z3VGt4blhjWUNxNDlZQUsyMUZyMXJITlliQmhDU09PL2o1L0QxMzMrQjNId1A3UUdKLyt6eTBUck8rckRtZ016RDI3bzQxRDBRUlp0VDdHVGRrc0lKTnl2dG82Y3RnaXdseEtIYmFXWEo3TVRuUUhwOTg5aVBQWlJvYmxoKzFWcGNoZU1yTmFqWnNCazVNblc2cXFjS1dZR1Y1YWhGdEFqa1RmZWk2d2J2N2o0dzdINjczY1pwSjZ3R29PNmxKcHJlR250bW5iOHVTTk9tTm5LOUhsWXNXakRzL3Bpa1VsUGZDREFsVEVibGQ3YjEzNTQ3czJTVVBkOWZmT3R6NTZjdE9OL2FWc2QzYjM4aTY1RUY2RjBEQnFNanVieWI4aHlSOGJ2d0owUE1zYUkyTmFIc1A0QVJUZTBMMzVBVWpMakMvT1BtOHYwSHZzWHNSVE9JeGxXZTJlTmpaK3ZvSGx3QW1tNndxUzdFTTd0N2lNb0RFYlRqWjNnNWUxNSt5dWFoWm1BWUJ0MnQ0ZjZmbDh4T0NDV2x0MDV6TktJOWlVSjVRVXhkRnNTRFlSNzVyeC96NEtlK1QrdTJmZU5jN2JGUFZtQmxPYW9wWFo3NEVuMzluWkg5akZZdFhjVHl4UW1oZEdoOUk5c2YySXZ2WUdCWUliUVNWYWwvdFpsZC85cVBSUlJaZCs2Wi9kMkpmZWlHUVpzdlFtTmp3djZoWUhibUJlV1pJbTlPek9Fckx2U1FuenZPT1c3SE9GLzd6RGxwbTVnR3czSHUvUE1HZnYzWGwrbnhqLzBsZTZ4aXFDcDZUMC9pQjBGQUdHRjhWTWJQRVZmQnBKRk5ZbThhem9oR1VmYnZUMWhPNkNta0RYdHJ0d3BLOC9ubXZWL2w5SXRQUk5jTk50VUZlYjAybUhSNWdaaks0enQ3MkRuSTdzRXFDcHc3UDUrVkUyRDNrQXJCN2dGaE9iLzNJbERaZnhCREdqMGlWM1Y4d3JCMzEyTWJpSFQ1eG55ZWpqMkh1TytTbTluMzdCdk1PWHNOTTA5Snp5cmxXQ1k3S2lmTFVZMnJ5RVg3ZTUwRS9HR0tDdklwS2hpZUdwbzlvd3EzeTBWalN4c3hYNXlPWGQwMHY5VkdkMDJBemowOU5ML1ZUdDJHUmdJTklUdzVPVngyNGJsTUt4MGVEV3IzUldsc2FhV201Z0NpVldUZXVsbVRtaUkwRklYUUwrNENWV1hWNGlxV0xhaVl0TFZNVlZZdHFTSXYxOFh1QTIxcFRYcnA4VWQ1ZWRNQjloeHNwNm9zbjd6M29ZZzFaQmxMY1RFQXVqOEFpdmtGMEdLdUhjRnVRb09HS0tBSFpPaDFhamVpVVhTZkg5SHBIRDBDcHh0Z0VSRnNGa1NMeU1xemxtTzNXdGl6NVFCZFlZWE9xTXFNQXNlUTR2ZjlIYkYrWDZzK1hEYVJDeGNYVXBVL01kRytQcUt5VGwxUG5KcXVPSXBtNEhGWSt0ZW1hd1o1eFc2c05oR253OExHN1YxSXNvYmp0RFZZU3BKSGRUMmxoYlR0T0VESDdscHFYM21IdWVlZWlNTTdna2cwRE41OTRDa2V2ZkduUkxzREZNeWN4bFYvK1RFMjkrZ3A1TzdhSnFSQUdGZis1RWYranhSWmdaWGxxRVlRQlN4MmtaNmFBTTF0SFN5WlB4ZWJkWGh6YkhsSk1jc1hMY0JtdFNCSk11RklERGtrRS9kTHFGR1YwcUlpMXF4Y3h0b3pUeVhQTy93RTBCT0sweDJLOHM2V2Q1QmxpWXJqU2ltYW43N25sQmtvbTdjU2YzbzlBT2VmdG9CcEpsZzBqSVd1NldpOS8zUk5UMWhsQ01LVXNxMDRuQmtWQlp5OGVoYTdhOW9JUjFOd0R4OEJmekRHRzF0cWVmWHRnL2dETWFxckNpZWtZM05Lb3FxSWVYa0lOaHRHS0lnUlQrODFIQTNSYWVtUFBtV0tFVC9Nd0ZUVDBIMCtERmxPalB4SmtnSVROQjBoWjBBWXpWMDFseGx6cHJIdDlWMzRRaExOUVlYcUFnY0c4TnJCSUZ1YncwTWlXd1Z1Syt1V0ZGSXd3cXhETXdoSkdudmJFOTJKN3pTR2NOa3NyS2owVU9xMURldDZkTHB0dUR5SmFPT0J4aENkZmduYjBnWFk1czhaOVRsbW5yeUNBODl2cFB0Z0U3c2VlNG5LbFF2SnEwb1lMMnV5UXMyTG0zamlLN2Z6M3Y4OWc2NXBsQzJldzBjZnVCVlA2ZGdUR2Y3NXNXOFRiTzFnN3JrbnB2a0tISDBJMzZsL3pzUUpubG15SEhrTTNXRHJYM2NUYVk4eXZhS2N5eTgrSDhzWWRRU3FwaEdPUkJFRkFaZkxPYUlvNjhNZmxtajNSOWl6ZHplMXRRZXhPQ3ljOExsbDJDWndFR3dxaEc2L205aGp6eUFJQXIvNDFnZHh1OHhOMytpNmdSU1RVU1FGV1ZMUlZDMnB4NVFnQ0ZqdFZteDJLM2FIRFlmTE5pVkYxK1p0OWZ6N3FhM0VrM2ltalllaWdoeFdMS3prbkZQbUgvUHBXVXRKQ1piS0NyU21aclN1OFhYbHBvS1k3OEEyeXh5VFQ2MG5qbG8vc3AyRVlMVmlxYXBDekIvNVlrUW9jQ000aDM2dUcvYzA4cHV2M0lPL0owaWUyNGFoNndUalE3c01xL0lkbkRNL0g3dEo1cUY5NkFZMCtPTHNhb3ZTR3BEN24rdmthaTk1cnVUbnJJS3lIQ3A3Qzl3ZmZibVJWOTd0SU9lVEh5Ym5obXZHZk01Z1N3ZVBmK2tYTkc1TzJKMjRDbkt4MkcxRXV3UG9ha0s0MnR4TzFuem1Dazc1L0Vld09sT0wxdjN0UTEra3U2YVJMMjc1WjhxUE9kckpSckN5SFBVSWdrRGVEQzhkTzd2eCswTjBkdnVZTjN2bXFLYUJvaWppZERod09PeEp4Wml1RzNUNFkzU0hZalExTmJKM2IyTGUzL3lMcThtdG11UXd0MkVRdXUwdWpHaU0yVE9LT1dQTnlCMlA0ejh1eEdJU3daNHd3WjV3UW1ESmFyK1o2MmpvbW80aXE4U2pFdEZRSEZYUnNGZ3RTYzFhSjRQSzhuelducjRRMFNMUzJPcERWY2ZYMWorWVdGemhVRk0zRzk3Y3o4dHYxWEN3dmd1cjFVSjVpZmx1NEpPT0xHTXBMY1dJUkRFaUV6QmFTQkN3RkpzalVnVkE2MHJpaDZYcjZINC9SbHhDOUhxSFJiTUVoby9keVN2SjQ3aHpWckx6OVYxMGQ0ZVExS0VYR1l2SzNLWVhzNnU2d2I2T0dCdjIrOW5iSGlNc2FYZ2NGczZjbDgveDB6MDRiYU4vcGdSQm9MQXNrZDdyOGt2c09SVEVNcTBVeDVrbmovbmNEbThPeTY5YVMrWHFSVmhzVmpSSlJwTVZQR1dGekRocEJTZDgrbExXL2ZKcnpEbnJCTVJSTGt3UHg5L1lSdDBiV3lsZE5KdVMrVE5UZnR6UlROWm9OTXN4Z2J2WXhlTEw1N0xyd1FQVTFqZnk0SlBQY2NsNVorSnhqMyt1bnFSb0JDSVNnWWlFYmhnME5OU3pjOWNPQUNxT0w2TjBXYkhaeXg4MzZyNkQ2RjJKNHVPbDg2ZVpjc3h3TUVyQUYwWlZWSVRldEo4QS9TbEFBZnEzajRWaEdNU2pFdkdvaE1OcHgxdmd4bXFiT3FlYkM4OVl4SVZuTE9LZEhRMDg5K29lMmpxRGFkVm85UkdOeWV6YzM4ck8vYTJJb2tCVmVUN25uN2FBVlV2U0s3S2ZhaGlxaWhHTERYRjJOL1g0Y2ZPR0VndE9hMElwamZMMzFQMStsSEFZeS9UcGlJUE1oQTFKUWRBTk9Fd3NGVlVVOGUyL2ZvM2ZmZWx1RHU2dXgyNFYwWFdENDJkNFdEck52R0oyM1REWTJ4NWphMU9ZbUpJUS93S3daRm9PeDAzM3BEeGVSNDROcEVqemNoS1JiZDBmU0xiN2NBU0IyV2Nleit3emowLzlNV013OSt3VGVQT3VmN0w3OFpkWmRNa1pwaDEzS3BPTllHVTVabkFXT01pYjdxWDdnSitBUDhUdS9RZHh1NXlVRkJhTUtRb1VUU2NRa2Vqd1Ira0t4b2pMS29xbXNtdlhEZzdVN0FlZ2JIa3g4eTZxUGdLL3lkaEUvL2xZdjNuZ2g5ZXR4dU1ld1JBMUdzTmlHenVOS2NWbFdwczZDZlNFMEZRVjNUQXdEQU5EMXpFTUkvRno3KzIrN2JyUk80Q29yNFYvbE5kWFV6V2k0VGlHWVdCM1RLM1VZVVZaSG1lc21jczVKeTlBVVRSQ1lTbmo5S0ZoUUNBVVordXVKaXdXOFppeHp4QWREaERBQ0lYSDNqa05MSVZPY3lZakNLRDdCd3JkazlJWHpaS1ZvYlZaMWtTeCsrSFluWFpPdlBCNEd2YzAwdExRU1o3SHdVa3pQRmhOU2d2V2RzZDVZWitmZzExeDFON2lybHluaGJVTEMxbFk1aHFYdTd4aEdCU1dleEF0QWxGSjVhMmQzWWk1WGx3ZlhHdktXdFBCVlpETHBqODhpSyt1bWVNL2RTbFd4K1NiTkU4MFdZR1Y1WmpDbWVlZ2RIRVI0WTRvNGU0b0Irc2FPVmpmaU4xbW96QS9GM0dFZEdCM01FWnpkNWlvcEtEcU9vYWgwOXpjeEpaMzM2RzdweHRCZ09xenFwaDk3aFNKUmhnR29aLy9IaU1TcGFJMGo0dk9XanhzRjZWM1NMWEZQcnJBNnU3MDA5VFlqaXdwR0Vhdm9OS04vdHRHNzIxOTBPMTBSWmNpcWNoeEJZZlROdUxmWVRLeFdrVVd6eXZuN0pQbmNlRVppeWpNOTZCcU9vcWlvYWphdUtOYkFvbmkrcXN1WG5Yc0ZNTUxJRHFjcHM4ajdFUDAyaEdjNXJ4V2VraEpPU3BteEdMb2ZqK2l5NFZndHllaXRLNlJQemNXcTRYanpsdE4yNkZXYXZjMTB4N1ZtRjNveUdpMFRrOUVaZjBCUHp0YUlzaUQwbzhMeTl5Y3Q2Q0EzRFJmazl4Q0Z6YUhCVm5SZWYyOVRzUzhYRnlYWFpUMk9qUEZZclBTdkdVM1BiVk5GRlJYVUw3VXBMS0dLY3pVaWRsbnlXSVNqanc3eXorK2tJNGRYZFM5MGt4bmR3L1B2UFFhNjkvWXhKcVZ5MWl6Y3RtUS9iVkJyVUM2cnZQS3F5OFJqU1lFaXF2UXlieUxxNmVFcVdnZnl2YmRhQjJKUXVOVlM2dUczVy9vT3JFZVA3blRrOXMyNkxwT1kzMGJBWDhJNkUwQkNpQ1ErQjlCNkwrZEVFb0R0NVB1YzFnYWNhVDBvaUtyZExmNUtTak53MmFmbXFjZlVSUTVlWFUxSjYrdTd0L1czaDNpVUVNM1RhMSsycnREUk9NeWtxejIxM0RackNKT2g0MlNRZyt6WnhSejBzcHFyRk5nVHFXWjZKRW9RczdFRGU0MjBoeFBNeExqdFh3d1pCbWw1aUNXc2pJc0ZlV01KcGVzTmdzMzNQcHBMRC80RzI4OS95NGJEb3FjUDg4NzdrSFJxbTZ3cFRITXp0YklFQUh2dG91Y1BqdVA2UVdaRllMTGNSVzMxNDdMTVhVRS9zSjFwMVA3eWp2c2VQaEZWbnprd3NsZXpvUXpOYzl3V2JLWVFPbXlZa3FXRk5HNXU0ZldyUjBFRzhOczM3MS9tTUFhakNURmlVYWoySEpzekRxbml0SWxSUWhIMElrNUZlTHJYKysvZmNLeUdjUHVqL1g0UiszUzBYV2RBL3NiQ0ljaXZRSkpnSDV4MVN1ZUpsaDBkYmI1S0NyTncrRThPdElFWlVWZXlvcThzR3F5VnpLSmFCcUdaTDVGUXgrR2tuN0R3ZUVJYVk2bTBkcmIwY05oN0htTEVGeko2emRGVWVRelA3NE9WNDZMbHg5OWd6ZnNJcWRYcHk0K1c0TXlyOVlFQ0VsRFJXVmxucDJ6NXVYakdxT0lQUldVWHNGcTZ4UDZtbmtDTmwzbVgzQXF6LzMzNzJoOGF3ZmROUTBVelIxKy9qcVdPTFl1c2JKa09ReEJGQ2hkV3NTQ1MyWUQ0QmdoNzYrTllOTnNjMXNwVzFZODVjUVZtb2EwL2pVQTVzd3Nwcmh3NkVuZDBEVGtRQWliZStTT0xGM1gyYk83RnA4dmdLcHFxSnFHcXFuRGJtdkR0bXZEYm11YU9tajd5TGMxZGREMnZ0dWFoaUlyZExiMm9Nam1tMVptbVRpTStBVE9tek5UWUdVUXRURWlFYlNhZlJBUGp2NGNvc0RIdi8wUnpycjhOUGExaHRuU1BMYmp2OXJyRHYvVXJwNGg0a29RNElRWlhpNWNYR2lLdUlMRThHY1lxTmMzWWtrNks0OGdybnd2ODlhZUFzQ1crNStZNU5WTVBOa0lWcGIzQldydjFaeDlqS0x2UGp1Q0tWU0hQUVJwMHhaMGYrTEVmL0txV2NQdkQ0WUJJMmtFcTdhK0E1OHZ3UEFJVlNwUkxITWpYWnFtMDlyVVJlV01VaXpXek5NWWhtR2d5Q3FxcktLcENUUFV2aG94UVJBU3ByUVdFWXZWZ3QxdXhUcEZVNVJUbVluOGtqWTFncFdoU05GRE1vYS9HVndSaE56eXBDY0VRUkQ0K0xjK1REd21zZW1adDhteGl5d3NHZG5SdkN1aThOS0JBSUhZME5tTGJydklPZlB6S2ZlYUc4MVZsZDRJVnQ5ck1VWE9hYWQvK1JyMlB2MGEyLzc1TEtmY2ZIVktKcVZISzlrelRKYjNCVnB2d2F0ampLSnZUZXU5NmpOamJNY0VFSC95UlFEY0xqdkhMUnRlZEMrSHdnaFdLNEpscFBVTExQbmgwOHc4dEFQZnRnMEVhdDRsMEZSTExCUWNVU3h4bUxpYUNOR2w2UnF0elFtUmxVNTNvYTdyeENNUzhaaU1IQjlmTkV3UUJCd3VHMDYzQTRmTFBxVzZHNmNzbVhoWmpIVm9Fd1VXR2RhL0diSGU5MUxNajZIR0VmS3J3REx5dVVNUUJENTl5elVZdXNFYnoyOGh4eTR5UFcrb1dOclpHbUZ6ZldqWVRNUHlYRHZuempjbkpYZzRXdS9yS2ZVT29CWnlKbWMyNHVFVXo1L0ovTFduc1ArNU4zanpybjl5L285dW11d2xUUmhaZ1pYbGZZSGFHNDYzanlTd1J2alNFS2RhYWhEUWUvekliN3dOd01tcloyRTdMT3BqNkRxNm9tQjFqbndGTGJoeUVTdzJ2SE5YNDUyN3VuKzdFdkhqMy9vaXZ0MGJDZFR0Sk5UZWlxcHBFeUM2UnE3WENvY2lkSGY2S1M1TmZmU1FJcXNFL1JIaWtUZ0dmY2NkV3ZjMUZnbXZMcGw0VkVZVUJYSnkzYmc4emluNXQzOWZrSUhwNitFSUdWb25HTEtlc0ZFWEJWRGlHTjJIRVBJcXdERnluWlVvaWx6L28ydFJKSVVORzNmeGdXVkZGTm9GSkZYbmxab0FEYjdodFd0THA3bFpNelAzY01zdDA5QzBvZWMxWVl5THl5UEpHVi83QkFkZWZKTjNIM2lTbFZkZlJNbkM0ZEg0VE5uMTJBWUtaMVV4YmNWODA0K2RLdGthckN6dkM3UlJVb1FqbEdCTlNlTFBic0RRTkVSUjRJd1RoczhVMDVWRTZrRklsbTZ6ajN3RmE4dkpwK1MwSzVsL3c1MmM4TFBuT2Z2ZWJaejBnLzlsd1FldXAzVGhDdXc1T2YzMVY5b0k5VnFwM3g1ZXg5VlhyOVhSMWtNOExvLzVHbWhxWXQvR1EyMEUvU0VVVlIxVzM5Vlg5NlhwT25xZmxjUVl4OVYxZzVBL1FsZUxqMWhrNGdxNXN5VEgwRXlNWUlsQ3hpbXhJVFlQdW9iaGE4UUlKeDhUSklvaU4vejBPbVl2bThVTEI0SjBLUENmSGQzRHhKVkZGRGhyWGg0blZVK2N1QUxRZXdWcnBEY2xLWGd5ajJDcGtrelhnWWFNajFPeW9Kb1RiN2dTWGRWNC9NdTNvVXBqZi9iSHc2Rlh0L0Q0bDM1MEZZMXhBQUFnQUVsRVFWUkI1LzQ2VTQ4N1hySVJyQ3p2QzdUK0NOYm9kUTVxNzZ5dHFaZ3Vpai94QWdBckYxZFJWREQ4WkduMDE0OGxHV2FiSk1VeGJEOUJ4RHQ3SmQ3WksrbExRaW9SUDc2dEwrRGZ2WkdPZzd1SmQ3V2dxV3JTS0ZZcWthNmgrK2cwTjdReFozN3lycUpnSUV4SGF6ZWFab3pkdlRpT0RzZkI2THBPb0R0RVBDS1JWK3pOUnJPT0pFYnZQNU5lY3NFaVltUVFGVE5rRGVId3djM2hUZ3dsaHBCZkNTTjh6cXgyS3pmZi9sbCsrcWxmOHNTVzltR3pPMTAya2JVTEN5Z3hhYkQxYVBRMTc0UjdCWmFZbDduVnpNNUgxclBoZi83RVYzYytrdkd4enZqYUo2bmYrQjZ0Mi9ienpMZC96UWZ1L0lZcHhhK1JUaDlQZk9WMnZPWEZMUG5RMlJrZkx4T3lBaXZMKzRLQkl2ZlIzL0o5SjBTTFkyb0ZkK1YzZDZBMk5BTnczcWtMUnR5blgyQWxFd1hXOUl0b2JUbjVsSjUyRmRMU0QzRGxuVy9SbFNkemVxNmZNOFVETEl6dnBjQmZBK0dlQVR1R05FUlhJQkRHN3crUm56LzBpOEF3REZxYU92RDFCRE1UVk9NUVhWSmNwcnZOUjM1eDdwVDE2em9tMFEwd2EyQnlodUk0cVMrWEZNYm9ya01vcUFMTDhNK1V5K1BpbS9kOGtlOWU4Uk9rNkVEMHFqakh4dHFGQmJqVHRKQVlMMGF2d0FwR0V2VmtZbUhxS2ZoazlCeHNOSzBPejJLemN1VzlQK0srRDM2Qm5ZK3N4K0hKWWUyUGI4cElaRW1oQ1AvKzFQZUpkUG00NU01dmpHbTBQTkZrenh4WjNoZU1Gc0hTSjdCdzF5eGlEeVphbXVmUEttVkdSWklUWmUrSnlVZzJtTm5JUEFWejQ0TjdhQThsd3ZrdkIvSjVtUk9BRThBQkhvZkVlYTRHenJQV3NFYlpSYUNqQlZWUnhpVzZtaHJhaGdnc1RkTTVlS0NSU0NRNmFrMFhod2tuTTBTWHJ1dDB0L3NwTE0zRDdwZzY5U3ZITW9aaGtGb0YzY1F6YXRHOUtpVkVWbjRWMklmN1plVVY1ZkdEdjMrTEgzM3NWbVJKWVVhQmczUG1tenNRT2xXNi9BbVJaNWxXbXZHeERNTkFDa2NKTkxXVFYxV1c4ZkU4cFlWOC9KKzM4NCtQZklNdDl6OU9MQkJpM1cxZkdkWEhMeGt4WDVCL1gvYzkyblljWVBaWng3UHM4bk16WGwrbVdML1MvdWZKWGtPV0tjcW11anpXekF3aUNsTmZnSXpGbi95Vk5GSTBaaGRoMzRUWWNxVVRtRGZoNjBvRnJiVUQ2YlczQURqMzFPUUZtMEsvd0JyNTcyVm9tWGxPYlc4Sjg5VHVRVFVvdmlBMGRTUmVzcXBTd29XNVBCYWJ4MlBNbytWSHQzS0MxMDZvYmdlKzkxN0V2LzhkQW8wSGlRUURRNDFIRHhOZG9WQ0U3aTQvUmNYNWFKckczajExUkNOUlJoZG1JNHNsVTBTWHB0UFowa05KUldGV1pCMEp6Q3lJekZUTHFHT3NSZGN3ZkEyUVc0N2d5aDkyZDluMEVyN3p1eS93czV0L1IyR0JaOExGVlVUV2lFZzZKVjRiQXFEMXBrZGJPeEwrWE9LMHpBVlIvc3pFWVBsZGoyM2dsSnV2enZoNEFBWFZGVno3eUsvNDF6WGZZZmQvWHFKOXh3SFczZkYxS2xjdlN2a1lMZS90NC9FdjNvcXZ2cFhDV1pWODhOZmZNaVhkbUNsV2gyRnVjVm1XWTRjOXJTNkNFWUVQTE82WTdLVmtURjhOcFdPTUdpeWx0d2JMTGs0ZFVSbDc1R2t3RENwSzgxZzhkMXJTL1FSTEl2V2dxK3JJTzBpWkRlbDlaSHY3b0dQSnNPUGdRTHJBSDRKVGxrTnZnZjIybGpEVEZoYmhuYlVjNzZ6bDlGVldxZEVnUFZ0ZndML25UZndIZHhEcWFFRlJsQ0dpcTdtNW5jS2lQSGJ2cWlVVUNvK2pwbXRzUVpYV1BycEFXM00zMDZxS3MrbkNvNGxNVTRTcDFHOFpCZ1JhTVZRWndWdkM0YXF1YW1FVlgvN1JKL24xTGZmaHR1YXp1TWpjOTA5bldLRzJLMDViU0daNnZvT2xGVG5EZEdWelowSmdXZWRXWi94OHM4ODRIb0MzL3ZnUXE2NjVCRmUrT1NQRThpcEwrZVRqditXSnI5ek9nUmZlNVA3THZzeU1rNWF6OHVxTG1IZit5ZGh6UmpaTzdqN1l5RnQvZUlqdER6NkhvUnNVemE3aTZ2LzlCYTZDWEZQV2xTblpzMFdXcEV6UGkvTi83MDNqZ2dWZDJDMG1kdmhNQWxFNThjVS9VaGZoU0ZMS1pwMGFBc3VJUzhTZmVCNkFjMDlkTU9wRm1XaTFZcEJjWUJteFFPSUxJYzBydSswdGd3UmFNREswRnNNd0VxTExtamdSaHFXUjEyQjE1MUo2NmhXVW5ucEYvK1BDRGJ2d2JYMFIzNzYzQ1RUVzRQUDVpWHBtNEozclJhL2ZTN2k3RTEzVGhrUzlqcmpvMGhKK1hWVXp5N0tGN3hPSk5qVStkNUNpd09vajBvMmh5UWg1bFVNK1g0TE55cnpGMVZ6LzFRL3p4OXYrRDdlMWlPcTh6TDUyZGNQZ1FHZWNYYTBSZXFJcUMwcGRYTGlvQU1jSTNsK1NvdFBhRTBmMGVyQ1VaNTRpTEtpdVlON2Frem53L0pzOCtkWGJ1ZkxlSDVrMjdjTGh6ZUhLUDkzQ08vZjloNWR2K3lzTm03YlRzR2s3b3RWS3hZcjVGTStmaWFlc0NFUFRDYlYzMGZMZVBycjIxL2MvZnZtSDEzTCtEMjlLS3NZbWc2ekF5cEtVR2ZreGZERWJqKzhxNWNybGJaTzluSXlJOUFtc0VWS0VlckthcFNsQS9La1gwVU5oaWdzOW5MQjg5TGxkZ2loaWRUalFKQWxkMHhBUE54dlZOWXhvRDBKT1VWcHI2WWtPU2pHT2xNb1o5TVdTNjB6eDFDSUllR1l1eFROemFYL0hvaG9MWTdUdW9tajJpUUFZbWtwZzl4djRkcjVDb09ZOWdxME5TTDNEdUkrazZJcEY0N1MzZERHdHFtVGNyMTJXMURBMFk0cFVZREYrc1JjUFllZ05pYm9zc2ZlelowbThsMWFmdkpnUFgzOHhELzdsR1M1Y1VzUzBuUEViR2VzR0hPaU04VzVqbUlpc1VlaTI4b0dsUlpSNWs2ZXVEeldITVF5d0wwODkzVFlXNTk5eUl3MXZicWRtL1ZzODlZMDdXSGZiVi91ajV4a2pDQnovcVV0Wi91RUwyUHYwYSt4L2ZpUDFiN3hIMDViZE5HM1pQV3gzaDhmTnZMVW5jOEtuTDZOODJkUW82UmhNVm1CbFNjcmM0aWdDOE5pdU1pNWQybzUxQ3FYTnhrdFVTWnpRSEdPTnlwa0NBMUg3VVRXaUR6d013SVZuTEVvcGNtTDM1aENUSkxTNGhKZ3p2UGpXNks1UFcyRGx1UWFkTGc2L1NyVGJ3SlVvVEJVRVdGbVpmdXJBNnZLZzJ3Zk1VZ1dMbGZ4bFo1Sy83TXorYlZKUEc3NnR6K1BiOHliQityMkV1anNHMlZTTUxybzRUSUNOUjNUNWZFRnl2RzV5ODZhR0svYXhScVlHb1VQSU1CcVdsc1dESE1Yb3FVY29tTjd2L0M3WXJCaXl5am1YbkV4WHU0OFhuOXZNdWtVRkZMcFNGMW4xUG9tMzZvSUU0d2tENEZWVkhsWlZlY2JNZ203ZDJ3T0EvWVNWNC85ZGtwQlhWY1lIZi90dEh2N3NqOWp4MEFzRVd6cjU0RysrWmVySUczdU9pK1ZYcldYNVZXc3hkSU9lUTAzNDZscUk5Z1FTOTd1ZEZNeXFwR1QrVEVUcjFKVXhVM2RsV1NZZGwwMWplbjZNQnIrTDlUVkZYREEvdWNuZVZDZW05RVd3UnEvQjZvdG1PV3lUTHliano3K00xdEZGWWI2Yk5TdG1wdlFZdTlkRHJOdVBHbzlqRzBGZzZXMzdFR2VzSHVHUlk3T2l3c3ZqT3pzVFAzaGNzR0FtZFBqQWJvV1owL29qV0tmT3lxZlVrOEZjTlUwZHMrUFJVVmhPK2JtZm9QemNUd0NKSWRlQnZXL2kzLzR5dnBxdEJGdnFrS0xSL3NML0VVWFhvTzNqRVYzTmpXM2tlR1poTWV1cVBjc0FKdXFyakkxTDB5MjRWeVdNbnJxRXlMSTZFMk43ZW10QXIvcjBSZlIwQm5oaGV3MFhMOGpGTzhaUTZtQmM0ODI2SUkyOVpxVjVUZ3RuenN1bk5BVWZMY09BSFFmOUFOaFBPU0c5M3lVSmM4OVp3eFYvdW9YLzNQd3o2amUreHgvUHZwN1R2bndOcTYrOUpLME93TkVRUklHaU9kTXBtak44Tk5oVUozdUd5RElxQzBzakFEeThvM3dpeDVCTk9LUFdZSTN3ZTRtVC9jblFEYUwvU0VTdjFwNjJNT1c2SDBFVWNSYmtvVVJqSTk2dnRleE1lMGtmWFZVK2RFTjVFU3lmQ3d1cis2TlhBTjg1YjFiYXp3R2dkeDlLZkRHTkE4RmlJWC9KYVZSZi9UMVdmZjloenJ4N0N5WGZmcElYRnR4RTY4eXpVUE9tb1J2R2dKUDhJT2QzVlZYUkJtOGZ3M2srTHNtMHRSNjlGeHVaa05RQ3hDek1GSzJaZGlUMkdaK21nNlppZE5lREhCMHlGMUVRQks3LzZwV1VWcFd5dmphQ2xDUktacENZWC9qd3RxNStjVFczMk1XbHk0dFRFbGNBOWI0NFVVbkR0blFobHNyeXNSOHdUdWFlczRicm52dzkwMWJNUndwSFdmL1RQL0w3azY1aC9VLytRTlBiTzlHVTRYV1lrVTRmbSs5OWhGZC8rVGZUMXpNVnlVYXdzb3pLd3RJd3orOHZwam5nNU5sOUpWeTBzSE95bDVRV1VTVnhrck9OWURSNnVOdnlWRUI2OVUzVXVpWUs4dHljdkhwOGdzV1JuNHNjQ3FQSnlqQ2pQYU9uQWNQWGxEQkpIQ2VMeTNPNGJrMEY5MjF1U2JyUFowK3U1T0pGeGVNKzltRDBwaDJJRllzek9rWlkwcmowd1JZYWZBdUFCU0NBSlYvbkRIY0hwMXRxV0JqYlIwR3dGaUVXSEloaU1TalMxWHM3V2FTcnZhMlQwckxDRWQ5UHh6S2FvbUIxbUJ1aEdJeGdOU21FcFJ2cGk2UERqNU51MnRMUU1YeU40Q2hqY0dqT1pyZngrZTlkeTgrL2VROHYxMFU1YjNZT2xrRVhVQ0ZKNDVVREFkcDYvZWFzb3NBcHMzS1pYenErNHUzdHpZbUxZK2NIems5di9TbFFOTHVLVHo3Mlc3Yjk2MWsyM2YwdmZQV3RiTDczRVRiZit3Z1d1NDM4R2RQSUtjN0gwSFhDN2QzNDZsc1JSSUZ6di85ZkU3YW1xY1Q3Nit5UVpkd3NLUnZvSFB2YmxrcE9uOVdEeHpHRjZwUlNRTlVGWkUwYzA2SUJCby9LbWVoVmpZSnVFTG52M3dCY2NQckNjYWVpQkVIQVhWYU1Fb2xpc2VjTnUxL2Q5U3kyMHo2VDF0THV1bUloYlVHSlovZDJEN3Z2eGxPcitOM2xDOU02N21EMHB2Y1FTNGZQV2h3UHYzcWxuZ1pmZkdDRHBxRXBHaTlwcGJ4a0tRZE9BemY4N3RJU3JuVHV4TGRySThINnZRUzcyZ2VOQUVvdXVqUU5tcHZhcVo1Vm1kRTZqellNUllPSjBsZWlZTm9ITDVrWDNMaVBvK2tJaHplTGpHOGhHS0ZtOUxBWE1YL2dzK2pKZGZPbEgxN0hyVisvbTQxTk1VNmZrVWpuSCtxTzgxcHRFTGszc3VWeFdEaC9RVDVGT2VQellHc095SFNFRlN5bHhUZ3ZPRHY5OWFlQUlBcXN2UG9pVm56NEFnNjk5aTU3bjNxVitrM2I4VGUwMGwzVFFIZE5ZbmFoSzkvTDBzdlA1Y1FicnFKMFVXWlI3cU9Gck1ES01pcFZlWEh5WFFyK21JMlFaT1dCclpWODdxVE1oMzBlU2ZycXIxSVJXSDNSTEtmTklES2hxMHBPZk1QcnFBZHEwNHBlOVdGMU9DQkpEWXBXOXphMms2NEY2L2kvS2QxMkMwL2ZzSnBIdG5mdzZJNE91aUl5YzRyY2ZPS0VhWnc0YzdpWUd5OUdvQlc5NnhDR21wa3A2cC9lYkI3NG9kTUhlK29HTENwV3pvZmNSSkg2Q3kxdzgvWFhVSDcyTllubjF6UUMrOS9DdC8wbEF2dmZKZEJTUnl3U0dSckY2cjNkMHRKSlpWWFpzQ2lXb2V0b3NvelZPYjQwNTlGQVVvODFFeEJzSnFZSHh6SUpUUlVUTXFLQ1ZVU3RxOE02WXpwaTRVQWhlRWw1SVovLzNyWGM4ZDkveG0yem9FZ1NPMXVqL2ZkUHk3Vno3b0o4bkNQWUw0eUdwaHU4VVpzb0JuZGZjd1hDRVlxeUNoYVIyV2Nkeit5ekVsNVpVaWhDdU5PSEppazQ4enprVGl1ZUV1YWZSNUtzd01veUpzdkxRN3g2S0hGaWVHcFBDUmN1NktTNllPUWFuNmxJZEJTTEJqRFhQRHBqTkkzSW54NEE0T0t6Rm1kVVNHMTFEMDBwYUpLTUhJNmdSRnRRMzN3RXorbnBPVEVMQWx5eG9wUXJWbVR1cTNNNDJvRlhFemRpL3JTUGNhZzdScU4vVVBUcXdLRDVhWVlCelIyUW14Q3U5VDN4SVk4VkxCYnlGNTFDL3FKVCtyZEp2blo4VzEvQXQzc2pnZnE5aERyYlVEVU5RZE5vYSt0aSt2VGg5UzFxVERyMkJKWmhUR2lYcldEUElGSjBHRW5uQ0k0WE0wNE9Ra0k4cWcyTldIVURzWGlnaTNmT3dobGM5NlVydVBlT2Z3OTV5SkpwYms2Y21adVdWK3FiZFNHQ2NRM3Jncm00THIwdzA5V25qY09iZzhQNy91NjJ6UXFzTEdPeWJOcUF3TklOZ2QrOU1aTmZydHQ3MUZ5TVJKVFJCZGJnR2l6RGxNS045SWs5OVNKYVV5c2xSUjVPWEZtZDBiSFV1SVRrRHlLRlFzaWhDTG95RUJXS1B2UnJuSXRPeDFvOC9scXNDVU9WMFBhOURJQVJUci9XcjJHd3VOSjFPTHpZVmhwNEhhd3AxTmM0Q3Nvb1ArY2F5cy9walhMcEdzSDliOU96YlFOYWR3TWNGdXMwZEFNMUxvMXdwS01iVFZZbU5BSWhqTkZSTng1R25TTTRudVBvNXZoeUNYWUxocUtqTmpWaHhVQXNIcWhUWEhQR2NwcnEyM2oyb1ZjUkJEaDFWaTRMeTRaM0FLZkN6dFlJZTl1allMR1ErNTJiSVpQMFpwYU1PYVlGVnU2YVI4ZTF2OVQ0ZDZUV1IvQ3N1QWZSa1pqYkZOMzdROVRnTmdEc3BXdHhWdDg0NWpIa3p1Y3gxUEdOSmNsWjhrc3NPWE1JYi9zY2hoYkJ1L3J2NkZJNzRXMmZHM0YvUzg0Y2NwYjhjdGdhSjRMbDAwSkRmdDdiNGVHcHZhVmNzdWpvR0tIVEY4RWF5d01MQm1xd3JKUGc1RzVJTXRHLy9ndUFENXl6TkMzSGNEa2NJZGJ0SSs0UG9JM3lKYS9IdzdUZjgyVXF2dmtBZ24xcVJGcUNHeDVBcnEzQlVaQ0hKZGcrOWdPU01LUm5vYmRtYXNqR1FSNWVNd3ZHLzdzTG9vVzhoU2VSdC9BazlQWjl5RS85ZE9qejY5cUVwdEltQzFXU014NC9NeHFDdzd3VW9Xa1JyRXl0SHZvWVZMeXZOalZqMFhVc3BRTVI0TXV1T1ordTFoN2UyN1NiNGhTN0JBOW5UM3VVVFhXSmM3WG44NS9DT205Mlptdk9rakdUM1l4K3pPR1lmaTA1UzM2SllQV2svQmpCNnNHU013Y3RjaEJkYXNlYXV4d0FMWEl3NldOc0pXc3pYbXVxVk9YRktYUVByWW01NzUxS3VxTVplQjBkUWZvNkNKTkZzRWJDWmpueUFpdjI0Qk5vSFYxVWxlZXpha25xbmkrNnJCQnFicU45Mnk2NmR1MGowdFl4cXJqcVEycmNROXRkTjZISEo2dmFiQUNsL1JEZGo5OUZzS21GemgxN2FOL3dSTnJIR2lLYUJBR3FCcVV5YlZhWVBqRDA5cHg1bVprakdqMk53N2JwaW9weERBb3NUWkxZdkxONTdCM1R4TXdVSVNaRnNNeENPS3lPU210cFJlc1l1RUFWQklGUGYrVktxdWRWc2Y1Z21MQTBQb0c0dlNYQ0c3VkJBSnpublk3N0l4L01mTkZaTWlZcnNDWUEwVkdHbytyYWxQZnZFMVM2bExocUYzTVNIVlQ2Q0FKTGRKVGhyTDRSZSttUkUxZ0FxeXA2UDd4Mkd4WlJKS1pZK0g4YlJ4L2RNbFVZelFNTEVyTzlKaHU5MjBma3Z0N28xWGxMVThyRXFMRTQvdG9HMnJmdUpOVFVrcEtvT3B6WTNyZG8rY1hIVUx1VFd5OU1OSG84VFB2ZFg4SlFCdFl2ZDdXaHRCMUs2M2l6aWx6TUtocFVmemE3RWs1ZUJpY3VnWk9XZ1ROeFlaQmp0L0R4NDVJUHowNXA3UjAxdzdacGtueFVlOFlsUTRyR3FXOExUTmp4aFZUSEs2V0FNVTZCTXVHTVVLaCt1TWl5MnF6YzlOL1g0UEM0ZWFreGhweUNFNzF1R0x4ZUcyUnpmU0p5WlZzOEgrOTN2MlRldXJPa2gyR0FiaHpiS2NMZzVzdUcvR3pOWFlGNzRROEJSazIvcFVLODdtN2tqdWVIYkhOTXV4ekg5SVN3c2hXZVFyenU3cFNPZGJpZ3N1YXVBQmlTOWh1ODlzbGdaVVdROVRWRlNJcktCYWV1NXRuWHQ3Q3BJWi8xQjRvNGQ5N3dsdjJwUkhTTUdxekJUTlpjd3ZBOTkyUEU0c3llVWN5U2VhTi82UnVhUnJDcGxVaGJKMmFZL2NndE5UVC96MVVVZmZTN2VOYXN5L2g0NDBIMXRkTis5eGVRVzRkZlRFUzJ2a2orUlo5TjY3aGZPMnNtTnorOGQyRERDSC83SDE4MGgzeFhob04zMi9ZTzIzWXMxbDhaaGtGM1QzamloS01vSURoTnJNR0tteVN3VEhJY1RqWVFXV3RwUlJERi9wcXNoSDNESi9uWjErL2g5UmFKczZxY1NiT3lZVWxqL1g0L25lRkVkc0ZTVlVIZTdkOUhjQndkbVlXakhTTWFRMnRwUTJ2dlJPL29SbXZyUU8vb1FtdHF4WkFWQ3Y5eTU3RXRzSTQwVXVzaldBdFB3Wkl6WjF3cHdzR0NxaTlkQ0tPbkNJODBLM3NqV0laaHNHeCtOVnYzSEtTOTI4ODltMmF3ZkZxSUVvODh5U3RNVHIvQXNvMTk0dEcxSXo4cVI5MWJRL3laRFFCODhMeWxvKzRyQlVQNGF1cUdGS3liZ1JieDAvSG5ieEorNXhtS3J2d0d0dExVUnZOa1FtenZKdHIvOEJYMGFIREUrNE92UDBUK0JaOGVHSnc3RGo1M1NoV1A3dWhnL2Y2ZUVlLy96RW1WZk9YTXpINUh3OWVNRVJsNmNXRVlCbW84am1BOXRvcUxOVm5HSDQ3MzIxU1lqYW5pU3RYVG15TTRBb0xkcENUUEtNMFVhbE16Vm9UKzdzS3lpbUwrNjZmWDhkdXYvWkczYlFJbmxnKzNVNm50anZQNklMOHNTM2twQmIvNzZSQ3ZyU3ptWUlUQ0tQdHJVV3ZxMEJxYTBPcWJVWnRhMER1VEJ4YTgzN2dSTEphc3dKb3NCS3NINytxL0Q5bldWN1RlUjErUmZ1amRhMUdEMjRaRTVOd0xmOWd2ekk0RWhXNkZtUVV4Nm4wdURqVzFjZFBWNi9qaFhmOGdxbGk0ODdWWi9PeWlmV2FPRVRPVi9pTDNjZFJnVFdBdDcxQU1nOUN2L3dpR3diSUZGY3lkV1pKMDE3Z3ZRTS8rV3N5eHFCNlo2TGFYaU8xNEZlK3BsNU4zd2ZYWVNzeWYvMldvQ3Y2bjc4SDN6SjlBVHg1cFVMdWFpTzU4SGZmeU01UHVrd3lMS1BERVoxYnh2YWRyK01QR0ppSzlSYzlWK1U2K2QvNHNiamk1S3VPR09LMXU4L0ExUjJOZ0dGaFNhS2c0bXRBa0dWOTQ0aTZpeEF3amlZTXhMWHFGaWQ1Y1k1eFExS1ltckJZUnNhQUFnQ1hMNTNEMTE2L2tIN2Y5RzQrdGtDVkZpWXREUlRQWWVDaklnYzRCbXh4TFJSbjV2L294WW1sbUV4U3lnQkdMbyt6YWg3SmpMK3ErR3RUOXRXanRJM2MwNTdqdEZPUzVLQ3owVUZpWXc1NTliYlIzQkJHTENuQ3VTN2puWndXV2lUaW1YZDRmZlJxcmk3Q3Y3bW9zdE1qQmNYY2tUaFFySzRMVSsxenNxMnZtcWd0UFo5MlphM2p5NWMxc2IvWHkwUFp5cmxyZU50bExISkhSakVZbnUxUW0vdFI2bEIxN0VVV0JTOWNtZjA4WXVvNnZwbzRqc1dKRDF3aSs5aURCMXgvR3ZlUTBjcy84Q0s1Rkp5UFlNclR3MWpYQ2J6K0Q3NG5mbzNRT0x3NGZpZURyRDZZbHNBQmNOcEU3UGpTZm4xNDhsNXF1S0M2YnlLeEMxNUN4SkptZzFidytiSnNjU2pRTVRPUTRtY2xBaTBzRW96SVc2OFNrbjRRcEtMQUVxMmplbFZZcU5aWDFEVmdGQVRFL0h5U1ZzNjg4bmVhRHJienl5R3Q0TElYWUJYamxZR0JJQWJ5MWVqcjV2L3BSVmx5bGlSR09JbS9aaHZ6dURwUWRlMUFQSEVwWXV3d2kxK09nc2lLZmFlVjVsQlI3S1N2eFVsTHN4ZUVZZU05R1l6SnZiRXBrbk54WFg5WnY3cG9WV0duaXJMNXhWTXNHcFdmanFJOVhnOXNKYnI0TXgvUnJjVXk3dk44aW9zK3VJVlp6KzVqSE9OS3NxZ2p5bjExbDdLOXJSdGNOUG5yeEdXemZkNGlHMWs3dTMxTEprckl3aTh1bWhoZ2N6RmcrV0lOUmV4M0VoU1BRL3FIMytBbi8vaThBbkhyY2JNcUt2Y24zVlZTTVVhSTlFNEtoRTkzNUt0R2RyeUk2M0xpWG5ZbHI0VWs0NTY3R05pMjFGbkJEbFpIcWR4SGQ5aEtodDU1QTg0L1AyaU82L1dYaUI5N0JPZS80ZEg0RElDRzBsazFMUFdXZkNuckxMb3pRME45RlZ6WGtTQlFCc09XazUyTTBWVkVsaVhCY0lhZGdZbjR2VXdWV3pKejB1Wm0rWEttaTFqZGdzMWdnMTR0Z3dNZStmaVh0RGUyc2Y3ZW12M3loRC92cVplVGQrbDBFei92YnpITmNHQWJLbmdQSWI3Mkx2UGs5bEoxN2h3Z3F0OHRPOVl4Q3FtY1dVemt0ajhxS2ZOeXVzUzhxTm0rcFIxRTB4RHp2RUhQWHJNQ2FBSFNwSGJuMWtWSDM2WXRLSmF1L1VvUGJKM2FSYWJDMFBJUlZOSkJraFliV0Rxb3J5L2p5SnkvbE8zZmVoeVFyM1BieWJINTM2VzY4anFuVm9qNVdGK0ZJT0k5QURWYjROMzlDRDRWeDJLMWNmTmJvdzQxRnE0WEVaZkRreE54MEtVcjRuV2NJdi9OTVlqMHVMN2JTR1ZpTHE3RG1seUU2M1NCYXdkRFJJbjcwU0FDNTVRQkt5OEhNaEtGaDBQSFg3MUwxM3c4aTVreWQraEwxdmNlR2JaTUNBUVFNTEhZN2xtT28wRGd4K2tjaEhGUEpMWjZBS3c4QlJMZDVYMFY2MUp6emo1bWlMMlVNQStWUUhiWTVjekR5M1loT0d6ZisvSHErY3NGM2grem11bUlkM2k5K0JvNnhXcjhKUWRlUnQrMUNlbWtqMHNzYjBidDkvWGZsdU8zTW4xZkduT3BpcW1jV1VUckNSYTVoNkdpU2lpcEphSXFHb2V0WTdUYWMrZDdlK3czZTNGd0w5RWF2WEFNMk1WbUJaU0tHR2tadWZUUmxvOUUrUVdXb1liVElRV3lGaWZFY1V5a3RPQmlYVFdkaGFaaWRiVjcySFdxbXVyS015dElpUG52VmhmeitIMC9RR2JIemk1ZG44K08xQnhDRnlVNitEVERxcUp4SldxYThhUXZ4RjE4RDRMelRGdUQxakc1NEtWZ3NGQzZZamIrMndmUUM5M1RRWXlHaytsMUk5YnNtL0xuVTdtYmE3djRpMDc3MEJ3VGI1SnVpYXZYdkRPc2UxRlVOeVo5b2xYY1VUQjBoYUFhYUpDTUE0YmlDdzI3K1Y0Ymd0SnFYaXRNTmpOaFJMTEFBZEIybHRoWjd2Z3ZCbVkvYjYrYmozL3d3OS8vcy94QkVBYyszdm9Ecmt2TW1aMjFIRWNydS9jU2ZYby8wMGtaMGY2KzlpQURWTXdwWk1LK2NoZlBMcUNqUDYyL2NNQXdkS1JSQkNrYVJRbEhrY09KL1ZaS0hmVThVenFucUYxaTc5N1hoODBjVDBhc3JMeG15WDFaZ3BjbElOZzJwWWlzOEJkZmNiL1QvTEZnOVExem5MVGx6eUYzektGcmtJSkZkWDg5NHJXYXlzaUxJempZdmV3ODFjc0ZwcTRuTEtxY2Z0NFNhK2hhZWZYMExXNXR6K2V2YlZWeS9KclVhbXlOQnY5SG9pQkdzU1hCc2o4WUkzWjZ3OE1qenVqajNsQVVwUGM2Wm4wZlp5aVhFZlFIaVBqOVNNRHdseE5hUklIN2dIVnJ1L0RUbE4vNE9TMjdSMkErWUlJeW9EM1hqZmNPMng3cDlnSUhWNmNSK2pLVnNWQ2xoT3hHSks0Z20yUllNeHRUb1ZVdzE3U050NXJyR1BkTlEwOUFPMUNBV3JBQ0xqVE11UFFXbjI4RzlQL2didHVkZmdJdk96bzdCR1FHOTIwZjh1WmVKUC9VaWFsM2lPMGdRQk9iT0xtSDVra3FXTHE3QWs1T29qelFNbmJnL1RMVExUOHdYSXU0UHB6eHIwMVU0VUhJd3BQYktOZlFDTUN1d0pvRSszNnV4bU1qeE4rbXlxaUxFQSsvQ3ZrTUpSK2RRVENFUWtmbkVwZWZTME5iSjdwb0dIdGxaeHV5aUtHZlBtUnIrV0FNK1dHT25iZnBINVV5Z2szdm85ditIMXBhbzMvbmdlVXV4MjFJL1VRcWlpS3VvQUZkUm90dElrMlNVYUF3MUZrLzhVMlEwU1VHWFpBeGphcmxaWjRwVXU0M21uMytVc3MvZWdXTldhazBpWm1MRVE4alAzWTRSRzJxMnFjYmlLT0V3aUNMdVk3RFlXSk1TM1lQQjZBUkZzTnptZFZ3YUpxVUhFY3kxamlBRjA5QmhEd25Hc1BZMEloVE5CTkhDbXJYSEVRbEUrTWZ0RDFKMDIrK3dmT2ZMNXEzdktFZlp2Wi9Zdi82RDlOSkdqRjZSVkY2V3k1clYxYXhjWHRVdnFuUlZKZGpjU2JpOWgyaDNBRjFObzN4QkVIQVZKS0pYN1IxQmFtbzdFWExjdUM2N2FOaXVXWUUxQ2NpdGp5STEvcjIvb0QyeTYrdm9VbnUvYlVQbzNXdW5aSW9RWUY1eEJLZFZwOXNmcENjUXdpcmFPTkFXd08yMDh0VlBYc2IzZm5NL2JWMCtmdjFhTmNWdW1XV0h6VEdjRE1Zemk3Q3ZkZDgyUVorTStOUHJpVC8vQ2dEVlZZV3NXVkdkMGZFc2p0NTZueEhTVXJxcW9rb3l1aVNqcVVwQ2VNa0ttdEw3djZ5Z2ExT3JYbTRzMU80V21tKzdodndMUGszQnVoc3o3MnhNRWIyakJ1WGx1ekRDWFVPMkc3cE9wS01MQXdGUFdRbmlSTDF4SmhFdExpRXBHcXFtcHpVZmN5ekVIQk1qV0JGeklycWkyMmFxVjR1aHBuSEJwaHNZNFFoWUdoRUtab0FnY3ZaVlo5QjBzSVZYSHRsQXdZeEtiQisveXJRMUhuVm9HdElyYnhMOTUzOVFkdTBEd0c2M3NucjFMRTVZUFpQcGxZbUxVRjFMaUtwUVN4ZlI3Z0JHQ202NWhwRjhycmt6MTQxb1NieG4zM2lydC9icUl4OGFzZG5nMkRzYkhBVVlhdmlvcTcvcXd5SWFMQ3dOODE1TExuc1BOYkYwL2h3TXcrQkFzNCtsTTR2NTltYy96UGQvZXoraFNJeWZySi9MN2V2Mk1yTWdOdmFCSjVEUm5OeVBaSUpRcldza2RNY2ZnTVNIOTZxTFYyWHN4VFFhb3RXSzNXcUZVVHJhREYxSGx4VlVXVTZJTGtsR2xXVTBTVWFUWmJUNEZJeUU2UnIrWi81RStLMG5LZmpBelhoUC91Q0V0dGxTaEhJQUFDQUFTVVJCVkgxcWV6ZWdiUG83Nk1QRmFLU2pDMFBWOEpTWFlITzdSbmowMFkydUpRWlhoM283ODB5UFlJbUN1UjJFWVpNNkNOTWN1SndNUTBtdjBVT1BxbGhjTVl4QUMwSitKU0J3OWRldW9xMnVuZjEzLzUzOHFncHNaNTVxNmxxblBKcEcvTG1YaWR6M0w3VG1oRFZRWHE2TDAwNmF3NG5IVitOMEp2NTIwWjRnd2FaMndtMitNVk4vdW1IUUZsUUlTUnE1RGdzZXB3VnZraTVTVjBFdUFMR1l3cnZ2TlNEbXVKUE9mc3dLckVtaXp3ZXJyMXRRN084ZW5IcHB3Y05aVmg3aXZaWmM5aDFxWXNYQ3VRQW9xczdlcGg0V3p5amltOWRmeVUvdS9qOGlNbnovdVhuY3RtNGY1ZDdKR1I5aUdDQ3A0b2dlV0NNeFVhTnlqSENFd0xmL0J5TWVCK0RFbGRYTXJNeHMwTEFaQ0tLSXhlbkE0a3dlQ2RKVnJWZHNTU2h4Q1MwdW9Va1NhbHhDa3lmUHdWL3RhYVh6Yi8rTi81ay9rbnZXMVhoUHZRelJhWjRkZ3hGb1E5bDBQM3J6amhIdmozWDcwT0lTbnNveXJNN0pMNzZmQ1ByU2c1RjRRbHk2WGVZS0R6SEh4UFNncEdHWU5PUlpORnRncFRrYnNmOXg4UkJHcUFQQlc0YlZadUhHbjEvUFR6OTVPNEVmM29IMzdqS3N2ZWZoWXgxNTR6dUVmdjhYdFBvbUFLYVY1M0hXYWZOWXZxUVNpMFZFVnpYODlhMzRHOXFSdzZOZjJDdWFRWU5Qb3E0bmpsVVVtRnZpWWtIcDJCZEpyc0pFZXZEdGQrdVFGWTJjYTBlT1hrRldZRTBhbGw1N2hzUG5ENDQwNEhtcTBaZjIyMytvZVlocFkweFMyZC9rWStITUNyN3g2U3Y0K2IwUDBoMjE4NzFuNS9QemkvZFJuSFBrdjR6SE00Y1FCZ1NXcWFOeWRJUEFqKzVBYTB3TVZIWTZiSHpvdkdYbUhYK0NFYTBXUktzTG05dkY0VExDMERTVWVCdzFHa2VOSityQWxHaXMvNHY1U0tCMDFOUDk3NS9UODUvZmtMUHNMTnlyenNXOTdFeEVSenFlVFFaNjJ6NjBQZXZSNnQ5TzZqUXZCVU5vaW9KM2VnWGlNVnhzM0RkQVBCUkwvRDNOam1DWktXVDBrRWtOSDRLNXdnL1NOejgxNUVHUGkvUmdXT3dJN2dJOCtSNXV2dU8vdVBYNk80bC80eGJjZi83Tk1XMDJxalcxRXZyVkg1RTNiUUdndE1UTGhlY3Vac21pQ2dRQmxKaEVUMTBiZ2NiMk1hTlZMUUdadmUxUm1nTXljNHFkckpuaHhUdU9lanRYZmk2NmJ2REdwbHBFdHl0cDlBcmVad0xyOEhFenlVZzJCRnJ1ZUQ3dHpzSERpZGZkUFdRWTlIaTdCYU43ZjJqS090SmhRVWtFdThXZ3ZxVUQvYkQwVVNnbXM2K3hoNlh6cS9ueXRSL2l6cjg5Um12SXdiZWZYbUNxeUlxRUZDSWhtV2hJSmhKU2lJWVVaRWxEVTNYaU1SV2p0MnNuTEZzcDNoL0U1WEp5NlBFUVZwY0hpOU9GMWVuR25sdUlOYmNRUTdZaTJJZEtCek5MVGNKLy9Ednl4bmY2Zjc3NDdNVmoyakljTFFnV0MvYWNIT3c1UTYvZ0RFMURqc1pRSTFHVVNBdzVFa1dOeFpuSXBLd2h4ZnE5dWdUUmduMzZRcHh6Vm1HdldvQzFaRHEya3VtSXpod0VoeHRCdEtESFFtaVJBSnF2RGJseEQxYXBFMHZnRUViVVArcno2S3FHeGVIQWtadmNHUFpZWWFDRE1CSEJHcys0cVZRUXpLeS9NbW1VaitpMmpUbzdjTHdZcWo3K0xzSStEby9JQmR2QVlnT0hoNnE1Rlh6Mng1L2dybS9laS8wYlA4RDJoenNSanJWSXFtRVFmZkJKSXZmOERVT1N5Y3QxY3RINVMxaTFmRHFDSUNDSG8vVFVOaE5xN2U0LzU0K0VvaG5zNzR5eHF6VkNXTkpaWE83aWloWEZ1TWM1YTlLZTQ4TGlzTEZ6VHd1K1FKU2NUMzFrVktQWDk1WEF5bUlPVnRGZ1RsR0VQUjBlR2xzN2dZRTNhVnlTa1dVRjNUQTRidWw4dnZEeEQzRFgvejNaTDdKK2ZNRitLbkpUU3hlR0F6S3REU0ZhRzBKME5FZndkY2JvNlVqOFUrVFVyd2lMU0hnVzdkNmVYQnlMZGp2MmdoSzhWaStDMWNOQmp4T3BKUWRMVlFXV3FtbHBUNmlQUC9jeTBiOC8xUC96aklvQ3pqcHhYbHJIT3BvUUxCWWNYZzhPNzBES3p0QjE1RWdVSlJ4QkNVZVJJNUVKaTNRWnVwYVdUMWRPZVNtNTB5c1FSckVqU0VUMGp0Mm8xV0MwZU9MdjAxZUQ1WFNZK0pWaGNxVElNQ21DSlhpblJ2UUtHREhsYWZpYkVZcXF3ZXBnNVpuTHVmUnpsL0RvM1U5UWRNdXRXRzc5NFJFY3BEcXg2TjArZ3JmOEVubnJEaXdXa1hQT1hzUlpwODNEWnJPZ1JPTjBIMmdrMk5vMTZqVmJYTlhaMlJKaFQzc01TZFdaVSt6azRzVmVQR202OVBlbEIxL2ZXSk9JWG4zMDBsSDN6d3FzTEdreHZ5UWhzQTQxdGxGVVdvbmUyNW1oNnpyM1Avd0VwNjFaamFiTjUvaGxDL2lxdzhhZDl6MUthOGpCTjU1Y3hJOHYyTStjb21qU1krOStwNE4vM3JXRGNQRElwWmwwV1NiZTNvd1Z5QWQyMVFQL0dwZzFaeWt0eGpLOUl2R3ZWM1QxL1JPU2RDY3EyL2NRdXZXMy9UK0xvc0RIUG5qOGhIUmlIUTBJb2poTWRHbVNqQlFNSVFmRHhBUEJTZmYxaXJSMUlBVkNGTXliaGMxMWpFVUR4c25nOFV6Ui9naVdlVjhaZ3NzOGcxRTlvaVFpUlNZZzVwcnJ3bTlFTTNoUGovVHlHRHFHcnhHaGFCYUlGaTYrN255YUQ3YXcrZmt0Rk4velo4U2JQcFArODAwUmxPMjdDWHozNStnK1B6TXFDL2pJbGNkVFV1UkJpVXUwN1RsRXFLVnIxRzVBV2RYWjJScGxaMnNFV1RNb3pyRng0YUlDU2pKTVNic0tjMmx0QzFCYjMwM09EZGVNT2FZb0s3Q3lwTVc4NG9SQXFtbG9vYlM4Q3IzWDU4WHRjbUt4V25qMjVkZlpzbU0zcDUyd2tyVW5MK09iMTEvSkhYOTlCSDhjdnZIVVFyNTVWaTBuelJnNUZWTi93SDlFeFZVcWFCMWRhQjFkc09Xd0VVYUNnS1c4SkNHMnBsZjJpeTdSNnlId25Wc3hsSUhPczNOT21VL1Z0UHdqdlBLcGpjVmh4MTFTaExza1lSNHFSeUpJdmlDeGJoOXFiMFBBa1VhTnhlamFzWmY4T1RQNy9jYmVqL1NsQndFaVVsOEV5N3pvanVneFQ4am9acDB2TElMcDlWZDZKSDByRk1HU0pKS3FLWWxJVm1FaVZYYmQ5ejlPZTBNSDlmOTRuT0taMHhIWFhaRDJjMDQyc1NlZVR4Z3hheHBubmphUGk4NWJBb1pHMS80R2ZIV3RHRnB5SWEwYnNMYzl5cGJHTUpLcVk3Y0luRG83bDRWbDdsVG1iWStKcThETHM4L3V3dXJKd2YzaDVMVlhmV1FGVnBhMFdGQVNBZUJnWXl1bm55eWlESHJUVjVXWEVRaUc2T3p1NGRGbk43RGhqYzBjdDNRQlYxNXdPZzgrK3hxU3F2S1RGK2R5NWZJMlBubGM4N0N4T2lVVlE2OEtCRUhBNmJManpuSGlkRGx3dWh4WXJSWmNia2ZpUHZmb1hraDJ1dzJMVlNRV2xkQlVEVmxTa0NVRlZkV0l4eVEwVFNjZWs0aUVZOFJqNHp4Ukd3WmFhd2RhYXdlOG5id0ROTmZqWlBuQ1NqUk54NUxzcEptbHY1N0xXelVOSlJvajF1MGoxdFZ6eExzVkRVUEhWM01JT1J3aGIwWmxjbE9jWTVoRXpWeUN2Z2lXcVFMTHhGU2NXUUpMOUpvL1F6SWo2NGpSSW54eUJDUFlqcEJianQxaDQrWTdidUNubjdnZDMyMTNVMUJSZ2JqcTZHbWs2U1A2d01PRTcvNGJnaUJ3MVdXck9XN1ZERUxOblhUdGEweU1yQm1GbG9ETUc0ZUNCSHBISmMwc2RIRHFyTHh4MTFrbHcrcDBJT3NDVzdjMzRmcjhwNGU1dG8vNEdGT2VPY3Y3am1tNWNYTHNHaTBkUGFpcXd1Qlk5c3lxQ25idHI4RnUwWkUxa1VBb3pJWTN0d3c3eGtQYnk5bmJrY1BYenpoRWlXZmd3MU5XTmJUVi9pZS8rVHlsMDQ2TXBZR3VHMFRDTVNMaEdOSGUvd1ArTUFGZkdIOVBFSDlQbUlBL1JIZG5nRkFna3ZKeGcrRTRkOTY3QVl0RnBMSXNqeG1WaGN5ZVhzVHNHY1VVRnh4Ym8xWE13dVpPZEM3bVRxOUFDb1NJZG5ZUjcvWmpIRUgzc2toYkIwbzRTdUc4V1lnbUYzaFBkZFQ0b0FoV1hNVnVzNWlxTTgyS0ZCbXFicHFEdTVobmNucFExakpMWFk1VmJCLzFZZGljQ0s1OENrcnkrZnp0bitXMi8vb05rZS8rRHpuMy9ocXhzano5NXo3Q3hCNStxbDljZmZTSzQxaStxSnptdDNZVDdRbU8vamhGWjFOZGtJTmRpUXNDaDFYa2xGbTV6Q2syTjhYdkt2Q3djWE10b3RlRDY5SUxVM3BNVm1CbFNRdUJSQjNXMXVaYzJqcTZLQzR1NmIrdnVxb0NRUkJ3MjNWK2ZlRWVudHBUeWh2MStmaGp3MCtvTzl1ODNQam9FbTQ0c1pHMTh4TXUyWWRIc0RyYWVvNll3QkpGQVcrdUcyL3UyQzMrc3FUUTJlNmpxOE5IUjV1UGxvWU82bXRiYVc3b1NGb2ZvR2s2RFMwK0dscDh2UDUyd3BMRDYzRXlwMWRzelpsWnpQUnBCZS9iT3Exa09QSzhPUEs4NkROVkloMWRSRHU3anBnVmhCd08wN0Z6TDRYelptSDNtdWV6TlpVeGRCMU5Wdm92bXlLU2FuNzlsVW1kZW5yQXBQZUJZSDc5VmFiV0VVSXFyMUd3RGF3T3NMbVl2YlNhNjc3M01lNjk1WDdzWC9zZTludC9NMmFkMEZSQWVuVVRvVi85RVlCMWE1ZXdkSDRwRFJ0M29rUkhMeE9vNll6eFpsMElxVmZFVnViWk9XTnVIamwyODV0UXJMa2VYbnRtSzg0dmZEYmxwcWVzd01xU052T0xFd0tyOVRDQjVYUTZtRDZ0bklhV1ZpUk41S1pUNnJueGxIcHF1bkxZMTVsRFU4Q0pMMnBEMVFWc0ZwMlNISVVDMThDSnlPbXlrbHZnSU9oTFhFRjN0UFVjOGQ4dEZld09HNVV6U3FtY1VUcnN2cDZ1QUhVSFcyajQvK3k5ZVpoa2RYM3YvenBMN2RWVjFkWDdkUGRzM2RQVHM4TUFBd3lyQWdNcWF1Q0pTcTdCbU1WRXJ2bGRiMjRnaTk0a0dCTjNFNU5jTDk1Y2M1UElZeEkxZ2pFZ2lxS0lNTUFBQXozNzB2dSsxYjdYV2I2L1AwNVhUYS9UUzFYUEF2MTZubm02cCtzczMzT3E2cHozK1h3KzMvZW5lNFMrN2hINnVrWklKdVl2N0U4a3M3eHhjb2czVGxyOUhaME9HNjBicXRteXNZWXRtMnBwYmdnVU83Ni8xWkZ0S2hXTjlWU3NxeU1UaVpJY0hrZExMVDJTdUZKTVRTTjA0cXhWbDFWOThRMWlWeHNqbDBlYUZpbk01SFNDWll5MGxqVTlHQzJQaWJIc3RpR3A1VTNmbDV5NlhNcDRoRUJFQnBHcU40R3NjdDA3cm1Hd2M1Z2ZQdm9USEovOEhQNi9ldmlTYmd5dGQvY1IvOVNYUVFpdXUyWVQxMS9aek1DTHgyZEVVR2VUMFV4KzBSV2pmK29lSVVsd2RYTUZleHBYVDB3ZUg0aEJ3SS9yN3R1WHZNNmF3RnBqeGJSTjFXRU5qWTZ6YS91Mm1hOXQza0QvOEFpLzZLbWtyVHFGaE5YSGNFdjEwbTZHdGVzOGw3ekFPaC9CYWovQmFqOTdyejEzWGdxaWE2Qm5sUDZlVWZxNmhvblBrMmJNNWpTT25SbmgySmtSQU53dU8xczIxckM5dFo3MmxqcXExbEtLVnNQVllDV3VZQ1g1WkpMRTRDaTUyUGxUQ2FVaUVFUzZldEV5V1h6TjYxWjFYeGViNlRlM2RFN0hGQUpuR1NOWVpTc2tOd1Jtb2t6MVYyVk9EeUpLRjFqU1V1dUhUQjBSSFVZS05nTVM5MzdzM1F4M2ozRGtoUTRTZi9YM1ZEejBRRW5qV0MxRUprdjhFNTlGWkhOc2Fhbmw3dHUzTWZEU01mVHN3dWR0SUpManVhNFltU2tMQzQ5ZDRXMXRmdXBYb1g2dWdLU3EvT0tWZmh4LzlQRmxpZFUxZ2JYR2ltbWJFa3Y5dzJOelhtdmR0SUdmSG55WjU3cXIrSTJyQjVkZHUxRy92b0xPNDVhd21oaU5sRHpXUzRHRlJGZlhtVUc2VHcvU2ZXYVEvcDRSakZtelpOS1pQQjBuaCtpWWluRFZCTDFzYTYxblcyc2RXemZYWWJkZHVrK25Gd0s3MTB0VmV5djVaSXJrOEJqWnlQbU5Ra3NsT1R5S25zMVMyYkx4dkg1Wmx6UFRaM0NtYzFaOWs4dFp2cWhUdVhyOUdkRmMyYnhyWlg5NUc0ZWJTVzNsQnFOVFNNdEpkZVZUaU1RRVVrVXRzaXp6a1U5L21MLzgwQmNZL2Q1VHFCdWJjTDN2M1NXTlpUVklmUGxyNkFQREJQd3VQdkRlUFF5L2NtSkJjV1VLZUtVL3dkSGhjdytsVFFFSHQyN3g0eXh6NUhFMlBRa0Q2dXR3M0hMOXN0WmJFMWhyckppZ1c2UE9tMk1zQ2RGNGdzQTBaMnUzeTBuTGh2V2M3ZW5qMVVFLzF6VEhsclh0ZFJ2UGJXdDBjQnhqTWdTR2dUQ01jejlORThRaUxzbXliTVdQWlJra2tHUUZGQmtVWmVwM3hab0tyU2hJcWdxcWF2MjhRQlJFMXpYN2R3Q2dhVHI5M1NOMG5SNms2L1FBWFdjR2lVZG5OditlQ0NlWk9OVEpjNGM2c2FrS2JadHEyZEhXd0s2dERWVDZWOUllNXMyQjNlc2gyTFlaTFpVbU1UUktKaHhkdGNsLzJYQ1V5ZXdacXJhMnZDbUwzNDFaRVN3b253ZVc1RlRMbG9vclYzcFFjaXBJeTJpWHNoVE1lT2xqazJ6TFBFK3BFTmpkNFBEaWNqbjQzVS8rS3A5NTZHc2svK2JyS00zcnNGOTNWY2xqS2hmWm4veUM3RlBXeEo5ZmZmOCtvaWQ3eUtmbXI3bEs1UTJlT1JObGZGcE4yNVZOWHE1cVh2MmFTRk1JRG5iRmNIemg0V1d2cXpvYTd5di9pRXBGVXBEa040ZkpuNlE0UUhvVDZGaEpScExuTnNMYzJYS1VzWTVSUnNZbVpnZ3NnTjNiMmpqYjA4ZFQvZGR6eTl1dlhOYnVXdlV6OElobG1EYzVFU2MvTWxvV2U0T2xQay9PRUZzMkZjbG10d3hGN1RZa20yM1ZSSmpOcHRLeXRabVdyYzJBOWJRVW1valNkWHFRTXlmNk9ITzhsOUhoVUhGNVRUYzRmbmFFNDJkSCtQYVQwRmdYWUVkYlBUdTNybU5qWS9BdFdTeHY4N2d0b1pYT0VPOGZXclhVb1paT00zSGlERlh0cmFqbmFaWjl1V0hrTmNTMHB1Y0Zpd1o3bVFSV3VlcXZoRzZXTVQxWS92ZlBqSlJCWUsyZ1dGdkVocEdDR3dDVjJuVlYvTTRmM01kWC91eWZpUC9KRndqOC9SZFJONjB2ZVZ5bFlveE5rUDdpL3diZzNYZnR3alk1U1dMV2cyU0JrVmllWjg1R3lVNmxCRlZaNHBaV1A1dXFMb3hHT0QyZVJXN2ZnbTMzdHNVWG5vVnFwSHRXWVVpcmdRQmpZZmZ2eXdsaDVFQ1VaMXJ4eFVYUTdwTjVoaUJEWStOczI3SjV4cXZyR3hzSUJ2eThmSHFTVTY5L2c0MVZTNTlSRTdRYnlJcUVhUWlFRUl4TkpsaFg1MS8rQ0lWQUdDYVNMQzByblNOMEhYUjlZVUVtU1VoMkc1TE5Eblk3a3NPQjVMQWoyUjFJWlc2alVsVVRvS29td0w0YmR3SVFqeVk1ZGF5WFUwZDdPSDI4bDRteGN5blVvYkVvUTJOUm52N0ZLVHh1Qnp1MjFMT3pyWUZ0cmZWbFRmRmNEdGpjTHFyYVc4bkZFaVFHaHNpbnluLzlNSEk1Sm8rZkp0amVpdDN6NW9nZXpqWjRUV2F0NzIyNVV0SGxxcjh5dytWTER5cUJNcWNIRS9sNTI5d3NDMFZhMlV4TDAwQ0UrOERWQU1DMlBTMjgvemZmeWJlKy9pVHhCLytjd1AvN0syUy9yN1N4bFlJUTVENzd2OUNUS2JhMTFkTldhU1BjTmJmTUJPREVhSm9YZStNVUptVjdIUW9IdGxZU0xHTVB5L05obUlMWFF6cXV6MzVzUmV1cmV1VGxNZzlwamJjUzI2cmNRSkNCb1pFNXIwbVN4RFY3ZHZLam43L0F2N3ppNEkvZU5yVGs3Y3BBdy9vS2hucXM2TU5ZYUhrQ1M4L2xtZXdkSkJXS0ZDMFRaRlhGRS9SVDJWaVAzVDAzR3Jjc2hFRGs4b2o1ckFJVUJXbTY2SEk0a0J4T0pGdDVMZ3ErZ0pkOU4rNHNDcTVJS003cDQxWjBhN3JnU3FWekhPcm80MUJISDdJc3NXVmpMYnZiMTdHN2ZkMGxuMHFVYTFzeHh6dkxzaTNMNHFHZFRDaENmSEI0UnZxckhKaTZUdWpFV1lKdG0zSDRMLzhHME5NTlJ1RmNpckJjSnFQbDZ2Vm5oTXJqOUMvWlpTUjNlVy9ZWnJqMHo1anNLbUZNcG9FeDBJVmtxMFh5ZXJqdDNkY3oyRFBDQzg4Y0p2WkhueUh3dDM5UnR1dlJjdEVlZjRya0s2L2pxM0R5anVzM0VEN1ROMmNaSWVEbHZqakhSczQ5Rk5WVjJMbDlhd0RYY3RPbUpYQjBOSVB0dHB0UW1ocFd0TDd5eHg5cGY3aThRMXJqclVUQXFmSGtxVnFpS1kwZGJhMDRadm1EVkFVRG5EalR4ZGx4bFd1Ym93VGRTNDlpOVorTkZRWFd1bG8vV3piV0xMS0dSV0lpeFBDSlRrYlNNb2VVRms1STYwaElEcXFOR0hvcVRXek1haERxV3EyYm9SQlc5Q3ViUmFSU21MRTRaamlNRVk1Z3BsS1F5NEdoVzFFd1JaMi8zOWd5Y0xrZE5HMm9ZODgxVzdudG5kZHkzUzI3YVdpc1JwWWxvdUVFaG00Z0JJUWlLVTZjSGVWbkw1N2x5S2xoNHNrc0xxY2RYOFdsbFk1WGQ3OGJLYmdlYzNoNWpab1h3K1oyNGEyclFWWlU4b2tVbktlWDJiSVJnc3hrQk5YdHV1eDdHR1pDRWF1K2NZcVRBMUg2SjVLMHQ5VFJ0bW11SmNseWtCd0thbDNwNGw2a2RZeXg4a1FrbGFDenZQNVhwa0RyVDVRY1haTjlqcEptTnByaExQclFKTExMamVSd3NQT3FOazRkNldieWVDZm0yQVNPbTY4cmJZQXJ3QmdZSnZhSnp5QU1nL2U5YXhmbXdQQ2M3NkZ1Q3A0NUUrWHN4RGtCdmFuS3lSMWJBOWhYdVpoOU9obk41QmRqT3E3UC8rbUMvV1lYWTAxZ3JWRVNrZ1M5RVJjOVlUZVZBVC8xTmRVelhwY2xDYmZUU1dkdlB3TlJGN2UzVFM1WlQ4UWpPVTY4TmdHQXY4TEZGZHViRmwwbjFEZEVkSFNDWjN6WDhiLzFhemt1cmNObzNNNmdlejFQYVp0b05DTlVpd1NaZUFKRDEvRlVMai90dUdLRUFFMURaREtZaVFSbUpJSVJDbUVtRXBZWTB3MHJsVmxpZlpmSDYySmp5enIyM2JpVEErKzVucTA3TitJTGVNbG1ja1gzK1hneXk5bmVDWjUvdFpzWFgrOWxNcHhDVVdRcS9lNkxXcmVsdE4rRzdkb1BZblMrZ0FqMWxuOEhrb1M5d29PbnRoclRNTWduMDJVdGhNK0dvNmhPQjdaU0k2UVhDVlBUeUVWbVRranA2QWt6R2ttemZVc0RMUnVxRjFoemFTZ0JSMW5xbll6UmRObmMyOVZHNzRwcW5SYkNDT2ZLVW55dkJKMGxwVk9OaVF3aXEyTkdvMGhPQjRyYnplNXJ0dkxxODBkSkhEbUY1SFNzcUs1b3hRaEIvaE9mSXpzMHdqVlhybWVUbE1YUVpyNkg2YnpKRDA1RUdKMW1iN0d6d2MxTkxYN2tDK3dGK09KUWh0eUhQNGl5YStYbmFFMWdyVkV5bWlIelFxL2xQdDdlc21uTzZ6VlZsWFQzRGRJellWRHR5ZE5hdGJRblQxbVJlUEhwQWNDYXlYSHp2dGJ6TGg4ZUdNYnVkUEo5eHo2K1BkbUF5K1hpbCsrK2s2dXV2SUl0MjNheXZtVUwzKzdScWRDVE5Jb0l1V1FLMVduSGNiRnJad3JScm1SeVNuU0ZNVk5weU9lc0daS0tzbUk3QUZtV3FhNnRaUHZ1emR4NjU5WGNkTWRlMWpYVm90b1VZcEVFbXFhVHpXbjBEWVU1MU5ISHN5OTFNalFXUlFLQ2Z2Y0Y3WnVvdE96SGR0TkhBREJPL0FpUm1GaTFmVW1LakxQU2p5c1lRRTlueTlyck1CdUpYYllpUzB1bDBkS1pHWDk3OWV3RW9VU08zZTJOYkd3cXpXUlZxWFdWbHZxQ3NrV0lBQ1JWUmkzelREUzlQd0dsdE1lWlFxbHpseVQ4aktGVWNZYTFHWTBoMmV3NGczN2FkbTdpeForOVFlN2wxMUczdHFDdWJ5eDVyRXZCZlB3cElvLy9nTXFBbXp2YUs5R1RNKzhEOGF6QkQwNkVpV2JPaWE1ck4xWndWWE5GV1JvMVozV1RXRVlubzVtb3NvUnluZ2ZKVUVxalEvZmcvT09QbDlTSGRFMWdyVkV5Vlc2Tjd4NnJKNUZNYzlXdUhjanppSUc2NmlxT25UN0xrUkVmTjIwT1UrRXdGdDJ1MTIvbjJlLzNZQmlDVkNiUEhUZHNYZkNHYjJnYXJvb0tUb3BhdnRKYmo2b3F2UC9kZDFGWFhWVmN4dVYwMHJDdWlXK2V6ZEl1VDFKcEp0QXlXZndOcGFVOXlrNGgwcFhPWU1iam1LRVFaalNHeUdTczRudWtGZGRQT0YwTzFtK3E1K3JydDNQZ1Bmdlp0bXNUTHJlVFdDUkpKcDFETjB4R3h1TWNQajdJVDE4OHkrQklCQ0dndXRLenFtSkxYcjhYKzl0K3QzZ3gwMTkvSFBLcjc5Q3UyR3k0YTZ0UVhVN3lpZFNNMlhPbGtJM0VVQngyYkJkYnZDK1RiRFNCT1V0c3ZuaHFqSGhhNDVwZDYybXNENVMwZmJYSmE5bWlsSUFSeW1KR3l5T0lsY3J5Uk5RS21FbXRiS2xMVzVQMy9NMmV6NFBJR1hQR1ljYmpTSXBDb0ttZTJuVlZ2UGJDTWJUbkQySGZmelZ5c0xJY1ExNFFZMlNNMkNjK2k2bnJ2T2VHamRpU2lSbXZSOUk2VDUySWtNeFo5d1ZaZ2x1M0JHaGZRVHBaTndWakNZMmVVSmFUWXhsT2oyV1lUT25vaHNEdlVnbTQxUE9LS3lIZ2g3MFpsTC80SkhKTjFZTExMWVUxZ2JWR3lUaFVrK05qWG9aak5xcURsVlFINTE2RXZSNDNwbW5RT3pUQnFYRXZ0N1dHV093Nkswa1NaNCtHQ0k5YlQ5UTd0elpRdVVDUFFGbFIwQ1dGVDU1cElxRXIzSFR0MWJSdW5Ec2QyZXR4TXpRNnpzdHBIemZySnhHNlJuRDlaZURLYlpxSVhBNlJUR0ZHb3hpaE1DS2RRZWlHNWUrbDJwWmR5eVZKRWxVMUFYWmUyY3J0ZDEvSDdxdmJxUEM1Q1UvRXlLUnptS1pnZERMQkd5Y0dlZmJsVGliQ1NWeE9PMEcvcDd4TmZ4dTJZNy9qZjFoZVpRRENSSC9sMzhwYkk3VUlOcmNMVDIwMXdoUm95ZkxjSUM5SGtaVUpoV2ZVWHdFOGQyeUVUTjdnK3IyYnFLMWFlZDJpWkpOUkcwcnZRcUQzSlVBdnoyZERYZWRCY3BRdlBhZ1BweERaeFI4ZUYwTnlLaWkxSy8vY2lJUTJiNXJTVEZqQ3BtbDdDNFpoY3FhakUrM0YxM0RjY1F2U2F0VU9Da0h1RTU4ak96REVubTMxYkZabWl1T0pwTVpUSnlKRlozWlZsbmo3MXNvbDJ6QUlBYVB4UEtmRzA3elNuK1RGM2pnVFNZMEtoOEtXR2hlN0d6MDBCUndFUFRZY1M2amhPamFXWnZMS2E3RGQ4ODdsSCtzczFnVFdHbVhCcGdoZTZLMGtsOCt6dmExbDNtVWE2MnZwSFJ5aWYxSm5OT2xrLzhiSW9wcGdZamhGOTBsclZ0eUdkWldzYjF3NFJmSE40V3FlajFSUVV4WGt3TTAzek51L3p6UUZmYU1SQnNiRDFKQ2tXVVNvYkc2NC9IcjlDWUhJNTYwaSttZ1VJendsdURTcmVCNVZYZll4QlNvcmFOKzFpZHZlZFIzYmRtNUVVUlFtUnNQb3VvRmhtQXlPUm5uNWpWNE92ZEZIWHRPcHEvYVZiRDRwMTdaaXYrc1BRRGxYYXlKU0lZeGpUNVcwM1pVZ3lUTE9nQTluTUlDV3ltQnFwVFhxQmNoRzR0amNMdFRMb1BEZDFIUnk4N2pnLy9qMVFReFRjUE8xclNYTlBwWDk5cEx0RU14RUhtTThzL2lDUzBHUnNEVlhsRHpKcElESW0rZ0RpY1VYWEFLS3o0RmN3cmt5SmpNTDFxaUpaQW9NazIwMzdHYWdlNFNSTS8xb1IwL2l2T3RXcEZYb1daajkzZzlKZlBkSnZCNEh0MjN5SWs5N2NCcFBhangxSWt6ZXNQNW1VeVFPdEZmU3ZNaXhDeXgvck1PRFNYN1JIZWZrV0pwb3htQjl3TUdObS8xYzFleGxuZCt4N0tiUGlaekI4NU1DNTVjL1ZSYXZ3eldCdFVaWldPZkw4dVNwV2lZaWFkcGJOdUZ5enIyaHlMTE1wdVpHVG5WMmMzYmNSbFpUMk50NGZoTklYVE01L0l0aEFQdytGN3Uyemg5dDZzczQrRnhYSXlidzNqdmZobStCRHZKRGswa21ZeWtteGtld1NTWjd6WDZDemVzdVA0RTFtMW1DeXd4UDFYRVpPcEtzTE90aUlVbVc5OWFlcTl1NDQrN3JhV2lxSVJGTkVBNVo3MVVtcTNHbVo1eG5YenJMUkNpSnY4SkZ3TGY4ZWlNcDJJempIWjhBZGVablJZUjZNVHFmWC9iMnlvVmlzK0dwclVheDI4Z2xraVZIMGpMaEtQWUt6eVZ2UnFxbDAyaXp2TUowUS9CTWgyV3ZjdHYrTnJ5ZWxSK0RVdU5HTHRFT1FSOUtJbktsUjRnQTVJQURwYko4NzRreG5DcGI0YjFTN1NycFhPbURTVEFXL3R5S2RCbzBqU3R1MzhlUlYwNFRQZHVIT1RLKzdGWXdpMkdHSWlUKzZDOHhOWTNiZHRVU1VNNUZSd3ZpU3BzbXJ0NnhQVWo5ZVdaMHhyTUd4MGJTUE5jVjQvaG9tbkJhcDhxanNtK0RqNXRhZkt3UE9uRXR0WC9qTElTQUgvV2trZi9rUVpUMWkwK29XZ3ByQW11TnNxRElrTXlybkJqekVrOW1hRy9kT085eURydWRocnBhVG5mMWNIelVUU0tuc3JjeHZtREtxY0x2NEtmZnM4eHdUY1BrcG12bVJzZDBJZkVuWjVxWXlLdGNzYU9kM2R2YTV0MVdOcS9UT1JJamw4MHdQamFNVDlHNXp1aDhjd2lzMlJUcXVGSXB6RWdFTXhKRjVLYUs1bFYxeVVYenNpTFR1TDZXRzk1K0pWZnYzNDRFakExUG91c0dRZ2lHeG1JY1BOekRxYTR4ZkJWT2FvSVZTMG9mU3I1NjdPLzhuMGlPdVVMWUhEbUIyWDk0bVFkY2Ztd2VONTdxS295OE5zY2JhcmxrUTFFY2ZpK0tmZlVhMHBaS05ockR6TStNMnNVekdnZFBXaWFRNzN6YkR1d2xlQ2VwamQ2U1d1U0lySTQrV0w2NlBMWGVnMVJxd2YwVUltK2k5NWV2WTREYTZGbnh1UkpaSFdOczhTaWZ5R1JRREozZGI3dWFsNTU5Zzh6SlRpUzdEZHVlN1N2YTczeWtQdjlWY3FjNzJkSWNZRmZ3M0xtZVhuTWl6Z0FBSUFCSlJFRlVMYTZjcXN5N2RnU3BXYUJINVhoQzQ4WGVCQy8weEJtTjU4a2JndldWRG01cTlYTlZjd1ZCdDFyeUxNUFhoMU9FcnRxSDdRTy9WTkoycHJNbXNOWW9HNXVEYVo0NFdVc29tcUMydHA2Z2YvN1pPVDZ2aDlycUtqcDcremcxNXFZejVPR3FwamdPZFc2QnNXcVRPZjdxT1BGSWptUTZ4OXV1YThNMnl5bjlxLzExSEl4VTRLdnc4dTdiYjBWWklNeDlkaWhDVGpPSVJpYUpoQ2ZaNW95eks5ZE4xUVdhUlhOUk1VMUVObWZaUTRSQ21Ja2thQm9nV2EyQWxuQnhxdkI1MkxWM0MyOS94ejRxZkI1R0JzZkpaS3g2aWtnOHc2dEgramx5YWhpMzAwNURyVy9CYlVxZUt1eDMvd21TYTM2TERMUDNWY3l4MDBzL05yc2JqTkxUZWZNaEtRcXVxa3BzWGpmNVpNcnFnYmtpQk5sd0RHZlFqM3dCZTEwdWg4eEVlRTYwYml5YTRYRG5KSW9pODk3YmQ2MTQyNUlxb3phV1ZuK2xEeWJMVXQ5a0RVakN0cUdpcEJsaTB6RkdVb2hVZWFKWDFybGErY3hHTTVURlRDenQreUN5V1Z5U1lQUFZPM25wNXgza1grMUFiZDJJdXJGNXhmc3ZrRC8wT29sSC9obTdUZUgyelY3c1UwVzNrMG1OSDh3U1YrL2NFYVJxSGt1S3dXaU81enJqdkRhWUxNNHUzRlRsNVBhdEFYWTBlUENXcVg1dUlKS2pRM2ZqK05LZm42c0ZMUU5yQW11TnN1RlFUVFJENHVob0JlUGhHTTJOVGJnWGFNOVM2ZmZSV0Y5SFY5OEEvV0dWbjNaVjBlakwwZVNmR3ltWUdFN1JlOXFxRFduZFdEMmowUGFmQjZ2NXptZ1ZzaXh4ejEyM0UxakFQSFEwa21JOGFxVS9lbnZPa3N0bStFRHRPRldwRVNxYjZrczk5TXNQWGJkbUtjWmltT0d3TlVQUk1KRlVkZEU2REZWVjJOeld4TnZmY1MwTlRUVk1qb1NJVGZsckpaSlozamd4eUJzbkJxbjB1Nm1ybnZsK1NFNmZKYTY4Qy9zcEdXZC9qb2dNTEg0TWlvcDZ6UWVRS21vUkUxMkxMMThDcXRNNVZRUnZycmdJWGdpVGJDeUJ1enE0WXR1TjFjTEk1ZWZ0MmRnL2tlUjRYNFJnd00zYnJ0dXk0dTNMWGh0S2NPVjFhQ0pyb0EvTTM2dHVSZVB4MlZISzFNdE9hS1pselZDbU9SbWwxcW9adzZsbHRla1IrVHhWSGh2dWRmV2NlS01UN1lWWHNGOS9OWExWeW1jV2lueWUyTy8vT1NLUlpOOW1QNDFUYWI5WVZ1Y0h4eVBGbXF1Q3VBck9Tb2RPSmpWKzFobmpqY0VVeWJ3bHFoc0REbTVyQzdDendZT3pqRzd1a2JUT1R3ZXlPQjc1SXJLdnZPYlRhd0pyamJMU1ZwUGlaNTFWaE9JNTh0ancrWHg0RnhCWnZnb3ZiWnMzTURJK3dVUTB4OCs3Z3h3ZnJTRGcwbW53NVlxMXA0WnVjdmg1cXhWUHBjOU5lMHNkQ1YzaHIzc2ErSTl4NnlKdzRPWWIyTHhoL3FldWJGN243RkFVQVNRVE1mcDZPNm15Ni95UDFnbHkwU2krdXRMTUV5OTdDdlZieWFSVnV4VlBnSzVaRGI3UDQyQXN5UktONjJ1NStjRFZiRzVyWkh4b2dtakV1Z2ttVXpsZU96ckFxZTV4YXFzckNQcmRTQTRQOW5kK0VzbC8vcllUeHJFZklGTGg4eTRqQmRaaHYvTWhsQTNYWUJ4OUVwRmNQYytzNGo0bENXZkFoNlBTaDVaSVkrckxqMWdJWFVkTHBYRlZCeStwdEhRK2tadzNEWHA2TUVyWFNKejZHaC83OTg3MXVGc3FTdENKdkVENlp5a1lReWxFcG56OVc1VzYwdXZCQ2hpRHliTFZYZ0VvdFNzZm04Z1o2TVBMVDZNS1RXUFR1Z0RobkdDZ2E1ajhpNi9pdk9ObXBCVjZ1YVgvNFYvSlBmOHkxVDRITjI2d3lnWlNlWU1uajBkSVQ0ay9teUp4OTg2cUdlSXFsVGQ0dml2T2k3MkpvbVZEd0tYeXRpMSs5alo3Y1pmUkVCYXNvdllmbkUzZy9OeWZvTXpxcFZzT2xpU3dWTjhldkh1K2hxUHhQclRKWnhIRzZ2dlRYRzc0OWoyT1VyRU5iZkxaaXoyVWk0b3FDeG9EV1o3dHFpSWVpK0R3Vm1GWFZieXUrV3RQbkE0SE83ZHV3ZUd3TXpZWllpaXE4TE91S241OHRwcUJxSk5rVHNYdTgvREtTeEYwWndXVHpqcE91cmZ5NVo0R3pxU2NTSkxFMi9idlkvZjJyZk51M3hTQzA0TVI4bE0xUTZlT3YwRStuK1BYbXliWVVaRUZJWEFzVUJEL2xzVXdyT2hXTklvUmpsaTFXd0EyMjRLaW9MWSt5RTEzWERWSGFFVmlhVjU2dlpmUlVKS3RIL296M090M0xMcDcvZFh2Z0w2d0U3YlMvbmJzdDMwY3lXTjUxT2lIL2dXTThobUZMb1ppdCtPcHJRWkpSb3N2UDZwaTVQS1ltb0h6UW5ZUldJUnNPRHF2WUh5dGM1S1JjSm90bTJxNVl0dktVK2xLdlh2RmRnaFc3Vlg1b2xjQTZ2b0twREowTEJEcFZSaGJVd1hTU3BvOE0rWGVubHhodWx6WDJiNmxnUk85azBRSHg5RTZUdUM4ODlabE42ODNCa2VJUC94bE1FMXUyeEtnd3FHUTAwMmVQQjRoUHBYaUxSUzBWMCtsQllXd0dqdi81RXlVMEZTcTFhWklYTE8rZ2x0YUEvakxWQ3MzblZUZTRNblRjZXdmLzIzVW04dGIzRjlnU1FKTGR0UmpxNzRWZ1B6WUU1ZTF3UEx0ZXh4SDQzMFlpVk9ZdWZrN2VLOEVSK045bUxteHQ3ekFBbWowNVFpbmJad2VkNUROcExHNUt4RUMvQXZNUUpJa2lYVjFOVnl4dlIyWHkwa3lsV1l5cnRFWjh2QmlmeVUvN2FrbHV2NHFZdXYzTXVwdjRVektpU1lrZ2dFL2Q5OStDMXZuY1k4djBEc1dKNXEwYnRiRGczMk1qdyt6enBubm9jMmp5QktXaS9zbEZFbTQ1QkFDa2N0TkdaNU9wUktGUUZKdDg2YTVhdXVEM0hqN1ZUUnZyS08vYTRoVXlvcUtqSXpIZU83Zi93MVprdGkwZHgveVFtbElQWWYrMm5mbWZVbHlWbUMvOVdPb085OEpzclcrU0VmUk8vNmpQTWU2SENRSmg4K0xxNm9TTFpWWnRoTzhsa3FqdXAzWVhCZmY3VjJZSnVuSjBMeHVCVDgvT2tJOHJYSGxqcVlsOXdLZEQxdFR4WXBOTS9XK1JObG1EZ0xJSGh0S1RYbk91OTRiUitUTFkwNExJTG5Va25vMTZnUG5uejI0R0xJdzJkN1d3Q3RIK3NrT2pXSU9qdUM0ZGYreXJwR0p2L2dLZXQ4ZzdYVnV0dGU3TVV6QkQwOUdpc0pKbFNYdTNGWkpmWVgxMEIxSjYvem9kSVF6NDVtQzhUd2JnMDd1Mmhha0tlQllsY3R6SW1md3hPazQ5dnZmaC9yTDd5bi9EcWE0TktzdDE3anMrWjNyQmpnMTdxVjNjcHloZ1Y1Z0kzbmRZRlA5d2oybGJEYVZxM1p0NTZwZDI0a25rZ3dNanhLS1JJa25rK1RTS1hLeENONWdOY0dhV3BvYTZ0alFkUDdaZnhPeGRMSHVLcG1JMDlkN0ZvRC90bUVNVlpyNkpxK0pxNlVqQkdZeUNja2tCaU5JYmpleTM0ZnM5ODhRVzVJRVYrNXJaL2RWYmZ6c2g2L3d4TGVmSlozT2tjdm0rTzRYSHVhRjd6ektiM3psSDltOGQ5L2NYU3pRSGtkdTNJbnRwdDlCY3M4MHNWMVNyZFlxb3JxY1ZPOW9JelUyUWJ4L0dHRXVYUWhFdS9xeHU5MG9GOW0rUVV0bEZyU0Ntb2haQXJtK3hyZmk3VXNPQlZZWWtUSGplY3g0ZWFPVGNxQThNem5OU0E1enBkR2lCU2lwdVhNaVh4WWhXdW0yOFpzZnVKNi8rMzgvSmZ2TUwxRFdOK0w1cmYreXBIWHpMeDBtOThJcjJGV1pxNmRhRVAyOE04YllWTkc5TE1FZDdaVTBUTlZrSFI5TmM2Z3ZnVEdsckZ3Mm1mMmJmRXMyR1YwSmtiVE9EODdFc2YvS1BhajN2My9WOWdNbENDeEh3NzA0bXU4bjAvbEYxT0FOMklMN0FjaVBQMDIyOTVIaWNyYmdmdXdOOTZKNHJPbjFRaytTSDNtYzNNaGpBTmhyRCtEYytBQzVnVWRCOWVCb3VCY0FMWHlRYk84akNEMDVaNThGOHVOUGt4dDg5THpMYU9HRDVFY2V3MGgxNGR2M2VQSHY3dmFINTR5MU1GNVg2ME1BSkE3Zmo5Q1RPSnJ2eDlGd0wwYXFpOVR4QndIdzdQZ1NpcWVGM01DanhXTXByTy9jK0FDUzZzVklkWkh0ZlFRamRhNEExMTU3QUh2RHZjaU9PZ0RNM0JqNWtjZklqejg5NzNsV2ZYdHdUd1VaQytNQmNMVStoQzI0ZjhiK1p4KzdIdThnUC93NGVyeGp4cmIwZUFmcFV3OFhsL1B1K1JxeW80NzRvWHNXZkUreXZZOHNPTWI1c0NzbWYzcEhKNy8zL1czMDlaN0I2WElEdFdUek9tMk5RV3lMVEVIMlZYalpzZlg4dlFmUFJ6eWRwMmZVYWxxcjZ4cW5UM1lnaE9DZE5WR3U4bCsrRWRoTENaRk9ZNlRUR0dQanlJRUFTbFZ3UnMyV29zamMvcTVyMlgvckhyNy9yWi94N0k5ZXRkemhlN3I0N0QyM2N1QWpIK2VYSHZvemJJNXpGOU01QWt0UlVhOTZQK3JPZDh3N0JqUGN2eXJIdGx3OGRUVTRBMzVpdlFOa283SEZWd0NFYVJEcDdLVjZSOXRGRmZyNTFQemZoMGd5UjA2emJ0aDFwVGk0cnpTOUkxaFJQZEZpeU9meFdWb3FRamZMbmhvRVVFcG8yMk5NbE1tQUZkalNIT1RlZDE3SnZ6OXhtTlEvL2h2S2hpYWNkOXg4M25XRXBwUDR5dDhEc0xmSmk5TW04MHAvZ3U2UUpkSWw0RzFiQWpUNjdXUTFrMmM3WXd4T2M1dmZWT1hreHMyK0pibXRyNVRoV0o0ZmQ4WnhmZmcrSEwrMnV1SUtvT1FqY1RSL3FDaXV3TG81RjI3eUJiRlNFRmNBa3VxMUJNczBJUUJnYjdpbktLNEs2N3EzUGx6OHY2djFvYm5yMUI3QXMrTkxTS3Azd1dVSzJ5a3NzeGg2L0VoUnhLaSszVk0vOXdETU9JN0M3d1h4QXFDNFczQzFQbFRjbCtKcG1iRnZSOE85T0RjK1VCUlhBTEtqRHVmR0IrYU0rOXg0T29yam1YNmVDMk1yN0grK1l5OElxdW5yTFlmWjc4bHlxZlBtZVBqQVdaeXF5WmxUSGNTaVlaSVpqV085a3lRenExY3prOHhvbkJrTUl3UUlJVGg5OGdqWmJJYk43aHovZFVQNTBzSnJUR0dhbU9Fd1dtY1grdEF3SWp1emZzcnRjWExmYjd5RFQzejJ0OWl3MlNwd0Y2YkpqLzdQWC9PcEE5ZlEyL0ZxY1ZtUkdDLytMZ1VhY2J6N3p4Y1VWd0FpZkhFaldOTlJISGFDVzF1b2JOMkVmSjdKQWRQSnAxS2t4bGEvUUg4aGhHbWlwK2EvTWZlUFQxMTNWR1hPYk5EbHNOTG16c1pFcHF5RjdRQ1NYVVp5bHA2NDBRZVRpREkwZEo2T1pKZVJWbHJjbmpjd1krVzlwdDU2VFF2WFhtbVZYeVQrOG0vUWpwdzg3L0taNy93bnhzQXdsVzZWN2ZWdXpveG42Qmc2SjVCdjJHeEZwaWFTR3Q4N0dpcUtLNXNpY1hPcm45dmFBcXNxcms2TXB2bmhtUmp1Ly83Yk9DK0F1SUl5Q0N5QVpNZEhpUis2cHhoSktRZ1NOWGdEQU9sVER4TS9kQS94US9lUU92NGdRazlpcnprd1l4dVM2aTB1VjRpdUtKNFdiTUg5eFo5bWJvelU4UWVMMnpGelk4aU9PdXcxQjFCOWUrWXNremg4UDBhcUMwbjFvdnAyRnlNMGhUSE5qbDZCRldIVDQwZXNrK09vbi9wWlZ4UTVpcWRsUmpSdWVuUktVcjNrQmg0dDd0dk1qU0dwWGhSM1MxRllBc1ZsNG9mdXNhSkVXT0pydXZDYWpoWSthTzE3bXRDVFZHOXgvN2JnZm16Qi9RZzlPZU5jRjlaek5IOW9rWGR3ZmlUVlM2YnppOFFQM2JPczZOVjAycXBUZk9yQUdSeUt3Y2xqaDRtRUo4bnJCaWY2UWd5RmttVnZONWZNYUp3ZURHT1lBaUVFWjA4Zkl4b0o0YmNaUEx4bEVJZDg0ZnJidmVVUUFqTVdRK3Z1Umg4WVJHUm56a3BidjdtQlAvN3NiL0grRDkrSncyRUprTkh1czN6bXZiZnlvLy96MXdnaE1KTVRnSVN5N1hZYzcvMDBVdkQ4Zmp6bVJVNFJ6b2VycXBLNlBkdHgxeTV0ZG1wOFlHUkZNeExMZ2VYY1B2OTNvbmZjYXZ1eWZsMmdwRWJma212NXhlMGliNkNQWEpyUkt6T2V4NHdzUEFsanBaVFVHcWRjN1lObThTdDM3Mlh6K21xRXBoSDd3MDlqOUEzT3U1d1pqcEw2eDM4RDRQcU5QaWFUR3M5M243UDl1S3JaUzN1ZG03TVRHWjQ0SGk3T0VLejIycmhuZHpWdFphcUptdy9kRlB5OE84NUxnMmtxUHYySE9ONTcxNnJ0YXpZbEN5eHQvT2xpc2JnUnM0VEo3R2lSYzlNRFZ2cXE0VjRreFV2aThQMGtEcytNdG1qaGc4Vm9qQjd2S0lvRDJWRmZGR3phK05ORlFXT2t1dENtYnZyeU5OR2poVjhvTGlQMFpGRnNGVVRUVWpDbjFpOXNWMUs5NUNlc2ZhbStQY1h4ek42bTBKTkZrU24wSkhyc1hIU3JFRVV5VWwwelVvcTVrY2VLeDJxYkVxU3pNWW9wdnBrUnRjS1lsR24vbng1UnkzUitFYUVua1IxMU02SnZTMlg2KzFBS08rcVNmT2F1MDNoc2VVNGVmNTNSa1VFRU1EaVI0SGpmSktsc2Vlb1l3b2tzSi90RDZJYUpFSUxPTThlWkdCL0JyWmg4dG0yQUJzZnFtRkd1TVJjemtVRHI3a0VmSERvM0N4R1FaWW5iMzNVdG4vcktmMlhMTnFzWnQybm9mT2N2L3BpLy9mQTlKTU9UMk8vNFBXelgvOXFNL29Uejc4UkFSSWRXOHpCV2pLUW9CRGF0cDNwN0crb2loZXpDTkVnT1g1eklhaTZ4c0lqcEc3TWVLbHMyckx5NEhVQnlMRDhxby9jbEtGWThsNUZTQlpiUXB6eXZWb0dWQ2l5aG1SaWgwam9OTElTcXl2ejJmZnVwQ25ndzQwbWl2Lzh3WmlneVo3blVQL3dMSXAxaFk5Q0ozNlh3NDlNUnpLbW41L1k2TjFjMmVYbHRJTW5QTzJQRmVxdnQ5VzdldlNPSXo3bTRBTmNNd1dSU296ZWM1ZFJZbW82aEZDZEcwd3hFY29UVE92b0NuNVZvUnVkN3g2UDBaQlg4ajN3ZXg4M1hsWEEybGsvSkFrc1lDK2VoOHlPUEZXL3doYlNndS8xaGZQc2VuNU8yTWxNempRS24xMVVWY0RUZmoyL2Y0OFYvaFlpUXBIcVFDdEVmZmY0THhuemJXNGlDU0ZFOExjV29rbDRRR3RQMlpVd1RNd0JHZW1HelEwbXhSS2VSbXJ2TTdHT2ZqUlkraU5DVFZqVE0wNEk4SlphS1F0QnBqVWZNTXl1eU1LYkMvcGVEbVMzZlJiK3RKc1ZYM251U1puK2Fyck1uNkR4N0hOTTBTV1d0bEdIM1NJeHNmbVZQOFlZcDZCbU5jWGJJK2xJYnVzN0o0Njh6UGphTVd6SDUvTllCdG5oVzV3SzB4dmt4NDNHMHJtNUxhRTFyd3hLczl2UGdwMzZOZXo5NEcvSlVkT1RvVDMvSVovNzBiK2taWDFxcVE4UkdZQmxGNVJjRGU0V1gybDN0K0RjMUl5c0xDNDMwZU9nQ2pzckN5R3NZbWZrakg3RlVudkdZOWRxbTVxcVM5aU10c3plY01aNHVlL0Y0Y1N6enVJVXZCNzAvc1N3VHo2VWlPUlRrRlk3Tm1NaXNpaGd0NFBVNCtOaUhic0xyZG1DTWpCTjk4Rk9JYVo1cGVrOC9tZTgvalN4WnRnclBuSW1TbVRwSDZ5c2RYTC9SeDg4N1k3dytWYk9teWhKdjJ4SmcveVlmeWp3elMwMEJvL0U4SFVNcGZuUXF3cisrTnNFM0RvMXhzQ2ZPWkZMSGJWZG9yWEd5dmQ1TmM2V0RvRnRGbldjN0o4ZlNQSDRzUXJxeGljQS8veTIyYlNzM3lsMHBxenFMMEVoMWtUaDhQN0tqcmhpZFVhZFNmczZORDh5SWpraXowbVB6MVV4bE9yKzRZRVNsV0gra2x1NXBaS1M2emtWK2ZIdUtxVGdqMVZXTUhnSExpdTRVaE9oOGtTUjVDZEVsUFg0RVczRC9WQVJ0TjBKUEZ2ZHZac2ZBTi9jY2dsVVhWdGovUWlKTFVpNk1EMVNkTjhmZnZQY2tqN3pZek5ObklCRU4wZEsyQzUrL2tvbFltc2xZbW9EWFNiWGZSY0RyV0xTM2xDa0VJK0VVbytFVXVtRjlvWk9KR0tkUEhTR2J5VkRuMFBpTHRrRTJ1c29memw5amVaanhPR1lpZ2V6M285VFdXSTd4a3NSZHYzUUQyM1p2NXV0ZmVZeXhrUkNSMFdHKzhNdTM4OEcvK0FvM2YvQTN6Ny9OUzZUQWZWRWtDVTl0RGE1Z0pZbWhVZEpqa3dneDh5WnRHanFtYmlBdjAzT29GSExuS2NZL09XQjFUbEJrcVNSN0JoUnBXZllNWmxKYmxjSjJBTW1wbHRRTDBSaExsNzNPcVlDOHdxYlRRamZMV3R5K0VMVlZGVHp3cXpmeU4vLzRMUGt6M2NUKzROUDR2L2luU0U0SHlmLzFqMkNhN0dqd2NISXN4ZmpVak1GcWo0MWJ0L2g1NWt5RS9xbVVxdGVoY01mV3dKeTJPSVlwNkl2azZBdG5HWWpreUJzQ1daSm9DdGpadDZHQzVvQWQreExmdTFUZTRCZmRDUVlqV1Z6dnVSUHY3MzBFNlNMMUFGM1ZmZzBWZXgrbFl1K2pWbTNTeUdQa1JoNHIxazdORmxDRldpdWdXRThGRklVTldMVkVoV1ZrUngyZUhWL0N0Kzl4bkJzZktFWnpiTUViaWxFblNmVVdsMW1vdm1raEN1ay9XM0IvTVFxa3h6dUtOVmdGRWJaVWluVlVucFlaaGVPT2hudUx4NnFGWDFoNFBGT3YyV29QSUtuZUdlbkpRaVN0VUl0V29GQndiK2JHclBFV1JKNzdYR1RPUHJXOUM0VmRNZm40algxOCtzNHp1S1FZUnp0ZTRjeXAxOGxtMGdnZ2tzeHlkaWpDNGM1eE9vZWpqRVZTSkxNYW1tNGlBTjJ3b2w3RG9TUWQzUk1NVGlUUURSTmQxK25wUHMyUk53NlJ6V1M0TnBEa3F6dDYxOFRWcFlRUW1ORW9XbWNYeHNRa1l1cXBlOFBtQmo3NStZK3c5OXB0QUJpNnhqZis2R1A4MDRPL2c1NWYrUDI3MkJZTnkwVldWZndibXFpOXdxclBrcVRabDk4TFZ4K281M0xrRWd0ZnY5N29uZ1JnYzFNUXAyUGxVUi9KdG5UQktQSW1lazk4MVU1REtVN3laankvS2pWaEJWYmFSc2dZVGE5cTlHbzZHeHFEZlBTRE4yS3pLZVFQSHlYNjRLZklQZmN5K1pkZXc2SEtCRDBxeDBZc1d4eVBYZUh0YlFGK2NqcGFGRmQxRlRiZXU2dHFocmlLWm5RTzlzVDU1bXNUL1BSTWxLN0pMQjZId3Y1TlBuNzFtbG9PdEZmU1V1MWNrcmdTV0lYczMra0lNNXdSK1A3MGYxRHhoeCs3YU9JS1ZqbUNsUit4MG5pZUhWK2ErOW84UmRPemw5UGpIY1YwblJZK2lDMjRmODR5bHUzRFk1aTVNZXlwTGhSUEM5NDlYNXV6cjBLZFdDSFZ0cEJOUXdFejFRWEIvVVc3Qld0QTU3NWcrcXowNEdJSVBVbHU0TkZpcW5UMmpML2MxREVzeExuQys3bnBTUzE4RUhYcS9Mam44WTNORFh6RFdpZlZWWndZTVAwY0ZjN0poV1J2WTV5dnYrODQzejFheTc4Zk1UZzhNVUYxVlNXMTYxb0lCQ294REpOUVBFTW9mdjZuczN3K3g5aklJQ05EL1dpNmh0OW04SnRORTl4VkUxM1EyMmVOaTR4cFlreE1ZRVlpeUxXMUtBRS9UcGVkMy9uOTkvSDA5dy95MkRlZlFRakI4OS82WjRaT24rQmpYLzgyZ2JxNTdYWE1TMmdHNFhKUTdIWUNtOWJqMzlCRVBwWEd5T2FRVmZXQ05ZRVdRcEFlbjk5WUZHQThsbUZ3MHJyV1hibXp0S2EvUzNVa0Y3cUoxaFVyKzh5OEdXUHhySENHWGxaSDYxMUY0ZWV4cmNqbFhtUU5qTW5WajE1TnAyMVRMUTk4OEVhKzlzM255YjkralBneHF5bjd0am8zQjN1c29uWlZscmg5YTRDWGV1TU1UMFg4TmxjNXVhWFZYMHdKanNienZER1VtbUhUc0w3U3dlNTFIdXBYVUNjWHplZzgxeDFuUEo3SHZxc2QvNS85UGtyRDhvSXFxOEdxZnFPTFhsY045OHk0Z2MvMmpnSkxqRW1PT3V5MTF1ekNnc2RWZ1V6bkZ6RWI3cDJ4TFMxOGtOekFONHJDSkgzNllSeE45eGUzTWQrK0NxSnZNZlI0Qnc2czVRclJzZm4rdGh4eUk0OGhqT1N5ZkxBS0ZGS0M1NkpkTTlPVGhmTnpQaCtzd25LdTFvZUsrOC8yUG9JNmxYcTgwTmdWazErNVlwVDNiSi9nUDAvVzhNU0pITWVQUkhEYUpTb3JxL0FHNnZGNEszQTZYU2lLQ2dqeStUelpUSnBFSWtZMEVpSVdDU0VBcjJyeXkrc2kzTmNRd3EyczNrVjZqZkloZEIxamVCZ3pIRWFwcTBQMnVMbnp2ZnZaME5MQTMvL1ZkMGttMHZTODhRcC9lZmNOL0gvLytCanJkMTR4Yy8zTExJSTFHMG1XY1ZSNG9lTENQdHhrUXhITTh6alB2M1RLc3NwUVpJbXJkMjhvYVY5aUNkT0VoVzZpZGNZUTJkV2RTU212d0o1QjVBMjB6bGhKN3VpTElhOHdlcVVQSlM5azBMTkkyNlphUHY3cnQvTFZSMzlCT3BOSEFycERHVFJEV0Y1WGJRR09EcWVLa2F2ZDZ6enMyMkRaZklSU0dxLzBKMmNJcTgxVlR2WTJld21zd001RE53VnZEQ1k1TXBKR1NCTGVqMzRJOXdmdmhVdWttYm9VZS9tWEx1cTg5ZW1tbHJORjF4b3pLWmlMYXVHRFpEcS9lTEdIVTNZRWNHeTBncCtjcmVUSVNBWGp5ZlBQdm5KSUJudjlHVzRPSnJnNUdNZStac0Z3V1NQN2ZDaDF0VWcyRytGUW5LOTk2ZHYwZGc0RDRIQzUrY2hYdjhFVmQ5d05nTWlseUgzem94ZHp1SmNsV2pwRGFtVGhTSGsyYi9DRmYzK0R2RzZ5dDcyQjMvaVZHMHZhbjJTWHNlOVl1RWhlWkhTMG5uaFpXK0VzaEdOUDliTHF3WVJtb3AyTnJ1N1laQW5IcnFwbHR4RXlvem0wbnZqaUM2NGk0NkVFZi9kUFB5Y3lMY3R3emZvS3NyckowYWs2dXVzMlZyQ3p3VU5PTjNtbFA4bXBzWFJ4MmFhQWczMGJLbVkwZTE0T1haTlpYdTVQa000WnFLMGI4WDNpNDZoYmx6OWJmalZaYTVWekdUREhuWDZGbmxTWE9oS3dxejdCcm5wckduUXNxeklRZFRHUnNoUFBXaDlWV1JLb21SaFAvTjFCNnRVVW4vcjRPOWU2M2J4Sk1PTnh6R1FTcGFxS3lxb3EvdURQZjUxdi90OG5lZUZuYjVETHBQbnFiNzJmOTMzeU14ejQ3ZjkrMlVldkxnWkdYaU0xZW41VDAxZlBUcENmU3RQZHNyKzk1SDJLdkluSUdYTlRZTUthTGFoZm9Cb2lTWldYSjY1eWhwV3lYR1hocHdRY3krL1JhSWhWY1pGZkxyVlZGWHp5ZCsvaUc0OGQ0c2lwSVNRSkVqbWRVMk5XNjZVYk52dG9yM1BURzg3eVFuZThPTFBRNzFTNWZsTUZUU3UwcFFpbE5GN3NTVENheUNQWjdYZ2YrRlhjdi9KTHNGQi8wNHZJbXNDNnpNZ05QTHJzK3EvTEZiOVR4MTgvditkTWh5L0YrRkNLenI2SjBtWTVyWEZwVWFqUGlrWlI2dXY0dGYvNkhwbzMxZlB0ZjM0YTB6RDU5cWYvaU5CZ1ArLzd3SjBYZTZTWEZjSTBTWTJPZzFnNGZXNllnb01ucmVqVzVuVUJXallzelNoMU1iVGVPR3E5RzFRWkRJR1oxREREMlZXeE8xaVE1YzVrN0ltdmFqMVlBWGtGUGZmMHdlU0ZQWGZud2VsUStjaDkrL25XazRkNS9wVXVUaytKcTF1MitOa1lkUEo4ZDd3WXRaSWxpVDJOSHE1bzlNeHJ6N0FZcWJ6QnEvMUp6azdObXJSZnM0ZUtoejZHMGxoZnprTXFLeGM5UmJqR0dpdmhKOS90NGdmL2NvYnI5MjdpZysrOSttSVBaNDFWUXZaNlVlcnJPWE4yaVAvejVYOG5tYkF1MWxmdDI4Mkg3dHBTa3NQNFd3VWhCTW1SOFFVOXJ3cTgzalhKZDEvb0FlRFg3OWpLcml0YXNIc3ZqSVhMYWlQWlpPdzdGL0h6RXBZVmd6NmF1aUMxVFpKRHdiNDl1S3gxTG9YVTRId0lJZmpiZi9vNVozc24yRmpsNUpyMUZmemtkSVJJMnFxcnE2K3djMk9MYjBWMVZubEQwREdVNU5oSUdzTVVLTFhWZUg3MzEzSGVkbE81RDZQc3JGMmQxcmdzMlh2VE9nQmVQejZBcGwzYVpwTnJyQnd6bVVUcjZxSzF6c3NuUHZkYnJOOWtQYTIrZHVnSVgvL1dpeGpHcGZFa2Z5bVRIcDljVkZ3SkFjOGRHd1ZnVTQySGxnWWY2YkVKMHBQaEpSV3FYK29JelVUa0YvNnNtSWs4K2RNUnk0cmhBaDN1Y3EwWlJNNUFXeVVYK1ZLUkpJbDMzNzRMZ1BGNG51OGZEUkZKNjhnUzdOdFF3YnQyQnBjdHJrd2hPRGFTNGx1SEorZ1lTbUdxS3A0UGY0RGd2ejV5V1lnckFPV1BQekxQdlA0MTFyakVjWGxzbkRrYVluSTBUVU90ajNWMS9vczlwRFZXRVpGSzR6VHlYSDlnSDZGSWlxSCtjY1pEQ2JyN1ExeTVvM2t0a3JVQW1ja3crZlA0WFJVNDJoZm1sVFBXN01IN2JtbkI1N0hxWTR4Y2pud3loV0t6b1N5eGdmV2xpc2pvU0U0RlNaRkJXSUxGak9iUUI1TVlZeG00QUNuQjZhZ2JmRXUyc2NBVWFOMHhPSTlJdk5oVSt0MGNQTnhESXFOaG1BSy9VK1d1N1pWc3FuSXV5ekpIQUowVEdYNXlPa3AzS0l0aENoeHZ2d0gvNXo2SjQ1YnJrUzZRblVrNVdCTllhMXkybUliZ3hLdmpwSk5aOXUxWmozU0pUTTFkWTVVd0RLUmtnaXYzdHVLcURuTHlhQStoU0lyQmtTaDdkelFocjZDdTQ4MU1OaEk3cjF0N0FWTUkvdlhaVGpKNWcvWjFQbTdjdFc3V0FpWmFNb1dXemFIWWJCZk1yNnZjaUx5SkdjcGlqS1d0ZjVOWnpIZ2VMa0k5ayt5MW9kUXV2Y0d4MXB0QUpDNzlYcXFudThlWkNDZHA4Tmw1MTQ0Z0ZjdjA5NHBtZEg1d0lzeXBzUXg1UTJEYnZRMy9wLzhROXdmZWkzeUI3VXpLd2RvZGFZM0xsaXYyMTJPeks1enREOUY3b2djdGZXRk45OWE0T0ppeEdMZTJWL1B4MzdzSHQ4Zko4Yk1qL01OM1hzSmNhRGFhRUcrS05OZHl5TVVTWk1Oem0vTE94eHZkSVVLSkhKSUVkMTYxc0xHb2tjbVFIQm9oT1RLR25sbnI3VmtLeTJuc3JBOG1NYU9YUjBlS1FpQlprc0MyMU9qY05JWmorV0xkbHUvUGZwL0tSejZQYmNmV2NnN3hnbkpaQ0N4SHc3MzQ5ajFlZENtWEhYWEZoczlyTEIzVnQrZE5kZDQvUkRuREFBQWdBRWxFUVZSY0hodDdiMnhBQUlkT2pwSWFHU005RVhyTDNVemZraGdHclg2RlAveHY3Nkt4dVlZako0ZjQxcE9INTExVW1DYTUyS1ZadTdJYTVPSUpNcE5MYXg1dENzR3pSeXl2c1N2V1YxSlQ2VjUwSFQyZElUazhTbnhnbUZ3OGdUQXYzYlRWcFlyc1g1ckEwb2RURjZUWElGamZrOEsvbGFDbE15U1RsdkFlanVXTGJYT1dRMXV0aThvcFh5eXQ0L2lLeG5FcGNYbkdldGRZWTRycjcxelB5ejhkNUhEWEJHKy9ZaDNFRTJpWkxKN2FhbFRueW54VzFyaDhxSExLL1A2SGIrYWJUM1h3d3F1ZEJQMXU3cng1MjV6bDh2RUV6b0R2SW96d3dwSlBwRWhQTE53R1p6YXZkNFVJSjNLb3NzUWRWNjlmMXI3TWZKN01SSWpNWkJpYng0UGQ2MFoxdTVEV2pPbk9pMlNUa2V5THh6YjBnZVNxdGNJeE5SMDlrMEhMNURCeWVVeE5ZM1oxdnlRclNLcGl0WEd5cVNoVFB5VlZRWllMdFd3Q0k2K1JUNlpJUitNTWpzZVJKQWtoQkMvM3hRbTRsR1g1WGFteXhHMXRBYjUzTkVUbWV6L0VkdVV1bkxkZkhnWHQ4M0ZaQ0t4Q28rZzFTa09QZHhBL2RNL0ZIa1paV2QvcXAybXpqOEh1T0IzZElhN2VVb1BRTkJKREl6Z0RmcHpCd05vRi8wMk9YWlg1OE4xWHNyN096Mzg4OVRvTnRUNTJ0emNXWHhlbVNUNnhlbzE2THhYeThRU3BaWWdyelRCNTVvMGhBSzdiVW8zUHM4S211RUtnSlpOb3lTUklNbmF2RzV2SGplcHlydFZGenNjaWpZdUZacUwzeGpHVDVhdTVNblVEUFpOQnoyVFJNMWxNZmZHMlJNSTBFSG5qdkcyVnBuTjZJRXBlTTNEYlpacjhUczVNWkhqbVRKVDM3S3dxUnFXV1FzQ2xjdU1tSDg5MnhraDg3dSt3YlcxQmFWNjMrSXFYSUVzK2FzWFRncVA1L21MUE9qTTNSbTdnRzhXZWVLcHZEKzcyaDhrTlBEcWpwMkJ1NURHMDhhZHhibnFndU83c3RqajIyZ000bXU0djloak1qejlkYk9BTTU1ek05WGdINlZNUHp6cytTZlZpYjdnSFI4Tzl4YjlwNFlQa1J4NDcxNng1SGh6Tjk4OVlaL2JZdkh1K2h1eW9JM1g4UVZ5dER3R1E3UGpvakhFVktQUlBGUHJDczNaVTN4N3M2KzRwbmd1cldmWGpjODdIWXYwS2ZmdXNIb042K0NET2pROEFsb0RLZEg1cFJqOUdMWHlRYk84akNEMVpmSStBb3RBcUhFT204NHVvd1J1S3ZRNW5OOEtXVkMvT2pROFVYNS8rUGljN1BucmVSdFdyemY0NzEvUHRSNDd4d29reHJ0cFNnNFRsQ3ArTHh0QlNhZHhyMGF3M1BaSUV0KzNielByYUN2N2xQMTZsb2RaUFRkQzZuZ2hUb0tVekNOTjgwOTd3Yy9FRW1XV0lLNENESjhhSXAvTzQ3UXEzWGxsYVUrY2l3aVNmU0pKUEpCRkkyRndPYkc0WHFzdUY0bGloZ0h1enNWQmZRd0ZHS0lNK25DcTU5NkdwNmVoWlMweHAyU3hDVzkwK2o2WVEvT3lvbFdwTzUwMXFmVFpDYVoxUVN1TkhweUs4ZTJjUWozM3BCZSt0TlM1R0V4cW54dExFUHZGWktyLytaYVRMOFBPenBGbUVpcWNGejQ0dklUdk9PYVpLcWhkYjhBWXdOWXprU1dSSFBiYnFXMUU4TGFnVjUwTDBhc1UyMU1wclVEem5lZ1NwL2oyWW1RSE16RUN4RjZFazIyZnNUNjI4aHZ6WUUrZTI0ZCtEbVJ0RG0zeldFbFAxVmsreTNOQzNBUEJzKzR3MW51bmpkalZqQys1SER4OUVHSE9mWUowYkg4QXh0WjNwWTVOc1FmVG9xd0RZNisrZU90Yjl5UFlnd2tpUkgzc0NWK3REeFRGTUg3Y3RlQU5hNkZrdzU2cCt4ZE9DWi90blpwNUgyWTdxMzFNOGo0NkdlM0Z1K00wWnpiRWwxWXNhdUFaa08wYjhDQUNPeHZ1UUZPK01ZNVlkOWRpQ04xamJtM1lPQUl6NGtlSjdOUDI4RmM2dDRtbWQ4YjRwbnBZWisvTnMrOHlNN2FyK1BjaU9PaVRaVG43c2lYblA3NFdpdHRITDh6L29JNTdNc3k3b3BzWi9ibmFPTUUxeWlTUUlZVDFScjBXejN0UlVCVHhjdldzOWZjTVI2bXVzbEtDWno1T2VuTVFWRENCZjVsWUQ4MUVRVjhzaG5kUDUxbk5kNkliZ3dKNTFiR29vdjgySkJKaTZqcDdKa284bnlFYmo2TmtzcG03NTFrbUsvTmI4UGhyQ2FoOGtTUWpEUkdRTWpGQVd2VCtCR2NrdDI0ZExtQ1pHMXJMVHlFYmpaRUxoNHNPbGtjL0RCYWlSZS9yd0lDZjZJN2p0TXBvaEdFOW8zTkVlb0RlY0k1MDNHWXJsMlZ6bFJGMUc0WHVqMzA1L05FZHFQSUlJUlhEY2RPMHFIc0hxc0tUSE9mdFVoQ2MzOGhqeFEvY1FQM1JQTWVKaWI1aVpjaEpHaW1USFI0a2Z1cWZZMGtYb1NSS0g3eWR4K1A1aXBLTWdNcFJwVWEzQ3RvMVVGN0tqcmhqbFdRekYwNExpYVNtbXdBci84dU5QbnhPQzgxQ0l4cVNPUDBqODBEMGtPejZLMEpQRjZNOTBqSFFYaWNQM2srejQ2SlNRMm8rWkd5dXVtenIrSUdadURObFJoNzFtN3ZwQU1kbzEvVHdXb2tScWNEK1M2ajIzekxUemtSdDQxRnAvV2xRTExPR1ZQdlh3akdVa3hWTWNVeUc2T0YzY25vL0MrMVo0Ynd2bjN4YmNqK0pwUWVqSjRyYXp2WS9NRUlFWEU3dEQ0Zm9EbHBEOCtkR1JPYThYb2xueGdlRzEyVTl2QWJ3ZUIxZHNPNWNpTktadTZIcDJhYW1PeTRsc0pMWnNjUVh3MDQ1aHNubURLbytkYTNjMHJNTEk1a0dZNk9rTTJYQ0U1UEFvMFo1KzR2MURwTVlteUVaajZKa3N3bmhybUFhYmtSeGFkd3p0VEJTdE80WXhubDVTK3h0aEdPaVpMTGxvak5UWUpQSCtZYUk5L1NTSFI4bUdJK2pwOUFVOWg4bXN4dmRmNnVNWHh5MlQybXFQalExQkIxbmQ1TmhJbWdQdGxkZ1VpVWhhNTRjbkkrU1hFWmxUWkluYjJxejFNMC84bU95UG5sMmxvMWc5bHBRaVZIMjdFWHF5ZUJNSFN3RFlhdzRncWQ0Wk4zQTkxbEVVVVVic0NLcHZqeFZCbWtxYjZiR09HUUltMC9sRkNtVjhpcWNGMWJkbnhUZHUxYmNINThZSEVGUDd6L1krTWlQTk5adkU0WFBwUFZ0d1A3S2pmc0Y5NTRjZkx4NURRWGhvNDA4WDA0OUdxZ3R0L0drY3pmY2pMeUJvQ3V2bFI4N040c3VQUHoxTkNPNHZibXQ2eWpBMzhoanlsS2l6Qlc4b3ZtYm14b29pdGppT2ROZTUzK01keFcwdWhqYis5SXozallaN2krZWljRHo1aVhQSG14OS9HbHZOZ1NXTHQ5WG1wbmR0NUxrbmVobWNUSEYyS01hV3hybFA1RUxUU0E2UFlxK293RlZkK2FaTkY2MHhFMk9xaHNUSXZia0VWbVl5VEM2Mi9MWXBvVVN1YUNwNjU5NG01SXNVUlpJQVU5TXdOUTB0T1MwQ0xzdVdzYW5kaGx6OHFTS3I2bHZpT3l1RXdOUjFURTNIekdzWW1vYVIxekR6R3NLY0s1NHV4THVYMTAyNlIrTU1UcWFJcGZJa01ocXhWSTdKZUJZaExERmttSUxCYUk0NzJpdnBDK2M0TTU1aFU5REpIVnNyZWZwVWhNbVV4bE1ud3R6WlhvblR0clQzMGU5VXVIR3puNStkalpMNHdsZXh0YmVpYkdoYTVhTXRIMHNTV0lVYjdVTFQreVZsNVpFTXhkT0NjK01EeFJ1MUh1K3doTXkwU00xaUdLa3U4dU5QVzdWTDA4UmJvVzRyMC9tbGVldWliTUg5Vm5weVd1MlgwSlB6aWl3ek56cm5iNDdtKzJmVVlCV1ExTG45dTZaSG51WWJpOUNUeGZNNFg4MlltZXFDSllxbGxTQ01oZXZHaXUrdlBqTU5hS1M2TGhtQkZhaHlzdmVtZGJ6eTdCQS9mbU9JMWtiL2doZWVmQ0tCbGs3anJxbkM1bGw4V3ZvYWx4NlpjQVJud0wra0c2NlJ0VHlFbGxMWWU3bVFIcDlja2tQN2ZQencxWDRNVTdDaHlzMzJUWXYwNTdzWW1DWkdMb2VSbThmN1NaS0xZa3UycWNpS2dxUW95S28xcTYzdy8wczE5U2lFUUJnbXBxRWpkQVBUTUN3aHBSc0lYY2ZRZFV4ZHZ5Q2lhVEVNVTNCMktNYnIzWk9jSG95aHo5T1dTdmE0RUtrTWV4bzlkQXlsaWlLcnRjWkY1MFNHNTdwaS9QSVYxUnhvcitUSHB5Tk1KRFdlUEJIbUhkdUN1SmN3a3hLZ3BkckpXTUxOaWRFMHNmLzVlU3IvNzVlUUxwT2EyaVVYdVJ1cExsTEhIMXg0UTB0TTU4Mm1JSzVTeHg4c0NndFg2MFBMdm5FWG9sWDIyZ09XSUZBOU9CcnV0WXJLYXc3TW1ZVW9xVjVjclE5aDVzWklIbm1nS0hxV0d2RUJLL3BXU01NdHh2UWFKVW4xemkreXBrVE9mTWUrVUZUc1FsQVVYN09FNDZVaXJncmM4YjVXWG50dW1PRlFpaE45RVhac3FGeHdXV0VZcEViSFVUMXUzTlZWeU9yeUhJZlh1TGc0ZkJWRXUvcHdWUWR4VnA2L2ZxZ3dnL0ROSUxDRUVLVEdKdEJUeS9jWUF1Z2FpWE55SUlva3dkM1hiaWp6NkM0QXdzVE01eGVmMlNiSlNLcU1KTW5Jc2d5SzlidWt5RWl5WlAwdVNaYlZBQ0JKTWtoV1R6MldJczZtbWRjV2ZLT0VNZVVqSmNRTVR5bGhtSmltZ2RCTkVJdW5BUytHdU5KekdybHNIaTJuTVJaT2MzUW96dW54RkpsQzJsS1NzRjJ4QS91Vk8xRTNiMFJadnc2bHFZSHNqNThqOGJuL1JUSnIwRkpselJ3OE5aYmgzVHVyNkExbHlXZ216M2ZIdWEwdHdMdDJCUG5SU2FzQjlQZVBoYmhyVytXUyt4TmV1NkdDOFlUR1pIY2ZpUzg5Z3U5Ly92ZFZQQnZsWTBsSHA4YzdVSDE3Y0RUZlA2TWVxQkM5S2N5cVd3bUZtL1IwZ2JNY2tUTjlMTE5udm9uY1dIR0czWno5dXMrSmc4SytIYzMzTHlrOVdSQ0NqdVlQWWViR2lqVmpCV0U0ZXh5RmZSUWlQdE1GWDZISXZ6QURzU0E0SFEzM0ZwZHhOTnhiUENkYStJV2xucGF5WVU0ZHI3M21BSHI0SUVhcUMzdnRwWk1lTEZCZDcyYjM5Zlc4OGNJSVR4OGVwTDA1Z0xKSSt4UTlsU2FlenVJS0JuQzhCWHlTM2l6SXFvcC9VelBoVTEya0p5YnhOYTFEZGM5dFBXTHFCdHFVR0xuYzYzdE13eUExTWo1L1pHY3A2d3ZCRDE3cEIrQ0tEWlUwVkY4YU5aU3JnakN0QnMvQW1nM3FYSEtaSEpsRWhtd3FReTZkUXpkTSttTjVUa3hrR1NuWVEwZ1M5cXQyNDNqN0RUaHUyWTg4ejRPTWZmZDJBRVlUZVc1ckMzQm1Jb05oQ2pvbjBselY3T1hsdmdROW9TeGRrMWxhcXAyOFoxY1ZQejRkSVp6UytjOWpZVzV2QzlEZ1gzeDJvQ0pMdkwwdHdPTkhKc2srOVZQc2UzZmhmT2R0WlQwbnE4R1NCRlp1NEZIVUhYc3NJVFBOMGdDcytpQ3J1THQrZ2JYUFQwRjBlUGQ4cmZpM1FySDRVc2xQUEkyOTRaNDVLY0lDODRrU0kyMkpob0lyZkdHL1MwR1BkNkNGRDJJTDdzZXo0MHN6WHJOc0YrYjM3TXFQUElhcjlhRjVVNHY1a2NlS2RXNkYxMmN2azV0bVhYRWgwY0lIY1V5OUo5T1BkNkYwNnNYa3J2dTJjT1RGVVVLSkxDK2NHT1htblVzbzRCV21OZk1ta2NSZFU3Vm02WENaSUtzcXdmWld3bWU3bVRoeEdvZlBoN3UyQ29mZlYwd1JKWWRIRVp4N0NyOWNNVFdOeE1nNFFsdTVOOUtyWnlZWWkyWndxREozWG5NWlJxL1dLQm5UTklsUHhvbE5SREZOazd3aE9EbVo1Y1JFbHZSVXRFcXRyOEZ4OXdHYzc3b05wYmI2dk50VE5qUWhCd1BFdzFHY05wbjZDanVqaVR3bnh6SzgvNG9hdWlhelRLWTBudStPVWVPMTRYTXEvejk3Yng3ZDFuM2VlWC91QWx6c0pNRmRGRVZLMUw1NmlXVkhpaDF2a1pNbWNTS25hZDFNbFpNMmN6cEo4M1ptMm9rbjg4NDduWEU3YlhvNlRqdHRUcWZPZEpLM2IrTTBUbUxIYW16SGpwVjR0MlJibGlWVHRqYUtwTGp2QkxFRDkrSXU3eCtYZ0FBdUlraUNzaVRqY3c0UEJlQXV2L3NEaGZ2Rjh6eS83OE85MjZ0NXJUdEs1M2lLWjg2RXVMbkZ6L2JHMldVMU13bTRKRzVycStENWpqQ3hiMzBIZWNzRzVMV0xNOGU5M0JTVkJNMm1CL1BUWVpZZUo5M3pjRUhoKzFKSTl6eWNpd2laNmlqSnN3L21IanRYRldlS2FlbHhrdWNlbkpXdXkvcG16U1ZLTEQxT3F2T2hpOFgzMFhhU1ovL2J4V2pXRENFNWsxVG5RNmo5aFo1WG1kQ1IzR3JDdWNpRWpwRHFmS2pnZFQzYVhyQ1BPdndFNlo2SEM3WXgxZEdTelBWeVNKNzlid1h6cS9ZL2dqNXQ0WEFsVWJmS3k4MTMyMFdRTDc4N1RDeFovQTNKMURUaWc4TWt4eWF1K21qSEJ3VlJscWplMUlhcnFnbzFHbVdxOHdLang5OWw0c3g1eGs5MWtCZ2J6OXYycXZCVm5vV2VWb2tOakN4TFhLVTBuVitlc0UxRlA3cXRIcC83MnJPcktITnA5SXhPZENKQ05CUWxtdFo1WXpEQm8rOU5jV3dvU1RKajRyejVCaXIvNmtHQ2ozMFg3Ky84NW9MaUtvdnoraDBBakVRemJGOWwxN1FhcGtYN1VKeGIyd0tJZ2tER3NIaWhJNHhoV3NpaXdPM3JLN2hqUXlVT1NlU05uaGpQZDRUUjlJVmpqV3VyWFd4djlHQ3BLdEgvOHBkWTZTdDdWYmdRZWZPejVjWnRaUzVKMW93MXZ3NVA4cmJoMmZRZ2d1d2pkdnpBSmMxVkx6ZlJLWlZ2ZnUxbE5OVmdTM01WLytxTzlZcytoaUNLdUtxclVBTCtGUmhobVpVZ01UWkJyRy9vWXNScUJoVXR6WGhxcjhDaTdrdWd4Uk1rUnlkWXREblNESjU4czVlajU4WUllcDM4dS8wN0YweWRsN2xHc0N5U3NTU3h5UmlKZUpLb2F0QStrcUp6U3NXeVFIREl1RDc1TVR5Lzhla2xyODVML2N1enhCNTZtTTMxSHZhdUMvRDRPeE5FVWpxaUFKKy9ycGJ1eVRSdjlkbTlRTGRNYjVNbHFabTgwUk9sZXpLTlQ1RzRmWDBGRFlGTHB3eE55K0twOTBLTXh6TzRQbkhuRlYyUFZaVFJhSmtQT0VZQ1o5MCtSR2NRcGVsK2xLYjc3Y1VFb2hOdDdCQjZrWVgrbHd0bHVuRHkvTHVUVEVUVE5GUVZtbzhXaFdXaEoxTmtraWtrcC9PcWpYNThrSEI2UGJpQ0ZSaHBkWllsZ3lCSVZMUTBJVWhYejJLR1ZDaE1laUswN09NTVRpWjQ4dlVlQU83YjAwcGRFUTJkeTF6ZDZGcUc4SGlFOFlGeFlsTXh4cU5wM2hoSWNMZy9RU2hsSUxvVjNQZC9sb28vL1krNDdyNFZjUm4xcDZMSFErcW5QeWRqV0d4cjlPQVFCWHFuVkN4QTFTMXVidlV6RXRXSXF3WVRpUXhlUmFMR2EwZFFIWkxBMm1vWERRRW5JN0VNN1lNSmtobVR4b0J6M2k4QmdpRFFWS25RT1o1RzdlaEdyS3ZHc2VuS3FnZk9VaFpZWlJiRXlreGh4TTRpdXBzUm5jSGM4MnIvSTZnRDcxL2E4bEtzMlZESjhWZUhTU1V5ZEkvRXVMNnRHdWNTVmdwYWhvRVdpMk5rTXNpdWNtKzFLeDFSbG5GWEIzRlhWU0s3WE1odUYwckFUOFdhSmlUbDZxaXRzeXlMNU9nRVdqUldnbVBCRDEvcUpKck1zSzdPeDc1Rk5uUXVjL1ZnbWlhSmNKeUpvVWxDSXlIVVpKcXBwTTdyQXdtTzlDZVlTaHVJSGhlZUE1K240cysrZ2JMM0pvUTVGb1lzRnJFaVFQcVo1MG1GWTJ5b2M5TVFjTkF4bGlaaldJU1NPbXVETGpiVzJiWU51bWt4RU5ab3FsRHdLaGMvai8wdWlTMzFIb0plbWM3eEZPMkRDUlJacE5yam1MTjBVcEZGZ2g2WnJvazBtYU1uVUQ1eU0yS3djdG5YVW1yS0tjSXkxeXhuam8vemYvN2Nibm0wc2FtQ0EzZHRYTjRTYUVIQVZWbUJVaGtvQzYweUs0S3A2eVNHeHpHMHBhMFVuTWxiSGVQODdJMGVSRUhnRCs3ZFRtMkZxeVRITFhQbGtFNmtpWVZpSktNSnpHbkxpS2hxY0dJa1JXZkkvanNTSERMdSt6K0w5N2MvaCtCYnVLQjhzY1QreC84aTliUG4yTHN1d0paNkQyZEdreHp1dGsxd202c1U3dGxjeFVoVTQrZW5RMWdXdUIwaTkrNm94cS9NL2FWM09LcHhlaVJKTEcyd3M4bkwybXJYbkovZEp3Yml2TjBmUjFyZFNQQWYvNllrZ3JHVWxDTllaYTVaYWh1OVRJNm1HT3FOTVJsVGNUdGttbXVYdCtwUlQ2ZlJZbkZFVWJ4cUlpSmxyZzcwVkpyNDBDaW12dlJpOW55U3FzNC92M2dlM2JEWXM3bVdYVzNGRlMyWHVmTFJNenJSeVNqai9lTkVKeU5vYVEzTHNvaXFCbThPSm5rdG13cGt1bnJQTkJHOEhsd2YvZkRLTkUwMlROVG5YMFVVb0szR1RiVlh6a1d4b21tRFZSVk9HZ0pPUEE2UnZpa1YzYlFZREd1c3IzWFBtUXIwS3hMcnFsMnNxM0VUVHVxY0g3Yzl0WHlLaEp5M2ZXUEF5VlJLSnpRYXhoZ1l4blhuUjBwL2JjdWdMTERLWE5PczJ4cmsyRXVEYUdtRHJ1RW9yUTErcW56TEZFYVdSU2FaUWtza0VHVVp5Vmxla1ZWbWVhamhLSW14aWFLTUtJdmw1Mi8xMFRjZXgrZVMrY0lkRzVHbGN0VDFhc1kwTFJMaEJLR1JTU2FHSmtrblVybUlWVnd6ZVdzb3lhdDljU1pUQnFJQXE1MENPOTBTUVZrZ2dVQ3FkeEQxaGNNb2V6NkVXT0xGTzFKdE5hbEhENUpJNit4YzVVTVVCQnlTUU4rVUhVRUxwM1EyMVh1bzhUbnNadER4REduZFpEeWVvYTNHTmEvenZpUUtCTDBPVmxjcVZIa2NSTk02aG1XbkNMT3NxVkxvQzJ2RU8zb1FxeXB3Yk5sUTBtdGJEbVdCVmVhYXhxbElORFQ3T1A3cUVCWndmakRDOXRZZ0x1ZnlpNTB0d3lRVFQ1QkpwbXloNVNnTHJUS0x3N0lza21NVHFKRm9TUjI4KzhialBQMW1Md0QzN2w3RDZtVkdic3U4VDFpUVNxUUlqNGFaSEJ3bkVZbWpheGRiNlNRekptOFBKM201Tjg1NDBuNit5U0d3d3kxUkp3dElBcmhGZ1NaRlF2QTZDWTJGMFY0NmduTDdIa1IvNlZLRmdzTkI1dmk3WklaR1dWWGh4SzlJQkwwT3VpZlRxTHBKUWpNSnVDV0NIZ2RORlFwVFNaMXdTaWVtR29SVEJtdURyZ1Z0NmdRQlBFNnBRRndCaUlKQWM2VkNaMGdqOWNZSmxGdHZ1V0xxc1lvV1dISmdGNTdOZjRLcjVjdEkvaTFrSmw1YTJaRXRBbGZyVi9Gcy9IOHdZbWRMYnNUcDIvVWRYQzFmWHBGamkwbzkvaHQvY01uNVZCcnZ3N3YxbTFmY25DK1Y3UFdzeEh6T1IyMmpsM1JLcDNmYWErWDhVSlJkNjRJNFN2U04zaklNTXZFRWVpcHQ5MGR6bEZjY2xsa1lROU9JRDQ5aXBFcnI1V09ZRmo5NDRUenh0RTV6dFlkUDN0SjZSZlMySzFNOFdsb2pNaDVodkgrY1dDaWFTd0ZtU2VzV0owWlN2TlFiWnpSaHQ0QnFkQWhzZDBzME9BVGt2RGRjZGtxc1hsZEpXNTJIdUdZd01SNURmN3NkMXlmdVFpamg2bWd6R2tNN2VnSzNRNlNwVWtFUXdPc1U2WjYwLzc3SDR6cGJHanhJb2tCcnRjSkVRaWVhTmdpbmRKS2FRVXR3NmZXQlRsbWt6aWR6Zml4RjV2aTd1RDU1ZDBtdmJha1VmWWRSbWc4c3lsMjl6TFdMSE5oRllQZkJlWnQvWi9Gc2ZwREE3b01MbXJaZURqNzVyemJSc3NIK1ZqTWVTZkhQTDNTU0tjTFliakhvNlRUeG9SRmlBOE5ra3FtU0hydk10WVVXalJIckg4YlVTbE52bGM5cnAwWVlEYWNRQkxqM3cydkw0dW9xUWRkMHdtTmhCam9HR0R3L1FHUWlqR0VVOXMvVURJdmp3MGwrZkdxS2s2TjJXeG9CTzBxMXlTWGlubkZIZHlveVRlc3FrYWNqOWg5WkY2REc2eURUMVV2aUgzNVEwdkVyZCt3Rm9IZnE0Z0tOMXFDTGVyOGQyVTlvQmljSDdiNmdvaUJ3VjE2Ym5ITmpxVnhSL0ZKcDhEdjV5Rm8vZWs4LzhiLzk3cktPVlNxS0ZsalpsaWlwem9kSW5uMXdwY1pUWmdicThCTkVqKzR2ei9reWtSMGl2L09OR3doVTJmVlhQV014SG5uaGZNbEZGb0NocWlTR1I0bjJENkhGRS9aYStUSmxzQnNESjBZblNJNVBzbHp6MExtWWpLbThlSElJZ04zcmEyZ01sajJ2cm1UMGpFRjBJc0pRNXlEOTUvcVlHZzJSVVdjM3NzNllGdTJqS1g1OGFvb1RJN2JkUVkwc2NKTlhwTjRoa0RRdHV0WEN6ekxGN1dEVnVrcWt2SlNhS0FqY3R0N3VLWmg2N0VuMG52NlNYWXRVWDR0ajYwWWlLWjFROHFJdzNOMXlzZDZyZlNoQlRMVzdaTWlpd0QyYnExaGRhWDhtNTY4OFhDcWI2dHhzYWZLVGV2STV0Q1BIbG5Xc1VsQlVEQzAvVXVGZS93Q082UlkwdmwzZlFWVHFTWno2T3U3MUR3QVhHejg3Ni9iaGJMd3ZGL1V5MVZHMDRTZlF4ZzdsanVYWi9DQnlZQmZKc3cvaVd2dFZSS1VlVXgwbDFma1FrcmN0MTZqWlNIUVZ0TlNaRDlGVmoyZVZmVXlZOW1uS2E1aXNOQjhvY0NNSDhOL3dDSUxzSTNuMlFmUm9lekhUZ1J6WWhYUFYvdHg1WnA0clN6RnpNSk5zOCtmc05XZWJiR2ZiL3VUUFcrTFUxM1BOb2NGdU81Ui83T3djU3Q2MlhHc2pwZm1Md0tVYmREdnI5cUdzdnRqNFdoczdoRGJkQjlGT0ZUK1kyemF3KytDczgrYVBFZXpvcDZOdVg4RTVCZGxyL3kxTk43R2VPWCtDN0VOWmZhQ2d0K1JjYzd3WUFsVUt2L09ORy9qNy8zcVVqR2JRUFJMbDBaYzcrYTJQcnNjaGw3NEEyTlEwa3FQanBHUVpKZUJIcWZDWDdSMCt3T2lxU21KMFlsa3RieTZGQlR6NVJnKzZZZUpWNUxMbjFSV0tvUnNrSWduaWtUanBSUHFTRVViRHREZzdvZkxPYUlyMDlKZkJvQ3pRcGdqNHAxZlRiVklFWW9aQm4yWlJKVmxVeXdKdW41T0dOUUdFT1Zib0JUMHlyVUVYUGFFMHlVY2VKL0RIZjFpeWExUHUvQWlaMHgzMGh0SUVQZmI5bzk3dnBLM0dSZGRFR3NPMGVQMUNsSDJicXdCYlpPM2JYTWxMNXlOMFQ2WTVNMm8zWnQrekxyRGt5T3VIbXoyTXBFeWlELzA5d1IvOEhZTDMvZnVTVVpKUGU4K21Cd3ZTaDByamZiaGF2MXJ3bktqVTQycjk2cXdHeGdEdTlWL1BiU3NxOWJqWFA1QVRWMENCMkxvVXl1b0RCYUludjJGeVZqeEozcmJjdVNSdkc0THN3OUxqUllzcnlkdFdJQjd5ejVYZkNIbXhjNUIvblZtUnVaQ2dkSzkvSUNldXdLNUZ5d29XVWFuSHMrbkIzT3VDN01POS9nRUU2ZEtGalZtQmw5L0UyVm0zRDgvbVA3bmtmb3NsZjZ4d3NSMVBkcXplYmQrYTFiaGJhVDZRRS9KTHBXVkRKVjk2NEhwRXlmN3YyekVZNFI5L2VZNlVxaSt3NTlLeGRKMTBhSXJJaFg0U294UG9KYTY1S1hQbGt3NkZsOTFQY0NIZTZacWdhOWlPQVB6YWg1cFJIRmVQYS8yMWpxRWJSQ2VqakZ3WXB2ZE1MNU5ERTZpWEVGZW1CV2NuMHZ6a2RKZzNCaE9rZFpPZ0pQQWhqOGgxYmpFbnJnQWtBWGE0SlNRQlRxZE5KSitUaHBhNXhWV1dEYlYydlpQNi9LdFlpV1RKcmxPNTAwNFRkbzRYZnNidGJ2SGptUDdNN1p0UzZjOUxJNHFDd0IwYkt0bldhQXVoTTZOSlh1Z0lZeTR4OGk4S0F2dGFQUWlSS0ludlBicWtZNVNLb2dSVzlPaitYRUZ5OHV5RHM5SlZScktMMlBFRHhOdS9Za2NlcGdXRTJ2OEkwYVA3aVI3ZG4ydFVyT1JGZExKb3d3Y0wwbUNpVWsrNjUrR0MvZktGeEh5WTZpang5cS9NT3A4Zyt6QVNYYmxyY0FUdFA0S3NTRnBNMCtLczBNdUVqdVN1TFhuMlFTdzlqdVJ0czF2SUxHRU9zb0lvMjRTNm1BSndVeDNKSFRzcnhzVHBlWEpNajhOSTJPOU45T2grdExGREJjSnBMcVM4NkYvK3NVV2xIam13cXlDU0J1U09PNVA4aUtEYS84aXNpSmxsSkdhOVYxTEZUZ0NjdGZzUWxYcjBhSHR1N0tuT2grenJDdTRwNm0vaFVteTVvWmI3ZjM5SGJtbHczM2ljZi9qRkdVS3gwcGc3em85RkpoNG5QalJDdEhlQVZDaU1vYzFPQjVTNWRqQXpPckdCWWRKVFlZUVZTQWxtU2FvNnp4NnowejJ0dGQ2eTU5VVZnSzdwUkNZaURIY041VVJWS3A2NlpHVEd0T0I4U09YeE0yRU85OXR0WTZva2dlczlJdGQ1UkFMUzNIdDdSTmp1RXRFdGVDOWh3QUx4bjFVVmRoRzZsZEZSMzNoNzZSYzVBNm0rRm5sVEc1RzB6bmo4NHBjSnIxUGl1cWFMOTU0alBWRjA4K0wvQjBHQUQ3Y0crTWk2QUtJQUZ5YlRQSHQ2Q3MxWTJ2OFp2eUt4cDlsTjZ2R25NZm9IbDM1Qnk2UWtFU3h0NkdDdTJXODJLbUVrdWdyU09lcndFMlNtZTlabEJVNldUT2d3UUVFVUtYdlR6cjVXREhyb1NFNllxTU5QNU1Za2Vkb0tqcFVWSWRuZmVwSG5FSlg2Z25SYzdyelJkclJoTzQwcUJYWXRlZzRFYVRxNkpQdlFoZzh1R0xuS0hhLy9ZcHVhYkQ5QVFiTC9pTFBpVWN1YmgyTGEycVE2SDdKRnovQVRTTjYybkVBdE5abXhRN24zYXVaN25IMWYxUDVIY21QUGhJN2s1bTVtOUhBcGZPajJKcjd3YjNmbVJOWjRKTTNEUHovTitjSElzbzlkREthdW8wNkZpZlVQRWUwYkpEVTVoYTZ1dE1BcmN6bFJJekdpL1VNWWwrRjlmZlpZUDBsVlJ4UUVQck5uN1lxZnI4emNhR21OcWRFcEJqb0c2RC9YUjJoNGtuVHkwbWxBc05PN25TR1Z4ODlFZUtVM1RrdzFDRWdDMTNsRXJ2ZUlWTTBqclBKWjMraGxkNnVmNGFqR3NmNUx0MWx5U0FJVkxydENLTk4rdXNpckt3N1gzYmNCMERWUnVOQm54eXBQN3B5eHRNR0pnZmlzZlRmWGUvalV0bXJjRHBIaHFNYlQ3MDNtYXJZV3k4WmFOdzFWTHBJbEx1WmZEQ1ZaeDJpcUk3bC9aMi93YzRrRU05RUZlV21oVWpQem5OUXYxWUFBQUNBQVNVUkJWSmFSUUpCOUNMS2RGdE5EUjFBYTcwTU8ySkdTN085aUkxaWkwZ0RZa2JMc2pYL211UVhadStnNXlJL0lPQnYzbzQwZm1uWDh1YmpVTmxsUlpPbUpndTBYaW96bDEyMkJMUjR0UFE0bFhrRjZLUkdaZmIveVU2NHJ3WTIzclVLU0JQNzViOXN4REl1VXB2UDlGenE0ZmNjcTd0aTFDbkVoWTVZU1lXWXlxT0VJYWppQ0lFbzR2RzVranh1SHgxMnUyYm9LTWJRTXlmRkpqUFRsU1FWM0RrYzUwVFVCd040dGRZdHZiRjVteVppbVJUcVJJaFZMa1lnbU1ES0xMelhvaldpOE9aZ2lObDJtNEpjRTFqa0ZxdVhpUDM5cUduMEVxdDFVQVFuVnBIMHdRWjNQY1VuckE3OUxJcHpTTWJwN0Z6M21TK0c2NTNiaTMvays1OGZUM0xUR24zTnFGd1dCVzlzQ1BIM0tibUIrY2lqQnVtb1gxZDVDLzhBNnY0UDdkdFh3MHZrd2d4R05mems1eVYwYksxbFZzWGdIK2x1YlBUeit5aHQ0Qm9hUlZqY3UvK0lXU2NtTklpeGpPbW8wUnhwSFhHWnFaeUVrYjF0QkZDeGJiNVFWRlVhaUMwdVBJOGkrWENvdkV6cFNsSml4ajJNTFNWR3B6OVZ1NVo4YmJFR3psRG5ReGc3bHh1U3MzYmVzWW01N0hMWW95b29Wc0VWWGRpSEJmR1RGVmVMVTEzTWlhR2F0MStVaWR2eEEwZS9OVXJsdWJ5UCtTb1YvL0IvSFNjWXpXQmE4ZUhLSWpxRUluLy9JT21vQ2w3ZDNtMlhhemFXMVdCd0xrQlhGRmx0dUY1SkxtZGZ4dU15VlFYb3FRam9VWmlWV0NNNUZSamY1MmVzOUFGUjRITnh4M2VyTGN0NFBNcnFtazR3bVNjYVRwR01wckNXKzF3UFJETWRHVWt3bUN1dnlLaVdLRmxlQ0lGQzMybyszNG1KM2lsdGEvYVIxazVjNkk5eTdYYWJLTS9kdFBtdllhWTJNTFduODh5RldWNkhjY2lQcTRhUDBoRlRhYWk1K2hqWUVuR3l1OTNCMk5JbGx3YXRkVVQ2em8zcVd5YWpiSWZLSnJVSGVHMDV3ckMvT3M2ZEQ3Rzd4czJQVjRzeFJBeTZKRFkxKytoODlpTytCM3kvRjVTMktrbjg5enFaeHN1bWxMRXJqZmJuVTJXTFNmb3ZCVWJjdlY5dVVUVzNOak5wbzQzYnEwVGs5TnJQSWRCellRaTByT3ZLTDd1WEFMcHlOK3dFd291MkxuZ005Mms2NjUrSGNmcVh3SE1zS1RXZGVpazlaUFhkeGZUNFhoZUxGbEs5akJhT09jMkZFN0lpaWUvM1hjMk9YQTd2dzMvQUlnZDBIWnhXL0w1ZTJiVUgrL1YvdW9UNnZSbUJ3SXNIZlBYV0tGMDhPb1J1bHQzSW9CZ0hiOGtHZENoTWZHaUhTM1Vkc2FKVDBWQVE5clJZWUQ1WjVmOUhUYWFMOVE2UkRVMXd1Y1FYd2ZQc2dVM0U3QmZuSm0xcHdyc0JxMkE4NnBtbVJpcVdZSEpwazRGdy8vZWY2bUJ5ZUlCVkxMa2xjRGNVeVBIVSt4bk5kVVNZVEdieVNRSnNpNW03Ry9acEZTRi80dUtJbzBOaGFVU0N1c255MHJZSTFWUXJQblowaWxabjc4OHVZcm9FeTU3Q0ZXQzZ1VDkwTndOblIyUVgwTjdmNDhUanRxNTFJWkhodk9ERnJteXpiRzczczMxVkRRNFdUTjN0alBIZG0vdXVaanh2cm5HaS9lbVZGRjVqTVIra2pXSG9jdGYrUjNBcSttU3ZtMU9ubC9pdUJJSG54N2ZwT3dYUGE4TUdDS0VoV1VHVUZ6R0xGWHJyblliemJ2bVVManhsR20wYWlLMWM3VnN3Y3pCUlJhdi8zYzJMRzJYaGZRWjNYWXNtTUhVSnB2QS9KMjRiL2hvdTFWd3RGaEl4RUY1SzNyV0FlWjQ0MUc2R0QrVzBhN0hQWi8zSG1zbW00Rk5yNElSeDErM0tpYXViNExtVnpzVlJxR2p6ODRVTjdPUGk5MDd6NS9BQUF1bUh5L0R1RG5PaWE0Sk0zcldIVDZ2ZTcvWUtGa1VwaHBMSzFEUUtTUzBGMktjaHVGN0pMS2FjVUx6T21icENhREpHSnozK1RXQ21HUWttT25MWS9TemMwQnRqYVVuWFp4M0F0WWxrV2FsSWxHVXVpSnRLa2t5cWxFTTNEOFF6dmpLWVppdHFDeGkzYXFjQTZoNEFBU0loMFRIdFpuVXFiM095VmNNNFR5SklkSWcydGxUaVZ1VmVLQ2dMY3ZyNlN3eGVpL1BMc0ZMKzJMVmpRSkJtNHVFclBMUDBYU09VanU1RnFxeGtlbjJReWtTbElBem9rZ2Izckt2amwyU2tBM3U2UHM2WktvY0k5dHh5cGNFbDhjbXVRcm9rMFIzdGovUFNkQ1c1YmJ3dklZdkE0UmVxREh1S0gzMEs1L2ZJR0MxYmswMWdkZm9KMHo4TUZRc3BVUjBuM1BGeFFtRjN5OHc0OFVsRGJNNWR2VW41S01IOWxZYkVZaWE0NVBiUFUva2NLL0xXV01nZW1PcHA3elRrdE1KYUtxWTZTUFB0Z2JqNnlxeE1YSXQ5dmJPWXhuS3VtbzNTSnJseTA3VkpreG9xckpadUpwY2RKblByNnJQZE9IWDZpWUk1TGpWT1IrTTNmMzhFWC84TjF1UFBxV0VJeGxVZGVPTS8zRHAxbGNQTHkzMGpueDhKSXAxSERFUkxEbzRRdjlCSHRIeUk1Tm9rV2paVlhLSzRnbG1XUm5vb1E3UnQ4WDhTVmFWbjh5NUVMbUphRkpBcDgrcGJXeXo2R2F3YkxJcDFJTXpVNnhYRDNNRDN2OVREY1BVUmtQRXc2bVdhNTRtb3NvWFBvUXB4bnprY1ppbXE0UllFdExwRmJwazFDczdKbnRWT2czbUUveWxod0ttWE9lV2JGTGRQVVZqV3Z1TW9pQ0xaeis1cWdpMStkbTIxN2tNN1lqd1gvQ3ZTcEZFVmNuN2tIZ0hlSFprZXhXcW9VTnRYWm43RzZhZkZ5WndSemdXbHVxM0h4K2V0cjJMN0t3MHZudzd6VUdTazZtclhUWjJJY2VtbFJsMUFLaE1pYm4vMUE1Um15SGt1aVVyOXM0OG9yR2UrMmJ5RjUyMUNIbnlnUWJWa1QwNVVVS3RjQzcybXJlUFRSQVZKUFBqZnJ0VjFycTduNytpYXFmTVY5ZzNwZkVVUmtseE5Kc1NOZGt1SkV2QUo2ZEYzTnFORTQ2YWt3bHI1eTNta0w4ZHJwRVg0eGJjdHc1ODVWM0hsZDAvczJscXNOWGROUlUyb3VPcVdsMUNYWFVWMkt5WlRPaVRHVjNwQzkyTUV0Q3JRNkJScnlSTlZNREF1T0pVMFMwMnBqblNMU21oZkc4dmlkMURkZjJ1TnFMb1lpR2oyaE5MdGIvTGxJMWlOdmphSHFKczdyZDFENWQzKysrQXRjQUhNcXd1Ujl2NHVReWZBYjE5ZmlteUVJTTRiRndaTVRSTlAyS3NFYm0zMWN2N280c2FmcEp1OE5KK21jU0xHOTBjdVdlczhsbTBXYkZ2eXdJMG5nWjkrSHl4amxMN3JaODdXQVovT0R1S2ROTkMwOVR1ckN0OEc4TnIvbGk3SVB1V0lYc244TFN0UDlLRTMzSTFmZUJJQTI5T09pclNBK3FFUThOWFRkL1FXY0g3NFJvM2NBYzNRODk5cG9PTVhSYzJPa05ZT21hdStLdU1DWERndFQxekhTS3BsNEFqVVNSWTFFeWFUU21Gb0d5elFSQkFGQktwdFNMb1FXVDVJWUdTTVRpNjlJV3FWWXdnbU5SMS91eERRdC9FNlIyNXJjNkdvRzB6U1JaQW14bkNiT1lSb21hakpOUEp3Z01oRWhORHhKZUR4TUlwSkFUYWtZS3lDU3h4STZid3luZWFNL1RpU2w0eFlGTmlnaW0xMGlmbWwrY1FVZ0NyWlQrNGh1WVFKaHc2SktGbkNKQXBXMUhtcWIvRXRhNk9KM1NUUldPQWtuZFR4T0NWVTNPVDV0aytDOCtYcVV2YnVYZHJHWFFIQzdNQ2RDWk01MG9wdk1TdWxKb2tDZDMwbkh1RjN5TUJyVFdGT2w0SEV1L0Zra2lRS05GVTQyMVh1WVN1cWNHa2tpaXdJQjE5eGZIZ1VCaGxNVzZRMGJrQnJybG45eFJmS0JFbGlPbXRzUmxZYnBkTm0zTUZPbDY4TjBwV0hFejJCbHBwQjhXeEJFZTNtcnFZNmlEanl5SWpWTTF4b2h1WW96N3ZWSXRkVzRQM1UzOHNaMTZPZTZzS0sydjR4bFFmOTRuTGZPajJPYUZxdXF2Ym5seUZjOGxvV1ZGVjJKSkdva1Jqb2NKWk5JWXFnYXBxNkRaU0ZJNGdkKzFhSmxXV1RpQ1JLakUyalJLTmI3S0t5eVBQWmFOMk5oKzZaMFI2c2Z2ME5BUzZza283YUlpRS9GMFpJcVJzWUFBV1JaNHBKZjc2OFJkRTBublVpVGlDU0lUa1FJalV3UkdnMFJEOGRKSjFKazFBeldRbm1vWlRDVzBEa3luT2F0Z1RqaGxJNUxoTFpwWVJWWVFGamw0eEFnSUFtTVp1eTQycFJoc2FPMWdtRHQ4bHEraUlLUUV5K2pVWTNPaWVuSTJtYytqbVB6K21VZGV6N2t0V3RJUC9FTWszR045VFh1M01yRkxGNm5oQUFNUnpVc1lDU2FZV09kdTJpTEhGRVFxUEU1YUEyNlNPc1dJOUVNbG1YTktkSXNUV01vYVNMdnVha0VWMVljSDdnVVlaa3l4WEJlV2N0UHF6NWUrS1Joa0hyeUVJbnYvak5tdUxBcHFjL2w0UGFkamR5MHNlN3FFVnBGSUVnU2t0T0o2SFFnT1IxSUR2dEhrSy90aUpkbG1xaVJHR29raW1Vc3plaHdKVGpWTzhXakwzY0MwRnJoNUs1MS9nWDJBQkJ3S2c0Y2JpZE8xL1NQNGtSMnlBc1pmbDl4bUlhSnJ1bGt0QXdaMWY3UjBocTZaa2Z3M2crR1lobE9UbWdNaGkvNm5ybEV1Tmtyc1p6L0pZTVppM05wKzVxYXF4VHUyVnk2UlF6SCt1SzhNMmhIc0lMLy9MK1FXNXRMZHV5WnhMLzlYWkkvZnBLV0tvV1B6WEVObGdXL09CTmlNR0pua3piVnVibTFyV0xKNXpNdGU0V2tZNFk1YXpwajhzU1FoZSt4N3kzNTJJdWxYSXhScGt5eFNCTHUvWi9BOWZFN1NEMytOSW52UDRhVnRDTUo4WFNHcDQvMjhkcXBFZTY4cm9ucjFsVmZOcVBTbGNReURQUlVDbEtGcnN3SUlwTERZUXN2aDR6b2RDREtNcEpEdm1yVGpaWnBvcWZTYUxFRW1VU1N5Mm0zVUF4cXh1RG5iL1VCNEJBRlB0eGNyQ2VRaGFacWFLcEdZVG0rTGJ4a3hZSERLU003N0IvSklTTTdaU1JKdXF3Q3pEUXRUTjFBMTNYTWpJR2UwZTBmVGMvOTI5Q3ZETEZyQVQxaGpmY21OY2FpdGsyR1M3UnJxRElXcEUzb1ZVM1dLVXRQMTI1cDhDQ25UVTZOSk9tZlVqa3hFQys2Um1raGhxZFhNa29OZFNzcXJnQThYL3BOMGovL0ZiMVRTWHBENlZubXA0SUFkMnlvNU9ESlNSS2F3Ym14RkkwQkordHJsMmFZS3dya2VzM200M0tJU0trNDVsUUVzV3JwQW00eGxBVldtVEtMUkhDNzhCejRkZHo3UDBIeVJ6OGorZU9mNVlSV09LSHh4T0VMdlByZUNIZnNXc1dPbHVDMW1aMnhUQXhOeGRCVVpydkxDSWhPR1ZHV0VSME9SRm15L3kxSkNMSmsvNzRDNm9RczNVQlhWWFJWdzBpbHlhVFZGZTBYdUZ4K2VXS1FhTksrTWQ3UTZNSGpXTzRjWGhSZWM3OEtraVFoeVJLU0pOcnZveWdpaUFLaUpDS0tRa0c5bHlDSk9UMW1XUlNrVXczRHhMSXNMTlBDTWt4TTA4VEkvdGFOM0hOWE9vWmxjWDVTNWRTa1JqaHAvK1Y3UldoVlJPcGtnWmhoOFhiU1h2M1hxMWxVeVZaUmJXN3k4UVlVZ3ZWZUhJcEVOWkRLbUhSUHBubTdQMDZOejBGejVmSVcxNlF5Sm1NeCt6Mi9ITFlGWXNDUDd3LytOZEcvK0RhSEwwUnBDRGhucFFwZERwRzdOMVh5OUtrUWhtbHgrRUtVV3IrVENsZHB2NncxZWtSR2o1NUF1ZWYya2g1M1Bzb3B3akpsNW1ET0ZPRThXUEVFaWU4L1J1cnhwN0ZtM0t4cUs5elh0dEJhS3NMMERWdVdFS1lGbHlDSjlnMWJsQkFsY2JvR1RNeUpNVUdhL2xBV2hIbHJ3eXpMc212TURCUExNdTBidDJGaUdRYW1ydHMvR1IxRHk0QjE1ZC9Rc3d4TkpuajRtZE5ZRmdUZE1wL1pWTUUxbEltKzRrbnBKbWNuTk01T3BrbHFkaFROSndxMEtBSjFjbUY5Vlo5bTBUbnRaK1VVN0ZTaG80ajN5bGZwb3JMR2pYTkdvYlpwV1R4M1pvckJpSVlpaTN4bVJ6V0JaUWlQTTZOSkRuZmJKUTdCLys5dmtEZXNXL0t4aXNheUNQLzcvNHAyckozV29JdTdOODN0S1hoK1BNWExuWFkvMktCSDV0NGQxYlA4dTVaRDUzaUtFODFiVVA3c1A1ZnNtSmVpTExES2xKbUR4UWlzTEdZMFJ1cXhwMGc5OWhSbXJEQVpVeFphcGNjaWUyTzd0ai9DRE5QaWZ6OXptcUdRN1NmMDZZMFYxSG5MeVlmTFFTaGxjR284VGRlVW1uTStEMGdDTFU2QjJrdTBzM2t2WlRJMjdjWmVMUXZzY3M4ZGJSUkVnVUNWaTRvYUQvSWxJcEladytLWjB5SEc0eGtxM2Jid2NDNHlNcGJsMmROMnZaTmoyeWFxL21GaGI4UlNZWTVOTVBYRlA4Q0lKYmlsTmNEMnhybUw5dC9xaTlFK2FIOSt0dFc0dUdORDZReWVZMm1EZituVnFIaHE1Znc0ODdscVZoRXFqZmZoM2ZwTnJNelVWV2t4RU5oOUVFZk5IV2lqVDc5dlkvRHQrZzZ1bGk5anhNNnVtSnYrdFVKMkZlRmlFQlFGNXcwN2NIL3VVNGdCSC9yNUMxaHB1ejRqcWVxYzZwM2l2ZDRwRklkSWZaWDdBNzlDYjdsOFVHYnYwTnNEbk9xelhhODNWYnZZVW50NSsyTiswREF0Nkl0cXZENlE1SzJoQkpNcEhjdXloZElXbDhnNlJjUzdRRlNsV2hhWTBDMHlGcVJNa0FTQmlqeEI1SEJLVk5WNXFXc080QTBvYzlZTTVTT0pBdXRxM0F4Rk5FSkpuY21FVGx1TmU5RmYxbUpwZzlkNzdKWFEvbi83WmVTMWF4WjNnR1VnZUQzSTY5ZVNQdlF5ZzJHVmVyOWpUbHVGcGdxRnFaUk9PS1V6bGRTUlJJR0d3T0liUGMrRklvdTgweGRGK2RRK0JNL0tOMFYvL3dzaHlseDF5SUZkQkhZZkpEQ2pWVkFaRzhIdHd2TmIrNmsrK0kvNEgvajlnaTd1NDVFVVB6MThnZjk1OEYyT2Rvemx2aFdYS1RNWFp3ZkN2SGJhYmpMdmtnVnVhbHJlVXYweTg1UE1tSndZU2ZHVDAyRisxUjFqS0tZaEFBME9nZDFla1YxdWtjb2lvMGFTQUR2Y0V0a2dWNWRxRWpVczNENG5EUzBWTkc4TVVsSHRSbHhFK3NzcENkeXp1WW9hcjRPQnNNcnJQZEdGZDVyQjJURTdDaXEzTnFQY3ZuZlIreThYNXkwMzR2dktGN0dBWDNXRUNTWG45aUc3ZlgwRmpkT2k2bGhmalA0cHRXUmpDSG9kWk40OVU3TGpYWXF5d0NwVFpvVVFIREx1ejM2YzZrZS9ROFgvK0dNYzEyL1B2VFlWVjNueWpWNGUrbWs3cjUwZVFjMWNHYXVqeWx3NVRNWlVIbit0Ty9kNGQ1TVhaWWxwb1RMek14akw4S3NMTVg1MGFvcmp3MGtTbXBHTGpxNVRSTGE2Ukh4THFBUHlpTEREYlJmK1c4QTVRNkM2T1lESHYvUm9qTXNoOG12YmdqUldPRGs5a3J4a28rU1o2S2JGdVZGN01ZN25kKzduL1NyaTh4ejRkVnlmdXR0T2U1NEtFVW5QL3V5VFJJR1BiYTZpMnV2QUFsNDhIeWFjS28wcGJLMGlZTDdkdnZDR0phRG9STDdrYmNQWmVGK3VHVEhZdmVIeW15bEwzamFVNWdPNUhucDJiNzN2NS9yV3lZRmRlRFkvbUd2ZGttMkNyRWZiU1Y4bzdOdW5OQjlBYWJ3UHNQc0htdXJJbkdPNjFQbXlyV0hVL2tkQTlxSk1OMUNleTJoVFZPcFJtcitZdXo1VEhVVWJmcUpnMjhEdWcralJkakpqaDNCTk84S2I2aWpwQ3c4WDlDYVVBN3RRbWc4Z2VkdXc5SGhSVFpzdk5WWkhjQTlLOHhkekRaZjFhRHRxLzhXK2kzUHRtNTIzZE0vRGMvWURGR1FmdnAwUEk4ZytVcDBQNWVaTWFid1BwZmtBZXJTZDVOa0haKzJYZlEvejV5UTdUbEdweDlsNEg4NjZmYm5YdGJGRGFDdlk0UHVxUUJSUTl0NkVzdmNtOVBQZEpCLzlHZXJ6cjJEcEJ2RlVobDhjNitmRjlpRnUybGpMbmkzMUJEeWxDWWVYdVhyUmRKTWZ2blNldEhieDVsTmZycnNxR1JIVm9ET2swaGxTaVdzWEZ6dTRSQWlJUXE1K3FrY3pxWlVsUEVzSVJiZzhEallGWFhqU0pvY3ZSSW1wQmkrZkQ4L3BCYlVZbkpMQXh6ZFg4VXBYaERkNllyZ2NJdXRyRms1M2RZeWxTT3NtOHRvMXVPNzh5TExHc0Z3QzMvaS9zS2FpcEE4ZjVabFRJVDZ4dFlyS0djMmVuWkxBSjdaVThmUFRJYWFTT3I4NE04Vm5kbFRqWHVicTJhQlhwdXZFZThzNlJyRVVWWU1sS3ZWNHQzd1R5ZHRXOEx6czM0SWMyRVZtL0JDU3QyMjZ4MTlEN25WQjl1RUk3Z1V6Z3hFL2c2ZzAyRzdxcm9ZQ29TWXFEVWorTFdUR2JUSGpYdjlBd1UxYWNqY2orN2NBb0llUFlTUzZpanFmNUcxRHJyekovbDJ4cTJEL21YaTMvMVh1SE5sanlaVTNGZFI4S1UzM0F3TE91bjA1ZDNSQjl1R291UjF0OU9kZ2F2YTR0bjRUMFJtMFh4ZWQ5cGdBeTBqTVc0TTEzMWpsd0M1Y2EyMHhsejlmenJwOTZPRmp0bHY3SFB2bTVtMzYvUUZ3Tm53S1FmYVJtWGdKTTlXUDVGMlA1RzdHMGhQbzRXTzViU1IzTTVteFgyTEVaNGRScys5aFBucjRHS1k2aW5mclh4U2NQM3RkanByYjBVTkhzSXdycVZIeXBWbEtEVll4aU5WVktCLzlNTzU3NzBId3VESDZoN0NTS1F6VG9tODh6aHRueDVpSXBxbjJLL2pjam9VUFdPYWF3N0xnSjY5MjBUTnExOHBrNjJ3Y29zQXFmL2x2WXFsRVZZT09rTXFiQTBtT0RTVVppZXRvaGkya0tpV0JEUzZSVFM2N0FiTnFRY3kwSTA5aEF4cWR4VG14aTVKSUlPaWlkbldBeWxvUFRwZE1yYzlCeHJBWWkyZUlwQTFFa1dYWEZJbUN3TnBxRjVJb2NMUTNScFhYTVV1ZzVHTmE4R0puQkUwM0NUejRId3JLRnQ0WEJBSGw5ajBZNXkrUTZobWdleUxONmtvRnQ3TlFQTW1Td0xwcUYvMWhsV2phWURpaTBWYmpYcGFaczJuQnFjNHh2QWMrditKOUNZczZ1aU80RjBIMm9mWS9RdlRvZnFKSDl4TTdmaUFuZExMUkxiQ2pXdGx0c28yVW5ZMzdDMCtxMUpNOCt5RFJvL3RKZGRxckdDUnZHNExzczIvSTArSXIxZmtRMGFQN1NaejYrcXdvekdMT2w0M1NSSS91bnpONkpYbmJFSlY2VEhXVTJQRURCZU9TZzRVK0lka20wZEdqKzRtM2Z5VTNMam13czJCY2VyUTlkNnpGdEthWk9kYnN0V1NmaXgwL2tJdVdaYytWdjI5MlhyUFJwL3o1bklreGZaejgxN1BYa1IrUnkyZG1aQ3QvbktKU2o1SG9JdDcrbGR6OEdJa3VCTmszYTZ3ZmRNVHFLcnkvKzF2VS9QUjdWUHozYitUU2g0WnAwZDQ5eWQ4OWRZci85OUE1VHZkTllWcmxPcTBQRW9lT0QzQjZ1cWdkb0cxTkxRRGRKYXhEK1NCZ1dUQ2EwSGw3T01rVFo4SThkanJNMGNFazQ5TjFQdzRCbXAwQ04zc2xidkNJMU9iWkxXeWM3aHNJRURjdHpxY3ZiZW5oOXRsTm1GczJCNmx1OU9HYzBkajQ1bFkvRzZhTk05L3Vpek1ZTHMxN3Vhdkp5OGUzVm5HME4wWnZhUDVqZG93bGlhVjFsTDI3Y2Q1MFhVbk92VndFaDB6Z3ovOFR5aDE3U2VzbVQ1MmFaR0NPZVhFNVJENjVOVWpRS3pPUnlIRG8zTlN5YWxjcjNES1dZYUozOVN4ajlNV3hLUG1XVGRzcDA2bkN4S212RXoyNkh5UFJoUnpZaWFYSGMray9BTFgvRVN3OW5oTk9XVEtoSTdrYmVEWTFCU0JJM2x5Nkx4TTZrbnZOU0hTaGpSZUtsTVdjVDQrMkY1eG5Ka2FpcTBBd0tZMzNJUVYyemJtdHBjZHpRczVVUnpHU2RuUXJHMkhLQ3BUc1dBRFVnZUtYaE9hUE5TczY4K2NpLzVxejU4cVNQNi81eDhtUDhzM2NQanYyckZBV1pCOUdvbXZSS3pXelVicjhkS0NwanViU28vT0p2QTg4c29SeTUxNnEvdTZiQkgvd2Q3Zy85MGtFcjEzSTNEMFM1WWN2ZGZMWFQ1emtsZmVHU2FxbGIweGI1c3JpNkxreFhqMDFuSHZzZFR1NSticFdYQTZKbUdhUzBxOGU3NjczZzdobTBqR3A4c0tGR0Q5NE44VFRIUkhlR1VreGxWZm5VeVVKYkhXSjdQVkpiRkJFdkhQY0JVVmdoMHZFT2EyNEJqTVdvM3JoVGQzaGxBaldlMW16cVpyRzFncThGY29sVndiZjJsWkJjNVdDQmJ4d1BrSjBqdHFqcGREZ2Q3Si9aelVUaVF4ZEUrbFpyeHVteGZIaEZJTERnZS9mZnJrazV5d1Zna09tNGs4ZndIM3ZQV1FNaStmT1RuRjJORGxyTzVkRDVGUGJxcW56T3hpT2FEemZFVjd5RjArbkpPQlNaRExuT3BjNy9BVXBLcW12alI5Q0R1N0oxVHhsY2JWK0ZYWDRDZFQrUjNJQ1k3NlZaWUowTWNVMVYwM1FUR1p0bzg5bzhyQ0k4NW5waGV0L3NyVkhXYklpYXRhNEZraHpaY2VWUC81aXJqZEwvbGl6MStBSTdzRXh4M1htcHcwQnpCbWlhS0h6V25xY1RPZ0lqdUNlbkxDRnd1aFYvdnhxWTRmbXJTZkwxb2ZORkdiWnh6UEhXbVkyOHRvMStQL28zK0Q3L1MraHZuaVkxSk9IeUp3OFRUaWhjZWo0QUMrMEQ3S2p0WnFiTjlXeHVxYllOaWxscmhiZTZ3M3gxTkhlZ3VjK3RMTUZXUmFwOURrWm1Vb3htVFJZSFNpdlRjb1MxMHhHNGhtRzR4bUdZcG1DZXFwOGZLSkFuVU9nMFNHZ0ZKbGRjb213M1MzeVR0TEVCTTZtVFNwOEVuVkJONzVLQlpkbmNlbGFVWUM3TmxieXpPa1FZN0VNaDg1T0xjdlBLaDlaRkxpeDJVZGFOOGtZaFgzNFRnNG5TYVl5K0w3MnBmYy9OVGdYb29qL0cxOURhbW9nL3ZBLzhWcDNsSW1FenA2MS9vSjJZMDVKNE5lMkJubTVNOEtGeVRTL09oZm03azJWUzJwSlZxbUl4RTZkZzN2dktlV1Z6S0lvZ1dYcGNSS252ZzZRSzZBV3AxTlBTdU45NkhtUnB1eDJjNTVzbnFqUVhNeTZJY3V6YnlnTG5jL3AyamZ2YS9uWVJlUUh5SVNPRktRc2xTV2t0YklSTkVIMndYUWtaN25pSWl0aUYwS1lGam01eDBXYzEweDBRWEFQWW43RTd4TFJ2bm1QbzQ0aUt2VkkzcmFDZ3Zac0pIRXhJdk9EanVCU2NIM2lUbHlmdUJPOXA1LzBVNzhrL2V3TDZKRW9KN29tT05FMVFYMlZtNXMyMUxKcmJUVnVwVno4ZkxWemJpRE1ZNjkyay8rbHZLRTJRT3RxdTViVDYxWmdLb1ZxZkhBaldLWUZrMG1kMFlUT1dDTERhRUlubVpsL1BoUUJHaDBDOVE1aFFkK3ErYWlVQkxhNkpkNUxHUmdXbkRVRU5qWjRsK3d1TG9zQ0g5OFM1TmxwMDlBWE9zTGNzN21xWk9iRHJoa3RhQkthd1luaEZJN3J0K081LzdPbE9ja0s0Zm50enlHdGFTTDZwMy9OMmRFa29VU0dPemRXNHN0THQ4cWl3SjBiSzNtck44YkpvUVRQZDBTNGEyUEZva1ZXd0NVUk9kMVI2a3VZUlZGZmhkenJIeUN3K3lET3VuMzJ6WDc0Q1ZLZEQrVnFpd1RKaHg1dG54WGhVaHJ2eS9rbGlUTnUvdk9oNTlVRlpRV1o1RzNEV2J0djFuYWxPQjljVEtGbFJZQWcrd3FPdXhqMDZFbDdMUG5qV3IyMFl4bkpybHpLTWovRmxuMC9mTHUrVTdDOVl6cktDTGFZemU1enFYUmZOdlVxQjNibTBxNzUyMmZyMjZKSDkxOXlOV1FtZEJpdzY4S3ljeThxOWJoYXZ6cjkrdUpGV3huYnI4YjNCNzlMelpQL1JNVmYvR2VVVzI5R2tDUkdwMUk4ZmJTUHYzeThuWis4MmtYM1NQUWE5ek8vZHVrZWlmS2psN3NLNmtwRVFlRG02MXB6ajExdXV5ajZnNlN2NHBwSlQxamo2R0NTcHpzaWZMODl4Sk1kRWQ0Y1RIQWhyTTBTVndMZ3p4TStGckRhdWJBcDZGd0lBbmo4VHVxYUEremVXY05OYS93QWhKSTZyM1pGbG5OWjl1cTRyYmJWd2xMOXJJcmxoVkVUL0Q0cS90dC9XUEdDN2xLZzNIWUx3ZS85TlhKck0yUHhEQWRQVHRJM28vWlFBSGEzK0xsalF5V0RZWlhuem9iUkYxbVQ1VmNrMUlGaFdPSDYxcUsrK21hbXJRSmNyVi9OM1RDem1Pb29lclFkeTRnamI5dVZxOUhLUjUydXk1bXZGaWdmSTlHVlMxdmwyd0hNaklDby9ZOHNlTDVpeVZwQU9PdjI1Vll2THRWV1FCdCtJaWNPcyttMXBVWnZMRDJPTm53UXBma0E3dlVQTUhNaHJ0ci8vVm43ZUxkOXErQ3hIbTJmdDJBOWU0N3NZZ1dncUlKOHk3aDRQVG1iaHVHRE9JSjdrYnh0czRTZmZSMXpwMXpMRklrc29keDJDOHB0dDJDR0k2UVB2VUw2MmVmUk83bzVlU0hFeVFzaHFud0tPOWNHMmJXdW1ycUtsWGNwTHJOOE9nWWpQUHBTSjVrWnltbjdwbFZVQmk2K2grbHBNZkhlV0lvS1JhTGVkMjFGTGFPcXdXVFNZQ0tsTTVIVW1VenFxTWJDTnorZktGQWwyNUdtS2tsQUV1Qmt5bVJTdDlBc09KVXl1YzRqRnJjQ1VCVHcrSjE0QWdvZW43UEFYWDFYa3hkVk56azVsS0JySWsyMU44SE9WVXRQMDJldEZsNDRIK0gwU0JLZklpM3JlSE54VWxVWUc1dWs4bS8vRExHMnVxVEhYa21rbHRWVWZlK3ZpUDNWL3liOXpQTWNPanZGamxWZWJscmpLNGhVdGRXNHFQTEl2TkFSNXBsVElmWnRyc0pWcElXRFQ1RXd0UXpHeURoU1k5MUtYVXB4TmcybU9vcVo2a2RVR25MMkEzQ3hKc2N5RWxpWktmVHdNYnRnMnQwTVRCZGs5MzBQYmRnV0d0a2wva2FpSzJjTEFGbjdBOUJHbjhZeUV1aWhJd2lPWU1GTjN3Z2ZRNjdZbGJOWktPWjhXZnVDbWVlYmRYMnBmakF6T1lzQmJld1E2c0FqT092MklTb051ZFl5U3RQOXM2d1dIRFczSXlvTkJlTXlZbWVSL0ZzdSttUjFmeHRIemUxRjJUVE1IS3NSUHpOcjdvMUVGK251YitlMnkrNnJEZjRZVXgwdG1MZDB6M2ZBdEJzUUY5ZzA1QWxJVWZaZHZQYmhKK3o1dUFSV1pnclJ2U1kzNzNyNEdFYnNESHI0TFJDZEJRc010TEZEcEx2Lzlxcnp3Vm9wNEo3REd3QUFJQUJKUkVGVW00WlNJTGhjT0xadHd2M1pqNlBjdVJmQjY4RWNIU2M1RmFWM0xNNmI1OFk0MHg5R3paaFUrWndvanRKMnBDOVRHazczVGZIb3k1Mnp2bjFYK04zY2RuTmJ3YzNrZE9jSWlhUkdXcmZvQ0ttTUp3MHFGQW12ODhxUFN1UVQxMHpHRWpyOWtRd2RrMmxPanFWNFl6REp1Mk5wTG9RMVJoTTZNYzFrTG0wbEMxQXBDOVRMQW11Y0lodGRJbXVjQXRXeW5RSVVCVHU2VVMwTGpPc1d1Z1hwNmVOVXpkTTNVSEhKK0NvVmduVmVhbGI1OFZVb09GMHl3aHhScjZaS2hWVEdaQ0tSWVNpaVVldDNVREZIcTVkaUVRWGJna0EzTFU0TXhQRXBFdFhlMHRod0RNZytYbjEzaE1CLy9TT2NOMTlma21OZVRnUlpScm50RnFRMVRXVGVlb2ZSVUpMK0tZM0dDcVVnRGVwMmlHeXNjek9aMUhtclA4YnFTcVVva1pVeExEckdVemh2M0ltOHBtbmxycVBjN1BucUo5OW9kTDdpL0V1UkxmQzM5RGl4NDB0TFoxNXJMS1haOC91S1paRnBQMDM2MEV1b0x4ekdqRTJudTRIV2hnQTdXcXZZdGlhSWR4azNoREtsNDgxell6eDl0SGRXaGtLU1JENTV4emFxS2k2MnhERk5peDgrZVF4QkVQakVyKy9sbHo5N2czVEsvdEswcGtKaFo3M3JpakFodFN4STZTWUp6U1NSTVlsckpqSE5JS1plL0cwVW1aSVJBWjhrNEJmdDVzb0JTWmh6dGQ5OEpFeDRPMm1RWGZpM3l5MVNxMGdvYmhuRkxlUHlPSEI1SFl0cVZaUGxsYTRJSFdNcEhKTEFwN1lGU3lLS09pZFNIT21Pc21kZG9DalQwRXZSNVFyeXlzbGhmUC94YXlnZjJiM3NzYjNmbUdNVFJQL3NiOURlUG9rc0NleHBEYkN4YnZZY0RZUlYzdXlOOGFFMWZscXFsRXNlTTY0YS9PajRPTDZ2ZkJIUGdWOWZxYUVYNytSZTV0cGpwaXQ3TnZKWDVpcEVFSEJjdHczSGRkdncvZUh2b1IwOWdmcjhhNml2SGVYQ1NKUUxJMUdlUHRwSFcyTUYyMXVxMkxhbUNwZXpITm02M0ppV3hTK1BEL0RxcWRtZEtRQStmTVBhQW5FRjBEODhoV0dZZUR4T3RteGZ3MTMzM2Nhdm5uaVZYLzNzZGZvaUtuMFJsUWEvazUxMUNzMGxhb283RTgyd1NHYk0zRThpWXd1cC9NZXBqTG1rT3NCc0UyQXpOSVhSUHdSQVVCYlk1QktMWHZHWGp5U0xWRHNsZG5zZHZER2V4clRnVE1aaTg1WksvTXJ5LytadmE2dEFFZ1RPakNZNWREYk12VHVDZUpmNWYybDlqWnRhbjVQRDNSRXNpNXhuMW1KNTNWSEhtUk85QlA3MEFadzM3bHg0aDZzQXNhNkd5ci85N3lRZmU1ckUzLzhqcjNSRnVCQktjK3U2Q2p4NUVkelZsUXIxZmlmSEIrSk14RE5jdjlvM2J6Y2dqMU5DRU1Eb3ZMQ2lZeTlIc0s0QmxockJ5aGRZK1Nzb3kxeUZFYXg1c0RJWnRDUEhiTEYxK0Myc3RPMlRJMGtpRzVvcTJOa1NaSE56SlU3NTZrbzFYWTJvR1lPZnZOck51WUh3bks5ZnQzVTF1N2JNVGxjOCsvSnB4aVppdWNlN3JtL2xjLy82MXdqVUJubjU2VGM1OU1TckpPTDIreHIwT3RoUm83Q3VTbG13MVp4cFFXcGFJS1gwN0c5YlNLVXlKa25kL3AzS1dFVkhuaTZKSkNFM3IwSmUzNHJVMW9yYzFvcmMxb0xVY0xFR0p2M3NDOFMvL1YzTWFCeFpnSFZPa2FacEYzVkpGcEVrRVZFV2tDVFJmaXlMeUE3N1IzSklPQnhpUVhxdmV6TE5DeDMyZkZkN0hYeDZlM0RKS3dCbmNtSWd6dHY5Y2FvOE1wL2VYaHE3QmJESExBblFFblFWdlUvS0VuazI1U01hU1ZIeHpmOGJxV1YxU2NaeXBhSDM5QlA3MDc4bWM2NExSUmI1OEZyL25CRy9TRnFuZXlMTnVobzNGYTY1eGUrUGpvK1RhV2lnNG9jTHQ3SmJLbVdCVmFiTUhGd3JBaXNmUzlYUVhqK0crdUpoMU5mZnhrcllobjZTS0xLbEpjajJOWlZzV2wyQlF5cUxyVkl6T3BYaWh5K2RaekkydDl2MjVyYjZnbFdEV1M3MFQvTEswVTRDZmhjM2ZhaUZGMS91d0RRdFJGSGdqbnV1NTk0dmZSelo2ZUMxUThjNTlOTlhtQnl6VjdqNUZJbTJLaWNOWGhsMU92cVVUZDFsZnk4MTRyUVFnc09CMU5LRTNOS010TFlaZWUwYXBKYlZ5TTFOSUM4YzZUSERFZUwvOHg5SS8rcFZBS284TWg5dURiQ3FZbW5SdVRPalNRNTMyeXYxV29JdVByYXBja25IbVl2TzhSU3Zka2NKZW1RK3NUVllNcEcxR040VkFodzdQWUpqNzI3OGYvUjdDSzdpaGRsVmlXbVMvTkcva1BpSEgyQmxkRnFDTG01ZEY1aXo5aXFVMEVHQW9HZDJzdTducDBLTUpBMXFYM2djcEpXSjVwY0ZWcGt5YzNBdENxeDhyRXdHOWNValJQL3NmeGFzL1hjNkpMYTExckN0dVlMMWpRSGs5K0dHY2ExeHRHT01aOTdxUjUvSFkySGJoa1krdEhQTnJPZmpTWldEejdWam1oYVNLUEQ1dTlaUzAxREZVeTkxMDl0dnQ5THgrMTE4L25mM2NjdSszWmlHeWR1SFQvSGNZeS9UMXoxM0NySmtTQ0pTWXoxU2N4UHltbFZJVFkxSWE1cVFtbGNoMWRXeVlQaXNDTFNqSjRqOXpmL0I2QjBBb0RYbzRxWVcvN3dSaVV1Ukw3SjJOWGx6dGd1bFlES1I0Zm1PTUI2bnhNZTNWSlVzUXJZUUU0YkVTMkdaYUNpRy8rdGZSYm4xNXN0eTNpc0ZvMytRMko5L0crM2RNN2djSW52WEJsaGJYYnk0Zkxrend2bnhGTlUvL1BzVmkvaVZCVmFaTW5Od3JRc3NnTmhmL2k5U1R6N0hoMjlaeDk0UHIrTkUrd0FuM3gxa2ZOeE9SN2tVbVMwdE5XeHBybUJEdlE5SE9ZMjRLR0twREQ5N3ZZZXo4NlFFWWY2MFlGck44TXlMcDRrbDBraWlnREVkdGZyMU8xclpzTnJQTzcxeERoM3VKWk94MjYxczNyYWEzLzUzOTFIWFpLZmJ6cnpUeFM4ZWU0VXo3eXl1NVZVQm9vaFlWNDNjdkFxcHVRbHBkU055ODdTSWFxd3ZLaHExYkF5RDVPTS9KL0c5SDJJbGtnZ0NiS3J6Y1AxcTc2THJuczZNSmpuU2JmdkY3VmtiWUd1RFo4Rjlpa1UzTFk3MnhwaEs2bnhzYzlXS1JyTGltc2tyS1EvREhRTzRmK1BUZUgvbmZnVFBCOVNXeGJSSS9mUnBFZy8vRTZhcTBWeWxzSGR0b01DY2RENk85OGM1UGhDMy9RVnZ1MlZGaGxjV1dHWEt6TUcxTHJDTXZrRW0vOVhYY0VnQ2YvWW45MUtSNTVzMU1oem15QzlQY240d1J1OVFGTk8wY01nU205ZldzR1YxSlJ2cWZiTzYzcGU1aUFXODFUSEdvZU1EcExXNSs4MUprc2plRzlleHRubTJQOUhrVklLWDNqaFBQS25TMHVEajdnODE4cE1YZW9nbE00aWl3T2R1YjJIVG1ncENVWldmdnpGRTc1QWRtWEU0SlBaLzRUYnUrdnlkdVo1NHZlY0hlZWJITDNIaTlUTnpqa1B3dWhIcmEyemh0R1kxMHFwNnBNWUdwS1o2cFByYUZVdWRMQll6SENIeDNSK1NldW9RNkFhU0tMQ2wzc1BPVmQ2Q1F1ZUZ1RENaNXFYT0NLWnBjZGVtU2xvWFVlZFVESk9KRE4yVGFiWTJlSlpkK0Q2VHVHcndwdXFocDJNUXg0MDc4ZjNCbDVGYm0wdDZqcXNWWTNTYytFTVBvNzUrREZrVXVLSFp4L1pHN3lVRHFSM2pLVjdwak9ENzJwZndmR0h4WFZ1S29TZ2ZyUGNicGZFK3ZGdS9pZVRmUW1iaUpRQjh1NzZEcStYTE9ZK3FVaExZZlJCSHpSM3plbGJsajhuS1RDMjZNWEtaSzU4cjJRZXJGTVQvOXJ2b25SZTQvYU1idWZHR0dlbXBWSkpxaDhIT2RaWGN0S1dHaHFBYlVZVHV3UWp2bkIvajhPa1IrcWJTcEUxUVpBbHZDVlptWFN1TWhsTTgrbEluUjgrTm84OWpsT24zdWZqWVJ6YXpxcjZpNEhsVjAzbm4xQUN2SDcrQW10RVJSWUV2Zkd3ZGRWVnV0clpXY240Z1NqS3RjNlluVERDZzBOTGdZK2U2S3R5S1JPOW9BbDAzT2RYZXc3bGpaOWk4b3dWUHdFZGxkWUNiYnR2SmgyN2RUaXlTWUxodkRBQkJjZUw5N2M5UjhaZC9qT2Z6OStLNjYxYWNIOXFGWTlONnBLWUdSTC92aW5MK0Zsd3VsRDAzNGZyNEhWaXhCSm11WHNaaUdxZEdreVEwazBxM2pGSkVoTFhLSTdPNlVxRXZySEorUEVXdHowR2doTllsSHFkRVU0V0NhVkd5VkdFNHBmTnl4TUhyWjhlSnIyb2k4Ri8rUGQ0dmZoNnhzbUxoblQ4Z2lENHZybjBmUlY3YmpIYjhYUVpHWS9TRzBsUjdIZk4rUG1tR3hmbnhGRkpEM1lyWldWd1ZBa3YyYjBHdTJJV3BqdVlFMW55bW1hVmdMa1BSK2NhVU5SZ3RjMjF4TFFzc014UW05aGZmUmhZRi9zM3YzWVl5bzVkaHVIOEVROHNBSUVzaXRWVXVOcmRVY011MkdsNS9iNHpWZFY0TXcrRHRzNk84Y1dhRXQ3c25tVXpxSUVuNFhmSmxxMEc1a29na05KNDkxc2VUYi9RU1RtanpidGRRRzJEdmpldnd1cDFrRElONFFtVndKTXg3SGNNY2VidWJzY21ZSFgwU2JGK3BaRnBuUzJzbGlsTmkyOXBLdW9maXhGTTZIZjFSNm9OdWFpb1VtbXE5YkdtcFpIZ3lTU3laSVRRWjUvQXZUMUR0bDJsYXZ4b0VBWCtGbHcvZHVwMWR0MndoRW9veDBqdEtwdjBVNnJNdklOVlZJNitkWFFOMkpTTDZmWFpIZ3p2M1lrVmlaSHI2bVlocm5CNU5NcFhVY2NzaS9nVnF0THhPaWZXMWJpWVRHZDRkU2xMbmR5NjR6MkpaN3Y4Qnk0S2VhSWFYUWlKdmQweVFYcjhlL3plK2h1L0xYN0FqaTJYbVJGNjdCdmRuN3NHS3hZbTlkNTV6WXltU0daTjZ2MlBPOStUVWNCTFI2OGIxYTNldHlIaXVDb0ZseE0rZ0R2NDRKNjZnTExES3JDelhzc0JLUG5vUTdlMlQzSEx6V25iZjFGcndtcEhSQ2ZlTnpObGFaRHlzOHRhWkNUNjFaelVmdmI2Qm03ZlcwbFRuUlJMZ3dsQ0VOMDROODlxcEVUcUdvb3pIVkRUZHdxdElPQzlIcmM3N1JDS2Q0WVgySVI1LzdRS0RrNGw1VitVSmtnU1dSVHlwMG5GaGpQYzZoam5WTWN5NTdqSDZoNmNJUjFOWUZnUzhEcjcweWZVb0RvbiswUVRqNFRSTnRWNkNBUVdITExKOWJTVzlJM0dpaVF4bmVpUFVCOTFVVnloNFhETFhiUWdpQ0FKOW93bDAzZUQ0VzUxTVhPaG42NjYxeU5Ncnl5cUNmblovZENjYmQ3VFMzejFNWkhBTTljWERaRTUzNE5pNUZkRmYybll0SzRWWVdZRnl4MTVjbjdnRERCTzl1NCtwbUIyVjZwNU1ZMWxRNlphUTVoRTZEa2xnZmEwYmh5VHllaytVS28rOExGZjJVaEZYRFU1RUJGNjRrS0JySklHNTUyWUNmL3lIZU83L3JGMzNWbVpCQktjVFplOXVuRGRmajNHNmc3R0JDYzVORzhOV2V4MjV4dG9PU2VTZHdUaGtkRHkvdFRLTnNJdXV3UkprSDhycUE3bGVmY0FzMzZYQTdvTjI3N3ZRa1Z6UFFqM2FUcXJ6V3dYN1prSkg3Qlk3MHozNjVNQXVsT1lEdVJZcmVyUWRiZWhncm9kZTFtbGNqN2FUUFBzZ1lLY0lSYVdlNU5rSDUrMjF0OUJ4WjI1ajZYSFNQUS9qWHY4QXBqcEt2UDBydWUyVTVnTzVub2VaMEJGTWRRU2w4VDY3RDkvWUlVU2xIdCt1NzZCSDI4bU1IY0s5L29GY0s2Rmk1czRSM0lPejhiN2NXTE45Q1BPM1VScnZ3OW00SDBIMkFYYkxIRzM0aVlKR3l0bTV5cEp0KzVPZGE4bmJobk5HODJoMStBbTA0WU5MN3BsNExYTE4xbUNaSnBPZitSSkdLTXgvK28vMzBOcFNXQU1VSDU4aTNETTA1Njd2bkEveDdCc0RQUENGSFhPdUxveW5kSHFHWS9RTXgra1pqaE9PMjVFY3I5dEJVOUJEWTVXSHBtb3ZEVUVQbFQ1blFTdVlxNDNSY0lvanAwZHB2ekF4YnlvUVFIREl1Ty8vTEpVZnZSbkhhNjh6ZGI2UDlPZ0VSalNPTlJVR3cyQmpjd0NmeDhHeE14TUlnc0JYOTIraTB1Zmt1MDkxTURhVkpoaFErRGVmMllRMFBlY1ozZVRIdjdwQXowZ2NVUlQ0emJ2VzB0WjBjVlhjd0ZpQ2YzbWxMemYvcTFaVjh0VS8ralQxbTlhRGVGSHNXcGJGcTc4NHhrLy84VGxTaVRTaXg0M3ZEMzl2eGI3TnJ5Um1KRWJxaVdkSVAzVUlZM1Fjc0hzTHJxbFVhS3R4MFZ5bHpCdFZTbWdHeC92ajFBZWNiRnlpd2VkeWlLc0dYUkdkODNFSWowNGhOZGJqK3VUZHVPL2RoMWhkZGRuSGMwMWhHQ1FmZjVyay8vbG56RlNhS28vTUxhMEJtcVl0UDM1MGZKeTRhbEQ3L0U5V3hONmlxQWlXSVB2d2J2dFdybDlkRnJsaUY2SjdEZnIvejk2NXgwZFYzdm4vZldiTzNKUEpQWkJBTGhBU0FrR0pLQllpU2hWRmFxVVdiV2xkMXE2OTBCYmJYZGdmYlhmclZ0dlZYbmJic3NWdXE5MWwxN3ByYlN1dFdsZHJFY1VyQmhSRjdvU0VRQzRra1B0OTdwZmZIeWZuWkNZemsweVNJVnp5dkY4dlgyYm1QT2Q1bnZPY1ljNW52dC92OC8wT1B1Qk5NejZMcEUvQ2tINmQxa1pubW80aC9icXdjOVVhZHY3ZVEraE0wN0F0K0dsWWpVTzFacUczL1EyQy9vRnh1UWpqNlZkdks4STIvNGRhRzBsbjFPWWVhc0d5elBsbW1EalNXL0tRaytjQmFCWXNTVTVTNXFSUHdwQjVvM0o5QTdYNCs2dEdYVHREZWdXV09kOE1tNnVrTXlybjZJejRldzhwQW0vR1o1RjBRN2xnZE1aMERPblhFWEEyRW5BMkt2T2NmbnZZT0hwYkVZYjA2L0IydklIT2tJWnQzZy9EYWdYQ29EWE92aEJ2MitpRm5xY0tsNnNGeS9QQklaelAvWVdjbkJRKytZbUZFY2Q3bTl2d3VhSzd1QTdVZEdMUTZ5Z3ZTWTk2M0dqUWtaMW1vU1EvaFd2blo1R1JZcWFxdm9mcDZSYTZCOXhVbmVuaGNIMG5lNnBhZU92SVdZNmM3dUIwU3grdFBTNTZIUjc4L2lBR1dYZlI1dUh5K0FJY3J1dmtMKzgzc3VPRFJzNTJPZ2pFMGxZNkhlWlZONUx5L1gvQWZPTjFCTEl5OFYxZGpuekxjc3hyUG9iMXMzZmdyYTNIZDZxQmxDUWphMjRvb0xhcGo5NEJyNUxKTzg5T1RxYVZBeldkT04xK1pGa2lmNXJ5dzBxdms1aFhtRXBUcTRPdVBnOVY5VDNNeWszR1BsaXl4VzR6c25CT09wMjlidHA3M1BUMXVkajdkaFc1eVRCOVpqWVlsTzhRU1pJb0tKNUJ4WXFyYUQvWHhkblRaM0cvL1M3K3hpYU1TeFloeVJmZW9oTXZrdG1FOGFvRldELzlDUXhsSlFUZEhueU56WFE3dkp6dWNISDBuT0pDOUFlQ1dFMzZNTEZsMU9zb1NEZGoxT3Z3QllJWXovUG5MeEFNMHRMbnBhckRUV1dybi9kUGRuSzIzdzlMcmlIcDc3NUU4dDk5Q2VPaUJWTjNaMkFpMGVrd0xDakYvTEdiOExkMjBGOWR4OGsySngwT0wxbEpSczcxZXVoMyt6R3ZXSVl1UGZGaU5xNS9RY2FzbGVoTTB6UnJWTkRYcjRrQ1Ezb0ZIbHVSNWlhVDVDVE5xcVJhVXlTOWpZR2ozOEEvVUt1ZG96N2tWVUVUbWtsY3RSWVowcThiVjIyOWVQczFEbHFrUXEvTFhMZ2hYRXpaaWpScmovUGtUL0IyVnFLM0ZXR2QrejNOa2hTS0pDZmhQdnNzN3NZbmxURno3aHgxN2VUQnVZWmE0OVF4akZrcmNUYytpVEZySlVGZlAvMkhObWlXSmpXRHU1eCtIUUYzQzRiMENnTHVGcHduZjRKL29CYTlyVWdSYnFacEdMTldEczB2eEhvbXlVbFk1MzRQdmEwSWZjaDlGRnlldU4vYUM4QTFpd3FpSCs4YmlIbnUyUTRIeFRQdGNZK1ZaRkcrWHE0cHphUnNkaXI5VGkvMTV3Wm9iQm1nb2FXZmxpNFhMVDB1cU84S084OWlrc2xJTnBHV0ZQTGY0T3RVbXpHbTIrZDg0UEw0cVQzYnk3SEdMbzQzZE9IeFJjOWxwU0laRFpodnZSSHJYOStGZm1iT2lHMlR2L0ZWdkFlUFV0dlV4ZDZqYmR4UVBwM2Z2WEtLZ3ljN1dYN1ZkSEl6clN5ZWw4Vjd4OXJZZmJDRks0clNTTEVwNHNnZzYvak16YlA0NCt0MTFEYjE4YnRYVHZHNWo4MGhPMDM1Rlc0eTZ2blVqWVhzTzk3T3EvdWFjVG85UFByb0x1NXM3bVRsbXFWSWFkTTBhMVpLZWpJYnZ2Tlh2UGZtSVg3emkrZHh2ZklXdnRwNlVuNzhuVXZQTGFXVE1DNjlCdVBTYXdoMGRPRisvUjFjdTNialBYeWMybllYdGUxS3h2dXNKQU16VTAxa0p4bklUalpnaWlOMmE3dzR2UUU2QnJ4MERQZzQ0d3pTMHVVazRQTWpHUTBZbDE2RC9TdExNQzM3Q0ZKUzR0SkdDTUxSWldXUTh2QzM4SHhpSmYwL2VaVDZwbk0wZHJWakhDd0M3ajl6Rm5uT3JJU1BHNWZBMGcyS0lYZmprS3ZKMjFtSlBHaDlrZTBMdFFkendOMmlpUVQxUGIramR1anYzb01SN3FuUWg3MHhhMldFaFdVOHhOT3ZiTDh5NHJyY1o1NE1FMWl5ZmFGMnZhb3J6ajlRaTZkdHArWXlqQmg3VUZ4QmZHdW5ZcDYxQVcvclRtMk00WVdYSlRrSnk1eHY0Tzg1Tk5qUE8vUyt0d1pneUgzWnVuTm9yUWRxOGJidXhKUjNEenBiRVlIQjkwTmRpRUYvUHdOSHZ4RjlFUVdYSGQ2OUh3Qnd4Ulc1RWNjOEEwNkNNWkpoQmdKQldqcWRyTHgyN0pYbjVjRXZzU1NMZ2JKWnFaVE5VakpwdXp4KzNqM2F4dHNIVzVpVm04VFpkaWN1angrbjI4Y1p0NDh6N1pGaVQ1TEFialdTWmxORmx6Rk1pTm10UmliaWVYUU1qdHZZMXMvcGxqNGFXdnNKeEZFbVJqOHpGOHZ0TjJQK3hFcDBLZkdKVUYyS0hmdDNOdEg5OTkvbDlRL09zdjRUSlV4THQ5RFM2V1QvaVE2dXV6S2JHeGRONTBSRER6MzlIbmE5ZjVZN2x3OEpZNE9zNDFNM0ZtcnV3dCs5Y29xL3VXME9xVWxEVnU3Rjh6S1prV1hsbWRmcjZSbnc4TXh6SDlMZTBjOW43bDZLbkQwRHpFTXhWOWN1djVMQzRobjg4cUhmY1BaVVBkMWYvaVlwVzc2SFhESTcvZ1c4aU5CbHBHSDUxTzFZUG5VN2djNXUzRy90d2YzR0hyeUhqdEhXNzZHdDM2dTFUVEhyeVVveWttcVZTYlhvU1RicHNScjFXS0prQjQrR3l4dWczK05ud0szOHY5L3RwOHZwbzkwWndPVWFHa2MvUFJ2anlvOWdXbll0eGlWWEk1bk9UKzFJUVhTTWk4dEplK3FYT0g3ekRJNy8vUU91d2MwOGFnM01SQk9Yd0pKazVSK2hyZXluQ1orQUpDZGhMdHlnaWE2QXV5VWhWcFI0K2xVdFVLR3hSN0hpa0NMZTkwWC9wVC9jWFJuUDJubk9Qb3RzdnhLZGFWcVkrSUVocTVuN3pKT0t0Y3ErVUJObHByeDdOSXVWaWludm5vZysxSGw0Mm5ZaUQxb1BROXVZQ3plRVdkMEVseWVCamk1OFRlZXdXbzNrell3MGg3c0huREhQYmV0Mm9kZnB5TWtZdTlzaVZwMURzMUZQMmV4VTNqN1l3cXFQekNRanhVUjdqNHN6clE2YTJ4dzB0enRvN1hLRkNaeGdVTm14MXpQZ29hNjFMNkpQdlU0aTFhYUlydFFrRTZsSlJwSXRSaXhHUFNhREhwMGs0ZmI2OFFlQ09OdytIRzRmM1FOdTJudGRkUFM2NlhYRTNnRTRIRjFHR3FhUFZtQysrUVlNVjVReUhtVm52UFlxekIrN0NkZGZYdVBQZTg2dzdNcHNubm1qbmc5T3RMTjBRUllHV2NlcWo4emc2VjJuT1hhNm04V2xtZVJOR3hKRnFpWHJ0Nitjb3JGbGdOL3VQTVhuUDE2TUpXUnJlbTZtbFMrdUx1YlpOK3VwTzl2UG0yL1YwTlhsNEV0ZnVBNVRaalpTV2paSXlqM0t6czNnSDdkOGhWLzk4SGNjUDFCTDk5ZnZKMlhyUXhqbWw0ejUyaTRtZE9tcFdENzVNU3lmL0JoQnJ3L2Y4V284K3c3aStmQXd2dU1uNlhHNTZIRkZmdjRsbE0rdlFTOWgwRXREdHppb2JQUDMrb040L0VHQzBVUzRKS0dmTVIzekZmTXdMcm9DdzFWWG9NL0pqbXdubUZRa2d3SGI1eitMZWRXTjlHL2RobnYzZS9qcUdzL0xXR055c3ZmdHZ5ZmhnZERHbkRVWTBpdkMzRmFtbkRzaHhNcDF2dm9OK3ZxUjVDUkZhQTBLbzJodXY2anZ5MlBiYlRQYTJ2WHR2d2VkYVpybTJsU0ZrTGx3QTk3T1NqeXRPL0cwN2tTMkw5UXNjY2FjTllyN0wrZE96VHFsQ3JKWXFOWXExZUtsRzNTQm1uTHV4TmRaS1Z5RWx6SGVveWNBS0N6STBCSlJodUp6dUdLZTI5cmxJbSthRGQwNDNITWpuWk9lYkVLbmsraHplTWxJTVpHWllpWXp4VXg1c1JMbjVmY3JMcFhtZGdkbk81elVOUGJpY1BzVnBSVUZmeUJJUjU4N1pzMi9pU0Naak1qelN6QmVzeERUMG11UWkyY25wQ1JNMHQ5K0FjODc3OUhZMHM5SDVtZVJsbXlrcTg5RHpabGU1dWFuVUp4bnB5VFBUblZqTHp2ZmErSUx0NWVFYVRtRHJPT3pLMmJ4MU01VE5MYzcrTU5ycDFsM2ExR1lLOVZxbGxtM2NqYXZ2bitXZDQrMmNlaHdFNzk0OUEyK2Z0OUhNYm9jNkxKbWdNRUVnTVZtNW0vLytYUDh4dzkveDhGM3Eralo5Q0NwUC84K2N1bmxFWk1vR1dRTVY4N0hjT1Y4Yk53TmdTRCs1blA0VHA3R2Q3SU8zNmw2QXEzdCtGdmFDSFQxNFBZRmNQdGlkQ2JyMGFYWjBXZG5Ldi9sVGtkZk9CTTVmd1p5OFd3UlIzVVJvOCtaUnNxL2ZnZlAzdjA0Ly96S2VSa2pMb0hsN3ptRWJGK0laYzQzdERnaTliVWtKMms3NmNhRHRtdk9QN1RMelJEaW9oc3Y4ZlRyNnoya2lJdThlN1RkaWFhWjl3eHJjeEFUOTJCSXI4QnJYNGl2OTZDeUV5OHJ2am5HczNicW1JNFQzOVBFb1B2c3M5cE9TYjJ0Q0Z2WlQvRVAxT0k0TVJTbjVlMThoNlNGdjBLU2Jab3dNdVY5VHJQVzZVelRzTXo1Sm5wYkVaN1duVWh5RW9iMENseDFqNFhGdGdVSDQ4NGtmWFJ4S2JnODhKMXVBQ0EvTDNvd3AzY0VnZFhXN2FKdyt2ZytIK1lSTWxycmRCSnB5VWI2SE42b3gvVjZpZHhNSzdtWlNuekt2LzMrS0FTRHBELytNM3luNnZIVk5lS3ZhOFJYMzBUZ1hDdEJiL1IreG9vdXlZYStZQ2I2V1hrWVNvcVFTK2NnbHhRaEdSSWYrSzFMc1dQOXF6dnAvOVgvc3Z0UUN4OHB5MkxIM2liZVA5N08zSHdsbWVTdEg1bkJxZVorem5ZNE9YS3FpeXVLd3UraHlham43bHRtOGNSTEoybG9HZURGZHhxNTQvcnczRmFTSkhITDRsd3lVa3pzMk50RWRVMHJ2L2psRzN6dGF4L0Y1RDJObEQ0TktWbnBWNWIxZk9YK3UvbmxQLytHby90cjZQM1d3NlQrMXhaMDJaa0p2LzRMams1Q1B6TUgvY3djVEIrTi9HRWZISEFRNkI4Z2RFZURaRFFnV1MxSWxzdThzUElVd0xoa0VjWnJyem92ZmNmMWJlRnAyNGtoZXlXeWZTSEppOExkU1A2QjJuR0xLL1Y4MmI0UWMrRUdMYlZESXZKYXhkT3Y1K3l6V2h5VS9kcm5nRWhYb0grZ0Z1OWd2SlExWk1ObHZKYThlTlpPMGlkaHlyc25xaHZSTXhoVDVlczlHTFVQQUY5bnBaSWVZbkNldy90UlVqNDhPN2lqc3lKc1RWVFUyRG5admxDN3p2NkRYMDE0ampIQmhjUGZwQlFBenM2T0hpUGs4OFFXSjYxZExwYVhqeTNnMldSUWhOVm9RZW1aS2VhWUFpc1VqemVBdytWRGw1bU9QTGNJZVc1a3JHYWdwNWRBV3dlQjlrNEM3VjBFQmh3RVhTNXd1UW02WEFSOWZxVEJ2RnlTeFFKNlBaTFZnaTR6SFYxYWl2TC85RlIwOXNRVkE0NEh5NmR1eC9IYjV6algwVWYydFdZc0pqMm56L2JUMGVNbUk4VkVTcEtSNnhkTzQvWDlaM256dzNQTW41VWFzYTRXazh4ZjNUS2JYLy81SklkcnUwaTNtN2grWWVROVcxU1NRWHF5aVQrK1hrZjF5VlorL3ZQWDJQaDNOMkhzT0F0dUIxSkdEa2c2WkZuUGh1LzhGVnYrOGI4NVhYMkd2bi80QWZaZi9ldVVpeHVTYkZiME5oR0FmbGx6bmpiT3hCWEJGL1FwZ2RERGQvUzV6ejQ3NFFCcHo5bm53bHhhcnJySHRFRHZhTEZFaWV6WFAxQ0xvK3A3bW9oUTRwa2lSWTd6NUUvQ1JLU25kU2VlczgvRk5ZOTQxazZOZnhvdTJ0eU5UK0txZTJ4d0RqK042Q1BnYmdtekhqcFAvaVNpSDI5bkpRTkh2NkVKS0hXSFlTaWUxcDA0cXI0YjEvVUlMbDBDN1owQXBLVkZmMWo0dmJIOElORFQ3Mkg2R09PdlZEZVdQRW9Kazh4VVUxd0NxMnZRN2FmUG5SNnpqUzdGamp4bkZzWWxWMk8rL1dhc24va0V0cjlaaSswcjk1QzBjVDNKbTc5SzBzYjFKRzFjaiszTGY0M3RpM2RqdmZ1VG1HKzVBZU0xQzVFTDh5WmRYQUZJRmpPV05SOERvTHFobDBWemxmeGtCMm82dFRZZktjc2lOY2xJZDcrSEQ2cmFvL2FUa21UazdsdG1ZVExvZWZQRGM1eG82SW5hcmpBbmliLzUyQnlTclFacVQ3ZnpILy81Rm41L2dHQi9ENEZ6RFJCUWFpZ2FUUWErL3IxN1NNOUt3VjFkaStQZi96dVJseTBRWE5hSVlzOENRUlF1eDBTalBWLytKdTZqSi9qMlA2eWlJRDh5bDlXWmZVZWpudWYyK25uMmpYcnV2bVZzdThrNmV0dzg5bHdWbXo1VHBxVnNpTWFSVTExVTFmZndxUnNMUit5dnByR1hwM2VkeHZ5eG03Qi9aOU9ZNW5JcDRHOW9vdVB1RFdTbW1ybjdsbG44NG8vSHNacGxObjU2dmhiSGRyeXVtMmZlcU1kaWt2bjZYYVdZWXJoZlR6WDM4ZnRYVHlQckpiN3c4V0l5VTZPN3NucjZQVHkxOHhTZHZXNHFsc3ppYy9jc1ZRNFl6ZWh5Q3JYZzk5UFZaL2p4TjdmaDkvbEorZUczTVMxZm12RHJGd2d1Tnk3T2pINENnU0RoQk4yS0JTaGEwSG5VWFZDRHRIZktJYW9KQUFBZ0FFbEVRVlM3S1JoSC9KVmgwSElWTGV0N0tOTXpMSEZac0hvSDIxeHl1Wm5pUko4L0EzMWVMdTNkTGt3R1BjVjVLUXc0Zlp3ODA2dTFtVmVZU3Y0MEcwNjNqM2VQdGNYc2EzWnVNaXV2emNYakRmREhOK3J4eHNqZmxaSms1TjdiNXBDVlpxWnk3MmxlZWZXWWNzRGpJdGcrdEhWOVZzbE1QdjFGNVFkSC80OS9TYUFuY2dlblFDQUlSd2dzZ1dDS0VCd2hNM2UwWFlVcTdkMnVjUWtzWTV3NWhETHNKbHdlLzZqdFZCR215NHFlU2Y1eVFFMkgwTnJsNHByU1NEY2h3QzJEdWNqZVBkWSs0cnBkVTVwSmVYRTY3ZDB1L3JLM0tXWTdxMW5tbmx1THlFb3o4K3lmRG5EaWhCSXlFUnpvSmRnM2xBVDJ4dFZMbUh2RkxQemR2ZlJ2M1RhK0N4UUlwaEJDWUFrRVV3UnBNRkRYN1lwaExZb1I2Tm5uOEk0NS9ncUdkZytPWnNHU0pBbXJXWTZWZVVIRDRWR3NNUHJzckRIUDVWSkJMaW9FRk5mZDdOeGswcEtOMURiMTRRNFJVamtaRnVZVnB1RDIrTmwvb21QRS9sWXRtVUYybXBsREp6czVWdGNkczUwcXNqSlR6ZnpYNDd2cDYxTjJsQWE3V3NDbjVBYVRKSW5QYlZxRHdXakF0Zk1OUEI4Y211RFZDZ1NYTjBKZ0NRUlRCRjJhc3VXL3R5OTZPZ2FEeVJUMWZaTlJQKzd5TkxKZWh4eEhiYmZzVkRNRHJ0aEI5cUFVa3diUVRic01Vd1VNb2tzZnluSVBjT1djZFB5QklGWDE0Y0hxeTh1VlFQODlSOXJ3ZUdPWDc1SDFPdTc2YUNGNnZjUmY5cHloM3huYkZhdmt5aXBDUjVBbm45eWp2QmtJRUd3L3E3WEptcDdPN1hkL0ZJRCtuLzBuK0VlM1BBb0VVeFVoc0FTQ0tZSnVNSGFwdlQxNmloSFpFbDFnSlZzTjR4NHpYamRoUEhGWVdnelc1WmlMYVJEVnlxZ0tMRFhmMVhEclUyYXFtU3ZucE9OMCsvamdSUFFkaFNvWktTWnVXcFNEMCsxbnh3aXVRbERxUjk1OTh5eXFhMXA1NzcwNkFJS3VBWUlEUXdMdjVrOWVSMFoyS3I3VERUai9UeFNJRndoaUlRU1dRREJGa0F2ekFEalRGTjFWWkVxSzdnYTBtY2VmWEhPa0pLT2g1R1phNmVrZnVVeE5UNzhIS1RsSkV5R1hNNEhCcEphcFNVYnlwOWs0ZmJZZnh6QUwzN0lyczlIcEpQWWRiOWZheCtMYStabE1TN2RRVmQ4VEZqUWZqY3hVTTUrNnNaQm5udjBBNTZERks5alpBa0hGVW1Zd3l0ejUrVnNCY1B6Njl3VGQ4WmNYRWdpbUVrSmdDUVJUQk1POFlnRHE2NlBIN1pqc2tZSHNmUTR2MDlMSFgrNGpYdXRYZHBvWlo4eDZKT0QyK0hFNlBKZDlMYmVnSzNLbjV4VkZhUVFDUVdxYnduZnVwZHRObE0xS3BYZkFTMVdNZkZjcWtpUnh5N1ZLZ2U5WDlqV1BLc2dLYzVKWVBDK0RGMTlVcWtiZzl4SHNHZnJjWEhQOUFuTHlzdkIzZE9GODVzVzRyMDhnbUVvSWdTVVFUQkgwK1RQUXBkaHBhZTJqcThzUmNkeGdNU0Zid3JOMFcwMXkzRzYrYUpqaVBGY05kSTlGVi8vbG5hSkJKZEN0V0pkQzE2MDRUNG1kR3k2d0FDcXVVQVRudnVNanV3a0JDcWNua1QvTlJrZVBtNE1uTzBkdHYyUitGbWZQZE5EVG94UkJEdloyUUVBUndaSWtjZnRmM1FpQTQvZlBKNnhFMGVWQzM3bjJFVXRQQ2FZR1FtQUpCRk1GU2NLNDlHb0FEaCtKSG90anl3eXZjYWNmWlFmZ2FJd2ttb2FUWklsdDdlcHhLZTRwZVZaK3pEYVhBNEZXSmJlVldtWUlsTGlvM0V3cnRVMTlFVHN0czFMTnpNNU5wckZsZ0hPZHpsSDd2KzVLUmFDK2M2aDFWQ3NXd0MyTHB2SG1HMVdEa3dzUTdBNjFZbDFCZG00R2dZNHVYQys5Tm1wZlU0V2dQOEIvM3ZRbFh2ajdIMS9vcVFndU1FSmdDUVJUQ05NTlN3RDRZSDlEMU9PMnpMU0UxdVV5bStLTHdRSkd6UGJlMXFPNHp1U2lnZ25QNldMRzM2QUlYM3RTdUNWeHprdzdUcmVQNXZaSXkrTTE4NVNnL3crcVJrN1pBRkEwSTVucEdSYTYrejBjcnh2WnJRaUtpOWNZOE9FYVRPMFI3T3NFLzVBVjY2TzNmd1FBNXg5ZUdMV3ZxVUl3R0NUZzgxUHo2bDZDL3RnN1BBV1hQMEpnQ1FSVENHUEZOZWlTazZpdWFhRXR5bTVDbmF3bktUdHhpVHl0cHZndFdDbEpzWXNJTjdVT0FLQ2ZmWGtMTE4vcFJnQlNiT0hXdk9JOHBVQjMvYm5JZTFZOE01a2tpNEZqZGQzNC9LTmJwYTRiZEN2dVBkb2ExNXhLY3kyY3JGWUtoUk1NS2lKTDdldm1SWmpNUm55bkcvQjhlRGl1L2k1M2RMS2VsSm5Ua0hRNnBEaFNsQWd1WDhUZEZ3aW1FSkxCZ1BtMkZRU0Q4T1piMVZIYjJIT3lrRVlwMEJ3dkkxbWw0aVVZaElibUhpU3pHVGt2TndHenVqZ0plcjM0ejdhZzAwbWtEaE9iMDlQTkdHUWRqWU5DTXhSSmtsZ3dPeFczeHovcURrR0F1ZmtwSkZzTm5PMXcwdFFXYVJFYmpxeVQwSG1HNG9tQ3ZWMFFWTkpJV0d4bUZpKy9FZ0NYU05rQWdOZnBwcXYrYkVKL3FJekdRSHNYRFh0RjR0ZUxEU0d3QklJcGh1WFRxMEdTZU92dGsvVDN1eU9PNjJROXFYblRFektXM1JiYktoVXZMVjFPM0c0Zmhpdm1najUrbCtPbGh2OVVQUVNEWktXYUkrcEZTcExFOUF3TFo2TzRDQUZLQzVWQStPUDFzYk8xcStoMEVsZlBWY3J3ZkRCS0puZ1ZzOCtEeXowWXlCN3dFK3dmRW5KTFY1UUQ0SDVyTDBHbkNPeHVmUGN3QVorUDdOSlpremJtdnNmL3hHL3YvcFlJckwvSUVBSkxJSmhpNkhPeU1TMWZpc2ZqNC9VM1RrUnRZOHRNdzV5V1BPR3hFbUhCcW1sUzNHTEd4VmROdUsrTEdlK3hHZ0NtcFptakhzK3dtK2gzK2lMeVlRSE15TFJpTWVrNTJkZ1hWL0Q2VlhNejBPa2tqdGQxNC9hT25vM2RxQWRQejVCN01yUkc0Wno1QldST1N5UG9jdU4rYzgrb2ZWM3UxT3phQzhDTVJmTW1iY3lPazQwRUEwSGFxdXNuYlV6QjZBaUJKUkJNUVd6M3JnVkpZdGZySjdTNmM4TkpMNXlCYko2WUJTcHBBbG5nVlk2ZFVoN21wdXMvTXVHK0xtYTh4eFNYYlU1bTlFU3Fhb3hhWjErazFWR1NKR1prMlhCNy9aenRHSDAzb2Mwc003OHdGYTh2d0xIVG93ZTdBM2o3UTl5VEhoZTRIZHJZVjErL0FBRDNHNVZ4OVhXNUV2RDVPZkdYM1FETXVYbkpwSTNiZXZ3VUFENVg1R2REY09FUUFrc2dtSUxJeGJNeDMzSURMcGVYLzNzeGV1eUdUdGFUV1ZLSTNuRCtNN25Ib3JGbGdMWXVKNGFTSXZUNU15YlUxOFdPOThoeEFHWm0yNkllVjlleXR6OTZ6cW1jd1lMYzBRTGhvM0YxcWVJbVBGUTdlazRzQUZkM0g4R1FQQkhCL2lGaFZyNUVzZFo0M3Yxd1NtZDJyMzN0UFFiYXVzaWVONHVzdVlXVE1tYlBtUmE2RzVSNmtaTVo5eVVZSFNHd0JJSXBpdTFMNjVCa1BidmZPVW5qbWE2b2JXU1RnYXpTV2VoTkU3ZEVqUm1keFB1MXlrUGN2UHFXeVI5L0VnbDA5K0J2YU1ZZzYySzZDTlhrbzdHS1lxdVdyN01kb3dldUErUmwyOGhNTWRQWU1qQnFIVWhROGp0NUI0YXNZOEdCWHExOHp1elNQSkpUYkFROUhyd2ZUTjFnNjcyLzJnN0E0aS9jT1dsajFyeXF1Q1N0R1Nta3o3cThmNFJjYWdpQkpSQk1VZlF6cG1QOTNGcUNRZmpmSi9maWo1R3pSellibVRaL05zYmt5YWtCR0FRc0dTbTRrdE01V3QyR1B0V08rZU0zVDhyWUZ3cnZoMGNBUmZRTUQzQlhNUTFhc0R6ZTZQZEp0V0MxZE1ZZjZGeGVvbGc4anRlTkhod1A0T29OY1JNRy9PQWFjaE9XTHB5dHpHLy94Uyt3ZkM0M0VWbGJKMGoxeTVXYytlQVk2Yk5uc3VET214TGFkeXdDUGovdi8vcFBBSlRmZlJ0SWljdGhKNWc0UW1BSkJGTVk2K2MraFZ5WVIrT1pMdjZ5NDJqTWRqcFpKcnQwRmlsNTB4S2FpRFNVSUdCSlMyYjYvQ0pTOG5QNS9SOC9WT1o0NzJlUVRCUGZqWGd4NHhrVVdJVTVrZlVnVlZTQjVROUVGMWpKVmdObW81N09YamRlWDN3SkxxOHNTa09ua3poNk9qNkI1ZWtQdDQ0RkhVTzdDVXV1VUhiTmVmWmYzUG13SEIwOS9PektUN0hqbi80OWdYMTJzK09mZmc3QXpROStCWjA4OGMwZDhWRDV5OS9UVmRkTXlzeHBMTm13ZGxMR0ZNU1BFRmdDd1JSR01oaEl2di92UUtmanBSMUhPWGx5NU9TVHlkTXptYjZnR0V0R0NnbjcvYStUc0dXbE1mMktPV1RNeWNkZ00vT24venZBbWFZdURITUtzZHg1VzZKR3Vtang3SGtmZ0ZrakNLeDRaRzFHaWdtQXp0NzRncDJ0WnBtNStTazB0VG5vR1JnOWRzbzlMQTFBMERFVTc2VUtMRi9ONllzNkRpc1lDS0EzeUJ6NC9WLzQ4S2svVDdnL3Y5ZkhuNzcyUXdiYXVsaTQ5bGFLYnJ3MkFiTWNuVVBiZDdKNzY1TlkwdXg4K3IvL0dWUFM1RmlZQmZFakJKWkFNTVV4bE0wbDZjdC9UU0FRNEQvK2F6ZWRuWkhKTEVPUlRRWXlaczhrNThwaWtxYWxJOG5qQ0dUWFNaaFNra2libFV2dVZhV2tGZVppTUN2aVlIZGxMYS91cWtJeUdraiszamN1Njl4WG9KVEg4VGUzWURQTFRNK1kyRU15M2E2c1lWZGYvQUxuS3MxTk9QcHV3cURYUnlEVWd1YjNLVHNLZ2Vrek16R2FEQkFJNER0NWVneXpubHhzV1duYy9kdC94WnlTekk3N2Y4NXo5LzJBZ2Zib01ZaWo0Umx3OHNjdmZwZjZQUWZKbmplTFcvNzV2Z1RQTnB5Z1AwRDF5Ky93UDUvY3lKKy91WVgwV1RQNTYrMC9KV3NTYzI0SjRtZHk3SmdDZ2VDaXh2clhkK0d0T2tuZkc1VTg5cDl2c1huVHpaak5Jd2UyeXlZanFmazVwT2JuNE9vZHdOMDNnS2ZmZ2MvdHdlLzF3V0ErSnAyc1IyZVFNWmlOeUJZenBpUXJwbVFya2k3eTk5MmV2YWQ0NnJmdmdTU1IvRStiTHZ2aXpnRHVRZXRWMFV6N2hFTm9oZ1JXL052MVorVWtrMncxY0tLaGh5VmxXYU8yRDNoODZFTFNkd1JkRGlTakdVbVNtRGtyaDFOVkRmaXFUMkVvbXp2MkM1Z2tjaGFXY08vemovQ0hMMzZYcWorL1JkM3UvU3o1NmxxdS9wdFBZTFJaNHVyajdLRnFYdGowWXpwcUcwbWVuc21uL3ZzaEROYm9HeFRpcGZOMEU1Mm5tM0IyOWhBTUJuRVB4cnc1dTNycHJHdWk3cDBET0R0N01GaE1YUGUzZjhYU3IzMFdnOFUwb1RFRjV3OGhzQVFDQVVnUzlnZitudTYyRGhxUG51Q3gvM2lMcjIxWWp0RVkzMWVFMlc3RGJJK2VYaUFlZ2tINDgwdUhlZkdsdzRxNDJ2eFZ6RGRmUCs3K0xpVTg3K3dEb0hpbWZjSjlaUTY2Q0hzSFJ0OFZxQ0pKY09XY05Db1B0K0owKzdDTVVqOHk0QitXbU5UdEFCUXIyTXhaMHpoVjFZQy9zV2xNODc0UXBPYm5jTy96UCtlMUgyNWovNU12OHNhL1BzNmVSNTltd1pvVmxLeXFZT1kxWmNoUll2OTZtMXQ1NTk5L3g4R25keEQwQjdDa3AvRFpKMzlJeW96c2NjK2xhZjl4WHZyV3Y5RmVFNzBJdTByRzdKbDg1RXQzVW43M3g3Q2twNHg3UE1Ia0lBU1dRQ0FBUURLYlNQbkpnM1IvL1g1T1ZOZnp5TCsvenRjMkxNZHFQYjhCNXYzOWJ2N255YjBjUHRLRVpEUmdmL0QvWWJyeHV2TTY1c1ZDc04rQjU4QlJkRHFKMlROaXgxK0ZZaGloVG1UYW9BVXJuclFMb1N5Y2s4NDdoMW81ZWFhUEs0clNSbXpyOTRXbmlRaDZYRnA4V0ZhT0lyUjhEYzFqR3Y5Q1liQ2F1Zlg3Zjh1Q3UyN21qWDk1bklhOWgvamdmLytQRC83My85REpNbW41MDBuT3pjSmdOZU4zZXhsbzY2S3R1bzZBejQvZWFHRGh1byt6N08vV1ljc2FlYzFHWS8vL3ZrQlAwMUQ4bzZUWFlVMUxJU1Z2R3BuRitVeS9vcGpDWll2SW1EMXpvcGNzbUVTRXdCSUlCQnE2bEdUU0h2MFIzZDk0aU5valZmenJUM2J5bFM5ZlQyN08rZm0xL01IK0JuNy9oL2ZwNjNVaEZ4VmcvOTQza0djWG5KZXhMa1k4NzMwSWZqLzVPVW1ZRFBIRm1vMlV2RFZsc1BiamdETjZycXhZcE50TnpNaXlVdDNZTzZyQUNnNVA1K0gxS0NrYmRIb3lweWtDSzlEU05xYng0NkhsV0MyT2poNW1YYjhvNFgzUHVHb2U2NTcrQ1djUFZuUDRqNjlRKy9wN2REZWVvK1BVR1RwT25kSGE2UTB5TXhiTm8yUmxCVmZjZFhQQ3JFaXJ0MzZMMVFucFNYQXhJUVNXUUNBSVEwcE9JdldSaCtuOXdTTzB2TGFiZi9ueHk5ejV5WEtXMzFDTWxLQThPNmRQdC9Qc253NVFjN0lWZERxc243a0QyMWZ2UVRKZTN1a1lodU91SEx0N2NDU0JaVEhwTVJwME9OeGpFMWdBVjg1SjU3WDN6eElJQkdQbTRnS0l1bjNVNXdHamhmUXNSWEFFdXVKTCt6QVdqajY3aTBOLzJNbFgzMzRDc3owK2E5OVl5VmxZUXM3Q0V1QnJPRHQ3NktvL2kyOXdSNlF0TTVYVWd0d0pWVFlRVEMzRUowVWdFRVFnbVUya1BQd3RuRmZPby8rWFQvRDc3ZSt6Wis4cDd2akVRdWJQeXhsWG4zNS9nTU5IbW5uOWpST2NxRzRCd0xDd2pPVC85MlhrT1ZOd0YxUWdpR2RRWU0ySlEyQ3BDVVpObzVRZlNrMHkwajlHQ3haQTJheFVkcjdiUkdQckFBWFRZd3VZUUpROFhFR2ZEOGtJMWlRbHlEdlEzUnZSWnFJVTNYUXQ3MjU3aHIyLytnTWYvZGJuRTk3L2NDenBLU0xPU1RBaGhNQVNDQVF4c1h4Nk5jWnJyNkx2cDQ5UnYvOHdQLy9GNjh6SVRXWEprbGxjVlo1SFpzYklsb1NCQVE4MUoxczVjclNaQXdmUDBOK3ZiT21YNTg3QmR1OWFwWUR6Rk0wKzdUMTJna0JQSHlsSlJpMS8xVWdFQmpPUGoxYmZNU1hKU0Z0My9ObmNWY3hHUFVVejdaeHE3aHRSWUVXMVl2cVVtQytibXUwL0dDVG85U0VsME5xVGQrMENqRFlMQjU3Nk04czJyb3NhZ0M0UVhFekl1NUtuUmpDcFFEQVd1dVNKNytpNlhOQVh6Q1QxMzMrQSs2MjlEUHo2OXpSVm4rS1paei9rbVdjL0pDWEZRbTVPQ21scFZpMnRnOXZ0bzZ2THdibVczckNjV3BLc3g3VHNXaXhyYnNPNEpQRnhOSmNhbnZjUEFsQ1VtenltODBZVFdLbEpSb0pCNHRvUk9Kd3JacWZ5enVGV2Jsd1UyMG9aVldBRmxKMkZPbjFJQUw3YkRRa1VXRHBaWnRiMWl6aXg0eDJxL3Z3MkMrNWNrYkMrQllMemdielBkdVdGbm9OQUlMZ0VNTjJ3Qk5NTlMvQitlQVRuWDE3RDgvYTc5UFQwMGRQampIbU9aRFpqS0MvRHRPeGFURGN0UTVjeU5qRnhPYVBXSHl6TWpTK2V5T1ZSUkV5eWRlVDhaT3B4cDlzL1pvRlZuSmZDbnl2UDRIRDVzSnFqbnl0Rmk4OEt4bGVhWjZMTS91aGlUdXg0aCtxZGxVSmdDUzU2aEl0UUlCQ01DY05WQ3pCY3RRQUNRWHdOWi9DZnFzZmYxa0d3M3dFNkNWMXlFcnFzRFBUNU01QUxaa0tVaEtKVEhwOGY3K0hqZ0ZMZ09TNkNZRFRvUmt6VEFFTTdDZU90UnhpS3JKZVlXNURDNmJQOWxNMUtqZHBHMGtjWlAxcmhaRlBpRTJEbVhic0FnTHJkSHlwalRsSDNzdURTUUFnc2dVQXdQblFTY21FZWNtSGVoWjdKSllldi9neEJ0NGVVWk5Pb0Zpa1Z0OWNmVjlza3EvSzE3aG1Id0FLNFluWWFSMDUxeFJSWSttaUZqQWRGZEhBd2V6ODZLYUh4VnlvWlJYbVlVNUp3OWZUVDA5Ukt5c3hwQ1I5RElFZ1U0cWVsUUNBUVRESyttbE1BNUdiR1gzc3dHSVJreStnQ1N4VmhQdi80eW5FWFRFOGFzVmkwTHBwdzBpbnZPZm9WZDdFdUxibzRTd1NaeFVxZXRJN2F4dk0yaGtDUUNJVEFFZ2dFZ2tuR1Yxc0hRSHB5Zk5ZclVDeFlTWEZZc095RExrS1AxejlLeStoSWtpTDhvcGJiMFVuUjgwRHBod21zekl4eGpSMFA5c0dTTkQ1WC9BV3RCWUlMZ1h6UDlyY3Y5QndFZ291T3hoa1p2SEhkL0lqM08vb2xqcDRWdjBzRUV5TzN0Z003a0pZY2Y1eVMyeHNnTlduMDFBU3lYc0ppa3NjVmc2V3lvQ2lOK25QOUVWbmRZeFZDbGd6S3ZEcmFlZ0R3WlowLzE1MHE4Q0pxSWlhQW5qTXRWUDd5OTN6c1J4c1QzcmRnNmlIbm4ybS8wSE1RQ0M0NlhLYm9sZ0szSDlyN1JXQ3RZR0xrZENxWnp1TVJUQ3BlWDRETUZITmNiVzFtR1g5Z2ZDNUNnT25wRnVxYSt5UGVqMXJRVzVKZ1VHQzFuRkZLNUhqenoxKzVJMCsvQXdCYjVzVHEvMFhqNUs1M09mYjg2MEpnQ1JLQytDa3VFQWdFazR5eHR3dFFTdHZFaTljWElEVTVQa0dXYkpXamw3UVpBL2FreUI4WmxyVEkvSENTeVFLUzhpaXBxMjRDSURocjlzUUdqMFV3eU5sRE5RQ2t6NXFSOE80Yjl4M0JNeEE3N1loQU1CYUV3QklJQklKSlJ1ZFZnc2gxWTBnekVLK0xFTUJxa1hHUE13WkxaVnFhQllkcnFPU09iREZoc0VTeG9Ga1YwZVgzK1RsK3NCWWtpVUJaMllUR2prWGRPd2ZvYlc0bHEzUVd0cXpFVzdCYWo5WW12RS9CMUVVSUxJRkFJSmhrQW9OQjRZRm8rYU5pNFBjSFNMSEZGeFNmRk1kdXc5SElTREdGN1VSTWlpWm9KQW5KcGdpc21pTjF1Qnh1K3ZPS0NDWW5QcUdzdTIrQWx4LzRCUUJYZm5wbHd2djN1VDEwMWpWaHNDUStmNWRnYWlJRWxrQWdFRXd5Zm9zU3krUnd4Mjlsc3BwbGROR3lxRWZCRmlNTCsxaXhEd282U2FmRG1obVpla0d5cFdnN0NOL2ZyV1NtNzFpWStQSnJiU2ZxZU9vejM2THoxQmt5U3dvb3YvdGo1MldNWUNDSWZZYklyU1ZJRENMUnFFQWdFRXd5enN6cEpEWFUwRHNRZjZxQmVCT1NBaVJaRGJqY3Z0RWJ4b2t0T3cyZGZsaThtQ1FocFdZQzRCaHc4ZTdyQjBHU2FMMzJKckxIT1k3UDVjYloxWWV6dTQvZXMyMjAxOVJUKzlwN05MeDdHSUpCNXQxK0E2dCt1REhtYnNhSmNPNDh4bllKcGlaQ1lBa0VBc0VrNDhpZEJmdmY1bHlIazRWejRqdG5MRzQvbTFsT25NRFNTU1JQejR4NFc3Sm5nS3pFaE8xKytYM2NMZzg5OHhiaFRzc0M0azhSMFhhaWpyZC85aVJuOWgxbG9MMHJhcHVaaXhld2JPTTZabDEvL29xRTErOVZpbStyNVhnRWdva2lCSlpBSUJCTU1uMEZKUURVbll0TWhSQ0xNVm13TERJZFBXT2VWdlMrc2pNaWs0dktSczE2NVhLNGVma1pKWjlpNHkyZkhsUGZ3VUNRdmIvYXpxazM5dUYxRG1XUE45b3NaSmZPb3ZENlJjeGR0WXpzZWJNbWRoR2o0UGQ0T2ZYNlBnQm1MNy9tdkk0bG1Eb0lnU1VRQ0FTVFRHL3hGZmhOWnRxNlhIVDFlVWlMSS8xQ3NqWCtyMnRiQW9MY0FTUlpqejBuMG5xbHk4elJVak84dFAxTityb0hjTXdxcGJ0azRkajYxMG1zL3RtM1dQMnpiK0hvNk1icmRHTzBtckdrcHlSay92RnlhUHRPM1AwT1psNDluNnk1aFpNNnR1RHlSUVM1Q3dRQ3dTUVRrQTEwbGkwR1lQK0pqbEhiZTd3Qk11Sk1NZ3BnTSt1QmlTZkV0Yy9JUmllSHgxNUpxVmxnVm9MMHo1MXA1OVUvVlFKd2NzMzZDWTFselVnbFplYTBDWW1yWUNESWE5Ly9UK3AyZnhqM09lNStCKy84NHJjQWZPUXJZN1BBQ1FRaklRU1dRQ0FRWEFET0x2OEVBUHVyTzNDT3NwdlFhTkNOS1NtcEpFbFl6ZkczajRiQllvNUl6U0JaYkpwcjBPL3o4OTgvMlk3UDY2UHptdVgwenA0M29mRVNRZCs1TnQ3ZDlneS9XL2VQUFBQbGgyamFmM3pFOWtGL2dCZisvc2YwblcybjZNWnJLYm0xWXBKbUtwZ0tDQmZoSU9iN05xSXZLWTI3dmIrNkN0ZWpqMkJhdXc2NVloa0FuaGVldzd0ckp3QlNSaWJXQng0ZXNROWY1VzY4ZTk0bTBOZ3dwcm5LNVlzdzNic2VYK1Z1M051ZndyaDZEWVlWSzNGdmZ3cGY1ZTZ3ZG5MRjlXSFg1WG5oT1h4N2RoTjBPTVkwcGtBUUwrdUxDOWc4djJoTTU1USsveHByQzNONWFLSHlXYTFzNitRTGxRZTA0Ni9jdkpTOEVYYU9WYloxc3IydW1SM05yV01hMTI2UWVlKzJHMmdjY0hMTHEzdFlsWnZOMXNVTDJGN1h6SU1IcTdSMkZWbnBmS2s0bjRxc2RPMDlkYnpLdHM0eGphblNXMVJHWDM0eE5OVHd6dUVXYnI0bWQxejl4R0lpdWJDQ1FOcXNYS1RRUktoR00xTFdURlRMMlBPLzJVWDl5V2FDU1NuVTNQV1ZpVTAyUWRoenMvbjRUemZ6MmcrMlVmM3lPMVMvL0E3MjNHd0tLaGFTTmJlUTlGa3pTTTdKd3BSc1E2ZlhzZVArbjNQcXpmZEptVG1OMjdkODQwSlBYM0NaSVFUV0JVU3VXSVpjc1F6bmxoK05TV1RwOHBRNlgvNXE1ZGVaS3FCQyt6Q3NXSWx4OVpxSWM0MnIxMkNvdUI3bm80OFE3QkIxS0FXWEJ4Vlo2VlJrcGJQbFdDM2JhdXJIZEI2Z0NiT3lWQ1ZCWnFOanFGeUtLcnFHczdZd2w3V0Z1VHg0c0lydGRjM2ptbmZENnM5Ujlzc0hlUDk0QjR2blpaSmlpNzgyNFdqWTQweEtHbzNrNlJuaHFSQmtBN3JzUE5BcFZyRjlieDFteHgvZUFxRHFzMS9IbXh5WkkrdENjZVduVjFKNjIvWHMvODJMSEhyNlpUcHFHem44eDFkaXRrL05tODVuZi9NanJCbVRHL2NsdVB3UkF1c2l3SHp2ZWh3UFB4QjNlMDFRZGJRaldhM284dklKT2h5YXdKS3NWZ3dyYmdVZzZIRGdldXdSQW8wTnlCWExNSzFkaDVTUmlla3o2M0E5K2tqaUwwWWd1SUJzbmwvRWp1WldHdU9zSjZjS3FsNnZrdEpBRlZ5cVZjcHVrSG1vZk1nQy9JWEtBMVMyZFlaWjI3NHhmODY0QlZiWHZLdnBMRnRNK3RGOXZGUjVocnR2U1Z3TnYvR0tOWVBGUkVwb3NrMjlqRzU2UHNpS1lLdXZhZUtKbnowTFFNdEhQMEZIZWVJVGkwNFVvODNDa3E5OG1pVmYrVFE5WjFwb2ZPOEk3VFgxOUp4cFlhQ3RDNS9MZzlmbEppVnZHcmY5eTk4TGNTVTRMd2lCTlVnMHNXSGIrcGoydCtQaEI4WnQ4VkZkZWFISTVZc3dybDJIWkxVaVpXU2l5OHVQeTRvMVhGREo1VXBlR0gvMWtEdERYcm9NeVdwVnh0NnpXK3ZYVjdrYnVmeHE5Q1dsNkV0SzR4NVRJQmdMMjJycUk2eElqMWVVYStKbEloWWYxWlVYU2xscU1nOHRMTlhFMHFyYzdMaXRXS0dDeW02UUtVdE5wdGZyNDJoM24zYmNQcGlpSU5RZHVMMnVtZlZ6Q3NpeldiVHoxSFBHeXFsUGZZWFVta1BVTnZWeHVMYUxLNG9TVTJOUHJ4OUhrTHRPSW4zMlRDUTFZN3hlUmpjdEgyU2xmRXhUWFF1UFBQZy9lRDFlSE1WWGNITE5seEl5MS9OSnlzeHBwTXdVMmRrRms0OEljcjlBK0E3c3g3ZG5LRjVLc2xqak9rKzFYcW1DU25VWEJocUhIaWk2akN6dDc5RDNsZGREZ2txWGx6L0dXUXNFRng5SHUvdkc1QlpVR1M2b1ZMRjFwTHRYYXhNYTl6V1NnSXJYWWhZTlYxWXVwKzVVZHVDOS9HNFQzZjN4WjNkUE5Ha0ZPUmlzZzdzVlpRTzY2UVZnVkY2M05uZndzKy84bXY1ZUI1N3BlUnorNHYwRTllSTN1a0FRQy9HdjR4SkJEV1JYa2NzWElZZFkySXlyMTJCY3ZRYnZycDFJbVVONWEwUXd1MEFRenZDWUtydEJwdXFPbTdUWEZWbnBWTjF4RTBlNys3anJ6WDFSeGR2NjRnSk5mTzFvYnRWY2pPUGwzTExiU0R1K240eURsZnp4dFRydS9YZ3g4bmdzVUJQQWxwMkdMWFBRZW1Zd0tXNUJ2ZUlXYkR4MWxxMFBQRUZmOXdEKzFFd09mdjBIZUpPRVcwMGdHQWtoc0M0UWN2a2k1S1hMdE5kQjU4aENLTjRkam9IR2Vqd3ZQRGZpdUJwQ2ZBa3VBOHBTazFsZlhEQ205dkVRYlhmZzhCMlN2VjRmbS9ZZGlYdnNrYWorM0dhdTNOTE11ZVk2WHRwemhrOHN5MHRJdi9GZ1Nra2lOVDhIR0V6RmtEVlRDMmcvY2VnVXYzejRLVndPTjk2c0hBN2U5ekR1MU1qa293S0JJQndoc0NZQmRiZGdMSUlkN2FQR1Fya2VVMkxFckQvY1F0RGh3SEgvWmkxZFE2Q3hBZWVXSDQwNkQ4T0tsVWdaUTErTW9YRmJBc0dsUUo3TkVtWnRpc1pvcVJxMjFkU3o1Vmd0enl4ZlRGbHFNbmU5dVkvR0FTZnYzWFlEQU5lKzlGYmNGaW03UWVieGl2S3dsQkxqeFcreWNQd3IzK1hLZjl2TW9aT2RwTmdNTEw5cStvVDdIUTJEeFVSRzBVd2tTVUpLVGtQS21JNmFpdUgxRi9heS9iLytndC9ueHpVOWo4TmYvNEVRVndKQm5JZ1lySXNBOTlOUGpkb202SERFakwrS1J5akpGY3ZDMGpaNGQrMFU3a1BCWmNlV1k3V2p4a1AxZW4weDQ2K09kdmVOS0s2MjFkUlQrdnhyRVRteVZ1Vm1KMlQrcm94cEhQM2E5L0VsMlhuN1lBdnZIQnBiWHEreElsdE1aSlVXb3BObHBNeGNwSXdjUU1Majl2THJmM3VHMy8zcVJmdytQMTFsaXptdytkK0V1QklJeG9Dd1lGMUF2THQyNGp2d1FkdzcrWVlIdEEvbHZ4bzV3SGQ0VHF4QVk4T0lia1NCNEZKalIzTXJPNXBhNDA0ME9qd2RnK28yakRkcDZQYTZadktzRnMwMVdaYWFQT1lrcDdFWXlDM2t5SDBQcytEUkIzaDkvMWtjYmg4M1g1T0xsT0NRTElQVlROYmNBblJtSzdyc0dXQlVZc3BxanRieFAxdWZvN1c1QXlTSk03ZDhtdnJiUDBkUUozNlBDd1JqUVV4Z2VuQUFBQ0FBU1VSQlZBaXNTU0JhbW9heFlObjg3YkFkZjJwQXU0cnAzdldZQVBjVDIvQWQyQjkycnVuZTlXRnhWMm9HZW9IZ1VpUmFtb2F4c0hsK1VWaTgxcXJjN0RDWDQvcmlBdFlYRjJodXhCSG5FcEtNZEtRczgrT2hQNytZUXh2L2xRVy8vQTd2SG0yanM5Zk5IZGZuWXpaT3JQeU5pc2x1STJOT0hucDd1dUlTMU9rWjZIUHdmMCs5eGhzdnZrc3dHTVNUa2tIMTMzeGp6QVdjQlFLQmdoQllGemxxM3F0NENIVVZTbFlyNWcwYnc4NzE3dG9wTEZlQ0tVMW9xWnVSVUZNeWhPYnZVcE9NUnFQWE03RmRoTkZ3NUJSd2NQTy9NVy9iOTZscHFHSGJDeldzdm00bWhkT1RKdFJ2MHZSTVV2SnowR1htSU5sUzhIcTh2UFpDSlM4OS9TYk9BUmRJRW1ldi96ajFuN2dYbjhXV29Lc1JDS1llUW1CZEFneHMyakJVZi9EQWZ0eFBiTlBTTnNRU1RjYTE2OExFVlRUcmxrQXcxZmg4NVljQXZIZmJEZlI2ZlZ6NzBsdGEyZ1kxTFVNb29mRlpaYW5KWVFJcnp6cGt0VHJTMDh2NXdKMld4YUcvL3dtei8vZ3JlR2NIdjlsUnl4VnowbGxlUG8zVXBMRmxhdGViREtRVjVHS1pQaDBwTTRmdUhoZHZQdnNxYi8zbFBmcDZsSGpNbmprTHFGdnpSZm9LNXA2UHl4RUlwaFJDWUYza3FJSG9ZNG0vMHBlVWhya0ZoYmdTQ0JSNnZUNHRJRDJlK0tzOWJWMmFTM0Y5Y1FHVmJaMGM3ZTVqVlc2MjluN2pnSk1kVGVjdkdEMWdNSEx5N3IranZYd1p4Yi83T1lkUHRuTDBWQmRsczlNb241TkcvclNrRWVPekpJTk1jblk2eVRPbTRUU21zSytxalEvZWZwdEQ3NTNBN3c4QTBEdDdIbzJyN3Faci9qWG43VG9FZ3FtR0VGaVhDS0U3Q0VQZGh0RjJFT3Juemd0N3JjWm9EY2U5L1NsOGxidWpIQkVJTGw5VVFSVmFEaWYwZFNpVmJaMXNxNmxuZlhFQmRvUE1NOHNYUjdUNTdzRVRFMDQwR2cvZDh4YngvbmYvaTV5My8wemVLOXM1ZkxLVHd5YzdzVmtNRk9UYXlVbzFrWlprd0dLV01aa002SXdHZkRxWkFXK0FjOVZucUs4L1JGTjlDOEdnMGwvQWFLWjlVUVZubDYrbXIxQllyQVNDUkNNRTFpV0FXcXR3ZVAzQlFHTkQxRlFMb2dTT1FCQ2JVQXVXbXE1QmZSMk5MY2RxYVhRNFdaV2JIUmJEdGIydW1hZnJtOFpkZzNBOEJQVXl6Uis5ZzdQWGY1eU1nM3VZdHZjVmdqVUhPVmJiRWRmNVBsdXlWbUM2ODhvbCtFMkpEYzRYQ0FSRFNQMGJ2eHE4MEpNUUNDNDJxb3R5K01NZFN5TGViKzZSMkhzcU1UdTVCSUpFb1BONnNKODZpcTJwRGt2TEdReDlYZWg4UGlDSU56a05UMG82QXprRkRPUVY0WmlXUjhMelBVVGg2b0lBQmVtQjh6Nk9RSEF4SXl4WUFvRkFjQWtUTUJqcG5uc1YzWE92dXRCVEVRZ0VJWWpNY1FLQlFDQVFDQVFKUmdnc2dVQWdFQWdFZ2dRakJKWkFJQkFJQkFKQmdoRUNTeUFRQ0FRQ2dTREJDSUVsRUFnRUFvRkFrR0NFd0JJSUJBS0JRQ0JJTUVKZ0NRUUNnVUFnRUNRWUliQUVBb0ZBSUJBSUVveElOQ280dnhnTVNQS2w5ekhUR1F3WGVnb0NBVlpaanp3Sm1kY1RqVUhuQTBRbWQ4SFVSdkkzblFsSzVzaDZWRUZuWkkyN2l4NmpBVWtmL21BTStyM2c4VjZnQ1kwVFNTTHFQWEU1MFNxMVhzcjRmUVF2OG52UzFuV09uMDl6UnJ6L1VXc3ArWWFoZW5TeVRzS3FEeStkNHc4R0dmRDV6L3NjRTAyMGg3blQ3OGNidUxRK2M5SHVTWUFnL2Q1TDc1NUV3M1VKM0pQOWptYnFPWE9ocHlFUVhGQkVMVUtCSUFxaUZxRkFNSDVFTFVLQlFNUmdDUVFDZ1VBZ0VDUWNJYkFFQW9GQUlCQUlFb3dRV0FLQlFDQVFDQVFKUmdnc2dVQWdFQWdFZ2dRakJKWkFJQkFJQkFKQmdoRUNTeUFRQ0FRQ2dTREJDSUVsRUFnRUFvRkFrR0NFd0JJSUJBS0JRQ0JJTUVKZ0NRUUNnVUFnRUNRWUliQUVBb0ZBSUJBSUVvd1FXQUtCUUNBUUNBUUpac3dDUzE5U2ltM3JZOWkyUG9hVWthbTliMXE3VG50ZlgxS2EwRW1PbDR0dFB1Y2J3NHFWMkxZK2h2bStqZWYxbklzRktTTVQ4MzBidGZ0OHFWSjF4MDFVM1hFVG0rY1h4VHgyS1pObnMwUmN4K01WNVZUZGNSUHJpd3ZpN21kdFllNll6N2tZVWEvajhZcHlBQ3F5MHNkMW45VjFWZnNSQ0FRWEZ3bXhZTW5saTVBcmxpV2lLNEVnYmd3VjExOVc0bmw5Y1FGNU5zdUZub1pBSUJBSUVvQ2NrRjZzVmdBQ2pRMDR0L3dvSVYwbUFzZkREMkRaL0cwQ1p4b3U5RlFtQmUrdW5YaDM3VHp2NTF3c1NCYmxjK2ZkdFJQUEM4OWQ0TmtraHMzemk5aTA3OGlGbnNaNTV3dVZCeTcwRkM0YUt0czZLWDMrdFFzOURZRkFrR0FtTExBTUsxWmlYTDBHQUYxZVByYXRqK0Y2OUJIODFWVmg3Y3ozYlVSZlVocjJNTlRsNVdQWi9HMkNEZ2ZPN3o5QTBPRkF5c2pFdU9MV01JdVlyM0kzbmwwdkUreG9EK3NyZEJ5NVlobW10ZXZ3dlBDY0poZ3NtNytOWi90VEJCME9RSEZqeWhYTGNEK3hEWG5RK3VGNCtBR0NIZTNJNVlzd3JsNmp1VDM5MVZWNFhuaU9RR05zY1daWXNSTERpbHVSUWdTbWQ5ZkwrQTdzRDF1YjBEbEpHWmxZSDNnWWYzVVZya2NmMGRiQnNPSlc1UEpGV3QrSzhIbFpXeFAxSEYvbDI1anVYYStONTk3K2xEWkhkYnpRdnFPdFoyamYwYzRaZmwvVjlmQysrcksyM3ZxU1VzejNiWXc0ei9yQXcwZ1ptUXhzMnFDTWI3VmlXSEVyaGhVcmgrN25nZjE0ZDcwODR0cnFTMG94M0h4cm1JVXFkQjNWejhEUWZWaXBqWG1wMGpqZ1pGVnVOaFZaNlZTMmRjWnN0NzY0SU15ZHVMMnVtWjhlTzBtdjE4ZERDMHRaVzVqTDBlNCs3bnB6bjlibXZkdHV3RzZRMlhLc2xtMDE5WlNsSnJONWZoRVZXZW5hMkZ1TzFiS2p1UlZRM0ZnUExTeGx5N0ZhN0FhWjljVUZQSGl3aXUxMXpYSE5hVWR6Szl0cTZqbmEzUmUxL2VNVjVWUmtwV3Z6QWNWVjlxWGlmRzFPdlY0ZjIycnF0ZVBSVUs5M1IzTXJEeDZvb3RmcmkyZ3p2RjhnYk56UStXL2FkNFJWTTdKWmxadXRyZTJEQjZzaStneGw4L3lpTUxmbDhMNUhveUlyWFhQenFVSnJ2UE5SNzl2UjdqNGVQRmdWYy8wRkFzSDVaOUtDM1AwbmpnT0VpUWoxQWVtdnJsS0VoTldLNWI2TkVlNUd1V0labHMzZkRvdjVpZ2ZIL1pzMXNST0tjZTI2c0FlM1ljVktUUGV1RCt0ZlgxS0taZk8zMGVYbFIrM2J1SHFOSXNnR3hSVW9Rc2wwNy9xd2F4d05LU01UODRhTkVlY1lWcXpFdkNFOExrbzNNMThUVitwNDVnMGJZNjVMclBWVXJ6Y1dwbnZYaDRrckdCSlVZN2syQVBPR2pXSGlDcFRQd0VqejF1WGxod2tvRmVQcU5WZzJmM3RNNDE5S2JEdXBQSlNqeFdLcGJGMjhJT0w0MnNKY25sbStHTHRCMW9SWldXb3lkb01jOGZmVGRVMlVwU2J6elBMRllZSWp6MlpoNitJRkVmRk42NHNMUm8xNWlqYW5WYm5aL0xyaUttM2MwU2hMVGRaRWw0cmRJRWVJbCtGelcxdVlTMlZiSjV2MkhZa3FycUwxQzhvYVA3TjhjVVQ3emZPTE5ERUR5dHFPZEQ4ZVdsZ2FNYi9OODR0NGFHRmlYTmRqbVU5WmFqSVBMU3lsY2NESnB2ZVBDSEVsRUZ4Z0ptekI4dTdhU2REcHdMUjJYWVExSXhUZmdmMmFoVWlYbDArZ3NRRmRudkxGRkdoVUhpeUdGYmNpWldRU2FHekE5Y1EyZ2gzdGlnQzVkejI2dkh5TUsyN0Z2ZjJwaVU0Wm5BNmNqejBTWXZtNUZRRDNFOXZ3SGRpUFpMVml1bmU5WWtWWmNTdnVKN1pGZENFdlhSWm1lWU1oSzVxKy9PcW93aTRhY3ZraUpLczEzTXBsdFdMZXNCRmRYajY2dkh5dC85QjJVa1ltbHZzVWtXS291RDZxaTB4ZXVnd3BJeE4vZFJYdUo3WVJkRGcwVWFZdktRMFRoNkh6a2NzWEVYUTRjRCt4VGJOWXFjTFJ1SHBOM05lbXpuLzQ1MEsxSk1ybGk2SzZKMDFyMXdIS1owWmRlMzFKS2FiQno0RmNzUXpYbzQ5by9ZU3UzYVhNOXJwbXpZSzF0akEzd2xwVWxwck1xdHpzc0Fkb1dXb3lXNjlaUUo3TndtY0taN0N0cHA1ZXJ3KzdRYVlpSzUwZHphM2FBN3F5clpOZXIwOFRCTnRxNnRseXJCWVlzc0tzTHk0SXM3N1lEVEtiOWgzUkxGdkRxY2hLajVpVDNTRHo2NHFyS0V0TnBpSXJuYU05b3ovb1ZkRVFPaWZWR3JNcU56dkNJclFxTjV2Tjg0czQydDAzb2t0VkZUbzdtbHUxZGhWWjZXeGR2SUN5MU9TbzYzekxxM3RvSEhCcWExS1JsYzRXYXFQMnYycUdzclozdmJtUG85MTk1TmtzUExOOE1Xc0xjMGUxZk1WTFBQUEpzMW40ZGNWVjlIcDliSHIvQ0kwRHpvU01MUkFJeHMra1diQ0NIZTJhb0ZFdEUrci9mWHQyQTBQV0xXK0lPekRZMGE2Skt2MFlyU2V4OEZhK3JjMUZsNWVQWkxYaU83QmZFdzVCaDBNVExDTUZVYXRDVEhWUitVOVVNYkJwUTFSQk5ockcxV3UwZnZUbGkzQnUrUkVEbXphRXVkR0NEb2NtSklJZDdYZ3IzOWF1SVJyNnVmTUE4RlcrclltMFFHTURqdnMzeDNTbjZVc0d6OW16Tzh6TnF3bzBWU0NQQlgxSkthYTE2N1RyYzI5L2lvRk5HNktLb3REK1BTRmkybDlkaFhmWHkyRnp2Qno1cnhybGZxK2ZVeEJoL1ZHdE1OdnJtelhyeE5IdVByYlhLd0toTERVWklNeUtGWHJlbnJZdTdYV3YxNmNKR1ZEY1dxb3dVODlUKzRvbHJrTEgyTkhjcXMycDErdmpyamYzVWZyOGF5TzZPcU5kVzZpUTJsN1hUT256ci9INXlnOGp4bnlvWFBsMytlREI2RzVCVUVTSE9yOEhEd3g5bGl2Yk9zUGNrcUZzcjIvV3hJbTZYaU5aNGE1OTZTMUtuMytObzkxOXJNcFZYSG54V3UzaUlaNzVwQmdNYkwxbUFYYURQS0piVmlBUVRDNkoreWFJQTkrQkR6RG01YVBMSzlDRVRhQ3hZY2hDbzhZL0RZdk5VVVZHTkl2TGVBZzZIZHJmYXFDMFhMNElPY3BXLzFoamVsNThUckZXbFpScUlzeTRlZzNCam5aY1Qyd2JNYjRvRk4rZTNjamxWeXNXdWhDM25HbnR1b2pnN2VIQitxSFhFUTNkNEhxcTZ6dWNhTzlMbWNvNWdZNjJpR09CTXcySzVjc1MzMzBJTkRiZ3E5eXRXS3RDM0pScXpKY3EycUxPdWFNOTRsaWlQd2NYSTVWdG5XeXZhMlp0WVM2Zktad1J0YzNtK1VWUjNVVHFnM2RIVTZ0bUNkdG1xTmRFeHROMVRXSHRZcVVGU0RFWXRML1BETGhHbkcrZVZkbjFHRXZrOUhwOXBCZ05VWTlwZllUc25Jeld6L0QzUWwxbW0rY1h4UXlZVitmV09PQ002RU1WSWNQRlNvL1hPK0pjaDdNcU41dUh5a3UxZnJiWE5XdENOUkhFTTU5UVFieSt1SUNuNjVwaTNnK0JRREI1VEtyQUNnMlFWdDJDdmdNZmFNZFZsNkErTHgvZm9BVUxoaXcwc1lRQ0VQZERQeFpqM1lubXE5eU5yM0kzK3BKU2JYNnFpek9XV3hFaXhVSFE0ZEIyWHFxeFNycThBdVR5UlJoV3JNUjM0QVB0dW5YRFlwYlVheDVKUUVrWll4TWt3ZloyS0FGZFJsYkVNZDNNd2Z2Z2RNUmU3Mkh2dTdjL2hYdjdVOGdWeTVBc1ZpU3JUYkhTbFpRaUwxMFdZY1VLRE41M0tTTVR5V29OdTdaNFBnZVhBOXRPMXJPMk1EZG03TkZJTGpzWWNnV1dwU1pyTGl6MVBaWGhRZkREV1d2TGpXdXVxZ0NZaUtEbzhReUpDTHRCSGxVYzlIcDlWTFoxYWlJeTFxYUFSb2RpK2NteldTTDZWVVhKUklTSTNTQ3pkZkVDR2dlYzNQeEtwZGFYdXVhVGlTcks3UVpaY3hVTEJJSUx5NlJtY2c4ME5oQm9iRkIybGxWY0R4RG1oaHJhZlhlclpzMlNNaksxbUJ4L2lBc1BobHhna3RXS1hINzErT1owcGtIYlRSY2F3RzI2ZHoyMnJZOWhmZURoaUhQVTNaSnFDZ2cxMVlFcWxJWUxtdEM1R1paZUgzWk1IVWV1V0tiMTQzNWlHNzVLeFcwYUttU2tqRXpORXFUR1hzRlFETnR3aG5aWURvMnB5OHZIK3NNdFVhOUxPV2R3TThMU1pXSHVVZE85NnhYQk0ranFWYTFudXBuNTJyMlNLNWFGWGJ1YXhOUzBkaDIreXQyYWlCMHBqaTdVbFd3Y3ZPK0FGZzhYT3NmTEZYVkgzM0RSb2xwZE5zOHYwZ1NDR3ZOVGRjZE5XcnlSS2tCQWNUWENrSHNKRkxHbDdpSlVXVjljb0NXN0hFc3VMblZPcTNLenRmUHNCbG1iVXp4OTlYcDlXaitoVmpzMUllZndnUEZ0TmZVOGVLQktjNTM5ODhLNVVmdHRISEJxL2FvdVJWRGNncXA0amRlRkdZMEZxZmF3YXdEbDNpVFNSUmdQbFcyZFBIaXdTaFBkbStjWGlYeHFBc0ZGd09SK0U2QTg5SFY1eWtNNTlHRUtTdXlWWEw1SUVRSERCRURRNGNBekdJUGpyejZ1V1hoVXE4OTRyUnBLWE5QTEdGZXZ3WFR2ZWt6RGprZXphZ1VhRy9CWFY2RXZLY1g2d3kwUngxV3JuQnJZcndxeWFQUDBWYjZOWEw0STA5cDFtcERVNXRiUmpyKzZTaE13UVljam9sM1E0ZEJpMklianJYeGJFMHJETTUyN1g0eHVyZk1kMkkvK3dINWxwMStVN083cWVnUWFHelNMWStpOVVuZURndUwrTkF5bWlJaVdpRFpXc0x4NysxTllObjg3cXR0V2RUdGU3anhkMThUNjR2QTRMRFVlYWxWdWRzUU91RjZ2VDl1RkNFTnVRdlZCcTdvSFFZbTNxbGllSG5XSDRMYWFlaG9IbkN6TlNvdHJubXJzVlZscU1xL2N2RFRzMlBZNkpYNG9ub2Y5dHBwNmJUZmljUGRuNkhXcHFOZjcwTUpTOG15V3FNSHFvTVJvUGJOOE1hdHlzeU5jb2tlNysyS21uWWlISTkyOXdGQkdkZUNDQnBkdk9WYXJ1VS9YenlsSVdKQzlRQ0FZSDVOZWl6RFVKVGo4QVJ0ME9IQSsra2pFQTlSWHVSdm5saDlwZ2UrcU5VVEZYMTJGSjRaZ2lBZlZhaFFxOWdLTkRiZ2VmU1MyQ0hoaVc0UjdTdzNJVitjZjdHZ1BjeFVPZjYzT2ZmallNSGpOdzNaa0JzNDBoRmwvL05WVnVCNTdKTGFMc0tNZDEyUGhPY25VT1l3a1V0eFBiSXNRbHVwT3dORDFVSGQ2YXVkdGZ5b3NUaXpvY09CNkxISU4xYjVDencyN3pzRzFINTVMemZQQ2N4ZFZJdHZ6U2EvWHgwK1BuWXg0ZjlPK0kxcEF1c3FPNWxidWVuTmYyTU05MUNVWXl6MFk2bWJzOWZwNDhHQlZXT0I3dkh5KzhzTUlvYkxsV08yWUh2RHFMci9oMXpEOHVrTFpYdGNjWnFtTEp1U09kdmZ4aGNvREVaYXFMY2RxUjNTUnhrT3YxeGVXSHFLeXJaTXY3RG1ndlo3c2tqNnE1Uk1VNjkvd0FINkJRREM1U1AwYnZ4cWN6QUhWNUtJQXppMC9panNZZkNvVExUbXA0UHhTWFpUREgrNVlFdkYrYzQvRTNsUDZDekFqZ2VEUzRlcUNBQVhwZ1FzOURZSGdnaktwTHNKUU41Vy91a3FJSzRGQUlCQUlCSmNsays0aWhNRVNMMDhuSUdHb1FDQVFDQVFDd1VYSXBGcXdMdlZhY1JlS1lFZTdXRHVCUUNBUUNDNGhMb2dGU3lBUUNBUUNnZUJ5Umdnc2dVQWdFQWdFZ2dRakJKWkFJQkFJQkFKQmdoRUNTeUFRQ0FRQ2dTREJDSUVWZ3ZtK2pkaTJQcVpsaDVjcmxtSGIrbGpVak9ZVFJTMGpNNWErMWZtbzg3dVlPVi9ySmhnZmFpbWN0WVh4MVJnODN6eTBzSlNxTzI2YXRHU2NGOXYxUjZNaUt6MnVOVkZMR29sRW9nTEJ4WTBRV0lJSm9aYmhHVjZLUnlBUXhFWVZmSTlYbEYvb3FRZ0VndlBFcE5jaXZKaVp6Q3pwYW1GbmdVQWdHQXVsejc5Mm9hY2dFQWppWUZ3Q1MxOVNxaFV4QmlVcnUvZlZsN1hhY2ZxU1VzejNiZFRxMlJsWHI5SGF1WjkrS21ZTk9sQks2UmhYcjBGZlVnb29PYUE4THp5bjFiTUw3VnVYa2FVVkVmYnUyb20zOG0xTW4xbW5uZXQ1NGJrd0VTTlhMTU40KzVxaFlzU1Z1L0hzZWxtYmovbStqZWhMU2lQT0d3dWhaVzE4bFc5anVuYzlNSmhjZGZ0VFd2WjZ3NHFWR0ZldkNTdC9JMlZrWWh3c2pxeWlDTEdYWTlZYk5LMWRoMXl4RE4rQi9YaTJQeFhSVGwydjRXVjJyQTg4akpTUnFlWFhVdnR4UDdFTnVlTDZtR3NZclc4VjI5Ykh3bW94QXNqbGl6Q3VYWWRrdFVhc1FlZzZxUGdxZCtONThibHhGKysrRk1teldWZy9weURNZmJXOXJwbHRKK3UxT254ckMzTjVhR0VwVzQ3VllqZklyQzlXaXZuR0tsYThlWDZSNW1yYTBkd2F0WjdmYU9PcWZhaTFDd0dlV2I2WXN0Umt0dFhVYTNONTc3WWJBUGhDNVFFQUhxOG8xMnJpcVlXYks5czYrZTdCRXlNV1E2N0lTdWRMeGZsaHJxOHR4MnJaVmhOZTdEbjAydUpwRSt2Nm82M0g1dmxGV3NIa3hnRW4yMDdXaDYxeDFSMDNVZG5XeWZhNlpoNHFMOFZ1a0drY2NQTGRneWVvYk92RWJwQjU5WllLN0FhWlRmdU9hUFVlMXhjWHNIbCtFWlZ0bmV4cDY5TFdSWFVMM3ZMcW5yQzVxTzNWK1Q5NG9FcXJjYWdXbGxackxGWmtwY2U5NXF0eXM3VjVIKzN1MDRwc2I2OXJGc1doQllJRU0yWVhvWlNSaWZtK2pacTRncUVIclpTUkdkYldVSEY5Mk1OVFgxS0tlVkJ3UkozTVlKMUM5ZUd1am1lNmQzMUUzSkZobUJBeHJGaUpaVkFncVJoWHIwRXVYd1FvNHNvMCtLQlhrU3VXWVRsUGNVSzZtZm1hdUFMbDJzd2JJdGRJUmJKYXNkeTNNZXlhUUxrdVU0dzFNNnhZaVZ5eFRDc1luUWhSWWx5N0xtSU5RKy9oV0ZEWFFGMXpiUTBHWDV2dVhSL1J0MXl4RE12bWI0ZmRwOHNadTBIbThhWGxFYkZCYXd0emVXYjU0b2dDeHV1TEMwYU4wZG02ZUVGWW0xVzUyUkhueERQdW5yWXVBTXBTazdFYlpPd0dtYkxVWk8wOWdBV3Bka0FwZkJ4YVVIbHRRYTcyb0FkRlNHeTlaa0hNT1plbEp2TjRSWGxFWE5IbStVVThzM3l4OXZxaGhhVVIxN0o1ZmhFUExSejZ6TVp6L2RGNGZHbTVKcTVBRVZ3UExTeU5XS004cTRXdGl4ZGdOOGhhdThjcnlyRWI1TEIxQ0wwV2RiM1VOUjJKVUhHbHpuL3I0dGhycHpMYW1xdjlxUE11UzAzbW9mTFNpSDRFQWtGaUdMUEFVZ1dMNzhCK0JqWnRZR0RUQnMzQ29SNVRrVEl5Y1QzNkNBT2JOdUIrWXBzeVlGNSt6SWVuWWNXdGdHSzFHZDYzZWt6RDZjRHg4QU1NYk5xZ1djNkNEZ2VPK3pmanVIK3pacFZTQlkyK1pCNmdXR1RVdmdPTkRVZ1ptV0dDSWxGSVZxczJsdVBoQndoMnRDTlpyUmdxcm8vYVhsNjZEQ2tqRTM5MUZZNzdOek93YVFQT0xUOGk2SENnTHltTldETzVmQkhHMVdzVXE5RGcyaWFFa0hWVkxaQ0dGU3VqM3JQaFZyR0JUUnZDckZkaGF6QjRUeVNyRmQzTWZIUjUrY2psaXdoMnRPUGM4cU9oNisxb1I4cklSRjY2TEdLOHk1SDF4UVhrMlN3YzdlN2psbGYzVVByOGE5enk2aDZPL3YvMnppK21xVFR2NDk5Q0M3WU5sWmQveWVJVVRCallMcERZWlJhek5zNXJNamdPZWJQR0dCUG13aHRqM2licjNFalN2ZEZFTjY4bU16ZERnamQ2MFkzcmpSZkRabUtJYnd3NkE0bC9VamJMdnFZbXdIWkFOMEsxRi94eHNXeGI0WlQydlRnOEQ4OXplbHA2U2hGSGY1OWtFbnA2enZQdmRPYjV6dS8zZTM2L3BXWFZVdlZ4cGpEcUhSdUhhM0JFMTNyVlZsbkJSUUs3NzhUOU1XNzlNTkp2WVA0VmY4NXB0M0t4RjFXU1hGZ3g0U0NLSzNiLzZVQVFyc0VSOUk2Tjgzdlo1cTZGQ2FTaHlCeGNneU53RFk3Z2RDQ0lxSkpFVzJVRkZ6bmRlOVM1bmJnL3hzY2NWWkw4KzN6bnI3ZHVUcnNWNFZnQysrODhrTVl0aWk0MnQ3N0paMUwvd0lhZ1ltdkJ4cXI5amxuLzJHZlg0SWhrWlhKWXpIenRtT1V3bjREMnpkYWNpY3lCNXhHNEJrZXcvODZEdkN4N0JFRVVobUdCeGNUUHlnMi9LaGk2amtqV0xKRms4REVYUDh6RkJ3Q3c2Z3VzMGhZWDB2RTQzOWdCVlJDbDQzRjFZeGI2V2ZzcHhFWFUyay8vV08vai81Q094NUdPeDdIMmsyenVYcm5oNTRLdHhObVFWVFFVaTNROHpzVmhlbkVCU3VBaEFHUmRxOUpmcWdJd0dYaklMVkdwOEN3WFd5SWx6a2FVOVp3RUFLem91QVczZ2hKNHlOZFZHYjdIMnk3NVNIL2N1WkRXUVBOT21LaFZBZys1eXpBVm5oWFc2ZTJjTHR0cDJPYnRuOTV3QjRaakNlNnVFVGRwUU4yUW1kdEpEN1lSRDBYbStIMFRTOHY0N3ZuTGd2b1ZyVEdzN2UrZXYrVFdMQ2F3SnBhV3BmYUhJblA4V1hHOHU4c3NHV04yMnEyOG5ZdkJqZDhJRXlQaXZKajRtVmhhUm5kOUhicnI2eVRSbHUvOHRVd3NMVXVDeWR2Y21GWFVSSlVrSDFjNGxzRDRVaFFBNENoVHh6SDBVdTFYWENQbWt0T3VreDdpMmswc0xlY3Rnbkt0dVdoOS9IYnlhY1k4Q0lJb1BvWmpzRXcyRzhwNlRuSnJWWHB4QVd0Q1RJMkV3WTJmQ1o1c0o5Sk1XWVJaUHBRNEcxRGVjMUtLRzB2SDR6QlZGOXhrVGxJdjVEVkpKM0t2UmNtNnBTMmJXQkt2aTViQ3NxUEhpeHFjbjlLK3kwUWNLRkNJYXRkQWoyd3V5QS9GUmNpc1FoT3Y1WTJYYmNSYWk4K0wySnU4Mm8ydXloWWJyUVVuMzM2WmtISGFySGl0S0lncVNZek8vMHUxZ05tc2FOdXRidHBhMGFmdFB4ZE9tenFXY0N5Uk1VN3RlTVFZSWtDMXhrU1ZaTVk2YlRaL1BiU3V1V3ppNC9XcWtyT2RxSkxFVUdRTzNmVjFra2pUV3ZteWtZOEkwKzAzeDVxTHdsWmNDKzM3SndpaWVCZ1dXSmF1TDJCMmQwakJ6NWF1STRER1BWZ29xZkFzRW4zZlpQMitVSGNlRTFlSnZtKzRpQ2cvNWMxcVVkb3FKWnBZS3lZT2N3a29VM1Yrd2lJZGoyTnRLZ1N6dXdPbExTNlV0cmk0cFRCdnNvaFZVMDBOTUpWNTMyWUNzVkJXYnZobDYrWUhSamlXVUMwNHV5c2tTd1d6TnVRakRQUmcxaFQrV1NOQTh1MDNNUDhLUGpSSnJrQm1zZkhVVm5FMzQxWmNUZUc0K3F6VGJ1VnhUSHJqY1ZqTTZPOXNSemlXd09FZkF2dytyWlV2bi9scjZhNnZnNisxQ1VPUk9jbTlWbWllTGlaTTJmaUJUQkg2TmhGRm9iakdUQ0FUQkZGOERMc0ltU0JoRzI2SnN5RnJYSkZSMXFaQy9CUWhneVhrdFBkZnl4b2duZzk4M09zQ3grenV5SWdaS3lhbTZob2VzRzZxcnVGcmxBcnIvMTh4RTBobVlTMUxuQTJ3ZmQwSDI0WEwwcjNLOEYzMXhPQzZLNi84eTVOWng4SGYwMGNOZlAzTW5vUFo0K0FPZk1xL1kyN1VkRHllOCtSbklUQ1JLNTVHTlZYWHdPbzdCM3YvTlpUM1pKL1QrNFI0eW94WmxWaHdOYkRoYnNvWEh2OGpXRS9hS2l2dzVkNDlCZlU3c2JUTTQ2Q1ltSW9xU1V3c0xmTzRwM3d0TTlrSXh4TGNhaU1HWFh0cXE3akFDY3kvNG5GZndJWUE5TFUyU2VJcDMvbHI0ZkZsNjFZZ2g4VXNXYk9Nd2x5U3pMWEsxbXluRVB2L1ErdkhBTUJQb3hJRXNUMFl0bUNsd3JNb2JYR2h2T2NrM3dTTHRmbXUzcjRGcSs4Y0xGMUhNazROS3NQMzFINEtGRm1wOEt3cVdBU3h3Z0txODRXbFlBRFVuRm01ckVicGVGeGFJM1l0T2ZwSTkzNGw4QkRtQXdkNTRrNlJsZis5bFhGL09oN0g2dkJkOVdUa3VwZ1RBOHdacWZBc242YzA5L1c0TnQwNWZ0MG5qeTFIbWdqUnNxV1hwaUViYTFNaEpJT1BZWFozd09vN3B6dTNEd0gvOUF5M2RQeHcrSUQwWFZSSnd2L1VXSXpNeE5JeWQwK0pTU3kxbGpBai9RYm1YL0ZZSng2dkZVOWtqYjhxaEl0UFF2aitVQ2U2Nit0NEdnSnhUZ1BQSTlLcFBYYVAxbktXNy95MWlPa3dtSERjaWxXT0NScTJSdG5TYVdSTDA3QWRmRGZ6RXBjcVhkSWNDN1dRRWdTeE9RVUV1ZCtWWERvckF6ZDVZSEtoeC9rWnpEMG90cCtPeDdFeWNGTUtmQzhFTWY5U2VuRkJGVWdzSjlYaEwzSTlXaENwRjJyT0o4YmFWQWh2cmwzSkxsUVdGL0RtbWl6YTBvc0xxZ3N0aTJCSkJoN3grOHU2dnNncUZ0L2M4RXNpZUdYZ1p0YjRxTlgvdlNXTlliT2NZS253Yk1FdXZwVWJmbjZJZ1pFTVB1YW5DVDhFb2tvU3AwZURHUnZ3d1BNSVR0d2ZLMmlUN3gwYmw5b2JlQjdKaUNjeTBxOG9vTVRnYSsyMXJUQ3h0TXp6T29uMFRUN2pKK21pU2hLOVkrT1MrL0wwYUpCL1p0YVlmT2F2WlNneXgwLzJzV2Q2LzY2NkNzVUFmeU9JTGtIdHZJWWljMi9kb3NWeVhiSDFtbGhhNWdIdkJFRVVIOU8vei80K3ZkT0QrTGxoOVozTFNKakpFQk9OdnMzTThGdUZKUnJkekRMM29URFY5QXY4NWRodk02NUhYcHZ3MTMrVzdzQ0lpSjhiTEdnK3FpU3gvODZESFIyTG1CQldUSURLOG55SnFTT0t3U2VOS1RSV3BZcldIa0g4SEtGU09RWmhPYW4weEJWQkVBVExyTTU0RjFJaGlDY2I5WktXRHN6b3V6QUpnaWdjS3Zac0FGTjFqWm9Xb1ppSlBRbUNlRzhaaXN5OUV3SUxVQzFYMnJFRTVsL2hkQ0JJQ1VjSlloc2dGeUZCNkVBdVFvSW9ISElSRWdSWnNBaUNJQWlDSUlvT0NTeUNEcWZRNWdBQUlBQkpSRUZVSUFpQ0lJZ2lRd0tMSUFpQ0lBaWl5R3lid0dJSk03VUpRejgwV0NaNmx0Vjl1ekI3RHNMZWZ3Mjd2anJMcjlrdVhJYTkvNXJoOGtLN3ZqcWJ0UjRrVVh3OHRWWDQ0ZkFCaEk1OUpwMCtJNGg4WVFsTFdTWitnaUIySHJKZ2ZlQ3dNa1NGMW5na3RvNnZ0WW1YYWlFK0hLNTczQWdkKzR6SzFSREVld3Jsd1NLSUhZYVZnQkVUUUJJRVFSQS9id3dMTERGVGVUTHdFT1dudkFEVWtpblpzcHRidW83d01qcko0R08xVUxGUUhrWDhIbERMeWlnLzNwVXlpdHY3ci9FK3kzcE9xa1dJRnhldzh0MU42VDZ6dXdObFI0L3pzakZyVXlHczNyNlZNekdvMlhNUVpiODd6bXZ6SlFPUHNEcDhsNWRyWWVOYnVlRkhxZnNUWGlRNkdYZ2tsY01CMUhKQnpDMmFERDdPdStTTGRnMlN3Y2RRaHUveWNaZTJ1S1RDeUhwclpCVFJEYmpycTdNWjh5bHhOcUM4NXlSS25BMXFmY0NCbTFKWm5FTFdtcEFSNis3MWQ3Ynp2RVEvSEQ0QXA5MktFL2ZIMFA4Yk5URWtxMWZYczdjZTNvODNpalNIWXduNG44NUk1V0ZDeHo1RFlQNFZoaUp6M0cwVW1IK0YzckZ4L0tIMVkxNkxiaWd5aDR2QlVNNmFkTDdXSnNuSzBqZjVUTXFuZE4zamhxZTJDaWZ1aitIU1BoZXZ2M2Z4U1NockRUNXg3cTdCRVg2TlpSWVh5K2F3dVF3OGorQ1MyOFZySXY3eHlVOVNDUnFXT1oweDhEeUNieWVmOG1MVjN4L3FsTVl2SmdSbFk5V3V1OU51UlZSSjRtSXdKSW5mN3ZvNnlmSVltSCtGdnNsblV2a2I3WHVhV0ZxR2Yzb0dRNUU1dm1ac2ZYc2E2L243elRVUHNlMC90SDRNaDhYTTZ5L213MmEvSGFmZGloOE9IK0RyM2QvWnprdnNFQVJoaklKZGhDVWZOWEJ4QmFpYjhhNHpaelBxNFZtNnZwQ0VnOW5kSVQxWGZzcWJVY093dE1XRlhWK2Q1VUtHOTFGZGcvSlRYaTZFVE5VMTJQWFZXZjdaMG5WRS9WNFlRMm1MQzFiZk9TNU10Smc5QjlXQ3lVTGhZN1BuSUt4Q0xCT2o3T2h4YVV4bXowRnA3T1dudkZMTW1kbmRrVmNNbXQ0YW1OMGQ2bnJhYkh5ZTRoellHaGtwVm0yVVhXYzIralRaYkNnLzVlV3V4RUxXbWpET256Mi9sdHlIM3VaR1hOcm5rcTQ1N1ZaYzJ1ZVNObVVBYUs5MFNERTVudG9xZkgrb2s0c3JRQlVLdVZ4VWwvYTVNcjczdFRicHh2cjAvNmFkaXl2MmJIZDlYUjZ6M0J5bnpZcit6bmFwNFBOMWo1dC83dTlzejVoL3o5NTZmSCtvazRzUVZncUdDYVAvYmxaL3AwT1J1UXdoS0s2N3cySkdmMmM3bjR1M3VSSDluZTNTTzJCcnkrYXY5NTdhS2l2UTM5bWVzNjdoWnZNUTIyYWYyeW9yTXA3UncraHZSeS9qTzBFUStWT3d3RExaYkZpOWZRdXgzak9JWDc2QTlPSUNURFliTEo1UE0rNTdjL1VLWXIxbmtPajdCZ0Q0Sm0xMmQ4RHM3a0E2SHVmM3hIclBjQ3VKVm5TWXFtdmtQdGV0WUJ1YnZscTBlZVdHWDczbnZJOWJlTmgzV2twYmZnVUF2TjFZN3hta3dyTXdWZGZveGlYRkwxOUFyUGNNTDRETTdpbHhObkR4eGZwUDlIMlR0Ymp6UnY4dWRRMFdGNURvKzRhUE94V2VoY2xtNDk4RHFsV0xqWkgxcnhXaFJvajFudUYvdjdsNkpjTWFsM294bS9GT21IZ3FaSzJKVEZ5REl6eUw5dWxBRUtjRFFlbjc4YVVvOXQ5NWdNOS9ISVhEWXVZYllkL2tNN2dHUitBYUhPSEN3ZHZjS0cyZURvc1pwd05CNlo3ZFpSYWN1RDhHMStBSXQzcUlva2hMOXg1VlZMQm5Qdjl4RkZFbEtZazBSamllNEdOaWxweGNiUnZCYWJmeU9iTXhBS3F3YWF1c1FIZDlIY0t4QkI4bksxanR0RnZ4NWQ0OUFOU1NOV3l0KzMrakNwMm9rdFN0d1RlK0ZPVnpZVll5SmpURm90S3V3Ukhzdi9OQXVzZGhNV2ZjNHhvYzRTTHVRTzEvU0JhNnZzbG4rUHpIMGJ6bndkcjJUOC93L2pjckhGM0liNGUxVDlZcmdpaU1nZ1ZXT2g3bm0zeDZjUUZLNEtIYW9NWjZrUXcrNWh0dktqd3J1Y3lZdUVtT1BwSmNYU3MzL0VqSDR6QlYxMGp0YWZ0TXZWaDNSZGxzS0hFMndHU3pJUmw4ek1WQU9oN0g2dTFiNjMzcEIzRXpnYUFNMzBPSnN3R1dyaU9TTlV0RUNUems0MS83NlI4QXdPOWw3WXY5cDhLelNJNCswbTJMd2VhWEREN21yclYwUE03RjF0cFVDTXJ3UGNSNnoyRGxobDhWc1YxSDNvcVZpSzBkQUt4Ti9VTWFjeUZyVFJqblQ5T3pYRXd3c2NOY1RRem1kZ0lnV1l6Q3NRVGZ4TmtHUEw0VTVYK0w3clZzN0wvemdBdW03dm82ZE5mWGNjdUpGbEdvc1BIc3RsanltK2dtUkpVa24zTTRsc0Q0VWhRQTRDZ3pjNHZRd0V5RXoyMWlhWm5YMXhORjNoK2YvQ1JkRTBWWHRybXd2OXNxSzlCV1dRR0h4WXloeUJ5Zm95alNQTFZWYUs5MDZMcnVMajRKd1RVNGtyVjBUajd6WVAyTGZZcHJrdzJqdngzdEdoQUVZWnlDZzl5NXVGa25uZEMzMUtUQzJmL0ZOOVdvN3FYVTRyeHUrNlV0THBpc2d0akowZ2NBZnAvWjNRR3pUb3FCYktKSmpETUMxRGdpVmR4bDNwdHRqaElhaTFVNkhzdDVlMGwxYmM3NzB2RTRURFlieW5wT2NtdFZlbkVCYTI4aHppbGJMRldoYTAwWUp4emYyUHlaV05HelZqQUJWR3k2Nit0NDNCT2d4Z05GbGFTdXlNb1Z4N1ZWWHE4cW05N2phMjNTZFpXSll3M012OExFMGpJWFdOODlmNm5ibHJqRzRyellPK2l1cjVQaTU4UytQckx2VXNlczZJOTVzM1hLTlEvV3YzWTlObXZUNkcrSGFoTVN4TllwV0dDVmFHSi8yS2E3bVV0TUpMMndBTFJzaUF5cC9ZOVV3Wk9YcUJGUWh1OUpscGZOWU9JcTBmY05GeFRscDd5Rlc0ZzA0c0prcytlOG5jMHYxMzJXcmk5Z2RuZGc5Zll0YnNHemRCMEJ0dUFlTEFaRzE1cllHbXpEMW5PN0Zjc1ZKOEppajhLeEJBNy9FTWl3cEcwSGpyTENEemJuY3dxenU3NU9XaXR2YzZPdXBjWnB0M0tSd1FTYUtHTDgwek5aTFR4TXJCUnF2Y3MxRHpiMjNXVnkyOW1zaW95My9kc2hDR0lyTVZqVk5UeDVwcW02aHNkZTViSllhV0Z1Si9PQmc1SmJpUVd5cHhjWDhqNlJsbm94aTNROERrdlhFU2t1cWZ5VUYvYithN0JkdUt6N0hCTlNUQml5dURDak1CZW4yZDBoeDJVZHlKMWdsSzJYMmQzQkE4Wk5OaHVzdm5PdzkxK1QzS1JNakpVNEd6SmkzZDRtaGE0MXNUV0dYbTdFVEltQjU5N21ScjZwRnpQTlEzdWxnLy9OeElXdnRXblR6VHhmdUdCYkgzdGJaVVhPQVBCc01LdU1yN1dKaXdXbjNZcnZEM1ZLeVRjZEZqTXV1ZFcvMlRwNW14dDFCWWIzNDQzMVpkYWs4YVVveHBlaWlDcEphYzBCTlRnOWRPd3pmZ0pQYno2WDlya1FPdmFaYnZ4YXZ2T1lXRnJtRmtUMkd4RC96c2JiL3UwUUJMRUZDMVk2SGtkNXowbVU5NXlVcm0wV2N5U1NERDVHYWZDeGVtSk81OVNlRWV1SUdwOTFGMlZIajZQOGxCZmxlYmFWQ3MraXhOa2dpWUwwNG9MaDAzbXA4Q3lTT25QWnpLS1hERDZHUldjTWdKb0dnb25NMGhhWHRONzVwbi9ZRE9hQzFFdlRrT3VaUXRhYTJCb3M3b2E1a0xSdXBHenhSSVhDNHB5Y2RpdDNoeFd6L2FHWGMralpXeStkVml2RXpjalNVWFRYMS9GVURHSjcvcWZxLzhTd3RBYmhXQUs5WStNOFZjS2xmUzZjdUQ4bVBkZTlweTVEQ0xGNE9QLzBESHl0VGJxbjdQb21uL0Y3dk0yTkdabjV3N0VFRDNZWFJTdEwwNURQUEZqLzRtOWdzM1hMOTdkRENXOEpvbmdVYk1GS3ZaaVZOdU8xcVJEZVhMdGl5RVVJcUVIbTJnMTViU3FFTjFldlNEbVg4a0Vadm9lVkczN0o2cFVLeitac1M4emRsVjVjd0p1clYzaDhrK1d3c2ROd0t6ZjhTQVkyQkdZeThBaks4TjFObjN0ejdZcjBIS0NLRkxhK3l2QmRhZndyQXpmNW9RTHRTVXVqNURNKy9lZU1yeld4ZGZ6VE03ajRKQ1FKblhBc2dZdFBRa1VQU280cVNmU09qZlBOT3pEL0NxZEhnL3p6VmpPUWZ6djVWQXEwSDNnZTJUUllPeHU5WStOYzNEQ0dJblA4RkY1My9ZWmdZa0xsVDlQcWIxZHIxV0h0c1RWbWdveU4xVDg5Zzk2eGNTbWVhV0pwR2FjRFFXNEY2cHQ4bHZFK0JwNUhKQ0hINHRtTXpJUDFMNTdzQzh5L3dyZVRUemRkbzdmNTJ5RUlBakQ5Kyt6djA0WWVFQktOdnJsNlpidkdSUkE3eWxUVEwvQ1hZNy9OdUI1NWJjSmYvMW02QXlNaTNnWXMwYWlZL0pRd3ppZU5LVFJXcFhaNkdBU3hvMUF0UW9JZ0NJSWdpQ0pEQW9zZ0NJSWdDS0xJR0E1eVR5OHVTQm5BQ1lJZzNoZFlQVUNDSUlpdFFoWXNnaUFJZ2lDSUlrTUNpeUFJZ2lBSW9zaVF3Q0lJZ2lBSWdpZ3lKTEFJZ2lBSWdpQ0t6TTlTWUZtNmpzRGVmNDJYNnZtUXNmZGZnNzMvbWx4cXFPZWs3dlZpc091cnM3RHJGSGcyQ251SGVobjhpZmVMSHc0ZlFPallad1dWd1hrYlhQZTRFVHIyR1U4MnlqTFg2eFZ6emdZclp5Tm1kMityck9EdGlKblR4ZXVzSkU3bzJHY1pXZDhKZ3ZoNTg3TVVXTnNORXhHV3JpTTdQUlREbU4wZFJST2UyeVhTQ09KOWc5Y2YzTDFSMTFDc2NTaUtTM1k5cWlTbGJQQUVRYnhmRktkcUs3RmpaS1RNc05rQXFHVnJFbjNmN01DSThrTVp2Z2RsK041T0Q0TWdjRG9RM0hJYlRDZzU3Vlk0TEdaRWxTU2NOcld1WDFSSlNqWCsySFd4VEJCQkVPOGZCUWtzczdzRGxxNHZVT0pzQUxCUi9GZmNNTTN1RHBRZFBjNkxKcTlOaGJCNit4YXZYVmZhNHNLdXI4N3lPb1NzcHQ3YVZBZ3IzOTJVaWhtWEhUM09yVW5KNEdQZFFzY2x6Z2FVSFQzT3JTM3B4UVdzM3I3RjYrS1pQUWRSM25NU3E3ZHZ3V1N6dzlKMUJDc0ROek5xQU83NjZpeHZvK3pvY1ZnOG55SisrUUp2bzZ6ckN6Nm45T0lDVm9mdlpyVEIxMkM5VHdDSW4vZnhPbzNscDd3d3V6dDR1U0dUellheTN4MlhMRStydDIveDlSVExFeVVERDFGK3lzc0xNek4zM1p1clYvZ2FzUFd3OTEvRHlnMC95bnBPd21TenFiVVMxOWZEMG5VRVpVZVBaeTE1SkxvQjlRcEJsemdiVU41ekVpWE9CcVRqY2F3TzNKUnFFRzcyUHJUOTU1cmorNHludGdyWFBXNjF6cCt3MFd0THRyRDdXTTA0NW5JS3pML0NINS84eE92TE1iZVdXT3JsMGo0WGV2Ylc0M1FneURmMTd2bzZlSnNiSld1S2YzcUcxd0wwTmpmQzE5cUV2c2xuL0pyVGJzVVBodzlrak5YWDJpVFY4aE9meVplMnlncjRXcHU0cFNjY1M2QnY4aG12N1NmTzMybXpidFFWbko3QndFd0UvN1B2bC94WmJmODllK3Q1b1dkZ3ZlYmgwNDNDMkt6b2N5SGpab2hpeVZOYmhhSElIRjliVnRTNnJiSUNFMHZMZkp4NjFxdnUranBjY3J2Z3NKZ3hzYlNNaTA5QzBuM2Q5WFh3dFRaeHdSYVlmNFcreVdmOEh2YmVlc2ZHMGIybkR0MzFkWHpPWXYxQ2dpQzJIOE11UXJPN0ErV252RnhjQVZBRnd0SGpmSE8zZEIxQitTa3ZGeUtBS3Fpc3ZuUFNjd0JnOFh3cUZTd3ViWEZoMXlrdi8xeCt5aXU1NmxSeEo3dnVTcHdOc1ByT1NhNHNVM1ZOeHJQcTJMNG95UFZuNlRxQzhwNlQwcHhNMVRVbzd6bVp0ZUR5bWlBNHhMR3h2NU9CaHpEWmJMRDZ6bVc0OWNxT0hrZTVzQTRBVVBKUlE4YTF6VWpINDFpYkNxMzMrNnVOdHB6cWhyajIwejhNdGNmWWRlWXNmNWNtbXczbHA3eDhYa2JlaDVaQzV2Z2gwZE5ZTDhYemVHcXIwUCtiOWh4UFpOSmRYNGYrem5iSmhlV3dtT0ZyYlpMYXpvZEwrMXdaaFpKOXJVMjR0QzkvdDNKYlpRVytQOVFwdWRHY2RpdjZPOXN6MnZZMk4zSnh4VDVmUCtDV252VzFObkZoMGJPM0hwZjJ1Ymk0WXRldUh5aHV2SlBvN21QaXA3M1NnWEFzc2VFK1hGOXZVUnlKdEZjNjBOL1p6c2ZhVmxtQlAzdCt6VDk3bXh2UjM5a3VXY004dFZYNC9sQ245QzRCZVEwQWRjNUczeTFCRUZ2RHNNQXFkWDhDUUxXWXhIclBJTlo3Qm9tK2I1Q094MkUrb0lvRVM5Y1hBSUNWRzM3RWVzOGdmdDdITjNuMkhjTlVYY1BiV3JuaFZ3ZmxiSURKWmtPSnN3Rm1kNGZVRnV0TGhMV3BETi9qWTJMV240eisxaTA1c2Q0enVwYW5OMWV2OExHdTNyNkYrT1VMWEVDeWE2d1BabjJ6ZEIyUmhCY2pIWTl6aXcwVE5HWjNCMHcyR3hjKzVnTUhZYXF1d2RwVUNQSHpQbWtkek82T0RDSEw1cWhuMlZHRzcvSHJhMU1oeEhyUFlHMHFoTFVwVlVTVnJxOGxzQ0h5MkZ5MWlLN0hOMWV2WlBTWGVqSEwxMkZqamczcjY1SC8rOUN5MlJ3L2RKeDJLMDRIZ25BTmpxQjNiQnlBdWhHTEFtSXp1dmVvR3k5cnh6VTRnaFAzeHhCVmt2aHk3eDVENDJGdG5iZy9CdGZnQ0Q3L2NSUlJKU21Kb00xZ0lzby9QY1BISTFyU1JGNnZLdmo4eDFHNEJrZTRRSWtxU2V5Lzh3RDc3enpnVmlrbVFrU3JGbXQ3WW1rWlRydTE2RUgzb3BCaXJzS0oxOHVZZUwwdXZHeFcvcTcwNHE4Y0ZqTWZKNXVMdzJKR2U2VkRXb3Zlc1hGK0QrdFR1MDRBK0RxeHRYeFhEeGtReFB0S3dVSHU1VitlaEtYcmlDb3VyRGJFei9zUVArL2o0aWdaZk13MzNuUTh6c1dJTm1BNkdYek1OM25SeFFTcmJjUFNJN1NWQ3M4aU9Tb0xvOUlXbDlRSG9BcWhkRHpPaFJwamJTb2s5NU1IVEppa3dyT1NHMVFadnJmaGdoVEVpMGdxUE1QSENBaVdvNmtRMHZFNC84ekdxNTJ2ZHIzRU9lWUxzNlN4dFdEdktCV2U1UzVibzRqallBS09ZZVI5Yk5ZMklUTVVtZU9iS25PZkFjRHVNb3ZodHY1bjN5L2hiVzZFdDdrUnV5MFdMbEtNc1AvT0F5NWF1dXRWbDVRUnNRZW9HMzlVU1hMM0o2QUtvcWlTaE1OaWxxd3pvL1AvNGlKcWRQNWZBTlIxaUNwSlJKVWt2OFpnWXNRL1BZTzJ5Z3A0bXhzTmp5OWZtR0JxMjEzQmc5MG5scFlSamlVUVZaSm9xNnpnYzlHTHYySnVXdmEzT0JjbXpJWWljL3k5aTJ1bUZVOERNNUdNZGRxdWVSTUVvWS9oZitPVTRic29iWEhCVkYyVDRScGJ1ZUhuSXNIczdvQlo1emkvYVQwSW02T3hSdW1pdVNjZGorbTJtUzE5Z01tNjBXZDZJVE4rYXpQWTgzcGlKQldlQWJLSUt3QklqajVDMmRIalhOUnd5MUh3LzZTeFczM25OaDJIWHV4WlBqQkxtdG5kSVFtMmJOYXJmTWdsekl5OER5MkZ6dkZESWJxYTNISWIvdWtaZUdxcjRMUmJNOXhHdldQamtuRGJEREZtQ0ZCamZaZ3d5aGQyYjdhMENMc3R4c1VqbzYyeUFwZjJ1U1JoRTFXMnZvWjZNTkVrV3NlWXlBbkhFbWl2ZEhBUnBoZC9OYjRVemRvMlc0UHUranJkZGRLdTkydEZLV0FHQkVFVUU4TUNLeFdlUmZ5OEQ2YnFHbTYxTWJzL1VZT2FlMDV5OTVZeWZLOTRsZ2lOS0RQWjdMcmp5blZxemx4VGVPcUNkRUlWZUhxV0YyYUJ5dnJzdWl1d3RNV0YwbldYbnhnWHhSQ0Q0TFhvdVIrTndvU2dPTjdrdXNqYkRqWjdINXRac1Q1MENyRklaY05SSnY5clByRzBqUDEzSHNCcHQvSTRuZTc2T2xXTXVGMVpCWloyRTNkWXpPanZiRWM0bHNEaEh3SmN1REMzb1JFbWxwWng0djVZMXU4TGRXOHhjWFhpL2hnWE5kcjRzMkxCM0g1dGxSVTRVUHNmQURaRUY3dk8xcnZRRTRUKzZSbkowa2NReEx1TFlSZWg3ZXMrMkw3dTQ3RXl5dkE5TlM1cWNVRjFPNzJZUlRvZWg2WHJpT1EyS3ovbGhiMy9HbXdYTHVmZEZ4TWhvdVdseE5uQVk3M0UrOFFUZE1CR0lrdDcvN1V0QzVRMUljWklETklXNTVqTDdjZ0N5Y3ZXNDQrWWUxRDhydnlVbDF0K1NsdGNzSDNkVjlSa3FzeXRXdHJpNGk2OFF0MkRtN0hkNytOOWdsa2EyaXNkUEc2b1oyOTl3ZTRjTG5MV04vSzJ5b29NY2ZLMy8vcFAvTzIvL2hNT2k1bWZIRHh4ZjR6SC9JaUlnZEpmTnNyeFdTdzJTT3pYMTlwa2VPeUIrVmY4RkNIRDI5eklrM0dLUWQxR0VVOUpBdUJ1ek8xQ3RHSXgxeUFBaE9NYnNXR0Y1TDhhWDRvaXFpVGhiVzZVeHQvZjJZN1FzYy93dytFRFJab0JRUkRGb2lBWFlkblI0N291cldUZ0VVL1p3RTdCbFd2dU1XTFZTb1ZudVd0THpQaXR0ZlNzM3I0RnErOGNqd21UeDN2UHNOdUp0UyttYVZpOWZZdWZsTlM2Umpmcmc3a0plY29Ld1hLVUhIMEVpK2RUTHFwRVV1RlpKQU9QaWlKSW1LQmlscU5zcVNXMHo1aHNOdDAwRGJrbzl2dDRuMkV4T2l3RkFzT29tNDNCVWdLSUdjVzFMakgvOUF4OHJVMzQvbEJueHZNRHp5TnFPNUU1K0ZxYmVOWnh2WGFZUzR0bFBnYzJYR0pHNkp0OEJzK2hLaDRQcGgxck9KYmd1YU9Nd2l4SDR0cXk5VFlDbTkvRkp5RytSdG42NDMrLzN2aGJYSmRDckZjc1BzdlgyaVM5V3daWnRRamkzY093Qll1NS92UkVEdHVBbGVGN1dMbmhseXdrcWZBczNseTlZampBZk9XR1h4SUR5Y0FqS01OM3BYdVlPMHBzT3gyUFkyWGdaa0Z1eW1UZ1ljYjgyQWs5VVJ5a0Z4Znk2a04wQ1dyZGcrbDRISW0rYnpLU2JqTExZREVSWFlMYXdIUTl0T3VjTDhWK0grODd2WDhmbHpiZ2kwOUNPZU54Y3ZIdDVGTnBBeDk0SHNuSTdjVGNURnJCMURmNWpPZEtDc2NTL0pTaTNtZEEzZlI3eDhaNU80SDVWemc5R3VTZjlVNjI2Y0hjZzZKck1xb2tjZkZKYU12Q1Fjd2pGWTRsY0RvUTVNTG52NXVMNzZZVzExNFVXOW11RzhFL1BZUGVzWEZaeEMwdDQzUWdhQ2h1amlDSXQ0UHAzMmQvbjk3cFFSQnZCNWJjTXgyUEkzN2V0OVBEZWFlWmF2b0YvbkxzdHhuWEk2OU4rT3MvUzNkZ1JBVHg4K0dUeGhRYXExSTdQUXlDMkZIbzNPNEhBTXVhenlqVU1rVVFCRUVRUkg1UXNlY1BqR1R3TWRVQUpBaUNJSWh0aGl4WUh3QXNxenRCRUFSQkVHOEhzbUFSQkVFUUJFRVVHUkpZQkVFUUJFRVFSWVlFRmtFUUJFRVFSSkVoZ1VVUU80aW50b3BuTE4vTzlpL3RjMjErY3dGYzJ1ZEM2TmhuQlpleUtZVHJIdmUyclZjeFllUE1OeC9ZMjRSbHlxY004QVN4Zlh6d0FxdTB4Y1ZMdUJBRXNUMHdFV2xVaUJYNjNMdklkb3ZwZDZWUGdpQlU2QlFoUWV3Z2dmbFhjQTJPN1BRd2lHM2dkQ0M0MDBNZ0NHSUhNU3l3VE5VMXNGMjRqTFdwRUpLQmh5Zy81ZVYxNmt3Mkc4cCtkMXdxVUx4Nis1YVVkOGxVWFlPeW84ZDVrZVRWMjdkUStzdGZvYlRGaGZqbEMwZ3ZMdkNNNCtLellyOXZybDVScitYUm45bmRBVXZYRjd3R0g2dVZxQXpmeTBqQWFlKy9ocFdCbTNuVjZTT0lZdUNwcmNKMWp4c0F1TkR5TmpmQzE5cUUzckZ4ZE8vWktFNDg4RHpDUzlsa28yZHZQZjdRK2pFY0ZqTW1scGF6bGxCaGZUQUM4Ni93cCtsWlh0S0ZmZDgzK1l5WDJtSDFFZ1B6cnpMRXcwZjJYYmplN09hV0p2RTUwWHB5M2VQT2F4NzVQTmRXV1lGTCsxeG9xNnhRUytzRVEzeSs0bGdIbmtmUTM5bk9uM2ZhcmZCKzNJaWV2Zlc4cllIbkVmaWZxblVQdSt2cmVMMi8vWGNlSUtvazRXdHRncmU1a1pmMUFZRHZEM1dpcmJKQ21xdklkWSs2SG4yVHp6Q3h0TXpmTTV0YnJycUdQWHZyNGYyNGtkZE1ETWNTOEQrZDRmZXozNDMyWGZ4dytBQ2NkaXRjZ3lQU2J5dWZQZ21DS0M0Rlc3QktQbXBBK1Nrdi8yeXkyV0QxbmNzb1RGeDI5RGhLbkkxWXVlRlg3L25xckhRUEs5MWlsSHo2TTdzN3BER3k1OHFPSG9mSlpzZmFUNXZYNHlPSW5jTFgyaVFWSmU3Wlc0L1hpcEsxUHA5V05MVlZWcUN0c2lManZ2N09kaTdhR0o3YUtuaHFxOUE3Tmw1UVhUc202c1N4T3l6bWJTMUMvR2ZQcjNtZkRvc1ovWjN0T0IwSVNuWC8yaXNkOEhSdXVCY2RGak91SDNCbkZIdnUyVnVQN2oxMU9IRi9ESUg1Vjd6WXRxZTJDa09ST1M0Y3hmVmtmeGRTdkRrWDJ2Y0lxSUx4MGo0WG5EWnJVZGIwdGFJQUFNSng0OFc1Q1lMSWo0SmpzRXcyRzVUaGU0ajFuc0hLd0UyWUR4eUVxYm9HYTFNaHhNLzcxT3MzL0FCVUsxS0pzNEhmd3dvY3gzclBZUFgyTFpoc05zUDk1OU5mcWZzVEFNQ2JxMWNRNnoyRFdPOFpKUHErUVRvZWgvbkFRY2thQmdDeDNqTmt2U0xlS1Q3L2NSU3V3UkZ1SWNrVmk4U0NxZjNUTTNBTmptRC9uUWNaaFlXNzYxV0xXRlJKNG5RZ0NOZmdDRnlESTF4VWFUZjJmQW5IRW55c1RBQjRteHZoc0pnbEYranBRREF2NnhXQVRaOGJYNHBtakY4cktCMFdNMStQaTA5QzhEYXJWcUdKcFdVKzNzOS9ITVhFMGpJY0ZqTzhIemNpcWlTNWFHSkN6R20zOGlMV29uQ05Lc204aWpkckxVMnV3UkZkUzVMRFl1YnZvRy95R1orZnVLWmFjVmhJbnk5aWIvajRDWUxZSHJZVTVMNTYrOVpHUTg1R2ZvMVpwSkxCeDBnR0h3TlFnOG5aUGNuUlIwaUZad0VBeXZBOS9yZWhnZWZSSDZQOHk1T3dkQjJCcGVzSVRGWWI0dWQ5Vk95WWVPY1ptSWtnSEZNdERLUHovd0lBeVVvazBsWlpBWWZGaktpUzVKdHhWRWxtdUs2WVFQdnUrVXZKOHRJN05vNm9rb1RUYnRXMWVtM0dVR1NPajlVL1BjTTM3dlpLaCtHMjhrVzA1T1N5SW9uM01jdWRmM3FHanpjY1MzRHgxcjFIL1o2SkppYW1IQll6dm52K0VzQ0d0Vyt6Zmd0QjdGOThkLzdwR1M0aXRkYkhRbUNXSzdZR0JFRVVuNEpkaE9uRkJla3pzMEpaZmVleVBzUHVTUzNPeTIwbENuTVJidGFmTW53WHBTMHVIdmNsc25MRHo4VVlRYnlMTURkT1B1eTJXTlJuVnVWbnRCYUtqK3k3QU9pN2hzYVhvdkRVVnZHMmpLQzE0cnhlVmVDd21MTUt3bUtRaitWSUt5Q1k5V2ZpdGZ3c2E0dU5OekQvQ2o0MG9XMTNCWncyOVptaHlCeTN5ckUxS3JiQVl1M3F6VzFpYWJrbzRnclkrSjJRQllzZ3RvK2kvOWN2ZnQ2WE5hYUtXWjFNVnRrbHFQMnNSelkzWXE3KzJQZW02aG9lVkc5MmY0SVNad1BLZWs2U3dDTGVHNWdZMjEwbWl5T3R3SGtSZXdQVWdvc0dFV1p0eWlic2NvbWx0c29LU1d5d2NieHJNVDdoV0VLMTB1MnVrTVNYNlBJRFZESERMSHFlMmlydUNweFlXcGJjdEVNdmpjZXI1WUt0dlo0Vk1SL0xvdmI5WnlPcUpCRlZrb1pFUEVFUXhpaGFIaXdXTUY1K3lzdkZVR21MQzdhdisyRHZ2d2F6NXlCU1lkWGtiZkY4eW9QVHpaNkQvSVNmRnZONkRCVUFXQTU4YXJnLzI5ZDlzSDNkeCtQRmxPRjdhZ3pXNGtKQmNWOEU4YTdDQklIRFl1YXhXT0xmRENhQ3Z0eTdSeElLL1ozdGNGak1DTWNTa3ZWRXRKaDgyYmduYS84OWpmWGNPc1NzUEZFbCtjNjVvSmliVFl4bFlnSGtnQ3lZMkZwMTc2bkQrRktVWDJOdVE3Ym1SUjNmeTQxWU12SGRlWnNiK2JzWWlzeHhZZFJlNmVEejZObGJiOGhpdVAvT0F6cFJTQkRiU05Fc1dNblJSN0I0UHVVaVJ5UVZua1V5OEFnbW00MkxLOXVGeTluYkNqNWVQdzNZd0JPQWFxMVVlZlZuVlU4TTZya1JXVEM3Nko1a2FSclNDd3M4ZlFOTEhVRVE3enIrNlJuNFdwdjRQMENtQzJnb01vZWh5Qnk2Nit1a0kvd01GcTgwRkptRHI3VUpiWlVWUEYxQ0xqR3h1OHlTa1JWY2pNVmk0bytsVy9BL25lSDNhMC8raVdpZnl6ZEFQaHYrNlJsMDE5ZWhyYklpWTd4UkpRbi8wNDI0SithU1l5a3YyRDBNbys1QjBWcVVMV1VDaTZIVHZrZHgvR0xzR0V0SElUNHZpcXhzZmJLVGlub3BOd2lDS0E1RnMyQ3hrNEZpRGlvQTNHckU3N2w2Qld0VEcvK1JYTDE5Uy9vTXFQRmQ3RVNnM3VkOCsxT0c3MGxCOEdLZkt3TTNBYXlMTVhJVkV1OEIvdWtaU1lBRTVsL2gyOG1uR2ZmMWpvMW5IUFZuR3kyejhJUmpDZlNPamZQdnRaKzFmRHY1VkxKOGFYTkQ2ZVdKeW9kQ244dEdWRW5pOUdnd1E5Z01QSS9neFAweHllSW1DaWcyTjcxcitaSXJMNWtJZTQvaVdGZ2d2dmplZXY4K0x0MXo4VW1JVzlxTTlra1FSUEV4L2Z2czc5TTdQWWhkWDUyVkVvMFN4RTR6MWZRTC9PWFliek91UjE2YjhOZC9sdTdBaU41UHZqL1VpWXRQUW9iRkN2RnU4MGxqQ28xVnFaMGVCa0hzS0I5OExVS0NJSFlHVDIyVjVINGpDSUo0bnlDQlJSREVXOGRwdDZybGdQNmUzZTFJRUFUeGMrYWRLUFlzWmxNbkNPTDlKeHhMOEpwK0JFRVE3eU5rd1NJSWdpQUlnaWd5SkxBSWdpQUlnaUNLREFrc2dpQUlnaUNJSWtNQ2l5QUlnaUFJb3NpUXdDSUlnaUFJZ2lneUpMQUlnaUFJZ2lDS0RBa3NnaUFJZ2lDSUlrTUNpeUFJZ2lBSW9zaVF3Q0lJZ2lBSWdpZ3lKTEFJZ2lBSWdpQ0tEQWtzZ2lBSWdpQ0lJa01DaXlEamZ6RGNBQUFBbFVsRVFWUUlnaUFJb3NpUXdDSUlnaUFJZ2lneUpMQUlnaUFJZ2lDS0RBa3NnaUFJZ2lDSUlrTUNpeUFJZ2lBSW9zaVF3Q0lJZ2lBSWdpZ3lKTEFJZ2lBSWdpQ0tEQWtzZ2lBSWdpQ0lJa01DaXlBSWdpQUlvc2lRd0NJSWdpQUlnaWd5SkxBSWdpQUlnaUNLREFrc2dpQUlnaUNJSWtNQ2l5QUlnaUFJb3NpUXdDSUlnaUFJZ2lneUpMQUlnaUFJZ2lDS3pQOER0ZG51NWppVi94OEFBQUFBU1VWT1JLNUNZSUk9IiwgImVuY29kaW5nIjogImJhc2U2NCJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiA5OTEzOSwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogOTkxMzl9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IDAuMDI4LCAiY29ubmVjdCI6IDE3LjIxNywgInNzbCI6IDEyLjIzNSwgInNlbmQiOiAwLCAid2FpdCI6IDYuNzUzLCAicmVjZWl2ZSI6IDExLjI1OH0sICJwYWdlcmVmIjogInBhZ2VAZjBiN2FkMjdhY2RiNmQyYTQ0ODgzNzllMzg2YjhlMjAiLCAic2VydmVySVBBZGRyZXNzIjogIjE0Ni43NS4xMjAuMTkzIiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMiIsICJzdWJqZWN0TmFtZSI6ICIqLmltZ3VyLmNvbSIsICJpc3N1ZXIiOiAiU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQSIsICJ2YWxpZEZyb20iOiAxNzA3OTU1MjAwLCAidmFsaWRUbyI6IDE3Mzk1Nzc1OTl9fV19fQ==","disable_correlation":true,"to_ids":false,"type":"attachment","uuid":"140249a1-056b-46ae-9199-983df8cc4dd6","value":"har.json"},{"category":"External analysis","comment":"The rendered page at the end of the capture","data":"PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBuYW1lPSJJTVBPUlRBTlQiIGNvbnRlbnQ9IlRoaXMgcGFnZSBpcyBwYXJ0IG9mIGEgc2ltdWxhdGVkIHBoaXNoaW5nIGF0dGFjayBpbml0aWF0ZWQgYnkgS25vd0JlNCBvbiBiZWhhbGYgb2YgaXRzIGN1c3RvbWVycy4iPgogIDxtZXRhIG5hbWU9IklNUE9SVEFOVCIgY29udGVudD0iSWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucyBwbGVhc2UgY29udGFjdCBzdXBwb3J0QGtub3diZTQuY29tLiI+CiAgPG1ldGEgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSIgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIj4KICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KCiAgCiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvYXBwbGljYXRpb24tMjM3Y2I1YzRmMzE4Njg3NjI1ZjhjY2YyZjQyZGUzZmMyMDIzOGJmZTI2NzM4NDY1MzQ5MWE2YmJhOGM4ZjZmNS5qcyI+PC9zY3JpcHQ+CgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvYXNzZXRzL2xhbmRpbmctd2F0ZXJtYXJrLTg0ODdlMzZlZWYxYmVjNzRmMDY2MzFmMTlmZWEwYWExNzFjMjA4ZTI5NzYzNzNjZGE1YmQwYTRiOWUyMzA5MDMuY3NzIiBtZWRpYT0iYWxsIj4KCiAgPHN0eWxlPgpib2R5IHsKYmFja2dyb3VuZDogI2NhZmNkNzsKZm9udDogNDAwIDE1cHgvMS44ICJMYXRvIiwgc2Fucy1zZXJpZjsKfQoKLnRpbGUxLCAudGlsZTIsIC50aWxlMywgLnRpbGU0LCAudGlsZTUsIC50aWxlNiwgLnRpbGU3LCAudGlsZTgsIC50aWxlOSB7CmRpc3BsYXk6IHRhYmxlLWNlbGw7Cm1pbi13aWR0aDogMjAwcHg7Cm1heC13aWR0aDogMjAwcHg7CndpZHRoOiAyMDBweDsKaGVpZ2h0OiAyMDBweDsKYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjsKYmFja2dyb3VuZDogdXJsKGh0dHBzOi8vaS5pbWd1ci5jb20vMFdjOVJIay5wbmcpOwpjdXJzb3I6IHBvaW50ZXI7Cn0KCi50aWxlMSB7YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7fQoudGlsZTIge2JhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7fQoudGlsZTMge2JhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IHRvcDt9Ci50aWxlNCB7YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7fQoudGlsZTUge2JhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7fQoudGlsZTYge2JhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjt9Ci50aWxlNyB7YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBib3R0b207fQoudGlsZTgge2JhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBib3R0b207fQoudGlsZTkge2JhY2tncm91bmQ6ICNGMkUzOTQ7IGN1cnNvcjogZGVmYXVsdDt9CgpidXR0b24gewptYXJnaW46IDMwcHggYXV0bzsKYmFja2dyb3VuZC1jb2xvcjogIzE1NzU4ZjsKY29sb3I6ICNmZmZmZmY7CmJvcmRlcjogMHB4OwpwYWRkaW5nOiAxMHB4Owp0ZXh0LWFsaWduOiBjZW50ZXI7CnRleHQtZGVjb3JhdGlvbjogbm9uZTsKZGlzcGxheTogaW5saW5lLWJsb2NrOwpmb250LXNpemU6IDI1cHg7CmN1cnNvcjogcG9pbnRlcjsKYm9yZGVyLXJhZGl1czogMTBweDsKd2lkdGg6IDUwdnc7Cm1heC13aWR0aDogMzAwcHg7CmFsaWduOiBjZW50ZXI7CmZsb2F0OiBjZW50ZXI7Cn0KCmJ1dHRvbjpob3ZlciB7Cm9wYWNpdHk6IDAuODsKfQoKYnV0dG9uOmZvY3VzIHsKb3V0bGluZTowOwp9Cgojc29sdXRpb24gewpiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKYm9yZGVyOiAxcHggc29saWQgIzE1NzU4ZjsKY29sb3I6ICMxNTc1OGY7Cm1hcmdpbi1yaWdodDogNXB4Owp9Cgouc29sdXRpb24tbW9kYWwgewpkaXNwbGF5OiBub25lOwpwb3NpdGlvbjogZml4ZWQ7CnotaW5kZXg6IDE7CmxlZnQ6IDA7CnRvcDogMDsKd2lkdGg6IDEwMCU7CmhlaWdodDogMTAwJTsKb3ZlcmZsb3c6IGF1dG87CmJhY2tncm91bmQtY29sb3I6IHJnYigwLDAsMCk7CmJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC40KTsKfQoKLm1vZGFsLWNvbnRlbnQgewpiYWNrZ3JvdW5kLWNvbG9yOiAjY2FmY2Q3OwptYXJnaW46IDE1JSBhdXRvOwpwYWRkaW5nOiAxMHB4Owpib3JkZXI6IDFweCBzb2xpZCAjODg4Owp9CgouY2xvc2Ugewpjb2xvcjogIzE1NzU4ZjsKZmxvYXQ6IHJpZ2h0Owpmb250LXNpemU6IDI4cHg7CmZvbnQtd2VpZ2h0OiBib2xkOwp9CgouY2xvc2U6aG92ZXIsCi5jbG9zZTpmb2N1cyB7CmNvbG9yOiAjZmZmZmZmOwp0ZXh0LWRlY29yYXRpb246IG5vbmU7CmN1cnNvcjogcG9pbnRlcjsKfQoKLm1vZGFsLWNvbnRlbnQgaW1nIHsKd2lkdGg6IDUwdnc7Cn0KCi5jZW50ZXIgewptYXJnaW46IDBweCBhdXRvOwpmbG9hdDogY2VudGVyOwphbGlnbjogY2VudGVyOwpwYWRkaW5nOiAxJSAwIDAgMDsKfQoKLmhlYWRlciB7CmNvbG9yOiAjMTU3NThmOwpmb250LXNpemU6IDN2dzsKbWFyZ2luOiAzMHB4IGF1dG87CnRleHQtYWxpZ246IGNlbnRlcjsKZm9udC13ZWlnaHQ6IDIwMDsKbGV0dGVyLXNwYWNpbmc6IDVweDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKLnRvcC1oZWFkZXIgewpmb250LXdlaWdodDogODAwOwp9Cgouc3ViaGVhZGVyIHsKY29sb3I6ICMxNTc1OGY7CmZvbnQtc2l6ZTogMnZ3OwptYXJnaW46IDMwcHggYXV0bzsKdGV4dC1hbGlnbjogY2VudGVyOwpmb250LXdlaWdodDogMjAwOwp9CgpociB7CndpZHRoOiAzMCU7Cm1hcmdpbjogMjBweCBhdXRvOwpib3JkZXItYm90dG9tOiAwLjE1cHggc29saWQgIzE1NzU4ZjsKfQo8L3N0eWxlPjwvaGVhZD4KICAKCgoKCgoKICA8Ym9keT48ZGl2IGNsYXNzPSJjZW50ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgogIDxkaXYgY2xhc3M9ImhlYWRlciI+PHNwYW4gY2xhc3M9InRvcC1oZWFkZXIiPk9vcHM8L3NwYW4+PGJyPgogIFlvdSBmYWlsZWQgYSBzaW11bGF0ZWQgcGhpc2hpbmcgdGVzdDwvZGl2PgoKICA8aHI+CgogIDxkaXYgY2xhc3M9InN1YmhlYWRlciI+U29sdmUgdGhlIHB1enpsZSB0byBsZWFybiBob3cgeW91IGNhbiBzdGF5IHNhZmUgb25saW5lPC9kaXY+Cgo8Y2VudGVyPjxkaXYgaWQ9InRhYmxlIiBzdHlsZT0iZGlzcGxheTogdGFibGU7Ij4KICAgPGRpdiBpZD0icm93MSIgc3R5bGU9ImRpc3BsYXk6IHRhYmxlLXJvdzsiPgogICAgICA8ZGl2IGlkPSJjZWxsMTEiIGNsYXNzPSJ0aWxlMSIgb25jbGljaz0iY2xpY2tUaWxlKDEsMSk7Ij48L2Rpdj4KICAgICAgPGRpdiBpZD0iY2VsbDEyIiBjbGFzcz0idGlsZTIiIG9uY2xpY2s9ImNsaWNrVGlsZSgxLDIpOyI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9ImNlbGwxMyIgY2xhc3M9InRpbGUzIiBvbmNsaWNrPSJjbGlja1RpbGUoMSwzKTsiPjwvZGl2PgogICA8L2Rpdj4KICAgPGRpdiBpZD0icm93MiIgc3R5bGU9ImRpc3BsYXk6IHRhYmxlLXJvdzsiPgogICAgICA8ZGl2IGlkPSJjZWxsMjEiIGNsYXNzPSJ0aWxlNCIgb25jbGljaz0iY2xpY2tUaWxlKDIsMSk7Ij48L2Rpdj4KICAgICAgPGRpdiBpZD0iY2VsbDIyIiBjbGFzcz0idGlsZTUiIG9uY2xpY2s9ImNsaWNrVGlsZSgyLDIpOyI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9ImNlbGwyMyIgY2xhc3M9InRpbGU2IiBvbmNsaWNrPSJjbGlja1RpbGUoMiwzKTsiPjwvZGl2PgogICA8L2Rpdj4KICAgPGRpdiBpZD0icm93MyIgc3R5bGU9ImRpc3BsYXk6IHRhYmxlLXJvdzsiPgogICAgICA8ZGl2IGlkPSJjZWxsMzEiIGNsYXNzPSJ0aWxlNyIgb25jbGljaz0iY2xpY2tUaWxlKDMsMSk7Ij48L2Rpdj4KICAgICAgPGRpdiBpZD0iY2VsbDMyIiBjbGFzcz0idGlsZTgiIG9uY2xpY2s9ImNsaWNrVGlsZSgzLDIpOyI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9ImNlbGwzMyIgY2xhc3M9InRpbGU5IiBvbmNsaWNrPSJjbGlja1RpbGUoMywzKTsiPjwvZGl2PgogICA8L2Rpdj4KPC9kaXY+CgogIDxidXR0b24gaWQ9InNvbHV0aW9uIj5TT0xVVElPTjwvYnV0dG9uPgogIDxidXR0b24gb25jbGljaz0ic2h1ZmZsZSgpOyI+U0hVRkZMRTwvYnV0dG9uPgoKICA8ZGl2IGlkPSJzb2x1dGlvbi1tb2RhbCIgY2xhc3M9InNvbHV0aW9uLW1vZGFsIj4KCiAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+CiAgPHNwYW4gY2xhc3M9ImNsb3NlIj7Dlzwvc3Bhbj4KICA8cD48aW1nIHNyYz0iaHR0cHM6Ly9pLmltZ3VyLmNvbS8wV2M5UkhrLnBuZyI+PC9wPgogIDwvZGl2PgoKPC9kaXY+PC9jZW50ZXI+CgoKCjxzY3JpcHQ+CmZ1bmN0aW9uIHN3YXBUaWxlcyhjZWxsMSxjZWxsMikgewp2YXIgdGVtcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNlbGwxKS5jbGFzc05hbWU7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNlbGwxKS5jbGFzc05hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjZWxsMikuY2xhc3NOYW1lOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjZWxsMikuY2xhc3NOYW1lID0gdGVtcDsKfQoKZnVuY3Rpb24gc2h1ZmZsZSgpIHsKLy9Vc2UgbmVzdGVkIGxvb3BzIHRvIGFjY2VzcyBlYWNoIGNlbGwgb2YgdGhlIDN4MyBncmlkCmZvciAodmFyIHJvdz0xO3Jvdzw9Mztyb3crKykgeyAvL0ZvciBlYWNoIHJvdyBvZiB0aGUgM3gzIGdyaWQKICAgZm9yICh2YXIgY29sdW1uPTE7Y29sdW1uPD0zO2NvbHVtbisrKSB7IC8vRm9yIGVhY2ggY29sdW1uIGluIHRoaXMgcm93CgogICAgdmFyIHJvdzI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMgKyAxKTsgLy9QaWNrIGEgcmFuZG9tIHJvdyBmcm9tIDEgdG8gMwogICAgdmFyIGNvbHVtbjI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMgKyAxKTsgLy9QaWNrIGEgcmFuZG9tIGNvbHVtbiBmcm9tIDEgdG8gMwoKICAgIHN3YXBUaWxlcygiY2VsbCIrcm93K2NvbHVtbiwiY2VsbCIrcm93Mitjb2x1bW4yKTsgLy9Td2FwIHRoZSBsb29rICYgZmVlbCBvZiBib3RoIGNlbGxzCiAgfQp9Cn0KCmZ1bmN0aW9uIGNsaWNrVGlsZShyb3csY29sdW1uKSB7CiAgdmFyIGNlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbCIrcm93K2NvbHVtbik7CiAgdmFyIHRpbGUgPSBjZWxsLmNsYXNzTmFtZTsKICBpZiAodGlsZSE9InRpbGU5IikgewogICAgICAgaWYgKGNvbHVtbjwzKSB7CiAgICAgICAgIGlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwiK3JvdysoY29sdW1uKzEpKS5jbGFzc05hbWU9PSJ0aWxlOSIpIHsKICAgICAgICAgICBzd2FwVGlsZXMoImNlbGwiK3Jvdytjb2x1bW4sImNlbGwiK3JvdysoY29sdW1uKzEpKTsKICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgIH0KICAgICAgIGlmIChjb2x1bW4+MSkgewogICAgICAgICBpZiAoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZWxsIityb3crKGNvbHVtbi0xKSkuY2xhc3NOYW1lPT0idGlsZTkiKSB7CiAgICAgICAgICAgc3dhcFRpbGVzKCJjZWxsIityb3crY29sdW1uLCJjZWxsIityb3crKGNvbHVtbi0xKSk7CiAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICB9CiAgICAgICBpZiAocm93PjEpIHsKICAgICAgICAgaWYgKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbCIrKHJvdy0xKStjb2x1bW4pLmNsYXNzTmFtZT09InRpbGU5IikgewogICAgICAgICAgIHN3YXBUaWxlcygiY2VsbCIrcm93K2NvbHVtbiwiY2VsbCIrKHJvdy0xKStjb2x1bW4pOwogICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgfQogICAgICAgaWYgKHJvdzwzKSB7CiAgICAgICAgIGlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwiKyhyb3crMSkrY29sdW1uKS5jbGFzc05hbWU9PSJ0aWxlOSIpIHsKICAgICAgICAgICBzd2FwVGlsZXMoImNlbGwiK3Jvdytjb2x1bW4sImNlbGwiKyhyb3crMSkrY29sdW1uKTsKICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgIH0KICB9Cn0KPC9zY3JpcHQ+Cgo8c2NyaXB0Pgp2YXIgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic29sdXRpb24tbW9kYWwiKTsKdmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb2x1dGlvbiIpOwp2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNsb3NlIilbMF07CgpidG4ub25jbGljayA9IGZ1bmN0aW9uKCkgewogIG1vZGFsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwp9CgpzcGFuLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICBtb2RhbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwp9Cgp3aW5kb3cub25jbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgaWYgKGV2ZW50LnRhcmdldCA9PSBtb2RhbCkgewogICAgbW9kYWwuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICB9Cn0KPC9zY3JpcHQ+CjwvZGl2PgoKCgo8L2JvZHk+PC9odG1sPg==","disable_correlation":true,"to_ids":false,"type":"attachment","uuid":"19681846-c09a-4c4d-be2d-8eb007b82f62","value":"rendered_page.html"},{"category":"Network activity","comment":"The address in the browser address bar at the end of the capture.","disable_correlation":false,"to_ids":true,"type":"url","uuid":"f4d87868-99ac-4447-9eeb-a384fcbc6eb9","value":"https://secure.sign-doc.com/pages/89274aa57c96/XTjJhTGFzUHIrSmJVQThJY3hSd0JUK05mc3Z1NXlYNXZ5U2xxS0Y5NXhOcGQwTWlzV3JheWpJVlRqTjhSSVNnUCtwREtUK0g0VlBzVTNRcXFDYXFmWEFyeHVHQU5VQ3Jvck1PWG9YZXVTbk5IV0pVcEFhN0YrR005Tk1wbE0xb3JCNysyZmx3clB3SHhrMkw0N3owMHpyQ1h3dlVvNmlTSms4U29YRTU3RmwzOEpwL1pkREpvOVJGSS0tTDl6d3FETzdpdmRZYVFjTS0tTXc0TzFGUXFHYmxJSlRJL2IreC96dz09"}],"Object":[{"Attribute":[{"category":"Network activity","disable_correlation":false,"object_relation":"url","to_ids":true,"type":"url","uuid":"690fdb3a-17ed-40f4-bc02-b8f9cbd4b759","value":"https://secure.sign-doc.com/XTjJhTGFzUHIrSmJVQThJY3hSd0JUK05mc3Z1NXlYNXZ5U2xxS0Y5NXhOcGQwTWlzV3JheWpJVlRqTjhSSVNnUCtwREtUK0g0VlBzVTNRcXFDYXFmWEFyeHVHQU5VQ3Jvck1PWG9YZXVTbk5IV0pVcEFhN0YrR005Tk1wbE0xb3JCNysyZmx3clB3SHhrMkw0N3owMHpyQ1h3dlVvNmlTSms4U29YRTU3RmwzOEpwL1pkREpvOVJGSS0tTDl6d3FETzdpdmRZYVFjTS0tTXc0TzFGUXFHYmxJSlRJL2IreC96dz09?cid=256676185"},{"category":"Network activity","disable_correlation":false,"object_relation":"host","to_ids":true,"type":"hostname","uuid":"b840a306-9f13-4c31-854f-e3280724a830","value":"secure.sign-doc.com"},{"category":"Network activity","disable_correlation":false,"object_relation":"domain","to_ids":true,"type":"domain","uuid":"3e99bc0d-2ff4-4770-8896-cb796aae0241","value":"sign-doc.com"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"36e84b4e-e8fd-49b5-ab08-ba72e91f9527","value":"54.194.123.15"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"260ca021-f83e-41cd-b34a-6fcc95dd2f55","value":"34.245.249.165"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"82a89474-5609-49c9-8a0f-4e722bef9cd6","value":"52.212.250.15"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"b04073ed-2d8c-4796-b220-e501b2024c3b","value":"34.250.172.41"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"a0ac4697-7a7e-4e85-94ce-5e3cd744a962","value":"54.194.236.171"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"c2a4043a-9b79-4a44-a2cd-ca5c9a384e66","value":"63.32.231.118"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"56e9b8fa-5263-42b5-b0cc-0f69fa110057","value":"54.229.170.66"}],"ObjectReference":[{"comment":"Capture on lookyloo","object_uuid":"831f9468-62bf-4987-8f7f-5fa5379dd15a","referenced_uuid":"e0fa979c-21bb-44ef-8259-4a67eb0e1876","relationship_type":"captured-by","uuid":"3508fde2-ca64-472b-9452-8e9c75d8fe5a"},{"object_uuid":"831f9468-62bf-4987-8f7f-5fa5379dd15a","referenced_uuid":"8ec6041e-79ca-4145-81de-241f19ecdba2","relationship_type":"redirects-to","uuid":"cc86da73-023c-40bc-9ba9-29facb174fe0"}],"comment":"Submitted URL","description":"url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.","distribution":"5","first_seen":"2024-06-18T13:05:05.809000+00:00","meta-category":"network","name":"url","parsed_url":null,"sharing_group_id":"0","template_uuid":"60efb77b-40b5-4c46-871b-ed1ed999fce5","template_version":"10","uuid":"831f9468-62bf-4987-8f7f-5fa5379dd15a"},{"Attribute":[{"category":"Network activity","disable_correlation":false,"object_relation":"url","to_ids":true,"type":"url","uuid":"91ebdf3b-6b7c-4335-9030-f4d06702432c","value":"https://secure.sign-doc.com/pages/89274aa57c96/XTjJhTGFzUHIrSmJVQThJY3hSd0JUK05mc3Z1NXlYNXZ5U2xxS0Y5NXhOcGQwTWlzV3JheWpJVlRqTjhSSVNnUCtwREtUK0g0VlBzVTNRcXFDYXFmWEFyeHVHQU5VQ3Jvck1PWG9YZXVTbk5IV0pVcEFhN0YrR005Tk1wbE0xb3JCNysyZmx3clB3SHhrMkw0N3owMHpyQ1h3dlVvNmlTSms4U29YRTU3RmwzOEpwL1pkREpvOVJGSS0tTDl6d3FETzdpdmRZYVFjTS0tTXc0TzFGUXFHYmxJSlRJL2IreC96dz09"},{"category":"Network activity","disable_correlation":false,"object_relation":"host","to_ids":true,"type":"hostname","uuid":"fecb17a5-d59c-4d22-a393-6f50f770b006","value":"secure.sign-doc.com"},{"category":"Network activity","disable_correlation":false,"object_relation":"domain","to_ids":true,"type":"domain","uuid":"7a76b832-48e4-4565-8c0b-4bf74bd4ea36","value":"sign-doc.com"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"9bef7059-aca5-4886-a3a7-9fd0580f5636","value":"54.194.123.15"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"fe924de7-db6d-4839-bdf0-f3fdd47ba5fa","value":"34.245.249.165"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"cb70fa90-55cd-4291-86c9-6e0cc7931747","value":"52.212.250.15"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"4c311928-890d-4adb-8b2e-03433896b310","value":"34.250.172.41"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"677f1e3d-1e80-43e2-bbcc-7099e78b3877","value":"54.194.236.171"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"02a7861c-9895-439d-8d82-a255fa1b7fa3","value":"63.32.231.118"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"31e8eb01-e439-46ed-bc63-d9a548c4cba6","value":"54.229.170.66"},{"category":"Network activity","disable_correlation":false,"object_relation":"dom-hash","to_ids":true,"type":"dom-hash","uuid":"508c8c61-6253-4cc4-a10f-5c47a9cf2a53","value":"f6085a2151b79d1d751615ed4a238b70"}],"comment":"Last redirect (1)","description":"url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.","distribution":"5","first_seen":"2024-06-18T13:05:05.809000+00:00","meta-category":"network","name":"url","parsed_url":null,"sharing_group_id":"0","template_uuid":"60efb77b-40b5-4c46-871b-ed1ed999fce5","template_version":"10","uuid":"8ec6041e-79ca-4145-81de-241f19ecdba2"},{"Attribute":[{"category":"Payload delivery","disable_correlation":true,"object_relation":"filename","to_ids":true,"type":"filename","uuid":"fcfc946e-bae7-4a6b-8972-b9a77c330d89","value":"XTjJhTGFzUHIrSmJVQThJY3hSd0JUK05mc3Z1NXlYNXZ5U2xxS0Y5NXhOcGQwTWlzV3JheWpJVlRqTjhSSVNnUCtwREtUK0g0VlBzVTNRcXFDYXFmWEFyeHVHQU5VQ3Jvck1PWG9YZXVTbk5IV0pVcEFhN0YrR005Tk1wbE0xb3JCNysyZmx3clB3SHhrMkw0N3owMHpyQ1h3dlVvNmlTSms4U29YRTU3RmwzOEpwL1pkREpvOVJGSS0tTDl6d3FETzdpdmRZYVFjTS0tTXc0TzFGUXFHYmxJSlRJL2IreC96dz09"},{"category":"Other","disable_correlation":true,"object_relation":"size-in-bytes","to_ids":false,"type":"size-in-bytes","uuid":"6c74ab2e-d081-4eb5-8aaa-834735b61d58","value":"6459"},{"category":"Other","disable_correlation":true,"object_relation":"entropy","to_ids":false,"type":"float","uuid":"6ee60f00-3825-4e5d-91ea-2303d13c9382","value":5.252765646319845},{"category":"Payload delivery","disable_correlation":false,"object_relation":"md5","to_ids":true,"type":"md5","uuid":"d1e7cd21-955d-404f-8e93-3a7e81668749","value":"28e7fc42d4f2f5038f6b993ff9a0de83"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha1","to_ids":true,"type":"sha1","uuid":"1d9879e9-3126-42d2-a6fd-f31b340e0de8","value":"359af3aeb50c9bae4af208b1506e6040bb2df3b4"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha256","to_ids":true,"type":"sha256","uuid":"dcb8cee7-801b-47f9-8a78-d7799db764b5","value":"7162f30ecf7be4f4ce9e66f1b76aad74ad7a9ded4cece344a96853e943caecf7"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha512","to_ids":true,"type":"sha512","uuid":"a2b11af3-23c2-4b1d-ba81-e331e1c20e89","value":"9898bf6f7b66f097b40b0b10b9f27fbe9bd9bc1aae6c6769a7302ffde10172ea965e8f85c7221571eca0a995233a91880ed5e99e3355871ddf46128c68b5dde9"},{"category":"Payload delivery","data":"PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KICA8bWV0YSBuYW1lPSJJTVBPUlRBTlQiIGNvbnRlbnQ9IlRoaXMgcGFnZSBpcyBwYXJ0IG9mIGEgc2ltdWxhdGVkIHBoaXNoaW5nIGF0dGFjayBpbml0aWF0ZWQgYnkgS25vd0JlNCBvbiBiZWhhbGYgb2YgaXRzIGN1c3RvbWVycy4iIC8+CiAgPG1ldGEgbmFtZT0iSU1QT1JUQU5UIiBjb250ZW50PSJJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIHBsZWFzZSBjb250YWN0IHN1cHBvcnRAa25vd2JlNC5jb20uIiAvPgogIDxtZXRhIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIvPgogIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCwgbm9mb2xsb3ciIC8+CgogIDxoZWFkPgogIDxzY3JpcHQgc3JjPSIvYXNzZXRzL2FwcGxpY2F0aW9uLTIzN2NiNWM0ZjMxODY4NzYyNWY4Y2NmMmY0MmRlM2ZjMjAyMzhiZmUyNjczODQ2NTM0OTFhNmJiYThjOGY2ZjUuanMiPjwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2Fzc2V0cy9sYW5kaW5nLXdhdGVybWFyay04NDg3ZTM2ZWVmMWJlYzc0ZjA2NjMxZjE5ZmVhMGFhMTcxYzIwOGUyOTc2MzczY2RhNWJkMGE0YjllMjMwOTAzLmNzcyIgbWVkaWE9ImFsbCIgLz4KCiAgPC9oZWFkPgogIAo8c3R5bGU+CmJvZHkgewpiYWNrZ3JvdW5kOiAjY2FmY2Q3Owpmb250OiA0MDAgMTVweC8xLjggIkxhdG8iLCBzYW5zLXNlcmlmOwp9CgoudGlsZTEsIC50aWxlMiwgLnRpbGUzLCAudGlsZTQsIC50aWxlNSwgLnRpbGU2LCAudGlsZTcsIC50aWxlOCwgLnRpbGU5IHsKZGlzcGxheTogdGFibGUtY2VsbDsKbWluLXdpZHRoOiAyMDBweDsKbWF4LXdpZHRoOiAyMDBweDsKd2lkdGg6IDIwMHB4OwpoZWlnaHQ6IDIwMHB4Owpib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOwpiYWNrZ3JvdW5kOiB1cmwoaHR0cHM6Ly9pLmltZ3VyLmNvbS8wV2M5UkhrLnBuZyk7CmN1cnNvcjogcG9pbnRlcjsKfQoKLnRpbGUxIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDt9Ci50aWxlMiB7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDt9Ci50aWxlMyB7YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgdG9wO30KLnRpbGU0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjt9Ci50aWxlNSB7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjt9Ci50aWxlNiB7YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO30KLnRpbGU3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTt9Ci50aWxlOCB7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTt9Ci50aWxlOSB7YmFja2dyb3VuZDogI0YyRTM5NDsgY3Vyc29yOiBkZWZhdWx0O30KCmJ1dHRvbiB7Cm1hcmdpbjogMzBweCBhdXRvOwpiYWNrZ3JvdW5kLWNvbG9yOiAjMTU3NThmOwpjb2xvcjogI2ZmZmZmZjsKYm9yZGVyOiAwcHg7CnBhZGRpbmc6IDEwcHg7CnRleHQtYWxpZ246IGNlbnRlcjsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwpkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CmZvbnQtc2l6ZTogMjVweDsKY3Vyc29yOiBwb2ludGVyOwpib3JkZXItcmFkaXVzOiAxMHB4Owp3aWR0aDogNTB2dzsKbWF4LXdpZHRoOiAzMDBweDsKYWxpZ246IGNlbnRlcjsKZmxvYXQ6IGNlbnRlcjsKfQoKYnV0dG9uOmhvdmVyIHsKb3BhY2l0eTogMC44Owp9CgpidXR0b246Zm9jdXMgewpvdXRsaW5lOjA7Cn0KCiNzb2x1dGlvbiB7CmJhY2tncm91bmQ6IHRyYW5zcGFyZW50Owpib3JkZXI6IDFweCBzb2xpZCAjMTU3NThmOwpjb2xvcjogIzE1NzU4ZjsKbWFyZ2luLXJpZ2h0OiA1cHg7Cn0KCi5zb2x1dGlvbi1tb2RhbCB7CmRpc3BsYXk6IG5vbmU7CnBvc2l0aW9uOiBmaXhlZDsKei1pbmRleDogMTsKbGVmdDogMDsKdG9wOiAwOwp3aWR0aDogMTAwJTsKaGVpZ2h0OiAxMDAlOwpvdmVyZmxvdzogYXV0bzsKYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMCwwKTsKYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjQpOwp9CgoubW9kYWwtY29udGVudCB7CmJhY2tncm91bmQtY29sb3I6ICNjYWZjZDc7Cm1hcmdpbjogMTUlIGF1dG87CnBhZGRpbmc6IDEwcHg7CmJvcmRlcjogMXB4IHNvbGlkICM4ODg7Cn0KCi5jbG9zZSB7CmNvbG9yOiAjMTU3NThmOwpmbG9hdDogcmlnaHQ7CmZvbnQtc2l6ZTogMjhweDsKZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5jbG9zZTpob3ZlciwKLmNsb3NlOmZvY3VzIHsKY29sb3I6ICNmZmZmZmY7CnRleHQtZGVjb3JhdGlvbjogbm9uZTsKY3Vyc29yOiBwb2ludGVyOwp9CgoubW9kYWwtY29udGVudCBpbWcgewp3aWR0aDogNTB2dzsKfQoKLmNlbnRlciB7Cm1hcmdpbjogMHB4IGF1dG87CmZsb2F0OiBjZW50ZXI7CmFsaWduOiBjZW50ZXI7CnBhZGRpbmc6IDElIDAgMCAwOwp9CgouaGVhZGVyIHsKY29sb3I6ICMxNTc1OGY7CmZvbnQtc2l6ZTogM3Z3OwptYXJnaW46IDMwcHggYXV0bzsKdGV4dC1hbGlnbjogY2VudGVyOwpmb250LXdlaWdodDogMjAwOwpsZXR0ZXItc3BhY2luZzogNXB4Owp0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9CgoudG9wLWhlYWRlciB7CmZvbnQtd2VpZ2h0OiA4MDA7Cn0KCi5zdWJoZWFkZXIgewpjb2xvcjogIzE1NzU4ZjsKZm9udC1zaXplOiAydnc7Cm1hcmdpbjogMzBweCBhdXRvOwp0ZXh0LWFsaWduOiBjZW50ZXI7CmZvbnQtd2VpZ2h0OiAyMDA7Cn0KCmhyIHsKd2lkdGg6IDMwJTsKbWFyZ2luOiAyMHB4IGF1dG87CmJvcmRlci1ib3R0b206IDAuMTVweCBzb2xpZCAjMTU3NThmOwp9Cjwvc3R5bGU+CgoKCgoKICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgogIDxkaXYgY2xhc3M9ImhlYWRlciI+PHNwYW4gY2xhc3M9InRvcC1oZWFkZXIiPk9vcHM8L3NwYW4+PGJyPgogIFlvdSBmYWlsZWQgYSBzaW11bGF0ZWQgcGhpc2hpbmcgdGVzdDwvZGl2PgoKICA8aHI+CgogIDxkaXYgY2xhc3M9InN1YmhlYWRlciI+U29sdmUgdGhlIHB1enpsZSB0byBsZWFybiBob3cgeW91IGNhbiBzdGF5IHNhZmUgb25saW5lPC9kaXY+Cgo8Y2VudGVyPjxkaXYgaWQ9InRhYmxlIiBzdHlsZT0iZGlzcGxheTogdGFibGU7Ij4KICAgPGRpdiBpZD0icm93MSIgc3R5bGU9ImRpc3BsYXk6IHRhYmxlLXJvdzsiPgogICAgICA8ZGl2IGlkPSJjZWxsMTEiIGNsYXNzPSJ0aWxlMSIgb25jbGljaz0iY2xpY2tUaWxlKDEsMSk7Ij48L2Rpdj4KICAgICAgPGRpdiBpZD0iY2VsbDEyIiBjbGFzcz0idGlsZTIiIG9uY2xpY2s9ImNsaWNrVGlsZSgxLDIpOyI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9ImNlbGwxMyIgY2xhc3M9InRpbGUzIiBvbmNsaWNrPSJjbGlja1RpbGUoMSwzKTsiPjwvZGl2PgogICA8L2Rpdj4KICAgPGRpdiBpZD0icm93MiIgc3R5bGU9ImRpc3BsYXk6IHRhYmxlLXJvdzsiPgogICAgICA8ZGl2IGlkPSJjZWxsMjEiIGNsYXNzPSJ0aWxlNCIgb25jbGljaz0iY2xpY2tUaWxlKDIsMSk7Ij48L2Rpdj4KICAgICAgPGRpdiBpZD0iY2VsbDIyIiBjbGFzcz0idGlsZTUiIG9uY2xpY2s9ImNsaWNrVGlsZSgyLDIpOyI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9ImNlbGwyMyIgY2xhc3M9InRpbGU2IiBvbmNsaWNrPSJjbGlja1RpbGUoMiwzKTsiPjwvZGl2PgogICA8L2Rpdj4KICAgPGRpdiBpZD0icm93MyIgc3R5bGU9ImRpc3BsYXk6IHRhYmxlLXJvdzsiPgogICAgICA8ZGl2IGlkPSJjZWxsMzEiIGNsYXNzPSJ0aWxlNyIgb25jbGljaz0iY2xpY2tUaWxlKDMsMSk7Ij48L2Rpdj4KICAgICAgPGRpdiBpZD0iY2VsbDMyIiBjbGFzcz0idGlsZTgiIG9uY2xpY2s9ImNsaWNrVGlsZSgzLDIpOyI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9ImNlbGwzMyIgY2xhc3M9InRpbGU5IiBvbmNsaWNrPSJjbGlja1RpbGUoMywzKTsiPjwvZGl2PgogICA8L2Rpdj4KPC9kaXY+CgogIDxidXR0b24gaWQ9InNvbHV0aW9uIj5TT0xVVElPTjwvYnV0dG9uPgogIDxidXR0b24gb25jbGljaz0ic2h1ZmZsZSgpOyI+U0hVRkZMRTwvYnV0dG9uPgoKICA8ZGl2IGlkPSJzb2x1dGlvbi1tb2RhbCIgY2xhc3M9InNvbHV0aW9uLW1vZGFsIj4KCiAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+CiAgPHNwYW4gY2xhc3M9ImNsb3NlIj7Dlzwvc3Bhbj4KICA8cD48aW1nIHNyYz0iaHR0cHM6Ly9pLmltZ3VyLmNvbS8wV2M5UkhrLnBuZyI+PC9wPgogIDwvZGl2PgoKPC9kaXY+PC9jZW50ZXI+CgoKCjxzY3JpcHQ+CmZ1bmN0aW9uIHN3YXBUaWxlcyhjZWxsMSxjZWxsMikgewp2YXIgdGVtcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNlbGwxKS5jbGFzc05hbWU7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNlbGwxKS5jbGFzc05hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjZWxsMikuY2xhc3NOYW1lOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjZWxsMikuY2xhc3NOYW1lID0gdGVtcDsKfQoKZnVuY3Rpb24gc2h1ZmZsZSgpIHsKLy9Vc2UgbmVzdGVkIGxvb3BzIHRvIGFjY2VzcyBlYWNoIGNlbGwgb2YgdGhlIDN4MyBncmlkCmZvciAodmFyIHJvdz0xO3Jvdzw9Mztyb3crKykgeyAvL0ZvciBlYWNoIHJvdyBvZiB0aGUgM3gzIGdyaWQKICAgZm9yICh2YXIgY29sdW1uPTE7Y29sdW1uPD0zO2NvbHVtbisrKSB7IC8vRm9yIGVhY2ggY29sdW1uIGluIHRoaXMgcm93CgogICAgdmFyIHJvdzI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMgKyAxKTsgLy9QaWNrIGEgcmFuZG9tIHJvdyBmcm9tIDEgdG8gMwogICAgdmFyIGNvbHVtbjI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMgKyAxKTsgLy9QaWNrIGEgcmFuZG9tIGNvbHVtbiBmcm9tIDEgdG8gMwoKICAgIHN3YXBUaWxlcygiY2VsbCIrcm93K2NvbHVtbiwiY2VsbCIrcm93Mitjb2x1bW4yKTsgLy9Td2FwIHRoZSBsb29rICYgZmVlbCBvZiBib3RoIGNlbGxzCiAgfQp9Cn0KCmZ1bmN0aW9uIGNsaWNrVGlsZShyb3csY29sdW1uKSB7CiAgdmFyIGNlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbCIrcm93K2NvbHVtbik7CiAgdmFyIHRpbGUgPSBjZWxsLmNsYXNzTmFtZTsKICBpZiAodGlsZSE9InRpbGU5IikgewogICAgICAgaWYgKGNvbHVtbjwzKSB7CiAgICAgICAgIGlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwiK3JvdysoY29sdW1uKzEpKS5jbGFzc05hbWU9PSJ0aWxlOSIpIHsKICAgICAgICAgICBzd2FwVGlsZXMoImNlbGwiK3Jvdytjb2x1bW4sImNlbGwiK3JvdysoY29sdW1uKzEpKTsKICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgIH0KICAgICAgIGlmIChjb2x1bW4+MSkgewogICAgICAgICBpZiAoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZWxsIityb3crKGNvbHVtbi0xKSkuY2xhc3NOYW1lPT0idGlsZTkiKSB7CiAgICAgICAgICAgc3dhcFRpbGVzKCJjZWxsIityb3crY29sdW1uLCJjZWxsIityb3crKGNvbHVtbi0xKSk7CiAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICB9CiAgICAgICBpZiAocm93PjEpIHsKICAgICAgICAgaWYgKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbCIrKHJvdy0xKStjb2x1bW4pLmNsYXNzTmFtZT09InRpbGU5IikgewogICAgICAgICAgIHN3YXBUaWxlcygiY2VsbCIrcm93K2NvbHVtbiwiY2VsbCIrKHJvdy0xKStjb2x1bW4pOwogICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgfQogICAgICAgaWYgKHJvdzwzKSB7CiAgICAgICAgIGlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwiKyhyb3crMSkrY29sdW1uKS5jbGFzc05hbWU9PSJ0aWxlOSIpIHsKICAgICAgICAgICBzd2FwVGlsZXMoImNlbGwiK3Jvdytjb2x1bW4sImNlbGwiKyhyb3crMSkrY29sdW1uKTsKICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgIH0KICB9Cn0KPC9zY3JpcHQ+Cgo8c2NyaXB0Pgp2YXIgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic29sdXRpb24tbW9kYWwiKTsKdmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb2x1dGlvbiIpOwp2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNsb3NlIilbMF07CgpidG4ub25jbGljayA9IGZ1bmN0aW9uKCkgewogIG1vZGFsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwp9CgpzcGFuLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICBtb2RhbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwp9Cgp3aW5kb3cub25jbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgaWYgKGV2ZW50LnRhcmdldCA9PSBtb2RhbCkgewogICAgbW9kYWwuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICB9Cn0KPC9zY3JpcHQ+CjwvZGl2PgoKCjwvaHRtbD4K","disable_correlation":true,"encrypt":true,"malware_filename":"XTjJhTGFzUHIrSmJVQThJY3hSd0JUK05mc3Z1NXlYNXZ5U2xxS0Y5NXhOcGQwTWlzV3JheWpJVlRqTjhSSVNnUCtwREtUK0g0VlBzVTNRcXFDYXFmWEFyeHVHQU5VQ3Jvck1PWG9YZXVTbk5IV0pVcEFhN0YrR005Tk1wbE0xb3JCNysyZmx3clB3SHhrMkw0N3owMHpyQ1h3dlVvNmlTSms4U29YRTU3RmwzOEpwL1pkREpvOVJGSS0tTDl6d3FETzdpdmRZYVFjTS0tTXc0TzFGUXFHYmxJSlRJL2IreC96dz09","object_relation":"malware-sample","to_ids":true,"type":"malware-sample","uuid":"a583b84d-52c1-4e96-b768-a5dc996d92ec","value":"XTjJhTGFzUHIrSmJVQThJY3hSd0JUK05mc3Z1NXlYNXZ5U2xxS0Y5NXhOcGQwTWlzV3JheWpJVlRqTjhSSVNnUCtwREtUK0g0VlBzVTNRcXFDYXFmWEFyeHVHQU5VQ3Jvck1PWG9YZXVTbk5IV0pVcEFhN0YrR005Tk1wbE0xb3JCNysyZmx3clB3SHhrMkw0N3owMHpyQ1h3dlVvNmlTSms4U29YRTU3RmwzOEpwL1pkREpvOVJGSS0tTDl6d3FETzdpdmRZYVFjTS0tTXc0TzFGUXFHYmxJSlRJL2IreC96dz09"},{"category":"Artifacts dropped","disable_correlation":true,"object_relation":"mimetype","to_ids":false,"type":"mime-type","uuid":"b875a6ac-022f-4306-a61b-0575ece823c8","value":"text/html"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"ssdeep","to_ids":true,"type":"ssdeep","uuid":"07f6e4e2-eca5-4392-9f3a-759bfce93d1c","value":"192:ObaByD+hyVo+Xt/EWUd7Oord/0Gycdy40oJ0u/OJiaiUi8:OuMD42o4t/Eld7OordrycdyC7WJiaiUd"},{"category":"Network activity","disable_correlation":false,"object_relation":"dom-hash","to_ids":true,"type":"dom-hash","uuid":"43e1cd6c-dff1-450e-95cf-079c50bf6c52","value":"f6085a2151b79d1d751615ed4a238b70"}],"ObjectReference":[{"comment":"URL loading that content","object_uuid":"732280fb-3a6c-40bd-bcd0-69ec1226502d","referenced_uuid":"8ec6041e-79ca-4145-81de-241f19ecdba2","relationship_type":"loaded-by","uuid":"ff35e569-b3ba-489e-af6d-3f2fb3930f38"},{"comment":"Screenshot of the page","object_uuid":"732280fb-3a6c-40bd-bcd0-69ec1226502d","referenced_uuid":"ddfdb7b3-2354-45c2-a4b4-560497ce979b","relationship_type":"rendered-as","uuid":"1c04575b-5810-44fe-bd8d-8f18a58dd3c3"},{"comment":"Rendered HTML at the end of the capture","object_uuid":"732280fb-3a6c-40bd-bcd0-69ec1226502d","referenced_uuid":"19681846-c09a-4c4d-be2d-8eb007b82f62","relationship_type":"rendered-as","uuid":"dc6da2b7-fb1f-45af-bf97-d1f45d379aa8"}],"comment":"Content received for the final redirect (before rendering)","description":"File object describing a file with meta-information","distribution":"5","first_seen":"2024-06-18T13:05:06.026000+00:00","magic_db":null,"meta-category":"file","name":"file","sharing_group_id":"0","template_uuid":"688c46fb-5edb-40a3-8273-1af7923e2215","template_version":"25","uuid":"732280fb-3a6c-40bd-bcd0-69ec1226502d"}],"info":"Lookyloo Capture (https://secure.sign-doc.com/XTjJhTGFzUHIrSmJVQThJY3hSd0JUK05mc3Z1NXlYNXZ5U2xxS0Y5NXhOcGQwTWlzV3JheWpJVlRqTjhSSVNnUCtwREtUK0g0VlBzVTNRcXFDYXFmWEFyeHVHQU5VQ3Jvck1PWG9YZXVTbk5IV0pVcEFhN0YrR005Tk1wbE0xb3JCNysyZmx3clB3SHhrMkw0N3owMHpyQ1h3dlVvNmlTSms4U29YRTU3RmwzOEpwL1pkREpvOVJGSS0tTDl6d3FETzdpdmRZYVFjTS0tTXc0TzFGUXFHYmxJSlRJL2IreC96dz09?cid=256676185)","uuid":"35175e88-9a3e-4fa0-b4e6-1e052baf0673"}]
