ESA data 7

@@B64@@YmVyLXN3ZWVwZXIiLCJNdWx0aS1zdXJmYWNlIHNjcnViYmVyIiwiUm90YXJ5IC8gb3JiaXRhbCBmbG9vciBtYWNoaW5lIl0pOwpjb25zdCBNRVRIT0RTID0gWyJNYW51YWwgLyBtZWNoYW5pY2FsIChvcGVyYXRvci1kcml2ZW4pIiwiUm9ib3RpYyAvIGF1dG9ub21vdXMiLCJObyBwcmVmZXJlbmNlIl07CmNvbnN0IENBVENPTD17IlNjcnViYmVyIGRyeWVyICh3YWxrLWJlaGluZCkiOiIjMWY2ZmViIiwiUmlkZS1vbiBzY3J1YmJlciBkcnllciI6IiMwYWEzYTMiLCJTd2VlcGVyIjoiI2UwOGEwMCIsIlNjcnViYmVyLXN3ZWVwZXIiOiIjOGE2M2QyIiwiUm90YXJ5IC8gb3JiaXRhbCBmbG9vciBtYWNoaW5lIjoiI2MwMzkyYiIsIk11bHRpLXN1cmZhY2Ugc2NydWJiZXIiOiIjMmI4YTY3IiwiQ2FycGV0IGNsZWFuZXIgLyBleHRyYWN0b3IiOiIjYjg1NzdhIiwiVmFjdXVtIjoiIzRiNjU4NCIsIldldCAmIGRyeSB2YWN1dW0iOiIjM2Q1YTgwIiwiU3RlYW0gY2xlYW5lciI6IiNkMzU0MDAiLCJHdW0gcmVtb3ZhbCI6IiM3ZjhjOGQiLCJPdGhlciI6IiM3ZjhjOGQifTsKY29uc3QgQ0FUQUI9eyJTY3J1YmJlciBkcnllciAod2Fsay1iZWhpbmQpIjoiU0QiLCJSaWRlLW9uIHNjcnViYmVyIGRyeWVyIjoiUk8iLCJTd2VlcGVyIjoiU1ciLCJTY3J1YmJlci1zd2VlcGVyIjoiUysiLCJSb3RhcnkgLyBvcmJpdGFsIGZsb29yIG1hY2hpbmUiOiJSVCIsIk11bHRpLXN1cmZhY2Ugc2NydWJiZXIiOiJNUyIsIkNhcnBldCBjbGVhbmVyIC8gZXh0cmFjdG9yIjoiQ0MiLCJWYWN1dW0iOiJWQSIsIldldCAmIGRyeSB2YWN1dW0iOiJXRCIsIlN0ZWFtIGNsZWFuZXIiOiJTVCIsIkd1bSByZW1vdmFsIjoiR1IiLCJPdGhlciI6IsK3wrcifTsKZnVuY3Rpb24gY2F0VGlsZShtLHNtKXtyZXR1cm4gbS5pbWc/YDxkaXYgY2xhc3M9InRodW1iICR7c20/J3NtJzonJ30iPjxpbWcgbG9hZGluZz0ibGF6eSIgc3JjPSIke20uaW1nfSIgYWx0PSIiPjwvZGl2PmA6Jyc7fQovKiAtLS0tLS0tLS0tIHN0YXRlIC0tLS0tLS0tLS0gKi8KbGV0IGFyZWFzID0gW107CmxldCBzZXEgPSAwOwpsZXQgcmVjUmVzdWx0cyA9IFtdOyAvLyBbe2FyZWFOYW1lLCBjbGVhbmluZ0xhYmVsLCBvcHRpb25zOlttYWNoaW5lSWQuLi5dLCBwaWNrZWQ6aWQsIHNlbGVjdGVkOmJvb2x9XQpsZXQgbGVhZCA9IHtuYW1lOiIiLGNvOiIiLHNpdGU6IiIsZW1haWw6IiIscGhvbmU6IiJ9Owpjb25zdCBRUkVGID0gIlVDUy0iK25ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgwLDEwKS5yZXBsYWNlKC8tL2csIiIpKyItIitNYXRoLmZsb29yKDEwMDArIChEYXRlLm5vdygpJTkwMDApKTsKZnVuY3Rpb24gbW9uZXkobil7cmV0dXJuICLCoyIrKE1hdGgucm91bmQobioxMDApLzEwMCkudG9Mb2NhbGVTdHJpbmcoJ2VuLUdCJyx7bWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjJ9KTt9CmZ1bmN0aW9uIG1vbmV5MChuKXtyZXR1cm4gIsKjIitNYXRoLnJvdW5kKG4pLnRvTG9jYWxlU3RyaW5nKCdlbi1HQicpO30KLyogLS0tLS0tLS0tLSBzdGVwIDEgLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiBhZGRBcmVhKG5hbWUpewpzZXErKzsKYXJlYXMucHVzaCh7aWQ6c2VxLCBuYW1lOm5hbWV8fCgiQXJlYSAiK3NlcSksIHNpemU6IiIsIGZsb29yOkZMT09SU1swXVswXSwgbWV0aG9kOk1FVEhPRFNbMF0sIGNsZWFuczpbXX0pOwpyZW5kZXJBcmVhcygpOwp9CmZ1bmN0aW9uIHJlbmRlckFyZWFzKCl7CmNvbnN0IGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcmVhcycpOyBlbC5pbm5lckhUTUw9Jyc7CmFyZWFzLmZvckVhY2goKGEsaWR4KT0+ewpjb25zdCBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkLmNsYXNzTmFtZT0nYXJlYS1yb3cnOwpkLmlubmVySFRNTCA9IGAKJHthcmVhcy5sZW5ndGg+MT9gPGJ1dHRvbiBjbGFzcz0icm0iIG9uY2xpY2s9ImRlbEFyZWEoJHthLmlkfSkiPuKclSByZW1vdmU8L2J1dHRvbj5gOicnfQo8ZGl2IGNsYXNzPSJncmlkIj4KPGRpdj48bGFiZWw+QXJlYSBuYW1lPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiR7YS5uYW1lLnJlcGxhY2UoLyIvZywnJnF1b3Q7Jyl9IiBvbmlucHV0PSJ1cGQoJHthLmlkfSwnbmFtZScsdGhpcy52YWx1ZSkiPjwvZGl2Pgo8ZGl2PjxsYWJlbD5TaXplIChtwrIpPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBtaW49IjEiIHBsYWNlaG9sZGVyPSJlLmcuIDgwMCIgdmFsdWU9IiR7YS5zaXplfSIgb25pbnB1dD0idXBkKCR7YS5pZH0sJ3NpemUnLHRoaXMudmFsdWUpIj48L2Rpdj4KPGRpdj48bGFiZWw+Rmxvb3IgdHlwZTwvbGFiZWw+PHNlbGVjdCBvbmNoYW5nZT0idXBkKCR7YS5pZH0sJ2Zsb29yJyx0aGlzLnZhbHVlKSI+CiR7RkxPT1JTLm1hcChmPT5gPG9wdGlvbiAke2ZbMF09PT1hLmZsb29yPydzZWxlY3RlZCc6Jyd9PiR7ZlswXX08L29wdGlvbj5gKS5qb2luKCcnKX0KPC9zZWxlY3Q+PC9kaXY+CjwvZGl2Pgo8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEwcHgiPjxsYWJlbD5FcXVpcG1lbnQgdHlwZTwvbGFiZWw+CjxzZWxlY3Qgc3R5bGU9Im1heC13aWR0aDozNDBweCIgb25jaGFuZ2U9InVwZCgke2EuaWR9LCdtZXRob2QnLHRoaXMudmFsdWUpIj4KJHtNRVRIT0RTLm1hcChtbz0+YDxvcHRpb24gJHttbz09PWEubWV0aG9kPydzZWxlY3RlZCc6Jyd9PiR7bW99PC9vcHRpb24+YCkuam9pbignJyl9Cjwvc2VsZWN0Pgo8L2Rpdj4KPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4Ij48bGFiZWw+Q2xlYW5pbmcgcmVxdWlyZWQgKGNob29zZSBvbmUgb3IgbW9yZSk8L2xhYmVsPgo8ZGl2IGNsYXNzPSJjaGlwcyI+CiR7Q0xFQU5JTkcubWFwKGM9PmA8c3BhbiBjbGFzcz0iY2hpcCAke2EuY2xlYW5zLmluY2x1ZGVzKGNbMF0pPydzZWwnOicnfSIgb25jbGljaz0idG9nZ2xlQ2xlYW4oJHthLmlkfSwnJHtjWzBdfScpIj4ke2NbMF19PC9zcGFuPmApLmpvaW4oJycpfQo8L2Rpdj4KPC9kaXY+YDsKZWwuYXBwZW5kQ2hpbGQoZCk7Cn0pOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJlYUNvdW50JykudGV4dENvbnRlbnQgPSBhcmVhcy5sZW5ndGgrIiBhcmVhIisoYXJlYXMubGVuZ3RoPjE/J3MnOicnKSsiIGFkZGVkIjsKfQpmdW5jdGlvbiB1cGQoaWQsayx2KXtjb25zdCBhPWFyZWFzLmZpbmQoeD0+eC5pZD09PWlkKTthW2tdPXY7aWYoaz09PSduYW1lJylkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJlYUNvdW50Jyk7fQpmdW5jdGlvbiBkZWxBcmVhKGlkKXthcmVhcz1hcmVhcy5maWx0ZXIoeD0+eC5pZCE9PWlkKTtyZW5kZXJBcmVhcygpO30KZnVuY3Rpb24gdG9nZ2xlQ2xlYW4oaWQsYyl7Y29uc3QgYT1hcmVhcy5maW5kKHg9PnguaWQ9PT1pZCk7Y29uc3QgaT1hLmNsZWFucy5pbmRleE9mKGMpO2lmKGk8MClhLmNsZWFucy5wdXNoKGMpO2Vsc2UgYS5jbGVhbnMuc3BsaWNlKGksMSk7cmVuZGVyQXJlYXMoKTt9Ci8qIC0tLS0tLS0tLS0gbWF0Y2hpbmcgLyBzaXppbmcgLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiBmbG9vck9LKG1hY2hpbmUsIGZsb29yVG9rZW5zKXsKaWYoIW1hY2hpbmUuZmxvb3IpIHJldHVybiB0cnVlOyAvLyB1bmtub3duIHN1aXRhYmlsaXR5IC0+IGFsbG93LCByYW5rIGxvd2VyCnJldHVybiBmbG9vclRva2Vucy5zcGxpdCgnfCcpLnNvbWUodD0+bWFjaGluZS5mbG9vci5pbmNsdWRlcyh0KSk7Cn0KZnVuY3Rpb24gbWV0aG9kT0sobSwgbWV0aG9kKXsKaWYobWV0aG9kICYmIG1ldGhvZC5pbmRleE9mKCdNYW51YWwnKT09PTApIHJldHVybiAhbS5hdXRvOwppZihtZXRob2QgJiYgbWV0aG9kLmluZGV4T2YoJ1JvYm90aWMnKT09PTApIHJldHVybiAhIW0uYXV0bzsKcmV0dXJuIHRydWU7IC8vIE5vIHByZWZlcmVuY2UKfQpmdW5jdGlvbiBjYW5kaWRhdGVzRm9yKGNsZWFuaW5nTGFiZWwsIGZsb29yU2VsLCBtZXRob2Qpewpjb25zdCBjYXRzID0gQ0xFQU5JTkcuZmluZChjPT5jWzBdPT09Y2xlYW5pbmdMYWJlbClbMV07CmNvbnN0IGZsb29yVG9rZW5zID0gRkxPT1JTLmZpbmQoZj0+ZlswXT09PWZsb29yU2VsKVsxXTsKY29uc3QgbmVlZHNQcm9kID0gY2F0cy5zb21lKGM9PkFSRUFfQ0FUUy5oYXMoYykpOwpyZXR1cm4gTUFDSElORVMuZmlsdGVyKG09PmNhdHMuaW5jbHVkZXMobS5jYXQpICYmIG0ucHJpY2UgJiYgZmxvb3JPSyhtLGZsb29yVG9rZW5zKSAmJiBtZXRob2RPSyhtLG1ldGhvZCkgJiYgKCFuZWVkc1Byb2QgfHwgKEFSRUFfQ0FUUy5oYXMobS5jYXQpID8gISFtLnByb2QgOiB0cnVlKSkpOwp9CmZ1bmN0aW9uIHJhbmtGb3JBcmVhKGNhbmRzLCBzaXplTTIsIHRhcmdldE1pbnMpewpjb25zdCB0YXJnZXRIID0gdGFyZ2V0TWlucy82MDsKcmV0dXJuIGNhbmRzLm1hcChtPT57CmxldCBzY29yZSwgY2xlYW5NaW49bnVsbCwgbm90ZTsKY29uc3QgdGllckJpYXMgPSB0aWVyT2YobSkqMTAwMDAwMDsgLy8gYnJhbmQgcGVja2luZyBvcmRlciBkb21pbmF0ZXM7IHByaWNlIHNvcnRzIHdpdGhpbiBhIHRpZXIKaWYobS5wcm9kKXsKY2xlYW5NaW4gPSBNYXRoLnJvdW5kKHNpemVNMiAvIG0ucHJvZCAqIDYwKTsKY29uc3QgbWVldHMgPSBjbGVhbk1pbiA8PSB0YXJnZXRNaW5zOwovLyBtYWNoaW5lcyB0aGF0IG1lZXQgdGhlIHRhcmdldCBhbHdheXMgYmVhdCB0aG9zZSB0aGF0IGRvbid0LCByZWdhcmRsZXNzIG9mIHRpZXIKc2NvcmUgPSAobWVldHM/MDoxMDAwMDAwMCkgKyB0aWVyQmlhcyArIG0ucHJpY2UgKyBNYXRoLm1heCgwLGNsZWFuTWluLXRhcmdldE1pbnMpKjg7Cm5vdGUgPSAi4omIIitjbGVhbk1pbisiIG1pbiB0byBjbGVhbiAiK3NpemVNMisiIG3CsiIrKG1lZXRzPyIiOiIgKG92ZXIgdGFyZ2V0IOKAlCBjb25zaWRlciBhIGxhcmdlciB1bml0IG9yIDIpIik7Cn0gZWxzZSB7CnNjb3JlID0gdGllckJpYXMgKyBtLnByaWNlOyBub3RlID0gInNpemVkIGJ5IHR5cGUvdGFuayI7IC8vIG5vbi1hcmVhIG1hY2hpbmVzCn0KcmV0dXJuIHttLCBzY29yZSwgY2xlYW5NaW4sIG5vdGV9Owp9KS5zb3J0KChhLGIpPT5hLnNjb3JlLWIuc2NvcmUpOwp9Ci8qIC0tLS0tLS0tLS0gc3RlcCAyIC0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gcmVjb21tZW5kKCl7CmNvbnN0IHRhcmdldCA9ICtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0TWlucycpLnZhbHVlOwovLyB2YWxpZGF0ZQpmb3IoY29uc3QgYSBvZiBhcmVhcyl7IGlmKCFhLnNpemUgfHwgK2Euc2l6ZTw9MCl7YWxlcnQoIkFkZCBhIHNpemUgKG3CsikgZm9yICIrYS5uYW1lKTtyZXR1cm47fSBpZihhLmNsZWFucy5sZW5ndGg9PT0wKXthbGVydCgiQ2hvb3NlIGF0IGxlYXN0IG9uZSBjbGVhbmluZyB0eXBlIGZvciAiK2EubmFtZSk7cmV0dXJuO30gfQpyZWNSZXN1bHRzPVtdOwphcmVhcy5mb3JFYWNoKGE9PnsKYS5jbGVhbnMuZm9yRWFjaChjbD0+ewpjb25zdCBjYW5kcyA9IGNhbmRpZGF0ZXNGb3IoY2wsIGEuZmxvb3IsIGEubWV0aG9kKTsKaWYoY2FuZHMubGVuZ3RoPT09MCl7IHJlY1Jlc3VsdHMucHVzaCh7YXJlYTphLm5hbWUsIGNsLCBlbXB0eTp0cnVlLCBtZXRob2Q6YS5tZXRob2R9KTsgcmV0dXJuOyB9CmNvbnN0IHJhbmtlZCA9IHJhbmtGb3JBcmVhKGNhbmRzLCArYS5zaXplLCB0YXJnZXQpOwpyZWNSZXN1bHRzLnB1c2goe2FyZWE6YS5uYW1lLCBzaXplOithLnNpemUsIGNsLCBvcHRpb25zOnJhbmtlZC5tYXAocj0+ci5tLmlkKSwgbm90ZXM6T2JqZWN0LmZyb21FbnRyaWVzKHJhbmtlZC5tYXAocj0+W3IubS5pZCxyLm5vdGVdKSksIHBpY2tlZDpyYW5rZWRbMF0ubS5pZCwgc2VsZWN0ZWQ6dHJ1ZX0pOyByZWNSZXN1bHRzW3JlY1Jlc3VsdHMubGVuZ3RoLTFdLm9wdGlvbnM9cmVjUmVzdWx0c1tyZWNSZXN1bHRzLmxlbmd0aC0xXS5vcHRpb25zLnNsaWNlKDAsNik7Cn0pOwp9KTsKcmVuZGVyUmVjcygpOyBnb1N0ZXAoMik7Cn0KZnVuY3Rpb24gbUJ5SWQoaWQpe3JldHVybiBNQUNISU5FUy5maW5kKG09Pm0uaWQ9PT1pZCk7fQpmdW5jdGlvbiBzcGVjTGluZShtKXsKY29uc3QgYml0cz1bXTsKaWYobS53KSBiaXRzLnB1c2goYDxzcGFuPjxiPiR7bS53fSBtbTwvYj4gd2lkdGg8L3NwYW4+YCk7CmlmKG0ucHJvZCkgYml0cy5wdXNoKGA8c3Bhbj48Yj4ke20ucHJvZC50b0xvY2FsZVN0cmluZygnZW4tR0InKX08L2I+IG3Csi9oJHttLnBzcmM9PT0nZSc/JyA8c3BhbiBjbGFzcz0idGFnIGVzdCI+ZXN0PC9zcGFuPic6Jyd9PC9zcGFuPmApOwppZihtLnBvd2VyKSBiaXRzLnB1c2goYDxzcGFuPiR7bS5wb3dlcn08L3NwYW4+YCk7CmlmKG0uc29sKSBiaXRzLnB1c2goYDxzcGFuPiR7bS5zb2x9IEwgdGFuazwvc3Bhbj5gKTsK@@E64@@