PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBnZm9ybTtnZm9ybXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtX21haW5fc2NyaXB0c19sb2FkZWQiLGZ1bmN0aW9uKCl7Z2Zvcm0uc2NyaXB0c0xvYWRlZD0hMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2dmb3JtLmRvbUxvYWRlZD0hMH0pLGdmb3JtPXtkb21Mb2FkZWQ6ITEsc2NyaXB0c0xvYWRlZDohMSxpbml0aWFsaXplT25Mb2FkZWQ6ZnVuY3Rpb24obyl7Z2Zvcm0uZG9tTG9hZGVkJiZnZm9ybS5zY3JpcHRzTG9hZGVkP28oKTohZ2Zvcm0uZG9tTG9hZGVkJiZnZm9ybS5zY3JpcHRzTG9hZGVkP3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixvKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJnZm9ybV9tYWluX3NjcmlwdHNfbG9hZGVkIixvKX0saG9va3M6e2FjdGlvbjp7fSxmaWx0ZXI6e319LGFkZEFjdGlvbjpmdW5jdGlvbihvLG4scix0KXtnZm9ybS5hZGRIb29rKCJhY3Rpb24iLG8sbixyLHQpfSxhZGRGaWx0ZXI6ZnVuY3Rpb24obyxuLHIsdCl7Z2Zvcm0uYWRkSG9vaygiZmlsdGVyIixvLG4scix0KX0sZG9BY3Rpb246ZnVuY3Rpb24obyl7Z2Zvcm0uZG9Ib29rKCJhY3Rpb24iLG8sYXJndW1lbnRzKX0sYXBwbHlGaWx0ZXJzOmZ1bmN0aW9uKG8pe3JldHVybiBnZm9ybS5kb0hvb2soImZpbHRlciIsbyxhcmd1bWVudHMpfSxyZW1vdmVBY3Rpb246ZnVuY3Rpb24obyxuKXtnZm9ybS5yZW1vdmVIb29rKCJhY3Rpb24iLG8sbil9LHJlbW92ZUZpbHRlcjpmdW5jdGlvbihvLG4scil7Z2Zvcm0ucmVtb3ZlSG9vaygiZmlsdGVyIixvLG4scil9LGFkZEhvb2s6ZnVuY3Rpb24obyxuLHIsdCxpKXtudWxsPT1nZm9ybS5ob29rc1tvXVtuXSYmKGdmb3JtLmhvb2tzW29dW25dPVtdKTt2YXIgZT1nZm9ybS5ob29rc1tvXVtuXTtudWxsPT1pJiYoaT1uKyJfIitlLmxlbmd0aCksZ2Zvcm0uaG9va3Nbb11bbl0ucHVzaCh7dGFnOmksY2FsbGFibGU6cixwcmlvcml0eTp0PW51bGw9PXQ/MTA6dH0pfSxkb0hvb2s6ZnVuY3Rpb24obixvLHIpe3ZhciB0O2lmKHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwociwxKSxudWxsIT1nZm9ybS5ob29rc1tuXVtvXSYmKChvPWdmb3JtLmhvb2tzW25dW29dKS5zb3J0KGZ1bmN0aW9uKG8sbil7cmV0dXJuIG8ucHJpb3JpdHktbi5wcmlvcml0eX0pLG8uZm9yRWFjaChmdW5jdGlvbihvKXsiZnVuY3Rpb24iIT10eXBlb2YodD1vLmNhbGxhYmxlKSYmKHQ9d2luZG93W3RdKSwiYWN0aW9uIj09bj90LmFwcGx5KG51bGwscik6clswXT10LmFwcGx5KG51bGwscil9KSksImZpbHRlciI9PW4pcmV0dXJuIHJbMF19LHJlbW92ZUhvb2s6ZnVuY3Rpb24obyxuLHQsaSl7dmFyIHI7bnVsbCE9Z2Zvcm0uaG9va3Nbb11bbl0mJihyPShyPWdmb3JtLmhvb2tzW29dW25dKS5maWx0ZXIoZnVuY3Rpb24obyxuLHIpe3JldHVybiEhKG51bGwhPWkmJmkhPW8udGFnfHxudWxsIT10JiZ0IT1vLnByaW9yaXR5KX0pLGdmb3JtLmhvb2tzW29dW25dPXIpfX0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2ZfYnJvd3Nlcl91bmtub3duIGdmb3JtX3dyYXBwZXIgZ2Zvcm1fbGVnYWN5X21hcmt1cF93cmFwcGVyIGdmb3JtLXRoZW1lLS1uby1mcmFtZXdvcmsnIGRhdGEtZm9ybS10aGVtZT0nbGVnYWN5JyBkYXRhLWZvcm0taW5kZXg9JzAnIGlkPSdnZm9ybV93cmFwcGVyXzI5JyBzdHlsZT0nZGlzcGxheTpub25lJz48ZGl2IGlkPSdnZl8yOScgY2xhc3M9J2dmb3JtX2FuY2hvcicgdGFiaW5kZXg9Jy0xJz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1faGVhZGluZyc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9Imdmb3JtX3RpdGxlIj5HdWlkZSBkZSBsJ2FjaGV0ZXVyPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdnZm9ybV9kZXNjcmlwdGlvbic+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48Zm9ybSBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnIHRhcmdldD0nZ2Zvcm1fYWpheF9mcmFtZV8yOScgaWQ9J2dmb3JtXzI5JyAgYWN0aW9uPScvZG9tYS9kb21hLXRlcnJhaW4tMS0yLz9sYW5nPWVuI2dmXzI5JyBkYXRhLWZvcm1pZD0nMjknIG5vdmFsaWRhdGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtLWJvZHkgZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfMjknIGNsYXNzPSdnZm9ybV9maWVsZHMgdG9wX2xhYmVsIGZvcm1fc3VibGFiZWxfYmVsb3cgZGVzY3JpcHRpb25fYmVsb3cnPjxsaSBpZD0iZmllbGRfMjlfMSIgY2xhc3M9ImdmaWVsZCBnZmllbGQtLXR5cGUtZW1haWwgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGdmaWVsZC0tbm8tZGVzY3JpcHRpb24gZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZSIgIGRhdGEtanMtcmVsb2FkPSJmaWVsZF8yOV8xIiA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwnIGZvcj0naW5wdXRfMjlfMSc+Vm90cmUgY291cnJpZWw8c3BhbiBjbGFzcz0iZ2ZpZWxkX3JlcXVpcmVkIj48c3BhbiBjbGFzcz0iZ2ZpZWxkX3JlcXVpcmVkIGdmaWVsZF9yZXF1aXJlZF9hc3RlcmlzayI+Kjwvc3Bhbj48L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfZW1haWwnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J2lucHV0XzEnIGlkPSdpbnB1dF8yOV8xJyB0eXBlPSdlbWFpbCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvbGk+PGxpIGlkPSJmaWVsZF8yOV8yIiBjbGFzcz0iZ2ZpZWxkIGdmaWVsZC0tdHlwZS1jaGVja2JveCBnZmllbGQtLXR5cGUtY2hvaWNlIGdmX2xpc3RfMmNvbCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZ2ZpZWxkLS1uby1kZXNjcmlwdGlvbiBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIiAgZGF0YS1qcy1yZWxvYWQ9ImZpZWxkXzI5XzIiID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCBnZm9ybS1maWVsZC1sYWJlbCBnZmllbGRfbGFiZWxfYmVmb3JlX2NvbXBsZXgnID5UeXBlIGRlIHZvdHJlIHByb2NoYWluZSBoYWJpdGF0aW9uPHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCI+PHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCBnZmllbGRfcmVxdWlyZWRfYXN0ZXJpc2siPio8L3NwYW4+PC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX2NoZWNrYm94Jz48dWwgY2xhc3M9J2dmaWVsZF9jaGVja2JveCcgaWQ9J2lucHV0XzI5XzInPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzJfMSc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF8yLjEnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J01haXNvbiBzZW1pLWTDqXRhY2jDqWUnICBpZD0nY2hvaWNlXzI5XzJfMScgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV8yXzEnIGlkPSdsYWJlbF8yOV8yXzEnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPk1haXNvbiBzZW1pLWTDqXRhY2jDqWU8L2xhYmVsPgoJCQkJCQkJPC9saT48bGkgY2xhc3M9J2djaG9pY2UgZ2Nob2ljZV8yOV8yXzInPgoJCQkJCQkJCTxpbnB1dCBjbGFzcz0nZ2ZpZWxkLWNob2ljZS1pbnB1dCcgbmFtZT0naW5wdXRfMi4yJyB0eXBlPSdjaGVja2JveCcgIHZhbHVlPSdNYWlzb24gdW5pZmFtaWxpYWxlJyAgaWQ9J2Nob2ljZV8yOV8yXzInICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfMl8yJyBpZD0nbGFiZWxfMjlfMl8yJyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5NYWlzb24gdW5pZmFtaWxpYWxlPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfMl8zJz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzIuMycgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nTWFpc29uIGRlIHZpbGxlJyAgaWQ9J2Nob2ljZV8yOV8yXzMnICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfMl8zJyBpZD0nbGFiZWxfMjlfMl8zJyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5NYWlzb24gZGUgdmlsbGU8L2xhYmVsPgoJCQkJCQkJPC9saT48bGkgY2xhc3M9J2djaG9pY2UgZ2Nob2ljZV8yOV8yXzQnPgoJCQkJCQkJCTxpbnB1dCBjbGFzcz0nZ2ZpZWxkLWNob2ljZS1pbnB1dCcgbmFtZT0naW5wdXRfMi40JyB0eXBlPSdjaGVja2JveCcgIHZhbHVlPSdDb25kb3Mgw6AgdmVuZHJlJyAgaWQ9J2Nob2ljZV8yOV8yXzQnICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfMl80JyBpZD0nbGFiZWxfMjlfMl80JyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5Db25kb3Mgw6AgdmVuZHJlPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfMl81Jz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzIuNScgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nQ29uZG8gbG9jYXRpZicgIGlkPSdjaG9pY2VfMjlfMl81JyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzJfNScgaWQ9J2xhYmVsXzI5XzJfNScgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+Q29uZG8gbG9jYXRpZjwvbGFiZWw+CgkJCQkJCQk8L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9ImZpZWxkXzI5XzQiIGNsYXNzPSJnZmllbGQgZ2ZpZWxkLS10eXBlLWNoZWNrYm94IGdmaWVsZC0tdHlwZS1jaG9pY2UgZ2ZfbGlzdF8yY29sIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBnZmllbGQtLW5vLWRlc2NyaXB0aW9uIGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUiICBkYXRhLWpzLXJlbG9hZD0iZmllbGRfMjlfNCIgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsIGdmb3JtLWZpZWxkLWxhYmVsIGdmaWVsZF9sYWJlbF9iZWZvcmVfY29tcGxleCcgPlZpbGxlIGVudmlzYWfDqWVzIHBvdXIgY2UgcHJvamV0IGTigJloYWJpdGF0aW9uPHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCI+PHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCBnZmllbGRfcmVxdWlyZWRfYXN0ZXJpc2siPio8L3NwYW4+PC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX2NoZWNrYm94Jz48dWwgY2xhc3M9J2dmaWVsZF9jaGVja2JveCcgaWQ9J2lucHV0XzI5XzQnPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfMSc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjEnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J01pcmFiZWwnICBpZD0nY2hvaWNlXzI5XzRfMScgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV80XzEnIGlkPSdsYWJlbF8yOV80XzEnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPk1pcmFiZWw8L2xhYmVsPgoJCQkJCQkJPC9saT48bGkgY2xhc3M9J2djaG9pY2UgZ2Nob2ljZV8yOV80XzInPgoJCQkJCQkJCTxpbnB1dCBjbGFzcz0nZ2ZpZWxkLWNob2ljZS1pbnB1dCcgbmFtZT0naW5wdXRfNC4yJyB0eXBlPSdjaGVja2JveCcgIHZhbHVlPSdTdGUtVGjDqXLDqHNlJyAgaWQ9J2Nob2ljZV8yOV80XzInICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfNF8yJyBpZD0nbGFiZWxfMjlfNF8yJyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5TdGUtVGjDqXLDqHNlPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfNF8zJz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzQuMycgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nQm9pc2JyaWFuZCcgIGlkPSdjaG9pY2VfMjlfNF8zJyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzRfMycgaWQ9J2xhYmVsXzI5XzRfMycgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+Qm9pc2JyaWFuZDwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfNCc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjQnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J0JsYWludmlsbGUnICBpZD0nY2hvaWNlXzI5XzRfNCcgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV80XzQnIGlkPSdsYWJlbF8yOV80XzQnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPkJsYWludmlsbGU8L2xhYmVsPgoJCQkJCQkJPC9saT48bGkgY2xhc3M9J2djaG9pY2UgZ2Nob2ljZV8yOV80XzUnPgoJCQkJCQkJCTxpbnB1dCBjbGFzcz0nZ2ZpZWxkLWNob2ljZS1pbnB1dCcgbmFtZT0naW5wdXRfNC41JyB0eXBlPSdjaGVja2JveCcgIHZhbHVlPSdNYXNjb3VjaGUnICBpZD0nY2hvaWNlXzI5XzRfNScgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV80XzUnIGlkPSdsYWJlbF8yOV80XzUnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPk1hc2NvdWNoZTwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfNic+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjYnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J0xhdmFsJyAgaWQ9J2Nob2ljZV8yOV80XzYnICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfNF82JyBpZD0nbGFiZWxfMjlfNF82JyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5MYXZhbDwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfNyc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjcnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J01vbnRyw6lhbCcgIGlkPSdjaG9pY2VfMjlfNF83JyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzRfNycgaWQ9J2xhYmVsXzI5XzRfNycgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+TW9udHLDqWFsPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfNF84Jz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzQuOCcgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nVGVycmVib25uZScgIGlkPSdjaG9pY2VfMjlfNF84JyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzRfOCcgaWQ9J2xhYmVsXzI5XzRfOCcgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+VGVycmVib25uZTwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfOSc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjknIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J0F1dHJlKHMpJyAgaWQ9J2Nob2ljZV8yOV80XzknICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfNF85JyBpZD0nbGFiZWxfMjlfNF85JyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5BdXRyZShzKTwvbGFiZWw+CgkJCQkJCQk8L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9ImZpZWxkXzI5XzMiIGNsYXNzPSJnZmllbGQgZ2ZpZWxkLS10eXBlLXRleHQgZmllbGRfc3VibGFiZWxfYmVsb3cgZ2ZpZWxkLS1uby1kZXNjcmlwdGlvbiBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIiAgZGF0YS1qcy1yZWxvYWQ9ImZpZWxkXzI5XzMiID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCBnZm9ybS1maWVsZC1sYWJlbCcgZm9yPSdpbnB1dF8yOV8zJz5BdXRyZXM8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl90ZXh0Jz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzI5XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICAgICAgYXJpYS1pbnZhbGlkPSJmYWxzZSIgICAvPiA8L2Rpdj48L2xpPjwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzI5JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J0Vudm95ZXotbW9pIG1vbiBndWlkZSBncmF0dWl0ZW1lbnQnICBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMjkiXSl7cmV0dXJuIGZhbHNlO30gIGlmKCAhalF1ZXJ5KCIjZ2Zvcm1fMjkiKVswXS5jaGVja1ZhbGlkaXR5IHx8IGpRdWVyeSgiI2dmb3JtXzI5IilbMF0uY2hlY2tWYWxpZGl0eSgpKXt3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMjkiXT10cnVlO30gICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzI5Il0pe3JldHVybiBmYWxzZTt9IGlmKCAhalF1ZXJ5KCIjZ2Zvcm1fMjkiKVswXS5jaGVja1ZhbGlkaXR5IHx8IGpRdWVyeSgiI2dmb3JtXzI5IilbMF0uY2hlY2tWYWxpZGl0eSgpKXt3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMjkiXT10cnVlO30gIGpRdWVyeSgiI2dmb3JtXzI5IikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD0yOSZhbXA7dGl0bGU9MSZhbXA7ZGVzY3JpcHRpb249MSZhbXA7dGFiaW5kZXg9MCZhbXA7dGhlbWU9bGVnYWN5JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfMjknIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPScyOScgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfMjknIHZhbHVlPSdXeUpiWFNJc0lqSTRNVFJrWW1ZNE5HSmpZalZsT1RWa05HUXpOamM1WW1FM01EZzJOVFkySWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzI5JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzI5JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzI5JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzI5JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCQkgICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV8yOScgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfMjknIHRpdGxlPSdUaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFqYXggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLic+PC9pZnJhbWU+CgkJICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyogPCFbQ0RBVEFbICovCiBnZm9ybS5pbml0aWFsaXplT25Mb2FkZWQoIGZ1bmN0aW9uKCkge2dmb3JtSW5pdFNwaW5uZXIoIDI5LCAnaHR0cHM6Ly9ncm91cGVtYXRoaWV1LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLnN2ZycsIHRydWUgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzI5Jykub24oJ2xvYWQnLGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzI5Jyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl8yOScpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO3ZhciBtdCA9IHBhcnNlSW50KGpRdWVyeSgnaHRtbCcpLmNzcygnbWFyZ2luLXRvcCcpLCAxMCkgKyBwYXJzZUludChqUXVlcnkoJ2JvZHknKS5jc3MoJ21hcmdpbi10b3AnKSwgMTApICsgMTAwO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjknKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzI5JykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjknKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzI5Jykub2Zmc2V0KCkudG9wIC0gbXQpOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzI5JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggMjksICdodHRwczovL2dyb3VwZW1hdGhpZXUuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuc3ZnJywgdHJ1ZSApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbMjksIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yOSddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzI5JykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzI5Jykub2Zmc2V0KCkudG9wIC0gbXQpO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFsyOV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yOSddID0gZmFsc2U7d3AuYTExeS5zcGVhayhqUXVlcnkoJyNnZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZV8yOScpLnRleHQoKSk7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzI5JykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcigiZ2Zvcm1fcHJlX3Bvc3RfcmVuZGVyIiwgW3sgZm9ybUlkOiAiMjkiLCBjdXJyZW50UGFnZTogImN1cnJlbnRfcGFnZSIsIGFib3J0OiBmdW5jdGlvbigpIHsgdGhpcy5wcmV2ZW50RGVmYXVsdCgpOyB9IH1dKTsgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHsgICAgICAgICAgICAgICAgcmV0dXJuOyAgICAgICAgIH0gICAgICAgIGNvbnN0IGdmb3JtV3JhcHBlckRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAiZ2Zvcm1fd3JhcHBlcl8yOSIgKTsgICAgICAgIGlmICggZ2Zvcm1XcmFwcGVyRGl2ICkgeyAgICAgICAgICAgIGNvbnN0IHZpc2liaWxpdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNwYW4iICk7ICAgICAgICAgICAgdmlzaWJpbGl0eVNwYW4uaWQgPSAiZ2Zvcm1fdmlzaWJpbGl0eV90ZXN0XzI5IjsgICAgICAgICAgICBnZm9ybVdyYXBwZXJEaXYuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCAiYWZ0ZXJlbmQiLCB2aXNpYmlsaXR5U3BhbiApOyAgICAgICAgfSAgICAgICAgY29uc3QgdmlzaWJpbGl0eVRlc3REaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggImdmb3JtX3Zpc2liaWxpdHlfdGVzdF8yOSIgKTsgICAgICAgIGxldCBwb3N0UmVuZGVyRmlyZWQgPSBmYWxzZTsgICAgICAgICAgICAgICAgZnVuY3Rpb24gdHJpZ2dlclBvc3RSZW5kZXIoKSB7ICAgICAgICAgICAgaWYgKCBwb3N0UmVuZGVyRmlyZWQgKSB7ICAgICAgICAgICAgICAgIHJldHVybjsgICAgICAgICAgICB9ICAgICAgICAgICAgcG9zdFJlbmRlckZpcmVkID0gdHJ1ZTsgICAgICAgICAgICBqUXVlcnkoIGRvY3VtZW50ICkudHJpZ2dlciggJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzI5LCBjdXJyZW50X3BhZ2VdICk7ICAgICAgICAgICAgZ2Zvcm0udXRpbHMudHJpZ2dlciggeyBldmVudDogJ2dmb3JtL3Bvc3RSZW5kZXInLCBuYXRpdmU6IGZhbHNlLCBkYXRhOiB7IGZvcm1JZDogMjksIGN1cnJlbnRQYWdlOiBjdXJyZW50X3BhZ2UgfSB9ICk7ICAgICAgICAgICAgaWYgKCB2aXNpYmlsaXR5VGVzdERpdiApIHsgICAgICAgICAgICAgICAgdmlzaWJpbGl0eVRlc3REaXYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggdmlzaWJpbGl0eVRlc3REaXYgKTsgICAgICAgICAgICB9ICAgICAgICB9ICAgICAgICBmdW5jdGlvbiBkZWJvdW5jZSggZnVuYywgd2FpdCwgaW1tZWRpYXRlICkgeyAgICAgICAgICAgIHZhciB0aW1lb3V0OyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsgICAgICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzOyAgICAgICAgICAgICAgICB2YXIgbGF0ZXIgPSBmdW5jdGlvbigpIHsgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBudWxsOyAgICAgICAgICAgICAgICAgICAgaWYgKCAhaW1tZWRpYXRlICkgZnVuYy5hcHBseSggY29udGV4dCwgYXJncyApOyAgICAgICAgICAgICAgICB9OyAgICAgICAgICAgICAgICB2YXIgY2FsbE5vdyA9IGltbWVkaWF0ZSAmJiAhdGltZW91dDsgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KCB0aW1lb3V0ICk7ICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCBsYXRlciwgd2FpdCApOyAgICAgICAgICAgICAgICBpZiAoIGNhbGxOb3cgKSBmdW5jLmFwcGx5KCBjb250ZXh0LCBhcmdzICk7ICAgICAgICAgICAgfTsgICAgICAgIH0gICAgICAgIGNvbnN0IGRlYm91bmNlZFRyaWdnZXJQb3N0UmVuZGVyID0gZGVib3VuY2UoIGZ1bmN0aW9uKCkgeyAgICAgICAgICAgIHRyaWdnZXJQb3N0UmVuZGVyKCk7ICAgICAgICB9LCAyMDAgKTsgICAgICAgIGlmICggdmlzaWJpbGl0eVRlc3REaXYgJiYgdmlzaWJpbGl0eVRlc3REaXYub2Zmc2V0UGFyZW50ID09PSBudWxsICkgeyAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoICggbXV0YXRpb25zICkgPT4geyAgICAgICAgICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCggKCBtdXRhdGlvbiApID0+IHsgICAgICAgICAgICAgICAgICAgIGlmICggbXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIHZpc2liaWxpdHlUZXN0RGl2Lm9mZnNldFBhcmVudCAhPT0gbnVsbCApIHsgICAgICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZWRUcmlnZ2VyUG9zdFJlbmRlcigpOyAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgfSk7ICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSggZG9jdW1lbnQuYm9keSwgeyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLCAgICAgICAgICAgICAgICBjaGlsZExpc3Q6IGZhbHNlLCAgICAgICAgICAgICAgICBzdWJ0cmVlOiB0cnVlLCAgICAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsgJ3N0eWxlJywgJ2NsYXNzJyBdLCAgICAgICAgICAgIH0pOyAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICB0cmlnZ2VyUG9zdFJlbmRlcigpOyAgICAgICAgfSAgICB9ICk7fSApOyAKLyogXV0+ICovCjwvc2NyaXB0Pgo=
Téléchargez votre guide de l'acheteur gratuitement!