⚝
One Hat Cyber Team
⚝
Your IP:
216.73.217.4
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
local
/
psa
/
var
/
modules
/
xovi
/
Edit File: serp_1.json
{"success":true,"settings":{"hash":"1","url":"https:\/\/www.google.com\/search?q=sweatpants+sewing+pattern+free&as_rights=&num=100&start=0&pws=0&hl=en&near=United+States&uule=w+CAIQICINVW5pdGVkIFN0YXRlcw&gws_rd=cr&gl=US&glp=1&gbv=1"},"code":200,"exception":null,"bodyLen":84212,"body":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjx0aXRsZT5Hb29nbGUgU2VhcmNoPC90aXRsZT4gPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4gPG1ldGEgY29udGVudD0iMDt1cmw9L2h0dHBzZXJ2aWNlL3JldHJ5L2VuYWJsZWpzP3NlaT1JV2lBYU1INEdvRFY3TThQNzdDeWlBRSIgaHR0cC1lcXVpdj0icmVmcmVzaCI+PGRpdiBzdHlsZT0iZGlzcGxheTpibG9jayI+UGxlYXNlIGNsaWNrIDxhIGhyZWY9Ii9odHRwc2VydmljZS9yZXRyeS9lbmFibGVqcz9zZWk9SVdpQWFNSDRHb0RWN004UDc3Q3lpQUUiPmhlcmU8L2E+IGlmIHlvdSBhcmUgbm90IHJlZGlyZWN0ZWQgd2l0aGluIGEgZmV3IHNlY29uZHMuPC9kaXY+PC9ub3NjcmlwdD4gPHNjcmlwdCBub25jZT0iSXJZclp0SmZUcHp0SlJxeTItNFVJdyI+Ly8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PQooZnVuY3Rpb24oKXt2YXIgbj1mdW5jdGlvbih5LEUsbCxZLFAsSyxVLEksUixUKXtmb3IoUj0xNztSIT04MDspe2lmKFI9PTk1KXJldHVybiBUO2lmKFI9PTI0KVI9bCsxPj5FPT0xPzgzOjEyO2Vsc2UgaWYoUj09MTIpUj1sLXkmNj85NTo2O2Vsc2UgaWYoUj09ODMpVD1ZLFI9MTI7ZWxzZSBpZihSPT0xNylSPTI0O2Vsc2UgaWYoUj09Nil7aWYoST0oVT1PLnRydXN0ZWRUeXBlcyxQKSxVJiZVLmNyZWF0ZVBvbGljeSl7dHJ5e0k9VS5jcmVhdGVQb2xpY3koWSx7Y3JlYXRlSFRNTDp2LGNyZWF0ZVNjcmlwdDp2LGNyZWF0ZVNjcmlwdFVSTDp2fSl9Y2F0Y2goUyl7aWYoTy5jb25zb2xlKU8uY29uc29sZVtLXShTLm1lc3NhZ2UpfVQ9SX1lbHNlIFQ9STtSPTk1fX19LE89dGhpc3x8c2VsZix2PWZ1bmN0aW9uKHkpe3JldHVybiBuLmNhbGwodGhpcyw1LDMsNyx5KX07KDAsZXZhbCkoZnVuY3Rpb24oeSxFKXtyZXR1cm4oRT1uKDUsMyw1LCJrcyIsbnVsbCwiZXJyb3IiKSkmJnkuZXZhbChFLmNyZWF0ZVNjcmlwdCgiMSIpKT09PTE\/ZnVuY3Rpb24obCl7cmV0dXJuIEUuY3JlYXRlU2NyaXB0KGwpfTpmdW5jdGlvbihsKXtyZXR1cm4iIitsfX0oTykoQXJyYXkoTWF0aC5yYW5kb20oKSo3ODI0fDApLmpvaW4oIlxuIikrWycvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvZ015d2ljMjkxY21ObGN5STZXeUlpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUlDSmRMQ0p1WVcxbGN5STZXeUpqYkc5emRYSmxSSGx1WVcxcFkwSjFkSFJ2YmlKZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRWlmUT09JywKJyhmdW5jdGlvbigpey8qJywKJycsCicgQ29weXJpZ2h0IEdvb2dsZSBMTEMnLAonIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJywKJyovJywKJ3ZhciBOJD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSl7e0k9OTY7d2hpbGUoSSE9MTkpaWYoST09OTgpST0oeS0xXjIwKT49eSYmKHkrOV4zMCk8eT84NTo0OTtlbHNlIGlmKEk9PTU5KVk9Tz1SLEk9NjY7ZWxzZSBpZihJPT04NSl7YTp7Zm9yKE8gaW4gdilpZihVLmNhbGwodm9pZCAwLHZbT10sTyx2KSl7VD1FO2JyZWFrIGF9VD1sfUk9NDl9ZWxzZSBpZihJPT0yOClPKz1PPDwzLE9ePU8+PjExLEs9TysoTzw8MTUpPj4+Uix2PW5ldyBOdW1iZXIoSyYoMTw8bCktMSksdltSXT0oSz4+PmwpJVUsVD12LEk9NTE7ZWxzZSBpZihJPT0xNSl0aGlzLkM9TyxJPTYzO2Vsc2UgaWYoST09NjMpST0oeV4yMCk+PjQ9PTQ\/NzM6Mzk7ZWxzZSBpZihJPT03OSlZKyssST0yOTtlbHNlIGlmKEk9PTUwKXRoaXNbdGhpcysiIl09dGhpcyxUPVByb21pc2UucmVzb2x2ZSgpLEk9NTM7ZWxzZSBpZihJPT01MylJPSh5JjEyMCk9PXk\/NTk6NTE7ZWxzZSBpZihJPT0yKU89dj90eXBlb2Ygdi5YZT09PSJmdW5jdGlvbiI\/di5YZSgpOm5ldyB2Om51bGwsST0xNTtlbHNle2lmKEk9PTUxKXJldHVybiBUO0k9PTc0P0k9KHY9V3Rbbl0pPzY4OjYyOkk9PTUyPyhZPXRoaXMuY29uc3RydWN0b3IsST0xMyk6ST09NjQ\/KE8rPUUuY2hhckNvZGVBdChZKSxPKz1PPDwxMCxPXj1PPj42LEk9NzkpOkk9PTY4P0k9MjpJPT03Mj9JPShPPWwpPzE1OjUyOkk9PTY2P0k9Mjk6ST09NzM\/KHRoaXMucUk9Yy5kb2N1bWVudHx8ZG9jdW1lbnQsST0zOSk6ST09Mjk\/ST1ZPEUubGVuZ3RoPzY0OjI4Okk9PTEzP0k9NDU6ST09NDg\/ST00NTpJPT05Nj9JPTk4Okk9PTY3PyhuPXEkKDM3LDUsWSksST03NCk6ST09NDk\/ST0oeSs5XjE3KT49eSYmKHktOXw3MSk8eT8zNzo2MzpJPT00NT9JPVk\/Njc6MjpJPT0zNz8oWlUuY2FsbCh0aGlzLFUpLEk9NzIpOkk9PTM5P0k9KHktOHwzMik8eSYmKHktNnw0Myk+PXk\/NTA6NTM6ST09NjImJihZPShLPU9iamVjdC5nZXRQcm90b3R5cGVPZihZLnByb3RvdHlwZSkpJiZLLmNvbnN0cnVjdG9yLEk9NDgpfX19LEo9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKEs9ODU7SyE9MzQ7KWlmKEs9PTg5KXYgaW4gWSYmbC5jYWxsKHZvaWQgMCxZW3ZdLHYsVSksSz0xOTtlbHNlIGlmKEs9PTg2KU89VS5sZW5ndGgsWT10eXBlb2YgVT09PSJzdHJpbmciP1Uuc3BsaXQoeSk6VSx2PVIsSz00ODtlbHNle2lmKEs9PTY4KXJldHVybiBuO2lmKEs9PTIyKUs9djxPPzg5OjYxO2Vsc2UgaWYoSz09ODUpSz03NDtlbHNlIGlmKEs9PTg4KXtmb3IoWSBpbihVPVIsbCkubCl7Zm9yKE89KHY9bC5sW1ldLFIpO088di5sZW5ndGg7TysrKSsrVSxuTigzNCx5LHZbT10pO2RlbGV0ZSBsLmxbWV0sbC5RVC0tfUs9MjV9ZWxzZSBLPT0zOT8obj15LmNsYXNzTGlzdD95LmNsYXNzTGlzdDpQdCgwLDYseSwiIixSKS5tYXRjaCgvXFxTKy9nKXx8W10sSz05Mik6Sz09MjU\/Sz0oKEV8NikmMTEpPT0zPzg2OjYxOks9PTQ4P0s9MjI6Sz09NjM\/KG49S04oUixsLFUsMzQpJiYhIShsLlgmVSkhPXkmJighKGwuWXcmVSl8fGwuZGlzcGF0Y2hFdmVudChTRCgzLDQwLDMyLFIsMTYsOCxVLHkpKSkmJiFsLlUsSz02OCk6Sz09MTk\/KHYrKyxLPTIyKTpLPT03ND9LPShFfDI0KT09RT84ODoyNTpLPT02MT9LPUU8PDImMTU\/OTI6Mzk6Sz09OTImJihLPUUtNz49LTQzJiYoRT4+MSYxNik8MTU\/NjM6NjgpfX0sWVQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXLFMpe2ZvcihTPTE3O1MhPTgwOylpZihTPT0xMilTPShVPDwxJjcpPj01JiZVPj4xPDIyPzY6OTU7ZWxzZSBpZihTPT05NylTPWwuYWRkTGlzdGVuZXImJmwucmVtb3ZlTGlzdGVuZXI\/ODQ6Nzc7ZWxzZSBpZihTPT0yNClTPShVLTd8MjYpPFUmJihVLTFeMjcpPj1VPzgzOjEyO2Vsc2UgaWYoUz09OTEpUz1ULnByb3h5PzEyOjc7ZWxzZSBpZihTPT03KW49UnIoMTUsNiksVC5wcm94eT1uLG4uc3JjPWwsbi5saXN0ZW5lcj1ULFM9MzI7ZWxzZSBpZihTPT01MClsLmF0dGFjaEV2ZW50KFJyKDE1LDUxLCJvbiIsTy50b1N0cmluZygpKSxuKSxTPTE2O2Vsc2V7aWYoUz09ODkpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO2lmKFM9PTE2KWxRKyssUz0xMjtlbHNlIGlmKFM9PTE3KVM9MjQ7ZWxzZSBpZihTPT04MylTPU8\/NzU6ODk7ZWxzZSBpZihTPT04NClsLmFkZExpc3RlbmVyKG4pLFM9MTY7ZWxzZSBpZihTPT03NSlQPUlyKDY0LFIsRSk\/ISFFLmNhcHR1cmU6ISFFLChJPXooNjksbCkpfHwobFtUal09ST1uZXcgT3EobCkpLFQ9SS5hZGQoTyx5LFksUCxLKSxTPTkxO2Vsc2V7aWYoUz09OTUpcmV0dXJuIFc7aWYoUz09NjYpUz1sLmF0dGFjaEV2ZW50PzUwOjk3O2Vsc2UgaWYoUz09MzIpUz1sLmFkZEV2ZW50TGlzdGVuZXI\/OTo2NjtlbHNle2lmKFM9PTc3KXRocm93IEVycm9yKCJhZGRFdmVudExpc3RlbmVyIGFuZCBhdHRhY2hFdmVudCBhcmUgdW5hdmFpbGFibGUuIik7aWYoUz09OSl2dHx8KEU9UCksRT09PXZvaWQgMCYmKEU9diksbC5hZGRFdmVudExpc3RlbmVyKE8udG9TdHJpbmcoKSxuLEUpLFM9MTY7ZWxzZSBpZihTPT02KXthOntmb3IoTz12O088RS5sZW5ndGg7KytPKWlmKFk9RVtPXSwhWS54VyYmWS5saXN0ZW5lcj09eSYmWS5jYXB0dXJlPT0hIVImJlkuRDk9PWwpe1c9TzticmVhayBhfVc9LTF9Uz05NX19fX19LGI9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtzd2l0Y2goISgoeT4+MiY3KT49NCYmKCh5fDQpJjgpPDMpKXtjYXNlICEiIj09IWZhbHNlOk51bWJlcih1bmRlZmluZWQpO2JyZWFrO2Nhc2UgTmFOPT09TnVtYmVyKHRydWUudHJ1ZSk6aWYoTz13dSgib2JqZWN0IixsLCJudW1iZXIiKT09PSJhcnJheSI\/bDpbbF0sdGhpcy5qKVIodGhpcy5qKTtlbHNlIHRyeXtVPSF0aGlzLkoubGVuZ3RoLHY9W10seigzNSwwLHRoaXMsW2hwLHYsT10pLHooMywwLHRoaXMsW2lRLFIsdl0pLEUmJiFVfHx6KDI3LDAsRSx0aGlzLHRydWUpfWNhdGNoKEspe1B0KDAsNyx0aGlzLEssIjoiKSxSKHRoaXMuail9YnJlYWt9cmV0dXJuIHktMz4+NTw0JiYoeT4+MSY3KT49NSYmKFIuST9ZPUJ0KFIuUixSKToobD1wKFIsdHJ1ZSw4KSxsJjEyOCYmKGw9Mip+KGwmMTI4KS0yKn5sLShsfC0xMjkpKyh+bHwxMjgpLEU9cChSLHRydWUsMiksbD0oVT1sPDwyLDMqKFV8RSktKFUmRSktIC0yKzIqKH5VXkUpKSksWT1sKSksWX0sU0Q9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKEs9NDI7SyE9MzQ7KWlmKEs9PTY2KVk9dHlwZW9mIHYsTz1ZIT1sP1k6dj9BcnJheS5pc0FycmF5KHYpPyJhcnJheSI6WToibnVsbCIsbj1PPT1VfHxPPT1sJiZ0eXBlb2Ygdi5sZW5ndGg9PUUsSz0xNDtlbHNlIGlmKEs9PTI3KW49TWF0aC5mbG9vcih0aGlzLlZUKyh0aGlzLkYoKS10aGlzLnlUKSksSz03MTtlbHNlIGlmKEs9PTI1KUs9KHl8OSk+PjQ8MiYmeTw8Mj49LTQ3PzI3OjcxO2Vsc2UgaWYoSz09NDIpSz0yNTtlbHNle2lmKEs9PTUzKXJldHVybiBuO2lmKEs9PTcxKUs9KHktUnw0OCk+PXkmJih5LTV8MjMpPHk\/NjY6MTQ7ZWxzZSBpZihLPT0xKXthOntzd2l0Y2goTyl7Y2FzZSAxOm49WT8iZGlzYWJsZSI6ImVuYWJsZSI7YnJlYWsgYTtjYXNlIGw6bj1ZPyJoaWdobGlnaHQiOiJ1bmhpZ2hsaWdodCI7YnJlYWsgYTtjYXNlIDQ6bj1ZPyJhY3RpdmF0ZSI6ImRlYWN0aXZhdGUiO2JyZWFrIGE7Y2FzZSB2Om49WT8ic2VsZWN0IjoidW5zZWxlY3QiO2JyZWFrIGE7Y2FzZSBVOm49WT8iY2hlY2siOiJ1bmNoZWNrIjticmVhayBhO2Nhc2UgRTpuPVk\/ImZvY3VzIjoiYmx1ciI7YnJlYWsgYTtjYXNlIDY0Om49WT8ib3BlbiI6ImNsb3NlIjticmVhayBhfXRocm93IEVycm9yKCJJbnZhbGlkIGNvbXBvbmVudCBzdGF0ZSIpO31LPTUzfWVsc2UgSz09MTQmJihLPSh5fDQwKT09eT8xOjUzKX19LEw9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXLFMpe2ZvcihTPTYxLFQ9NjQ7Oyl0cnl7aWYoUz09NDApYnJlYWs7ZWxzZSBpZihTPT02MilUPTUwLG49cE4oTyxVLDQ2NSxZKSxTPTQxO2Vsc2UgaWYoUz09ODIpTy5LPVIsWT1PLkoucG9wKCksUz02MjtlbHNlIGlmKFM9PTIpUz1VIGluIGwubCYmeFQoNSwxLGwubFtVXSxFKT8xNTo5MTtlbHNle2lmKFM9PTYwKXRocm93IEVycm9yKCJJbnZhbGlkIGRlY29yYXRvciBmdW5jdGlvbiAiK1IpO2lmKFM9PTYxKVM9Mjg7ZWxzZSBpZihTPT05NylTPXktMT4+Mz09Mz84OjQzO2Vsc2UgaWYoUz09OClTPTIxO2Vsc2UgaWYoUz09MTUpbk4oMzUsUixFKSxTPTczO2Vsc2UgaWYoUz09NTUpZGVsZXRlIGwubFtVXSxsLlFULS0sUz05MTtlbHNle2lmKFM9PTUpdGhyb3cgRXJyb3IoIkludmFsaWQgY2xhc3MgbmFtZSAiK0UpO2lmKFM9PTkpUz15KzQ+PjM9PTE\/NDQ6OTE7ZWxzZSBpZihTPT0yMSlTPU8uSi5sZW5ndGg\/ODI6NjU7ZWxzZSBpZihTPT05NilTPUU\/MjA6NTtlbHNlIGlmKFM9PTcwKVQ9NjQsUHQoMCwzLE8sUCwiOiIpLFM9NDE7ZWxzZSBpZihTPT0yNilTPTIxO2Vsc2UgaWYoUz09NjUpST1uLFM9NDM7ZWxzZSBpZihTPT04NClTPXYmJk8uSz81MDoyNjtlbHNlIGlmKFM9PTI4KVM9eT4+MiYxMT85Nzo5MztlbHNlIGlmKFM9PTkzKVc9ZnVuY3Rpb24oKXt9LFcucHJvdG90eXBlPWwucHJvdG90eXBlLEUuUz1sLnByb3RvdHlwZSxFLnByb3RvdHlwZT1uZXcgVyxFLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1FLEUuTDU9ZnVuY3Rpb24ocSxOLGgpe2Zvcih2YXIgdz00Nzt3IT03OylpZih3PT04OSlCW0MtUl09YXJndW1lbnRzW0NdLHc9NjQ7ZWxzZSBpZih3PT00Nyl2YXIgQj1BcnJheShhcmd1bWVudHMubGVuZ3RoLSh3PTU1LFIpKSxDPVI7ZWxzZSBpZih3PT02NClDKyssdz00MjtlbHNle2lmKHc9PTIxKXJldHVybiBsLnByb3RvdHlwZVtOXS5hcHBseShxLEIpO3c9PTU1P3c9NDI6dz09NDImJih3PUM8YXJndW1lbnRzLmxlbmd0aD84OToyMSl9fSxTPTk3O2Vsc2UgaWYoUz09NDMpUz0oeXw0MCk9PXk\/OTY6OTtlbHNle2lmKFM9PTkxKXJldHVybiBJO1M9PTQxPyhUPTY0LFM9ODQpOlM9PTQ0PyhVPUUudHlwZSxTPTIpOlM9PTIwP1M9dHlwZW9mIFIhPT0iZnVuY3Rpb24iPzYwOjk6Uz09NTA\/KEs9Ty5LLEsoZnVuY3Rpb24oKXt6KDQzLGwsRSxPLEUpfSksUz02NSk6Uz09NzMmJihTPWwubFtVXS5sZW5ndGg9PTA\/NTU6OTEpfX19fWNhdGNoKHEpe2lmKFQ9PTY0KXRocm93IHE7VD09NTAmJihQPXEsUz03MCl9fSxjdD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyl7cmV0dXJuKHleNDApPj40fHwodj1EVSh0cnVlLDgsRSksMioodnwwKS1+KHYmMTI4KS0gLTErMip+diYmKHY9KGw9KHZ8UiktKHYmLTEyOCktKH52JlIpLFU9RFUodHJ1ZSw4LEUpPDw3LC0obCZVKS0yKn4obCZVKSstMisobF5VKSkpLEs9diksKHleMyk+PjN8fChLPShVPShPPUVbbF08PFJ8RVsyKihsfDEpLSAtMS0ofmwmMSkrKH5sfDEpXTw8MTYsWT1FWzMqKGwmMikrfihsJjIpLSh+bF4yKV08PDgsKE8mWSktMS0ofk9eWSkpLHY9RVsobHwwKSszXSwoVXwwKSt+VS1+KFV8dikpKSxLfSx6PWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCl7Zm9yKG49NjQ7biE9NzE7KWlmKG49PTI0KXtpZihsLkoubGVuZ3RoKXsobC5KVCYmIjpUUVI6VFFSOiIoKSxsKS5KVD10cnVlLGwueVo9RTt0cnl7dj1sLkYoKSxsLnByPXksbC5ZVz15LGwuRmU9dixsLnlUPXYsSz1MKG51bGwsMjUsdHJ1ZSwwLDMsRSxsKSxPPVU\/MDoxMCxZPWwuRigpLWwueVQsbC5WVCs9WSxsLkUyJiZsLkUyKFktbC5QLGwuTyxsLkwsbC5wciksbC5QPXksbC5PPWZhbHNlLGwuTD1mYWxzZSxZPE98fGwuQlktLTw9eXx8KFk9TWF0aC5mbG9vcihZKSxsLktyLnB1c2goWTw9MjU0P1k6MjU0KSl9ZmluYWxseXtsLkpUPWZhbHNlfVQ9S31uPTF9ZWxzZSBpZihuPT00MClFLkouc3BsaWNlKHkseSxsKSxuPTk4O2Vsc2UgaWYobj09ODUpdVEuY2FsbCh0aGlzLHk\/eS50eXBlOiIiKSx0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGwsdGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MCx0aGlzLmtleT0iIix0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wLHRoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT1mYWxzZSx0aGlzLnN0YXRlPW51bGwsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPSIiLHRoaXMudGltZVN0YW1wPTAsdGhpcy53cj1udWxsLHkmJnRoaXMuaW5pdCh5LEUpLG49MzI7ZWxzZSBpZihuPT0zMiluPShSPj4yJjExKT09MT80ODo1MTtlbHNlIGlmKG49PTI1KVQ9dGhpcy5uPT09MD8wOk1hdGguc3FydCh0aGlzLnRUL3RoaXMubiksbj01ODtlbHNlIGlmKG49PTQ4KUU9eVtUal0sVD1FIGluc3RhbmNlb2YgT3E\/RTpudWxsLG49NTE7ZWxzZSBpZihuPT02NCluPTYxO2Vsc2UgaWYobj09OTgpbj0oUiYyOSk9PVI\/MjU6NTg7ZWxzZSBpZihuPT02MSluPShSJjk0KT09Uj84NTozMjtlbHNlIGlmKG49PTU4KW49KFIrOCYxNSk9PTM\/MjQ6MTtlbHNlIGlmKG49PTUxKW49KFImMzkpPT1SPzQwOjk4O2Vsc2UgaWYobj09MSlyZXR1cm4gVH0sS049ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXKXtmb3IoVz05NDtXIT04OTspaWYoVz09NzQpbj1JcigzMixFLE8pPyEhTy5jYXB0dXJlOiEhTyx5PW5OKDE1LHkpLFc9ODQ7ZWxzZSBpZihXPT0zNylXPUk\/MTU6ODE7ZWxzZSBpZihXPT0yNSlUKyssVz0yMjtlbHNlIGlmKFc9PTk0KVc9MTc7ZWxzZSBpZihXPT02OSlQPSEhKFU9eS5oeSwoVXwwKSsoVSZ+RSktUiooVV5FKStSKih+VSZFKSksVz0yMTtlbHNlIGlmKFc9PTE1KShLPUkubnIobixZLHksdikpJiYkVCgib24iLDQxLG51bGwsSyksVz04MTtlbHNlIGlmKFc9PTIyKVc9VDxZLmxlbmd0aD8zODo4MTtlbHNlIGlmKFc9PTM4KUtOKDAseSwib2JqZWN0Iiw1LFUsdixPLFlbVF0pLFc9MjU7ZWxzZSBpZihXPT0xNylXPWw+PjE8MTUmJihsfDIpPj0zPzYyOjgxO2Vsc2UgaWYoVz09MzEpVz1VPzI3OjgxO2Vsc2V7aWYoVz09MjEpcmV0dXJuIFA7Vz09NjI\/Vz1BcnJheS5pc0FycmF5KFkpPzYwOjc0Olc9PTg0P1c9VSYmVVt0cF0\/NTU6MzE6Vz09Mjc\/KEk9eigyMyxVKSxXPTM3KTpXPT01NT8oVS5aLnJlbW92ZShTdHJpbmcoWSkseSxuLHYpLFc9ODEpOlc9PTgxP1c9KGwmMTE1KT09bD82OToyMTpXPT05OT9XPTIyOlc9PTYwJiYoVD1SLFc9OTkpfX0sR2o9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7e249Mjt3aGlsZShuIT0xMylpZihuPT02OSluPSh5JjY5KT09eT8yMDozODtlbHNlIGlmKG49PTg5KXtpZigoTz1sLmxlbmd0aCxPKT5FKXtmb3Iodj1BcnJheShPKSxVPUU7VTxPO1UrKyl2W1VdPWxbVV07Sz12fWVsc2UgSz1bXTtuPTE3fWVsc2UgaWYobj09MTcpbj0oeS01JjcpPT0xPzQ6OTA7ZWxzZXtpZihuPT0zOClyZXR1cm4gSztuPT00Mj9uPTY5Om49PTg\/bj0oeSY1OSk9PXk\/ODk6MTc6bj09OTA\/bj15Pj4xPFImJnktNT49Mz80Mjo2OTpuPT0yP249ODpuPT00PyhrVC5jYWxsKHRoaXMpLHRoaXMuWj1uZXcgT3EodGhpcyksdGhpcy5icD1udWxsLHRoaXMuWE49dGhpcyxuPTkwKTpuPT0yMCYmKFkuY2xhc3NMaXN0P1kuY2xhc3NMaXN0LnJlbW92ZShPKTphcigib2ZmIiwyMSxVLGwsWSxPKSYmQSg0Nix2LFksQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKEooVSxZLDMyKSxmdW5jdGlvbihUKXtyZXR1cm4gVCE9T30pLmpvaW4oRSkpLG49MzgpfX19LGFyPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXt7VD03O3doaWxlKFQhPTE4KWlmKFQ9PTc0KVQ9WjI\/NDk6Nzk7ZWxzZSBpZihUPT0zMSlUPSh5JjExMCk9PXk\/NTU6NDc7ZWxzZSBpZihUPT0yNylZPVUuY2xhc3NMaXN0LmNvbnRhaW5zKHYpLFQ9ODtlbHNlIGlmKFQ9PTcpVD01OTtlbHNlIGlmKFQ9PTcwKXRoaXMuVT10aGlzLlUsdGhpcy5XWT10aGlzLldZLFQ9MzE7ZWxzZSBpZihUPT00OSlZPVoyLHYgaW4gWT9VLnNldEF0dHJpYnV0ZShLLFlbdl0pOlUucmVtb3ZlQXR0cmlidXRlKEspLFQ9Nzg7ZWxzZSBpZihUPT05NilBcnJheS5pc0FycmF5KE8pJiYoTz1PLmpvaW4oIiAiKSksSz0iYXJpYS0iK3YsVD01MTtlbHNlIGlmKFQ9PTc4KVQ9eTw8MTwzMSYmeSs2Pj0xMT83MDozMTtlbHNlIGlmKFQ9PTU1KXRoaXMubj09PTA\/ST1bMCwwXToodGhpcy52LnNvcnQoZnVuY3Rpb24oUCxXKXtyZXR1cm4gUC1XfSksST1bdGhpcy5uLHRoaXMudlt0aGlzLnYubGVuZ3RoPj4xXV0pLFQ9NDc7ZWxzZSBpZihUPT0xMClPPUooRSxVLDQ0KSxZPUxOKDY1LGwsMTEsdixPKT49bCxUPTg7ZWxzZSBpZihUPT04KUk9WSxUPTYzO2Vsc2UgaWYoVD09ODUpVD1VLmNsYXNzTGlzdD8yNzoxMDtlbHNlIGlmKFQ9PTUxKVQ9Tz09PSIifHxPPT12b2lkIDA\/NzQ6NDg7ZWxzZSBpZihUPT00NylUPSh5LTR8MzcpPj15JiYoeS01XjE3KTx5Pzg1OjYzO2Vsc2UgaWYoVD09NDgpVS5zZXRBdHRyaWJ1dGUoSyxPKSxUPTc4O2Vsc2UgaWYoVD09Nzkpbj17fSxaMj0obi5hdG9taWM9bCxuLmF1dG9jb21wbGV0ZT0ibm9uZSIsbi5kcm9wZWZmZWN0PSJub25lIixuLmhhc3BvcHVwPWwsbi5saXZlPVIsbi5tdWx0aWxpbmU9bCxuLm11bHRpc2VsZWN0YWJsZT1sLG4ub3JpZW50YXRpb249InZlcnRpY2FsIixuLnJlYWRvbmx5PWwsbi5yZWxldmFudD0iYWRkaXRpb25zIHRleHQiLG4ucmVxdWlyZWQ9bCxuLnNvcnQ9Im5vbmUiLG4uYnVzeT1sLG4uZGlzYWJsZWQ9bCxuLmhpZGRlbj1sLG4uaW52YWxpZD1FLG4pLFQ9NDk7ZWxzZSBpZihUPT01OSlUPXkrNiY1Pzc4Ojk2O2Vsc2UgaWYoVD09NjMpcmV0dXJuIEl9fSxQdD1mdW5jdGlvbihSLHksRSxsLFUsdixPKXt7dj0yMjt3aGlsZSh2IT05NClpZih2PT04Nyl2PSh5JjExMCk9PXk\/NzQ6MzI7ZWxzZSBpZih2PT0yMil2PTgyO2Vsc2UgaWYodj09NylFLmo9KChFLmo\/RS5qKyJ+IjoiRToiKStsLm1lc3NhZ2UrVStsLnN0YWNrKS5zbGljZShSLDIwNDgpLHY9ODc7ZWxzZSBpZih2PT04Mil2PSh5PDwyJjYpPj00JiYoeV43KT4+NDwxPzc6ODc7ZWxzZXtpZih2PT0zMilyZXR1cm4gTzt2PT03NCYmKE89dHlwZW9mIEUuY2xhc3NOYW1lPT0ic3RyaW5nIj9FLmNsYXNzTmFtZTpFLmdldEF0dHJpYnV0ZSYmRS5nZXRBdHRyaWJ1dGUoVSl8fGwsdj0zMil9fX0saXc9ZnVuY3Rpb24oUix5LEUpe2ZvcihFPTU1O0UhPTkxOylpZihFPT00OClFPVItLT85Ojg2O2Vsc2UgaWYoRT09OSl5LnB1c2goTWF0aC5yYW5kb20oKSoyNTV8MCksRT0yMztlbHNlIGlmKEU9PTE1KUU9NDg7ZWxzZSBpZihFPT01NSl5PVtdLEU9MTU7ZWxzZSBpZihFPT0yMylFPTQ4O2Vsc2UgaWYoRT09ODYpcmV0dXJuIHl9LHZTPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXtmb3IoST0yO0khPTY5OylpZihJPT0zKUk9MTk7ZWxzZSBpZihJPT0xMilUPShuPXlTW0Uuc3Vic3RyaW5nKDAsMykrIl8iXSk\/bihFLnN1YnN0cmluZygzKSxsLFUsdixPLFksSyk6T2soMCxFLDgsbCksST0yNztlbHNlIGlmKEk9PTQ0KUk9ODk7ZWxzZSBpZihJPT04NClJPXYmJnYub25jZT8wOjUzO2Vsc2UgaWYoST09OTcpST0oeXw3Mik9PXk\/OTg6MzU7ZWxzZSBpZihJPT0zNSlJPSh5Pj4xJjE0KTwxMSYmKCh5fDYpJjExKT49ND84NDpSO2Vsc2UgaWYoST09MjYpbj0wLEk9NDQ7ZWxzZSBpZihJPT0xOSlJPSh5fDQwKT09eT83MTo5NztlbHNlIGlmKEk9PTM2KUk9KHkmMjEpPT15PzM6MTk7ZWxzZSBpZihJPT01MylJPUFycmF5LmlzQXJyYXkoSyk\/MjY6NzI7ZWxzZSBpZihJPT1SKUk9eSsxPj0yNCYmeSs0PDQzPzEyOjI3O2Vsc2UgaWYoST09NzEpdGhpcy51PUUsST05NztlbHNlIGlmKEk9PTApQXAoNjUsNDIsdHJ1ZSwwLEssVSx2LFksTyksST1SO2Vsc2UgaWYoST09OTgpVD1IdFtsXShIdC5wcm90b3R5cGUse2NvbnNvbGU6RSxwcm9wZXJ0eUlzRW51bWVyYWJsZTpFLHNwbGljZTpFLHByb3RvdHlwZTpFLHN0YWNrOkUsZmxvb3I6RSxkb2N1bWVudDpFLHBvcDpFLHJlcGxhY2U6RSxsZW5ndGg6RSxjYWxsOkUscGFyZW50OkV9KSxJPTM1O2Vsc2UgaWYoST09NTApdlMoODAsOSxmYWxzZSwib2JqZWN0IixVLHYsTyxZLEtbbl0pLEk9Njg7ZWxzZSBpZihJPT03MilZPW5OKDIzLFkpLFUmJlVbdHBdP1UuWi5hZGQoU3RyaW5nKEspLFksRSxJcigzMixsLHYpPyEhdi5jYXB0dXJlOiEhdixPKTpZVCgib2JqZWN0IixZLHYsVSw1LGZhbHNlLEssRSxPKSxJPVI7ZWxzZSBpZihJPT02OCluKyssST04OTtlbHNlIGlmKEk9PTg5KUk9bjxLLmxlbmd0aD81MDpSO2Vsc2V7aWYoST09MjcpcmV0dXJuIFQ7ST09MiYmKEk9MzYpfX0seFQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXLFMscSl7Zm9yKHE9OTc7cSE9MzspaWYocT09NjMpcT0oUis2JjMpPDImJihSLTcmNik+PTM\/OTE6OTg7ZWxzZSBpZihxPT03NylxPShSfDI0KT09Uj8xODoxMztlbHNlIGlmKHE9PTE5KXthOntmb3IoSz0oUD0obj1iUSx2KS5zcGxpdCh5KSxsKTtLPFAubGVuZ3RoLVU7SysrKXtpZighKFk9UFtLXSxZIGluIG4pKWJyZWFrIGE7bj1uW1ldfShJPShXPShUPVBbUC5sZW5ndGgtVV0sbltUXSksTyhXKSksSSE9VyYmSSE9RSkmJkNOKG4sVCx7Y29uZmlndXJhYmxlOnRydWUsd3JpdGFibGU6dHJ1ZSx2YWx1ZTpJfSl9cT05OH1lbHNle2lmKHE9PTEzKXJldHVybiBTO3E9PTk3P3E9NjM6cT09MTg\/cT0xMzpxPT05MT9xPU8\/MTk6OTg6cT09OTg\/cT0oKFJ8OCkmMTUpPj0yJiYoUj4+MiYxMik8ND85MDo3NzpxPT05MCYmKFU9TE4oNjUsMCw3LGwsRSksKHY9VT49MCkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChFLFUseSksUz12LHE9NzcpfX0sbk49ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtmb3IoTz0xNTtPIT0yODspaWYoTz09NzcpdGhpcy5saXN0ZW5lcj1FLHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz1sLHRoaXMudHlwZT12LHRoaXMuY2FwdHVyZT0hIVUsdGhpcy5EOT15LHRoaXMua2V5PSsrTSQsdGhpcy56bD10aGlzLnhXPWZhbHNlLE89MTM7ZWxzZSBpZihPPT03KU89KFJ8NCk+PjM9PTM\/Nzc6MTM7ZWxzZSBpZihPPT0zMil0eXBlb2YgeT09PSJmdW5jdGlvbiI\/WT15Oih5W21jXXx8KHlbbWNdPWZ1bmN0aW9uKEspe3JldHVybiB5LmhhbmRsZUV2ZW50KEspfSksWT15W21jXSksTz0zNDtlbHNlIGlmKE89PTE1KU89NDg7ZWxzZXtpZihPPT0xMylyZXR1cm4gWTtPPT00OD9PPShSJjc3KT09Uj8xOjM3Ok89PTY2PyhFLnhXPXRydWUsRS5saXN0ZW5lcj15LEUucHJveHk9eSxFLnNyYz15LEUuRDk9eSxPPTcpOk89PTI\/Tz10aGlzLnYubGVuZ3RoPDUwPzIwOjcyOk89PTM0P089KChSXjE0KSYxNik8OCYmUj4+Mj49NT82Njo3Ok89PTE\/KHRoaXMubisrLE89Mik6Tz09Mzc\/Tz0oUi03XjcpPj1SJiYoUi04fDUpPFI\/MzI6MzQ6Tz09NzI\/KEU9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnRoaXMubiksRTw1MCYmKHRoaXMudltFXT15KSxPPTM3KTpPPT0yMCYmKHRoaXMudi5wdXNoKHkpLE89MzcpfX0sUFM9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKG49NzY7biE9MTY7KXtpZihuPT01KXJldHVybiBLO2lmKG49PTc2KW49MjU7ZWxzZSBpZihuPT0zMCluPWwuY2xhc3NMaXN0PzQ2OjU0O2Vsc2UgaWYobj09NTQpe2Zvcih2IGluIE89KChBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKEooImNsYXNzIixsLChZPXt9LDQwKSksZnVuY3Rpb24oVCl7WVtUXT10cnVlfSksQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLmNhbGwoVSxmdW5jdGlvbihUKXtZW1RdPXRydWV9KSxSKSxZKU8rPU8ubGVuZ3RoPjA\/IiAiK3Y6djtuPShBKDE0LCJzdHJpbmciLGwsTyksODYpfWVsc2Ugbj09NDY\/KEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoVSxmdW5jdGlvbihULEksUCl7Zm9yKFA9MzY7UCE9NjU7KVA9PTk5PyhJPVB0KDAsOCxsLFIsImNsYXNzIiksQSgzOCwic3RyaW5nIixsLEkrKEkubGVuZ3RoPjA\/IiAiK1Q6VCkpLFA9NjUpOlA9PTgxP1A9YXIoIm9mZiIsMjIsImNsYXNzIiwwLGwsVCk\/NjU6OTk6UD09NTE\/KGwuY2xhc3NMaXN0LmFkZChUKSxQPTY1KTpQPT0zNiYmKFA9bC5jbGFzc0xpc3Q\/NTE6ODEpfSksbj04Nik6bj09ODY\/bj0oRT4+MSY3KT09MT95OjU6bj09eT8oSz1sJiZsLnBhcmVudE5vZGU\/bC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpOm51bGwsbj01KTpuPT0yNSYmKG49KEV8OCk9PUU\/MzA6ODYpfX0sSmQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEspe2lmKEUudT09RSlmb3IoVT1NKHksRSkseT09ODR8fHk9PTEwMXx8eT09NDg1PyhZPWZ1bmN0aW9uKG4sVCxJLFAsVyxTLHEsTixoKXtmb3IoTj0ocT01LDE2KTs7KXRyeXtpZihxPT02OSlicmVhaztlbHNlIGlmKHE9PTUpUz1VLmxlbmd0aCxXPShTfDApLTQ+PjMscT0yNztlbHNle2lmKHE9PTc3KXRocm93IE49MTYsaDtxPT0wPyhOPTIwLFUuUmg9emYoMzI2MCxjdCgyNCw1LFUsUCksMyxjdCgyNCw2LFUsNCooUCY0KSsyKn4oUCY0KS0oUHwtNSktKH5QfDQpKSxJKSxxPTM4KTpxPT0yNz9xPVUuQ3IhPVc\/MTk6Mzg6cT09Mzg\/KFUucHVzaCgoVD1VLlJoWy0oU3wwKS0yKn4oUyY3KSstMisoUyYtOCldLC0oVHxuKSsoVCZuKSsyKihUJn5uKSsyKih+VCZuKSkpLHE9NjkpOnE9PTE5JiYoUD0oVzw8MyktNCxJPVswLDAsS1sxXSxLWzJdXSxVLkNyPVcscT0wKX19Y2F0Y2godyl7aWYoTj09MTYpdGhyb3cgdztOPT0yMCYmKGg9dyxxPTc3KX19LEs9TSgzNTUsRSkpOlk9ZnVuY3Rpb24obil7VS5wdXNoKG4pfSxsJiZZKGwmMjU1KSx2PTAsTz1SLmxlbmd0aDt2PE87disrKVkoUlt2XSl9LEFwPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXt7ST04NTt3aGlsZShJIT04KWlmKEk9PTQwKW4rKyxJPTg3O2Vsc2UgaWYoST09NDgpST0oeS01JjcpPT0yPzUyOjU5O2Vsc2UgaWYoST09NjgpdGhpc1t0aGlzKyIiXT10aGlzLEk9NDg7ZWxzZXtpZihJPT04NClyZXR1cm4gVDtJPT04Nz9JPW48VS5sZW5ndGg\/MjU6MzU6ST09MjU\/KEFwKDY1LDQxLHRydWUsMCxVW25dLHYsTyxZLEspLEk9NDApOkk9PTg4P0k9ODc6ST09NzA\/ST0oeXw0MCk9PXk\/NzE6MzU6ST09NTI\/KGwuWjkmJmwuWjkuZm9yRWFjaChFLHZvaWQgMCksST01OSk6ST09MTc\/KFk9bk4oNyxZKSx2JiZ2W3RwXT92LlouYWRkKFN0cmluZyhVKSxZLEUsSXIoUiwib2JqZWN0IixPKT8hIU8uY2FwdHVyZTohIU8sSyk6WVQoIm9iamVjdCIsWSxPLHYsNixmYWxzZSxVLEUsSyksST0zNSk6ST09NTk\/ST15LTE+PjQ\/ODQ6MTU6ST09ODU\/ST03MDpJPT0zNT9JPXk8PDImMTU\/NDg6Njg6ST09MTU\/KHRoaXMuc3JjPUUsdGhpcy5RVD0wLHRoaXMubD17fSxJPTg0KTpJPT01Nj8obj1sLEk9ODgpOkk9PTcxJiYoST1BcnJheS5pc0FycmF5KFUpPzU2OjE3KX19fSxYcj1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuKXtmb3IoSz0zMjtLIT0zNjspaWYoSz09MjYpeS5kcj12b2lkIDAseS5YZT1mdW5jdGlvbigpe3JldHVybiB5LmRyP3kuZHI6eS5kcj1uZXcgeX0sSz0yODtlbHNle2lmKEs9PTI4KXJldHVybiBuO0s9PTY2PyhuPVUsSz01OSk6Sz09OTY\/Sz15LnhXPzk0OjkzOks9PTkzPyh2PW5ldyBmTihsLHRoaXMpLE89eS5EOXx8eS5zcmMsWT15Lmxpc3RlbmVyLHkuemwmJiRUKCJvbiIsNDAsbnVsbCx5KSxVPVkuY2FsbChPLHYpLEs9NjYpOks9PTQ1P0s9RS05PDwxPEUmJihFLTZeMTYpPj1FPzI2OjI4Oks9PTMyP0s9MjpLPT0yP0s9KEUmMTEwKT09RT85Njo1OTpLPT05ND8oVT10cnVlLEs9NjYpOks9PTQzPyh0aGlzLnR5cGU9eSx0aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy50YXJnZXQ9bCx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dGhpcy5Tcj1mYWxzZSxLPTQ1KTpLPT01OSYmKEs9KEUtUl4zMCk8RSYmRS02PDwxPj1FPzQzOjQ1KX19LGVEPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJLFAsVyl7Zm9yKFc9ODU7VyE9OTE7KWlmKFc9PTgzKVc9KHkmMjcpPT15PzMwOjQ4O2Vsc2UgaWYoVz09ODUpVz04MztlbHNlIGlmKFc9PTMwKXtpZihZPWwuWi5sW1N0cmluZyhFKV0pe2ZvcihuPShJPShZPVkuY29uY2F0KCksMCksdHJ1ZSk7STxZLmxlbmd0aDsrK0kpKFQ9WVtJXSkmJiFULnhXJiZULmNhcHR1cmU9PVUmJihLPVQuRDl8fFQuc3JjLE89VC5saXN0ZW5lcixULnpsJiZMKFIsNyxULGwuWiksbj1PLmNhbGwoSyx2KSE9PWZhbHNlJiZuKTtQPW4mJiF2LmRlZmF1bHRQcmV2ZW50ZWR9ZWxzZSBQPXRydWU7Vz00OH1lbHNle2lmKFc9PTMpcmV0dXJuIFA7Vz09ND8obD1SLFA9ZnVuY3Rpb24oKXtyZXR1cm4gbDxFLmxlbmd0aD97ZG9uZTpmYWxzZSx2YWx1ZTpFW2wrK119Ontkb25lOnRydWV9fSxXPTMpOlc9PTQ4JiYoVz0oeS02fDEwKT49eSYmeSs2Pj4xPHk\/NDozKX19LEE9ZnVuY3Rpb24oUix5LEUsbCxVLHYpe2ZvcihVPTY0O1UhPTc4OylpZihVPT00NilrKEUsbCx5KSx5W0t3XT0yNzk2LFU9Nzc7ZWxzZSBpZihVPT02MilVPShSLTh8MzUpPj1SJiYoUi0yXjE4KTxSPzQ2Ojc3O2Vsc2UgaWYoVT09NzcpVT0oUiszJjcpPT0xPzg1OjA7ZWxzZSBpZihVPT0xMyl0aGlzLm4rKyxFPXktdGhpcy5BLHRoaXMuQSs9RS90aGlzLm4sdGhpcy50VCs9RSooeS10aGlzLkEpLFU9MzQ7ZWxzZSBpZihVPT0zMylTWC5jYWxsKHRoaXMpLHl8fFdTfHwoV1M9bmV3IHEwKSx0aGlzLmk9bnVsbCx0aGlzLmdyPWZhbHNlLHRoaXMudXA9dm9pZCAwLHRoaXMuckI9ZmFsc2UsdGhpcy5sND10aGlzLm1sPXRoaXMuYWg9dGhpcy5aOT1udWxsLFU9NjI7ZWxzZSBpZihVPT02NClVPTM5O2Vsc2V7aWYoVT09MClyZXR1cm4gdjtVPT04NT8odHlwZW9mIEUuY2xhc3NOYW1lPT15P0UuY2xhc3NOYW1lPWw6RS5zZXRBdHRyaWJ1dGUmJkUuc2V0QXR0cmlidXRlKCJjbGFzcyIsbCksVT0wKTpVPT0zND9VPSgoUnwxKSY3KT09Mz8zMzo2MjpVPT0zOSYmKFU9KFI+PjImNyk9PTI\/MTM6MzQpfX0sRz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQpe2lmKCh5JjE1KT09KCh5Pj4oKHl8KCh5Jjk0KT09eSYmKFU9Wy0yNSw5Myw2OSwtNTMsLTg0LDg5LFUsLTQ1LDAsMjZdLE89LTEtfih2fDcpLSh2XjcpLFk9Vmcsbj1IdFtFLmhdKEUueHcpLG5bRS5oXT1mdW5jdGlvbihJKXtPPShPKz0oSz1JLDYrNyp2KSwoT3xSKSsofk9eNyktKE98LTgpKX0sbi5jb25jYXQ9ZnVuY3Rpb24oSSxQLFcsUyl7cmV0dXJuKFc9KEk9LTI4NSpsKmwqSysoKFM9bCUxNisxLFkpKCl8UikqUy1TKkstNjI3KksrTys1KmwqbCpTKzU3KksqSy01MzAxKmwqSytVW08rMjcmN10qbCpTLEs9dm9pZCAwLFVbSV0pLFUpWyhQPU8rMjEsKFB8UiktKFBeNykrKH5QJjcpKSsodiYyKV09VyxVW08rKHYmMildPTkzLFd9LFQ9biksNjQpKT09eSYmKFIuST9UPUJ0KFIuUixSKToobD1wKFIsdHJ1ZSw4KSxsJjEyOCYmKGw9Mip+KGwmMTI4KS0yKn5sLShsfC0xMjkpKyh+bHwxMjgpLFU9cChSLHRydWUsMiksbD0oRT1sPDwyLDMqKEV8VSktKEUmVSktIC0yKzIqKH5FXlUpKSksVD1sKSksMikmMyk9PTEmJihSLkk\/VD1CdChSLlIsUik6KFU9cChSLHRydWUsOCksVSYxMjgmJihVPTIqfihVJjEyOCktMip+VS0oVXwtMTI5KSsoflV8MTI4KSxsPXAoUix0cnVlLDIpLFU9KEU9VTw8MiwzKihFfGwpLShFJmwpLSAtMisyKih+RV5sKSkpLFQ9VSkpLHkpKXtmb3IoWT0odj1iKEUsMTApLFIpO2w+UjtsLS0pWT0oVT1ZPDw4LE89RFUodHJ1ZSw4LEUpLChVJk8pK34oVSZPKS1+KFV8TykpO2EoWSx2LEUpfXJldHVybiBUfSxoZD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSl7cmV0dXJuKCh5Jjc3KT09eSYmKFU9SHRbbC5oXShsLkhRKSxVW2wuaF09ZnVuY3Rpb24oKXtyZXR1cm4gRX0sVS5jb25jYXQ9ZnVuY3Rpb24oUCl7RT1QfSxUPVUpLCh5LTN8MjYpPHkmJih5KzUmNTcpPj15KSYmKFQ9ST1mdW5jdGlvbigpe3t2YXIgUD03Njt3aGlsZShQIT04OSlpZihQPT00MClQPVU9PUU\/NTI6Nzc7ZWxzZSBpZihQPT02OSl7dmFyIFc9IVkuSi5sZW5ndGg7eigzOCxSLFkscSksVyYmeig1OSxSLGwsWSxsKSxQPTExfWVsc2UgaWYoUD09NzYpUD1ZLnU9PVk\/NjQ6ODk7ZWxzZSBpZihQPT01Mil7dmFyIFM9eigxMSwoeigzMyxSLFkscSksUiksbCxZLGwpO1A9MTF9ZWxzZXtpZihQPT0xMSlyZXR1cm4gUztpZihQPT02NClQPVkuTj8yNTo4MjtlbHNlIGlmKFA9PTI4KVM9cE4oWSwzLDQ2NSxxKSxQPTExO2Vsc2UgaWYoUD09ODIpSyYmbiYmSy5yZW1vdmVFdmVudExpc3RlbmVyKG4sSSxOMCksUD04OTtlbHNlIGlmKFA9PTc3KVA9VT09MT82OToyODtlbHNlIGlmKFA9PTI1KXZhciBxPVt3TSx2LChQPTQwLE8pLHZvaWQgMCxLLG4sYXJndW1lbnRzXX19fSksVH0sT2s9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEspe2ZvcihLPTIwO0shPTUzOylpZihLPT04MSlZPXYsSz0yNjtlbHNlIGlmKEs9PTI2KUs9RT4+MSYxMT83MTo0MDtlbHNlIGlmKEs9PTI0KUs9Tz85Mzo1OTtlbHNle2lmKEs9PTU0KXJldHVybiBZO0s9PTE0Pyh5Kz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbC5zbGljZShVLFUrODE5MikpLEs9ODMpOks9PTQ2Pyh2PU8oeSkucmVwbGFjZSgvXFwrL2csIi0iKS5yZXBsYWNlKC9cXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksSz04MSk6Sz09NTk\/KHY9dm9pZCAwLEs9ODEpOks9PTQzP0s9NDc6Sz09OTM\/KFU9Uix5PSIiLEs9NDMpOks9PTQ3P0s9VTxsLmxlbmd0aD8xNDo0NjpLPT03Nz8oTz13aW5kb3cuYnRvYSxLPTI0KTpLPT0xP0s9RS00PDwxPj1FJiYoRSs5XjI3KTxFPzc3OjI2Oks9PTcxP0s9RS0zJjc\/NTQ6NjE6Sz09ODM\/KFUrPTgxOTIsSz00Nyk6Sz09NjE\/KFk9ISEoTz12Lk1yLC0oVXxsKSt5KihPfFUpLXkqKE9eVSkrKH5PJlUpKSYmS04oeSx2LFUsMzIpLEs9NTQpOks9PTQwPyhsKGZ1bmN0aW9uKG4pe24oeSl9KSxZPVtmdW5jdGlvbigpe3JldHVybiB5fSxmdW5jdGlvbigpe31dLEs9NzEpOks9PTIwJiYoSz0xKX19LCRUPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJLFAsVyl7e1A9OTM7d2hpbGUoUCE9MzcpaWYoUD09MjQpUD0zMTtlbHNle2lmKFA9PTIzKXJldHVybiBXO2lmKFA9PTM4KW5OKDMzLEUsbCksUD0yMztlbHNlIGlmKFA9PTI2KUwoRSw2LGwsTy5aKSxQPTIzO2Vsc2UgaWYoUD09OTUpUD0oeS02XjI1KT49eSYmKHktM3wxOCk8eT8zOjgzO2Vsc2UgaWYoUD09OTMpUD05NTtlbHNlIGlmKFA9PTgyKVA9TyYmT1t0cF0\/MjY6MzA7ZWxzZSBpZihQPT05NilQPVUuUVQ9PTA\/NDoyMztlbHNlIGlmKFA9PTIxKXthOntpZihLJiZ0eXBlb2YgSy5sZW5ndGg9PVIpe2lmKElyKDMzLCJvYmplY3QiLEspKXtuPXR5cGVvZiBLLml0ZW09PSJmdW5jdGlvbiJ8fHR5cGVvZiBLLml0ZW09PSJzdHJpbmciO2JyZWFrIGF9aWYodHlwZW9mIEs9PT0iZnVuY3Rpb24iKXtuPXR5cGVvZiBLLml0ZW09PSJmdW5jdGlvbiI7YnJlYWsgYX19bj1FfUooMCxVLDMzLEksbj9HaigxOCwzLDAsSyk6SyksUD01fWVsc2UgUD09ODM\/UD0oeXw4KT4+Mz09MT8zNDoxNDpQPT0yOT9QPXR5cGVvZiBsIT09Im51bWJlciImJmwmJiFsLnhXPzEzOjIzOlA9PTQ5P1A9IVNEKDMsMzIsUiwib2JqZWN0IiwiYXJyYXkiLEspfHxJcigzMywib2JqZWN0IixLKSYmSy5ub2RlVHlwZT4wPzExOjIxOlA9PTMxP1A9VDx2Lmxlbmd0aD8xNTo4MzpQPT0wP1A9VT84OTozODpQPT0zMD8odj1sLnByb3h5LFk9bC50eXBlLE8ucmVtb3ZlRXZlbnRMaXN0ZW5lcj9PLnJlbW92ZUV2ZW50TGlzdGVuZXIoWSx2LGwuY2FwdHVyZSk6Ty5kZXRhY2hFdmVudD9PLmRldGFjaEV2ZW50KFJyKDE1LDUwLFIsWSksdik6Ty5hZGRMaXN0ZW5lciYmTy5yZW1vdmVMaXN0ZW5lciYmTy5yZW1vdmVMaXN0ZW5lcih2KSxsUS0tLFU9eig3MSxPKSxQPTApOlA9PTExPyhJKEspLFA9NSk6UD09MzQ\/KEUuY2xhc3NMaXN0P0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoUixmdW5jdGlvbihTKXtHaigxOCw1LCIgIiwwLCJjbGFzcyIsInN0cmluZyIsUyxFKX0pOkEoNiwic3RyaW5nIixFLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChKKCJjbGFzcyIsRSwzNiksZnVuY3Rpb24oUyl7cmV0dXJuIShMTig2NSwwLDE1LFMsUik+PTApfSkuam9pbigiICIpKSxQPTE0KTpQPT0xNT8oSz12W1RdLFA9NDkpOlA9PTM\/KEk9ZnVuY3Rpb24oUyl7UyYmTy5hcHBlbmRDaGlsZCh0eXBlb2YgUz09PSJzdHJpbmciP1kuY3JlYXRlVGV4dE5vZGUoUyk6Uyl9LFQ9bCxQPTI0KTpQPT0xND9QPSh5Pj4yJjYpPT0yPzI5OjIzOlA9PTEzPyhPPWwuc3JjLFA9ODIpOlA9PTU\/KFQrKyxQPTMxKTpQPT00PyhVLnNyYz1FLE9bVGpdPUUsUD0yMyk6UD09ODkmJihMKEUsNSxsLFUpLFA9OTYpfX19LElyPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCl7Zm9yKG49MjA7biE9OTQ7KWlmKG49PTkzKW49ODA7ZWxzZSBpZihuPT04MCluPUs+Nz84OToxNjtlbHNlIGlmKG49PTg5KUstPTgsTy5wdXNoKFU+PksmMjU1KSxuPTI7ZWxzZSBpZihuPT0xMClUPU8sbj00OTtlbHNlIGlmKG49PTIwKW49NjtlbHNlIGlmKG49PTYpbj0oUnw0MCk9PVI\/NjM6NDk7ZWxzZSBpZihuPT03NilUPU1hdGguZmxvb3IodGhpcy5GKCkpLG49MjE7ZWxzZSBpZihuPT02MylLPTAsTz1bXSx2PTAsbj05NztlbHNlIGlmKG49PTE2KXYrKyxuPTIyO2Vsc2UgaWYobj09MjIpbj12PHkubGVuZ3RoPzM1OjEwO2Vsc2UgaWYobj09NDkpbj1SLTE+PjM\/MjE6NzY7ZWxzZXtpZihuPT05NSlyZXR1cm4gVDtuPT04Mz8obC5lcihmdW5jdGlvbihJKXtVPUl9LHksRSksVD1VLG49MzIpOm49PTk3P249MjI6bj09Mj9uPTgwOm49PTMyP249Uj4+MSYxNT85NTo3MjpuPT03Mj8obD10eXBlb2YgRSxUPWw9PXkmJkUhPW51bGx8fGw9PSJmdW5jdGlvbiIsbj05NSk6bj09MjE\/bj0oUnwyNCk9PVI\/ODM6MzI6bj09MzUmJihLKz1FLFU9KFk9VTw8RSxsPXlbdl0sKFl8MCktKH5ZXmwpKyh+WXxsKSksbj05Myl9fSxxJD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQpe3tuPTc7d2hpbGUobiE9NDIpaWYobj09UilLPWZ1bmN0aW9uKCl7fSx2PXZvaWQgMCxZPWpEKEUsZnVuY3Rpb24oSSxQKXtmb3IoUD04OTtQIT0xOTspUD09ODk\/UD1LPzY4OjE5OlA9PTY4JiYobCYmRnIobCksdj1JLEsoKSxLPXZvaWQgMCxQPTE5KX0sISFsKSxPPVlbMF0sVT1ZWzFdLFQ9e3RvcDpmdW5jdGlvbihJLFAsVyxTLHEsTixoKXtmb3IoTj03NDtOIT01NjspaWYoTj09OTkpTj12PzYzOjY5O2Vsc2UgaWYoTj09NjkpUz1LLEs9ZnVuY3Rpb24oKXsoUygpLEZyKShoKX0sTj01NjtlbHNle2lmKE49PTMpcmV0dXJuIHE9TyhXKSxJJiZJKHEpLHE7Tj09NzQ\/KGg9ZnVuY3Rpb24oKXt2KGZ1bmN0aW9uKHcpe0ZyKGZ1bmN0aW9uKCl7SSh3KX0pfSxXKX0sTj00MSk6Tj09NDE\/Tj1QPzk5OjM6Tj09NjMmJihoKCksTj01Nil9fSxwZTpmdW5jdGlvbihJKXtVJiZVKEkpfX0sbj03MztlbHNlIGlmKG49PTE1KW49eS05Pj40PzczOlI7ZWxzZSBpZihuPT0zNCl7aWYodj0oTz1jLnRydXN0ZWRUeXBlcyxsKSxPJiZPLmNyZWF0ZVBvbGljeSl7dHJ5e3Y9Ty5jcmVhdGVQb2xpY3koRSx7Y3JlYXRlSFRNTDpzayxjcmVhdGVTY3JpcHQ6c2ssY3JlYXRlU2NyaXB0VVJMOnNrfSl9Y2F0Y2goSSl7aWYoYy5jb25zb2xlKWMuY29uc29sZVtVXShJLm1lc3NhZ2UpfVQ9dn1lbHNlIFQ9djtuPTE3fWVsc2UgaWYobj09OTYpbj0oeSY5MSk9PXk\/MzQ6MTc7ZWxzZSBpZihuPT03KW49Mjk7ZWxzZSBpZihuPT0yOSluPSh5KzUmNTgpPj15JiYoeS04fDE2KTx5Pzc2Ojk2O2Vsc2UgaWYobj09NzYpVD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRSxSVykmJkVbUlddfHwoRVtSV109Kytsdyksbj05NjtlbHNlIGlmKG49PTE3KW49KHl8NDApPT15Pzg4OjE1O2Vsc2UgaWYobj09ODgpbj0xNTtlbHNlIGlmKG49PTczKXJldHVybiBUfX0sTE49ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtmb3IoWT0yMTtZIT01OTspe2lmKFk9PTMyKXJldHVybiBPO2lmKFk9PTEyKVk9KEUmOTIpPT1FPzM4OjM5O2Vsc2UgaWYoWT09Uil7YTppZih0eXBlb2YgVT09PSJzdHJpbmciKU89dHlwZW9mIGwhPT0ic3RyaW5nInx8bC5sZW5ndGghPTE\/LTE6VS5pbmRleE9mKGwseSk7ZWxzZXtmb3Iodj15O3Y8VS5sZW5ndGg7disrKWlmKHYgaW4gVSYmVVt2XT09PWwpe089djticmVhayBhfU89LTF9WT0xMn1lbHNlIFk9PTk0PyhZYy5jYWxsKHRoaXMseSxsfHxudy5YZSgpLFUpLFk9MzIpOlk9PTQxP1k9KEU8PDImMTUpPj0xMSYmRS05PDIyP1I6MTI6WT09Mzk\/WT0oRV40Mik8MjQmJkUrMT49MTg\/OTQ6MzI6WT09MjE\/WT00MTpZPT0zOCYmKE89eSxZPTM5KX19LFJyPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXtmb3IoVD02O1QhPVI7KWlmKFQ9PTMzKXthOntmb3IoSz1bKFk9RSxsPT10eXBlb2YgZ2xvYmFsVGhpcykmJmdsb2JhbFRoaXMsdixsPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csbD09dHlwZW9mIHNlbGYmJnNlbGYsbD09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtZPEsubGVuZ3RoOysrWSlpZigoTz1LW1ldKSYmT1tVXT09TWF0aCl7bj1PO2JyZWFrIGF9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9VD01MH1lbHNlIGlmKFQ9PTU3KVQ9KHl8NDApPT15PzMzOjUwO2Vsc2UgaWYoVD09MTYpVD0oeS0yXjkpPj15JiYoeSs1XjMwKTx5Pzg4Ojk4O2Vsc2UgaWYoVD09MzkpST1mdW5jdGlvbihQKXtyZXR1cm4gRS5jYWxsKEkuc3JjLEkubGlzdGVuZXIsUCl9LEU9UWcsbj1JLFQ9NTc7ZWxzZSBpZihUPT02KVQ9MTY7ZWxzZSBpZihUPT05OClUPXktMjw0MCYmeTw8Mj49MjI\/Mzk6NTc7ZWxzZXtpZihUPT01MClyZXR1cm4gbjtUPT04OCYmKG49bCBpbiBndT9ndVtsXTpndVtsXT1FK2wsVD05OCl9fSxkdT1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSxQKXtmb3IoST0zMDtJIT0yMzspaWYoST09MzApST05NDtlbHNle2lmKEk9PTU2KXJldHVybiBQO2lmKEk9PTU3KUU9UixFPSh5PUU8PDEzLC0oRSZ5KSt+RS0yKn4oRXx5KSsoRXx+eSkpLEVePUU+PjE3LEVePUU8PDUsKEU9LX5FLShFXmwpKzIqKH5FJmwpKyhFfH5sKSl8fChFPTEpLFA9KFV8RSkrfkUtKFV8fkUpLEk9NTY7ZWxzZSBpZihJPT03Myl7aWYobC51PShUPShLPShZPShSfHxsLllXKyssbC5qcik+MCYmbC5KVCYmbC55WiYmbC5vaDw9VSYmIWwuSSYmIWwuSyYmKCFSfHxsLlN6LXk+VSkmJmRvY3VtZW50LmhpZGRlbj09MCwobj1sLllXPT00KXx8WT9sLkYoKTpsLkZlKSxLLWwuRmUpLGwuQis9VD4+MTQ+MCxsLlcmJihsLldePShsLkIrVT4+MikqKFQ8PDIpKSxsLkIrVT4+MiE9MCl8fGwudSxufHxZKWwuRmU9SyxsLllXPTA7ST0oWT8obC5qcj5sLnByJiYobC5wcj1sLmpyKSxLLWwueVQ8bC5qci0oRT8yNTU6Uj81OjIpP1A9ZmFsc2U6KGwuU3o9eSxPPXQoUj8xMDU6NDA1LGwpLGsoNDA1LGwsbC5nKSxsLkoucHVzaChbcnUsTyxSP3krVTp5LGwuTyxsLkxdKSxsLks9RnIsUD10cnVlKSk6UD1mYWxzZSw2Nyl9ZWxzZSBJPT02Nz9JPSh2XjE4KSY1PzU2OjU3Okk9PTk0JiYoST0odiszXjMwKT49diYmKHYrN14yMik8dj83Mzo2Nyl9fSxvVz1mdW5jdGlvbihSLHkpe2Z1bmN0aW9uIEUoKXt0aGlzLkE9dGhpcy50VD10aGlzLm49MH1yZXR1cm5bZnVuY3Rpb24obCl7KHkuTHIobCksUikuTHIobCl9LChSPW5ldyAoeT0oKEUucHJvdG90eXBlLmE0PWZ1bmN0aW9uKCl7cmV0dXJuIHouY2FsbCh0aGlzLDkpfSxFKS5wcm90b3R5cGUuTHI9ZnVuY3Rpb24obCxVKXtyZXR1cm4gQS5jYWxsKHRoaXMsOCxsLFUpfSxuZXcgRSksRSksZnVuY3Rpb24obCl7cmV0dXJuIFI9bmV3IChsPVt5LmE0KCksUi5hNCgpLHkuQSxSLkFdLEUpLGx9KV19LHQ9ZnVuY3Rpb24oUix5LEUpe0U9eS5OW1JdO2ZvcihbXT09KCFbdW5kZWZpbmVkXT09MCE9IVtdKTtFPT09dm9pZCAwO05hTil7dGhyb3dbRDIsMzAsUl07aWYoIVsiIl09PTApYnJlYWt9d2hpbGUoRS52YWx1ZSl7cmV0dXJuIEUuY3JlYXRlKCk7aWYoMCE9IVt0cnVlLnRydWVdPT0hW10pYnJlYWt9cmV0dXJuKEUuY3JlYXRlKFIqNSpSKzkzKlIrMTEpLEUpLnByb3RvdHlwZX0sUT1mdW5jdGlvbihSLHksRSxsLFUpe2ZvcihFPTIqKHl8MSktfih5JjEpKzMqfih5fDEpLTIqKH55fChsPVtdLDEpKTtFPj0wO0UtLSlsWy1+KHkmMSkrfih5fDEpKzIqKHkmLTIpLShFfDApXT0oVT1SPj5FKjgsLTEtflUtKFUmLTI1NikpO3JldHVybiBsfSxqRD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe3JldHVybiB2Uy5jYWxsKHRoaXMsODAsMjMsUix5LEUsbCxVLHYsTyxZKX0scTA9ZnVuY3Rpb24oKXtyZXR1cm4gTiQuY2FsbCh0aGlzLDAsODEpfSx4Yz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyl7aWYoIWwuail7bC5vaCsrO3RyeXt2PShVPXZvaWQgMCxSKTt7Tz1sLmc7d2hpbGUoLS15KXRyeXtpZihZPXZvaWQgMCxsLkkpVT1CdChsLkksbCk7ZWxzZXtpZih2PU0oNDA1LGwpLHY+PU8pYnJlYWs7VT1nKChZPUcobCwoaygxMDUsbCx2KSw2NykpLFkpLGwpfWR1KGZhbHNlLChVJiYoSz1VW2NTXSwtfihLfEUpLSh+SyZFKSsofkt8RSkpP1UobCx5KTpwdyhbRDIsMjEsWV0sbCxSLDg0KSx5KSxmYWxzZSxsLDEsMTIpfWNhdGNoKG4pe2coMSxsKT9wdyhuLGwsMjIsODQpOmsoMSxsLG4pfX1pZigheSl7aWYobC5EQSl7eGMoKGwub2gtLSwwKSw2NDMwNDc4NDI5MzQsMjA0OCxsKTtyZXR1cm59cHcoW0QyLDMzXSxsLFIsODQpfX1jYXRjaChuKXt0cnl7cHcobixsLDIyLDg0KX1jYXRjaChUKXtQdChSLDUsbCxULCI6Iil9fWwub2gtLX19LERVPWZ1bmN0aW9uKFIseSxFKXtyZXR1cm4gRS5JP0J0KEUuUixFKTpwKEUsUix5KX0sQ3c9ZnVuY3Rpb24oUix5KXt3aGlsZShbXSl7cmV0dXJuICRULmNhbGwodGhpcyx5LDMsUik7aWYoW10pYnJlYWt9fSxidz1mdW5jdGlvbihSLHkpe2Zvcih2YXIgRT0xMDtFIT02MDspaWYoRT09MzEpRT1sPGFyZ3VtZW50cy5sZW5ndGg\/MDo2MDtlbHNlIGlmKEU9PTgpRT0zMTtlbHNlIGlmKEU9PTg4KUU9Tzx1dy5sZW5ndGg\/MTY6MzQ7ZWxzZSBpZihFPT0zKUU9ODg7ZWxzZSBpZihFPT0xMCl2YXIgbD0oRT04LDEpO2Vsc2UgaWYoRT09OTEpTysrLEU9ODg7ZWxzZSBpZihFPT0zNClsKyssRT0zMTtlbHNlIGlmKEU9PTE2KXt2YXIgVT11d1tPXTtFPShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodixVKSYmKFJbVV09dltVXSksOTEpfWVsc2UgaWYoRT09MCl7dmFyIHY9YXJndW1lbnRzW2xdO2ZvcihVIGluIHYpUltVXT12W1VdO3ZhciBPPShFPTMsMCl9fSxwPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJLFAsVyxTLHEpe2lmKChPPWcoNDA1LFIpLE8pPj1SLmcpdGhyb3dbRDIsMzFdO2ZvcihVPShsPShLPU8sKHE9MCxSKS5SNC5sZW5ndGgpLEUpO1U+MDspVD1LJTgsUz04LShUfDApLFc9Sz4+MyxuPVIubHBbV10sWT1TPFU\/UzpVLHkmJihJPVIsSS5vIT1LPj42JiYoSS5vPUs+PjYsdj1NKDczLEkpLEkua1c9emYoMzI2MCxJLlcsMyxJLm8sWzAsMCx2WzFdLHZbMl1dKSksbl49Ui5rV1tXJmxdKSxLKz1ZLHF8PShuPj44LShUfDApLShZfDApJigxPDxZKS0xKTw8KFV8MCktKFl8MCksVS09WTtyZXR1cm4gYSgoT3wwKSsoRXwwKSw0MDUsKFA9cSxSKSksUH0sQWQ9ZnVuY3Rpb24oUix5KXtmdW5jdGlvbiBFKCl7dGhpcy5uPSh0aGlzLnY9W10sMCl9cmV0dXJuW2Z1bmN0aW9uKGwpe1IuTzIobCkseS5PMihsKX0sKFI9KChFLnByb3RvdHlwZS5PMj1mdW5jdGlvbihsLFUpe3JldHVybiBuTi5jYWxsKHRoaXMsNSxsLFUpfSxFKS5wcm90b3R5cGUudTQ9ZnVuY3Rpb24oKXtyZXR1cm4gYXIuY2FsbCh0aGlzLCJvZmYiLDM4KX0sbmV3IEUpLHk9bmV3IEUsZnVuY3Rpb24obCl7cmV0dXJuIGw9Ui51NCgpLmNvbmNhdCh5LnU0KCkpLHk9bmV3IEUsbH0pXX0sTHc9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXKXtmb3IoST0obj15LnJlcGxhY2UoL1xcclxcbi9nLCJcXG4iKSx2PWw9MCxbXSk7djxuLmxlbmd0aDt2KyspUD1uLmNoYXJDb2RlQXQodiksUDwxMjg\/SVtsKytdPVA6KFA8Uj9JW2wrK109KEs9UD4+NiwtfihLJjE5MikrMyooSyYtMTkzKS0oS3wtMTkzKSsyKih+S3wxOTIpKTooLX4oUCY2NDUxMikrKH5QJjY0NTEyKSsoUHwtNjQ1MTMpPT01NTI5NiYmdisxPG4ubGVuZ3RoJiYoVD1uLmNoYXJDb2RlQXQodisxKSwtfihUfDY0NTEyKS0oflQmNjQ1MTIpKyh+VHw2NDUxMikpPT01NjMyMD8oUD02NTUzNisoLX4oUHwxMDIzKS0oUCYtMTAyNCkrKFB8LTEwMjQpPDwxMCkrKFU9bi5jaGFyQ29kZUF0KCsrdiksMTAyNCsoVXwtMTAyNCkpLElbbCsrXT1QPj4xOHwyNDAsSVtsKytdPShPPShFPVA+PjEyLDYzKyhFJi02NCktKEVeNjMpKSwtKE98MCkrfk8tMyp+KE98MTI4KSsyKihPfC0xMjkpKSk6SVtsKytdPShZPVA+PjEyLDIyMy0oflleMjI0KS0oflkmMjI0KSksSVtsKytdPShXPVA+PjYsMiooV3wwKS0oV3w2MyktKFd8LTY0KSsofld8NjMpKXwxMjgpLElbbCsrXT1QJjYzfDEyOCk7cmV0dXJuIEl9LHI9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyl7Tz10aGlzO3RyeXt0ZCh5LGwsVSxSLHRoaXMsdixFKX1jYXRjaChZKXtQdCgwLDksdGhpcyxZLCI6IiksRShmdW5jdGlvbihLKXtLKE8uail9KX19LGtjPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXt5LnB1c2goKE89UlswXTw8MjR8UlsxXTw8MTZ8UlsyXTw8OCxUPVJbM10sMS1+KE98VCkrMioofk8mVCkrMiooT3x+VCkpKSx5LnB1c2goKEk9KHY9Uls0XTw8MjR8Uls1XTw8MTYsVT1SWzZdPDw4LC1+KHZ8VSkrKHZeVSktKH52JlUpKyh+dnxVKSksRT1SWzddLC1+KEl8RSkrKH5JJkUpKyhJfH5FKSkpLHkucHVzaCgobD0obj1SWzhdPDwyNCxLPVJbOV08PDE2LC0yKn4obiZLKSt+SysyKihuXkspKyh+bnxLKSksWT1SWzEwXTw8OCwyKihZfDApLShsJlkpLX5sK35ZKXxSWzExXSl9LFYscE49ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEkpe2lmKEk9bFswXSxJPT1ocClSLkJZPTI1LFIuTD10cnVlLFIuRyhsKTtlbHNlIHN3aXRjaCghKEk9PWlRKSl7Y2FzZSB0cnVlOmlmKEk9PXJ1KWxbeV0mJihSLk89dHJ1ZSksbFs0XSYmKFIuTD10cnVlKSxSLkcobCk7ZWxzZSBzd2l0Y2goIShJPT1YbSkpe2Nhc2UgdHJ1ZTppZihJPT1NMCl7d2hpbGUoW10pe3RyeXtmb3IoVD0wO1Q8Ui5zMi5sZW5ndGg7VCsrKXRyeXtZPVIuczJbVF0sWVswXVtZWzFdXShZWzJdKX1jYXRjaChQKXt9fWNhdGNoKFApe31pZih0cnVlIT1bXSE9W10hPVtdKWJyZWFrfSgwLGxbMV0pKGZ1bmN0aW9uKFAsVyl7Ui5lcihQLHRydWUsVyl9LGZ1bmN0aW9uKFApe3doaWxlKC0wPT09MClpZighW3VuZGVmaW5lZF09PShQPSFSLkoubGVuZ3RoLE51bWJlcigpKSlicmVhazsoeigzNywwLFIsW2NTXSksUCkmJnooNzUsMCx0cnVlLFIsZmFsc2UpfSxmdW5jdGlvbihQKXtyZXR1cm4gUi52WShQKX0sKFIuczI9W10sdj1SLkYoKSxmdW5jdGlvbihQLFcsUyl7cmV0dXJuIFIuejAoUCxXLFMpfSkpLFIuUCs9Ui5GKCktdn1lbHNle3N3aXRjaCghKEk9PXdNKSl7Y2FzZSBudWxsIT1mYWxzZTowO2JyZWFrO2Nhc2UgdHJ1ZT09IVtdOnJldHVybiBLPWxbMl0sYShsWzZdLEUsUiksSCgyNjEsUixLKSxSLkcobCk7YnJlYWt9ST09Y1M\/KFIuRyhsKSxSLktyPVtdLFIubHA9W10sUi5OPW51bGwpOkk9PUt3JiZjLmRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyImJihSLks9ZnVuY3Rpb24oUCxXKXtmdW5jdGlvbiBTKHEpe3txPTQzO3doaWxlKHEhPTM2KXE9PTMyPyhXPXRydWUsYy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixTLE4wKSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFMsTjApLFAoKSxxPTM2KTpxPT00MyYmKHE9Vz8zNjozMil9fWMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsUywoVz1mYWxzZSxOMCkpLGMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsUyxOMCl9KX1icmVhaztjYXNlIGZhbHNlOlIuTz10cnVlLFIuRyhsKTticmVha31icmVhaztjYXNlIG51bGw9PWZhbHNlOlU9bFsxXTt0cnl7Tz1SLmp8fFIuRyhsKX1jYXRjaChQKXtQdCgwLDExLFIsUCwiOiIpLE89Ui5qfShVKChuPVIuRigpLE8pKSxSKS5QKz1SLkYoKS1uO2JyZWFrfX0sZnc9ZnVuY3Rpb24oUix5LEUsbCxVLHYpe3JldHVybiBxJC5jYWxsKHRoaXMsMzcsMTIsUix5LEUsbCxVLHYpfSwkYz1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBuTi5jYWxsKHRoaXMsMjQsbCxSLEUsVSx5KX0sR2Y9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKEs9KHY9YihsLChPPWxbYVddfHx7fSwzMSkpLE8uUVo9RyhsLDc5KSxPLlQ9W10sbC51PT1sKT8oVT1EVShSLHksbCksLX4oVSZFKSstMisoVSYtMikpOjEsWT1iKGwsMTUpLG49MDtuPEs7bisrKU8uVC5wdXNoKEcobCw3NSkpO2Zvcig7Sy0tOylPLlRbS109dChPLlRbS10sbCk7cmV0dXJuKE8ud0I9TSh2LGwpLE8pLkZOPWcoWSxsKSxPfSxhPWZ1bmN0aW9uKFIseSxFKXtzd2l0Y2goISh5PT00MDV8fHk9PTEwNSkpe2Nhc2UgTmFOIT09TmFOOmlmKEUuTUkmJnkhPTczKXJldHVybjt5PT0yMDd8fHk9PTg0fHx5PT02NHx8eT09NDg1fHx5PT0xNzV8fHk9PTMwMXx8eT09MjYwfHx5PT0zNTV8fHk9PTEwMXx8eT09MTY4P0UuTlt5XXx8KEUuTlt5XT1HKDAsMjYsRSx5LFIsMzgpKTpFLk5beV09RygwLDI0LEUseSxSLDE1Myk7YnJlYWs7Y2FzZSBOYU49PT1OYU46RS5OW3ldP0UuTlt5XS5jb25jYXQoUik6RS5OW3ldPWhkKDAsMTMsUixFKTticmVha315PT03MyYmKEUuVz1wKEUsZmFsc2UsMzIpLEUubz12b2lkIDApfSxkTT1mdW5jdGlvbihSLHksRSl7cmV0dXJuIExOLmNhbGwodGhpcyw2NSxSLDMyLHksRSl9LHRkPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4pe1k9KChVLnh3PXZTKChVLlI0PShVLnR5PShVLnN4PVZTLEhTKSxVKVtpUV0sODApLDg4LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25jYXQoKX19LFUuaCksVSkuSFE9SHRbVS5oXShVLnh3LHt2YWx1ZTp7dmFsdWU6e319fSksMCk7e0s9W107d2hpbGUoWTwyOTcpS1tZXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFkpLFkrK31VLnlaPShVLmtXPXZvaWQgMCxVLk89ZmFsc2UsZmFsc2UpLChVLnlUPShVLkdsPVtdLDApLFUpLkJZPTI1LFUucDU9KFUuVGw9ZmFsc2UsZnVuY3Rpb24oVCl7cmV0dXJuIHZTLmNhbGwodGhpcyw4MCw1NixUKX0pO3doaWxlKHt9KWlmKFUudT1VLHRydWUpYnJlYWs7VS5iND0oKChVLlQwPXksVS5wcj0wLFUpLm9oPTAsVS5MPWZhbHNlLFUubz12b2lkIDAsVSkuSz0oVS5OPShVLkk0PShVLlc9dm9pZCAwLFUuS3I9W10sVS5SPXZvaWQgMCxbXSksKFUuanI9MCxVKS5QPShVLkI9MSxVLmc9KFUuTUk9ZmFsc2UsMCksMCksVS5JPXZvaWQgMCxuPXdpbmRvdy5wZXJmb3JtYW5jZXx8e30sVS5ZVz12b2lkIDAsVS5xcj1bXSxVLkZlPTAsW10pLChVLkpUPWZhbHNlLFUpLmxwPVtdLFUuVlo9KFUuVlQ9MCwwKSwoKFUuSj1bXSxVKS5FMj12LFUpLnMyPVtdLG51bGwpLFUuaj0oVS5Tej0oVS5jWT12b2lkIDAsODAwMSksdm9pZCAwKSxuLnRpbWVPcmlnaW58fChuLnRpbWluZ3x8e30pLm5hdmlnYXRpb25TdGFydCl8fDAsRSYmRS5sZW5ndGg9PTImJihVLkk0PUVbMV0sVS5xcj1FWzBdKTtmb3IodHJ1ZTtsO3VuZGVmaW5lZCl7dHJ5e1UuY1k9SlNPTi5wYXJzZShsKX1jYXRjaChUKXtVLmNZPXt9fWlmKGZhbHNlIT1udWxsKWJyZWFrfXooOTEsMCwoeigzNCwwLCh6KDM2LCh6KDMyLDAsKGEoKEEoMzEsZnVuY3Rpb24oVCl7c2ooVCw0KX0sKEEoMzEsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcsQixDLGQseWcsZSx4LHpqLHNxLEQpe3tEPTM0O3doaWxlKEQhPTIzKUQ9PTIyP0Q9NjE6RD09OTk\/RD0xODpEPT0zND8oc3E9ZnVuY3Rpb24oRixFcSl7Zm9yKDtQPEY7KXh8PURVKHRydWUsOCxUKTw8UCxQKz04O3JldHVybiB4Pj49KEVxPXgmKDE8PEYpLShQLT1GLDEpLEYpLEVxfSxCPWIoVCwxNCkseD1QPTAsVz0oc3EoMyl8MCkrMSxDPXNxKDUpLGg9emo9MCxJPVtdLEQ9MjIpOkQ9PTI0PyhkPTAsRD05OSk6RD09ODk\/KGQrKyxEPTE4KTpEPT00MT8oSVtkXSYmKHdbZF09YihULDE0KSksRD04OSk6RD09Mzk\/KHpqKyssRD02MSk6RD09MTA\/RD1lPEM\/ODA6MjQ6RD09NzY\/KGUrKyxEPTEwKTpEPT04MD8oSVtlXXx8KHdbZV09c3EocSkpLEQ9NzYpOkQ9PTE4P0Q9ZDxDPzQxOjE3OkQ9PTM\/KHlnPXNxKDEpLEkucHVzaCh5ZyksaCs9eWc\/MDoxLEQ9MzkpOkQ9PTUwPyhBKDMyLGZ1bmN0aW9uKEYsRXEsZixKcCxtLHUpe2Zvcih1PTE2O3UhPTg7KXU9PTU1PyhKcC5wdXNoKG0pLHU9OTEpOnU9PTY\/dT1mPEM\/OTg6MTg6dT09OTc\/dT1tPj1FcS5sZW5ndGg\/NDI6Njg6dT09OTg\/KG09d1tmXSx1PTUyKTp1PT0yNz91PTk3OnU9PTE4PyhGLkk9aGQoMCw1LE4uc2xpY2UoKSxGKSxGLlI9aGQoMCwxMixKcCxGKSx1PTgpOnU9PTE2PyhKcD1bXSxFcT1bXSxmPTAsdT0yNCk6dT09Njg\/KG09RXFbbV0sdT01NSk6dT09MzA\/dT05Nzp1PT05MT8oZisrLHU9Nik6dT09NTI\/dT1JW2ZdPzU1OjMwOnU9PTI0P3U9Njp1PT00MiYmKEVxLnB1c2goRyhGLDM3KSksdT0yNyl9LEIsVCksRD0yMyk6RD09NTQ\/RD1TLS0\/Mzg6NTA6RD09OTE\/RD01NDpEPT0xNz8oUz1XLE49W10sRD0xKTpEPT0xP0Q9NTQ6RD09Mzg\/KE4ucHVzaChnKEcoVCwyMSksVCkpLEQ9OTEpOkQ9PTU5P0Q9MTA6RD09NjE\/RD16ajxDPzM6NDA6RD09NDAmJihxPSgoaHwwKS0xKS50b1N0cmluZygyKS5sZW5ndGgsZT0wLHc9W10sRD01OSl9fSwoQSgyMyxmdW5jdGlvbihULEksUCxXLFMscSl7e3E9ODE7d2hpbGUocSE9MTIpcT09Mjc\/KEkrKyxxPTIzKTpxPT04MT8oVz1HKFQsNjUpLFM9Y3QoMTI3LDM0LFQpLEk9MCxQPVtdLHE9NjgpOnE9PTQ3PyhIKFcsVCxQKSxxPTEyKTpxPT05Mz8oUC5wdXNoKERVKHRydWUsOCxUKSkscT0yNyk6cT09Njg\/cT0yMzpxPT0yMyYmKHE9STxTPzkzOjQ3KX19LDIxOSwoQSgyMywoQSgyMyxmdW5jdGlvbihULEksUCxXLFMscSl7KFM9KFc9KEk9RygoUD1HKFQsMzkpLFQpLDU1KSxHKFQsNzUpKSxnKEksVCkpLHE9TShQLFQpLGEpKHEgaW4gU3wwLFcsVCl9LChrKDEyMyxVLChBKChhKFtdLDMwMSwoQSgzMywoYShbXSwoSCgoQSgyMywoQSgyNSxmdW5jdGlvbihUKXtqWCgzLFQpfSwyNDMsKEEoMjQsZnVuY3Rpb24oVCxJLFAsVyl7Vz1iKFQsKEk9RFUodHJ1ZSwoUD1HKFQsNzkpLDgpLFQpLDEzKSksSChXLFQsTShQLFQpPj4+SSl9LChBKDMyLGZ1bmN0aW9uKFQsSSxQLFcsUyxxLE4saCl7Uz0ocT0oST0oVz1iKChOPWIoVCwoUD1HKFQsMzgpLDEzKSksVCksMjYpLGIoVCwxMCkpLHQpKE4sVCksZyhXLFQpKSxoPWcoSSxUKSxrKFAsVCxoZCgwLDI4LDIsZmFsc2UsaCxxLFMsVCkpfSwoQSgyOSxmdW5jdGlvbihULEksUCxXLFMscSl7SCgocT1nKChJPShQPWIoVCwoUz1iKFQsKFc9RyhULDc3KSwyNykpLDEyKSksTShTLFQpKSxXKSxUKT09SSxQKSxULCtxKX0sKEgoKEEoKEEoMjQsZnVuY3Rpb24oVCl7RygwLDksVCw0KX0sKEEoMjksKFUuSzU9KEEoMjAsKEEoKEgoKGEoW10sMjYwLCgoYShVLChBKDI4LChIKDEsKEgoMzU1LFUsKEEoMjUsZnVuY3Rpb24oVCxJLFAsVyl7aygoUD0oVz1HKFQsKEk9RyhULDM2KSwyMSkpLEcpKFQsNjcpLFApLFQsdChJLFQpfHxnKFcsVCkpfSw0MzgsKEEoMjQsZnVuY3Rpb24oVCxJLFAsVyxTKXtJPWcoKFM9dCgoVz1HKFQsKFA9RyhULDc3KSw2NykpLFApLFQpIT0wLFcpLFQpLFMmJmEoSSw0MDUsVCl9LDEwOSwoQSgyOCxmdW5jdGlvbihULEksUCxXLFMscSl7Zm9yKHE9ODM7cSE9NDQ7KXE9PTE5PyhXPUdmKHRydWUsOCwxLFQpLFA9Vy53QixTPVcuRk4scT0xMyk6cT09MTM\/cT1ULnU9PVR8fFA9PVQucDUmJlM9PVQ\/MjA6NDQ6cT09ODM\/cT1kdSh0cnVlLEksZmFsc2UsVCwxLDEzKT80NDoxOTpxPT0yMCYmKEgoVy5RWixULFAuYXBwbHkoUyxXLlQpKSxULkZlPVQuRigpLHE9NDQpfSwoQSgzMixmdW5jdGlvbihULEksUCl7KEk9KFA9RyhULDY3KSxNKFAsVC51KSksSVswXSkucmVtb3ZlRXZlbnRMaXN0ZW5lcihJWzFdLElbMl0sTjApfSwyOTgsKChBKChBKDI5LGZ1bmN0aW9uKFQsSSxQLFcsUyl7e1M9NDA7d2hpbGUoUyE9MTkpUz09NDA\/KEk9VC5HbC5wb3AoKSxTPTY5KTpTPT02OT9TPUk\/OTE6ODk6Uz09NzM\/KFctLSxTPTMxKTpTPT05MT8oVz1EVSh0cnVlLDgsVCksUz02MSk6Uz09NjA\/KFA9YihULDExKSxJW1BdPVQuTltQXSxTPTczKTpTPT0zMT9TPVc+MD82MDoxNTpTPT02MT9TPTMxOlM9PTg5PyhhKFQuZyw0MDUsVCksUz0xOSk6Uz09MTUmJihJWzE3NV09VC5OWzE3NV0sSVsxNjhdPVQuTlsxNjhdLFQuTj1JLFM9MTkpfX0sKEEoMjEsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcsQixDLGQseWcsZSx4KXt7eD04ODt3aGlsZSh4IT04KWlmKHg9PTcwKXg9NTg7ZWxzZSBpZih4PT0zMilQKz1CLHg9NTg7ZWxzZSBpZih4PT03OClXPUcoVCw2NSksUz1HKFQsMjEpLHc9RyhULDc1KSxoPUcoVCw3NSksTj1nKFcsVCkscT1NKFMsVCksZT1NKGgsVCksQj10KHcsVCkseD0xODtlbHNlIGlmKHg9PTU4KXg9UDxDPzY2Ojg7ZWxzZSBpZih4PT0xOCl4PXd1KCJvYmplY3QiLE4sIm51bWJlciIpPT0ib2JqZWN0Ij85Mzo5NztlbHNlIGlmKHg9PTQyKUI9Qj4wP0I6MSxDPU4ubGVuZ3RoLFA9MCx4PTcwO2Vsc2UgaWYoeD09NjYpcShOLnNsaWNlKFAsKFB8MCkrKEJ8MCkpLGUpLHg9MzI7ZWxzZSBpZih4PT04OCl4PWR1KHRydWUsSSx0cnVlLFQsMSwxMSk\/ODo3ODtlbHNlIGlmKHg9PTk3KXg9VC51PT1UPzQyOjg7ZWxzZSBpZih4PT05Myl7Zm9yKGQgaW4geWc9W10sTil5Zy5wdXNoKGQpO049KHg9OTcseWcpfX19LChBKDMzLGZ1bmN0aW9uKFQsSSxQKXsoUD1HKFQsKEk9RyhULDM4KSwzNikpLGspKFAsVCwiIit0KEksVCkpfSwoKEgoKEgoNDg1LCgoSCgxNjgsKEgoNjQsVSwoVS5HMD0oSCgoSCg0MDUsKEEoMjEsKEEoMjUsKEEoMjAsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcpe3t3PTk2O3doaWxlKHchPTE3KXc9PTA\/dz0zMDp3PT0yNT8oYShJLFMsVCksdz0xNyk6dz09ODk\/dz0zMDp3PT0zMD93PVctLT8yOjI1Onc9PTI\/KGg9KE49Y3QoMTI3LDMzLFQpLC0oaHxOKSszKihoJk4pKzIqKGheTikpJXEsSS5wdXNoKFBbaF0pLHc9MCk6dz09OTYmJihTPUcoVCw1NCksVz1jdCgxMjcsMzYsVCksST1bXSxQPWcoMzcwLFQpLHE9UC5sZW5ndGgsaD0wLHc9ODkpfX0sMjAyLFUpLGZ1bmN0aW9uKFQsSSxQLFcsUyxxLE4saCx3LEIpe3tCPTc7d2hpbGUoQiE9NTIpQj09Nz8oUD1iKFQsMTIpLHc9YihULDExKSxxPUcoVCw3MyksaD10KHcsVCksVz1NKFAsVCksTj0iIixTPTAsQj01KTpCPT03NT8oSChxLFQsV1tOXSksQj01Mik6Qj09NT9CPTIzOkI9PTgwPyhOKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChJPWhbU10sKEl8MCkrfihJJjEyMSktKEl8LTEyMikpKSxCPTYzKTpCPT0yMz9CPVM8aC5sZW5ndGg\/ODA6NzU6Qj09NjMmJihTKyssQj0yMyl9fSksMzgxLFUpLGZ1bmN0aW9uKFQsSSxQLFcsUyxxLE4saCx3KXtmb3Iodz05NDt3IT02Mzspdz09MjM\/KGEoSSBpbiBQfDAsUyxUKSx3PTYzKTp3PT05ND8oTj1HKFQsNzMpLHE9RyhULDY1KSxTPUcoVCwyMyksVz1nKE4sVCksUD10KHEsVCksaD0wLEk9IiIsdz02Nyk6dz09NDI\/dz1oPFcubGVuZ3RoPzQzOjIzOnc9PTY3P3c9NDI6dz09Njk\/KGgrKyx3PTQyKTp3PT00MyYmKEkrPVN0cmluZy5mcm9tQ2hhckNvZGUoV1toXV4xMjEpLHc9NjkpfSksNDUxLFUpLFUpLDApLDEwNSksVSwwKSwwKSxbXSkpLFUpLFsyMDQ4XSksQSkoMjEsZnVuY3Rpb24oVCl7algoNCxUKX0sNDk0LFUpLFUpLGl3KDQpKSwzNDApLFUsMCksaykoMzU4LFUsMCksOTMpLFUpLDk2KSxVKSwyMzIpLFUpLDIwKSxmdW5jdGlvbihULEksUCxXLFMscSxOLGgsdyxCKXt7Qj04NTt3aGlsZShCIT0yMylCPT01NT8oUz1HZih0cnVlLDgsMSxULnUpLFc9Uy5RWixOPVMuVCxQPVMud0IscT1TLkZOLHc9Ti5sZW5ndGgsaD13PT0wP25ldyBxW1BdOnc9PTE\/bmV3IHFbUF0oTlswXSk6dz09Mj9uZXcgcVtQXShOWzBdLE5bMV0pOnc9PTM\/bmV3IHFbUF0oTlswXSxOWzFdLE5bMl0pOnc9PTQ\/bmV3IHFbUF0oTlswXSxOWzFdLE5bMl0sTlszXSk6MigpLGsoVyxULGgpLEI9MjMpOkI9PTg1JiYoQj1kdSh0cnVlLEksZmFsc2UsVCwxLDE0KT8yMzo1NSl9fSwzOCxVKSxIKSgyMDcsVSxbMTU0LDAsMF0pLFUpKSwzNDQpLFUpLFUpKSxVKSksWzAsMCwwXSkpLEEoMzEsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcsQixDKXt7Qz02NTt3aGlsZShDIT03MilDPT02NT8oUD1HKFQsMzkpLHE9RyhULDY1KSxJPUcoVCwzNyksTj1HKFQsNzkpLFM9ZyhOLFQpLFc9ZyhxLFQpLHc9TShQLFQudSksaD1NKEksVCksQz01Myk6Qz09NjQ\/KEI9aGQoMCwyNywyLGZhbHNlLDEsaCxTLFQsdyxXKSx3LmFkZEV2ZW50TGlzdGVuZXIoVyxCLE4wKSx0KDMzOCxUKS5wdXNoKGZ1bmN0aW9uKCl7dy5yZW1vdmVFdmVudExpc3RlbmVyKFcsQixOMCl9KSxrKDM0MCxULFt3LFcsQl0pLEM9NzIpOkM9PTUzJiYoQz13IT09MD82NDo3Mil9fSw2MCxVKSxVKSw0MDYpLGZ1bmN0aW9uKFQpe3NqKFQsMSl9KSwyNzEsVSksMjI2KSxVKSxuZXcgZE0oIlN1Ym1pdCIpKS5kaXNwb3NlKCksVSkpLDg0KSxVLGl3KDQpKSwyMCksZnVuY3Rpb24oVCxJKXsoST1nKEcoVCw3MyksVCksRm0pKDAsODQsVC51LDQwNSwxMDQsSSl9LDQxNyxVKSxmdW5jdGlvbihULEksUCxXLFMscSl7SCgoUD0oVz0oUz1HKFQsKEk9RyhULChxPUcoVCw1MyksNTUpKSw1MykpLE0ocSxUKSksZyhJLFQpKSxTKSxULFdbUF0pfSksMzY2LFUpLDApLGZ1bmN0aW9uKFQsSSxQLFcsUyl7SCgoUz13dSgib2JqZWN0IiwoUD0oST1HKChXPUcoVCw3OSksVCksNTIpLGcoVyxUKSksUCksIm51bWJlciIpLEkpLFQsUyl9KSw0NzMsVSksNDE5KSxVKSwyMSksZnVuY3Rpb24oVCxJLFAsVyxTKXtmb3IoUz03MDtTIT05MjspUz09NzA\/Uz1kdSh0cnVlLEksZmFsc2UsVCwxLDkpPzkyOjc6Uz09NyYmKFA9RyhULDUyKSxXPUcoVCw2NSksSChXLFQsZnVuY3Rpb24ocSl7cmV0dXJuIGV2YWwocSl9KGVYKHQoUCxULnUpKSkpLFM9OTIpfSwzMSxVKSwyNjEpLFUse30pLDQ1NCksVSksQSgyOCxmdW5jdGlvbihULEksUCxXLFMpeyhQPWcoKFM9RyhULChXPWIoVCwxNSksNzcpKSxJPWcoUyxUKSxXKSxUKSxhKShJK1AsUyxUKX0sNDg4LFUpLDQyMSksVSksMjIxKSxVKSxVKSksZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoKXt7aD0yOTt3aGlsZShoIT02OCloPT0xOD9oPTE0Omg9PTM3P2g9MTQ6aD09MzM\/KFc9KChXfDApKyhjdCgxMjcsMzIsVCl8MCkpJXEsTis9S1tTW1ddXSxoPTE4KTpoPT0yOT8oUD1iKFQsMzApLEk9Y3QoMTI3LDM1LFQpLE49IiIsUz1NKDM3MCxUKSxxPVMubGVuZ3RoLFc9MCxoPTM3KTpoPT0xND9oPUktLT8zMzo0MzpoPT00MyYmKEgoUCxULE4pLGg9NjgpfX0pLDgyLFUpLDMzOCksVSxbXSksVS5jUT0wLDE3NSksVSksZnVuY3Rpb24oVCxJKXtJPUcoVCwyMyksayhJLFQsW10pfSksMTM4LFUpLFUpKSwzMyksZnVuY3Rpb24oKXt9LDEzMSxVKSxjKSksMzI5KSxVKSxmdW5jdGlvbihULEksUCxXLFMscSxOLGgpe2ZvcihoPTY0O2ghPTM2OyloPT05Mz8oTj1nKFMsVCksST1nKHEsVCksUD1nKFcsVCksSVtOXT1QLGg9NzcpOmg9PTU0P2g9VC51PT1UPzkzOjM2Omg9PTcyPyhULm89dm9pZCAwLGg9NjEpOmg9PTYxP2g9Tj09Mj81MjozNjpoPT02ND8ocT1HKFQsNTQpLFM9RyhULDczKSxXPUcoVCwyMyksaD01NCk6aD09NTI\/KFQuVz1wKFQsZmFsc2UsMzIpLFQubz12b2lkIDAsaD0zNik6aD09NzcmJihoPXE9PTczPzcyOjM2KX0pLDU5LFUpLFUpKSwxMyksVSksMzY5KSxVKSxpdykoNCksMTAxLFUpLFUpLFtLd10pLDApLFUsW1htLFJdKSxVKSxbTTAsT10pLHRydWUpLFUsdHJ1ZSl9LFIwPWZ1bmN0aW9uKFIpe3JldHVybiBQUy5jYWxsKHRoaXMsIiIsODQsMyxSKX0sZz1mdW5jdGlvbihSLHksRSl7RT15Lk5bUl07Zm9yKGZhbHNlPT0wO0U9PT12b2lkIDA7dm9pZCgwKS5BKXt0aHJvd1tEMiwzMCxSXTtpZih7fSlicmVha31zd2l0Y2goIUUudmFsdWUpe2Nhc2UgdHJ1ZTp0cnVlPT1bXTticmVhaztjYXNlIGZhbHNlOnJldHVybiBFLmNyZWF0ZSgpO2JyZWFrfXdoaWxlKHRydWUpaWYoRS5jcmVhdGUoUio1KlIrOTMqUisxMSksIlUiKWJyZWFrO3JldHVybiBFLnByb3RvdHlwZX0sc2o9ZnVuY3Rpb24oUix5LEUsbCl7SmQoUShnKChFPUcoUiwobD1HKFIsNjcpLDc3KSksbCksUikseSksRSxSKX0sa1Q9ZnVuY3Rpb24oKXtyZXR1cm4gYXIuY2FsbCh0aGlzLCJvZmYiLDUpfSx6Zj1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe1k9MDt3aGlsZSghWyIiXT09MClpZih2PVVbMl18MCwhbnVsbClicmVhazt7Tz1VW0VdfDA7d2hpbGUoWTwxNilsPWw+Pj44fGw8PDI0LGwrPXl8MCxsXj12K1IseT15PDxFfHk+Pj4yOSxPPU8+Pj44fE88PDI0LE8rPXZ8MCx2PXY8PEV8dj4+PjI5LHlePWwsT149WStSLHZePU8sWSsrfXJldHVyblt5Pj4+MjQmMjU1LHk+Pj4xNiYyNTUseT4+PjgmMjU1LHk+Pj4wJjI1NSxsPj4+MjQmMjU1LGw+Pj4xNiYyNTUsbD4+PjgmMjU1LGw+Pj4wJjI1NV19LEg9ZnVuY3Rpb24oUix5LEUpe2lmKFI9PTQwNXx8Uj09MTA1KXkuTltSXT95Lk5bUl0uY29uY2F0KEUpOnkuTltSXT1oZCgwLDksRSx5KTtlbHNle3N3aXRjaCghKHkuTUkmJlIhPTczKSl7Y2FzZSAtMD09PTA6ZmFsc2U7YnJlYWs7Y2FzZSBmYWxzZTpyZXR1cm47YnJlYWt9Uj09MjA3fHxSPT04NHx8Uj09NjR8fFI9PTQ4NXx8Uj09MTc1fHxSPT0zMDF8fFI9PTI2MHx8Uj09MzU1fHxSPT0xMDF8fFI9PTE2OD95Lk5bUl18fCh5Lk5bUl09RygwLDE4LHksUixFLDM4KSk6eS5OW1JdPUcoMCwzMCx5LFIsRSwxNTMpfVI9PTczJiYoeS5XPXAoeSxmYWxzZSwzMikseS5vPXZvaWQgMCl9LE09ZnVuY3Rpb24oUix5LEUpe2lmKChFPXkuTltSXSxFKT09PXZvaWQgMCl0aHJvd1tEMiwzMCxSXTtpZihFLnZhbHVlKXJldHVybiBFLmNyZWF0ZSgpO3JldHVybiBFLmNyZWF0ZShSKjUqUis5MypSKzExKSxFLnByb3RvdHlwZX0sRm09ZnVuY3Rpb24oUix5LEUsbCxVLHYpe0UuR2wubGVuZ3RoPlU\/cHcoW0QyLDM2XSxFLFIseSk6KEUuR2wucHVzaChFLk4uc2xpY2UoKSksRS5OW2xdPXZvaWQgMCxhKHYsbCxFKSl9LHVRPWZ1bmN0aW9uKFIseSl7cmV0dXJuIFhyLmNhbGwodGhpcywzLFIsMTgseSl9LGxBPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSl7dHJ5e3doaWxlKDA9PSFbXSlpZih2PVJbKCh5fDApKzIpJTNdLFJbeV09KE89KFU9Ult5XSxZPVJbKCh5fDEpLX4oeSYxKS0xKSUzXSwoVSZZKSt+WS0oflV8WSkpLSh2fDApLGw9eT09MT92PDxFOnY+Pj5FLDIqfihPJmwpLX5PLX5sKSwxNSlicmVha31jYXRjaChLKXt0aHJvdyBLO319LEJ0PWZ1bmN0aW9uKFIseSxFKXtyZXR1cm4oRT1SLmNyZWF0ZSgpLnNoaWZ0KCkseSkuSS5jcmVhdGUoKS5sZW5ndGh8fHkuUi5jcmVhdGUoKS5sZW5ndGh8fCh5LlI9dm9pZCAwLHkuST12b2lkIDApLEV9LGdNPWZ1bmN0aW9uKFIseSxFLGwsVSl7cmV0dXJuIFBTLmNhbGwodGhpcywiIiw4NCw4LFIseSxFLGwsVSl9LFpVPWZ1bmN0aW9uKFIpe3JldHVybiBBLmNhbGwodGhpcywzLFIpfSxyTT1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyl7aWYoRS51PT1FKWZvcihLPU0oUixFKSxSPT04NHx8Uj09MTAxfHxSPT00ODU\/KFk9ZnVuY3Rpb24obixULEksUCxXLFMscSxOLGgpe2ZvcihOPTYscT0yMzs7KXRyeXtpZihOPT01MClicmVhaztlbHNlIGlmKE49PTYpUz1LLmxlbmd0aCxQPShTfDApLTQ+PjMsTj05NjtlbHNlIGlmKE49PTU0KXE9ODUsSy5SaD16ZigzMjYwLGN0KDI0LDcsSyxJKSwzLGN0KDI0LDMsSyw0KihJJjQpKzIqfihJJjQpLShJfC01KS0ofkl8NCkpLFQpLE49NztlbHNlIGlmKE49PTgzKUsuQ3I9UCxJPShQPDwzKS00LFQ9WzAsMCxPWzFdLE9bMl1dLE49NTQ7ZWxzZSBpZihOPT05NilOPUsuQ3IhPVA\/ODM6NztlbHNlIGlmKE49PTcpSy5wdXNoKChXPUsuUmhbLShTfDApLTIqfihTJjcpKy0yKyhTJi04KV0sLShXfG4pKyhXJm4pKzIqKFcmfm4pKzIqKH5XJm4pKSksTj01MDtlbHNlIGlmKE49PTEyKXRocm93IHE9MjMsaDt9Y2F0Y2godyl7aWYocT09MjMpdGhyb3cgdztxPT04NSYmKGg9dyxOPTEyKX19LE89ZygzNTUsRSkpOlk9ZnVuY3Rpb24obil7Sy5wdXNoKG4pfSxsJiZZKGwmMjU1KSxVPXkubGVuZ3RoLHY9MDt2PFU7disrKVkoeVt2XSl9LENOPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oUix5LEUsbCl7e2w9NDg7d2hpbGUobCE9Njkpe2lmKGw9PTYxKXJldHVybiBSO2lmKGw9PTYwKXJldHVybiBSW3ldPUUudmFsdWUsUjtsPT00OCYmKGw9Uj09QXJyYXkucHJvdG90eXBlfHxSPT1PYmplY3QucHJvdG90eXBlPzYxOjYwKX19fSxrPWZ1bmN0aW9uKFIseSxFKXtzd2l0Y2goIShSPT00MDV8fFI9PTEwNSkpe2Nhc2UgMD09ZmFsc2U6c3dpdGNoKCEoeS5NSSYmUiE9NzMpKXtjYXNlIE51bWJlcigpPT09LTA6bnVsbD09KE5hTj09PU5hTik7YnJlYWs7Y2FzZSAhW106cmV0dXJuO2JyZWFrfVI9PTIwN3x8Uj09ODR8fFI9PTY0fHxSPT00ODV8fFI9PTE3NXx8Uj09MzAxfHxSPT0yNjB8fFI9PTM1NXx8Uj09MTAxfHxSPT0xNjg\/eS5OW1JdfHwoeS5OW1JdPUcoMCwyOCx5LFIsRSwzOCkpOnkuTltSXT1HKDAsMTYseSxSLEUsMTUzKTticmVhaztjYXNlICFmYWxzZT09ISIiPT0hW106eS5OW1JdP3kuTltSXS5jb25jYXQoRSk6eS5OW1JdPWhkKDAsOCxFLHkpO2JyZWFrfVI9PTczJiYoeS5XPXAoeSxmYWxzZSwzMikseS5vPXZvaWQgMCl9LG53PWZ1bmN0aW9uKCl7cmV0dXJuIEdqLmNhbGwodGhpcywxOCwxMil9LGpYPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8pe0pkKCgoTz0oRT1iKChsPSh2PShSfDApLX4oUiYoVT0tfihSJjMpKyh+UiYzKSsoUnwtNCksNCkpK35SLEcpKHksNzMpLHkpLDI5KSxNKGwseSkpLHYpJiYoTz1MdygyMDQ4LCIiK08pKSxVJiZKZChRKE8ubGVuZ3RoLDIpLEUseSksTyksRSx5KX0sRWo9ZnVuY3Rpb24oUix5LEUsbCxVLHYpeyh2PWcoNDA1LHkpLHkpLmxwJiZ2PHkuZz8oayg0MDUseSx5LmcpLEZtKDAsODQseSw0MDUsMTA0LGwpKTpIKDQwNSx5LGwpLHhjKDAsRSxVLHkpO3doaWxlKFtdKWlmKDAhPSFbKGsoNDA1LHksdiksdW5kZWZpbmVkKV09PTApYnJlYWs7cmV0dXJuIE0oUix5KX0sVFo9ZnVuY3Rpb24oKXtyZXR1cm4gdlMuY2FsbCh0aGlzLDgwLDUpfSx3dT1mdW5jdGlvbihSLHksRSxsLFUpe1U9dHlwZW9mIHk7c3dpdGNoKCEoVT09Uikpe2Nhc2UgMD09IVsiIl06Zm9yKE51bWJlcih1bmRlZmluZWQpO1U9PSJmdW5jdGlvbiImJnR5cGVvZiB5LmNhbGw9PSJ1bmRlZmluZWQiOzApe3JldHVybiBSO2lmKHt9KWJyZWFrfWJyZWFrO2Nhc2UgIVtdIT10cnVlIT0hW109PVtdOmlmKHkpe2lmKHkgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYXJyYXkiO2lmKHkgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIFU7bD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeSk7d2hpbGUobD09IltvYmplY3QgV2luZG93XSIpe3JldHVybiBSO2lmKFtdKWJyZWFrfWZvcih1bmRlZmluZWQ7bD09IltvYmplY3QgQXJyYXldInx8dHlwZW9mIHkubGVuZ3RoPT1FJiZ0eXBlb2YgeS5zcGxpY2UhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgeS5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiF5LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJzcGxpY2UiKTtmYWxzZT09IVtdKXtyZXR1cm4iYXJyYXkiO2lmKCFudWxsKWJyZWFrfWlmKGw9PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiB5LmNhbGwhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgeS5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiF5LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJjYWxsIikpcmV0dXJuImZ1bmN0aW9uIn1lbHNlIHJldHVybiJudWxsIjticmVha31yZXR1cm4gVX0sSTA9ZnVuY3Rpb24oUix5LEUsbCxVKXtpZihSLmxlbmd0aD09Myl7e2w9MDt3aGlsZShsPDMpeVtsXSs9UltsXSxsKyt9Zm9yKEU9WzEzLDgsMTMsMTIsMTYsNSwoVT0wLDMpLDEwLDE1XTtVPDk7VSsrKXlbM10oeSxVJTMsRVtVXSl9fSxmTj1mdW5jdGlvbihSLHkpe3JldHVybiB6LmNhbGwodGhpcywxMCxSLHkpfSxTWD1mdW5jdGlvbigpe3JldHVybiBHai5jYWxsKHRoaXMsMTgsNil9LFFnPWZ1bmN0aW9uKFIseSxFLGwsVSx2KXtyZXR1cm4gWHIuY2FsbCh0aGlzLDMsUiwzNix5LEUsbCxVLHYpfSxZYz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe3JldHVybiBOJC5jYWxsKHRoaXMsMCwzLFIseSxFLGwsVSx2LE8sWSl9LHNrPWZ1bmN0aW9uKFIpe3JldHVybiBMTi5jYWxsKHRoaXMsNjUsUiw4KX0sT3E9ZnVuY3Rpb24oUil7cmV0dXJuIEFwLmNhbGwodGhpcyw2NSwzLFIpfSxVaj1mdW5jdGlvbigpe3JldHVybiB4VC5jYWxsKHRoaXMsMjQpfSxwdz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSxQLFcpe3N3aXRjaCghKCF5Lk1JJiYoTz12b2lkIDAsUiYmUlswXT09PUQyJiYoTz1SWzJdLEU9UlsxXSxSPXZvaWQgMCksVz1nKDE3NSx5KSxXLmxlbmd0aD09MCYmKHY9ZygxMDUseSk+PjMsVy5wdXNoKEUsdj4+OCYyNTUsLX4odnwyNTUpLSh2Ji0yNTYpKyh2fC0yNTYpKSxPIT12b2lkIDAmJlcucHVzaChPJjI1NSkpLG49IiIsUiYmKFIubWVzc2FnZSYmKG4rPVIubWVzc2FnZSksUi5zdGFjayYmKG4rPSI6IitSLnN0YWNrKSksVT1nKDE2OCx5KSxVWzBdPjMpKSl7Y2FzZSB0cnVlOnRydWU7YnJlYWs7Y2FzZSAwIT0hW3VuZGVmaW5lZF06eS51PShUPShuPSgobj1uLnNsaWNlKDAsKFA9VVswXSwtMi0oUF4zKS0yKih+UHwzKSkpLFUpWzBdLT0oSz1uLmxlbmd0aCwtMip+KEsmMykrLTIrKEteMykpLEx3KDIwNDgsbikpLHkpLnUseSk7dHJ5e3kuVGw\/KEk9KEk9dCgzMDEseSkpJiZJW0kubGVuZ3RoLTFdfHw5NSwoWT10KDI2MCx5KSkmJllbWS5sZW5ndGgtMV09PUl8fEpkKFtJJjI1NV0sMjYwLHkpKTpKZChbOTVdLDMwMSx5KSxyTShsLFEobi5sZW5ndGgsMikuY29uY2F0KG4pLHksNTEpfWZpbmFsbHl7eS51PVR9YnJlYWt9fSx5ej1mdW5jdGlvbigpe3JldHVybiBxJC5jYWxsKHRoaXMsMzcsNDApfSxiUT1ScigxNSw0MiwwLCJvYmplY3QiLCJNYXRoIix0aGlzKSxjPSh4VCgxOSwiLiIsbnVsbCwwLDEsIlN5bWJvbCIsZnVuY3Rpb24oUix5LEUsbCxVLHYpe2Zvcih2PTEzO3YhPTQ0Oyl7aWYodj09OTIpcmV0dXJuIGwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuanp9LEU9ImpzY29tcF9zeW1ib2xfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSsiXyIseT0wLFU7aWYodj09MTMpbD1mdW5jdGlvbihPLFkpe0NOKCh0aGlzLmp6PU8sdGhpcyksImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOnRydWUsd3JpdGFibGU6dHJ1ZSx2YWx1ZTpZfSl9LFU9ZnVuY3Rpb24oTyxZKXtmb3IoWT0yNjtZIT0xMzspe2lmKFk9PTE3KXJldHVybiBuZXcgbChFKyhPfHwiIikrIl8iK3krKyxPKTtpZihZPT01KXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO1k9PTI2JiYoWT10aGlzIGluc3RhbmNlb2YgVT81OjE3KX19LHY9ODU7ZWxzZSBpZih2PT04NSl2PVI\/NzM6OTI7ZWxzZSBpZih2PT03MylyZXR1cm4gUn19KSx0aGlzfHxzZWxmKSxSVz0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSxXUyxsdz0wLHZ0PWZ1bmN0aW9uKFIseSxFLGwsVSx2KXtmb3Iodj0obD0zOSw2Mik7Oyl0cnl7aWYobD09OTcpYnJlYWs7ZWxzZSBpZihsPT02OCl2PTYyLGw9OTE7ZWxzZSBpZihsPT04MSl5PWZhbHNlLEU9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7eT10cnVlfX0pLGw9NjtlbHNle2lmKGw9PTkxKXJldHVybiB2PTYyLHk7aWYobD09Nil2PTg4LFI9ZnVuY3Rpb24oKXt9LGMuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsUixFKSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLFIsRSksbD05MTtlbHNlIGlmKGw9PTM5KWw9Yy5hZGRFdmVudExpc3RlbmVyJiZPYmplY3QuZGVmaW5lUHJvcGVydHk\/ODE6NjU7ZWxzZSBpZihsPT02NSlyZXR1cm4gZmFsc2V9fWNhdGNoKE8pe2lmKHY9PTYyKXRocm93IE87dj09ODgmJihVPU8sbD02OCl9fSgpLHRwPSJjbG9zdXJlX2xpc3RlbmFibGVfIisoKEwoMiw2NSxmTiwoa1QucHJvdG90eXBlLlU9IShrVC5wcm90b3R5cGUuZGlzcG9zZT0oa1QucHJvdG90eXBlLkQ9ZnVuY3Rpb24oUil7e1I9MzA7d2hpbGUoUiE9NjApUj09OTY\/Uj0yMTpSPT03Pyh0aGlzLldZLnNoaWZ0KCkoKSxSPTk2KTpSPT05Mj9SPTIxOlI9PTIxP1I9dGhpcy5XWS5sZW5ndGg\/Nzo2MDpSPT0zMCYmKFI9dGhpcy5XWT85Mjo2MCl9fSx1US5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPSh1US5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dHJ1ZX0sZnVuY3Rpb24oKXt0aGlzLlNyPXRydWV9KSxmdW5jdGlvbihSKXt7Uj05NDt3aGlsZShSIT02NilSPT05ND9SPXRoaXMuVT82NjozNzpSPT0zNyYmKHRoaXMuVT10cnVlLHRoaXMuRCgpLFI9NjYpfX0pLDEpLGtULnByb3RvdHlwZVtTeW1ib2wuZGlzcG9zZV09ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKX0sdVEpKSxmTi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihSLHksRSxsLFUsdil7Zm9yKHY9NjM7diE9Mjspdj09NDI\/KHRoaXMub2Zmc2V0WD1SLm9mZnNldFgsdGhpcy5vZmZzZXRZPVIub2Zmc2V0WSx0aGlzLmNsaWVudFg9Ui5jbGllbnRYIT09dm9pZCAwP1IuY2xpZW50WDpSLnBhZ2VYLHRoaXMuY2xpZW50WT1SLmNsaWVudFkhPT12b2lkIDA\/Ui5jbGllbnRZOlIucGFnZVksdGhpcy5zY3JlZW5YPVIuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9Ui5zY3JlZW5ZfHwwLHY9NTApOnY9PTY2Pyh0aGlzLmNsaWVudFg9VS5jbGllbnRYIT09dm9pZCAwP1UuY2xpZW50WDpVLnBhZ2VYLHRoaXMuY2xpZW50WT1VLmNsaWVudFkhPT12b2lkIDA\/VS5jbGllbnRZOlUucGFnZVksdGhpcy5zY3JlZW5YPVUuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9VS5zY3JlZW5ZfHwwLHY9NTApOnY9PTY0P3Y9bD09Im1vdXNlb3ZlciI\/Nzg6OTp2PT01MD8odGhpcy5idXR0b249Ui5idXR0b24sdGhpcy5rZXlDb2RlPVIua2V5Q29kZXx8MCx0aGlzLmtleT1SLmtleXx8IiIsdGhpcy5jaGFyQ29kZT1SLmNoYXJDb2RlfHwobD09ImtleXByZXNzIj9SLmtleUNvZGU6MCksdGhpcy5jdHJsS2V5PVIuY3RybEtleSx0aGlzLmFsdEtleT1SLmFsdEtleSx0aGlzLnNoaWZ0S2V5PVIuc2hpZnRLZXksdGhpcy5tZXRhS2V5PVIubWV0YUtleSx0aGlzLnBvaW50ZXJJZD1SLnBvaW50ZXJJZHx8MCx0aGlzLnBvaW50ZXJUeXBlPVIucG9pbnRlclR5cGUsdGhpcy5zdGF0ZT1SLnN0YXRlLHRoaXMudGltZVN0YW1wPVIudGltZVN0YW1wLHRoaXMud3I9UixSLmRlZmF1bHRQcmV2ZW50ZWQmJmZOLlMucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKSx2PTIpOnY9PTU2PyhFPVIudG9FbGVtZW50LHY9MjEpOnY9PTc4PyhFPVIuZnJvbUVsZW1lbnQsdj0yMSk6dj09NDg\/dj1FPzIxOjY0OnY9PTIxPyh0aGlzLnJlbGF0ZWRUYXJnZXQ9RSx2PTUzKTp2PT05P3Y9bD09Im1vdXNlb3V0Ij81NjoyMTp2PT02Mz8obD10aGlzLnR5cGU9Ui50eXBlLFU9Ui5jaGFuZ2VkVG91Y2hlcyYmUi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg\/Ui5jaGFuZ2VkVG91Y2hlc1swXTpudWxsLHRoaXMudGFyZ2V0PVIudGFyZ2V0fHxSLnNyY0VsZW1lbnQsdGhpcy5jdXJyZW50VGFyZ2V0PXksRT1SLnJlbGF0ZWRUYXJnZXQsdj00OCk6dj09NTMmJih2PVU\/NjY6NDIpfSxmTikucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe2ZOLlMuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyksdGhpcy53ci5zdG9wUHJvcGFnYXRpb24\/dGhpcy53ci5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLndyLmNhbmNlbEJ1YmJsZT10cnVlfSxmTi5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oUil7KFI9KGZOLlMucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKSx0aGlzLndyKSxSLnByZXZlbnREZWZhdWx0KT9SLnByZXZlbnREZWZhdWx0KCk6Ui5yZXR1cm5WYWx1ZT1mYWxzZX0sTWF0aC5yYW5kb20oKSoxRTZ8MCksTSQ9MCx1dz0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpLFRqPSgoKE9xLnByb3RvdHlwZS5oYXNMaXN0ZW5lcj1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBOJCgwLChVPShsPXkhPT12b2lkIDAsKEU9UiE9PXZvaWQgMCk\/Ui50b1N0cmluZygpOiIiKSwxMSksdHJ1ZSxmYWxzZSxmdW5jdGlvbih2LE8sWSl7e1k9OTM7d2hpbGUoWSE9ODApaWYoWT09OSlZPTk0O2Vsc2UgaWYoWT09OTQpWT1PPHYubGVuZ3RoPzk4OjQ0O2Vsc2UgaWYoWT09OTgpWT1FJiZ2W09dLnR5cGUhPVV8fGwmJnZbT10uY2FwdHVyZSE9eT8yNzo3NDtlbHNle2lmKFk9PTc0KXJldHVybiB0cnVlO2lmKFk9PTkzKU89MCxZPTk7ZWxzZSBpZihZPT0yNykrK08sWT05NDtlbHNlIGlmKFk9PTQ0KXJldHVybiBmYWxzZX19fSx0aGlzLmwpfSxPcSkucHJvdG90eXBlLmFkZD0oT3EucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe2ZvcihZPTk0O1khPTEyOyl7aWYoWT09MTMpcmV0dXJuIGZhbHNlO2lmKFk9PTYwKVU9dGhpcy5sW09dLHY9WVQoRSx5LFUsbCwxMSwwKSxZPTk3O2Vsc2V7aWYoWT09MTYpcmV0dXJuIGZhbHNlO2lmKFk9PTYpWT1PIGluIHRoaXMubD82MDoxMztlbHNlIGlmKFk9PTk3KVk9dj4tMT8xMDoxNjtlbHNle2lmKFk9PTMzKXJldHVybiB0cnVlO1k9PTI5P1k9VS5sZW5ndGg9PTA\/NzA6MzM6WT09NzA\/KGRlbGV0ZSB0aGlzLmxbT10sdGhpcy5RVC0tLFk9MzMpOlk9PTk0PyhPPVIudG9TdHJpbmcoKSxZPTYpOlk9PTEwJiYobk4oMzIsbnVsbCxVW3ZdKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoVSx2LDEpLFk9MjkpfX19fSxmdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuKXtmb3Iobj04O24hPTI2OylpZihuPT0yMilLLnpsPWZhbHNlLG49Mzk7ZWxzZSBpZihuPT0yNyluPXY\/ODc6NzA7ZWxzZSBpZihuPT03NCluPU8+LTE\/Njg6ODQ7ZWxzZSBpZihuPT02OClLPXZbT10sbj05ODtlbHNlIGlmKG49PTgpWT1SLnRvU3RyaW5nKCksdj10aGlzLmxbWV0sbj0yNztlbHNlIGlmKG49PTg3KU89WVQobCx5LHYsVSwxNSwwKSxuPTc0O2Vsc2UgaWYobj09OTgpbj1FPzM5OjIyO2Vsc2UgaWYobj09ODQpSz1uZXcgJGMoeSxZLHRoaXMuc3JjLFUsISFsKSxLLnpsPUUsdi5wdXNoKEspLG49Mzk7ZWxzZSBpZihuPT03MCl2PXRoaXMubFtZXT1bXSx0aGlzLlFUKyssbj04NztlbHNlIGlmKG49PTM5KXJldHVybiBLfSksT3EucHJvdG90eXBlKS5ucj1mdW5jdGlvbihSLHksRSxsLFUsdil7cmV0dXJuKChVPS0odj10aGlzLmxbeS50b1N0cmluZygpXSwxKSx2KSYmKFU9WVQoUixFLHYsbCw3LDApKSxVKT4tMT92W1VdOm51bGx9LCJjbG9zdXJlX2xtXyIrKE1hdGgucmFuZG9tKCkqMUU2fDApKSxndT17fSxsUT0wLG1jPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7KCgoKChMKDIsNjQsU1gsa1QpLFNYKS5wcm90b3R5cGVbdHBdPXRydWUsVj1TWC5wcm90b3R5cGUsVi5pcD1mdW5jdGlvbihSKXt0aGlzLmJwPVJ9LFYpLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oUix5LEUsbCl7dlMoODAsOCxmYWxzZSwib2JqZWN0Iix0aGlzLEUsbCx5LFIpfSxWKS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKFIseSxFLGwpe0tOKDAseSwib2JqZWN0Iiw2LHRoaXMsbCxFLFIpfSxWLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEkpe2ZvcihJPTM3O0khPTMzOylpZihJPT02Nyl2PXkubGVuZ3RoLTEsST0yMDtlbHNlIGlmKEk9PTIwKUk9MTtlbHNlIGlmKEk9PTgxKUU9bC5jdXJyZW50VGFyZ2V0PU8sVT1lRChudWxsLDE4LEssRSx0cnVlLGwpJiZVLGwuU3J8fChVPWVEKG51bGwsMTYsSyxFLGZhbHNlLGwpJiZVKSxJPTk1O2Vsc2UgaWYoST09NTQpWS5wdXNoKFQpLEk9NTU7ZWxzZSBpZihJPT03OSlsPW5ldyB1UShsLE8pLEk9NjA7ZWxzZSBpZihJPT02MilJPTc0O2Vsc2UgaWYoST09MTApdi0tLEk9MTtlbHNlIGlmKEk9PTU1KVQ9VC5icCxJPTQ5O2Vsc2UgaWYoST09OTQpST1sLlNyPzk1OjgxO2Vsc2UgaWYoST09NDcpbC50YXJnZXQ9bC50YXJnZXR8fE8sST02MDtlbHNlIGlmKEk9PTQ2KUU9bC5jdXJyZW50VGFyZ2V0PXlbdl0sVT1lRChudWxsLDMsSyxFLGZhbHNlLGwpJiZVLEk9OTk7ZWxzZSBpZihJPT03MilJPTQ5O2Vsc2UgaWYoST09NDEpST1UPzUyOjI2O2Vsc2UgaWYoST09MTUpST15PzY3Ojk0O2Vsc2UgaWYoST09OTUpST15PzcwOjExO2Vsc2UgaWYoST09MSlJPSFsLlNyJiZ2Pj0wPzYzOjk0O2Vsc2UgaWYoST09MjYpTz10aGlzLlhOLGw9UixLPWwudHlwZXx8bCx5PVksST0yMTtlbHNlIGlmKEk9PTUyKVk9W10sST03MjtlbHNle2lmKEk9PTExKXJldHVybiBVO0k9PTM3PyhUPXRoaXMuYnAsST00MSk6ST09MjE\/ST10eXBlb2YgbD09PSJzdHJpbmciPzc5OjM6ST09NzA\/KHY9MCxJPTYyKTpJPT02Mz8oRT1sLmN1cnJlbnRUYXJnZXQ9eVt2XSxVPWVEKG51bGwsMTcsSyxFLHRydWUsbCkmJlUsST0xMCk6ST09NDk\/ST1UPzU0OjI2Okk9PTc0P0k9IWwuU3ImJnY8eS5sZW5ndGg\/NDY6MTE6ST09OTk\/KHYrKyxJPTc0KTpJPT0zP0k9bCBpbnN0YW5jZW9mIHVRPzQ3OjkwOkk9PTkwPyhuPWwsbD1uZXcgdVEoSyxPKSxidyhsLG4pLEk9NjApOkk9PTYwJiYoVT10cnVlLEk9MTUpfX0sVikuRD1mdW5jdGlvbigpeygoU1guUy5ELmNhbGwodGhpcyksdGhpcykuWiYmSigwLG51bGwsNTcsdGhpcy5aKSx0aGlzKS5icD1udWxsfSxWKS5ucj1mdW5jdGlvbihSLHksRSxsKXtyZXR1cm4gdGhpcy5aLm5yKFIsU3RyaW5nKHkpLEUsbCl9LFYuaGFzTGlzdGVuZXI9ZnVuY3Rpb24oUix5KXtyZXR1cm4gdGhpcy5aLmhhc0xpc3RlbmVyKFIhPT12b2lkIDA\/U3RyaW5nKFIpOnZvaWQgMCx5KX07dmFyIFoyO2lmKFhyKDMsKCgoKCgoVj0oIkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLCJJTlBVVCJdKSxxMC5wcm90b3R5cGUpLFYuVj1mdW5jdGlvbihSKXtyZXR1cm4gdHlwZW9mIFI9PT0ic3RyaW5nIj90aGlzLnFJLmdldEVsZW1lbnRCeUlkKFIpOlJ9LFYuZ2V0RWxlbWVudHNCeVRhZ05hbWU9ZnVuY3Rpb24oUix5KXtyZXR1cm4oeXx8dGhpcy5xSSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKFIpKX0sVikuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihSLHksRSl7aWYoKEU9KHk9dGhpcy5xSSxTdHJpbmcoUikpLHkuY29udGVudFR5cGUpPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihFPUUudG9Mb3dlckNhc2UoKSksW10pcmV0dXJuIHkuY3JlYXRlRWxlbWVudChFKX0sVikuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oUil7cmV0dXJuIHRoaXMucUkuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKFIpKX0sVi5hcHBlbmRDaGlsZD1mdW5jdGlvbihSLHkpe1IuYXBwZW5kQ2hpbGQoeSl9LFYpLmFwcGVuZD1mdW5jdGlvbihSLHkpeyRUKCJudW1iZXIiLDE5LGZhbHNlLDEsIiIsYXJndW1lbnRzLFIsUi5ub2RlVHlwZT09OT9SOlIub3duZXJEb2N1bWVudHx8Ui5kb2N1bWVudCl9LFYpLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihSLHkpe2Zvcih5PTU1O3khPTcwOylpZih5PT01NSl5PVIubm9kZVR5cGUhPTE\/ODA6NjQ7ZWxzZXtpZih5PT04MClyZXR1cm4gZmFsc2U7aWYoeT09NjQpe3N3aXRjaChSLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9fX0sVi5yZW1vdmVOb2RlPVIwLFYpLmNvbnRhaW5zPWZ1bmN0aW9uKFIseSxFLGwpe3tsPTMwO3doaWxlKGwhPTYyKXtpZihsPT04OSlyZXR1cm4gUj09eXx8ISEoRT1SLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHkpLDE2LX5FK34oRXwxNikpO2lmKGw9PTk5KXJldHVybiBmYWxzZTtpZihsPT00MSlsPXR5cGVvZiBSLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIj84OTo4NDtlbHNlIGlmKGw9PTM1KWw9eSYmUiE9eT83Mjo0NDtlbHNlIGlmKGw9PTEzKWw9Ui5jb250YWlucyYmeS5ub2RlVHlwZT09MT8xNTo0MTtlbHNlIGlmKGw9PTcyKXk9eS5wYXJlbnROb2RlLGw9NDA7ZWxzZSBpZihsPT0zMClsPVImJnk\/MTM6OTk7ZWxzZXtpZihsPT0xNSlyZXR1cm4gUj09eXx8Ui5jb250YWlucyh5KTtpZihsPT00NClyZXR1cm4geT09UjtsPT00MD9sPTM1Omw9PTg0JiYobD0zNSl9fX19LFVqKSwxMyksMylVai5wcm90b3R5cGUuV1E9IiI7KFY9KEwoMiwzLFpVLChVai5wcm90b3R5cGUuSnk9MCxTWCkpLFpVKS5wcm90b3R5cGUsVi5vND1Vai5YZSgpLFYpLlY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfTt3aGlsZShudWxsIT1mYWxzZSlpZihWLmdldFBhcmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFofSx7fSlicmVhazsoKFYucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCl7Zm9yKFA9ODtQIT03MDspaWYoUD09NjEpWT1sLFA9NjI7ZWxzZSBpZihQPT0zMClLPXRoaXMubWwsRT0oSyE9PW51bGwmJkkgaW4gSz9LW0ldOnZvaWQgMCl8fG51bGwsUD00MztlbHNle2lmKFA9PTIyKXJldHVybiBSO2lmKFA9PTMxKVA9KGw9Ui5sNCk\/NjE6MTY7ZWxzZSBpZihQPT0xNSl2PXRoaXMubWwsSSBpbiB2JiZkZWxldGUgdltJXSx4VCg3LDEsdGhpcy5aOSxSKSxQPTY4O2Vsc2UgaWYoUD09MTkpUi5OSSgpLFIuaSYmUjAoUi5pKSxQPTUzO2Vsc2V7aWYoUD09NDUpdGhyb3cgRXJyb3IoIkNoaWxkIGlzIG5vdCBpbiBwYXJlbnQgY29tcG9uZW50Iik7aWYoUD09NjgpUD15PzE5OjUzO2Vsc2UgaWYoUD09NDcpVS5haD1udWxsLFpVLlMuaXAuY2FsbChVLG51bGwpLFA9NTI7ZWxzZSBpZihQPT00KVA9dGhpcy5tbCYmST8zMDo2O2Vsc2UgaWYoUD09NjUpUD1JJiZSPzE1OjUyO2Vsc2UgaWYoUD09NjIpST1ZLFA9NDtlbHNlIGlmKFA9PTMzKVA9VT09bnVsbD82Mzo0NztlbHNlIGlmKFA9PTk3KVA9dHlwZW9mIFI9PT0ic3RyaW5nIj82NzozMTtlbHNlIGlmKFA9PTUyKVA9Uj8yMjo0NTtlbHNle2lmKFA9PTYzKXRocm93IEVycm9yKCJVbmFibGUgdG8gc2V0IHBhcmVudCBjb21wb25lbnQiKTtQPT0xNj8obj1SLm80LE89UixUPW4uV1ErIjoiKyhuLkp5KyspLnRvU3RyaW5nKDM2KSxsPU8ubDQ9VCxQPTYxKTpQPT01Mz8oVT1SLFA9MzMpOlA9PTQzPyhSPUUsUD02NSk6UD09Njc\/KFk9UixQPTYyKTpQPT02PyhFPW51bGwsUD00Myk6UD09OCYmKFA9Uj85Nzo1Mil9fX19LFYpLkQ9ZnVuY3Rpb24oUil7Zm9yKFI9ODk7UiE9NjU7KVI9PTIyPyhBcCg2NSwyMyxmdW5jdGlvbih5KXt5LmRpc3Bvc2UoKX0sdGhpcyksIXRoaXMuckImJnRoaXMuaSYmUjAodGhpcy5pKSx0aGlzLm1sPXRoaXMuaT10aGlzLmFoPXRoaXMuWjk9bnVsbCxaVS5TLkQuY2FsbCh0aGlzKSxSPTY1KTpSPT0xMD9SPXRoaXMudXA\/MjE6MjI6Uj09MjE\/KHRoaXMudXAuZGlzcG9zZSgpLGRlbGV0ZSB0aGlzLnVwLFI9MjIpOlI9PTg5JiYodGhpcy5nciYmdGhpcy5OSSgpLFI9MTApfSxWKS5pcD0oVi5OST1mdW5jdGlvbigpe3RoaXMuZ3I9KChBcCg2NSwzMSxmdW5jdGlvbihSKXtSLmdyJiZSLk5JKCl9LHRoaXMpLHRoaXMpLnVwJiZKKDAsbnVsbCw1OCx0aGlzLnVwKSxmYWxzZSl9LGZ1bmN0aW9uKFIseSl7Zm9yKHk9NjE7eSE9ODk7KWlmKHk9PTYxKXk9dGhpcy5haCYmdGhpcy5haCE9Uj82ODo3ODtlbHNle2lmKHk9PTY4KXRocm93IEVycm9yKCJNZXRob2Qgbm90IHN1cHBvcnRlZCIpO3k9PTc4JiYoWlUuUy5pcC5jYWxsKHRoaXMsUikseT04OSl9fSk7dmFyIE9qLHZwPXtidXR0b246InByZXNzZWQiLGNoZWNrYm94OihYcigzLHl6LDExKSwiY2hlY2tlZCIpLG1lbnVpdGVtOiJzZWxlY3RlZCIsbWVudWl0ZW1jaGVja2JveDoiY2hlY2tlZCIsbWVudWl0ZW1yYWRpbzoiY2hlY2tlZCIscmFkaW86ImNoZWNrZWQiLHRhYjoic2VsZWN0ZWQiLHRyZWVpdGVtOiJzZWxlY3RlZCJ9O2lmKCgoKFY9eXoucHJvdG90eXBlLFYuTnI9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1jb250cm9sIn0sVikuWT1mdW5jdGlvbihSLHksRSxsLFUsdixPKXtmb3IoTz01O08hPTM1OylPPT02MD9PPXRoaXMuVTI\/MTU6ODpPPT01Pyh2PXkuVigpLE89ODgpOk89PTg4P089dj82MDozNTpPPT0xNT8oKGw9dGhpcy5VMltSXSkmJnRoaXMuSWgoeSxsLEUpLHRoaXMuaFQodixSLEUpLE89MzUpOk89PTgmJihVPXRoaXMuTnIoKSxVLnJlcGxhY2UoL1xceGEwfFxccy9nLCIgIiksdGhpcy5VMj17MTpVKyItZGlzYWJsZWQiLDI6VSsiLWhvdmVyIiw0OlUrIi1hY3RpdmUiLDg6VSsiLXNlbGVjdGVkIiwxNjpVKyItY2hlY2tlZCIsMzI6VSsiLWZvY3VzZWQiLDY0OlUrIi1vcGVuIn0sTz0xNSl9LFYuaFQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXsoWT0oKE89KE9qfHwoT2o9ezE6ImRpc2FibGVkIiw4OiJzZWxlY3RlZCIsMTY6ImNoZWNrZWQiLDY0OiJleHBhbmRlZCJ9KSxPalt5XSksVT1SLmdldEF0dHJpYnV0ZSgicm9sZSIpfHxudWxsKT8obD12cFtVXXx8Tyx2PU89PSJjaGVja2VkInx8Tz09InNlbGVjdGVkIj9sOk8pOnY9Tyx2KSkmJmFyKCJvZmYiLDIwLCJmYWxzZSIsZmFsc2UsUixZLEUpfSxWKS5JaD1mdW5jdGlvbihSLHksRSxsKXsobD1SLlY\/Ui5WKCk6UikmJihFP2dNOkN3KShsLFt5XSl9LFYuUFk9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEspe1k9ODc7e0s9ODM7d2hpbGUoInciKXRyeXtpZihZPT05NylicmVhaztlbHNlIFk9PTU1PyhFLnRhYkluZGV4PTAsWT05Nyk6WT09MzM\/KEs9NjQsbC5ibHVyKCksWT03NCk6WT09Njk\/KEUudGFiSW5kZXg9LTEsRS5yZW1vdmVBdHRyaWJ1dGUoInRhYkluZGV4IiksWT05Nyk6WT09MzI\/KHY9bC50YWJJbmRleCxVPXR5cGVvZiB2PT09Im51bWJlciImJnY+PTAmJnY8MzI3NjgsWT03OCk6WT09NzQ\/KEs9ODMsWT0yMyk6WT09MTE\/WT0heSYmUi5YJjMyPzMzOjcwOlk9PTcwP1k9KFU9bC5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikpPzMyOjc4Olk9PTU\/WT15PzU1OjY5Olk9PTg3P1k9S04oMixSLDMyLDM1KSYmKGw9Ui5ycigpKT8xMTo5NzpZPT03OD9ZPVUhPXk\/MjY6OTc6WT09NzU\/KEs9ODMsWT03NCk6WT09MjY\/KEU9bCxZPTUpOlk9PTg\/KE9rKDAsMiwzLDAsNCxSKSYmUi5zZXRBY3RpdmUoZmFsc2UpLE9rKDAsMiwxMSwwLDMyLFIpJiZKKDIsZmFsc2UsMTAsUiwzMikmJlIuWShmYWxzZSwzMiksWT03MCk6WT09MjMmJihZPVIuWCYzMj84OjcwKX1jYXRjaChuKXtpZihLPT04Myl0aHJvdyBuO0s9PTY0JiYoTz1uLFk9NzUpfX19LFYpLnJyPWZ1bmN0aW9uKFIpe3JldHVybiBSLlYoKX0sMTIpTCgyLDE3LFRaLHl6KTt2YXIgV3Q9KFhyKDMsVFosNykse30pO2lmKHR5cGVvZiBZYyE9PSgoKCgoKFY9KEwoKFRaLnByb3RvdHlwZS5Ocj0oVFoucHJvdG90eXBlLmhUPWZ1bmN0aW9uKFIseSxFKXtzd2l0Y2goeSl7Y2FzZSA4OmNhc2UgMTY6YXIoIm9mZiIsMTgsImZhbHNlIixmYWxzZSxSLCJwcmVzc2VkIixFKTticmVhaztkZWZhdWx0OmNhc2UgNjQ6Y2FzZSAxOlRaLlMuaFQuY2FsbCh0aGlzLFIseSxFKX19LGZ1bmN0aW9uKCl7cmV0dXJuImdvb2ctYnV0dG9uIn0pLDIpLDE5LFljLFpVKSxZYy5wcm90b3R5cGUpLFYuWD0wLFYuTkk9ZnVuY3Rpb24oKXsoWWMuUy5OSS5jYWxsKHRoaXMpLHRoaXMuSFkpJiZ0aGlzLkhZLmRldGFjaCgpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuaXNFbmFibGVkKCkmJnRoaXMuQy5QWSh0aGlzLGZhbHNlKX0sVikuWXc9MCxWLmh5PTM5LFYuQzU9dHJ1ZSxWLkQ9ZnVuY3Rpb24oUil7Zm9yKFI9Mzk7UiE9Mjc7KVI9PTYzP1I9dGhpcy5IWT81Nzo4OTpSPT04OT8oZGVsZXRlIHRoaXMuQyx0aGlzLkg9bnVsbCxSPTI3KTpSPT01Nz8odGhpcy5IWS5kaXNwb3NlKCksZGVsZXRlIHRoaXMuSFksUj04OSk6Uj09MzkmJihZYy5TLkQuY2FsbCh0aGlzKSxSPTYzKX0sVikucnI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5DLnJyKHRoaXMpfSxWLkloPWZ1bmN0aW9uKFIseSxFKXtmb3IoRT00NztFIT0yOTspRT09NDU\/RT1SPzk1OjI5OkU9PTMzPyh0aGlzLkMuSWgodGhpcyxSLGZhbHNlKSxFPTI5KTpFPT00ND8odGhpcy5IPW51bGwsRT0zMyk6RT09OTE\/RT1SJiZ0aGlzLkgmJnhUKDgsMSx0aGlzLkgsUik\/MzoyOTpFPT0zP0U9dGhpcy5ILmxlbmd0aD09MD80NDozMzpFPT05NT8odGhpcy5IP0xOKDY1LDAsMyxSLHRoaXMuSCk+PTB8fHRoaXMuSC5wdXNoKFIpOnRoaXMuSD1bUl0sdGhpcy5DLkloKHRoaXMsUix0cnVlKSxFPTI5KTpFPT00NyYmKEU9eT80NTo5MSl9LFYuSD1udWxsLFYuTXI9MjU1LFYuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQzV9LFYuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLlgmMSl9LFYpLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5YJjQpfSxWKS5zZXRBY3RpdmU9ZnVuY3Rpb24oUil7SigyLFIsNix0aGlzLDQpJiZ0aGlzLlkoUiw0KX0sVi5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlh9LFYpLlk9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyl7e089NjQ7d2hpbGUoTyE9NilPPT0zNT8odGhpcy5zZXRBY3RpdmUoZmFsc2UpLEooMixmYWxzZSwxMSx0aGlzLDIpJiZ0aGlzLlkoZmFsc2UsMiksTz02Nik6Tz09NjQ\/Tz1FfHx5IT0xPzQ4OjE1Ok89PTE1PyhVPSFSLGw9dGhpcy5nZXRQYXJlbnQoKSxPPTc2KTpPPT03Nj9PPWwmJnR5cGVvZiBsLmlzRW5hYmxlZD09ImZ1bmN0aW9uIiYmIWwuaXNFbmFibGVkKCl8fCFKKDIsIVUsOSx0aGlzLDEpPzY6NTQ6Tz09NjY\/KHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuQy5QWSh0aGlzLFUpLHRoaXMuWSghVSwxLHRydWUpLE89Nik6Tz09NDg\/Tz1LTigyLHRoaXMseSwzMykmJlIhPSEhKHRoaXMuWCZ5KT8yNzo2Ok89PTI3Pyh0aGlzLkMuWSh5LHRoaXMsUiksdGhpcy5YPVI\/KHY9dGhpcy5YLCh5fDApLX52K355Kyh+diZ5KSk6dGhpcy5YJn55LE89Nik6Tz09NTQmJihPPVU\/NjY6MzUpfX0sImZ1bmN0aW9uIikpd2hpbGUodHJ1ZSl7dGhyb3cgRXJyb3IoIkludmFsaWQgY29tcG9uZW50IGNsYXNzICIrWWMpO2lmKCEiIj09ISghKCFbXSE9ZmFsc2UpPT0hIiI9PVtdKSlicmVha31mb3IoMCE9IVsiIl07dHlwZW9mIHl6IT09ImZ1bmN0aW9uIjt1bmRlZmluZWQpe3Rocm93IEVycm9yKCJJbnZhbGlkIHJlbmRlcmVyIGNsYXNzICIreXopO2lmKCJ5IilicmVha312YXIgWU49cSQoMzcsNixZYyk7TCgoV3RbWU5dPXl6LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZYyhudWxsKX0pLDQwLCJnb29nLWNvbnRyb2wiKTt3aGlsZSghW109PWZhbHNlKWlmKEwoMiwxNixudyxUWiksdHJ1ZSlicmVhazt2YXIgRnI9KEwoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRNKG51bGwpfSwoKEwoMiwxOCxkTSwoKChYcigzLG53LDkpLG53LnByb3RvdHlwZS5oVD1mdW5jdGlvbigpe30sbncpLnByb3RvdHlwZS5ZPWZ1bmN0aW9uKFIseSxFLGwsVSl7Zm9yKFU9OTE7VSE9OTA7KVU9PTkxPyhudy5TLlkuY2FsbCh0aGlzLFIseSxFKSxsPXkuVigpLFU9NDQpOlU9PTQ0P1U9bCYmUj09MT85Njo5MDpVPT05NiYmKGwuZGlzYWJsZWQ9RSxVPTkwKX0sbncpLnByb3RvdHlwZS5QWT1mdW5jdGlvbigpe30sWWMpKSxkTS5wcm90b3R5cGUpLkQ9ZnVuY3Rpb24oKXtkZWxldGUgKGRlbGV0ZSAoZE0uUy5ELmNhbGwodGhpcyksdGhpcykuQlEsdGhpcykuRXh9LDQxKSwiZ29vZy1idXR0b24iKSxjLnJlcXVlc3RJZGxlQ2FsbGJhY2s\/ZnVuY3Rpb24oUil7cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe1IoKX0se3RpbWVvdXQ6NH0pfTpjLnNldEltbWVkaWF0ZT9mdW5jdGlvbihSKXtzZXRJbW1lZGlhdGUoUil9OmZ1bmN0aW9uKFIpe3NldFRpbWVvdXQoUiwwKX0pLHlTLE4wPXtwYXNzaXZlOnRydWUsY2FwdHVyZTp0cnVlfSxhVz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEwNSwxMTAsMTE2LDEwMSwxMDMsNjcsMTA0LDEwMSw5OSwxMDcsNjYsMTIxLDExMiw5NywxMTUsMTE1KSxocD0oci5wcm90b3R5cGUuREE9ZmFsc2Usci5wcm90b3R5cGUuZXo9dm9pZCAwLFtdKSxEMj17fSxYbT0oci5wcm90b3R5cGUuQVQ9InRvU3RyaW5nIixbXSksS3c9W10saVE9W10sY1M9W10sd009W10scnU9W10sTTA9KHIucHJvdG90eXBlLnZRPXZvaWQgMCxbXSksSHQ9KGtjLGl3LGxBLEkwLEFkLG9XLEQyKS5jb25zdHJ1Y3RvcixWZz0oKCgoVj1yLnByb3RvdHlwZSxyLnByb3RvdHlwZSkuaD0iY3JlYXRlIixWKS5QUT1mdW5jdGlvbihSLHksRSxsLFUsdixPKXtyZXR1cm4gTiQuY2FsbCh0aGlzLDAsOCxSLHksRSxsLFUsdixPKX0sVi5lcj1mdW5jdGlvbihSLHksRSxsLFUsdil7cmV0dXJuIGIuY2FsbCh0aGlzLFIsMTYseSxFLGwsVSx2KX0sVi5uNT1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBkdS5jYWxsKHRoaXMseSxVLGwsRSxSLDgpfSxWKS5aQT1mdW5jdGlvbigpe3doaWxlKHt9KXtyZXR1cm4gSXIuY2FsbCh0aGlzLDMpO2lmKHRydWUpYnJlYWt9fSxWLkY9KHdpbmRvdy5wZXJmb3JtYW5jZXx8e30pLm5vdz9mdW5jdGlvbigpe3JldHVybiB0aGlzLmI0K3dpbmRvdy5wZXJmb3JtYW5jZS5ub3coKX06ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9LFYuQXk9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtyZXR1cm4gSXIuY2FsbCh0aGlzLDQwLFIseSxFLGwsVSx2LE8sWSl9LFYuZjU9ZnVuY3Rpb24oKXtyZXR1cm4gU0QuY2FsbCh0aGlzLDMsNSl9LFYuaTQ9MCx2b2lkIDApOygoVj1yLnByb3RvdHlwZSxWKS5HPWZ1bmN0aW9uKFIseSl7cmV0dXJuIHk9KFI9KFZnPWZ1bmN0aW9uKCl7cmV0dXJuIFI9PXk\/MTE6LTR9LHt9KSx7fSksZnVuY3Rpb24oRSxsLFUsdixPLFksSyxuLFQsSSxQLFcsUyxxLE4saCx3LEIsQyxkLHlnLGUseCx6aixzcSxELEYsRXEsZixKcCxtLHUsRWssQlMsVWssb3IsVXEsbVMsSVcsWCxQcCxaLEtKLFFTKXtmb3IoS0o9KFVxPXVuZGVmaW5lZCxYPShaPTE1LDIpLGZhbHNlKTs7KXRyeXtpZihaPT01NClicmVhaztlbHNlIGlmKFo9PTgxKW09bS5zbGljZSgwLDFFNiksck0oMjA3LFtdLHRoaXMsMTk3KSxKZChbXSwyMDcsdGhpcywzNiksWj0xMztlbHNlIGlmKFo9PTczKVo9bS5sZW5ndGg+ND85MToyMztlbHNlIGlmKFo9PTUwKVo9UD09aVE\/OTg6NzQ7ZWxzZSBpZihaPT01OSlYPTgyLGY9aXcoMikuY29uY2F0KE0oMjA3LHRoaXMpKSxmWzFdPShKcD1mWzBdLDYwLShKcCY2MCkrKEpwJi02MSkpLGZbM109KFQ9ZlsxXSxzcT16alswXSwoVCZzcSkrfihUJnNxKSsoVCZ+c3EpLShUfH5zcSkpLGZbNF09KEVrPWZbMV0sTj16alsxXSwxKzIqKEVrJn5OKSsofkVrXk4pKzIqKH5FayZOKSksb3I9dGhpcy5tTShmKSxaPTEwO2Vsc2UgaWYoWj09NzUpeD1mW1NdW3RoaXMuQVRdKDE2KSx4Lmxlbmd0aD09MSYmKHg9IjAiK3gpLG9yKz14LFo9NzY7ZWxzZSBpZihaPT05NylYPTc0LHc9ZygxNzUsdGhpcyksdy5sZW5ndGg+MCYmck0oMjA3LFEody5sZW5ndGgsMikuY29uY2F0KHcpLHRoaXMsNDgpLHJNKDIwNyxRKHRoaXMuQisxPj4xLDEpLHRoaXMsODcpLHJNKDIwNyxRKHRoaXNbaVFdLmxlbmd0aCwxKSx0aGlzKSxDPXRoaXMuVGw\/ZygyNjAsdGhpcyk6dCgzMDEsdGhpcyksQy5sZW5ndGg+MCYmck0oNDg1LFEoQy5sZW5ndGgsMikuY29uY2F0KEMpLHRoaXMsNjQpLFVrPU0oNDg1LHRoaXMpLFVrLmxlbmd0aD40JiZKZChRKFVrLmxlbmd0aCwyKS5jb25jYXQoVWspLDIwNyx0aGlzLDY1KSx2PTAsdi09KGcoMjA3LHRoaXMpLmxlbmd0aHwwKSs1LHYrPShLPU0oMzU4LHRoaXMpLDIwNDgrKEt8LTIwNDgpKSxtPWcoODQsdGhpcyksbS5sZW5ndGg+NCYmKHYtPShVPW0ubGVuZ3RoLDIqKFV8MyktKFUmLTQpLSh+VSYzKSkpLHY+MCYmck0oMjA3LFEodiwyKS5jb25jYXQoaXcodikpLHRoaXMsNTMpLFo9NzM7ZWxzZSBpZihaPT0xNSllPVIsUj15LFo9OTI7ZWxzZSBpZihaPT0yNSlaPVA9PVhtPzM5OjgwO2Vsc2UgaWYoWj09NzQpWj1QPT1ydT80OjM7ZWxzZSBpZihaPT00OSlaPVA9PWNTPzg4Ojc5O2Vsc2UgaWYoWj09MSlaPXU8QlMubGVuZ3RoPzE5OjE0O2Vsc2UgaWYoWj09MTApWj1vcj8xMTo5MztlbHNle2lmKFo9PTIwKXJldHVybiBJVztpZihaPT05MylTPTAsb3I9IiIsWj0yOTtlbHNlIGlmKFo9PTgzKVo9bi5kb25lPzcyOjY5O2Vsc2UgaWYoWj09OTkpWj0xO2Vsc2UgaWYoWj09MTEpb3I9IioiK29yLFo9MjQ7ZWxzZXtpZihaPT02MilyZXR1cm4gSVc7aWYoWj09NjkpcT1uLnZhbHVlLFo9NTI7ZWxzZSBpZihaPT0zNSlYPTMyLEJTPWF0b2IoeWcpLEk9W10sdT1kPTAsWj05OTtlbHNlIGlmKFo9PTMpWj1QPT13TT82NDo0OTtlbHNlIGlmKFo9PTE2KUlbZCsrXT1+KEImMjU1KS1+Qi0gLTI1NisofkJeMjU1KSxCPj49OCxaPTA7ZWxzZSBpZihaPT0zNyluPWgubmV4dCgpLFo9ODM7ZWxzZSBpZihaPT05KVo9ODM7ZWxzZSBpZihaPT00OClaPVM8Zi5sZW5ndGg\/NzU6MjQ7ZWxzZSBpZihaPT0xMylyTSgyMDcsUShtLmxlbmd0aCwyKS5jb25jYXQobSksdGhpcywxNjYpLFo9MjM7ZWxzZSBpZihaPT04OCl7aWYoVz1NKDMzOCx0aGlzKSxGPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJldbU3ltYm9sLml0ZXJhdG9yXSlsPUYuY2FsbChXKTtlbHNlIGlmKHR5cGVvZiBXLmxlbmd0aD09Im51bWJlciIpbD17bmV4dDplRCgwLDcsVyl9O2Vsc2UgdGhyb3cgRXJyb3IoU3RyaW5nKFcpKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO249KGg9bCxoKS5uZXh0KCksWj05fWVsc2UgaWYoWj09NjQpSVc9RWooMjYxLHRoaXMsODAwMSxFWzFdLDIwNDgpLFVxPTIwLFo9Nzk7ZWxzZSBpZihaPT04OSlYPTgyLHB3KFFTLHRoaXMsMTcsODQpLFVxPTU0LFo9Nzk7ZWxzZSBpZihaPT03OSlYPTIsUj1lLFo9MjE7ZWxzZSBpZihaPT0yOSlaPTQ4O2Vsc2UgaWYoWj09OTIpWD04MixQPUVbMF0sWj0yNTtlbHNlIGlmKFo9PTUyKVg9MjcscSgpLFo9Mzc7ZWxzZSBpZihaPT04NylaPVVxIT09dW5kZWZpbmVkPzc5OjU5O2Vsc2UgaWYoWj09NzYpUysrLFo9NDg7ZWxzZSBpZihaPT03MClYPTgyLHhjKDAsODAwMSwyMDQ4LHRoaXMpLFo9Nzk7ZWxzZSBpZihaPT0yMSlVcSE9PXVuZGVmaW5lZD8oWj1VcSxVcT11bmRlZmluZWQpOlo9NTQ7ZWxzZSBpZihaPT0zMylYPTgyLFo9Mzc7ZWxzZSBpZihaPT04MClaPVA9PWhwPzMyOjUwO2Vsc2UgaWYoWj09ODQpdSsrLFo9MTtlbHNlIGlmKFo9PTE0KXRoaXMubHA9SSx0aGlzLmc9dGhpcy5scC5sZW5ndGg8PDMsYShbMCwwLDBdLDczLHRoaXMpLFo9NzA7ZWxzZSBpZihaPT05OClEPUVbMl0semo9USgoTz1NKDIwNyx0aGlzKS5sZW5ndGgsMyooT3wyKS0gLTErfihPfDIpLShPXjIpKSwyKSxZPXRoaXMudSx0aGlzLnU9dGhpcyxaPTk3O2Vsc2UgaWYoWj09NzIpVy5sZW5ndGg9MCxaPTc5O2Vsc2UgaWYoWj09MzIpRVsxXS5wdXNoKHQoMjYwLHRoaXMpLmxlbmd0aCxnKDQ4NSx0aGlzKS5sZW5ndGgsdCg4NCx0aGlzKS5sZW5ndGgsTSgzMDEsdGhpcykubGVuZ3RoLHQoMTY4LHRoaXMpWzBdLGcoMTAxLHRoaXMpLmxlbmd0aCxNKDY0LHRoaXMpLmxlbmd0aCxNKDIwNyx0aGlzKS5sZW5ndGgpLEgoMjYxLHRoaXMsRVsyXSksdGhpcy5OWzQ5NV0mJkVqKDI2MSx0aGlzLDgwMDEsdCg0OTUsdGhpcyksMjA0OCksWj03OTtlbHNlIGlmKFo9PTIzKVg9ODIsdGhpcy51PVksWj04NztlbHNlIGlmKFo9PTM5KXlnPUVbMV0sWj0zNTtlbHNlIGlmKFo9PTkxKVo9bS5sZW5ndGg+MUU2PzgxOjEzO2Vsc2UgaWYoWj09MClJW2QrK109QixaPTg0O2Vsc2UgaWYoWj09MilaPUI+MjU1PzE2OjA7ZWxzZSBpZihaPT00KUVqKDI2MSx0aGlzLEVbMl0sRVsxXSwyMDQ4KSxaPTc5O2Vsc2UgaWYoWj09MTkpQj1CUy5jaGFyQ29kZUF0KHUpLFo9MjtlbHNlIGlmKFo9PTI0KUVxPW9yLHQoMjYwLHRoaXMpLmxlbmd0aD1ELnNoaWZ0KCksZyg0ODUsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSxNKDg0LHRoaXMpLmxlbmd0aD1ELnNoaWZ0KCksTSgzMDEsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSxNKDE2OCx0aGlzKVswXT1ELnNoaWZ0KCksZygxMDEsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSx0KDY0LHRoaXMpLmxlbmd0aD1ELnNoaWZ0KCksTSgyMDcsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSxJVz1FcSxVcT02MixaPTc5O2Vsc2UgaWYoWj09NDQpdGhyb3cgbVM7fX19Y2F0Y2goVGYpe2lmKFg9PShtUz1UZiwyKSl0aHJvdyBUZjtYPT0zMj8oUVM9VGYsWj04OSk6WD09NzQ\/KFVxPTQ0LFo9MjMpOlg9PTgyPyhVcT00NCxaPTc5KTpYPT0yNyYmKFBwPVRmLFo9MzMpfX19KCksVikuejA9ZnVuY3Rpb24oKXtyZXR1cm4gTiQuY2FsbCh0aGlzLDAsNyl9O3ZhciBIUyxWUz0oKFYuZ0I9MCxWKS5PeD0oVi5tTT1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBPay5jYWxsKHRoaXMsMCx5LDEwLFIsRSxsLFUpfSxyLnByb3RvdHlwZVtNMF09WzAsMCwxLDEsMCwxLDFdLFYudlk9ZnVuY3Rpb24oKXtyZXR1cm4gQXAuY2FsbCh0aGlzLDY1LDIwKX0sMCksLy4vKSxuSj1YbS5wb3AuYmluZChyLnByb3RvdHlwZVtocF0pLGVYPWZ1bmN0aW9uKFIseSl7cmV0dXJuKHk9cSQoMzcsOCwia3MiLG51bGwsImVycm9yIikpJiZSLmV2YWwoeS5jcmVhdGVTY3JpcHQoIjEiKSk9PT0xP2Z1bmN0aW9uKEUpe3JldHVybiB5LmNyZWF0ZVNjcmlwdChFKX06ZnVuY3Rpb24oRSl7cmV0dXJuIiIrRX19KChIUz12Uyg4MCw4OSwoVlNbci5wcm90b3R5cGUuQVRdPW5KLHtnZXQ6bkp9KSxyLnByb3RvdHlwZS5oKSxyLnByb3RvdHlwZS5kQj12b2lkIDAsYykpOygoeVM9Yy5rbml0c2FpbHx8KGMua25pdHNhaWw9e30pLHlTLm0pPjQwfHwoeVMubT00MSx5Uy5rcz1mdyx5Uy5hPWpEKSx5UykuWmVVXz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe2lmKCFbKFk9bmV3IHIoTyxSLHksbCx2LFUpLHVuZGVmaW5lZCldPT0wKXJldHVybltmdW5jdGlvbihLKXtyZXR1cm4gSXIoMjQsZmFsc2UsSyxZKX0sZnVuY3Rpb24oSyl7WS52WShLKX1dfTt9KS5jYWxsKHRoaXMpOyddLmpvaW4oJ1xuJykpKTt9KS5jYWxsKHRoaXMpOzwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9IklyWXJadEpmVHB6dEpScXkyLTRVSXciPihmdW5jdGlvbigpe3ZhciByPScxJzt2YXIgY2U9MzA7dmFyIHNjdG09ZmFsc2U7dmFyIHA9J1plVW1EQXk2T2xWd3VQNDNBTnRRd3FFTVNOYllVUFI1QUFEMlpMWmlPazZ5ay9yNlk2Y3REckhybVhVc1lsU2JWL2FTYkFhdjVBV25nNUJDZnpkMjhxWS9LWTZGdXhWbjVxODBac1Ywc2ZpdWYyaXFHYlVTVXgzanBlOWtRR2FDaXFvdlZBWlF3N2dzN2hpeVY0bVFoSUQrV2FlbnBGK25uSWtiMWQvYTI3aUdldllVcER5MVRkeGwyVUszZWJIOUE3VUZZUmovWEpPWk5yQXd2bFYvNUI0MUdrajJwVzZ2bzRqbHg0dnFTWDJ6Yk5KZUt1bXJhK3NkRC9SQ3JTdVBYajcyQlJXVEszR0x3L1ZHL0JubkpBWmFNd0lhcmpFMlgrVFhRR2V1aGpldXB3bDdGZ05ZZWpQZiszRk90cWpwVWpFSUU4b0IybEpkWmYxRXRESGVnSWk0WnVlOWlZbVZRRDZwZjJLdkhwR0k3T3RWQ2hwU1VpSy9nQXVLUERwQU5tWlkxMStxVTIyd2RuTW5nbFJtakVWdlowMWxnWEZMRklTWEk2eDZtd2ROKzI1QzZaQmZ1ZTRybytpY3Z0SVl2N3hGeE1WNUNGOGpLVDVjSE1HYTJUTFYzdEdsY2kwVlA1WUwzRk1LcVFGa1ZkNDJMOHM5ZXpUNnlaNHFjbTYvMDZHMlNtcjJwZHFqU0MzRStTVmlZNi9ZNWZWc04vMk1qVEd2WG5lZGNkQ211bE9MeTdzWGtPZ1I5NkdoMHUvcWFKWVhTMUl4Yzl5KzM1S0cwU1Jqdkh6UTd3c3B6dzNYTFpHRXJXY2tIN2pJeHlGQyt1bUNZbmdVdDFOTVkwSjc1N1A3blNRakNaclFjZ2lPNUlKMGJUZS8rK0RmcFJqbGJwVzN1TFBWei9TVk1GUGpVVlJUS3MvcG1Xb3AreDJFUng1dFhkODlvRVg4bmt1WXRLWk5TR1dwbFJqRStpYkZIRFpsN0tzZHFXT2U4QnBDeGFMS0tMREVwY2V0YVFiK1FNQllFTldzVXUxbDV0SUU2RHJVWnFEYzUxUGlYd21jOTAwQ1l0YUJBWSt6MHVjNWE2NEVyWGk5dnRuN2pVaUhrcW9haEMrTTZVcVlISWQyV0l1UnAyVnR3VURnMUFFNGNMelZrM240dGtoTFQ5eFNjY2RmYjZLWVQ3akhGcEtPT2RCWjkxZWFVc2xuamJacit2d3RBU2d2M01idmdEcldJRmlsbFJGL215QUJHQmxDcHBwaTlJalRIeGg5c2xveWZUVEpPM2I3QkFTcUh2TmNmR3owajgzclk4S01NaURYS21sUFF4RG5WQ2JRUXFPL3RBZ1pEekV2SGVzV3hrVXVLRGluaVAydGNONWZsamdqbnJjdVdMU0J5V2g0YlRsQlFIY2lVcnpqVW0rWDNUMUZ6VWpERHhVbGk4SlBhZUI4VHNaMm12ZEhZeW03N0xQUmdsNldNNjFQbU5YS0QvenpEczB3Y2FKTTR3WnNIMDlTeWNsUlJmUm5UL1U2MXBXWWRPdUFERXBLZVlqUGpOWWxRb0l3aWdEaEJyR0F0cHVDRmQ1b2ZhSFJRK01jYnl3WFZnejZkeDArUjhDSk54Z0VJMlNwdTg5cEsrWTEwRENKenRnT01URWVaejdhbzR1VG0yUzhVN0RCYVNmbDVnU0QyRWVZaVJYZmFrSDVNUmdqYVhWQ0R5UDNRa1BnMyt3UTdvREhSN3hNc0FOYk13MDYzYWRQeUZhTWIxY0hrQmtWaXRZb1AzZ2xCSmFMRUYrbVJDdmE4bnYyUG11UmRESjhnVHQ4cklaZ3VNMGJCT1h4ZkpGR25id2xXYVB1MGJNb3E2L3h6M2RJOTF0SS9jQU1IQVU3M1FlOWdLRGpGczlJMUxSL2NmVXIwUVBGVHNXeml0d29McUJmNWNTc0ZFNCtETUk3cjJQY3QzeGd2RkMyY2lRbHZOMEZHWUo4SWxScForVThpQitpMno3b1dPOUtndk9oZVBtTVpNcW8zNjVxcEYxYzJBTysvT3ZvaDFzeW4rMTVBYWw5R01yb1lHQTg0TENFMUxleUJoOVc3MW85emVCM000WEgrM0F4RnVZdUliTmNGVjRyUUEvcEwzam1iWURKc0JhZldPaHhmOGNhaDNkYjY0SE5MeS9ycjZ1ZUduRWxpcW90QVRJWm1ldmxTSlMvbFFoa3dPZ1g0V0lDOE9aTHFDZFhnRG9MOHgxK2lUVWVuT2tPR3hCV2hvYkZjZ0dxWnlaU2JTUmRnRGI1Z0h6QU1uZ1p0K2cxNENpMjQrRDFCbk1VWHdvbWJHU3RUbk53ZmdCakZlMURCNW9UQVY0anl5TGpFMXd4VGRPRkM5UUZ0Y3h0N2dkSXZLL1h3Z2EzeFJJYjgyS2xCQURncjZNUkJPVWhNQkQ2QjBuM1AvNTFJUFR6Q3BrS1V3UURXYkhJbzdwMVJ2L2ZSNG5hR1p1b0hLQ2Z5N21yaTFLZkhtVnJMUENQWDBoMXZWbU5IU0RPdk5mZ3Q2enZWcEUvc1dGUU1iZ2hCWlVYNlVwa1pVeVdmb3duWHhVczVodUpLVit2eURQOGdjVVlaaG5pOVlESmt1M1lsbXpTcnBqZUcwOW4waXMzZUpHK0JqeUxhc3lBVUwwaUFOREQvUGFVYmdZRWJGczJKNEZ0NXFkWlhUWDEzMFJXZUQ5cVZ5Rkhrc2hoZ2dCUUNOQzdJSHB2bVlXMkhvbnNSYzlHNFIzdWowSG5EU3U2d3FSSDJ4ZUo2TXRqL3lnclE5VUVaU0pUTDN1RGcwMzB4THNqUjdCUktoVXZDci9XaGl6WGhmZHNGZ29nam0xc2FHMENDYTA0U3RaTUpCYWVjSDVmYk1PbGVqSXh1VHlqSjY4NlZSZG9FdVhvRFc0Y1NyaDVBaXk5Rm5OMmFiYnFrK1ROUHVGMmk5UEg0d05CWWRwNHMva01rUmFBNGV5dUdXcXgxczFaL3cveXFHb1FFZW1UbWV2ZC82SHhmMGtvRjh1dnJMN0ZqRUNKQXdRN24vczZCY01pRU8vTjdMRTRmc2UyN3EzT3RyR3J5cldiVHVJekExUWNTSkx4ZFJVakVBU1hCZFJYVzBielJFaEdCRDhPbGhFcHpVNUZxdElaNS82V0ZUaXd6SHhKTHU4RnJlUElMeUU0eDdadkpBdjUvdlQzYXN4SlNhTnFsYnhqeTNha2gxVjhFeUxnK2ZhUURNM1N0ZUJkVnd0T2R1cnRBdzFDVCtkazNlay90THZlak1yVGE3NWl6U2xDL2w5N1ZVbC9WeUtLdWdpZWRaaHI0KzUxMWJQellPMkhoY3pkK0lIUTBIaU9oZTAvaW0zUEFFQjhqRHRwZmJmeGZOUmhCWkJrbmxJMUFGclNtZFV1bmc2NmJYM25JMjFDblVSN3UxeUJod29RZkZTa0M4NXVtS21nQ3plbW9vQWFlRVdPTjF3SU1PUEphTWZBV282dXMzcklua1hUQXdETlV0SERYcW9vUGJ1Z3BnbFc2Wk80YXNsN3FTVVU2b0oyRUt6eUYrUE5VTHgyUW5vaUI4VWJvem5la1drK0RJaS9IcnhCYU0xT01PbDlMMXRzN3ZqVm5GZTgreEVuTCtpZ0dUZXFPN1RjOUtoaWVEandoSXA5MTdlZGtRLzZWQ1ZKSjR6TDFKUThxb3loSGRYeGozK1R1ekpnRG92aEJ5Y3FPVC9rb09JR1ErQjMvV3lLTm1MT0l4dTVCKzRCVzZBSmowTVBHekdBbGczMmR6b3RHUGFRaGppeExXQjRQTnRoT0IrV1pzbVloTlFMdDhaRENFZWdzaXpYdlkyQ3B4ZUt4aDZTTWJkQ2IvM21Bazk2VVZLVG85bUlmbCtnczN2RGE5S09DTi82azVXNVRxdWd0QUlxQU5TYVZWZmJVckxkL1RQZW5xR3ExMEIvYVBQNnR0Nk5XVDRGYzJsV0MvS3dLajJmL0pHRGVlaWpCNjlGajJmS3FqNzhDOU1qTTFuSVV0OXViV01UQTdnR055QkFDM0Nzb2dpMko5RHoyOTlOU0VqaFRNbENjTzA4RXB6dUp4UVFsalRDcEd5bnkrMTBVTjhQM29yQ20zRVVSOXMvYTdjU3JyYVNnTEk4TlAyL3YydDlGMGMxWVRRK3BFTHVhR05QOFBYUjdWN01oVzVZbWNSL2VuemhoQUR6Mzh3a0pWVFhJK29rek9CRk4vUldacWJKTHV6YkcwS2lZN3BXM1grTTJrNmQ2NUo0eTc5SWtwSHVyMFdWMGg2ZUl5Y0RpRVF0Y1ZpZDlRZVJvdExvOGdwZVFZZ2tUczlFR3AvYVlPYlNsazRTK0lRVmh2NzAveHgrMFlheGwzWWVqaWtEWCtqL1RiWVUzVHMwanZQK0dKV3ZDenFFU2prcURoRzVqY2laMDdiR1I3dC9hMlpzS3JEL0MwUmsraCttbkRpVk45K1NPRUo4YituUFZXOHM0a3BUMUZzTENNWjF1d0FYYnk4L3owMjljTWJucjBNUnUvWnQvZ3Bmb1RibVpZVXM1L2c5c2VsU3NGcUwydXZyMzl0am10ZWozdUsvTnJyR3VlN2RkUjNYeHdxZEJBaVp4QUVhVU94aWxBVnhnSWZyOVBoTERJMjE4ZHlrdGFrZDZqdFpXTE5idk5ZbWs0R3o2bkw1bmdUL3lGNDRQSTNtTkYzREtld1F2blczTU5KSjFPeloydHhRcmxRa3BNK0ZSS0g0TE9tN29teHk2SGt6Wi9nejNVbmZ6cEQ0QXUvUGNRU0F5UXNma2kxbXd3STJKVHNvVlAvZEV4ZVRHVithbm9JSWhvbkZhQ1NtNzc2OXlZUjltVGFWREhuWDFtR0Fud2cyUWRWNk8xUkNsdW45OE1JQS83U3pZVVYyTE1iK0s4YityNU84ZWdKZUxudW02OTd3azJVai8vMlp5UmlsdDJ6NXNmQUt6RmxjZnBSRWZCWlF3b3BpQ1NXRHJiSjY5dmNmVzBqM2QxMXlmVVJYYzljVmduQ2NuN1R5bmJLZnQvSlN5S21yb1RpVU5nMldSOVVDMkJxS082aTF2WC9TUjJJTGoxN1dDMlBxcHpyQ1FvLzNUTEFEVzRGUWlZWlNoZWRNb3VtSkdabXJNSXhPeU8yZzBkZC85bjFmNmhEL0p1RVkyQ0lJSkRibXVSYU9CQ2JkSFcvVWJxekpZaVBvN1N2d0tCM2pEMlNKbG9aQm1BZUN0a0xVb2dzbHV2dFhTdzZjSUFJQTFRcURUbnlaWW5rc0xXelRubXBGbTNDN3oyTzM3NityaHd6YTV3cXlReitUQkMraG1QNGNqSlpxZlllMUpWRnZhNEduK3dnQWFocktZNEd1Q0grMThGY3ZvQUhiZlV2Y20ydmgyY0hYZExaa0syNG1LWWFtVGw1bFNkNGQzb0xLTzJNK3diMnExSmdwbndIVzQveE5LNFRvN3BJU2c4WGxmbnM3cUZEa0hpZUJiQUxyVjBER1R3V1ZoVGlhcEdxbVpXYmtjQmdSdjFCdVZpYzRsUk9hVFl0Z2k1YllUVUo4UC96bHRtUHN3d0ZqQ1pLN2doTHl0MWY5Ri9GWDlGeE9mY1Btc2U0QURrME4vUUxoQjRTV1g3Y1pzZUs3bVJzeXZweDI1SnB4aGtaMjhKQ1J3MzVZTEZTejZXaEYxbm12Q2JaZktiUWcvWUxXQU4wbXZiMzRKUUJXS3BUdXlLM3B5R3J3aE1rbncvV1F5OHJFRjRMSUlKa2hPdlVleHVDd3A0U1hpUjVMTkZkMGZOVVc3eGlMMGlSMmpUZDBiU3dWZ3FxNHlMcmJDVE42Q0ExV0YzY0N5SXZwVVhCZmMvbXcvYWQwUi9UZytIYkRZL1c5cHQvL1VtbUYySURyNHl1NVVkcjUxTmoraDBSdExwUm5qTGhnSlJYSTFHY25PVXRNY1ZFL3o5Yk8xWm5VZ3haRGYrb2U3ajZJWVgrUFpyT3UxZ0tGT3VFOWpQR1hoQmJLek9PRWZFbnZyK041NDRObHhUa0hPamRhTlVwcGFvc3BTWHMxaTNGcUR4VFVMMzdCL0hUN0E2QnVtNnFPZmtpQy9HY1NRK2hTOVJONzJ1RWN6MTgrQ3c0bXNMYkcyay91QVI1eWRtakNhMVhkMWlSNWdVRm5mTFJzM2JzZWZBNGxTMmRqeW1PSmVEMUVoVG4zMjJWcjREcXU5QVAvR29PWDhiT0o3Y01mNjRyRlVQVE1Id2E1RlJ3VXpWTTJZQ3BORHJ6Q2pvUTdzcnBDVzdnMXRIejF2Nno5UEVwL05oOW9qMlBkZjZuTjBDc1NscHpZM043V0xZWVBwalFnajRiSTVLeEJDS0NBUEQ5ZlRPSXltRUpydlEzaHRKK3BmVXhRYlUxbEdwYXhZN29uYmdMYk80L1NIUXhyS2ptZ1NZcnpqdWdzaDlBYklBTHRzQmo0VjBpYkxpN1VUR0oxcUVCMTJOb0kxQTluNGtOMkczdWVOR0l2d2huaWgxZHdlTS9kL2p6ZDB3eUQvcnRWNUVCcktPQ1dJWFc5VTVVUGxGREdicFZNMk1aK3kwU1RRZVZkWVZrNGNsdHR6dUdxRmpMUnZWWW5VL2EwZFEranZHa01HTlZMNnk5aHR0L3dPNW9LMXJpSVg2cWVROU5hNEhWVVpESEQxenZWRUNBaWQ3N3YzZkd0RFRwNU1VMytnOHNXdWtkWGUrbFozOVdqMHYwKytsNTNObUNPdDRnbmRkWHlZaUM4eW9obVU2R0pQV0R0Ykp0aVNQRmlXUW0vZVJTcmVQbFVwS0lsOVA2Z1RNK3E1bjJVRDNBUmhDT0w2SGJMWVVFMjRUTmlDcTZpSzB4WG1FdCszUG5LYWw2YVR4TFRPNGRpVDE4TkJwNmRnQmc4R1dUaUZOclgyeGhBc3NsWXRHWkVvb25qWWIwZWlHeC9MZTZjR25EOGR5NmlTcTA2Q1pFTmxOODVEYXRxM0tWS2E1U0J5SnhSUUo0eHZwVjRwcXBvZVEvaTlyVDRUTnBMNGhMb0Z1cXVXVFpvcWt2bTRya0NxZkdhamRNYzM0VG5CZ3Evbk1UZ1ZEWkplY2VoUEhGaE4yR1dFSUliclJ5MHh2VDdLS1NSaGREUWFwTUthQWh2b2czaHNwM1Q1L2dXL0lTYnpFSXMwL0ZZY1B4RUhrN3ZBTitPeW13QjIrcjd1SWQwUThrNEo5WkhYQU9VQ2FQQXF6eWZWb0IyOG1YSlNhNE1peGdMOFc2YTlCNmVQQUZjd3o0Vjg4akFNYi9YZ3BBMGprd0o0VThpaENYV2ZnbzhWbGVqODMxSk1xVDdGbkZmTm9XZW50V2E0dCtrUENxUW9xZS9GK3NnYVdkUGtlY25Fb1hKbHZoTlYxeHJwaVdVK2lRUmFIUXVmNldNeC9tTFl2aDNXaEFtb0hhZkd1WFluT3NTaTdjcDlacmxkUnFuVGFydVczU1ltMHRrNGo4SUxxckJxVHJGRkNOYlBkYTB1WmpUcjNvODZVaTZNU2FjWG1kUFZVUGtXeG5idkhXYlhWcXhmR3Y4cTU0WFhwT3ozakRrcnF6RXhRYkFyL3lSbURTZWF3VG5RbnVxOWNpdjZ0VmZ1YVVWdWpmcHFvRUI5UXFEZEEwdyswRldNb01CMkRSYkhCYVhTZmhQYUlyZzYxWmhJVm1lOTVmckFTSksvZUdDclR1SnJ1OXBrc3NyeVNQRkFJZFhZb3FwNGljM2ZkYStxY053UXk5WERQN2lvWDNVOG9OakFGYlVGMmwva1FDYjBYemZnbzU0Zys3NVhWZnRYOEZUMTdYS05sQVkyT2JaRDZNQlNLdXRsQ3ZZTGVJdm5mUzFhbEVPbDVmaE83MUh3ZVhqSFNsZC9hcjBtZFkwcDRWdmMwb08xZm5VOUFEeGQ4SVFoU2liMUUxT0pEZkw4V3NIbVV3eWlyTUpjWUpmWkxWRkY5Y0lqNXltdG11a2JnMExvQms5YmJ5bEdseTZLaWg1UWx5ZzI2eWdkaE96RGVKUmlTbWJidmV1V3ZobnFSNkQzcE1OeU1kUVhJU095VVd5YWlDTCtFczRmR005SU1IMUdIZklSMzFIQk5aRTA5SjQ0aE5Mbnl4TTg0VUhVa2s5eWgxRU1ScjBpUC9QR2FjemZXekR5WGl1MXBDYWo0SGQrR1hLaWQ5alcvUTVnNnl5bHVKa09nWUVVMW9HSEpDUTU5NHFRSm5UOHZ1Vm9GSXdJTnE5L2NwU2I4Rm1HeXE1Ykg2blRnUmtsb3p1NGRwd3RMY2dxMzUzV2pOZVh0clRzeGVVd2szb3hYT1l6cVdoS1pUakRuNS9UQW4rMlNBTzhCQzV2ZXd5aTFjdisxZWRMWUEzWU9iWUJZYXF3b0V1Umc4bzdhQjJsQkg1cWhLVmt4a2N5K1J1Y3V3R2FPOVQ1NEd0bTFhTHVTUWdIcFErRlREZ2VUd3NjY1gyM1EyYUh1RUVZWWlCM0tZTWJyaUp4OXpnREQ1ZlU4bkpiTGhKVXJ3TFhtMHE0eE1ocGZ0UnNSbVI1L0NKc0tDYkdHalU1QU1zelIySUhibndoQUpId1N4N2V3b2dJaFM2MkJsQUlFL09haE1ENmVyNnNnM0dNNE8rYkROUnhpMXUxZHRpQnRyTWpvTmo5TXd4SHE1eHRMS3R0eUlwMUNONWNnZ2lwRlphMzZ2a1Vld1Erbis3R3A0UDNOam9hQjVaSE96SnBHTkc5Q3prT3hQUU10VnRnNytsNEVNVTNwQnk0L2J4MW9BYTlCY25jWHBQMlJZTitybU9qZG1aSk0rNjgxbzk5QlhxYjR4VDVPZ1cveHZiZll4MFkxYllyN0lhYXVDeU9EVHdhYlY4L0xaZUlSQXYzTGdmYWJSZWhTblZkdHhpVFc1MWpqSmpDNzVIcnJ0bWdQU0VzdWJVeVNlUlpJejQxZ3RxTExQRS9qdFk3bm9YUy96Vm0rQXZUSWM0SURpYnFGYWlWUTZNbVRDZjZ0VHVrK0w0TUl6Qk5FdWtUdXcra2orT3JpUWFHNk54N0FlVGFmTEwyM3RCNTEvRjdFNlpodkM1QjFKdlY0NnVyVmt6cjZGaXBJdXZrK1dHYk02M1RoMFRKRE5vNnR1a2JHRDBLV043cVFKTjIrT3RDYnFQc1VIamlNUll0dEQzaTZzOTJ2S2NLTDdCZEd6WG9ITUFJNnBxMVRlZTA2NERiMHdzVzhsSjBlM2E4NDRyV2NQQ3dsUzNkamFwU2tQV0VQb1BLaS94RzdrdzgzeFBpeEtlMkhsamxMYmMzN2t2TFdyTXFia01mZk9LMXhYaHFtc0JjeU9UaDhhRmtiVnVEV1dIbUYzNEV5RHMxVUw3MkJ4bkU2d3ZpdlVFQWllY1dhL1FkdGxvRnY5eE5nWUxyMyt2Wi9VeHppVG5ISXNDeGRYa21HY2IwY0FBZUhxd3hjamM3ZE4zbkJ0WlNGVzVIaUJYSWxNTys3eG5IdDNKSk9UbHZ1VTg4Tzh2ZlJCWlB0aTZsOTB3K1U4L282YlhMc3krQ1RadlhTWnVzZWlCZFpnWXVJR2k1MFB0TUN4dkROUE9RNnZvWW9iSStqZitTZXJLRjJPMTJVdWtMVk5aYjRHTnlXSnpmVktPRGpjT3p6RloxMEdCMzBjK0lnaDN4Q0RYNUVCT21Zci9Nd2tEMXQ5WGNRazRTRVgxQ3NEdkkzc3BSaW11Z0lkVkEyOUxEUFdBZmoreUFGVGI5NEN0RG1Db2xKbk9CMForQzB1V3FrT001a1VhRUJ5Q0RGeVhJeWpiK01YWnF6NDVYaWJCcWFKMGZQV0pzREl4TzBacnczVXJsMUtDd2ZVczBjU0htZWU1c1dxOWhZNytlcmUxSnVMQkRUTDVZZ1dEcHQ1VHRoRHhpUktkbkUvSjJkWW1aZmhHQmUwQU05TUtKNU5GUkVXbFZ5ZEVpcGF5RnRiTUNCdTVyZmlPMlJiQ1lrdWlHd3g5ZzJaMUxIbWo2ZjQ1SGhQSXRLdEJqNW9GZlA1TG01bkVQRmVjUTQ3d3pxVVp0aWo4MDBhQS9nK2F0ak5UbTRxTHh4TDNaaWNhdGNjQ3BmcHljbEw2WXFTK1E4WC9tdUVadWZTUUdlMk92T2d6WTBiZHRzdDNobE4rTW1XYmZ1Vlo3elZkcXN6ZmdDZUlzVzdhbFo0eXBURUhaYVYwL3c3cEdEcUphT3pNR2Y4aGtzK2pQSkJNMkJuL3ppSjgwRW9tSm1nc3pMUjRVaUh0S3dOaFpaMG9WOEFHSy93ckFuMHg5YUswQmUzdGhMWHVla24wNlhVUzVsUmo5cjZXVDJad2dnQ3V1dnJQQjhhVnhBWE5hWlJrN2VtUlIwUmJrcmRUcW1tcmZhbnVHbzQvNElTdW4zcFRWUW1jcHBmd0kwcExIalFmbzE2QkV0UkF1Yyt2aksvaEJPOXkycE9pc1U2YURFS0NTa20vQ1dacTQ5SzhiT1VtL3pTbUpmNWl0OEpPQkRtRFVRNkdRMCs0SUxhR0k4dkExQnFvQ3EvTFlzVHQ5Q1huTmhka2trVVZlTUdBU25xN3BVSVBkREJRcWMvUVhFUjVoZnE2ODVFTVpwQ2wxblk0eThFSHJEcHp2OTJhVmc1aDludDR2VzU3MDMzb0R2YUdRb0pDdWpkZmU3cDhzN29acEdUa2ZCelJRZDFwcVlVWXIrdmtvRyt4dkU3ZE5kcUYrSHU0TVVVVnBNandEY05uNVI4UjZ1NlM4T2w3L1hQTjF6NUtBa0FtZ0VVOGErOFJvUzEzdWVZTjBtYzZLSFlNQjFDclVkNnpqeC9YYzFlc3Z3UzByN2hxazB0a2JldmlpUVhnQ0F1dDg1WWd5d2NSb1AzUFpuM3R0b3drVlJDbGcyYncydERneWlUV2pyZ2VSMHVqY1RFN0JYcWhkRzZXU04rM0gyUXVHUUMvbXltZFZjOGJMQjFUTUM1ZkpqK29iNituU2ZLdmdmd0RrZEtXRDVTeGhlSTRLOUtjNVVkRDFkTVhaY096RlFOR2t3ay82eHlldFQva3JlUm9wZkgwY3V5WHF0SExHWnlVVmEvLzZFTGFqbWRDRkxmQ0RVcnBSRjhpNXFHUWFMU2dpRFRGam04MnZLZ2RPY3dVOEY5M3NOWTNGSFQ2RGNSQUNHakgxVWJkSWNuQXByRzEwS0NRczZ3NVpKNjhwRk16alZLR2Q3WDhnaVFySnlJUmZLS08wWTk4blkwZnZSWFgvVUZlcEJOZVorM1MzUEJnR2VDTys4WVJMNmptdjJVMFlUNlpqUjhhZ2Y4OEoyNjFFajk4ZlZEelp3OGVQNjN2YTlxVWo5WlR5c0tBY2dRVmJ5NktFb1lMRHRwS2wydmw2aG91WmZTQ3JqcmUvQ3pKbzJTaEpXeWExbWVlRnRyaXVTMHFSVm8yMmxxdjY1a2tmKzVEM2hkcmtWbVR3Tldtd04zTWNkV1NQdDNGZmVQSlRYWGVyYzFoSHNZajNBSlFkbzl0MG5nMEhiVlJXNk5CcHFOMTR0YS9mK1RiQTdmbWVjSldQNkVpTlVsV2FvQ01WY202UEhYbGdQd0JLWDVDSFVLMUVJL0d5azNhTkhSZldvZGdieEQxUEZxREpwV09yQVJaZ0o2WGV4enc3SUVZK1lrTmxSK2VZVWNPUnVLUWlWSThzdUVaUldma2dYMDJDazJRN0c1ZTFNVHB6SGZ3b1UzaTl1OHpEUTYxTnBqYjA4MUVUenBpc2RHWS9KSXZ6STgwYWFaR3htRXIrdFhjWndNMytSY2VTeVd4bmhJUjU3Unp6NzRESlF3SWZDQjF6L2pKcnc5bENwdjM1Y0hVT0tiOFUrSzgzclpsc2k5Yit2eWwvNFdiOGVseHIrNzdwZ0p1RWFVSUI0SjZlQzNSd1A0bWU1czR2QzhoUFlsYVF6MVRGRDdxRDdjVnI0RDlrSHlOdGQwSDlDaTB1RllMRGROSkJtSnlhNTdxNEJxR3ZxREs2UVFkVEFuTElmRGJHdjBQQk5haW1VRWJEMFpCeWRzVjBPMG5UUENaTkJOUWVLaER6c296T1lEMzBuNkFKWDAwQ1FKSEk5bW82L3ZScU01cWZ5c2MzcDcreURURnl5eXJDNy9NWSsyT3ZDOHdTR0FqclZrYWVCVEdUekd2aGhNUzlyTHBXS2l4TDlKOEJ3Uk5tZ2FBWERQK3FvQXd1anc2RUUwbEFzekVWQjduaSt3enhFVmMzNkw1KzFhTDloeWNwYlBRaWV1TGYrOWIrNnNBM0VYLzd6WE12SDlTVzRtTzFKZHFGRTJrR1ljV2xWT1FiZ2pxYTFkLzg4dlRYSHZ5L1lQa09lZzFFREVPTlpibUhMU1U1ZGtTWTBtZG1TQ2J2NXlJZ1BsemlRdkljYUl1cTNrMVZqWXAyazVVbkY3amVxcHVUa05TV2VWQ3VzMkIyeW80WDV6ZGkvZXVjd0VvM2NJdVBWWE4yR0JFRFdkWktGNW1mWGR4L2VBY21GTlVNYVRSQmFLS0ZyTUV0UnFXMUw3OStWYlpmTkhYQ0ZGbStGbTBsQXRXd2dHUkpuM2I1czI3WXNESysvdVhCYkUyMFc1SkFUYVJETzBaa2ZzSExXYTY3TnBZc3lHSzJNQXBJNVNKWVpDelBmMmNyc3AvaUx1TGNybTFySi9nOEZVdXZ3QVFLS2UrbmJXd1prQ0JzTFhSemNzTGJ0OTUway83dHI0MTBnaEltOE05dHhMYWd6LzZvT0Q4YUlJV0F4aFRXRjFTblJCS1BoY3E4TmlpMWY1aGxNeno1OEk3N0NwRHoyTmVLZTlmOStUR2tLZ29rMlhiRlkrV1lPbzEzQ2E0VHArdkI5dTF5eVNhL0g5ZEJKdXBxWmY4NDZhMjFUWjhQeFRnZTVEekpBZTNvS2E2dUFud3czck5aOE12eTk3Q0RzVFBXT0JPQmpFYXpvUjU4OTR0SnN4eTk1Z1M1M1pnT1RwcTJMUVVxZTFldjZpRlZZWHR3S2lvdWttTmRWQlVvKys5RG5vV3l4SlM3TEQveXB1clpoSGZubVNJbjJpZDlLanhTZHZSN0N5Vk9aLytmdlpuWHVmQ1d4a1Awc3BTVERUOVJnbDY1OXAyTjBDREtRV0JoNStWcGk1VUJFQWhDckJqc3lmUUZlSldTT0dkMklGQ0pBUit5ME5LKzJtbGdPaVNZeGN1M0pXS0dualp2RGtkZ0Zva3VUTEFNODlMZ2wveS9BMDdhWFJwR2xrSzlGeUtScDJKQ3BITms0UW93NXMrTnNGckhmckxscklpUVcyanVKVld4UDRJUVlWcHhIMHZsUjdrRktobFlhdldmbTBlUDZ2SjBQd0d3bCtpM1F1MlNBL2VsQlhRWW9tOFNvTDM3bEFaTGFpVThucythVVZrQ2M3SVlGclMzdHBaZVpEbzV0UG1NOW1zeGU2ZHRlTTJScDNiemxpdVBFUVVtQmdwb3hvenFVUCt6L0NldUlaaERhWkNRVUs3ZjIwMXN6TE9SUSsybExWbm9pdHdRWUZsTGJzazNlcGpGdWxnbmtDUTFPY205YWNmL1k1WlNWNGNNdWhjWGQ3M0RGajlFWUxvVmZoc21UaTZOMjQ1L01LZUJxVVd6RjlBdU5vWEozUDRlN1ZEaUhIbXEvSEwrT1N1bWZZSWVUODhEL3I5V2luTlZqMm9UM3lLTlZVbklJMUtEOXJ4aDdwWmY2RjgrSm9GLzFKTVZnMFIyUU04aFFQMGpNaXZ2bEdDMTZCbXl6azNDa25sbkUySTlVeVhkV2RUcHZ4b0FiczVJa0ZXSUg3UWtrWTlMVVhTS0hXT0JxaDV5bjhaV1BGWWFXL2d0Q0VSUHk2VS9yYVg0eklydXh2UFFPRjZTbW1oZy9IVHRsL2p5MW9QYTBHNVUrVHFiK2Z6bXh0R2FncjhhekZZTzYxS2Z6REg3SUloSFZNMm95VGtPdWx5UVU2a0tIZER6Wm1pTVUyTk9UUWd4RUVRS0p2NWQvVExVWkh5azBRdVB0YU41NkFKZ2M4b3RmZ2pkblBJcHhYTjJOYVIzL1ZqTm9jNXZ3TGdMUlBvTVBnY21tVEdEcUVCY1NoVGlKc0Q2KytMQk9VTFZvMmpPTldwZjF3OFNMUXBld3REeENzRENSazU5ekFjNEtpWTAzTkFqRisyb2RpRE8wMklTMk1OSFZkbEFqdzBaM2NOVFdFdG9rNzZzdGt6SStTMzJnNVNTMXJtQTQxSWU0bHZVc3lTeE5vV2lwYzNiYkh5RnZJZ0lqajFVS1JZVVdUamtUUTRJVFg3RVdNSEFXaCtCanQyVmpPQnFWbXFRZzhPTTdHV0JwbGtRbU1mUVRZdGZpcjh4ZE1vWEpMTHdDeFpqYThxaE1lYmV0S1ZsZU5sZjFUbnhzeWpWVHFkMTBuWkg1ZkNhQzd3VG9RUVpwZ3VpUk5ONGtNaVJkTThKdHVYd04vSGRkZFlwdE91OEJzWk5pV2FPVWloUUw1S1VLLzJsa1MxWG8yVlNrYjZiVnA5NmExTlBQSkkrNUc3dFpLYWNSQ2tZd2kyYkZieEVId2MzTTNGQXZhMHdzSEpKdTYxY21PVzdNMi9lcVFlNGdiR0pCVjJ6bzZHSzhHQUxUYmkyazZsKzFHenBRaDd4MlNnR1ZCNFVmM2JrbXcwVGVldVhLN2tZMmRRcFpzdkRTZW1UeGROamVDbExvcFNqcDRFUkZZSnZHUEZwWGlQSDU2WEVJaFc2Z2J5MldycmZCT0g3OUF6ZkoraHlweEZEQVRBY0M3NUVWeUZWV2lQRyt5TDF4ZFA5SE1LY3Zsc0hEcUN3KzRJc2VJUnU2MjZ4Y25paXZuWnRLQ1ArVHl1WkNjUUJrZ1UzSFJjMFIzUkhZeHhhQlIzVWFSYzcxWVptV251OXJyWXh2WHdmbXNUMWliZCtTaWsreGZ5UXhvS3B3T1JrWUVwUFhYRXFNU0gvU24zZmxiNTNpZllONkR4cTNNZGZCOUFaNERxeXJNajFvblI3eUFIZUlyWHZ2d2pnZWczak55Uy9FajNRYU5ydUtETWptcVZsN2xVaVBzaGErQlYyMDZXVWQ0di9ISVg4eHQvaWEwQkxZeDV0QklwSHBoL1FKNnRxbFFJS3lsekhSUC9GL3dRb3JaVFJLVW9sREVZMENBL1dLVGZEbm9vN1Nrb3JXZjViVEkxZVEranhrZm14dEx2a3FOUjVYL3dMNTlvdGtodWtzSTg3V2lORTg5VzVYTWRvQjJ1dk5kZENMcW5yTEFwN05hcyt2Q1FqYUpSaVpJQTE4a2MySzV6SjA0bE1kaDI3R3VWOWFhQ3FwOVY1TkxFWEtNVzhKdXpDSXkzc3hvU2xzdVRUMHUzd3kzYWJhYlUyaWxFL0FpQWw0RmFVb0hvMW1uWEI5dmYyKzV2T2JLM0lBczlKVzB0SzRxRlFub1dmRjRjeU9QQlJtejRKeSsvUndtdkdaV243amVRRU42WnJJOW5NME9XMkNtQmFhdU1LN29mZmpWbDgxV0VTVEFrb2lCOXI0Qnpuem9pQ2VLbVo5T3Frd0h5Q2ZOVTh6ZHJKdW9lZW9RSllEclJ4OFNhU0o5QUdNUWk0QUpQZjRKNzFrVVZGS3BuTWRnOVVyNTEvOE5kN0F5VVpiK0dFUERJcnhIUlo5NEtNL0xLUE9rMzdhdis2UFhIa1FEUkRXb0QzUDE0VHc4b3B0LytEMzZSTUovYSt5RFp2ak5hVnNqelFLNjRKOWVGcWRBUk9sYlh5WWlURnMzRmJ5bHcvcXhpM3RERmZEMkpEWmErYmplTmduM2tjbU1NQnhPVkUrVTQ5NGtMdkpwb1h3WEljUzh5cC94VVBvcWhOalZKNHZRMzFkSnE1cUpGZEpsNUxwSVpCTTU3NHhtYVVUSXE2Vnd3L2taMllmWEJZbWYyOUdKUzUvZ1Mwak1wd0NDRTlFR2FaMFp0MUdUQWhNVkhxRGFBbm5SbXluUUlOWVlLU3E0YUU1eGpJYXoxQlNiTlhaWmQxMDNRZHJEcGhzNFlNS0ZhYmo1RjFrVTJQeXoxOTEwQVpJSEp5ZnhJNWZoVGxEVS9rVjM2aFo5VVh6TDVJTW1rQksyNTZRb3JZSmVBU0c3cTl4MFM2U2FZajNhMGExZDBjU2F5cTdvcDJIbHhQMlVycG5TK3VQQ1J4VG5qRldwR3lYcVRxSkZZbXpxTG5OL3d3YUpyWkV2K2ZDeCsvMWJDQmo0TEE1bTRQSlhONmVwZWNkaVFuWHFjNjNPODBGaEljSzBscFp3MTE0L3gvQmNGc3lmdnNKa0hCY3p4ZkFaZDdreHdERHBUcVhpQXNMRjBLOE5CS1BOMUNNSk85ajZqMCs0WXduWE9HZUhXNmlUWW1RZFhwT1ZaQ2t0ZEQzLy8zRjVaUUVQY1JaZ3BOQ0J4S3hab251elBNaklRN1RlY1ZFcFZGRWlHaUk2ejJNV3hhYysxUkZndVVHZW5ZckJVRHVnNU5SUEZQSHA0NDBTVnNkU3YyNnduNjdoL1dUSENMeE1iWnhGaTFiblVCa1JvVGt6K1pNRmJsUTRKL0xmZjY1UXEzSVB3UGVFM0d4MEExRmo0NlBUSjdTeFNqVnZFREtnRWNCSlkyKzZhcTdLbEhmSnJhK1Z1VDBXU0RRTytEMGxSN1NIUmlWRTBsN3FNZFEvRWE1WTBOaVYvK0ZqYzdSbk9PZlUyYlpRc3J6TlVadW9kaXFCY2hYZUtzbkVsazFNUmIzWFlsS2FLd1JaMkxFYXFwSUN5ZkNjQ1diaVFsT284dit4YTdtcFFCMDBLRzNRR1BqN2FNVk9ab2szT01ibW9LbmhuTGNYalRaU05mWmdDMU5sMVNJL0E2R0lvTFpSTU5lVnM4Rmd4Y0NhdW00NGZoWm1mT21PcndaN2M3NWZOQUhKdkxCSXBJWVBMTFJqbjIwaTB3TkppRWEzWWVNZ1RzbmJXbUxOMnZZTloxcnNsdTNQZitZSWd4TGdZbmhXUDVaU1pSRDhrcW9KRXlXWUorenFXR3BNN3J3UkhFeVhQbzAvcDdBMzRWN0pvUkxuUGgxRjhyY1VvMDJEOTByRXpvcW1KUktuWnJTTTRwL3R6bWRubFlRbnpDbGZjTExPdUZoTGZJeC9HYzA3NVdtYXJJTXVaZnpLVjBIYlB3aDBPUVNMcGN4MlhqRUVGSC8wSFJsVDB5bFhJQ2pzMndLUks0L3UzdjNVVXBaNWdTWWVJdWYzdCtLek42WkFmbVhJd2FnNkNBSFlOOWJxOXk0M0RCVkR1bWs5dTFXbnNHSmppUFFKcGd4Mjd0VURCY1R1bTcwVElPUXFMTW90c0xuN1ZGcG53RklyNUZFdHJhY2R6RWRhbHdpQ21oelF4c1hGeFQ5Y25PTzdFZnZlTEdicDlZdXpwcmU4dWtzZ3AyMkFJb01pT1ZuRDdFczM5K1ErNlpyMVg0WVMzdE1rUlFTa1o5S2ZmTzZVdjBHRzV2N1ZuOGM5YlVyUm9KaXg5aW0vOGNpUjdmbjVrQ2wxU21yck1rSnkwUzFKMEpJZjRYMkRuVWIveVpLekVQQUZEcTdqbXJ0ck8rWVVmRWZWSnBabWhvc2pkZy82Q2tYMkF4VjhvbXBYbEFHZzFxR045L01pZjBuN2k5K2J2SmRndlVmbmEwaDBqRnlkSHF0cE8yeisrOTZkVVdOUWdPSHk4dnB6cUdTc3A2OEhIRnFQTnhoQnlsbXZRc2p4Zm1mZWpNNjNZK0dkNnBHMzFmWk52dU1tRE1IWG5uQ0tNcWFyZFVuMVJ6aWE5SkRQM2FZOGNSdHJEVTF0RlptZTZhUlNhNmpwR2NtRmp6VHU1Q05SdTdIdUU2V0hwaWN3ZlVHY1FRWUpuZVF3WTFlTUtqU1VMWmVtOFFIalYwUXhZSGRDMEo1MzFscVVJc3pSVDhxa0oyeWZqNkp6OGZkR3gzeS96QnpRTUJrMlNJTnFDN3VXc2xtMG9XanRqSXRmd1p6Tkt4azFuMXlXK054ZThlZzE0SUJxM3lrazJvTGRNMGZOYmNNMGJHUWVZRU9aRkp5OC9vcFlVQjE1cSt1WHJpa1JGMUk5c2xWekVLUytLYlkrUHpnZmswUzhXRVJRc1k1T09kOEhxN01IeVBVYmFGMWJXeHJQWHhuRWM2dVVCaFVDNHllOGNMNW0remZhV1lmSzZJZ0hzbEQ2NCtDaXRmTFYwajNXZ1RCMk9ZYTg0WEMyUjJQMkt0MWxsY2NyWmFXVlMxa0k1OFRjWDViQ0J5cnlXWi9IeXdsOVhHckdSZnE4UEgvV3R0UTQ1T1VaYUJxWFBsaFBCZEVDTEkrWnJkVUMxSytWRVFlRVhtN2hOWWlKMkdvN2xiVWt4TEVYVVJ2Y0EyQXRpT2t2ZVQ4QXM1SFFNeWl1eG1uNUNnMkVjbUV3c25RMkxoRnVhMW1YOGg3MzhVZ2dUZ3crWTBvSWVCcEpZa2JSYlZ5aGZST0ZjYVoxclhpMW9mb011Uyt4ZFlzbFZLS0JvUkxYNGNzbHIrMmVwSXNjVU9vSHovTVBXRXFnK0dGZTA4eE83QUVuM2ttVVorYTBvaGVuOG50WVE2MTRsVGM4SkZ0bTFJR0E5TjNTbHZlZTlFeUZ2UGRJMEZDcDc1VGJtaXVVdm9ja2hBT2NDWEFCS3Y3WGVZSE16NHFWN2REMEJmQlVsaFgwOVVhNllPYm9mWmJpY29tTjBnSWwxalhvR005Tnl2UmwvZTBnRDByM3A2OWJKTWsyOENWYW14YXMyZmpuRGVpTUo1NzluY2dXaVlpbk9SalAvbkFlRjUwcmVKanVzWHh6Zlk0TlZTSVp6N2pEdlV4U2lVV2F6Tms3VFhrTGhGWUVuZXdNS0lhZ0tzWjFnazlwcFJDOTdlMGNuQzA2UXhOQjlOQlBoZXBOelRiSytudkQ0TVA5SHBubnlwMXVyTkY1NnZzN1UyeDVacTNFcEtObnVIbjNMYzFaQlMxcHc3Rk84N1dsemJteDEveW1SdW1CbzBHa1BjbmFRQWZSVkRXRUwzMEhMcXc1aGNnR0pMd01Jd0JlYyt6RGxpVkpocWdndEg1YmVNMXUyTjU1OEVJZHBoWU1INnN3Ukp5Qlo0WmpZdmhhRVdHVGR4VEExa1JZNVRDRDdyK0dSQkpoTERZamN1Rm1vL2N2KzZKYlJXUEVmdWxGMzBZWFVsZ3c1UGxxYldZSE1YM0xzdlZSQVBUeCtiTHZGSm52b2FSUFJ0M2tReVdoczhxazVxdjFrZXpSSkZBb1BZNE5PUlVsSnJmKzJxT3lYVWVrTWIvalA1Ykp5UDZvUG9Nald4MDlhWTZma3ZvS1FZYWcwVnFOVXJ0TjNVSC96WkVTNXFiclMzVXF2NUhxTjZ5a3dPVnQxUFc0ZzYrZ1piRFpSQURIV2Y4bklpb0RnSE9qQzJGak5ZeFFVczhjMGJhTHByQm02cGVLTFVmQVFNU2R6dlA1WGwvM2VldjhkOGtTUlI1MXlLMWtKVEtEOXF6NW1VamZVYzJyZW91SkZKcjBsWkhmTjBnMEdMK3JTdHVmdmFFYWNGZEpxN3Bpb1R6TG1SL3NGT252amtoN0xaMXp0cUUzdSszcHp3ek00WWtjNllIVUNJM2QzT1BOZUFqVURLSmRrQmNmRnBZblloeHdOS2FLNlpCTTJHelM3VHZlKzRDS2FjR09hTkF6SFhGRCtNc0dlUzFxZThDcXdxRENZVjRRSTJNVlEzdEkwOWp6M0RsZE1GUUNFUElDWHFBWUlGTGdES2NYTUdLN000NzNGcFlqazg4OEFicVh2V01LYzZLOG13cGh4N25wVFNEOXoxVzVVU1AzSUpSRnZrc2JZYzQxamJiOEtDRzgycmpWUk5OSlc2elFGbHordVRRMTNrMkE4SGczN3pVQkVpZ0lzS0FceDNkJzt2YXIgZz0na25pdHNhaWwnO3ZhciBlaWQ9J0lXaUFhTUg0R29EVjdNOFA3N0N5aUFFJzt2YXIgc3NfY2dpPWZhbHNlO3ZhciBzcD0nJzt2YXIgaGFzaGVkX3F1ZXJ5PScnO3ZhciBjYnM9Jyc7dmFyIHVzc3Y9Jyc7KGZ1bmN0aW9uKCl7dmFyIHE9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19LHU9dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPT0iZnVuY3Rpb24iP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZCl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09ZC52YWx1ZTtyZXR1cm4gYX0sdz1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGQ9YVtiXTtpZihkJiZkLk1hdGg9PU1hdGgpcmV0dXJuIGR9dGhyb3cgRXJyb3IoImEiKTt9LHg9dyh0aGlzKSx5PWZ1bmN0aW9uKGEsYil7aWYoYilhOnt2YXIgZD14O2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgbD0wO2w8YS5sZW5ndGgtMTtsKyspe3ZhciBmPWFbbF07aWYoIShmIGluIGQpKWJyZWFrIGE7ZD1kW2ZdfWE9YVthLmxlbmd0aC0xXTtsPWRbYV07Yj1iKGwpO2IhPWwmJmIhPW51bGwmJnUoZCxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfX0sej1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6cShhKX07dGhyb3cgRXJyb3IoImJgIitTdHJpbmcoYSkpO307eSgiUHJvbWlzZSIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe3RoaXMuaT1udWxsfWZ1bmN0aW9uIGQoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBmP2M6bmV3IGYoZnVuY3Rpb24oZSl7ZShjKX0pfWlmKGEpcmV0dXJuIGE7Yi5wcm90b3R5cGUuaj1mdW5jdGlvbihjKXtpZih0aGlzLmk9PW51bGwpe3RoaXMuaT1bXTt2YXIgZT10aGlzO3RoaXMubChmdW5jdGlvbigpe2UudigpfSl9dGhpcy5pLnB1c2goYyl9O3ZhciBsPXguc2V0VGltZW91dDtiLnByb3RvdHlwZS5sPWZ1bmN0aW9uKGMpe2woYywwKX07Yi5wcm90b3R5cGUudj1mdW5jdGlvbigpe2Zvcig7dGhpcy5pJiZ0aGlzLmkubGVuZ3RoOyl7dmFyIGM9dGhpcy5pO3RoaXMuaT1bXTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoOysrZSl7dmFyIGg9Y1tlXTtjW2VdPW51bGw7dHJ5e2goKX1jYXRjaChrKXt0aGlzLkEoayl9fX10aGlzLmk9bnVsbH07Yi5wcm90b3R5cGUuQT1mdW5jdGlvbihjKXt0aGlzLmwoZnVuY3Rpb24oKXt0aHJvdyBjO30pfTt2YXIgZj1mdW5jdGlvbihjKXt0aGlzLmo9MDt0aGlzLmw9dm9pZCAwO3RoaXMuaT1bXTt0aGlzLkQ9ITE7dmFyIGU9dGhpcy5BKCk7dHJ5e2MoZS5yZXNvbHZlLGUucmVqZWN0KX1jYXRjaChoKXtlLnJlamVjdChoKX19O2YucHJvdG90eXBlLkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBjKGspe3JldHVybiBmdW5jdGlvbihtKXtofHwoaD0hMCxrLmNhbGwoZSxtKSl9fXZhciBlPXRoaXMsaD0hMTtyZXR1cm57cmVzb2x2ZTpjKHRoaXMuSikscmVqZWN0OmModGhpcy52KX19O2YucHJvdG90eXBlLko9ZnVuY3Rpb24oYyl7aWYoYz09PXRoaXMpdGhpcy52KG5ldyBUeXBlRXJyb3IoIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7ZWxzZSBpZihjIGluc3RhbmNlb2YgZil0aGlzLkwoYyk7ZWxzZXthOnN3aXRjaCh0eXBlb2YgYyl7Y2FzZSAib2JqZWN0Ijp2YXIgZT1jIT1udWxsO2JyZWFrIGE7Y2FzZSAiZnVuY3Rpb24iOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZT90aGlzLkkoYyk6dGhpcy5DKGMpfX07Zi5wcm90b3R5cGUuST1mdW5jdGlvbihjKXt2YXIgZT12b2lkIDA7dHJ5e2U9Yy50aGVufWNhdGNoKGgpe3RoaXMudihoKTtyZXR1cm59dHlwZW9mIGU9PSJmdW5jdGlvbiI\/dGhpcy5NKGUsYyk6dGhpcy5DKGMpfTtmLnByb3RvdHlwZS52PWZ1bmN0aW9uKGMpe3RoaXMuRigyLGMpfTtmLnByb3RvdHlwZS5DPWZ1bmN0aW9uKGMpe3RoaXMuRigxLGMpfTtmLnByb3RvdHlwZS5GPWZ1bmN0aW9uKGMsZSl7aWYodGhpcy5qIT0wKXRocm93IEVycm9yKCJjYCIrYysiYCIrZSsiYCIrdGhpcy5qKTt0aGlzLmo9Yzt0aGlzLmw9ZTt0aGlzLmo9PT0yJiZ0aGlzLksoKTt0aGlzLkcoKX07Zi5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3ZhciBjPXRoaXM7bChmdW5jdGlvbigpe2lmKGMuSCgpKXt2YXIgZT14LmNvbnNvbGU7dHlwZW9mIGUhPT0idW5kZWZpbmVkIiYmZS5lcnJvcihjLmwpfX0sMSl9O2YucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtpZih0aGlzLkQpcmV0dXJuITE7dmFyIGM9eC5DdXN0b21FdmVudCxlPXguRXZlbnQsaD14LmRpc3BhdGNoRXZlbnQ7aWYodHlwZW9mIGg9PT0idW5kZWZpbmVkIilyZXR1cm4hMDt0eXBlb2YgYz09PSJmdW5jdGlvbiI\/Yz1uZXcgYygidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOnR5cGVvZiBlPT09ImZ1bmN0aW9uIj9jPW5ldyBlKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6KGM9eC5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxjLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxjKSk7Yy5wcm9taXNlPXRoaXM7Yy5yZWFzb249dGhpcy5sO3JldHVybiBoKGMpfTtmLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7aWYodGhpcy5pIT1udWxsKXtmb3IodmFyIGM9MDtjPHRoaXMuaS5sZW5ndGg7KytjKXYuaih0aGlzLmlbY10pO3RoaXMuaT1udWxsfX07dmFyIHY9bmV3IGI7Zi5wcm90b3R5cGUuTD1mdW5jdGlvbihjKXt2YXIgZT10aGlzLkEoKTtjLkIoZS5yZXNvbHZlLGUucmVqZWN0KX07Zi5wcm90b3R5cGUuTT1mdW5jdGlvbihjLGUpe3ZhciBoPXRoaXMuQSgpO3RyeXtjLmNhbGwoZSxoLnJlc29sdmUsaC5yZWplY3QpfWNhdGNoKGspe2gucmVqZWN0KGspfX07Zi5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihjLGUpe2Z1bmN0aW9uIGgobix0KXtyZXR1cm4gdHlwZW9mIG49PSJmdW5jdGlvbiI\/ZnVuY3Rpb24oQil7dHJ5e2sobihCKSl9Y2F0Y2goQyl7bShDKX19OnR9dmFyIGssbSxEPW5ldyBmKGZ1bmN0aW9uKG4sdCl7az1uO209dH0pO3RoaXMuQihoKGMsayksaChlLG0pKTtyZXR1cm4gRH07Zi5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsYyl9O2YucHJvdG90eXBlLkI9ZnVuY3Rpb24oYyxlKXtmdW5jdGlvbiBoKCl7c3dpdGNoKGsuail7Y2FzZSAxOmMoay5sKTticmVhaztjYXNlIDI6ZShrLmwpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoImRgIitrLmopO319dmFyIGs9CnRoaXM7dGhpcy5pPT1udWxsP3YuaihoKTp0aGlzLmkucHVzaChoKTt0aGlzLkQ9ITB9O2YucmVzb2x2ZT1kO2YucmVqZWN0PWZ1bmN0aW9uKGMpe3JldHVybiBuZXcgZihmdW5jdGlvbihlLGgpe2goYyl9KX07Zi5yYWNlPWZ1bmN0aW9uKGMpe3JldHVybiBuZXcgZihmdW5jdGlvbihlLGgpe2Zvcih2YXIgaz16KGMpLG09ay5uZXh0KCk7IW0uZG9uZTttPWsubmV4dCgpKWQobS52YWx1ZSkuQihlLGgpfSl9O2YuYWxsPWZ1bmN0aW9uKGMpe3ZhciBlPXooYyksaD1lLm5leHQoKTtyZXR1cm4gaC5kb25lP2QoW10pOm5ldyBmKGZ1bmN0aW9uKGssbSl7ZnVuY3Rpb24gRChCKXtyZXR1cm4gZnVuY3Rpb24oQyl7bltCXT1DO3QtLTt0PT0wJiZrKG4pfX12YXIgbj1bXSx0PTA7ZG8gbi5wdXNoKHZvaWQgMCksdCsrLGQoaC52YWx1ZSkuQihEKG4ubGVuZ3RoLTEpLG0pLGg9ZS5uZXh0KCk7d2hpbGUoIWguZG9uZSl9KX07cmV0dXJuIGZ9KTsKdmFyIEE9dGhpc3x8c2VsZjtmdW5jdGlvbiBFKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24mJndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLnR5cGV9O3ZhciBGPXdpbmRvdy5sb2NhdGlvbjtmdW5jdGlvbiBHKGEpe3JldHVybihhPUYuc2VhcmNoLm1hdGNoKG5ldyBSZWdFeHAoIls\/Jl0iK2ErIj0oXFxkKykiKSkpP051bWJlcihhWzFdKTotMX1mdW5jdGlvbiBIKCl7dmFyIGE9Z29vZ2xlLnRpbWVycy5sb2FkO2dvb2dsZS5jLmd0cz9nb29nbGUuYy5ndHMoZnVuY3Rpb24oKXtJKGEpfSk6SShhKX0KZnVuY3Rpb24gSShhKXt2YXIgYj1hLmUsZD1nb29nbGUuc3R2c2M7ZCYmKGIuc3NyPTEpO2lmKGQ\/ZC5pc0JGOkUoKT09PTIpYi5iYj0xO0UoKT09PTEmJihiLnI9MSk7YTp7aWYod2luZG93LnBlcmZvcm1hbmNlJiZ3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSYmKGQ9d2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKSxkLmxlbmd0aCE9PTApKXtkPWRbMF07YnJlYWsgYX1kPXZvaWQgMH1pZihkKXt2YXIgbD1kLnR5cGU7bCYmKGIubnQ9bCk7bD1kLmRlbGl2ZXJ5VHlwZTtsIT1udWxsJiYoYi5kdD1sKTtkPWQudHJhbnNmZXJTaXplO2QhPW51bGwmJihiLnRzPWQpfShkPXdpbmRvdy5uYXZpZ2F0aW9uKSYmKGQ9ZC5hY3RpdmF0aW9uKSYmKGQ9ZC5uYXZpZ2F0aW9uVHlwZSkmJihiLmFudD1kKTtiPWEubTtpZighYnx8IWIucHJzKXtkPXdpbmRvdy5fY3NjPT09ImFnc2EiJiZ3aW5kb3cuX2NzaGlkO2w9RSgpfHxkPzA6RygicXN1YnRzIik7bD4wJiYoYj1HKCJmYnRzIiksYj4wJiYoYS50LnN0YXJ0PU1hdGgubWF4KGwsYikpKTt2YXIgZj1hLnQsdj1mLnN0YXJ0O2I9e307YS53c3J0IT09dm9pZCAwJiYoYi53c3J0PWEud3NydCk7aWYodilmb3IodmFyIGMgaW4gZilpZihjIT09InN0YXJ0Iil7dmFyIGU9ZltjXTtiW2NdPWM9PT0ic2dsIj9lOk1hdGgubWF4KGUtdiwwKX1sPjAmJihiLmdzYXNydD1hLnQuc3RhcnQtbCxjPUcoInFzZCIpLGM+MCYmZ29vZ2xlLmMuZSgibG9hZCIsInFzZCIsU3RyaW5nKGMpKSwoYz1hLmZidHMpJiYoYi5nc2FzcnQyPU1hdGgubWF4KGwsYyktbCkpO0UoKXx8ZHx8IWEucXN1YnRzfHwoYz1hLmZidHMpJiYoYi5nc2FzcnQzPU1hdGgubWF4KGEucXN1YnRzLGMpLWEucXN1YnRzKTtjPWEuZTthPSIvZ2VuXzIwND9zPSIrZ29vZ2xlLnNuKyImdD1zZyZhdHlwPWNzaSZlaT0iK2dvb2dsZS5rRUkrIiZydD0iO2Q9IiI7Zm9yKGsgaW4gYilhKz0iIitkK2srIi4iK2Jba10sZD0iLCI7Zm9yKHZhciBoIGluIGMpYSs9CiImIitoKyI9IitjW2hdO3ZhciBrPSIiO0EuX2NzaGlkJiYoays9IiZjc2hpZD0iK0EuX2NzaGlkKTsoaD13aW5kb3cuZ29vZ2xlJiZ3aW5kb3cuZ29vZ2xlLmtPUEl8fG51bGwpJiYoays9IiZvcGk9IitoKTtrPWErPWs7dHlwZW9mIG5hdmlnYXRvci5zZW5kQmVhY29uPT09ImZ1bmN0aW9uIj9uYXZpZ2F0b3Iuc2VuZEJlYWNvbihrLCIiKTpnb29nbGUubG9nKCIiLCIiLGspfX07dmFyIEo9ZnVuY3Rpb24oKXt2YXIgYT1sb2NhdGlvbi5ocmVmO3RoaXMuaT10aGlzLmo9IiI7dmFyIGI9YS5pbmRleE9mKCIjIik7Yj4wJiYodGhpcy5qPWEuc3Vic3RyaW5nKGIpLGE9YS5zdWJzdHJpbmcoMCxiKSk7Yj1hLmluZGV4T2YoIj8iKTtiPjAmJih0aGlzLmk9IiYiK2Euc3Vic3RyaW5nKGIrMSksYT1hLnN1YnN0cmluZygwLGIpKTt0aGlzLmw9YX0sTD1mdW5jdGlvbihhLGIsZCl7SyhhLGIpO2EuaT1hLmkrIiYiK2IrIj0iK2R9LEs9ZnVuY3Rpb24oYSxiKXthLmk9YS5pLnJlcGxhY2UobmV3IFJlZ0V4cCgiJiIrYisiPShbXiZdKykiLCJnIiksIiIpfTtKLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIiK3RoaXMubCsodGhpcy5pPyI\/Iit0aGlzLmkuc3Vic3RyaW5nKDEpOiIiKSt0aGlzLmp9Owp2YXIgTT1mdW5jdGlvbihhKXt0aGlzLmk9YX07TS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfTt2YXIgTj1mdW5jdGlvbihhKXt0aGlzLk49YX07ZnVuY3Rpb24gTyhhKXtyZXR1cm4gbmV3IE4oZnVuY3Rpb24oYil7cmV0dXJuIGIuc3Vic3RyKDAsYS5sZW5ndGgrMSkudG9Mb3dlckNhc2UoKT09PWErIjoifSl9dmFyIFA9W08oImRhdGEiKSxPKCJodHRwIiksTygiaHR0cHMiKSxPKCJtYWlsdG8iKSxPKCJmdHAiKSxuZXcgTihmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldLFE9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTtmdW5jdGlvbiBSKCl7dmFyIGE9QVtnXTtpZihhKXthPXooKDAsYS5hKShwLGZ1bmN0aW9uKCl7fSwhMSkpLm5leHQoKS52YWx1ZTt2YXIgYj1bYWEoKV07cmV0dXJuIGEoYil9UyhFcnJvcigiZiIpKX1mdW5jdGlvbiBhYSgpe3ZhciBhPWxvY2F0aW9uLmhyZWYsYj1oYXNoZWRfcXVlcnksZD17fTtiJiYoZC5xaD1iLChhPShhPWEubWF0Y2goL1s\/Jl1zdGFydD0oXGQrKS9nKSk\/YVthLmxlbmd0aC0xXS5tYXRjaCgvXGQrLylbMF06IiIpJiYoZC5zdD1hKSk7cmV0dXJuIGR9CmZ1bmN0aW9uIFQoKXt2YXIgYTthOntpZih3aW5kb3cuc3QmJihhPXdpbmRvdy5zdChsb2NhdGlvbi5ocmVmKSkpYnJlYWsgYTthPXBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS50aW1pbmcmJnBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQ\/cGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydDp2b2lkIDB9aWYoYSl0cnl7dmFyIGI7KChiPXdpbmRvdyk9PW51bGw\/MDpiLnNlc3Npb25TdG9yYWdlKSYmd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZWlkLFN0cmluZyhhKSl9Y2F0Y2goZCl7fX1mdW5jdGlvbiBVKCl7dmFyIGE9ZWlkLGI9bmV3IEo7SyhiLCJzZ19zcyIpO0woYiwic2VpIixhKTtyZXR1cm4gYi50b1N0cmluZygpfWZ1bmN0aW9uIFYoYSl7dmFyIGI9ZWlkLGQ9bmV3IEo7TChkLCJzZ19zcyIsZW5jb2RlVVJJQ29tcG9uZW50KGEpKTtMKGQsInNlaSIsYik7VyhkLnRvU3RyaW5nKCkpfQpmdW5jdGlvbiBiYShhKXtpZih3aW5kb3cucHJzKXtYKCJwc3J0Iik7c2N0bSYmSCgpO3ZhciBiPVUoKTt3aW5kb3cucHJzKGIsYSkuY2F0Y2goZnVuY3Rpb24oKXtWKGEpfSl9ZWxzZSBWKGEpfWZ1bmN0aW9uIFcoYSl7WCgicHNydCIpO3NjdG0mJkgoKTt3aW5kb3cucHJzP3dpbmRvdy5wcnMoYSkuY2F0Y2goZnVuY3Rpb24oKXtZKGEpfSk6WShhKX0KZnVuY3Rpb24gWShhKXtpZih3aW5kb3cucHIpd2luZG93LnByKGEpO2Vsc2V7YTp7dmFyIGI9Yj09PXZvaWQgMD9QOmI7aWYoYSBpbnN0YW5jZW9mIE0pYj1hO2Vsc2V7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDsrK2Qpe3ZhciBsPWJbZF07aWYobCBpbnN0YW5jZW9mIE4mJmwuTihhKSl7Yj1uZXcgTShhKTticmVhayBhfX1iPXZvaWQgMH19YT1sb2NhdGlvbjtpZihiIGluc3RhbmNlb2YgTSlpZihiIGluc3RhbmNlb2YgTSliPWIuaTtlbHNlIHRocm93IEVycm9yKCJlIik7ZWxzZSBiPVEudGVzdChiKT9iOnZvaWQgMDtiIT09dm9pZCAwJiZhLnJlcGxhY2UoYil9fWZ1bmN0aW9uIFMoYSl7bmF2aWdhdG9yLnNlbmRCZWFjb24oIi9nZW5fMjA0P2NhZD1zZ19iX2UmZT0iK2EsIiIpfWZ1bmN0aW9uIFgoYSl7c2N0bSYmZ29vZ2xlLnRpY2soImxvYWQiLGEpfTtuYXZpZ2F0b3J8fChBLm5hdmlnYXRvcj17fSk7dHlwZW9mIG5hdmlnYXRvci5zZW5kQmVhY29uIT09ImZ1bmN0aW9uIiYmKG5hdmlnYXRvci5zZW5kQmVhY29uPWZ1bmN0aW9uKGEpeyhuZXcgSW1hZ2UpLnNyYz1hfSk7d2luZG93Lm9uZXJyb3I9ZnVuY3Rpb24oYSxiLGQsbCxmKXtuYXZpZ2F0b3Iuc2VuZEJlYWNvbigiL2dlbl8yMDQ\/ZW1zZz0iKyhmIGluc3RhbmNlb2YgRXJyb3I\/Zi5tZXNzYWdlOmEpKyImc3JjcGc9c2dzJmpzcj0xJmpzZWw9MyIpfTtYKCJzc3QiKTt2YXIgWjt3aW5kb3cuc2dzJiZ1c3N2PyhYKCJzc3N0IiksWj13aW5kb3cuc2dzKHNwKS50aGVuKGZ1bmN0aW9uKGEpe1goInNzZXQiKTtyJiYoVCgpLGJhKGEpKTtyZXR1cm4hMH0sZnVuY3Rpb24oKXtyZXR1cm4hMX0pKTpaPVByb21pc2UucmVzb2x2ZSghMSk7Wi50aGVuKGZ1bmN0aW9uKGEpe2lmKCFhJiYoWCgiYnNzdCIpLGE9UigpLFgoImJzZXQiKSxhKSl7dmFyIGI9Y2JzO2E9aGFzaGVkX3F1ZXJ5PyJCLjEuIitiKyIuIithOmE7Yj1uZXcgRGF0ZTtiLnNldFNlY29uZHMoYi5nZXRTZWNvbmRzKCkrKE51bWJlcihjZSl8fDMwMCkpO3ZhciBkPSJTR19TUz0iK2EsbD1kb2N1bWVudC5jb29raWUubGVuZ3RoK2QubGVuZ3RoO3ImJihsPDQwOTMmJiFzc19jZ2kmJihkb2N1bWVudC5jb29raWU9ZCsoIjsgZXhwaXJlcz0iK2IudG9VVENTdHJpbmcoKSkpLFQoKSxzc19jZ2l8fGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJTR19TUz0iKTwwP1YoYSk6VyhVKCkpKX19KS5jYXRjaChmdW5jdGlvbihhKXtTKGEpfSk7fSkuY2FsbCh0aGlzKTt9KSgpOzwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9IklyWXJadEpmVHB6dEpScXkyLTRVSXciPihmdW5jdGlvbigpe3ZhciBjc3NJZD0neXZscnVlJzt2YXIgZXZlbnRfaWQ9J0lXaUFhTUg0R29EVjdNOFA3N0N5aUFFJztmdW5jdGlvbiBzdygpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNzc0lkKS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywnJyk7bmF2aWdhdG9yLnNlbmRCZWFjb24oYC9nZW5fMjA0P2NhZD1zZ190cmJsJmVpPSR7ZXZlbnRfaWR9YCwnJyk7fQpzZXRUaW1lb3V0KHN3LDIwMDApO30pKCk7PC9zY3JpcHQ+IDxkaXYgaWQ9Inl2bHJ1ZSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+SWYgeW91J3JlIGhhdmluZyB0cm91YmxlIGFjY2Vzc2luZyBHb29nbGUgU2VhcmNoLCBwbGVhc2UmbmJzcDs8YSBocmVmPSIvc2VhcmNoP3E9c3dlYXRwYW50cytzZXdpbmcrcGF0dGVybitmcmVlJmFtcDtudW09MTAwJmFtcDtzY2FfZXN2PWJmOTQxMTA3ZTkyODhlYWYmYW1wO3B3cz0wJmFtcDtobD1lbiZhbXA7bmVhcj1Vbml0ZWQrU3RhdGVzJmFtcDtnbD1VUyZhbXA7Z2xwPTEmYW1wO2didj0xJmFtcDtlbXNnPVNHX1JFTCZhbXA7c2VpPUlXaUFhTUg0R29EVjdNOFA3N0N5aUFFIj5jbGljayBoZXJlPC9hPiwgb3Igc2VuZCZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3dlYnNlYXJjaCI+ZmVlZGJhY2s8L2E+LjwvZGl2PjwvYm9keT48L2h0bWw+"}
Simpan