Envío gratis a todo el país desde $79.999
3 cuotas sin interés en toda la tienda
Suscribite y ahorrá hasta 15% OFF

Página técnica de The Protein Lab.

CihmdW5jdGlvbigpewogdmFyIE1BUD0nN2UwNzA5MTc2NTU2TSxkOGM2NzU2N2UxNjhNLDBmOGEzZjA2Y2MwZU0sMzBhZDIwN2Y3ZmU2TSw5ZWM3NTQyMTJkN2RDLDY4ZjRhNjM4YjQ4N0MsYjBlMDYxOGEzMjUxQywzZGM5ZGMxM2Y5ZDdDLDQxY2VjNzk1ZjFiOEMsMmJlNjM5ZTBjYTI0Qyw0ZDgzZTViMTU0MDhDLDdjOTdlZDk2NzM2NkMsZTJiN2I4YzY3YjQ1QyxkZGMxODUwNmRkMDJDLDVkODcxMDBlMzk2MUMsODVhMTAyNGRhNmMyQywxOTViMTZlN2ZlODlDLDUzZDgwNWM1YmVmNEMsYjNlYzY0OWI3ZTNhQyw1NTkyM2Q1MjIyMDVDLGIyZGI0ZDE1YWFmZkMsODEwMjA1MDQ5MjExQyw1MWE5MzFmNGY0ZmJWLGE5MmQwMDlmM2Q4YVYsZGMzYjlmOTM1MjAzVixhZDBiODIyNGYwZmFWLGE4ZTE3YTU0NjFlZFYsNTYwMWEzZjIxMTM0ViwyMTQ0MjMxNzRlODdWLDAwMmZiZWY3Y2I3MlYsNjQxYzU5YzZmOWQyViw5NDQyMDQyMzg3YjFWLDdhNGVhMmI0Yzk1NVYsZGYzZGQ5NGEwZmJkViwwZjllNTc4ZTIzZDlWLDExNmM5ZDUxNTVlNVYsNmE2YzVhOTNiZDlkVixlN2RkN2YwODdlMjRMLDBiZjJmYmNhNTU1YUwsYTBhYjNiNzVmMDEzTCxhMDMzYTAzN2Y4Y2RMLGEyMmIxMDMxMTBhN0wsNzg3MGI2NjE5OTFmTCw0MjU3ZDI1MjU5MDlMLGE4NTQ3ZjNjZTFiZUwsODI5ZjBiYTM2NzMzTCwyOWQxYzBjYWRmMTRMLDA2YWViNDRiZDI3NkwsZGY0ZjE4M2ExMWUwRSxmM2RjNTBhYTRjMThFLGNlYzE1OGUyNzhmOEUsZDUzYjg3Nzg0NjhkRSw5NzU4NTg3MjhjMWVFLGVhZDYyZDQzNTRlYUUsMDE0ZGJiYzk3ODc3RSwwOTdhMzEzYmQ5ZTNFLDEzNGNhNzMyOGVjMUUsYmY5MTg2MWM5NmM3RSxjMTE1ZjgzOTg1NTlFLDIyM2MyY2E0NTQzYkUsNmY3NTVlZjVlOWQ4RSwyMWM4MjJkYWE4MGNFLGZkYWIyMjEzMzdlMkUsYWQ0ODNkOWNmZDQyRSxlMThlMTA3MDkxMjdFLDZhZjQzYzc4YzI1OEUsMWJjNzA4MWM4ZWM5RSxhZjNjZjNjODgxNmJULGI0MGQ3MjgxZTk2YlQsZmNjZTYwNjU1MzU4VCw2MjdhZDBkMzBiZjlULDhiYjg4ZmUxNmE2YlQsMDBiNmRmM2M1ZjUzVCxiY2RkMjViYTQ4ZDFULDc4ZjY1YWMyMGQ3YlQsOGViMjc5MDQ1YTUxVCwzOGY2ZTc4YzBkMDNULDc1ODU1MDY2NjYxOVQsZDQwOWUxYjM3MWJiVCw5YzRjZTUxZGE3NThULDU2MTQ5YmY1NzBmN1QsYmE5Nzg4ZDM0ZmVmVCw5ZDgzODYzMjE2ZDdULDM5OGI2ZDM0ODgzZFQsOWE1M2E5NDdmY2JiRCxiMGQxODljMzkxODJELDM5YjNmYTE2YTA2OUQsNzFhZTA1ZDQ4MTYzRCw5MTg4N2Q0NWQ5YjBELDBlMTAwMzJmNDJkOUQsZWQ1MDdjOWY0NzFlRCwwZjkwZmYzNzk3MzNELDI1ZTZlMDM2YWNmMkQsYmM4OGU5YTZkMDIwRCw4NmI2Yzk3ZGViZDBELDMzMDMyNjc1YjAxN0QsYzQ4YWI5YzJhNzczRCxlZWRhZmI3Y2FiY2ZELGRlNGY4YjA4YjYwZEQsNzY0MTZmMzI1Yjg2VyxmNzQyZGIyMTU5ZDJXLGVjOGZmNTgzMjI2YVcsN2FhOGEwMDEzMTk1Vyw3ZDA3MTNmYTYzYzdXLDY0NWQwMjc4ODE0Y1csNzU4YzAwNzE3ZDg2VywxN2U3ZDIxMGUyM2FHLDcwYmZmOWRmNDZjYUcsYzExYjI0ZTlhYmJmRywxZDI1Mjc3MjBmZWNHLGEyZTg2NjM2YmIxYUcsODFkMmQyNTRlM2NkRywxN2I4MzFiYjlhOWZHLDgwYTFkZWE1ZGY0ZUcsZTAyZTdkODY3ZThjRyw3MzdhM2UwYTMzY2JHLDRlNGE3OWM0OTUzN0cnOwogdmFyIE09e307TUFQLnNwbGl0KCcsJykuZm9yRWFjaChmdW5jdGlvbih4KXtNW3guc2xpY2UoMCwxMildPXguc2xpY2UoMTIpfSk7CiB2YXIgUD0nL3Byb2R1Y3Rvcy8nOwogdmFyIEc9ewogIE06WydNYWduZXNpbycsJ3RpcG9zLWRlLW1hZ25lc2lvLWN1bGVzLXNvbi1zdXMtZGlmZXJlbmNpYXMteS1iZW5lZmljaW9zLTMwYWQyMDdmN2ZlNicsJ1RpcG9zIGRlIG1hZ25lc2lvOiBjdcOhbGVzIHNvbiBzdXMgZGlmZXJlbmNpYXMnLFtbJ01hZ25lc2lvIDUgZW4gMScsUCsnbWFnbmVzaW8tNS1lbi0xLyddLFsnQmlzZ2xpY2luYXRvIGRlIE1hZ25lc2lvIGNvbiBCNicsUCsnYmlzZ2xpY2luYXRvLWRlLW1hZ25lc2lvLyddLFsnVHJlb25hdG8gZGUgTWFnbmVzaW8nLFArJ3RyZW9uYXRvLWRlLW1hZ25lc2lvLyddLFsnTWFnbmVzaW8gTUFYIGVuIFBvbHZvJyxQKydtYWduZXNpby1tYXgtZW4tcG9sdm8vJ11dXSwKICBDOlsnQ29sw6FnZW5vLCBwaWVsIHkgYXJ0aWN1bGFjaW9uZXMnLCdkZXJyaWJhbW9zLXVuLW1pdG8tZW50cmUtZWwtY29sZ2Vuby1tYXJpbm8tby1ib3Zpbm8tY3VsZXMtc29uLWxhcy1kaWZlcmVuY2lhcy04MTAyMDUwNDkyMTEnLCdDb2zDoWdlbm8gbWFyaW5vIG8gYm92aW5vOiBjdcOhbGVzIHNvbiBsYXMgZGlmZXJlbmNpYXMnLFtbJ0NvbMOhZ2VubyBCZWF1dHkgU2VyaWVzJyxQKydjb2xhZ2Vuby1iZWF1dHktc2VyaWVzLyddLFsnQ29sbGFnZW4gUHVyZScsUCsnY29sbGFnZW4tcHVyZS1jb2xhZ2Vuby1oaWRyb2xpemFkby1jb24tdml0YW1pbmEtYy8nXSxbJ0NvbMOhZ2VubyBGbGV4IFNlcmllcycsUCsnY29sYWdlbm8taGlkcm9saXphZG8tZmxleC1zZXJpZXMtYXJ0cm8tYmxlbmQtcmVsYXgtYmxlbmQvJ10sWyfDgWNpZG8gSGlhbHVyw7NuaWNvJyxQKydhY2lkby1oaWFsdXJvbmljby8nXV1dLAogIFY6WydWaXRhbWluYXMsIG1pbmVyYWxlcyB5IGRlZmVuc2FzJywndG9wLTUtbWluZXJhbGVzLWVzZW5jaWFsZXMtcGFyYS10dS1zYWx1ZC16aW5jLW1hZ25lc2lvLWhpZXJyby1wb3Rhc2lvLXktY2FsY2lvLWRmM2RkOTRhMGZiZCcsJ1RvcCA1IG1pbmVyYWxlcyBlc2VuY2lhbGVzIHBhcmEgdHUgc2FsdWQnLFtbJ1ZpdGFtaW5hIEIxMiBjb24gQjYgeSBaaW5jJyxQKyd2aXRhbWluYS1iMTItcGFjay0zLW1lc2VzLXZpdGFtaW5hLWI2LXktemluYy8nXSxbJ1ZpdGFtaW5hIEQzJyxQKyd2aXRhbWluYS1kMy1jb24tdml0YW1pbmEtYjMteS1tYWduZXNpby8nXSxbJ1ZpdGFtaW5hIEMgY29uIFppbmMnLFArJ3ZpdGFtaW5hLWMtZm9ybXVsYS1hbnRpb3hpZGFudGUtY29uLXppbmMvJ10sWydNdWx0aXZpdGFtw61uaWNvJyxQKydtdWx0aXZpdGFtaW5pY28tdml0YW1pbmFzLXktbWluZXJhbGVzLyddXV0sCiAgTDpbJ0xvbmdldmlkYWQsIG9tZWdhIDMgeSBjb3JhesOzbicsJ2xhLWNpZW5jaWEtZGUtZW52ZWplY2VyLWJpZW4tbG9zLWhiaXRvcy1xdWUtbWFyY2FuLWxhLWRpZmVyZW5jaWEtYTAzM2EwMzdmOGNkJywnTGEgY2llbmNpYSBkZSBlbnZlamVjZXIgYmllbicsW1snTk1OJyxQKydubW4vJ10sWydPbWVnYSAzIFBsdXMnLFArJ29tZWdhLTMtcGx1cy0zMC1jYXBzdWxhcy1ibGFuZGFzLWFsdGEtY29uY2VudHJhY2lvbi01MDAtZXBhLTI1MC1kaGEvJ10sWydOQUQrIFJlc3ZlcmF0cm9sJyxQKyduYWQtcmVzdmVyYXRyb2wtY29uY2VudHJhZG8vJ10sWydWaXRhbWluYSBLMiArIEQzJyxQKyd2aXRhbWluYS1rMi1kMy8nXV1dLAogIEU6WydNZW50ZSwgZXN0csOpcyB5IGRlc2NhbnNvJywnZXF1aWxpYnJpby1hbnRpZXN0cnMtY21vLWFwb3lhci10dS1zaXN0ZW1hLW5lcnZpb3NvLWNvbi1tYWduZXNpby15LWNlbnRlbGxhLWFzaXRpY2EtMjIzYzJjYTQ1NDNiJywnRXF1aWxpYnJpbyBhbnRpZXN0csOpczogY8OzbW8gYXBveWFyIHR1IHNpc3RlbWEgbmVydmlvc28nLFtbJ0Jpc2dsaWNpbmF0byBkZSBNYWduZXNpbyBjb24gQjYnLFArJ2Jpc2dsaWNpbmF0by1kZS1tYWduZXNpby8nXSxbJ0FzaHdhZ2FuZGhhJyxQKydhc2h3YWdhbmRoYS1tYXhpbWEtYWJzb3JjaW9uLWNvbi12aXRhbWluYS1jLWNhcHN1bGFzLXZlZ2V0YWxlcy8nXSxbJ1RyaXB0w7NmYW5vIGNvbiBNZWxpc2EgeSBUZWFuaW5hJyxQKyd0cmlwdG9mYW5vLWNvbi1tZWxpc2EteS10ZWFuaW5hLyddLFsnTWVsZW5hIGRlIExlw7NuJyxQKydtZWxlbmEtZGUtbGVvbi1jb24tdml0YW1pbmEtYjYteS1iMTIvJ11dXSwKICBUOlsnRW50cmVuYW1pZW50byB5IG1hc2EgbXVzY3VsYXInLCdjbW8tc3VwbGVtZW50YXJzZS1wYXJhLXBvdGVuY2lhci10dXMtZW50cmVuYW1pZW50b3MteS1tZWpvcmFyLXR1LXJlY3VwZXJhY2luLTM5OGI2ZDM0ODgzZCcsJ0PDs21vIHN1cGxlbWVudGFydGUgcGFyYSBwb3RlbmNpYXIgdHVzIGVudHJlbmFtaWVudG9zJyxbWydDcmVhdGluYSBNb25vaGlkcmF0YWRhJyxQKydjcmVhdGluYS1tb25vaGlkcmF0YWRhLyddLFsnV2hleSBQcm90ZWluIElzb2xhdGUgQmxlbmQnLFArJ3doZXktcHJvdGVpbi1pc29sYXRlLWJsZW5kLXNhYm9yLWNob2NvbGF0ZS1wcm90ZWluYS04MC1wdXJhLWNvbi1hbWlub2FjaWRvcy8nXSxbJ0NvbMOhZ2VubyBTcG9ydCBTZXJpZXMnLFArJ2NvbGFnZW5vLWhpZHJvbGl6YWRvLXNwb3J0LXNlcmllcy1tdXNjbGUtYmxlbmQtaG1iLWJsZW5kLyddLFsnTWFnbmVzaW8gNSBlbiAxJyxQKydtYWduZXNpby01LWVuLTEvJ11dXSwKICBEOlsnRGlnZXN0acOzbiwgbWV0YWJvbGlzbW8geSBwZXNvJywnZWwtZWplLWludGVzdGluby1jZXJlYnJvLXBvci1xdS10dS1lc3RhZG8tZGUtbmltby1jb21pZW56YS1lbi10dS1pbnRlc3Rpbm8tMGUxMDAzMmY0MmQ5JywnRWwgZWplIGludGVzdGluby1jZXJlYnJvJyxbWydQcmViacOzdGljbycsUCsncHJlYmlvdGljby1maWJyYXMtZGlnZXN0aXZhcy8nXSxbJ0NpdHJhdG8gZGUgTWFnbmVzaW8nLFArJ2NpdHJhdG8tZGUtbWFnbmVzaW8tZW4tY2Fwc3VsYXMtdmVnZXRhbGVzLTIwMG1nLWNpdHJhdG8tcHVyby8nXSxbJ0PDunJjdW1hIGNvbiBKZW5naWJyZScsUCsnY3VyY3VtYS1qZW5naWJyZS15LXBpbWllbnRhLW5lZ3JhLWFic29yY2lvbi1zdXBlcmlvci8nXSxbJ01heCBCdXJuZXIgQmxlbmQnLFArJ3F1ZW1hZ3Jhc2FzLW1heC1idXJuZXItYmxlbmQvJ11dXSwKICBXOlsnTXVqZXIgeSBob3Jtb25hcycsJ3RvcC01LXN1cGxlbWVudG9zLWVzZW5jaWFsZXMtcGFyYS1tdWplcmVzLWEtcGFydGlyLWRlLWxvcy00NS03NThjMDA3MTdkODYnLCdUb3AgNSBzdXBsZW1lbnRvcyBlc2VuY2lhbGVzIHBhcmEgbXVqZXJlcycsW1snQ29sw6FnZW5vIEJlYXV0eSBTZXJpZXMgUGx1cycsUCsnY29sYWdlbm8tYmVhdXR5LXNlcmllcy1wbHVzLyddLFsnTXVsdGl2aXRhbcOtbmljbycsUCsnbXVsdGl2aXRhbWluaWNvLXZpdGFtaW5hcy15LW1pbmVyYWxlcy8nXSxbJ0hpZXJybyBjb24gVml0YW1pbmEgQycsUCsnaGllcnJvLWNvbi12aXRhbWluYS1jLyddLFsnQmlvdGluYSBjb24gVml0YW1pbmEgRSB5IFExMCcsUCsnYmlvdGluYS1jb24tdml0YW1pbmEtZS15LWNvZW56aW1hLXExMC8nXV1dLAogIEc6WydHdcOtYXMgZGUgc3VwbGVtZW50YWNpw7NuJywnY21vLWVtcGllem8tYS1zdXBsZW1lbnRhcm1lLWd1YS1wcmN0aWNhLXBhcmEtcXVpZW5lcy1yZWNpbi1jb21pZW56YW4tNzM3YTNlMGEzM2NiJywnQ8OzbW8gZW1waWV6byBhIHN1cGxlbWVudGFybWU6IGd1w61hIHByw6FjdGljYScsW1snTWFnbmVzaW8gNSBlbiAxJyxQKydtYWduZXNpby01LWVuLTEvJ10sWydDb2zDoWdlbm8gQmVhdXR5IFNlcmllcycsUCsnY29sYWdlbm8tYmVhdXR5LXNlcmllcy8nXSxbJ09tZWdhIDMnLFArJ29tZWdhLTMtNjAtY2Fwc3VsYXMtYmxhbmRhcy1jb24tb21lZ2EtMy02LTkteS12aXRhbWluYS1lLyddLFsnVml0YW1pbmEgQjEyIGNvbiBCNiB5IFppbmMnLFArJ3ZpdGFtaW5hLWIxMi1wYWNrLTMtbWVzZXMtdml0YW1pbmEtYjYteS16aW5jLyddXV0KIH07CiB2YXIgVEVNQT17TTonL2Jsb2ctbWFnbmVzaW8vJyxDOicvYmxvZy1jb2xhZ2Vuby1waWVsLXktYXJ0aWN1bGFjaW9uZXMvJyxWOicvYmxvZy12aXRhbWluYXMtbWluZXJhbGVzLXktZGVmZW5zYXMvJyxMOicvYmxvZy1sb25nZXZpZGFkLW9tZWdhLTMteS1jb3Jhem9uLycsRTonL2Jsb2ctbWVudGUtZXN0cmVzLXktZGVzY2Fuc28vJyxUOicvYmxvZy1lbnRyZW5hbWllbnRvLXktbWFzYS1tdXNjdWxhci8nLEQ6Jy9ibG9nLWRpZ2VzdGlvbi1tZXRhYm9saXNtby15LXBlc28vJyxXOicvYmxvZy1tdWplci15LWhvcm1vbmFzLycsRzonL2Jsb2ctZ3VpYXMtZGUtc3VwbGVtZW50YWNpb24vJ307CiB2YXIgVEVNQVI9e307Zm9yKHZhciB0ayBpbiBURU1BKVRFTUFSW1RFTUFbdGtdXT10azsKIHZhciBDQVQ9eycvc3VwbGVtZW50b3MvbWFnbmVzaW9zLyc6J00nLCcvc3VwbGVtZW50b3MvY29sYWdlbm9zLyc6J0MnLCcvcG9yLW9iamV0aXZvL3BpZWwtcGVsby15LXVuYXMvJzonQycsJy9wb3Itb2JqZXRpdm8vaHVlc29zLXktYXJ0aWN1bGFjaW9uZXMvJzonQycsJy9zdXBsZW1lbnRvcy92aXRhbWluYXMteS1taW5lcmFsZXMvJzonVicsJy9zdXBsZW1lbnRvcy9sb25nZXZpZGFkLyc6J0wnLCcvc3VwbGVtZW50b3Mvb21lZ2EtMy8nOidMJywnL3Bvci1vYmpldGl2by9zaXN0ZW1hLWNhcmRpb3Zhc2N1bGFyLyc6J0wnLCcvcG9yLW9iamV0aXZvL2Rlc2NhbnNvLXktZXN0cmVzLyc6J0UnLCcvc3VwbGVtZW50b3MvYWRhcHRvZ2Vub3MteS1ob25nb3MvJzonRScsJy9wb3Itb2JqZXRpdm8vZW5lcmdpYS8nOidFJywnL3N1cGxlbWVudG9zL3Byb3RlaW5hcy15LWNyZWF0aW5hcy8nOidUJywnL3Bvci1vYmpldGl2by9tYXNhLW11c2N1bGFyLyc6J1QnLCcvcG9yLW9iamV0aXZvL2JpZW5lc3Rhci1kaWdlc3Rpdm8vJzonRCcsJy9wb3Itb2JqZXRpdm8vY29udHJvbC1kZS1wZXNvLyc6J0QnLCcvc3VwbGVtZW50b3MvJzonRycsJy9wb3Itb2JqZXRpdm8vJzonRyd9OwogdmFyIEE9J2NvbG9yOiM0NTM2NTI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsnOwogZnVuY3Rpb24gYSh0LGgpe3JldHVybiAnPGEgaHJlZj0iJytoKyciIHN0eWxlPSInK0ErJyI+Jyt0Kyc8L2E+J30KIGZ1bmN0aW9uIHBvc3Qocyl7cmV0dXJuICcvYmxvZy9wb3N0cy8nK3MrJy8nfQogZnVuY3Rpb24gYm94KGlkLGh0bWwpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKTtkLmlkPWlkO2Quc3R5bGUuY3NzVGV4dD0nbWFyZ2luOjI4cHggMCA4cHg7cGFkZGluZzoyMHB4IDIycHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDY5LDU0LDgyLC4xNCk7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6I0Y3RjZGQjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjY7Y29sb3I6cmdiYSg2OSw1NCw4MiwuODUpJztkLmlubmVySFRNTD1odG1sO3JldHVybiBkfQogdmFyIEgyPSc8aDIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O2NvbG9yOiM0NTM2NTI7bWFyZ2luOjAgMCAxMHB4OyI+JzsKCiBmdW5jdGlvbiBlc2ModCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKC8mL2csJyZhbXA7JykucmVwbGFjZSgvPC9nLCcmbHQ7JykucmVwbGFjZSgvIi9nLCcmcXVvdDsnKX0KIGZ1bmN0aW9uIGNhcmQoeCxiaWcpe3ZhciBpbWc9eC5pPyc8aW1nIHNyYz0iJyt4LmkrJyIgYWx0PSInK2VzYyh4LnQpKyciIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7JysnYXNwZWN0LXJhdGlvOjE2LzEwOycrJ29iamVjdC1maXQ6Y292ZXI7YmFja2dyb3VuZDojRUNFQUYyOyI+JzonPGRpdiBzdHlsZT0iYXNwZWN0LXJhdGlvOjE2LzEwO2JhY2tncm91bmQ6I0VDRUFGMjsiPjwvZGl2Pic7CiAgdmFyIHRpdD0nPHNwYW4gc3R5bGU9ImRpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjM7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6JysoYmlnPycxNnB4JzonMTRweCcpKyc7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuMzU7Y29sb3I6IzQ1MzY1MjsiPicrZXNjKHgudCkrJzwvc3Bhbj4nOwogIGlmKGJpZylyZXR1cm4gJzxhIGhyZWY9IicrcG9zdCh4LnMpKyciIGNsYXNzPSJ0cGwtY2FyZCB0cGwtY2FyZC1iaWciIHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgbWlubWF4KDAsMWZyKTthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgcmdiYSg2OSw1NCw4MiwuMTIpO2JvcmRlci1yYWRpdXM6MTRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij4nK2ltZysnPHNwYW4gc3R5bGU9ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6MTZweCAxOHB4OyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2xldHRlci1zcGFjaW5nOi4wOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpyZ2JhKDY5LDU0LDgyLC42KTsiPkd1w61hIGNvbXBsZXRhPC9zcGFuPicrdGl0Kyc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEzcHg7Y29sb3I6IzQ1MzY1Mjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyI+TGVlciBsYSBndcOtYTwvc3Bhbj48L3NwYW4+PC9hPic7CiAgcmV0dXJuICc8YSBocmVmPSInK3Bvc3QoeC5zKSsnIiBjbGFzcz0idHBsLWNhcmQiIHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNjksNTQsODIsLjEyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtZGVjb3JhdGlvbjpub25lOyI+JytpbWcrJzxzcGFuIHN0eWxlPSJwYWRkaW5nOjEwcHggMTJweCAxMnB4OyI+Jyt0aXQrJzwvc3Bhbj48L2E+J30KIGZ1bmN0aW9uIGdyaWQoaWQpe3JldHVybiAnPGRpdiBpZD0iJytpZCsnIiBjbGFzcz0idHBsLWdyaWQiPjxkaXYgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTE7Zm9udC1zaXplOjE0cHg7Ij5DYXJnYW5kbyBhcnTDrWN1bG9z4oCmPC9kaXY+PC9kaXY+J30KIChmdW5jdGlvbigpe2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cGwtY2FyZC1jc3MnKSlyZXR1cm47dmFyIHN0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7c3QuaWQ9J3RwbC1jYXJkLWNzcyc7c3QudGV4dENvbnRlbnQ9Jy50cGwtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpO2dhcDoxMnB4O21hcmdpbjowIDAgMThweH1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsudHBsLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpO2dhcDoxNnB4fX1AbWVkaWEobWluLXdpZHRoOjEyMDBweCl7LnRwbC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCxtaW5tYXgoMCwxZnIpKX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnRwbC1wZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsbWlubWF4KDAsMWZyKSl9fS50cGwtY2FyZHt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2V9LnRwbC1jYXJkOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JveC1zaGFkb3c6MCA2cHggMThweCByZ2JhKDY5LDU0LDgyLC4xMil9QG1lZGlhKG1heC13aWR0aDo2MDBweCl7LnRwbC1jYXJkLWJpZ3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIWltcG9ydGFudH0udHBsLWNhcmQtYmlnIGltZ3thc3BlY3QtcmF0aW86MTYvOTtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDowIWltcG9ydGFudH19Jztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KX0pKCk7CiBmdW5jdGlvbiBmaWxsR3JpZChpZCxpdGVtcyl7dmFyIGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtpZighZWwpcmV0dXJuO2VsLmlubmVySFRNTD1pdGVtcy5sZW5ndGg/aXRlbXMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBjYXJkKHgpfSkuam9pbignJyk6JzxkaXYgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTE7Zm9udC1zaXplOjE0cHg7Ij5Qcm9udG8gbcOhcyBhcnTDrWN1bG9zLjwvZGl2Pid9CgogZnVuY3Rpb24gcGNhcmRzKGlkLGxpc3Qpe3ZhciBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7aWYoIWVsKXJldHVybjtlbC5pbm5lckhUTUw9bGlzdC5tYXAoZnVuY3Rpb24ocCxrKXtyZXR1cm4gJzxhIGhyZWY9IicrcFsxXSsnIiBjbGFzcz0idHBsLWNhcmQiIHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNjksNTQsODIsLjEyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtZGVjb3JhdGlvbjpub25lOyI+PHNwYW4gaWQ9IicraWQrJy1pJytrKyciIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2FzcGVjdC1yYXRpbzoxLzE7YmFja2dyb3VuZDojZmZmOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7cGFkZGluZzoxMHB4IDEycHggMTJweDsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4zO2NvbG9yOiM0NTM2NTI7Ij4nK2VzYyhwWzBdKSsnPC9zcGFuPjxzcGFuIGlkPSInK2lkKyctcCcraysnIiBzdHlsZT0iZm9udC1zaXplOjE0cHg7Y29sb3I6IzQ1MzY1MjsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEzcHg7Y29sb3I6IzQ1MzY1Mjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyI+VmVyIHByb2R1Y3RvPC9zcGFuPjwvc3Bhbj48L2E+J30pLmpvaW4oJycpOwogIGxpc3QuZm9yRWFjaChmdW5jdGlvbihwLGspe3BpbmZvKHBbMV0sZnVuY3Rpb24obyl7aWYoIW8pcmV0dXJuO3ZhciBpZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCsnLWknK2spLHBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKyctcCcrayk7aWYoaWUmJm8uaSlpZS5pbm5lckhUTUw9JzxpbWcgc3JjPSInK28uaSsnIiBhbHQ9IicrZXNjKHBbMF0pKyciIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWluOyI+JztpZihwZSYmby5wKXBlLmlubmVySFRNTD0nPGI+Jytlc2Moby5wKSsnPC9iPicrKG8uYyYmby5jIT09by5wPycgPHMgc3R5bGU9Im9wYWNpdHk6LjU1O2ZvbnQtc2l6ZToxMnB4OyI+Jytlc2Moby5jKSsnPC9zPic6JycpfSl9KX0KIGZ1bmN0aW9uIHBpbmZvKHUsY2Ipe3ZhciBLPSd0cGxQNDonK3UsYz1udWxsO3RyeXtjPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShLKXx8J251bGwnKX1jYXRjaChlcnIpe31pZihjKXtjYihjKTtyZXR1cm59ZmV0Y2godSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gci50ZXh0KCl9KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBkPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcodCwndGV4dC9odG1sJyk7dmFyIGltPWQucXVlcnlTZWxlY3RvcignLmpzLXByb2R1Y3Qtc2xpZGUgaW1nLCAucHJvZHVjdC1zbGlkZXIgaW1nLCAuanMtc3dpcGVyLXByb2R1Y3QgaW1nJyk7dmFyIHNzPWltPyhpbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3Jjc2V0Jyl8fGltLmdldEF0dHJpYnV0ZSgnc3Jjc2V0Jyl8fCcnKTonJzt2YXIgcGljaz0nJztzcy5zcGxpdCgnLCcpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHE9ZS50cmltKCkuc3BsaXQoL1xzKy8pO2lmKCFwaWNrfHxxWzFdPT09JzQ4MHcnKXBpY2s9cVswXX0pO2lmKCFwaWNrJiZpbSlwaWNrPWltLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmMnKXx8aW0uZ2V0QXR0cmlidXRlKCdzcmMnKXx8Jyc7aWYoL15kYXRhOi8udGVzdChwaWNrKSlwaWNrPScnO3ZhciB0eD1mdW5jdGlvbihzZWwpe3ZhciBlPWQucXVlcnlTZWxlY3RvcihzZWwpO3JldHVybiBlP2UudGV4dENvbnRlbnQudHJpbSgpLnJlcGxhY2UoLywwMCQvLCcnKTonJ307dmFyIG89e2k6cGljayxwOnR4KCcuanMtcHJpY2UtZGlzcGxheScpLGM6dHgoJy5qcy1jb21wYXJlLXByaWNlLWRpc3BsYXknKX07dHJ5e3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oSyxKU09OLnN0cmluZ2lmeShvKSl9Y2F0Y2goZXJyKXt9Y2Iobyl9KS5jYXRjaChmdW5jdGlvbigpe2NiKG51bGwpfSl9CiBmdW5jdGlvbiBwZ3JpZChpZCl7cmV0dXJuICc8ZGl2IGlkPSInK2lkKyciIGNsYXNzPSJ0cGwtZ3JpZCB0cGwtcGdyaWQiPjwvZGl2Pid9CiB2YXIgcGF0aD1sb2NhdGlvbi5wYXRobmFtZTsKIHZhciBLRVk9J3RwbEJsb2dJZHgzJzsKIGZ1bmN0aW9uIGlkeChjYil7dmFyIGNhY2hlZD1udWxsO3RyeXtjYWNoZWQ9SlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKEtFWSl8fCdudWxsJyl9Y2F0Y2goZXJyKXt9aWYoY2FjaGVkKXtjYihjYWNoZWQpO3JldHVybn12YXIgTD1bXSxzZWVuPXt9OyhmdW5jdGlvbiBwYWdlKHApe2ZldGNoKCcvYmxvZy8/cGFnZT0nK3ApLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIHIudGV4dCgpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZD1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHQsJ3RleHQvaHRtbCcpO3ZhciBuPTA7W10uZm9yRWFjaC5jYWxsKGQucXVlcnlTZWxlY3RvckFsbCgnYS5wb3N0LWl0ZW0tbGluaycpLGZ1bmN0aW9uKHgpe3ZhciBzPXguZ2V0QXR0cmlidXRlKCdocmVmJykuc3BsaXQoJy9ibG9nL3Bvc3RzLycpWzFdLnJlcGxhY2UoL1wvJC8sJycpO2lmKHNlZW5bc10pcmV0dXJuO3NlZW5bc109MTtuKys7dmFyIHR0PSh4LnF1ZXJ5U2VsZWN0b3IoJy5wb3N0LWl0ZW0tdGl0bGUsaDEsaDIsaDMsaDQnKXx8eC5maXJzdEVsZW1lbnRDaGlsZHx8eCkudGV4dENvbnRlbnQudHJpbSgpO3ZhciBpdD14LmNsb3Nlc3QoJy5wb3N0LWl0ZW0nKTt2YXIgaW09aXQmJml0LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO3ZhciBzcz1pbT8oaW0uZ2V0QXR0cmlidXRlKCdkYXRhLXNyY3NldCcpfHxpbS5nZXRBdHRyaWJ1dGUoJ3NyY3NldCcpfHwnJyk6Jyc7dmFyIHBpY2s9Jyc7c3Muc3BsaXQoJywnKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBxPWUudHJpbSgpLnNwbGl0KC9ccysvKTtpZighcGlja3x8cVsxXT09PSc0ODB3JylwaWNrPXFbMF19KTtMLnB1c2goe3M6cyxoOnMuc2xpY2UoLTEyKSx0OnR0LGk6cGlja30pfSk7aWYobiYmcDwyMClwYWdlKHArMSk7ZWxzZXt0cnl7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShLRVksSlNPTi5zdHJpbmdpZnkoTCkpfWNhdGNoKGVycil7fWNiKEwpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7Y2IoTCl9KX0pKDEpfQogZnVuY3Rpb24gdGVtYVBhZ2UoKXt2YXIgZz1URU1BUltwYXRoXTtpZighZylyZXR1cm4gZmFsc2U7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnVzZXItY29udGVudCwucGFnZS1jb250ZW50LC5qcy1wYWdlLWNvbnRlbnQnKTtpZighYyl7dmFyIGgxPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2gxJyk7Yz1oMSYmaDEucGFyZW50RWxlbWVudH1pZighYylyZXR1cm4gZmFsc2U7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwbC10ZW1hLWxpc3QnKSlyZXR1cm4gdHJ1ZTt2YXIgZ3I9R1tnXTt2YXIgZD1ib3goJ3RwbC10ZW1hLWxpc3QnLEgyKydFbXBlesOhIHBvciBsYSBndcOtYTwvaDI+PGRpdiBpZD0idHBsLXRlbWEtZ3VpZGUiIHN0eWxlPSJtYXJnaW46MCAwIDIycHg7Ij4nK2EoZ3JbMl0scG9zdChnclsxXSkpKyc8L2Rpdj4nK0gyKydUb2RvcyBsb3MgYXJ0w61jdWxvczwvaDI+JytncmlkKCd0cGwtdGVtYS11bCcpKyc8cCBzdHlsZT0ibWFyZ2luOjAgMCAxMHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojNDUzNjUyOyI+UHJvZHVjdG9zIHJlbGFjaW9uYWRvczwvcD4nK3BncmlkKCd0cGwtcHJvZCcpKTtjLmFwcGVuZENoaWxkKGQpO3BjYXJkcygndHBsLXByb2QnLGdyWzNdKTtpZHgoZnVuY3Rpb24oTCl7dmFyIGdwPUwuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4LnM9PT1nclsxXX0pWzBdO2lmKGdwKWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cGwtdGVtYS1ndWlkZScpLmlubmVySFRNTD1jYXJkKGdwLHRydWUpO2ZpbGxHcmlkKCd0cGwtdGVtYS11bCcsTC5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIE1beC5oXT09PWcmJngucyE9PWdyWzFdfSkpfSk7cmV0dXJuIHRydWV9CiBpZihURU1BUltwYXRoXSl7dmFyIHo9MDsoZnVuY3Rpb24gdCgpe2lmKCF0ZW1hUGFnZSgpJiZ6Kys8NDApc2V0VGltZW91dCh0LDI1MCl9KSgpO3JldHVybn0KIGZ1bmN0aW9uIGNhdExpbmsoKXt2YXIgZz1DQVRbcGF0aF07aWYoIWcpcmV0dXJuIHRydWU7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwbC1jYXQtY29udGVudCcpO2lmKCFjKXJldHVybiBmYWxzZTtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHBsLWNhdC1ndWlkZScpKXJldHVybiB0cnVlO3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtwLmlkPSd0cGwtY2F0LWd1aWRlJztwLnN0eWxlLmNzc1RleHQ9J2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNjtjb2xvcjpyZ2JhKDY5LDU0LDgyLC44KTttYXJnaW46MDsnO3AuaW5uZXJIVE1MPSdQYXJhIHByb2Z1bmRpemFyLCBsZcOpIG51ZXN0cmEgZ3XDrWE6ICcrYShHW2ddWzJdLHBvc3QoR1tnXVsxXSkpKycuJztjLmFwcGVuZENoaWxkKHApO3JldHVybiB0cnVlfQogaWYoIS9eXC9ibG9nXC9wb3N0c1wvLy50ZXN0KHBhdGgpKXt2YXIgbj0wOyhmdW5jdGlvbiB0KCl7aWYoIWNhdExpbmsoKSYmbisrPDQwKXNldFRpbWVvdXQodCwyNTApfSkoKTtyZXR1cm59CiB2YXIgc2x1Zz1wYXRoLnJlcGxhY2UoL15cL2Jsb2dcL3Bvc3RzXC8vLCcnKS5yZXBsYWNlKC9cLyQvLCcnKTt2YXIgaD1zbHVnLnNsaWNlKC0xMik7dmFyIGc9TVtoXTtpZighZylyZXR1cm47dmFyIGdyPUdbZ107dmFyIGlzUD0oc2x1Zz09PWdyWzFdKTsKIGZ1bmN0aW9uIHByb2RzKCl7cmV0dXJuIGdyWzNdLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gJzxsaSBzdHlsZT0ibWFyZ2luOjAgMCA2cHg7Ij4nK2EocFswXSxwWzFdKSsnPC9saT4nfSkuam9pbignJyl9CiBmdW5jdGlvbiBydW4oKXt2YXIgYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucG9zdC1jb250ZW50Jyk7aWYoIWMpcmV0dXJuIGZhbHNlO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cGwtYmxvZy1lbmQnKSlyZXR1cm4gdHJ1ZTsKICBpZighaXNQKXt2YXIgcHM9W10uZmlsdGVyLmNhbGwoYy5xdWVyeVNlbGVjdG9yQWxsKCdwJyksZnVuY3Rpb24ocCl7cmV0dXJuIHAudGV4dENvbnRlbnQudHJpbSgpLmxlbmd0aD42MH0pO3ZhciBhdD1wc1tNYXRoLm1heCgwLE1hdGguZmxvb3IocHMubGVuZ3RoLzMpLTEpXTtpZihhdCl7dmFyIHE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO3EuaWQ9J3RwbC1ibG9nLWd1aWRlJztxLnN0eWxlLmNzc1RleHQ9J21hcmdpbjoxOHB4IDA7cGFkZGluZzoxMnB4IDE2cHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkICM0NTM2NTI7YmFja2dyb3VuZDojRjdGNkZCO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojNDUzNjUyOyc7cS5pbm5lckhUTUw9J0d1w61hIGNvbXBsZXRhIHNvYnJlICcrZ3JbMF0udG9Mb3dlckNhc2UoKSsnOiAnK2EoZ3JbMl0scG9zdChnclsxXSkpO2F0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHEsYXQubmV4dFNpYmxpbmcpfQogICBjLmFwcGVuZENoaWxkKGJveCgndHBsLWJsb2ctZW5kJyxIMisnU2VndcOtIGxleWVuZG88L2gyPjxwIHN0eWxlPSJtYXJnaW46MCAwIDEwcHg7Ij5Fc3RlIGFydMOtY3VsbyBlcyBwYXJ0ZSBkZSBudWVzdHJhIHNlcmllIHNvYnJlICcrZ3JbMF0udG9Mb3dlckNhc2UoKSsnLiBFbXBlesOhIHBvciBsYSBndcOtYTogJythKGdyWzJdLHBvc3QoZ3JbMV0pKSsnLjwvcD48cCBzdHlsZT0ibWFyZ2luOjAgMCAxMHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojNDUzNjUyOyI+UHJvZHVjdG9zIHJlbGFjaW9uYWRvczwvcD4nK3BncmlkKCd0cGwtcHJvZCcpKyc8cCBzdHlsZT0ibWFyZ2luOjEycHggMCAwOyI+JythKCdWZXIgdG9kb3MgbG9zIGFydMOtY3Vsb3Mgc29icmUgJytnclswXS50b0xvd2VyQ2FzZSgpLFRFTUFbZ10pKyc8L3A+JykpO3BjYXJkcygndHBsLXByb2QnLGdyWzNdKTtyZXR1cm4gdHJ1ZX0KICB2YXIgZT1ib3goJ3RwbC1ibG9nLWVuZCcsSDIrJ1RvZG8gc29icmUgJytnclswXS50b0xvd2VyQ2FzZSgpKyc8L2gyPicrZ3JpZCgndHBsLWh1Yi1saXN0JykrJzxwIHN0eWxlPSJtYXJnaW46MCAwIDEwcHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM0NTM2NTI7Ij5Qcm9kdWN0b3MgcmVsYWNpb25hZG9zPC9wPicrcGdyaWQoJ3RwbC1wcm9kJykrJzxwIHN0eWxlPSJtYXJnaW46MTJweCAwIDA7Ij4nK2EoJ1ZlciBsYSBzZWNjacOzbiAnK2dyWzBdLnRvTG93ZXJDYXNlKCksVEVNQVtnXSkrJzwvcD4nKTtjLmFwcGVuZENoaWxkKGUpO3BjYXJkcygndHBsLXByb2QnLGdyWzNdKTsKICBpZHgoZnVuY3Rpb24oTCl7ZmlsbEdyaWQoJ3RwbC1odWItbGlzdCcsTC5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIE1beC5oXT09PWcmJnguaCE9PWh9KSl9KTsKICByZXR1cm4gdHJ1ZX0KIGZ1bmN0aW9uIGF1dG9saW5rKCl7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBvc3QtY29udGVudCcpO2lmKCFjKXJldHVybjt2YXIgcmU9LyhodHRwcz86XC9cLyk/KHd3d1wuKT90aGVwcm90ZWlubGFiXC4obmV0fGNvbVwuYXIpKFwvW15cczwpXF0iJyxdKik/L2dpO3ZhciB3PWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYyxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKTt2YXIgbnM9W10sbjt3aGlsZShuPXcubmV4dE5vZGUoKSl7aWYobi5wYXJlbnROb2RlLmNsb3Nlc3QoJ2EnKSljb250aW51ZTtyZS5sYXN0SW5kZXg9MDtpZihyZS50ZXN0KG4ubm9kZVZhbHVlKSlucy5wdXNoKG4pfW5zLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGxhc3Q9MCx2PXQubm9kZVZhbHVlLG07cmUubGFzdEluZGV4PTA7d2hpbGUobT1yZS5leGVjKHYpKXtmLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHYuc2xpY2UobGFzdCxtLmluZGV4KSkpO3ZhciBwPShtWzRdfHwnLycpLnJlcGxhY2UoL1suOjtdKyQvLCcnKTt2YXIgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7eC5ocmVmPXAuY2hhckF0KDApPT09Jy8nP3A6Jy8nO3gudGV4dENvbnRlbnQ9bVswXS5yZXBsYWNlKC9bLjo7XSskLywnJyk7eC5zdHlsZS5jc3NUZXh0PSdjb2xvcjojNDUzNjUyO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7JztmLmFwcGVuZENoaWxkKHgpO2xhc3Q9bS5pbmRleCt4LnRleHRDb250ZW50Lmxlbmd0aH1mLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHYuc2xpY2UobGFzdCkpKTt0LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGYsdCl9KX0KIHZhciBrPTA7KGZ1bmN0aW9uIHQoKXtpZighcnVuKCkmJmsrKzw0MClzZXRUaW1lb3V0KHQsMjUwKTtlbHNlIGF1dG9saW5rKCl9KSgpOwp9KSgpOwo=