// ==UserScript== // @name NCVT // @version 1.0.0 // @description NCVT Beta // @author xianyuhekouchou // @match https://static.fifedu.com/* // @match https://class.bigdata.ncvt.net/Student/Course/index.html // @match https://class.bigdata.ncvt.net/Student/My/myCourse.html // @match https://class.bigdata.ncvt.net/Student/Activity/apply.html?* // @match https://static.fifedu.com/static/fiforal/kyxl-web-static/student-h5/index.html // @match https://api2.lptiyu.com/bdlp_h5_fitness_test/view/db/* // @grant none // @run-at context-menu // ==/UserScript== const CSSBase64 = `data:text/css;base64,OnJvb3QsOmhvc3R7LS12YW4tYmxhY2s6ICMwMDA7LS12YW4td2hpdGU6ICNmZmY7LS12YW4tZ3JheS0xOiAjZjdmOGZhOy0tdmFuLWdyYXktMjogI2YyZjNmNTstLXZhbi1ncmF5LTM6ICNlYmVkZjA7LS12YW4tZ3JheS00OiAjZGNkZWUwOy0tdmFuLWdyYXktNTogI2M4YzljYzstLXZhbi1ncmF5LTY6ICM5Njk3OTk7LS12YW4tZ3JheS03OiAjNjQ2NTY2Oy0tdmFuLWdyYXktODogIzMyMzIzMzstLXZhbi1yZWQ6ICNlZTBhMjQ7LS12YW4tYmx1ZTogIzE5ODlmYTstLXZhbi1vcmFuZ2U6ICNmZjk3NmE7LS12YW4tb3JhbmdlLWRhcms6ICNlZDZhMGM7LS12YW4tb3JhbmdlLWxpZ2h0OiAjZmZmYmU4Oy0tdmFuLWdyZWVuOiAjMDdjMTYwOy0tdmFuLWdyYWRpZW50LXJlZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmY2MDM0LCAjZWUwYTI0KTstLXZhbi1ncmFkaWVudC1vcmFuZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZDAxZSwgI2ZmODkxNyk7LS12YW4tcHJpbWFyeS1jb2xvcjogdmFyKC0tdmFuLWJsdWUpOy0tdmFuLXN1Y2Nlc3MtY29sb3I6IHZhcigtLXZhbi1ncmVlbik7LS12YW4tZGFuZ2VyLWNvbG9yOiB2YXIoLS12YW4tcmVkKTstLXZhbi13YXJuaW5nLWNvbG9yOiB2YXIoLS12YW4tb3JhbmdlKTstLXZhbi10ZXh0LWNvbG9yOiB2YXIoLS12YW4tZ3JheS04KTstLXZhbi10ZXh0LWNvbG9yLTI6IHZhcigtLXZhbi1ncmF5LTYpOy0tdmFuLXRleHQtY29sb3ItMzogdmFyKC0tdmFuLWdyYXktNSk7LS12YW4tYWN0aXZlLWNvbG9yOiB2YXIoLS12YW4tZ3JheS0yKTstLXZhbi1hY3RpdmUtb3BhY2l0eTogLjY7LS12YW4tZGlzYWJsZWQtb3BhY2l0eTogLjU7LS12YW4tYmFja2dyb3VuZDogdmFyKC0tdmFuLWdyYXktMSk7LS12YW4tYmFja2dyb3VuZC0yOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLWJhY2tncm91bmQtMzogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1wYWRkaW5nLWJhc2U6IDRweDstLXZhbi1wYWRkaW5nLXhzOiA4cHg7LS12YW4tcGFkZGluZy1zbTogMTJweDstLXZhbi1wYWRkaW5nLW1kOiAxNnB4Oy0tdmFuLXBhZGRpbmctbGc6IDI0cHg7LS12YW4tcGFkZGluZy14bDogMzJweDstLXZhbi1mb250LWJvbGQ6IDYwMDstLXZhbi1mb250LXNpemUteHM6IDEwcHg7LS12YW4tZm9udC1zaXplLXNtOiAxMnB4Oy0tdmFuLWZvbnQtc2l6ZS1tZDogMTRweDstLXZhbi1mb250LXNpemUtbGc6IDE2cHg7LS12YW4tbGluZS1oZWlnaHQteHM6IDE0cHg7LS12YW4tbGluZS1oZWlnaHQtc206IDE4cHg7LS12YW4tbGluZS1oZWlnaHQtbWQ6IDIwcHg7LS12YW4tbGluZS1oZWlnaHQtbGc6IDIycHg7LS12YW4tYmFzZS1mb250OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJIZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgU2Vnb2UgVUksIEFyaWFsLCBSb2JvdG8sICJQaW5nRmFuZyBTQyIsICJtaXVpIiwgIkhpcmFnaW5vIFNhbnMgR0IiLCAiTWljcm9zb2Z0IFlhaGVpIiwgc2Fucy1zZXJpZjstLXZhbi1wcmljZS1mb250OiBhdmVuaXItaGVhdnksICJQaW5nRmFuZyBTQyIsIGhlbHZldGljYSBuZXVlLCBhcmlhbCwgc2Fucy1zZXJpZjstLXZhbi1kdXJhdGlvbi1iYXNlOiAuM3M7LS12YW4tZHVyYXRpb24tZmFzdDogLjJzOy0tdmFuLWVhc2Utb3V0OiBlYXNlLW91dDstLXZhbi1lYXNlLWluOiBlYXNlLWluOy0tdmFuLWJvcmRlci1jb2xvcjogdmFyKC0tdmFuLWdyYXktMyk7LS12YW4tYm9yZGVyLXdpZHRoOiAxcHg7LS12YW4tcmFkaXVzLXNtOiAycHg7LS12YW4tcmFkaXVzLW1kOiA0cHg7LS12YW4tcmFkaXVzLWxnOiA4cHg7LS12YW4tcmFkaXVzLW1heDogOTk5cHh9LnZhbi10aGVtZS1kYXJrey0tdmFuLXRleHQtY29sb3I6ICNmNWY1ZjU7LS12YW4tdGV4dC1jb2xvci0yOiAjNzA3MDcwOy0tdmFuLXRleHQtY29sb3ItMzogIzRkNGQ0ZDstLXZhbi1ib3JkZXItY29sb3I6ICMzYTNhM2M7LS12YW4tYWN0aXZlLWNvbG9yOiAjM2EzYTNjOy0tdmFuLWJhY2tncm91bmQ6ICMwMDA7LS12YW4tYmFja2dyb3VuZC0yOiAjMWMxYzFlOy0tdmFuLWJhY2tncm91bmQtMzogIzM3MzYzYn1odG1sey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1ib2R5e21hcmdpbjowO2ZvbnQtZmFtaWx5OnZhcigtLXZhbi1iYXNlLWZvbnQpfWF7dGV4dC1kZWNvcmF0aW9uOm5vbmV9aW5wdXQsYnV0dG9uLHRleHRhcmVhe2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0fWE6Zm9jdXMsaW5wdXQ6Zm9jdXMsYnV0dG9uOmZvY3VzLHRleHRhcmVhOmZvY3VzLFtjbGFzcyo9dmFuLV06Zm9jdXN7b3V0bGluZTpub25lfW9sLHVse21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9QGtleWZyYW1lcyB2YW4tc2xpZGUtdXAtZW50ZXJ7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtdXAtbGVhdmV7dG97dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtZG93bi1lbnRlcnswJXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtZG93bi1sZWF2ZXt0b3t0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtbGVmdC1lbnRlcnswJXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtbGVmdC1sZWF2ZXt0b3t0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtcmlnaHQtZW50ZXJ7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKX19QGtleWZyYW1lcyB2YW4tc2xpZGUtcmlnaHQtbGVhdmV7dG97dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKX19QGtleWZyYW1lcyB2YW4tZmFkZS1pbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHZhbi1mYWRlLW91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHZhbi1yb3RhdGV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS52YW4tZmFkZS1lbnRlci1hY3RpdmV7YW5pbWF0aW9uOnZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSB2YW4tZmFkZS1pbiBib3RoIHZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1mYWRlLWxlYXZlLWFjdGl2ZXthbmltYXRpb246dmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIHZhbi1mYWRlLW91dCBib3RoIHZhcigtLXZhbi1lYXNlLWluKX0udmFuLXNsaWRlLXVwLWVudGVyLWFjdGl2ZXthbmltYXRpb246dmFuLXNsaWRlLXVwLWVudGVyIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSBib3RoIHZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1zbGlkZS11cC1sZWF2ZS1hY3RpdmV7YW5pbWF0aW9uOnZhbi1zbGlkZS11cC1sZWF2ZSB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgYm90aCB2YXIoLS12YW4tZWFzZS1pbil9LnZhbi1zbGlkZS1kb3duLWVudGVyLWFjdGl2ZXthbmltYXRpb246dmFuLXNsaWRlLWRvd24tZW50ZXIgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIGJvdGggdmFyKC0tdmFuLWVhc2Utb3V0KX0udmFuLXNsaWRlLWRvd24tbGVhdmUtYWN0aXZle2FuaW1hdGlvbjp2YW4tc2xpZGUtZG93bi1sZWF2ZSB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgYm90aCB2YXIoLS12YW4tZWFzZS1pbil9LnZhbi1zbGlkZS1sZWZ0LWVudGVyLWFjdGl2ZXthbmltYXRpb246dmFuLXNsaWRlLWxlZnQtZW50ZXIgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIGJvdGggdmFyKC0tdmFuLWVhc2Utb3V0KX0udmFuLXNsaWRlLWxlZnQtbGVhdmUtYWN0aXZle2FuaW1hdGlvbjp2YW4tc2xpZGUtbGVmdC1sZWF2ZSB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgYm90aCB2YXIoLS12YW4tZWFzZS1pbil9LnZhbi1zbGlkZS1yaWdodC1lbnRlci1hY3RpdmV7YW5pbWF0aW9uOnZhbi1zbGlkZS1yaWdodC1lbnRlciB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgYm90aCB2YXIoLS12YW4tZWFzZS1vdXQpfS52YW4tc2xpZGUtcmlnaHQtbGVhdmUtYWN0aXZle2FuaW1hdGlvbjp2YW4tc2xpZGUtcmlnaHQtbGVhdmUgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIGJvdGggdmFyKC0tdmFuLWVhc2UtaW4pfS52YW4tY2xlYXJmaXg6YWZ0ZXJ7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RoO2NvbnRlbnQ6IiJ9LnZhbi1lbGxpcHNpc3tvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnZhbi1tdWx0aS1lbGxpcHNpcy0tbDJ7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWJyZWFrOmFueXdoZXJlOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0udmFuLW11bHRpLWVsbGlwc2lzLS1sM3tkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOy13ZWJraXQtbGluZS1jbGFtcDozO2xpbmUtYnJlYWs6YW55d2hlcmU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsfS52YW4tc2FmZS1hcmVhLXRvcHtwYWRkaW5nLXRvcDpjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtdG9wKTtwYWRkaW5nLXRvcDplbnYoc2FmZS1hcmVhLWluc2V0LXRvcCl9LnZhbi1zYWZlLWFyZWEtYm90dG9te3BhZGRpbmctYm90dG9tOmNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO3BhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX0udmFuLWhhcHRpY3MtZmVlZGJhY2t7Y3Vyc29yOnBvaW50ZXJ9LnZhbi1oYXB0aWNzLWZlZWRiYWNrOmFjdGl2ZXtvcGFjaXR5OnZhcigtLXZhbi1hY3RpdmUtb3BhY2l0eSl9W2NsYXNzKj12YW4taGFpcmxpbmVdOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIgIjtwb2ludGVyLWV2ZW50czpub25lO2luc2V0Oi01MCU7Ym9yZGVyOjAgc29saWQgdmFyKC0tdmFuLWJvcmRlci1jb2xvcik7dHJhbnNmb3JtOnNjYWxlKC41KX0udmFuLWhhaXJsaW5lLC52YW4taGFpcmxpbmUtLXRvcCwudmFuLWhhaXJsaW5lLS1sZWZ0LC52YW4taGFpcmxpbmUtLXJpZ2h0LC52YW4taGFpcmxpbmUtLWJvdHRvbSwudmFuLWhhaXJsaW5lLS1zdXJyb3VuZCwudmFuLWhhaXJsaW5lLS10b3AtYm90dG9te3Bvc2l0aW9uOnJlbGF0aXZlfS52YW4taGFpcmxpbmUtLXRvcDphZnRlcntib3JkZXItdG9wLXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpfS52YW4taGFpcmxpbmUtLWxlZnQ6YWZ0ZXJ7Ym9yZGVyLWxlZnQtd2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCl9LnZhbi1oYWlybGluZS0tcmlnaHQ6YWZ0ZXJ7Ym9yZGVyLXJpZ2h0LXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpfS52YW4taGFpcmxpbmUtLWJvdHRvbTphZnRlcntib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpfS52YW4taGFpcmxpbmUtLXRvcC1ib3R0b206YWZ0ZXIsLnZhbi1oYWlybGluZS11bnNldC0tdG9wLWJvdHRvbTphZnRlcntib3JkZXItd2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCkgMH0udmFuLWhhaXJsaW5lLS1zdXJyb3VuZDphZnRlcntib3JkZXItd2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCl9OnJvb3QsOmhvc3R7LS12YW4tYWN0aW9uLWJhci1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1hY3Rpb24tYmFyLWhlaWdodDogNTBweH0udmFuLWFjdGlvbi1iYXJ7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDp2YXIoLS12YW4tYWN0aW9uLWJhci1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGlvbi1iYXItYmFja2dyb3VuZCl9OnJvb3QsOmhvc3R7LS12YW4tYmFkZ2Utc2l6ZTogMTZweDstLXZhbi1iYWRnZS1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1iYWRnZS1wYWRkaW5nOiAwIDNweDstLXZhbi1iYWRnZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWJhZGdlLWZvbnQtd2VpZ2h0OiB2YXIoLS12YW4tZm9udC1ib2xkKTstLXZhbi1iYWRnZS1ib3JkZXItd2lkdGg6IHZhcigtLXZhbi1ib3JkZXItd2lkdGgpOy0tdmFuLWJhZGdlLWJhY2tncm91bmQ6IHZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLWJhZGdlLWRvdC1jb2xvcjogdmFyKC0tdmFuLWRhbmdlci1jb2xvcik7LS12YW4tYmFkZ2UtZG90LXNpemU6IDhweDstLXZhbi1iYWRnZS1mb250OiAtYXBwbGUtc3lzdGVtLWZvbnQsIGhlbHZldGljYSBuZXVlLCBhcmlhbCwgc2Fucy1zZXJpZn0udmFuLWJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4td2lkdGg6dmFyKC0tdmFuLWJhZGdlLXNpemUpO3BhZGRpbmc6dmFyKC0tdmFuLWJhZGdlLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1iYWRnZS1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWJhZGdlLWZvbnQtd2VpZ2h0KTtmb250LXNpemU6dmFyKC0tdmFuLWJhZGdlLWZvbnQtc2l6ZSk7Zm9udC1mYW1pbHk6dmFyKC0tdmFuLWJhZGdlLWZvbnQpO2xpbmUtaGVpZ2h0OjEuMjt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi1iYWRnZS1iYWNrZ3JvdW5kKTtib3JkZXI6dmFyKC0tdmFuLWJhZGdlLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tdmFuLWJhY2tncm91bmQtMik7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCl9LnZhbi1iYWRnZS0tZml4ZWR7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtLW9yaWdpbjoxMDAlfS52YW4tYmFkZ2UtLXRvcC1sZWZ0e3RvcDowO2xlZnQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9LnZhbi1iYWRnZS0tdG9wLXJpZ2h0e3RvcDowO3JpZ2h0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUsLTUwJSl9LnZhbi1iYWRnZS0tYm90dG9tLWxlZnR7Ym90dG9tOjA7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSw1MCUpfS52YW4tYmFkZ2UtLWJvdHRvbS1yaWdodHtib3R0b206MDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLDUwJSl9LnZhbi1iYWRnZS0tZG90e3dpZHRoOnZhcigtLXZhbi1iYWRnZS1kb3Qtc2l6ZSk7bWluLXdpZHRoOjA7aGVpZ2h0OnZhcigtLXZhbi1iYWRnZS1kb3Qtc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tYmFkZ2UtZG90LWNvbG9yKTtib3JkZXItcmFkaXVzOjEwMCU7Ym9yZGVyOm5vbmU7cGFkZGluZzowfS52YW4tYmFkZ2VfX3dyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnZhbi1pY29ue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQ6MTRweC8xIHZhbnQtaWNvbjtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB2YXIoLS12YW4taWNvbi1mb250LWZhbWlseSwgInZhbnQtaWNvbiIpO2ZvbnQtc2l6ZTppbmhlcml0O3RleHQtcmVuZGVyaW5nOmF1dG87LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH0udmFuLWljb246YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4taWNvbi1hcnJvdy1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoi7pmTIn0udmFuLWljb24tYXJyb3ctZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiLumZQifS52YW4taWNvbi1jb250YWN0OmJlZm9yZXtjb250ZW50OiLunZMifS52YW4taWNvbi1ub3RlczpiZWZvcmV7Y29udGVudDoi7pi8In0udmFuLWljb24tcmVjb3JkczpiZWZvcmV7Y29udGVudDoi7pi9In0udmFuLWljb24tY2FzaC1iYWNrLXJlY29yZDpiZWZvcmV7Y29udGVudDoi7pi+In0udmFuLWljb24tbmV3c3BhcGVyOmJlZm9yZXtjb250ZW50OiLumL8ifS52YW4taWNvbi1kaXNjb3VudDpiZWZvcmV7Y29udGVudDoi7pmAIn0udmFuLWljb24tY29tcGxldGVkOmJlZm9yZXtjb250ZW50OiLumYEifS52YW4taWNvbi11c2VyOmJlZm9yZXtjb250ZW50OiLumYIifS52YW4taWNvbi1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoi7pmDIn0udmFuLWljb24tbGlzdC1zd2l0Y2g6YmVmb3Jle2NvbnRlbnQ6Iu6arSJ9LnZhbi1pY29uLWxpc3Qtc3dpdGNoaW5nOmJlZm9yZXtjb250ZW50OiLumZoifS52YW4taWNvbi1saW5rLW86YmVmb3Jle2NvbnRlbnQ6Iu6dkSJ9LnZhbi1pY29uLW1pbmlwcm9ncmFtLW86YmVmb3Jle2NvbnRlbnQ6Iu6dkiJ9LnZhbi1pY29uLXFxOmJlZm9yZXtjb250ZW50OiLunY4ifS52YW4taWNvbi13ZWNoYXQtbW9tZW50czpiZWZvcmV7Y29udGVudDoi7p2PIn0udmFuLWljb24td2VpYm86YmVmb3Jle2NvbnRlbnQ6Iu6dkCJ9LnZhbi1pY29uLWNhc2gtbzpiZWZvcmV7Y29udGVudDoi7p2NIn0udmFuLWljb24tZ3VpZGUtbzpiZWZvcmV7Y29udGVudDoi7p2MIn0udmFuLWljb24taW52aXRhdGlvbjpiZWZvcmV7Y29udGVudDoi7puWIn0udmFuLWljb24tc2hpZWxkLW86YmVmb3Jle2NvbnRlbnQ6Iu6diyJ9LnZhbi1pY29uLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiLumq8ifS52YW4taWNvbi1leWU6YmVmb3Jle2NvbnRlbnQ6Iu6asCJ9LnZhbi1pY29uLWVubGFyZ2U6YmVmb3Jle2NvbnRlbnQ6Iu6asSJ9LnZhbi1pY29uLWV4cGFuZC1vOmJlZm9yZXtjb250ZW50OiLumrIifS52YW4taWNvbi1leWUtbzpiZWZvcmV7Y29udGVudDoi7pqzIn0udmFuLWljb24tZXhwYW5kOmJlZm9yZXtjb250ZW50OiLumrQifS52YW4taWNvbi1maWx0ZXItbzpiZWZvcmV7Y29udGVudDoi7pq1In0udmFuLWljb24tZmlyZTpiZWZvcmV7Y29udGVudDoi7pq2In0udmFuLWljb24tZmFpbDpiZWZvcmV7Y29udGVudDoi7pq3In0udmFuLWljb24tZmFpbHVyZTpiZWZvcmV7Y29udGVudDoi7pq4In0udmFuLWljb24tZmlyZS1vOmJlZm9yZXtjb250ZW50OiLumrkifS52YW4taWNvbi1mbGFnLW86YmVmb3Jle2NvbnRlbnQ6Iu6auiJ9LnZhbi1pY29uLWZvbnQ6YmVmb3Jle2NvbnRlbnQ6Iu6auyJ9LnZhbi1pY29uLWZvbnQtbzpiZWZvcmV7Y29udGVudDoi7pq8In0udmFuLWljb24tZ2VtLW86YmVmb3Jle2NvbnRlbnQ6Iu6avSJ9LnZhbi1pY29uLWZsb3dlci1vOmJlZm9yZXtjb250ZW50OiLumr4ifS52YW4taWNvbi1nZW06YmVmb3Jle2NvbnRlbnQ6Iu6avyJ9LnZhbi1pY29uLWdpZnQtY2FyZDpiZWZvcmV7Y29udGVudDoi7puAIn0udmFuLWljb24tZnJpZW5kczpiZWZvcmV7Y29udGVudDoi7puBIn0udmFuLWljb24tZnJpZW5kcy1vOmJlZm9yZXtjb250ZW50OiLum4IifS52YW4taWNvbi1nb2xkLWNvaW46YmVmb3Jle2NvbnRlbnQ6Iu6bgyJ9LnZhbi1pY29uLWdvbGQtY29pbi1vOmJlZm9yZXtjb250ZW50OiLum4QifS52YW4taWNvbi1nb29kLWpvYi1vOmJlZm9yZXtjb250ZW50OiLum4UifS52YW4taWNvbi1naWZ0OmJlZm9yZXtjb250ZW50OiLum4YifS52YW4taWNvbi1naWZ0LW86YmVmb3Jle2NvbnRlbnQ6Iu6bhyJ9LnZhbi1pY29uLWdpZnQtY2FyZC1vOmJlZm9yZXtjb250ZW50OiLum4gifS52YW4taWNvbi1nb29kLWpvYjpiZWZvcmV7Y29udGVudDoi7puJIn0udmFuLWljb24taG9tZS1vOmJlZm9yZXtjb250ZW50OiLum4oifS52YW4taWNvbi1nb29kcy1jb2xsZWN0OmJlZm9yZXtjb250ZW50OiLum4sifS52YW4taWNvbi1ncmFwaGljOmJlZm9yZXtjb250ZW50OiLum4wifS52YW4taWNvbi1nb29kcy1jb2xsZWN0LW86YmVmb3Jle2NvbnRlbnQ6Iu6bjSJ9LnZhbi1pY29uLWhvdC1vOmJlZm9yZXtjb250ZW50OiLum44ifS52YW4taWNvbi1pbmZvOmJlZm9yZXtjb250ZW50OiLum48ifS52YW4taWNvbi1ob3RlbC1vOmJlZm9yZXtjb250ZW50OiLum5AifS52YW4taWNvbi1pbmZvLW86YmVmb3Jle2NvbnRlbnQ6Iu6bkSJ9LnZhbi1pY29uLWhvdC1zYWxlLW86YmVmb3Jle2NvbnRlbnQ6Iu6bkiJ9LnZhbi1pY29uLWhvdDpiZWZvcmV7Y29udGVudDoi7puTIn0udmFuLWljb24tbGlrZTpiZWZvcmV7Y29udGVudDoi7puUIn0udmFuLWljb24taWRjYXJkOmJlZm9yZXtjb250ZW50OiLum5UifS52YW4taWNvbi1saWtlLW86YmVmb3Jle2NvbnRlbnQ6Iu6blyJ9LnZhbi1pY29uLWhvdC1zYWxlOmJlZm9yZXtjb250ZW50OiLum5gifS52YW4taWNvbi1sb2NhdGlvbi1vOmJlZm9yZXtjb250ZW50OiLum5kifS52YW4taWNvbi1sb2NhdGlvbjpiZWZvcmV7Y29udGVudDoi7puaIn0udmFuLWljb24tbGFiZWw6YmVmb3Jle2NvbnRlbnQ6Iu6bmyJ9LnZhbi1pY29uLWxvY2s6YmVmb3Jle2NvbnRlbnQ6Iu6bnCJ9LnZhbi1pY29uLWxhYmVsLW86YmVmb3Jle2NvbnRlbnQ6Iu6bnSJ9LnZhbi1pY29uLW1hcC1tYXJrZWQ6YmVmb3Jle2NvbnRlbnQ6Iu6bniJ9LnZhbi1pY29uLWxvZ2lzdGljczpiZWZvcmV7Y29udGVudDoi7pufIn0udmFuLWljb24tbWFuYWdlcjpiZWZvcmV7Y29udGVudDoi7pugIn0udmFuLWljb24tbW9yZTpiZWZvcmV7Y29udGVudDoi7puhIn0udmFuLWljb24tbGl2ZTpiZWZvcmV7Y29udGVudDoi7puiIn0udmFuLWljb24tbWFuYWdlci1vOmJlZm9yZXtjb250ZW50OiLum6MifS52YW4taWNvbi1tZWRhbDpiZWZvcmV7Y29udGVudDoi7pukIn0udmFuLWljb24tbW9yZS1vOmJlZm9yZXtjb250ZW50OiLum6UifS52YW4taWNvbi1tdXNpYy1vOmJlZm9yZXtjb250ZW50OiLum6YifS52YW4taWNvbi1tdXNpYzpiZWZvcmV7Y29udGVudDoi7punIn0udmFuLWljb24tbmV3LWFycml2YWwtbzpiZWZvcmV7Y29udGVudDoi7puoIn0udmFuLWljb24tbWVkYWwtbzpiZWZvcmV7Y29udGVudDoi7pupIn0udmFuLWljb24tbmV3LW86YmVmb3Jle2NvbnRlbnQ6Iu6bqiJ9LnZhbi1pY29uLWZyZWUtcG9zdGFnZTpiZWZvcmV7Y29udGVudDoi7purIn0udmFuLWljb24tbmV3c3BhcGVyLW86YmVmb3Jle2NvbnRlbnQ6Iu6brCJ9LnZhbi1pY29uLW5ldy1hcnJpdmFsOmJlZm9yZXtjb250ZW50OiLum60ifS52YW4taWNvbi1taW51czpiZWZvcmV7Y29udGVudDoi7puuIn0udmFuLWljb24tb3JkZXJzLW86YmVmb3Jle2NvbnRlbnQ6Iu6bryJ9LnZhbi1pY29uLW5ldzpiZWZvcmV7Y29udGVudDoi7puwIn0udmFuLWljb24tcGFpZDpiZWZvcmV7Y29udGVudDoi7puxIn0udmFuLWljb24tbm90ZXMtbzpiZWZvcmV7Y29udGVudDoi7puyIn0udmFuLWljb24tb3RoZXItcGF5OmJlZm9yZXtjb250ZW50OiLum7MifS52YW4taWNvbi1wYXVzZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6btCJ9LnZhbi1pY29uLXBhdXNlOmJlZm9yZXtjb250ZW50OiLum7UifS52YW4taWNvbi1wYXVzZS1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pu2In0udmFuLWljb24tcGVlci1wYXk6YmVmb3Jle2NvbnRlbnQ6Iu6btyJ9LnZhbi1pY29uLXBlbmRpbmctcGF5bWVudDpiZWZvcmV7Y29udGVudDoi7pu4In0udmFuLWljb24tcGFzc2VkOmJlZm9yZXtjb250ZW50OiLum7kifS52YW4taWNvbi1wbHVzOmJlZm9yZXtjb250ZW50OiLum7oifS52YW4taWNvbi1waG9uZS1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pu7In0udmFuLWljb24tcGhvbmUtbzpiZWZvcmV7Y29udGVudDoi7pu8In0udmFuLWljb24tcHJpbnRlcjpiZWZvcmV7Y29udGVudDoi7pu9In0udmFuLWljb24tcGhvdG8tZmFpbDpiZWZvcmV7Y29udGVudDoi7pu+In0udmFuLWljb24tcGhvbmU6YmVmb3Jle2NvbnRlbnQ6Iu6bvyJ9LnZhbi1pY29uLXBob3RvLW86YmVmb3Jle2NvbnRlbnQ6Iu6cgCJ9LnZhbi1pY29uLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiLunIEifS52YW4taWNvbi1wbGF5OmJlZm9yZXtjb250ZW50OiLunIIifS52YW4taWNvbi1waG9uZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6cgyJ9LnZhbi1pY29uLXBvaW50LWdpZnQtbzpiZWZvcmV7Y29udGVudDoi7pyEIn0udmFuLWljb24tcG9pbnQtZ2lmdDpiZWZvcmV7Y29udGVudDoi7pyFIn0udmFuLWljb24tcGxheS1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pyGIn0udmFuLWljb24tc2hyaW5rOmJlZm9yZXtjb250ZW50OiLunIcifS52YW4taWNvbi1waG90bzpiZWZvcmV7Y29udGVudDoi7pyIIn0udmFuLWljb24tcXI6YmVmb3Jle2NvbnRlbnQ6Iu6ciSJ9LnZhbi1pY29uLXFyLWludmFsaWQ6YmVmb3Jle2NvbnRlbnQ6Iu6ciiJ9LnZhbi1pY29uLXF1ZXN0aW9uLW86YmVmb3Jle2NvbnRlbnQ6Iu6ciyJ9LnZhbi1pY29uLXJldm9rZTpiZWZvcmV7Y29udGVudDoi7pyMIn0udmFuLWljb24tcmVwbGF5OmJlZm9yZXtjb250ZW50OiLunI0ifS52YW4taWNvbi1zZXJ2aWNlOmJlZm9yZXtjb250ZW50OiLunI4ifS52YW4taWNvbi1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoi7pyPIn0udmFuLWljb24tc2VhcmNoOmJlZm9yZXtjb250ZW50OiLunJAifS52YW4taWNvbi1yZWZ1bmQtbzpiZWZvcmV7Y29udGVudDoi7pyRIn0udmFuLWljb24tc2VydmljZS1vOmJlZm9yZXtjb250ZW50OiLunJIifS52YW4taWNvbi1zY2FuOmJlZm9yZXtjb250ZW50OiLunJMifS52YW4taWNvbi1zaGFyZTpiZWZvcmV7Y29udGVudDoi7pyUIn0udmFuLWljb24tc2VuZC1naWZ0LW86YmVmb3Jle2NvbnRlbnQ6Iu6clSJ9LnZhbi1pY29uLXNoYXJlLW86YmVmb3Jle2NvbnRlbnQ6Iu6cliJ9LnZhbi1pY29uLXNldHRpbmc6YmVmb3Jle2NvbnRlbnQ6Iu6clyJ9LnZhbi1pY29uLXBvaW50czpiZWZvcmV7Y29udGVudDoi7pyYIn0udmFuLWljb24tcGhvdG9ncmFwaDpiZWZvcmV7Y29udGVudDoi7pyZIn0udmFuLWljb24tc2hvcDpiZWZvcmV7Y29udGVudDoi7pyaIn0udmFuLWljb24tc2hvcC1vOmJlZm9yZXtjb250ZW50OiLunJsifS52YW4taWNvbi1zaG9wLWNvbGxlY3QtbzpiZWZvcmV7Y29udGVudDoi7pycIn0udmFuLWljb24tc2hvcC1jb2xsZWN0OmJlZm9yZXtjb250ZW50OiLunJ0ifS52YW4taWNvbi1zbWlsZTpiZWZvcmV7Y29udGVudDoi7pyeIn0udmFuLWljb24tc2hvcHBpbmctY2FydC1vOmJlZm9yZXtjb250ZW50OiLunJ8ifS52YW4taWNvbi1zaWduOmJlZm9yZXtjb250ZW50OiLunKAifS52YW4taWNvbi1zb3J0OmJlZm9yZXtjb250ZW50OiLunKEifS52YW4taWNvbi1zdGFyLW86YmVmb3Jle2NvbnRlbnQ6Iu6coiJ9LnZhbi1pY29uLXNtaWxlLWNvbW1lbnQtbzpiZWZvcmV7Y29udGVudDoi7pyjIn0udmFuLWljb24tc3RvcDpiZWZvcmV7Y29udGVudDoi7pykIn0udmFuLWljb24tc3RvcC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pylIn0udmFuLWljb24tc21pbGUtbzpiZWZvcmV7Y29udGVudDoi7pymIn0udmFuLWljb24tc3RhcjpiZWZvcmV7Y29udGVudDoi7pynIn0udmFuLWljb24tc3VjY2VzczpiZWZvcmV7Y29udGVudDoi7pyoIn0udmFuLWljb24tc3RvcC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6cqSJ9LnZhbi1pY29uLXJlY29yZHMtbzpiZWZvcmV7Y29udGVudDoi7pyqIn0udmFuLWljb24tc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoi7pyrIn0udmFuLWljb24tdG9zZW5kOmJlZm9yZXtjb250ZW50OiLunKwifS52YW4taWNvbi10b2RvLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6Iu6crSJ9LnZhbi1pY29uLXRodW1iLWNpcmNsZS1vOmJlZm9yZXtjb250ZW50OiLunK4ifS52YW4taWNvbi10aHVtYi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6Iu6cryJ9LnZhbi1pY29uLXVtYnJlbGxhLWNpcmNsZTpiZWZvcmV7Y29udGVudDoi7pywIn0udmFuLWljb24tdW5kZXJ3YXk6YmVmb3Jle2NvbnRlbnQ6Iu6csSJ9LnZhbi1pY29uLXVwZ3JhZGU6YmVmb3Jle2NvbnRlbnQ6Iu6csiJ9LnZhbi1pY29uLXRvZG8tbGlzdC1vOmJlZm9yZXtjb250ZW50OiLunLMifS52YW4taWNvbi10di1vOmJlZm9yZXtjb250ZW50OiLunLQifS52YW4taWNvbi11bmRlcndheS1vOmJlZm9yZXtjb250ZW50OiLunLUifS52YW4taWNvbi11c2VyLW86YmVmb3Jle2NvbnRlbnQ6Iu6ctiJ9LnZhbi1pY29uLXZpcC1jYXJkLW86YmVmb3Jle2NvbnRlbnQ6Iu6ctyJ9LnZhbi1pY29uLXZpcC1jYXJkOmJlZm9yZXtjb250ZW50OiLunLgifS52YW4taWNvbi1zZW5kLWdpZnQ6YmVmb3Jle2NvbnRlbnQ6Iu6cuSJ9LnZhbi1pY29uLXdhcC1ob21lOmJlZm9yZXtjb250ZW50OiLunLoifS52YW4taWNvbi13YXAtbmF2OmJlZm9yZXtjb250ZW50OiLunLsifS52YW4taWNvbi12b2x1bWUtbzpiZWZvcmV7Y29udGVudDoi7py8In0udmFuLWljb24tdmlkZW86YmVmb3Jle2NvbnRlbnQ6Iu6cvSJ9LnZhbi1pY29uLXdhcC1ob21lLW86YmVmb3Jle2NvbnRlbnQ6Iu6cviJ9LnZhbi1pY29uLXZvbHVtZTpiZWZvcmV7Y29udGVudDoi7py/In0udmFuLWljb24td2FybmluZzpiZWZvcmV7Y29udGVudDoi7p2AIn0udmFuLWljb24td2VhcHAtbmF2OmJlZm9yZXtjb250ZW50OiLunYEifS52YW4taWNvbi13ZWNoYXQtcGF5OmJlZm9yZXtjb250ZW50OiLunYIifS52YW4taWNvbi13YXJuaW5nLW86YmVmb3Jle2NvbnRlbnQ6Iu6dgyJ9LnZhbi1pY29uLXdlY2hhdDpiZWZvcmV7Y29udGVudDoi7p2EIn0udmFuLWljb24tc2V0dGluZy1vOmJlZm9yZXtjb250ZW50OiLunYUifS52YW4taWNvbi15b3V6YW4tc2hpZWxkOmJlZm9yZXtjb250ZW50OiLunYYifS52YW4taWNvbi13YXJuLW86YmVmb3Jle2NvbnRlbnQ6Iu6dhyJ9LnZhbi1pY29uLXNtaWxlLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6Iu6diCJ9LnZhbi1pY29uLXVzZXItY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6Iu6diSJ9LnZhbi1pY29uLXZpZGVvLW86YmVmb3Jle2NvbnRlbnQ6Iu6diiJ9LnZhbi1pY29uLWFkZC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6Iu6ZnCJ9LnZhbi1pY29uLWFkZDpiZWZvcmV7Y29udGVudDoi7pmdIn0udmFuLWljb24tYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoi7pmeIn0udmFuLWljb24tYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6Iu6ZnyJ9LnZhbi1pY29uLWFycm93OmJlZm9yZXtjb250ZW50OiLumaAifS52YW4taWNvbi1hZnRlci1zYWxlOmJlZm9yZXtjb250ZW50OiLumaEifS52YW4taWNvbi1hZGQtbzpiZWZvcmV7Y29udGVudDoi7pmiIn0udmFuLWljb24tYWxpcGF5OmJlZm9yZXtjb250ZW50OiLumaMifS52YW4taWNvbi1hc2NlbmRpbmc6YmVmb3Jle2NvbnRlbnQ6Iu6ZpCJ9LnZhbi1pY29uLWFwcHMtbzpiZWZvcmV7Y29udGVudDoi7pmlIn0udmFuLWljb24tYWltOmJlZm9yZXtjb250ZW50OiLumaYifS52YW4taWNvbi1hd2FyZDpiZWZvcmV7Y29udGVudDoi7pmnIn0udmFuLWljb24tYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoi7pmoIn0udmFuLWljb24tYXdhcmQtbzpiZWZvcmV7Y29udGVudDoi7pmpIn0udmFuLWljb24tYXVkaW86YmVmb3Jle2NvbnRlbnQ6Iu6ZqiJ9LnZhbi1pY29uLWJhZy1vOmJlZm9yZXtjb250ZW50OiLumasifS52YW4taWNvbi1iYWxhbmNlLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6Iu6ZrCJ9LnZhbi1pY29uLWJhY2stdG9wOmJlZm9yZXtjb250ZW50OiLuma0ifS52YW4taWNvbi1iYWc6YmVmb3Jle2NvbnRlbnQ6Iu6ZriJ9LnZhbi1pY29uLWJhbGFuY2UtcGF5OmJlZm9yZXtjb250ZW50OiLuma8ifS52YW4taWNvbi1iYWxhbmNlLW86YmVmb3Jle2NvbnRlbnQ6Iu6ZsCJ9LnZhbi1pY29uLWJhci1jaGFydC1vOmJlZm9yZXtjb250ZW50OiLumbEifS52YW4taWNvbi1iYXJzOmJlZm9yZXtjb250ZW50OiLumbIifS52YW4taWNvbi1iYWxhbmNlLWxpc3QtbzpiZWZvcmV7Y29udGVudDoi7pmzIn0udmFuLWljb24tYmlydGhkYXktY2FrZS1vOmJlZm9yZXtjb250ZW50OiLumbQifS52YW4taWNvbi1ib29rbWFyazpiZWZvcmV7Y29udGVudDoi7pm1In0udmFuLWljb24tYmlsbDpiZWZvcmV7Y29udGVudDoi7pm2In0udmFuLWljb24tYmVsbDpiZWZvcmV7Y29udGVudDoi7pm3In0udmFuLWljb24tYnJvd3NpbmctaGlzdG9yeS1vOmJlZm9yZXtjb250ZW50OiLumbgifS52YW4taWNvbi1icm93c2luZy1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiLumbkifS52YW4taWNvbi1ib29rbWFyay1vOmJlZm9yZXtjb250ZW50OiLumboifS52YW4taWNvbi1idWxiLW86YmVmb3Jle2NvbnRlbnQ6Iu6ZuyJ9LnZhbi1pY29uLWJ1bGxob3JuLW86YmVmb3Jle2NvbnRlbnQ6Iu6ZvCJ9LnZhbi1pY29uLWJpbGwtbzpiZWZvcmV7Y29udGVudDoi7pm9In0udmFuLWljb24tY2FsZW5kYXItbzpiZWZvcmV7Y29udGVudDoi7pm+In0udmFuLWljb24tYnJ1c2gtbzpiZWZvcmV7Y29udGVudDoi7pm/In0udmFuLWljb24tY2FyZDpiZWZvcmV7Y29udGVudDoi7pqAIn0udmFuLWljb24tY2FydC1vOmJlZm9yZXtjb250ZW50OiLumoEifS52YW4taWNvbi1jYXJ0LWNpcmNsZTpiZWZvcmV7Y29udGVudDoi7pqCIn0udmFuLWljb24tY2FydC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pqDIn0udmFuLWljb24tY2FydDpiZWZvcmV7Y29udGVudDoi7pqEIn0udmFuLWljb24tY2FzaC1vbi1kZWxpdmVyOmJlZm9yZXtjb250ZW50OiLumoUifS52YW4taWNvbi1jYXNoLWJhY2stcmVjb3JkLW86YmVmb3Jle2NvbnRlbnQ6Iu6ahiJ9LnZhbi1pY29uLWNhc2hpZXItbzpiZWZvcmV7Y29udGVudDoi7pqHIn0udmFuLWljb24tY2hhcnQtdHJlbmRpbmctbzpiZWZvcmV7Y29udGVudDoi7pqIIn0udmFuLWljb24tY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6Iu6aiSJ9LnZhbi1pY29uLWNoYXQ6YmVmb3Jle2NvbnRlbnQ6Iu6aiiJ9LnZhbi1pY29uLWNsZWFyOmJlZm9yZXtjb250ZW50OiLumosifS52YW4taWNvbi1jaGF0LW86YmVmb3Jle2NvbnRlbnQ6Iu6ajCJ9LnZhbi1pY29uLWNoZWNrZWQ6YmVmb3Jle2NvbnRlbnQ6Iu6ajSJ9LnZhbi1pY29uLWNsb2NrOmJlZm9yZXtjb250ZW50OiLumo4ifS52YW4taWNvbi1jbG9jay1vOmJlZm9yZXtjb250ZW50OiLumo8ifS52YW4taWNvbi1jbG9zZTpiZWZvcmV7Y29udGVudDoi7pqQIn0udmFuLWljb24tY2xvc2VkLWV5ZTpiZWZvcmV7Y29udGVudDoi7pqRIn0udmFuLWljb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiLumpIifS52YW4taWNvbi1jbHVzdGVyLW86YmVmb3Jle2NvbnRlbnQ6Iu6akyJ9LnZhbi1pY29uLWNvbHVtbjpiZWZvcmV7Y29udGVudDoi7pqUIn0udmFuLWljb24tY29tbWVudC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoi7pqVIn0udmFuLWljb24tY2x1c3RlcjpiZWZvcmV7Y29udGVudDoi7pqWIn0udmFuLWljb24tY29tbWVudDpiZWZvcmV7Y29udGVudDoi7pqXIn0udmFuLWljb24tY29tbWVudC1vOmJlZm9yZXtjb250ZW50OiLumpgifS52YW4taWNvbi1jb21tZW50LWNpcmNsZTpiZWZvcmV7Y29udGVudDoi7pqZIn0udmFuLWljb24tY29tcGxldGVkLW86YmVmb3Jle2NvbnRlbnQ6Iu6amiJ9LnZhbi1pY29uLWNyZWRpdC1wYXk6YmVmb3Jle2NvbnRlbnQ6Iu6amyJ9LnZhbi1pY29uLWNvdXBvbjpiZWZvcmV7Y29udGVudDoi7pqcIn0udmFuLWljb24tZGViaXQtcGF5OmJlZm9yZXtjb250ZW50OiLump0ifS52YW4taWNvbi1jb3Vwb24tbzpiZWZvcmV7Y29udGVudDoi7pqeIn0udmFuLWljb24tY29udGFjdC1vOmJlZm9yZXtjb250ZW50OiLump8ifS52YW4taWNvbi1kZXNjZW5kaW5nOmJlZm9yZXtjb250ZW50OiLumqAifS52YW4taWNvbi1kZXNrdG9wLW86YmVmb3Jle2NvbnRlbnQ6Iu6aoSJ9LnZhbi1pY29uLWRpYW1vbmQtbzpiZWZvcmV7Y29udGVudDoi7pqiIn0udmFuLWljb24tZGVzY3JpcHRpb24tbzpiZWZvcmV7Y29udGVudDoi7pqjIn0udmFuLWljb24tZGVsZXRlOmJlZm9yZXtjb250ZW50OiLumqQifS52YW4taWNvbi1kaWFtb25kOmJlZm9yZXtjb250ZW50OiLumqUifS52YW4taWNvbi1kZWxldGUtbzpiZWZvcmV7Y29udGVudDoi7pqmIn0udmFuLWljb24tY3Jvc3M6YmVmb3Jle2NvbnRlbnQ6Iu6apyJ9LnZhbi1pY29uLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6Iu6aqCJ9LnZhbi1pY29uLWVsbGlwc2lzOmJlZm9yZXtjb250ZW50OiLumqkifS52YW4taWNvbi1kb3duOmJlZm9yZXtjb250ZW50OiLumqoifS52YW4taWNvbi1kaXNjb3VudC1vOmJlZm9yZXtjb250ZW50OiLumqsifS52YW4taWNvbi1lY2FyZC1wYXk6YmVmb3Jle2NvbnRlbnQ6Iu6arCJ9LnZhbi1pY29uLWVudmVsb3AtbzpiZWZvcmV7Y29udGVudDoi7pquIn1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LWZhbWlseTp2YW50LWljb247Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmF1dG87c3JjOnVybChkYXRhOmZvbnQvd29mZjI7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R01nQUJBQUFBQUdOQUFBMEFBQUFBNm5nQUFHTGxBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwWkdWRTBjR2g0R1lBQ0NXaEVJQ29PcUhJTEtGQXVFRGdBQk5nSWtBNFFVQkNBRmhRNEhsbEFiZTdkRkIycllPSUF4T0cvbktPckVwS1diR2JWbFZIUlo5djgxNlRpczBSYmhQQzRKWlFrMXdzNzJXbEJHSkpJc0wzYmM1WS94NUhkdEJyendvWlFYL0xzL3VBaHNYTVpJVms3M0RzL250dmQzY2V6dmhPMS8ySEV4cm8zQjJJRC80ZDdHeGpYT2Jad3F4eTBnRzhwUVBEQkZNQVc5ODBoVE5JdWhwcVpsZVZ3SmxIU0tSNldrRE0zS0VDdXowODNRdSs4QkNuYWJkKzR0c2VtUkd0Qm5IQkFIeHVUbXVMV05VYmQ3ZnVTWkE4OGZPQmx6ZWtDcWZEUG5WMUJBcnBUS2pwL3IwQWZFMCtMYzk3U1hOYTN1Z2FTcVcyQWZJbzVHaHIyWUFvczhIK2tyZlEzTDhEd0ErRjFWNE1lY3I5SlYybGpTTS93VXpRV0FJVGx4b0pTZkVtZnNpMzIxcndISDJUamhFdVVQZ05KdStIY3R5NXVGM2wwQ3kwa0VhUjI4cW14ZDhoS2tBdDVUcmMzOEpyOVBJdGplVGh6Vm1UVUJqNXo4MnRTOFVQcGFnM2p3N1djaHlvYU5HdWNaWXhtY1YxSmI2dkpCcW5DTWtQZEtuZFBqdWxFYnQyVlNCTlM0WlZ0SVpMTjZUOU9uTGM0Y09CdmU2dmM2bTFwbEhPMG94c1hLUC9lVy8yWm51WHlkZEF1S1FiZ1lSMUVLNGNBaHJPZi9OOVhlWDg2UVZPRC9EcVJUL0NGWFRxY1BLVlZ1dWp2M3ZjRzhlVy9lWURBZ3VPQ0E1Q0pJYXhDZy9pSklheENnZGdrQ3dnbmswcUMwMUJGL3lIRUFydmFRM0FTUjBrWUhPdVZRNWRqRlRzZlZsbHVVTGwyVXJsTm8zZlV1U3BjdTNaUXVxcENXcFZZcm1XS25UQXlpZElOYlhsdnU4YnUvL2RJV2M1RHNiUzdHSUtIRVBKRllqcXVXVkgvM2IvZkg5SHYrMjZPOWp1MjFXbEdwb2dFU1NOQWVZNU1peWtXRUV4U1ZPT0s0N1VNaHZhUzF4UFZxRFd2eVhBQUFvQmN3UlFsdkkvYndDL2R0a0lTRXNjNGxvVm9USWJJVkNaMEFJSkhZZkRNZ3I5Y1RKcGFuVGVRTjlBdUlocnp2ZjAwbWdyOC81TmVuMTRMTGp4Ti9MQ0wyZUhwZ1Fid0hWaTlERWpOQlBBWmZUQXNLd25NU3dQN3FDN3dCQVJBZTZ4OWJIcGY5V09UeEFQQTQ4WEZSN2oydStEWi9MT0Jzd1BzQnAxVE9BRVJaUVNnSVZwemYvZmVBdnp2STQ3RjZBRkY2QkxoSEN1a1pGNDVMVk10QkpLbG5JdkFHRkh0SkFHUkFhSG9MUWlLTFNOcUtHSi9pU2gxcTR0WFVSS3Q2SUJkUzVBcFZNSTI2Q2xZVlp1VlFWbmhWWmdZNENZeXpDcE9vcXcxcnNnY0V1N1EzR3V4S1hHM2FKbjBxanhNSFZJbXExanJIbHdKNVBWdHZIclgzS28ySUVmZ2psYmNGbnlZYXRoSzRQZ0tqcWF0T1BiQk1WVjh4R3V3VDFERTBBeEM2eCs1U0pKeUJ6K0ZuMkFrSnhaNGdsckFTdWpTZHhzbGVxL1BIV2JFMFJ5d2lzYWVLOFZFSlpMTHJkaWdrT2F0MnkxQ1pMWXdaMVluUlJwVGRUazY0ZU40Q2ZnZnNqcW51Y3ZEQUxWUjNBMnZsYjJoWDB3TmNleWU1SG1tNWZFQnpkUCtReWIwODVrSDFQdUFOVTc1SnpzdjdaUy9sTG5DNFpvS25WK2RKTGY0Tmxla0N6SEIzWkxlbGZxbXVMNDVKblp2clhKc0prSGsxNStUZGZkcWd3RytpemYzSkNYT2oyUnlpblh2L1ZNZWZDU2RQVk1pWThqalhPbzJNQVA0bUkvQXR5Y2F0a3FtSUFMbjZsMFVxMGxJODdCSUowNHpZd2RxK3VWalpDeFkyalYrcndoREF3Z01wb2l6WmEwNVNZRklJUjNKSFIrSUt4cG5oNDBCcGt6U2lyWkdFT0NBdU9SL0tSQWplNTVDS1pvZDEzNXF6bGZiWE9NdU9QSHgxaDdZeGluSDVVaWovNUR3eTczSGhYMUI1Wkt2VndSRGFucUZVRmZmM3dPblF5eHlXZEVSb2I2cUs3R2kxMm5PaENQdlZ0Wm5JWXRtMk53Zk0zazVFWEEzSCs2WUMyQjVBTjJlakhaUW9mRDUwc2RSY1JXaXEremJabXdXeFVVNCtlMjZYS3lDeVF6MW5rWW1WbFpJcW1Ibkh5bmlNd0FMZzdXMGdlOWlUeHUzSHVpNUx6WmlyclNueGNOelFiclZPRW9ocmJoNFI2aWxFeGRSRzNvazdWNHdselJHT0hpd3YwY0I1MHBaKzNtK3VycUpqdDBueW4xbWR3VFM3R2VCQVpkN2J1cXBPTE9KT3pqc3d3eUhHSFpZVWw2VlNiWHlPRis3MVhSVWQzSVZPd1BONFN4VDlXaXJuR3k2MjRvTml5YzVPcjlvSDBYazdjbnV4TzhwQ3dZYjVoRXpOSWRmc2JyS29yTnFCMlF6d1FRbW4vUXdiNU5SWWNiRHoxbzI2TVNGM2RQZlNySk1pTC9kQUdsUk5ITXRDRVZ0M25EU3NWckhhdWZPRXVzT0RtVEtZOERyaUhOMDdoTDBFenFGa055SnBuTGZGenNWTm1SNzRhaGtrNmdHVGU5Si9HSGxJcEkyR05QbHFaM3IrSWV2RSszV3Q3MDNuK0dvNE93VnV2Q3JBdXpqdW9NeHRFeFZLT1BkbHl1aTl1STVBb3FkeEY4M0tHSVVqSW9JZkREMDZuT1h1M1NNVWlqdjBxYzQvd25rbUkxN1cyRUJBcGRKQU5YNHpGTkM0c1ZyaGZLSkNpSE1mSFlNTEtxdTRFMzdRelcvbWhTTmZHY1lYWXh3elIwblZpTVd5Q3pBaVRPUWNLVEtaTGNkdUorRndKVUd1R0Z3cmJtT1VueUtFT3VYWmlWVXVnT05SRkxTK2hiYmlrRDZOT3dqTU5IV2RseWhrS0c2NEdQdUdnbkVZYTVXcUIyS2lTZ1gxTW1md0VCbTAydmhFMWRabDlseU5TQ0ZocnNyZmU1WEdpcVZhMWNNa1UrVXdUbFF4VE9QdjFYaW9XWDVnQi9HU0tNeXhEV2FmdnMvRkRUazZ0K1hnVmg1aERyRURLcVZDSkJHVGtTWVVnbGp2RXFRNmJYOGluMGl1dGFXVUxjU2lyTENRY2grQis0THFXTFpWdTk2RjNZVGNVV0ViVGZVdVdNWUdsWUxjbDF6ZENUcEVCRGZzMDE0TTZPaVltdnNNQ0lYd3gwVjdKQXhqZlJ5S2tWRmFHRVZzQ0JuWjI1Q1BySFkxSDBaSFNHRWNMNmN3M1pYclY0ZmgrOHR0RXhGS09QWGxWVG1aMmg4c3kyTDczUS9LRjZoMEFFallDdUVMSVZra0w5VGU4K090S0VGOTdVdW55bDRZU2FKVWtLbU1vY0NPV3dqWS9IaFJrMk0xWXBLRTgwVGtWa3BPelJQeFhmY1lwZm93WUVPbytKYlJJL2xCcEZ2MWlLaFh0ZkRjM3A2UEsySzByS1FLcnFpWk5wWmdRdDRwSHhvdHh6Z0dpMmxkUGRCWVgrM01ZNWt2ZER0czVGNlhQQVJsMFlOTkp2L0dHSnd3Y01DcXJGTEg0SGxvM1Mwc3h6YUFpY01oWnlmZUVlQnRpdEZFY3NjVURrVU5ER3RxbXJ6QURVMWtZbkxPY2xPNHliYStkd21TSzRpeCtxeXJOUE00aTR6MHRpbndDQUVCYnkrUFBaeTJwZG1pVm1UVFUxbTVRZFYrMmlTRWNWKy9JQlgycjJEdUw3MGJ6Yjg3VitENWpsMFVtdDFybnk2aHB1ZkxQc1RQRUlkMmZ4S3N3dm52OEU2WmhnTmlPVm42ayswdGJmZkN2SHpsNzlmVzFWdVRua2hUQ0ZzcFMrdVpuRXpMbkZtcXdMOUw1U2JmM2dVK0dDT014K0NKOWR2bElnNXFoSllnbHRCTUhjRUtRNHc5QWFWSGViblhUKzBSZlNmNFBQb3kvT29NNHdZa2lJcmJLQ05YRUl4TCt0UVRibFM3Zm1SZS9ZVS9uMXJYZmwwbU51U2VubllGWkZCWEQ1b0RwZllON0w0dkx2UitCb3pwNWZETDZQUGdpMVhhbjFmVzlUdC92VFF2WGtaVUNQN1J1cFNFczV3MmROdlVsaVRlckJWVVVyQ0Rza2x3QUZBU2ptKzdibFhOVEtsZFB3TGtNODJsTk1RTS93ejd6UHEvck00a290SXYvcnJaRlh5OGZhUC9zYUUrQXR6ZHlpcVF5OWt4MXRqem5XYW1GdkEybG9zNjRPTkNnOWVyeDgwUkdqWUNHYnRYeUZrUGdpRGQ0cTFGbGFjZ29PNitSVWVxMGdrcEZmYmVQWndYUXh5d1l0QnNCdFExb2V2VWhsVjd6ckVmanJaMXpPRk9NM0pyNTJPcVZPZHdrTUxUbVo3cFZ2Y0xGU3F2RHFwYzFqc2V2dU1JczQxSHZoOGpFZElyNVZDeiszY2hjRHhlMDlJUzBud1ZZRFkyUlhPdG5rK2pTdzc3ZzdsckJldnZ5ZVBmaEl3T2xrUnE0WVc5TTVVZkhHU1dablVhcHNYcHJhaDJBaDR6VUJVbzNMai9hdEErcHAxd1duSnZINkpVcFlMei9YM1p1eUxuKzgwWXpiblpHMy9MS2F6dDNJVjJmaG4yYThwa3hnRzhJaW9ETDFwbzhCMFhkc2lVc3JHLzBMNFRoQSs5TVdiU01TK2QyZXRtdWVyMU1hV2NUamZxTmhoU0QrRXhFdnRTQlZVb3lMMVJUVWM5L0tTOS9IUjA2YnRvUER3cUpuQ1FDR1oxckNNT3VEZjBibFJEN3NyUDl0TUpCR3hlTEZpWndoR0d6dnRiWEZ4VkNKNzI1U3FnSzN2THU3YTczOVB1SmdTMkJjalpKUzVPRlNpb0V6QXZQSk0vdEw5Z3A4cGlhU2hUSFZzMTV4Qk52ZnA4OWpEZ2FSbnk5MnhLZjJ2bG1jQU9aRE9RRE11MzF0ZGV0N3RXbncyZFVMRkMxVjRTTGRuYWNHdFFrNGR3SXBwd1ZnS09weGowYXNQb1o5eW85dWJ5MDc3bFMwWWdtM1pnYjZ5N3didlhub3VXUktvZEtwWVRPcHZyYnc3b040NDFtYlN1LzVheVltak5Yam4rYmZhaWJzUHZiV3paa2tPNmc5eFVaT2ZKVkVHS1MyMHBidHl4TThDblZadlJ4dlVwZ0FFSTlGbjNMZDU1UTQ3cERnSWJnUmQweldLVFBZdzZ2UlFlbytpYlo4K2pLQTNoREkxZjN3bFRqWmtVbGJ1Zk92d1JuRnhKaTBkSjI4VmQ4QmR3a0VTaWs0UitINXR3cjFOUk1Ua3d1blpDZVhCMlJjWnZjeVcxRXpMN3B6WDBxSmdDeDZZVk1CcjY4TGlVNlU2bjRxL1J1SVBDQjgvNEFkR0tXWFRuLzQ0SCs4SUJWOXhEUmpKZlZPaThyRm5kK1A5MjVsbHdTOXVXUE1EZ1NHaXU0eUlvQ2ZnUmh0QVNSUHcxaW9RRkF3VzZUMkNTYk9JQmpiaXYybjFjUlNaeGpjV3BkMWt5Rm80dk5KR1R4aXcvY3NKNUZ2WU41K2FmVTZ6MTdqMi9pMVBQYlZBd1dpZGM4VG1UaXhsenhwaTVPeStiTkhvZjRsc21sQWwxOHZKbnB2ZVV0QWFuRk9oTnpxUTAzRE1PLzJpRXFqV3ZncHBQWXZYSDk3YkNPck1iOTl0aDJvczZTWG5MTzk2Tm5jQzJGSHFwSmRpTk9nb3IzeFIxR1FQNm1QMlNIa0tJcGg1TmNTOS9ER1RXcW1PQXdoOWZSSVFoNS9URFhxZnNlVkRCV0RRNFBMYUlUZFh0SDM1clZNSGFWd3UvTmNFTklrakV6dXdOMm5kTHJWOEhkVGNhZTBidUxZK2Vmb2kxaytaeUhRTU9qV09GZS8zczRpUzlWcUdPRUk0cEZZQXBBTFlxd3ZYZW85TGlLV0k1SGhIbUZpMW4zbGFwNTM0Ky9rMkYyUHNyNnBXcmMwcVJJNEJFWkgyQUJPY2IzaHFRYk9JQnFqTjcvTXI2czBJTC9JUzEyY09xZ2VxcjRUV0pLdnRCZksxdTduS0wycEhCK3BRKzVLWnRHSVNEMVBGTnhqeXF3K1dIOTNDS3dwWWs5UFU5RmNyRXJTQXBLSWdxNytRMElkQkFteHhpQ3FNVWN3RUhFVXV6QUdVL0ZOSXVHYmtwcUNXZzRCeUFXcHNzOTk5Zkc4ejVJdndLeFo5VlFobmxoekdvTUVJOHFLaFB6MU9iRW1NTU1NQlh0ZldYdVNoeHJlN0R5M1g3ZHoycVRCSFdGeXdMUG9qTzZqQktDeld1UmJlbmZaU2dSZ3dmbHc1SGJDT3VDeDlSZTA1WWhtUmRLa0dOVUF4a1pUNnpCRjJteVdTZjc3eXcxNW1NdHFJckxlWmIwUFJ2S0lxdzJ4R1VXN3VNTVFEWDZXSDg2MjFSTnBaSHFpcmQ3Sko5MW1sU1E4aEpyVE9NQks4SkNQOVNSL2ZmUGNydUF5dllvb1JoU1VyQ0xvczRRN2pJU2VDL0wxUHlpUWNqTGpsQzVXZDQ3d0JtNTJTdERnOUVnMXhIeTljTTJ5VVpTQlhpcFNHUGV1TGxNVWFBRTk2cGh4K3IzcVhVWWhWMktTdTUrQUZVZXZHTU5NM1kwcys4bkpzS3hCZHZLWW9WV2M3V2VyMFNCclk2cjFWSWMwV0xvSzVWa1c1dERiaXpWZWFIV3RybHl5TUhLTHhTSFNPYytuQm5UanowS0p0V053eE9lLzFlVTdwMUplVUNaandXN3JnNFFJckJGUVdRYVBOZFFxWDA4R1JxV2lqZ09hUjBsVWZtQjZKd2JIM2ZqdmhpbWwxMVR5MVhyNnd4OVlPKytuRFFLb0hhV0JETlJneTQyTUs0dHYzUGgwelg5UlhiSGV0d2hvYTlpRDJQZ213Y2JNU0dzWGVFcnZOTEFLQUN0R2lwRnBhSFZzeW9ERVN6Umh6SWFSNEJaS2dEUjVwNlRlaEdnY0dheGFFV3VvbXNDcWFrZEJmTGVqSjRCTndVcVpCQy84bUpKdUh0ZDdBSjFYRUwrMVRSb0VadVd3azAwV1FqaFVwYnZWYTBudkVvODArcHhEQVNGYkNySU03b3V3ZEVBSGZLUGJnRXpXbWo5dHlvY3JvWVc2QlNKSnZpRUJ1K29QbHpjeXM3QTNqOXRNNUloRnVpRWczaFdCWU51clBueHR2TmJoeHUrZTdTUUJQb3NRdmJ0QmNNbENCR05FM3JQdGlrRy91bzJveFp1ZW93VlFqV2VXSDE1RWlWbTNzbCt2bDVSRlFnT05mV2NTTU9sQm56S1hLdTJNb1hUVXVWOTIyUXpLSWwwYXg1WDNsdHFoSmZOUXZJdndvR29yS2lGc1h1OC9ETVo3cFpOallydHM0TThTaFJVQWZEdERyYUcveTB2ei9qdnBpUXNaTTFEdHl3VjF4MkNvZnE5OEpncFkrbXJWR0VmVFNtNGNWY3Z5UVZodHc0cEFwWHZEZVVGU3c2ZE5HZ0RUdzFpb1dHZi94SkZCbzdlbDRpQ0JvL0VCRVdldlJncHB4LzRJSXBMdURrOWFab0Vpc2VPanV1dHdVQk1tY2hQRTJPYTFCcjUzdFIxbXBSd00xWXBhR3djaHNuTk5vWDVlVmZ3RkJFNElaODc3dlVjTnN5a0NabWJmZTdGU1dOOElGcTNaTCtTSTZwUThWRytuYVN2ZlhxZU82WllmOWUvTUtRcnpsZm5jNG5OUWx4YVNFOHpDUUIvMTBOS1lvUlphSTBSZEhHL25vM1lEL1g1SGhndDJINi9pK0s3SmxsRjJyM2ZNbjNxci84eXR4RFVlak1Mci9ZZDB6VGtXRjczVlE3TkQvNXQvVTFyZ2VJR0pNeDUwWVA3bzI3enltMkJ0YmhVd0lZVFlrSkNYMkw1a0FTM202alhDM0w0aUw1REVraVVqdnVLVStxN1VYWWwwU1lZSFJJRXJQYThFMEFWclM5R0h4MVRBRE9QdUMzK2hlUTV3S1dML1M2eTAvbmcyWmJraWdhTHkvTjZqRHAzYXZkV1RZVExKM2V1djM4YmtkczA1dDkrM1dsNWJQaGlya2Q1WmNPR0t3Wmt3MHREYkc1dGEwWUxjMVNLNHh2eG1ZTHRSYStJVXJ6SXhiRkdLWHc2bFh0UGQxTTNtK05FT0Rqa0ZJQnY4K0djbVdGdzR6dTZJR3REbWJHQ3hkSUZDSlYyRlptZG96Y0FYWkZLVDBZS3BaS1FXcjByZldsMHpOVHExREhqU3RwVXdyOVkwczdvcGNPSXVVVlN5ZUl1YktLcUJFMGZOU2lRZkhUQWNwMDd2ZkNqWS9CNE9ESEgwYUZTT1M5UHZuNDRFZWZFQ3pkMHVNWEN3cEsyRDV0ZmR3Mm81dlBpbFBUbXUzbitjUG85aFNnRkRObC9VVFBlZjF1aXlFMmxwbDVaU2RKWm1PMDdzYURaUWx3QjNnMmtLKzRibk5uSG5wOUFlT1lZS05HNklxVXB0Qm45V1ZQT2tpVS8vZlFQbmYwRzVWSGpRbllkdVptdUgxenpyaUp1N0pXcDhteG00S0p2bUwycnZaMUVVRi8wRDY0WldaazVSbG5VNkNyNzhPRWRXMHJxOCs2bTBNUkdsZWJ6amVNc1ZTZGMyeUpHWEFpcDdVWGx5RDNTVVptbUJJS1o2VWhFZUZMT1o0U2NZcGk1b1JJZkc3Uk9kRmNZQnZ6N053TVcvQ0FDbW5KOE1MaFJKYStwcTVsMnBGNTFyV2k0U3J0bGdnTmtjUU1zZW1sUnZ0bGd2U01xVU01U3ArNHFwUTdkZGc2M3VSd0IrWldYQXJvMjRKZEFqYXA2WUhYbGMrNlU3Rm9rZDlNbFZlekVPTTdFWFJRS05PL0UrS0QwRFo3T2Qzc254RG1WL1FYTUcvREFvdnhmaUlSSVRrVFl6QkVCNFhZUzJBbDI0Z28wUTcxViszcXFabHRWelhuUjJYV29qVEN5Z2pzVnVXMmErZi9QbkZDRWxvQndSbitZOHovNk9Ndm5wQ1IwZXFDbXVQVWpMeDJLbjVublVSNU9QWkUzMmNuUDgzaHM1blZIM01NaVB2c2M4cE5PNEJNRjBJUVhJR0NXUG5LLzN2Z0dZMTE0VHhqem1Ja1k0aWRiR1B0NEx2RDBXWG1qODg0UUx0U29GN1NqQnNOTmdTbk1RUHNsYlVvNlY4UGVlVmlYNHBvTVc2SUFkRkdUbUVKTmNMek9zTE9zeDljTHU4d1pWbDZsaUU4Y2RsYnRVYVVhSTBHUkJMYUtjSmYxaVV6TkhhYUtyYnNTVnppTGZhb2RJazM0bkZKUnBneWNUd0NqblVadTN4dmxKcEV3RFgrYndYM0FpaTBFNFdvR1N1a1RqbkdYVnhLNnc1c1JuY2s5bVJteEJ1aDZEYzJucmhRbHNFYTYyakxsWnp2cWQwS3pzMlJOdngvNmdhL01HREFwR2NvNDFZTThRTGRaeTBCRCthMXdyckVIZGdrSDJvNnVRMFBRV3dtSGFIa0tDM0VnZTdxMWJPRFQ1ZEVORFlCQnB4dEN6Nys2SFB0OXNRL2xFNTg0cUdwbWJXZmNyVytwbktsUm9LQ3E3VGFpU2VYRDVlRlNLaUxtMlUwOXJ1RmpzSEJKZjFCaXQyc2JyTExlQmxpL1BSVzMrTHRZeVowamt0RXNOL3l4SWdPcC8zRDJtNFJkMlIvRXF5Wnk3RnMybzUvbTg3QkxjcEhUN1RCTVpIRkUrQmJkaGNiWFJKMkJZRDlNb1BRV2FvYzRyeE9RQ2h4Sm8xdDRCS2ZqVEdNOE1GRW1hWTNLallSQjdaZFdpa1RWL29VdDc0QUtOclN2TG43ZVc3MEc4Y0FuSVNZVkFDK2dLNGFiUFN0UmdRb0VnQkhZblBvbEJ3aVJBdWpYL3FOaDZKVm10VGFIa1lYRUtBVG1CRm5yb1hRbm5tU1JERzZLKzdzQVVoRXVPRWxyNGRla0JmSHQ2RHBKSm9zTzc5dG1ZWENNR3dzaDdZRTFMZTJMZ2VrV1hNNnI4blVJVnZzMHhRRlVSU1Vad3FtQ3N4MERnTWpBeUhqMW5kTklIZGhjaTl0R1dnazdXMTZFNTZyZzNOUHNjQ0pqTXRiQXhSYnJYWWlpSkFYQ2lhcm91eEdxM2UwaWpGL2VzVUttZmNEL0FZeEVDN2xMTE5MNk4wMDVaU2Z2TlJFcGNDSnprZE9GYXRNZjdyUm5waVNMUmd5RHVpeUc1MnRON3ZXNWZZc0lySElGNW83VmpiVmNoTUpXR0R1T25ObzVrbGJmWU8vV0xHenk5Yk45VDFOMDFaNzVNM1V0WWJMRmZPT3h5Y1U5UTllM3R2Sk9HN2oyOGNZSW1kRWVsWjRxRGF3VzBQeGNYWStFUjFOTnhKRndkZjdKSG9NT1VJM09ESEd4Kzcwek9KWFpGMVhrdGNEWEk3R3pVeml6eTdqaEsxNElRekVWZzU3ek9QT3dVSHJXT2sxTFFjRjZjUUN2SUJpWUtpNHFtQnlxY2loQ0pVNzNsWmo2aWZ5Z21CdUMyd0J4eUI1UzhxcVJIRUpqaFV1WWRSN29pUUJwS0ZXa0tjdTJoQXF5Nm5BMFhLbTFnY1hOUjkrWEVyRmVsazdlbitwS0xYb3d3bXRvYmwvOXRyTjlhMk96UUpmNXJ0dFdmV056bzZiWFJLSDlDdW9wQldLOXRVK01Ua2ZmSEdLdXpEYXNWa1VmbTNSQ3JWMXh1NndjbzlEN0ttSjUvNk1GZGxMTTgydG1JK2RabGhzRnpyMmZBNmNqWFVkNlB4bVZJOGVReS9ZT2FYZHVRbkdSY1lkWEFUNEpIZ004TEM0TW5BSGVmK1c4ajhvSW1IQUhqcjAvN2xOSDg3blRSZ2ZQU25mbmlSeVV3di9OWWpPOTdHbC83dHZFVzE5Y0NHNE9KekVuNDB2aDVkR2MyOEp5aVJzVVZ3WnJzZVNVZ3dkRGdBNjR6akMwKy9JRVRENWJJTWdQS1FBeGlRNjNtSlE1U29ickxXQk5Ka2srdEpjU3I2Y3JFREVxK0Z5eWh6VGtFa0luK1h3cis4RmJUaFhSa3NPbWlFanNJTTV2SlhUTysyMTA5bytaMHJMTDhZWHEyS1RzR2JldG41VURLRVR3TUszQkRrdFN5c2tBdWZ1MGtrSEVycHJ4NGgvR2ZLSzRKb25FV2lzUU9PR3BlZU9GREFnd2RvaytKUUFzWStoY1pVc3p5SWowV1ZMcm9OcTJicjZCZXhMVG5DRW8zcnlkNUp5R2VxbnFFVFRrTkZENEREZEM4eG9MRVdoMFBJcUpFbVN3QWNkd05JbnhFcy9TNU5rbEplaHFhc1ByeUMrZUYzKzNLOFVFQ3gyZE1KREF3QzBnWHg1YmZTMjVCYVRLaWRnR0IrM1cxSVNSeDVpWFpxbmNoN25LVlYrQmRybHVxN3FZR2pyejQvNmJlNTYydXc4ZGtXNDE1aVkrSHhQakZTK1FTVzZaV2RubWd6R2dRVkNyWHNOSHN3Nm5KLzFnTmhpeXR4QnRXNzVjY2IxVmNKaVEvdWNCLzZHRzBCU0xoTGQyNmVXZGpQamRZMldnclZNUzd3RVhzMG4rdnNGYnRrOWo4V2ZlMXhzRWdERGFWMEZBc3paRnNEUUF3eWpXZmh0c2w4aHFJK2d3ZTJZRE1iaWZwdkxoc1pZSk9kRHZVeHZ3dG5CbE14R2p5NjZNbFFWaVBPU0MraG1GVUMxZGIvQ3pmenlaZVd0UTVodjFKbUxaNFM0Q3M2cUVzYkp1eVVwSDZoMXdoWnMyUlgybDVZYnhJZy9JYXhqSkczSFBDMi9WbXQwUWszNDdxVUpMSElCNzA3d0N0cEtxVWh4ZVFLMzhMTDZabHZPck5lNWFrNmlFQ3RjbTFvMkZVUkxKS09RMVZRWTFlSnJ0YTg2aXhqQy9ONitXdlpBZlNPV05VRW1xZ2RFM2F0dlNKTUc5WG9Mc3hodHU4UmNLaDV5LzM2cVczRlQyb1d6OGREdS9MbkZhcU1wdDFnVnpkcG9BcW4rWTVpam83RUR2d2Mzb2RVSitMVjk2cWsycUNsZDRoVURBZ1ZaVTk4TG96T2F0T3BPbmlNdjhrMGhMQ3RndUpFUHFUTlYwaWpUU2VxbnloWWxWaW5nMkE5ckEyTHdURW9ROW9YTzA4UzNiaEhBL1h3T3lKUktuNkxPaU5rR2dzR2lQeWl2dHBPdktvbWtLUTB1T2xYcHJZMnlKNEpKMHdkbGMzL2QzTzJhR3RSanVxTCtxMVJ0ZTdxc0kyaWtFeGQwdXFLRmJtUlA2RWNnbThueU9May8rWmxaNjU1U2YxdjFza0o3WmpKNnVkcXBtUVNScW9aMmh1cnJEbkozY1lia0NSMWtsV3ZHWWQ0N2pQQ1VWWThEdFlSdnc3NGdnSXhxUXBIUzFLc3l1REpIS3ljM2E2VFRCNTRXR1hpdW9GRXpkK0xXckNCcVp6ajREQ1hJM1IwVWpxUVJQYUJqN0E4bTUrWkluQjZGSmQxTW5QQmZuUlQxRXExc1QrUmQ4YmdwdFpxakZpK0MyeFovSVp2SVdZZ0p3UmUyUUNIWWRKd3ZlaUR3aWFEUGkxMmI3cThYV1ByaXcwTnlGbDRZRE5yQStiYWozcVExYVQ1eDJKZWMwdmRSUTBQYThqMmxISk5idGo3ZFhqcW1hSEx6T0o1bXVjUGxnOERhSnVkeWljQkZIc2t6ZC9PREE0Vk1rK0RLTThiWE5ZZmJRRUZZS3V1RFF1eVVVQjJGclgzT3VNWlAxa3grOUZ6M1VGVmlKMnU2QUZXSXdWeEZuTG1uZmRkOUlnc1Z6dGY0S3R0UzdhTnI2ejRsSHBYMXB0dWhzYzdleGJFUThEV1BHVW1JR1FUbnRORnVSUGRlVjZyb1lsb3dzV0p1aStRQk5XVS96dWRFZ1lRZ2t2WkxJdzBNaTVEbUM5bmdHY1d4am1NUFVjZ2dKNFdtWjBaUkVxSkNRenIrTVRjYmFsYVg0bXFhZktxZWd4cTJKcmhXMkR0YzJTTnJqeHA3bko2ODNnQWxtYStHa0pzbVUwbkFmbXFHWE1PRFlhMnhhSjFQWHhnVWpub1hyejlxQ0JvTEJQblNjSWxzZG04eC9OSVIvU1BzNjYwdkJla3RLSENzWmk5ZVJPajd5RHVzdzNid1R5amdUVWtTTnlabnp4ODduNkVPQ2VtUWVLeWd0NEdPZmZQc0ZZdjNPTXFGUmJtU2MrUXJ3bXVmZnZYVFkyZ25JMHp1aUg2N0hhbEs1QUxkWjE2QUhIeGF0WWExS0tuM3dmdEtwZTFHaHhWbmtjbk5MM1RjYmFiQyt0SWd2YmY4Um5ieTlObjFtTFJmVDVqaHVpV0ZwRTJqek1vbWg3a0VnOUNwaGxUYSt2R09NaTdMRDZZMUNzMXFWVWlRTE9zMVozSS9wWkhvcDhkTnVRMUZ5a3RodGpMNWNWYVR3NWZud2xvU0wzUHZOUlh0clNHdm9UQU5vQU95ZWRQUGplSWRYVzZYbXNLaEtzT1l4blFwcVovaEJXeTZmRHB2NW1TYXBGbWkxQWpaTHQ5ZlNwKzNOd0hZWEkvN0NDOFhCejVpZHV4MmVlVWwwaWZ6SHpIODhWamtDN3ZtSjZ6bUhPcWxEbjVwRU8zTVlpMEc0QWRjOU54V3p4M2tMUDR3RDBtSWcwT0ZJRkd3elhJL25VMUhOQjZKQlBFajJHUTUzaEdpb2ljQVhDbTAvMnJjNzVDNWUzRWNyUnh1Z2xUOW1WM2tGanVwTndlNURZekw4Y0QvdW1OT0xzOFZNcnRCS2dDVjYxMWo1a29SMnl2NFFSYU9YZ2Y0Ym5OSnFscVYxa09uaGZIRWpFK1JNNFNmbUFyeU9CUnJzRlBnb1hadURVNXUxMG9WOTBhMU9XTE9JOVpDTGRzUk43b0J2RkpUVkVWdDRzRzdhV0RPM3ZGaTRCeTRDU1NJR0Q5a3Y4c0ZDM3U2NUNVSTJ2d2daZkU5eUlnT0t3M3FTYkRBRzBsc1UxTmFrLzBxT3RNU055S1ZkYndDdzRLV3pKZElORzRWRkRpMVNSUmVBRkU0WkVSbG83SVBQNDNwVldzS1lXODFZVDZNbE9ydFlneHkzSEc5WXQzeXJRcWhGOTlncTVQeno2MVkybkhKSjNacTloV0M3dGJvbTlta0xFNVJwbWNvc2VhcllUdytwM2tEMnc4YlVzTzV4WFFCRERsRlVZVGI2OVJLdGZiNWpTc0xqSzBTT2VoUFhmMGxrSmpZdlg3MDF6NFVHQnpZdDEveXdISTZGSjI3OXFzM3RaaHo2L1RBT2RFTTdOL2o3NFZkNUlITnRiUnYzK28vMEZ6Mjdwazl1NElLWkFya09Yd3VKQWw5WlAxemxHRGZNdWlQcXg2N0ljRkVPQlBVSjhuSXFIZDJuL2ptMjNFcUlCN3lWdW9vZktjNHJRY3lOTXVnWmUxZ0YzcjVxbXBIZE83Y1BndWJFaFNhY3pvOXhSWWRTelhCK2cyYlpmUHgwOFUreGwyYzBIamlBQXlILy9HRFVCZ0FXMGQ5enp4ZFdsbUFsY3RNaHFkNDRQbnovYTBIMjhFNzJqUU5FS1cxNEl4a1Q1WnByRmEzeGxTdGw3Y2x0TUxGSDhQbkVuTmxGb0F2RlRleTlaOGI4b3RQeU1uay9OM1MvNEFUeGRaTlM2bU5wb3NXMlh3ZFZ1bm9QTEdRcFpkbGFEb0xJdHYzSi9DbHQxZDhSNDJDem9Rcit0b3Y3c0IxbW4xSDlrcytKNlN3UHJQTlRiMm5Qd01vU0VWcTErLzRybHhsczRHcVYyZEw4SkxMZjg2S1JPS0QzYnhsUXlRZnFMM1kyc1JUL0loTVdJbmZsM2paMStZVWF0aDhWVkZrR2NvcWpJVnhvYmYwbXFBd09NOXd6R0gvODAwUms3c3JOVEZZbmF1TUlRelZNSGNKNjQrMW1PaUNBdDdBbkN1RnpDNzRyQkJDQVduZjc0eU1uS2lHKzRaRStBUm5TN2NIY2tLRGNJSXJNejlSbTdXME5vQjFrYTNZeFB5YWkzVFovQ3d0M09WNlBoM3lrZWdsRm5TTWNpRDJZSlRla1FKS3B4NGpiN0tJd0tFZXdpaDVoZjR4czBiVklvL2FTMllxbDE3QzVleUpIbDIvWCtQcHBzUThtNVZma0YrOWorV2VPWWFHWTlsdFpmYXcyc2hDeEJtSWNhMkdYbDFOajNEZWljWTB1V3RDQk9ZYyt5T3NOMFB4c1R4eHV0SjhXZlYySko3UEkxT0NCWTVvRk1Ybzh0WUZyYS9vY01rQmxjN050eFZyUnlhZDdPVXlUMkk3Ukdnb2plSHRLelRHUm9xdklFcTVBNFZndHYzQnBzRDJFdHBnY2pGVVZXaVVlVnpib2xwb2x6UWVEWkxWeVF1eHBoVkRjOUNiVThUQ1VseEJmdS9kRm1JQmF5ZExaSmw1RE5zSlpwNFJtQmU0UlI0WDhJK1NjSFNCWFdYNUdpbndiRWUwYXg0VW10WVhBVWhMUXF3am1NMFk5bDN6bjhJVDZGOVd4N1hqTit0UWFkQU82ZmJqdEhteGFnaWxoeEF0V3I2QTV0VjFjaHFDMDNneWt4alQ0OFB3c1VLMjlvL0RXQ1hiRnpETEVJSHJSL2JXNUdxT1ZxaU5kTE9sWVJFK2s1aDNjL3Z3UU85NnFISWd0ODU0U2U1aHRvREJ3YmJrQmFCbHNKNnZLMUJNbnJSWkFxbVFpSGxDWGdLMk4wRG9DQ0o3VnlRMWdCakNlT1R6Y0N5UTkvYUhYUlhTN2ZJTkluRVlWSzhKWW9vN1YveUhPZFNxZk5iQlpybHlpb0NhYm5xYnp4d2QyODM3Sll2bFpGdFhxc0RLZ2hKRFRwa05iTnhBVTI2ZHJQcy8xV0lEblNkN056b2s3NVJ4VWRNWmlXa1Y3a2JnTHd6RjU0UmRBZXg5bUh5NnN3UGEyQTFtSVZMeXAyd1k5aFJINTNEOHJ1R050dy90ektXY2NDaXl5Wld4eFlXN0pnN0tYSEVSaGxkZlJQY1RaaHlOaUp4em9pMDFSQXB1aDJ3K1lXcXpqRXBkSGZxSTRUbEdLRGpaSEdGcUYyYnRkMHVGdzF2bS9Ua3RmOXJjWmQ4RU9MdGwxM2xiTURFcERLYVV4c0RCOVRFeXd1QjU4UUlNOHBYNkR3ZnJJVjVEamFDQTRqSnY2VW5qQldmWGxzL3pVT0V2by9EMlRXWHA3bHQwK21TNVhCTGUzUlhBWllva05CT2pXVmIzMHhlaGYrV1NYdHhKbXlidFQvZDhPdTBmank5ZXNtTkJadVdQUzFtVWtPZ1dmd3hsYkNLN2ZpK2ZET2V0L25tbEhDbVZ2VTRWejB2ejVLcldGVjR0Y3lUWXJrdC96dFZPTFQyUFl3eTdicHE5MThMcDRFcFB4eHpubVZFZDNnQ3ZEYUZhQXFQbUNxU2tVTkY2SVcyUE5CbEZVeFZKQ2RXWUVLK1FwcldmZjFtemRvM0xjRkE5SHorMzEzVHM3azBGdjU0VnRwZXF5RDdDdThxQys4aVBrd09FYSs3Q2ZnMkg0Wno4ZmhnVks3cldJOTQrV2tiU01mTkhFYyszUHQxb3lkM2JlN3dZR1U4U0lYck56N1lueUY2cnlPOTAyS21WOHpzNUkzc3h2WGpxRXMvUUxzcFFCYkpYY0hSQk91SDZ4ME01c1NsNVlOSUFzT1FCYkhOR3RnYkU2WDd2dUp6Q3ROaVEvZXhWOVp3WmxEajVFTy82MGJkTys5S2hGS1oremh6MG1NRDYwTGpMUnpzd0lSbkw2aS9OU2JGUHh4VDhEMlFHTlVQNzNGR0pSMG1MOTNkanB3OC9wMWFQeVY4cXhjVCt5bEF2YStEcllKMkFrWFRRdHVwWmdPdnY4S1MvWHFtM1VtaTRwS0hKL2k2UFZHbFlnSjhIUHVvTUZlRHVuOSs2b205STZQSEw5R3JaOHVOeDI5VWNhNHUzb2JSNkZ0L2xTNzRnaWpWL2NzM2tmSHZOWFhESW54TVpKMGNrd1hja3JvWE11R1Fjd2NQZ24xZkJLVFk4MmR5REdOaVB2K3QwUldtNVNNU3ZwNTgzcE8yTlBHSUs1dWFIc3J4NEx6Z0EvSDBOdjE2NEIreG4zSUxhcXNtb3N2R0NZKzhzRXpDWEtTamphMDI1c2FMY2FnZG5aVWpZNHZPSEtFamxMZlFFNGcwMHFwc3Rucm1tTzNZd0l6c0JZenhsTmpMaksrZlRCZmRDVHQweEZXMVZwZWRXZEVSTDdteFEzcERWQm9XL3AwcXczVTUwOXkwOWQ2MXlZNWs1RGZyVHN0WE5ybkxRelliTGQ4eU1zb1ZRS3c2QzRlMnhSMGd0cWRlYjdTTlhhdmRTQ1VZV0RVeTdVbFU2dDNyV0NRMVhFYVpsWUlzMjBCN0FjWmQ3OU10dVpwak54VmZhd2pMQ3RaNjIrSldlN3FnSzJUeFN6cVNNeFpGZUQ3aXdyeDZDc2gvTFQ2a2p5bllvWUNXVnhiWUtsKzdwZXRDRUZEV2JMS0t2MHZnOFBRM083OG5uYTBkSG1mcFNJamduYVZDeExKa2VqNE04cWpWV0xBMi9DS2NqNGQ2UjVMRkQ4YVowaEhZNUdCa01ESTNXOFBaWVZTZFA5T3UvT3JTd2NsL3dYL1NHWlVjQmVwUXU4amJ0QXBpQmVtQ0JiVU1QeW9CZDdrRVlJQURlcnFMYVczUGNJMVNBTXFnalZ6OW5BRkN0aWJHeXJUZHNMTnVESHpRRkJSd2kwZmZMTUU0aFdSOTJkdlRJRVN1WDM1cEVwaE9qV2dYMjlDTnZ2OHU5ei9YbGtESWJEc1JrQmF6RzhXM25tdE1LSE82MllTZFB2ZUhuQ25iNTdmS3BiaHV5UkpSRTFyVlV4SlJxdGFVeEZYYzFUSkNnM0xTbDFoWmhVYmE5eFV6YlVWZWEwc2FmS2tyckVxeGxxb0xrSVdNT3pLR01PZHpvSERwWExXREpaN3FVV1VVTkFKZ093SjY5YXoyUVhsTU4xSmNWdUF2dmQ0ZHhQSWdqNXpBR1Jod2pBOWdJRmNCdUdGQkg0RG1mbXFOYUJ3Y0VXelNIZWtMc0R1OE1PNmp0ZlZ1b0JiR3JwTVJxbDlublJ5MndUOTArWCtNK3NOcGNJTXdOTXVZVGNuSUkrY1lnZnBOQ3J3QWhRZ1ViR01BdzFNUnZaaFZOdkNCVDk0ZkdGTVRyYis1Q2ZFNFdKeGZKeXM1Q3pFVTM1R2NLNUxUSTkzM2o1YmtoOGQxQjRQc21GLzlTZnljS1VEZEpqSHc2ZGZaZml2MUY1cU5wYWJFQzZ6Ly9hSHlqclRKcTlFOFhwRlJKU1h6MEZvMWlQUXhnbHgxZ2ZSaUFWNU9jMU5pUXVId0dGK3plVDFoTDdldnhTdHJoRDRzZlU1blhIUmkvenFRK2Jzb1AwNERkZTlzMnJtdTBBZjcxbzNOWHIzalFNaFM4N1lJWktBUG1udy96Mm1IUVNnRjQyTzVHNGFyOHdia2x2SDZyOVZ4UXYyd2lidTBkT3lIckR6cG50VHF0TDMwVUlrVTJjRjQ1UHloTGdwaURuZURoR3pJV3k2cFJiU1Vsd1BkOU9rQ1lLTjJIaFFBVU9nNTBBUUNHTVdBSDNnSGZuZG5vQWk0QUVBNnZpc2M1WVpJaGo0d00yNEg5RXVtbk1oSElvYjQrd0wxM25NcEFHZFJ4TnpLSHpsVXpEd2NiZG1WY0ZveldqSXdrTFV6RUhkV003emZUeTV1UzZoTVM2cE9hL3RJd1FZS3kvVi83N3VEdnphZjZMTllKV2Ivc1J0eEtISk5ydFRyVEFWemVCU0Qrd1lyNGhWdk1mdXc3VGtXWG4wZy9SSnVDMk0zVHNWVVorZjhXcWhhVWd6eWw2elgvN1FXZ1BDSlBWWGg0UHFkRTdEU3lnQnEzWUVGc2hYWmhLN2pVRnJ0QVc3RVF0TFpkK2hadEJtMHcwMk9aUDdCS2ZBTHVHc1M5ajAyMEgxSlFCZ3FTT2UvbmdmQk4vU205S1R1bS9FQm9lQWNvRmdQUlpjQzlkd3llZzhIUkhmMTBjcFpSUHdWalZBL3lMQzVZNEU3aEhpNDc3ZTl5YTErSWhlUExWdFR2ZE9uQlFPbitnNysvRVMvZVpVQS9Dc3RBNSsvRExvc3Z6OC8xaVdXVENxK0tyOFllRk9NemQ0djV2K1RTZnZteE5mdkxBejU1UWFiYWRiaFJGNVFxMDZZMVJIOXBJMHNERDBxRlNyaXd1U082OS93UEhqVkt4MVQ1MmdqUEY1dTMxWHpmWndUcXF5RTYvWTE0Ky9YM2JYQWZOSGlLQWpoc2tlMW5WelBzaEd4WHNkd3RkVm9OUXRRM21KeVVIZ3hQRHg5S0h3cE1EendZcWlsU3E0dnExQlkrVW1kUnN6b0VlUDVlWWdBQUQvWlJpU0RUZ3VvSklLL0FhTGRFNFU4eUVCTk5YcnV3Ti9BQjJJTjY0SUVxU2tGMHZscWRIMTFBcWJxRkFBVTAwSUV1N0p3d0lMc2lCd1ZSdFQ5d0xUNENBNWlTMXFJcUtaSDlIU3JCNVpRaitjR25TKy9OeTFYbEtDTnlJdkkrWXVBZ1Fkbis0MzI2d2kxS2RxdEVVbktTMjFjQ2xUUEE2clJZYjVRZkZzdDF0SGsvOEV5YWRjRXZGc2gxZStScDh0US9NdHV6c0Q4Q3ZHQ0o2aGE4eUdNNTJFZ1BZWTdJL1RnaVZ6TUEyZ3hBT1dGR3Q0RXUySld3TzM1M3dxNXgyY0ZBWThDUWNTakFHSGh3ZTdVOVV2VWNXdXRZaTFWWXNSRUxGbTVNVlBkYUxMejhoMHZpZ3lqQXZxb2xaU010L0pmYTgrMUdBWUxQZTJKd25oaWpsUFlLbDJKcTdmUFhzRkJ3VTRTcmxPWkRWZzdndGxSVk15d01lUVhETkZmT3RESGw4eXQvaCtobUJIQWJWZWFJQ1BNOEJBek8yMTlJL1NnSzBDVUxFcEliRXhNYms2UERpdk1XbHJyY1ZEOHIyeXFOTnV6Y2RDMnVBSjhKMW9SUE9EK2N6RVY5YnJCdStLQUs3MnJTVzhGSFRxRHJXdWVxRGEvWFdKM2QzUUpMa0xCT2MyR2RtMndHVnAvb0R3aHdvZ3pFK2ZQUFhyQ0xNbUF2eVp6Z29NNWVyRDkwdVl6QXo5UEFVbU9ZRXZHNlZjekIrZ25tOWltK2RXTEVUUkFsby92K0hDWWZSRGozT1RDcEgzeDZ3bjRiV0cvdXEyUFZGUlRtbFVaWjc3bUFxMzVmViszMmk2MDJhNy9zNGsvVXZvYUdQZ1FnL2ZlNXhXaEV3VmR3aEpBU1pUQkNnVGJqM3U5SEFGQlhSblNuQ2VVMHVmRi95VTR2UWdaOTA4ek5TeEw2aEpQYm5LTGN3YUtPVDBwZ2VGcnM2K1JHQ2tvT2VSbCsvaWhTanlBRE5HdXNYcHVXSzc3MmVvMzJUeTRINVhMLzFIWXN1MllXeDZURjZPbFc3b0N2N3FoTHY5aEFNeXd1Mm5NKzJEbi9pWFB2TzFFZmM5WjMraVY4bjZORExGd1FycWtienZjYWFqZ3loM3F1S2dDdVVaZmQxWTR0SFNuWlVvUHhIWHc3NWtDWUtCOWxJbzZCeW45VCs1aGpMSUZDeU5pR08yWlRKUWdFUm1zUVpxUlNRR3h0dGZzVGFOQjlMNTZibkR0WmZLSHordG5UYXRSbFVRRGg5VXNDdXA2K2tKZ0ExRGxLQWN3MTlvbHRqZW55Q0NWcitHa29udVFmNjE0QWc5M045VDMwdmU4LzVldTN1OTcvVi85NmlMV0w3MmI3enZxMzhBMUNnMWpBY1paejN6ZEEvdGhqeTlHcm4yWlpDelgvb0NBNUthajVlVHh3R2ZrdS9qRG1XdkRvaFBVZkY0NDd4ckJ4QkhJU1F4RGRrZ3Y5MHc1N1lBY0pGRzhjVm82azhsTWo4L2g1Z25nUUlnNjhYd29zenlNanpMa1JGUnFjaUp5elIwWHU1TlYxaStidGJudUdOL3g0Q0VEOWY1azgrbC9vZjJZNzRjekRTLzQ4RkFCd0ZrREFtWVNqZlo5ekZNYTdMRkFFS2lQcy96bXNHOVVBb0ZFN2pyQ1FHVG9aYmw4MDhyR0ZtNzRzOUFNV21veGxaTWtzSGxodEtMUlJCdWVGWm9ibGxQQnRRUkcyMTJ2VXhpOXBvUWY5UDBOc0ZDSHNBUjdhYXUrNzdiRmdmK21qUGZMSkE5NmJKMk5lZjVSNUhMU0I0NW1QWG8rWjNPeDlZRksrNTFIcGZsQlNtNk5mZ3FDTHMvV2Y2ZmhpRkZsU2p0ZGdYd2o0ZFhUaXozbTM4L0FGZ1lGQkpKK29Kem1idzd0NTdLK0NKK2FSNDhWaHdjcGV3V0FHWEpDOHI0aXFTSzlTUVJzR0NsOXd4TjBiRkdtMHJDdGVaM0diQmZVT3JMMDRkakU2cVRKaS90TDVFYTVndW9mS2dQR0ppK2RQaHpOeE8rcExyNVJhczIybEowcnJ0blYySWM1K0p6cUhkRG43RU5OU21BR0RPYWt2Z0JsTno3YlhsVjdPdENWQTZjbFNXL3ZDUHFUUGVURTBoMG9mQktpdlBrci82RGZiYnlhTmZmb1pDdDYrWTloSk53b2hOZ1JDM2Vrekxmdkc2UmFCSHlGT09oeTdiMnhjSmRwdjNGbWJUNDd6LzFzVCtldklKb0M2NmZnTVBvelpVK2xqMmQwWU5qMWhSNWxkaytrUGdhTG9oa1I5dC9vUGNVcUJhNi9kWlIrd3c1dGxDOWdIdUh1YjJUblZrZEZXZEFzVVd3OWQ4UFZsUkhYTFJJSFJwY3R5bGwwTlNBMkk3Qkd3b3dLaU9GakF4b0E0VHVTclVqL3F3bDJlWVp4L3RUUElDeVJHL3ZvQzFOZE1PRDdvOTA5TU04MmF0Zm9lamJncXlZdXZkZG8rci8vYzV0VHl2WkpXRVduM1ZtZFptMmt4Ly9nTjRuamNOUGI1emRvcjNKMC80cXZVU1h5cTBSSng2aE14ZDlFWmtjVkk1U2VwVitFLzd1UmVxYjNweEJ3WXdPYW9jL0FJRlNBUjUyRlB4T0FZZ0J5RlRXUFlJTGJSQjdDRTQ4eS85NHYyL3lUNjZTM1JXMytQMGVXQm4yN0RUMWREd3hmNzBueGYrUDRYa0dnTnYzbVFzaEpiNWQzT1hWL0ZOamEvRkwwUSs0cGpidnIrVDgzWEk4dkh1MDdrWUx3REMrd1BZUUNUL0dKY29ULzd1akFYbjNucFM4bVhsK3hNUVlQd1IzamdOVUNZRlNBc1JCRG9ZU2ZkZFFRS1BKZjVMb1NGdlBPaG94Mi9Td3FIWnZoM2YwRnUyWHNjRlJWdTVVNmtkZGN5WHFYTGZsdzF1QXN2SHE4ZFR3a3RiRDNCckdXZWFBMUduenpOZ3cvTis0K2ZhR3ljWDlKYU9Ra3NBT3pWS216czhXSVA2ekdwcFhBd0QvWUpnMUdxTlVJcnRXN2V2c05hWmx3RzYwUnAzUXZ5azZ5dnJjd0s3Sk9BRCt5WW5TT2lrc3ZVaU4wUlNGajg4R0lHM2ZoR2ZYK3p2bS9DbjBpRkZRSUZWZ3NVcEd1Q005RjM0M3I2d1pNWnFnZnhVTnRnRDl6MnI3VEkrU0c3amQwYTJ5WkRDSnYweFV4WWJFOWJ6MERoS2owcUY3TzgwTmpadHRtNHpHZHpoYmdNL09tVHdWM3pWYU44bldEbVNJelhtOXN0aDlKMzhOOGQwbEsrV1ZjTnNKTm53bmd0UGZtcUxlVUZ3YStsaTNQbllmOGF0RHlKQkw4SFZUNkR6aUZ6bDlzVDEzdkpFQ0xwZE8yMDRadWlsUmJkQTAwdTNmTEE0RFF3clBYMVRyUWZpSW4wNVUweDlkcUUwcVNLdXhvY0pDaHZ3WExES3NtaUxhcHRXQzhlM1owaWIwdG9PVHJlYlhGUm9mOFFnMlRMUFlFdUcrVVljNk5ZZlVqZmhvMnI1MFRCQzBqV0I2Tm8xMFo4UEs1ejQySEF2dmFhRjhrcWF2QmxyUldxVXFYR0hKTjdOaVpYd0J0Sys3c1BMN3lLMnFRaUxPRzhvdTMvYXRRRzNRTTQ0K2Zqd3VNL0MvOUVYWFNzSE5rdjJrK3lkUjQ2bmdWcW95UytSWExUeTJRbithVUdVQk9WbDBxaWt0ajNCckhtSzMyRVcwTlRPMHk2SzlvdkRMQis0NXBPenBJdHhCWFJhaVN4WUJvR2l2cFlvQ2ZIakJzR0VQZVlvVnl6M3R4N1o4Tkd3S0Q2Um5QSExsRzZobER5S080cU9vSGpTNzVOOFBuSmZ6NC9mbnJicmEzUk84TDc1Y3NYM1lQZnV2Znp5OWlXZGlXclBXRnhoV09kb3FPcVUxNFZ2aWlWblVvQWZYNnpVMzU5ZjF3VHE1Wld5WmRVcVpiNU94bW1CYS9iS3BZdHphcjVBSGdveldYYUVvMm1SRnMycVMzVGxKUm95dmFUSDliZWxLTFc3T2lrM1dFUFQxUzd2b2drMlkrb1FBRUN6VTdaZ3VXVEMxL29lWW5tOTYzanBzOWY5Sm8raTdRWjIyd2dRQUdOVDZLb1lHQmhxZGNvTmpwQmdBa1JuelVtSEVva09zbTJ3aDU0aGtLQVBaUHgrN0RrT2NSVCtjWUdSUUdOb2FaWEcrdk9jK3dZcGtscFJYUUpMWnlCclQzVHQ1REJvMG5vUmR2clBJSU5TdVZEUXhyQUN5OXVUQnRWalNPSWQrUGFDTm9uZ2dnYTI4YTdOY2RSbFliYUZ1ZjJBZmE5dXVyUzNzUzcxMXc3UHFSM1dzWXNmc2VBYXhMaU93NE1QTVdGeXhNQUh5U3MzdnVmajhYSHhnYmZmU0NxYTdBaHJUaFZQbjFaUCsrUXgxallkMll0eGdpUGxrZzFjNUZjQ3RUWDZMaDFhZzdGOGV1bk1oL1QvODlrUVZZQU1XWGVtbi8rcWUraGFCWXRpaVpCWk5tYm1pM1JKZkVTcXZTbkM1S2VkQjd1d2pGcUdvdWVLdUZoekJYRU1yR0MvaHdHMlBRdFdpejVpMEwxWlJkL2pJLzlDQTdTd3N1Uk9ZQTlEeTlwd05GT3ROMFMySithWFJ2MWwxQjY3TGdUZFhiMW9ReGI0T3hIaHJ5N1dBSmNKUUN5ekV2ZWg0RTQrN3JtQW15VS9pWWRlMENmUUdDY0hrSGNOMnZqM29yaWJqN3BwOEZWdlRyRGd2R3IxRWwxYmRqSzVnajhva25zQWI2MDhFT2Z2c0FUYmo4VHl6WVlWWWFrdUtBNFEySmt1a0Y2Sm00UlZyVlhXV3hXSXdweGtGakpqYmFaOXlxcVJxTW9NUzk2TnY2dHZwdWN4S0JaRVloaWZxdlhKd2hRUUgzZExaYlhyNkU2aGh6R0JtYURqa0hIcnRSWFRHUFkyTEI5QnAreDJzZGQ0OFExVmxUNjhGQTdMckNwTGptK2dFYmE1WkV4eEkrTUN0d1UwcUR6UWY5SnRmbnlqOUVUdDljSE5QZFBsR2JDVWppek5Id0xtd1BXNzc3MmhmS0xRMkhtVFJJc1dmRXdIOE1uRWg0aFhXT2RhbW5pdi9sQTFIYitCMXBoZDZWQW5IUmZ6TDZSSUE2Vm90b0FOaG9uNENBY2o0dGJjUENqZmVlRnd1Q05RRGFHMWd5am50amNOOU1UWTNxbDFxdlp0Nm9NSmxDWFZYZUdLMzk5NnNzUkVJQzBFQk9LdzYzWXpOVzlCSEVvTzBDTFN0RTRRYnV3MlEyNWswQ3JFR1pTM3dna0MrK0J5eFZvdHVyanVOTDlrbGFTeURlQytvUE9rMGtyU2Zjd01yaWs4MU1jSmltU2grd1BGRGNwWFYxTzFGbGJlK0FBUWFpZzZydnk4dnFjNWlMRVROMmRwZWIranRQUzlvdE9LaFVrc21oLzJuT1k1bGRUNDBlRHdkbEpqdlpoQ2VzVCt1dWsyb2xhWVgrdEJiUTFmYkhYc3lmdjNqMFhOUUVtZ3M2aEFZdzVnS0l4dWtzODBmbGwrU1I3TjNqZ016Mzk2K0FXVDFyVmJxNi9KK0RKbEVvMTlTVEE0OC9kWFpYbTJUTDQ2NWtybUZsNlJSTS9nZmdSWVFyaUZhbnVCc2R6elZPSG1WeE9GbVgzdXdnbGEvOUhKejRrVng3UE9NbTJ6OVBNYjVmWkYwVE50Lyt6ZGF0K094S1pka0czeEtkTkxhekxGWmNEenp6cVNieWR5dE9lVGhzYkh1NkhYTkE3d3lIRGZ3WDFheXpVSStnbTBrdGlJUzRCUEE0S1hoNzdYb3lQcVMvamZPVjJ4OGxWOW1GTC9KZjBZc3BlckNxeENtZ2ZmTUQ1NnJHS2JYYXR6Tm5idTF1d3U2K1BLVWs2a3hvNU40S3hhcnZmSE5yVnUvWTI5Q0VNdEE5NEptMjVRbjNBQ2NwcmY5cEVOSWJ0OGRhWGw4cEVudkI0M3NELzBzdXRqMjBNbXNqMjUydVVFeVdjT3FWMTJnN2xSM2hrTEJQTFNCVmdMNDNkejlyM0pyVE1PWXNDOUNOVy85Mk45ZEhLbEkzWlBnelBlczQxdlhtSjZRTHI3QUd4N3lVT1hKT3VsVEtRQzM5NVYrd2pjUkZKdW51TUQrQWxKaU8xanZmNmQ4NG13M1ZpNlU5RG8xY2VIeEQ5bXZkZkdjSWMwV0VOcnErLzNoMG9PKzhOK1JIYWJvck5hYmhKbUNYYUNnQ1E5c0FzdnRsRzhJTm9ZM0R1Wkg1T1lCcnlzWFkvVnF3SnF1bHMrc0x3MmN2TXdNMjRvNWVmR2I1bzZxd0owaFJqKzdVZnB5RTVnWGtEbW5KeUs0Qm05Ri9MWFhFdEJkUlhibFVyVnYvYWFtVzgxYS9WcTR2VlhBZGJLcmRhUnZLY3RQZHgralhOcS9iWU1mM1hSNUM5WFFNdDZhYjc3ZmFycFgvNGMrMXhhTW11NFRyQTd6QlZGYjVBdXVjZFhQeE93c3ByanhXUjc3OXg3blBpNC84bC92c2luZU9lcU5NUlBRRzFXOHJuRlJVSldtMXlZVTVteTRHMS9NcnhEUjhxdUlZVUU2MVVvSXZJakZvVW5sNW9majExei9ydTBrNW54V0V3K29yUzVXWHhjbnBSQTd6NktZbVVmaS9sUnlpSUJGRWdFaENNaFN6WjgrSENYVzdNalJ5MkNCK1k3VWRaYVArc3g0azZXZFRPczczcTRqcGk4VCtoNHNTejFla0xLbmEvZi9pTnhUY1ZvYWMyTFVvNEpGNGNrbWVFOWtrZVRvZndyYWxsZUNhVzBSU1oxdVJmeXlySU1Id201MjFZMkxVTThqLzVVbEEwUWw5NGROYStkYXhwVGNxcis2dnpXNWVNcGZRTkJWQmZCVFVxVTBrMXR2ODNOcU9mM2ZpUWxzcGQyTmJkU1BIQXROVjdOYmFLMHNxVldkS0dWaXc5Um5yc0t6K2gyVVNiZjVPMGdienB1VkNXbGdzK2UvVkIrUFhEM3VNN1Q2UVJzMUFUOU9ybHBYMC9wZnp6NFFjZmJjL2k5UHgySVoyUXVIem5uY1RrSDBGTnB5VXdOWnVRem02S3FVajh5K2ZLQnpsK09leUZteC9NNCt3eTVwaC8rdWZrYlErSUthTFA1dUE4Ti9QamlmdkRGckxMQVRPNC93V1FIU093Qi9saXkyWFJZY3kxaGdjd0lPRWpqTHpDb0R6MzN4V0F0b2J1L1ZOSTdhdGdrWFhFM1dEdmN6MUtqd3l1ZmhYeWs4OFl4dHhZdnJEODZNb0MzNEszNUxrWnVVZk1veCtEMFkzNEtQMjkwZk9tMFdzZzlGSnNhS291cEdvb2cyalhoNGJwRUM4bkEzQStyT3Y5TS96S216bjBPajFVZjc3cFFNakV1MTEzVG1XVTAwQUdoQU83cmpRR0s5YjczWHhVWGZjTjg5bXA5Tlo1dHpvZThQWXRUVy9lWUx6Mnc1dUhRa280SWI0bjVWaFpXV3oxcmg4TGVBV0plUStadGM2bFRhY2JXSEZkbWlYQkJkYWFKVFV3UUJtb0I1MnJaTUJ6eUJ4S240a3J6d1RYUlhmRnliUkdIeGpBOUExTG01eTF6SWVKZWJ3Q0VQb0xkdzRtK3dOcHJiVkdua3dWR1c0YjZKMWM5MmpUbzR5NmJZdTJEWFJ1cnR5TVlabWVsNkVIOU5vODlKaXpCd0oxSG9oL3FnRnJSZGJPVzdlMHI1U2l6UjlpSDd3bFVzNXFIejNhbVpVWmRMaitzRzE3azVhQk1acTAyMjNMeVpSdlF2SFg5enUvem9aTmhOeXI1eFBFUS9OSmxpRXhnVjkvTDJRaURJUm82TEhsV20xNWJFSnlaUWpJWUhjc0VPdkY2YmtRQkRPb0hWUkFwVUE1RW9NNHJXTitCZ3VFSmk5SWlJMHBMOU1lUzZOLy9YcEdkR2hwM3J5UXpuZTg2cHA5UC9jaE0rTGFLM012Z20yYWZIV0VJanRiQ1hRMzhUY1c2R0liRXlHQ3I5Z095cEdsaVpZV21uNkJEakJRQnZ6bE5zcnc0RFM1UE0wc1QwMEw1Z1ZVNUtseWxNb2NWZDQ4M0J5c1cvQmltMjhtWjBNOU9ibUhEajd2QTMzWWcvM3hYVEV5alJ2YjVwMDRncThrdkN4UkZJV2t5dVdwdVJwZXdkd1BQUnRqeTJPMFpTM2E4bkp0UzAwQldGbnpLQU9QTVV5Wk9zMno4bWg2YWxRNEFFNDZ0blRPelNzcUtHQmdRbDAxcStoaXdFNDZPcmtMODlVdEt1VHVNakF0R1h6OXREemY5Y0h6QlJTbmcyMUVWNkxkR1lQMW9jcTlSRC9DZW9nZDJobmlIUm1wYnNPa1JTaEFCMUdBRGlmM0QvdnlBN0VvbnBRV0J6Vks0MzVnQ2Exb0NUTk5WVVM5aGhTR3RuWUdmelJnSDdTRHFiM3JMOFpkWEord3haeWlrUjJMano4bTA1aFR0cFNnQUJsQkFXbzFOcm80T0lLNG5RZHp2dFRxQUpmREJkeTBnMjFMcmpVWnIxMDhSeUVyT29lNjdRN2M0Yks0cks2QjN3K0J1VWZjbzY0TnBubjhpK3NQcnIvbzRiMnJDM3M4Z24rZEdTUGkxbWNHWmUxODlFZzdxeFM5dFFKYnVWbWtmS1c5ZFd2bitaVlR3K0lEelNNWkhsVUxEV2d1TW0xLzQyc0g5ck5kM0w2NjZQL0QvemVKUHU1RGU5YkM1dmJtYzV1eHpieW5scWVCVWZ5bnY0Yi9pbE5SZ1p1citta1BORDIzcEFRNWlXcjI1NWlrUDNXZUJ0RyswZUN2ZDhVellENk5MQ2RJV2I4ZVBmOXJtaWYwMmVHWnc4L1VBK0Q3NThHQ0F5OWYzNGtDVkNJaTA3a2FKOE1rRHlPR1p3WkZwVHJUdVhTT1g1SXU3SUlvK0UrNUxvUkM2WU1nQ0F3L1N5OXFIM2lNTWhIY0d4aUdhUnlmQzlnTHFRS1lBUStNWm5yNEh4NndFMEFhSU93SS9CQk9JaEVJTW92dll3b05PWXZRS0NKQ0c2ZHh2c2h6ZHJ1TTF6NThXUzB1RUVaT2lzbXNLdTVDTmdBQVFKc1ZETVBhdkdqSldjR0hFR0JGcDJ6WFE4cUJITkRoUnhaUFJpYWZQUGdYOTduUkNDbC9DL0FpZU9OUVhPbmpDYW5qbzA5ckpEY2VsOHdMb1VBUWlSRHdtM1pBR2JTejdyTTR2R0VpbFA3ZEZabXZZdjVSdVBqUFJXbUwvaFJqVWFyOEJyblorT0xGaHcvVG91OXlBVlpUTXhjMXgvaEFHNENiWWtReDF2VWMrOVdkbUZmS2VIVjh4SkVJdlZxdlBGZ1kybUphR0NvZy9hNmVDejRmOEVJd3cwZGU4RiswNC8xaHFoWEtGYXJuYmtvc05iZ0M0TGhMdTd4Uk9ta0dVUUZ3UFI5empWRkpDY2xZSktLdG5NS29BTWFwQUlsYlkxUTNkU0dRL2VoeU93d2MyOEkvWi9xNjRhVGtjWGRHWFZhWEJiTVdvaTh1b2lSVTJDUG9NOEx4SnlZQURBVWRCWnhUdkZVS1ZvMkFza0NsNzBGR1J3UVpYL3lIbW1QWStPRDR4OTRZWGRraVhhcjlyU1I1Ly90NVJTeVZoVGxXdjF5YSsvWGYzdG5RWXl5WmovbDJJcFdTU200WFlyL2l2VzM1YzBrM3QxcFNqYVE2TW9DUEpJeGQ5d1dsZTNMOXJ5RTMvL3VFL2trem9YOXRhTUcrQnVxenJTRzlUMFAvRGtzM3hsV0hrcE1ZeDVRYlMzekVGeHJ6WkZKQ1M2bzBpZldVY0h2bmRmZW5QL0lTMUY0eW1TeXNBSVFFeTRKRHc2UmhLcGxFdkpybER3dk85Z3p0VUN0bHloRFE4WFZmS1VGZkhZbld4K21qN2Q3SHg4V3ZLUlRZb3VJMFFZTFFjL25ua1FDNVVJN3cvY1djVlF2RE5DdWlWMmpDUUZmR255U0N1QzlvWFUxTnIxVEZXYnQzcytBSDJGcHBiWTFzbmFpUFdMeVE4ZUI1M0RjMk9oenFrYmQ3YVJuZ1kzd3dZUExOQnVkNjlWdUJ4RnNDOHFMUy9sa1I3MFBpTjhScE5IRU5mS3ZqaSs0ZDNCM21tUC9HMjl0eGUxZEU3TGl3TitUcUV4eFlOTC9PMHRRWTBNeHZ5czF0REd3SXJHZEo2aTFFeDV5N2djSExMczdPMmIyYnRWYmFxK0RxK2JXMXFOWGQvOGlCTDBneGZqTDJHTXIyL3Z2clhPbnkrakVMVTFYRXludC9mM0xKYjlxbDBoWWxuWHRjaWxSTHFybmRrdWZMdDNsZnNTTmQzRXBKWlhXNVY1akVCMlRZQ09zbnV5bVgvSzU4UXYva3Y3ZjlLZnNLUXRmZVI1NzJobXoxWXNuQ1pES1psenFCOStPbjd1czdieE9lc3BLa3FTMEVxU3l2OFlMWXAyU2o4aGdqaVJ4YUhXZE1YeHdTRktLVUtkVTdobnJPQ21CLzFtcXhSS1lLazRhRkJzdUNnWmlZTVM4dklrZWh6RmJsbFArbjFBRHdZRTZwL2JkY2xhUE16bEhrUlpSajVqUjVhbEQyeXV3WlhoQmY5aWc3WitVZmFYTHphSEFheXRBeWZGaHc1TUY0UXdSRm1rQm9EOHJTL3htZlY3NzNtS0U0MVpQVy9HczR0bmV6MWZnL2htbGt5eXNmbFk5bmkycUx4eDk1dFFVTWhDZjBFT2dNcVE1SDE4NVdqK0lJRThVWkJ4Nnorcy93enJEN2J4OWc0Q0hWcFdjZFNReGJOTWxoT25EWURocG0yYmdqekozbE80TGxhVmlvZDFvd1VGL20vSTM5elJ2Z0hUSWo4MitLMDg0UVZxdVp6TSszVjlES3pyZW5lYXRxcWZEVEZmeEhvMi9zM3VXK09wRDRMVnVCQXBRMXNOUGR2WkZSZFdyRitDa0F3S254RmFmU3AvRngzRDJkWEkxZHhDeE5TUnV6all4M2RJeVAyTWJTVXBiR3FIaEowa0FjZmdPaE5mU3dhYWY4OGhvRng4eFdzcGdiS29kaWxBODFUempmNDd5QmtvV1YrbmVIeFlVS2lzRnh3L0xqTXIrZk1qVTZpckNDbVZaQlhacHM0aWlHUUIxeVc1UjdNL2xtYnRKM1dZQVZGK0JneTA5bzZpVVNVZFpGWjZwaEJ0WHg5QXdkVkFiMk82alpHUC9CY2dmY2dKa3poVnQyN0lDQWsvMnRyUmZMZnJKNitzdk90VVNWL09sRk9jRmlOeUxyT3NvN3VYUHdSNzZYN2V1QTY0UHJydXNmMkJLL2xLMzk2VmwrQzV3ZDU3cTNVck9QTXZEVVlEWkwxOTZiaTVyTHovZEVHcDdYQU5nczBxTm1Ja3pVY2VPWXpxZlQwV204WXpjY1FOTkY0M1U2WGQyakRzbUx5Q0g0dXlISFhDYi8rMkgzL0UyY2liRFBMMzY0V0ZmclRmUjk2Z05LbGdlYUJQRGwrTXRVZ1VsQXZTeWdRTXV5RlRXTTBkaFNHMitzYWJkcklRVTdGdXRxaS9ldTFPSnN3RWJBdmRlY0puK3hJRmkzUjJmYVRHNmV3ZHh4SStNalNZMUppUTNMTmJnOWZySDAwNEpWTW1HcUtGNFFYeUdVc0Z1cnZHQmZTNklnVWFRVEJsV3QvSGh0dmJqM1RPNi94NHZpbWtUaTk5VzVoOGtJcGVtTm4wSFoyNzk2M3J0SHhFcGhpZmNJOW9oWk92ODUvVkI3L2JUbFFFMkg4dXZHNGNHTDFzQ1VuSlI5MmJvY0hmeHYxOVd1QThMVjhhdS9iN0FucGdqZkZDWlZkSVB4K1lmNTNNSXI3K0VYNHZETXRzcnh5dm43S2N4MEFYK1BrSlNxa2hubG1VV0JzbWNyQ3NvTVN2ZVlXZ2JZbGRYSGo3Rks5a0RqWHJDa3QrQkh5QThwMVBtMjV2N3kxR2hHL3M0MXB6LzlkcW81THo5dlBWbElGeTlDQ2ZHMkFMcmVsQnZ3TFM2eWlmQnZBM0xiTVZkZldJVGVIS0t5cVF3RW43QnRRN0lSWVdJMVZDTktCVW0xME0wMFdjMUk3amRabWlCT2tCMDFJYzB5dVN2WXp3RWhEZ0hpZ0pBRmwweld1WWdjaDN0eTl3eDFscHFVSkhwWE9DSVlGaDBXZlNRWUVaNFZhWk9vczRrMlFhT2d5SGZXVjVVMzVzeFMvWEh2UFY1cXJ6M2U1eTUvV1h4TzBNVVBQR2xNSmUveTF2YVljM09UdkhhUmU4NXF2ZCtneEJrWEdaTFNjK01vYjFCeFF1M1R3NlBiUngwakRwNzd4WVlqYzhJdXF5bEFsWXdPdXowRXMwYWJoWXBJZ0pyczJIZllOY3RpWVdQbHY4c3JaY0kwWHFJbzBld0RrMWV2WkQrLy9sZ3hFY1pMRmtybVZXNU5rejRZZ0l6anUzUUVxeWhvT0doWUpHN1FSSjgvN2xpOVhjWk1ZTXJlMnRhN1hjcE1ZUVkxVmpvTHJ4UWR6UFVlTzdyaXUvcXdhR09DOFR0amlsSDc3dlhGMTJWRjJoWGFjcVdodVR4QnRFK1UzQUhrcGJ1WmRlSTY1dVB2SkZEZk5LR2lORUxKQjN3bGhHSVlMc0E5YmhWV2pIeDM4RjJXYnlpc1lTd1ZOWVllVGt4UkQ4djQ5UTFpd2hGWkhaUlVLM0NwR21odjlZTXFtNVFtUnpOSU80aHh5b0E5Zkl3L1poK1c1eVF1N2F2OFk0RGJaY2Y1UGpuR2oyT1JabnNzT0MrU3RzcjFoZSs3TGhnRmpQM0xRMDJ0ZUk2MlhFZG9QUjgrMGtUczFMOXJTNzRBbkRjL3lDUmpNR243eThkQVRMN0NibmNiU1p0akNacTFZY01rTmJ3eWRNR3F0aVkzb1d4cHFscktjWStFL1VLamNTNndESG1QbkdjbmpZQmNjdTdZR1FZR25ZVGd0dE5GYjhzRmx1ZEJyQ0FNaGVtaWM2bnNZaDA0RkQ1ZXk5Z2M3aTVtektyeWltUFRpakgrbVBxeUhYcklkTnhmNyttcXd1Zms1VGxSWjE1K1gvYTZYcTNubmJxc0Zaa1k1aGlPUzR3c3lEWGhBTlowaVBIc0lmL1hGNkFtQkhjYVlJTU82K1E0Ti9ZWllPMlgycTkxOXN6b3I2S1ZUL1ZmVWVPMmJRTjVxWmxwRTl1WVpuTithVFYzWER3YTVEKzB4aE8yZkRpUnJnZUFwSC85MGc4MFhrb2o1R0kycHZCby8vLzdycFlFZ05ZeTBjMGlRK2tWMmNHYVk4VGZUN21oSkVWSzFIY2F4K0hyRm9nY01lMnk0U0dwSllVNG5NeWxEM3p1WVJ6K3hVOHdWTHRHNjdON3N4NHpoZ3Y4TG1iTmVlN2RwWFBkbDdmSlMxSkR0b0dJU1FCQllndmthMTZwTW52NTdtY0J5OTBEN1RuS08yYWZPUU1iYU9yT3YvM3JhY1VkS01pcWJsOFVaVk9iNnFjeXorK3F1cDB6VDIyUUdmSDVyS3V4ZWxtcXVwU1VTYTZZbFg3emxaalF1dHZqdThnUTRRMEx2elhVTitqM3paMGNWS1czVVZOU2Q5OVdRM0NFcGgvRTVOZTZYQzRjQldoZVJGT1lOams2UEl4ZDBlNnlvMkRaUUg2WnpuZGg3bXRmTURnWjZqdVltZkhzSUd5dzhjWVZTei9vYnpYSS9ZOUR4cmxmRmxJRUhOaWZFdTlRUWI0QWN4MGxaQlEvLzAxa21FTjdENktqZGpUaGFZVGhrQk1OR3Y4bUNMU1YvMW9NYS9jMmRrUHovSVFWVmRPWEpwN3UxOHA5Mm0vYXBQQ2kxQ09IVTlzdXkyeEpwbVpUbmw2MDh4L3VyY0RUWjlhK0c0WEczeFc1UXN3VnJ1SGVtaU85WFBBWVZ3UUdiOGpKbmkzYnBxM3g4dVZuWkcwcVRXZnZlL1NhTDIxNzlnYUFQWWNaS0VEblVBL1ZydHI3cG1tSU1jVG5rb3hNUmlURGxBenkxNTdtbDludDA4dkZZdjgySitabGNkaS9FV0xodGtlZVlMRzZRdFo5ODI0ZEY4RDV2bDlWcndOcVNlMUE4czdxcjN4WHdBenVrdlJrV1JmY3hhNlR2NTdUUjduSk1GNVlFcEtLMjF4MTIxSkRTdVRiTHJ1NTlMdjNQSFBrUlQ5QnVCSFRiOTd0bzExVE95VHcrK1V3dy9QNXdGMEE5T2tUSDdMSUFMSmNQK3pRZkJlVm9raUMzS2QrSng3VEJHZFhwRU5rVnZlRVJRc0FTZnZ1di8vVGVJMHBUQmVVMHNpai9YRHBkVDFRYmFQT2thZGNkWHRSQ0hHQW5RdXRwZERjQVFpOWJQMTRpZ3dxNzd2NkwwREhkN3QrcmZ4akQ3Q0NPTXZYUTNod0I5NXU5NXNCbnFHM1NxMDcvZ3FIL0VpSmJhY3ZEOUUwYmhxQ3d2L2FZUzMxQ25QemRhQjNqYlE3aE45K1dzTUtmN0xXYWhyczZMZW9ic1BRSnBPV0RLTUwrMC8zd0loN0VEQWtkNjMyOW9EQi9NTCs4K2Y3Sis3bnozVXhpektaYjZFQWlVZm0ydkVScGJmTzhVQXAyOUlQOGo4SEkwM2Z2THV1K2l2ZmZCaHc2OWlma3BBdTFyR2xaVUk5cnRWSkNxKytoazVSQVhYRXpoV3JYN3JVSlhtTmpzMGJlQWJBYXJqeHZmcEh0Yi9BZjZVMW02eWJVQWpaTk9ZNTNqdTE5eFVieG9vY1lDWFB4NUYyQUlEZGVUNkJlakRaNm5hekd4WVZHMzBsWTB5RFNkcEN1cldPNHYzSzZucGVlUC9FSEJuRlZ0dTlyS1ZGS3VuN3A2ei94SHY5VDVycndqQ0VpVDdwZis5RS85YUl2K3BGTHIwMU92QWlNbmYrSWJsNDJwaWJaNERvMGJ4b09oUk9EbFJJMDhVb2VhVDlsMDFzbEF4b0doNGtWQ2hNN2ZUVEcxYW9zRXlkcWRYLy9QY2h1ME9HUS9wQjcwUW55YVNwVDFzU2ZmUm9MTmViUlBIM2s3cEduS2lIbUtGWnV2UkpaVUZFbmxKbGpzbzlxeklyczNNaWNsVVZoSGdxQS9saVMycEVnVUd1a3dlbmhxYnRDazdOZmMxc0p2d0JnbTVxaCsxand2RmhlNi91QjJwREJtVzlPbG9mWUJSYUdNVU1hNndPTXd3bkZqTXNkRjFjT2lhdzdNNGlFb2s1RzNhZnpjNDdFVlJYcU0vWDFiR2IySjlsR2dwMWVheDZ2NmFnT21IUnJ4TkRDVFp5UEhWS0I5eG5FWURPSUFEQlVZQUkrQUlFb0RnQ2tCa1VJTlpSZUE1dUxNNnZ5Sm5VanE4NnFhR21Oc0tnenBLK1M3ZEUvUm1CeVEwUlJwYzQ4MVB0OVBtMHBuY3AyUHZBdU1TZ1g3SkJqeXpSYjJDR3FCaXlobGpjNDhrRjNUeXYvZ1k1YmpXRkdjTXdibktGWmFBbWhzTmMyUFBxa0dHTkM2b0RzbTMwUEh6VXZOd0ljNFFTVHcydXhYeHVJS3c3aGF2aWlGL2ZqdGtWKzdzVjNPay9KZHM3UzlXMWppS2VPZjd0b1U4K2pOYllPaHFEVlRXTng4SUNWbUh0V2VhMHM3RDg5VkkxMnBLWU1xaFpsbEg5NFJYS1hHVjJkb1JaVlFiZ1VtQ095Rklxc3lvUGxKRkhmcnhIeUJ6cXNHWks0ZVZSZkFadmQzOEpmeW00amVFUWU4QnU5TzVZZ3lZUUh4d2V3bFo3WmM2Rys1NmNNZHlqWUl2TkVQT29HUW1kZlA4L0F5RDNHWnQ3SXp2cGhuUWlKL1Vjd25xM09OdFg3N05WZk1Ud2FXK28rM0NiT1p6Q3l5MzdkR2IrT3lrN01pNW1DdlBGbFRTZ2tUNnFQWnNhV3JqaUFMT1dlYUExdExBZEJZZ0xZYUx0OXhwR3JNTnByalNyQzNPNTQ5d0VlM2g3T0FoMmszTU01d2czY2t3M0tPeVJ0N3VDSzBWLzN1bjVWQTJGelhLclZmbEp6VldHenNJanlGRTJSYlV1R2YyamVnZW53Vml0ajIrZjNiRXQveWRTSUpxS2VpVStmUUtDOWRrbXhvb01zZy85WmVzRGptRXJ4L0NnOVNYZGg3d2l3OFFBMytlbjVuOFBScTMvcnFZWVQrTGoyYnY0bXFiN3VPTll0ek9mTEtQSEhNZDlPckJhbTMraFgwMmFTUU5DYWgyL3ovOHk5clZ0WDNDRG1NWHVyN0EzQzBLWk4ydSswMmNxOFdQTHIwVS8wZC82NWNmdzhDUWpQdGF4N1hORXRvQVNHY3I0cE9hR0x1T2NzVVNBc3lhYlFNZzJPbU5qZDN5Smk1Z2JJUEV5Vit2WHZaSFJOWjNja0pUVXNGd1RnSXcyb0dtMTc4alpvM1VmK2Yrb2t3N09HcWNPRzJIWHFQSHdWUFVwa0EzcWZ2VGJYMXJ1eVh4V1h2NU16dEVHNEFGYWY3bG41RWYvRGRnR1Qzdk8yeE16ZzdhL2pRYSsrV2xnYUo4WEZBVjU5ZVgzaFVKcS85SkNBejk5TXhCOU95SmwwWC9PVVlINkNsMlVOQ01pTWFzSXdhVXlBQURZckJEcTF0aWxySGNFN3dBQU9jQWhRNlR5elJ5d21FMFdUU2FKSkZkTzhvNzUzZEZKTjl5WGhvV21HMExEZ3A1bFpmMlE4VU5aMWc5Qi9qSCtHaXBBR05RMFZoODdlY2RFK24zcEJ0MGRQOTBNQ21tMXJFaVdsemZraFVOeEpZK2ZxaDNmL1dLUC91eEZhVVVJaVlLeStVZVRnN1llUmtLZGVaMFVRaVNCMHBuYkdVS0lPdS9wREVVT0szQ3FCNW1qcXVaYnRiRWZBaFJjOWhITTNQbHpaMHpieWhwRE5TaDUvSDV6UWxaOXhrcjl5Y3hLYUc0NGtzRE9NRmNyV3FzVW1XWjJ3cEdOVi96UGhaNFBPeDk2TGlTNUU4QjdEVjNpSzQ3Wmd3TEVoMnNScDc0TmVORnEzMWZVb0d6SkM1SlF4YkhVVXVTVk5QR3YvdU9wajR1MnQ5cHh4ai9BSlNWR0dYWk1jazZKVDlQVGNYejlQWHhwK2ptWVFvVmFLNVdQa3A1Umc5SHZ2ZTd1V1BXZlAwV3llclZuQzJ5WkRieXNkYnM5Si9qSGVCeDR3SU85Tm5zUTFuc0tEZFBUUUVtVmoxc0t2aUlNWC93N3R1ZWVBZ3N4RWZEcTV3YThEV0dlOXNQRldjRVVIdmVqcjdvb2ZRWTdNMzdqODlLNkhUVXhEbEw2MVB1QjNQUXU3RnlRNzhPRDN0VmczdDZYdUF1M2E2M0VBYnNETDNMN1hEMU9XQ0JWUkc1T1JIbDJISzRIcU9DNjlLWXFVZkFOblVDZEs4YlYrNGxSZGlqdTVybUQ4cHdNbHBQMTZZRkJtaWRVenNCWGJDYmZYWmJ6MUZKZkQ2dkdxaTZJaWlwUVcwYzFPRWhRdGgrOTk2MU9YRndkWHhrWFZ4bGYvVVNEZ3dSbCt5ZjN1MkdpVWJUUmlzQ1cwY0RyTFlFVjF4ZkNVZjVNczRPd2MrYlRDYzNPSXduc1RIT1ZvclZha2NGZGRnUG5mWnNBVDd5bi9YQkpackFYajdPLzcxVWRlNjlUdkh0enFBOFB0UCtzWW1sOWczOXhackZ1eWNrbHRWRjFON3VYNU5lTk9FbWRmLzc1c2VTY3lYV1NwNWJVUEE4WVNLN1Jreml6M0YrNHN4d2Y3aFJYSEZ2bkFUZDJVSmFuUHhiUjgveHJtdHAzKzg1UmpHN3F6bTBuNnN6UGQxSU5mUmN2dEQzT01hKzhSeEMwZUFNRXBjYmtsa2NmNnhvL24vd1lXelpLN2lTenJ5ek5pUTdEdDZXZHhwRmZ5ZlZadkx6VDJLTXR6UGNBR01DWkNLZ24rejhiTW1HZ2Q1eEk0ZDhseVkraTVKbThybkZidUQ0RUlpR1psMDN3OXlZRit0Q3o1VVFpd1g5SXA0aGlIL0Y3aHg3OHRaRjJhc09oNVVXU2NOUE4xTjljZnp3OTZEKzAwUTJpSVZobTNUVGx5Kzg3L0oyTVZFOGtldnVRNU1IK0ZCSXBrSlJGNE5DNHhIQWZIa29nYXl1enZTVzcyT1FpNmhSYWtRc2FVbUorL1ovZ2lGeS9wZDQwaFV1S2xoL2FjTXBJK3pxWS9vN2ZFYllpU2pma1R5QVM1ZGwwbjBDU3R6OGhtNWRNSUJKOHVDM2NheWF2VHp1SC9BOGUvK25FRkpWY3hONGx5ZmF1MUpJSktNOG5uTWlsY1FoWnBFQVNpZUlmTENmNWVCT0o5YVR2WklmNytMNVRtNnd5R0lvRy82LzZqMGFFdlZMVFc5cjBhUlNSd3NWRUFRcG9vSk9DaWJQdWVIb0tkUXJCY1E3K3hJeGdQTS91L2d0UGw4dDdtQ0t4UUlWVnQrUWdPS25tV0VzZ2x6SnNONXRhNm5KU3oySjJlMnJCc0JJZGhIZVJ2aE00aEV0ajJWWm1zalhrdFErY1B6MERCcDBIRE45Mk9NRjBDUGRITUJkd1RYaGRYckM5UGt2dS9ya0RBNWhTZUxseSs1SXNVd3I5UkwxeTJudVlFc2c5MWxLVDFIcXJDaXFVV0NqRFlNQjRRcTFVQnVjRG16djFDWEw2KzY5NlNKZTgrMUkvUmovbmpUMEszU2lrU3hXMjM2TU8vQjc2UjZpL1pYV2xPMHVUNW9lR2ZGMFl6M3ROK1JvUEpEcHFCMmVNMk1lUytOajVLdXQ1V09pMGJPTGovQkZKb2ZsSkgrdktOSmZIQTJ5NnR2YjB3ekNia2JJamRYMEVoMFBaMUIyVWRhR0N6ZUlMTlU5YTVJdEx5MzllMVVmYmcwQ1hDMWpJaUgwRWFpcklydmJRblBhSGxMNzY2UC9Ed2FHOVp6a1RZUk9jYjhmL0paZWZ0NDE4N3YvWDhFUTRYdVNBOExNLzdQdHN2bzBmRFo3Rnh0aTl6TlBNWHZiWXRBdjFZbEtZWHFqbTZheWtRRmIwc1FaWE11dHNFQmlGbVVNQWtOdVFuOThaM3JBWUhxelQrVXhXV0RIOXpNK0I2QnozYldxa21oL0NubHArbWtFdHg4bmliaHFDUE9pQ1Y5TER3M2c3cmgwSHR1ekRma0tLdnRhUmtkbTUvZktDUWdyTWdLOVE1Rm4xMjhQempqS3ZSWm1JSzN5QXUzNHhnZzdDOUUzODVrcHUxQUZvdjkvOWtuV1c5ZVZkZDk4ZHh0N1RNdmp2Wlk0OWJ1cERuQVpEeG50WE5UaHltcGY0Uk1wZUYvcE9PTkZGN1YxSS96bVZmYVVXNTRwa1hCTThyeDRlTFpvK3RBVHBkK1ZTVm9Pa1h0SXBjY0puRWtoV3NsY1gwVW9LSjlFTDZ0MUZ0Z0xQWk9qK3FnWFlkVXRDMnhjZldNRisvcXJQTjJWWHYvVEU0dHZ2RysyWEhVUFg0N1BLd2lzVXpZdHJOQXVpTVN0ZTBsaXF5QXZMeWRheUYzbnR2TDRzTHlZN3NMQmpzRkoyOS9tUVhqUnpEbHdrVzBrSmxDSjdkNUYyNjhzeVViU2FWUzlwa0RnbG5lQU1NSzFNTnRTbmFPYk9CYk9Rdk9MSTFRT2liTTlVUnZPcWpPWXB6K3hjN3V2eDgrcC9nT2c1MDE5bExFNlhiZ0UwWk0zREYzN3RjYUlGMy84Umtwcjk1YjV0R1ltdERJTXdYV2dWV29ZU0pwTDVCdmFQN0YxQnU5WDRyaTh2TmdOUGp2ZDRHWlJkNklhS0RXaVhFbjE2OU1uRnZLNS9qZjkydlFEcUhIek5ZaXZNWHFJWDF6OWlqVlppOUVVL2NyK0V4QVc3d3lxMlRTMDBhb3FTVnF0NzFCYmkxOStGVTRkeXduYnJLaDFOOXJsYmpoZVhyZ1p0ejBlK2JWNXRHWHNhL1BXZk1JbE1KZ2FYVWIzRmpOQXNUbUlZMlJzaDZXSll1VDQ5NTd3cEplai9IVkdycDd5VENsZTZ2bVBad0g5N0MxcmZGcTh2YkRzOGtmVUI0MjBVb1BTV2dyYjNQOCsrby91QnBDR0drelFrTWt6VUU0VkVEWkZURWVTTzR2M1U5aHJWSGNHT01pcUIvbzBnVVhXejFpMEdWQkFaWWM0K0J0Umx1YXBvbDh4dU02WDRkY0J6OXFoZjZ6ZllWVUtWTnZhdVkxUG5STjlMZis4ejFaT1BxbjZmYWE5TEMxUFh0Yy84WHZWb3N2cU10Ly9Mdmh0T2xpcHJsK1dVQm5lcTQ2elRjL2tsS3hCSmJHNlIwcVlhUjBCSTMrWVNSUEg3ZDkraHhvQ00zT1c4NlN6UDdVSC9wNStLenIraUEwUGY5bm94T1VQNi9adm9oME5SUXcranYvbWRORFA1d3V2dDBNRG92MnpVUnlQREx0dzFFVkN2dlJubENzeUF3cjh6TThQSXNXTU8xelNPdHl2Z0NpYnM5N2NOU1BTcGNUWEdyZHczZFptWmIxVEdUZW9GMnpuYjlMeHZLbVA2TTE5L05MN0oyV3FNcllsTmhrQmNUUUY1WDVUejE3eUlOTGxSVUNRM0tyTlZSNStIN0NNWHhHdW9IaGhzM1FIUGNUM3dEckNkK296cm9lN1lCbnU0Yy9DMmJUQUQxSDBjdlNQOS9WTVJXVmtSeXJMNjhxUWIyV3RMVDRlbmsxS3dwLzdaMTM2TkkrMy9XTzdPVUt4Ym43NlRyK3VJWCtCTCsrVHIvTDd1K1AxK2xtRXRGYkdsR2sxcGJFVkxzNlk4dXRnV2t6WnZKSFNBU243YXVueFd5UlcxZkVsS3kwNVVVMXJHSzJQSjI5OXVLb3VwQ0ZNQUlsWTdOVkdQSGRhSmE3cGsvT2QwbUxhaU5IYWRia2RObzh5NE5IMXA4em9RbDE5K1dZajhDQ0xtZDV3T2IvRTdVSHFLWUNROGxNa2VHZ21FVTZXYmlTM2hwenZtUjNncnZqYjE1RXZrdWdwa3k2TytZamRoSWI5SVdQS1ZYdnVKVHZOQVdNeTNFRnBlaGxZLzhLclF5U1ZnbGFTWjVnVTA2ZUFxSSs2L1B1RWc1ZlF4R0hweGd1OWhmd2t0RDc3SmlsUjhOU2Q1eWh4empJMVhuZ1lpL2JxKzNuVlJWcUJrYUs4Mi91d1haUU5LUnV6bEx2NU9IL2pyNzZhdndvQTFqZS80bU5lbC9kL0h3ZXQ0MXI3VGVXdUpkZURxb2M3ZnNTc3ZYd0JyUHltZTJzUCs3d2w0RVVsQ295amU3cGk0OVlzcHEzOWpyYmZKQnVWeWJjeHZpN2ZFSFpvOU4yVlNwWWJaL0FyOWNzaEZsRlMvZ29EL2QzZ1YwQ0JOK1FScGErZ0tseTFyK21JUlgxejNRUzdJeUZnV3RJM1NyVEVWMW1Ua2Q0ZHZvZncva1ZFVzBXL1VBK2crS1oyeTBpVHR1ZnpHeHQzemFRdy9kY2JWSjV1dXhHM3h1MTJWZGt4K2E4MDlaWGJNdzMvRXk1OS9sbHA0citKNlRnbzNLN0JjVUtQZVVrbGltQ1ZWaEIrUGlpZFhmOXRwWjU3T0IwT2JBY1BBZ0w4NUJTQkk0aWRzei9FaWV0L3puL0tGSkNJK3ZmQW4zeW4vKzc1ell2WWEvdnc5WHdEaHQ4d1M4WHh5WWNUb3NwQUZqbVVnL3FTZStISmRlOGZuL2dXYy9ITzVuRHoydlRSZGY4ODcvV2gvU3RxclhLRXRUK1RwNHk4S1dOVFUxank4aU5jbUtDZ1FWUCttcDlTeFpDcGZvbUJQRjBiY2JnN0pjeXdEQ1pmMXhKZWQ5bzdQL1FyODg4L2xjWExaVDNXNi9nQVcybFVWN2IwaDZhU2YvaE5RKytEUlJrWnIwZGs5RmZwcEtVVWp2bENUYWlLUG9nYXU0ZWJPMmliUUdMY1QzSDNyK0FHb1Y5dy9XSlMvck90VTZhVXRTTUVUZjdPZ3oyL3ptT1l2RWhjd0VsOTRVMG5nZitMTUI1NGVFaUQyQ05NYjlCbkkvN0ZwVlV6WVNucW0zVFlwb1EyUG93NHdBa3FvQ0dEc0kvQXhHOFhCR3BXQVZLQWlBb3BCUERVQ1JRQkFqbzZCWStLUU9NQUx2TVpLakZTNFZmbDRGZzRsb24xYlZVc01yclBWVkRqa0JhYkd4RkM4ejhWT0FwVVlTRnE3OGN3T0FvZkdoQzI4N2R3UEFoMmtnV2ZNNWxlNFJ2QVZaMUJSdEI0Wkl4MkZuS21CRlZKWkg0SEsrUU1BOWRTRk5halVtUFdrbHBXV3JNNDBMSnZpclFieXZoWUVpRU5oRFdwNDdLRWRSQU1IcEtFMXlpNVg1NTk3SzBzbjI3S04vcXZVU1FvQThMb1hGRW10UWxyNFM5Qi8zM2x4RWRBQVNIbEVYMlVBZUFBNHNzRVUydnVCVUdvUThBSDVSZ0Jlb0puRVVYc2RTZEErYkdSQUJhT2tRUHV4K1FJRmxQR2FDdnlnTndGUjlraysrMkFBS29NQUd5UWFBZEJCR1luWWRwQUU3YzFHQmx4d25CUm9mMk8rd0FibWZxT0NZR2d4MEFNSHFBTlZZTEY5V0F2RW9Cb3NYZlB0TjRFYXNBaTBnWG9ZYnR3RUNPMlJsQlZKWHJNQWRJS3E3MkJFVW1oWlZaZEh4UFlHb0JEVWdRYXdCTFNBcXZtaVg0bnpDYVE0b1pnSkc2aXJ6STZmK0hXOEdLaUJDa1FCUVBMOEtLbFZVYWxWazJqTFlkSDJtaDFTb3cwZ0dxUlp6d0taRGttenRSSEdIRENoMlZLYmkzNks5bkN6bVROclJPdFVBSkRnRjNaME5rUXZYbHlQLzR3WFBZUVV2b0hMdzQ4QjBKai9URHVJQjVGMXUvcWNoYXJHU3F0T1p5enJwUkZ2ZGdFbjZ6Sjh2OElRSmVTZm1Ba1FBU0pDSklnTVVRNkMwblREdEd6SDliQ3crZkhId1lWQUJRakV3eWNnSkNJbUlTVVRSQzVZaUZCaHdpa29SVkNKRkVVdG1vWldqRmh4TUxoNENSSWxTWllpRlFBRWdTRlFHQnlCUktFeFdCeWVRQ1NSS1ZRYW5SRUFZckxZSEM2UEx4Q0t4QktwVEs1UXF0UWFyVTV2TUpyTUZxdk43bkM2M0I2dkR3eUJ3dUFJSkFxTndlTHdCQ0tKVEtIUzZBd21pODNoOHZoNUJnaUVJckZFS3BNcmxLSDdLa0N0MGVyMEJxUEpiTEhhN0E2bnl4MnBDMTZmSDRSZ0JNVndncVJvaHVWNGZJRlFKSlpJWlhLRlVxWFdhSFY2ZzlGa3RsaHRkb2ZUNWZaNGZYNUFtRkRHaFZUYVdFYzZueXdwOTNwakVGK2VzUTV6eGMyMTFCY1UzbDNiUVAwR0JiaVhBOWh1czhQWFBmcFB2dC8xVXNKZHdpNzhUbCtFWlpkSFNGNUxXWGZuOVV0cnBWWEt6MnMrcjdZVm5yd1c4eHBiYi93U0ZxU1hLM0F3eCtRT0tjN3IzL2xQSkVyMlhtaWk5dDVHMmFlOE01SU8wNHhJSlFTL3c0NUErTjg0Rm1tejlMaStYR3NqVElzVHViNmZZdHQ5WWQ0QjI2UWcvRld1WWdBVlZtMVJHcloyZ2hGT2FNMUhxRzJnZ0RrQUMzTWdNN1pldHlia2NMKzBDdjBMRjlwbVh0dkt3RGhOWlUyRlU2MHpkUTl6NFRBYkRRVTRnZStSdzhXUHJmTWNtSWJEVkdzbW5LYmZYSkxtWU5NRUIvZUVpU09Md2syM2ZRMDVqTGw0V1k4UXJheTFZL250WUczZ2hTREdKdHdKNzhneXpNbUNwMlNDYUlHVXk0SlZHS0FydHRYMjdhaEs4YXVwTWxKb29PSFFJZ2hpbVdFYUc1V1YvQ281MEphL2t6Q0tCZDJjMUZ4RFNaQng2QmoxRUxUNGtEUVVuaUdqbWFjekcydVB3azVnL2toQlFOWis2Y2pROTJnTzB4c3FoYkFFeWUrV2NXTHpGSGMzS0pQRDFMWHRZb0crS3hnWExMalpUWHdZT0hwK2g4WFlodlE0L2NTdHVVZW9rTFV0bk1haVRhekFXdVMwREJVeWNBNzh5V0NZb0dSNFpaUDJLSVJFeTFvWEhnaWNGTWh4N0pndDNIdTlmNzNNWjVzTG5UUFhLa25tVDVhaXd3VGpFVTdWeDYzOTRrd1lLRlpabzk5YUpBNlNuQlRJUVpjSmdHMmlPWUVzQS9MZ2ptektFUzJab3JvbGhXRE40Q1F1SnVSc0Zzd25EY1VBQVppMlRSWTdKUFhKQVlnWityd1ZKTzNUNHlBazBweUNBR3dqYUZ2d1pvMFBXQUpwbkFWTVIvSUtrTEZEM3JyRTRDWGtraDdaZG1XcTNKalJtUU9MTTRlRkljVTNWNGtEVlQ2UkVLY2tZWFBHQU5TUEJNV2xOT1FZamtJYXdoQ1hudU01cHJaQ1F3ZmRYZ3FmWmlkaEdmSnBZT3FUQS9ZMDUwMFpCNExRUmVPOFlaNm1qcTJlNlFJZHpkR0x6Ujh6aUVXU0xWUWQyTm9pWUdrUkdhTVhMQ3Qwb3E3Zk9Xb0NUYzExS2drTXR0amowakZKNnpJYzdCYWZpZkNrMHBaT2hTYnJhQW9wY0VwRzQva093eU5tRjM5TXQ1cHBUVzdqUm9COFdnUGtPYzUxckM4b0tabDYyaUtBYW1sdTREbXVCa3ZDY0N0andjTUxBbFZ6UjMydDEwQ3dUeU02QWJhZ0dsbGI0OGdVNUFDRHpVbUJDeUpxeGx4czhVNFhBeVRjVHRqV01OR2RIOUd1d1RCbWp5STNZSkZFZ3JvdmNRRFI1a0ZaME5Na21nVERaY2xjMTgzdVRjb0JETkFhaW1JRTJDd3U5T1hrbEJHUmtOdkl0TVU3elhUbFg1WnovVjhZSU8yaUsvL3hNbnB1MjJXQk5YUnlHOXZHUXVKMG1Hc2MyNi9BYWc1WVFlbFpaczVCaTJ1YnN4SFYvRHpHWFJ0M1AzS1RPdlE0SEc4YUtwbTlPeW9IbklnekcvR2tJRWVySHFFQmFZQ1E4VUpQV2JnOC92TkZEeUZ2cWtoSWU2TzZsMFdvcmRHOXBIQUF5eVRXYmhDR0hDdEJEN3ZEanpsanFSVDQrOEUyUE9nTHBBQ0hEdytFNWpxcnR5YW5IdzBBQUE9PSkgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2F0LmFsaWNkbi5jb20vdC9jL2ZvbnRfMjU1MzUxMF9jaWxqYzdheGF3Ny53b2ZmP3Q9MTcwNTU4NzQ2MzIyMSkgZm9ybWF0KCJ3b2ZmIil9LnZhbi1pY29uX19pbWFnZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjFlbTtoZWlnaHQ6MWVtO29iamVjdC1maXQ6Y29udGFpbn06cm9vdCw6aG9zdHstLXZhbi1za2VsZXRvbi1pbWFnZS1zaXplOiA5NnB4Oy0tdmFuLXNrZWxldG9uLWltYWdlLXJhZGl1czogMjRweH0udmFuLXNrZWxldG9uLWltYWdle2Rpc3BsYXk6ZmxleDt3aWR0aDp2YXIoLS12YW4tc2tlbGV0b24taW1hZ2Utc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1za2VsZXRvbi1pbWFnZS1zaXplKTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpfS52YW4tc2tlbGV0b24taW1hZ2UtLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXNrZWxldG9uLWltYWdlLXJhZGl1cyl9LnZhbi1za2VsZXRvbi1pbWFnZV9faWNvbnt3aWR0aDpjYWxjKHZhcigtLXZhbi1za2VsZXRvbi1pbWFnZS1zaXplKSAvIDIpO2hlaWdodDpjYWxjKHZhcigtLXZhbi1za2VsZXRvbi1pbWFnZS1zaXplKSAvIDIpO2ZvbnQtc2l6ZTpjYWxjKHZhcigtLXZhbi1za2VsZXRvbi1pbWFnZS1zaXplKSAvIDIpO2NvbG9yOnZhcigtLXZhbi1ncmF5LTUpfTpyb290LDpob3N0ey0tdmFuLXJhdGUtaWNvbi1zaXplOiAyMHB4Oy0tdmFuLXJhdGUtaWNvbi1ndXR0ZXI6IHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLXJhdGUtaWNvbi12b2lkLWNvbG9yOiB2YXIoLS12YW4tZ3JheS01KTstLXZhbi1yYXRlLWljb24tZnVsbC1jb2xvcjogdmFyKC0tdmFuLWRhbmdlci1jb2xvcik7LS12YW4tcmF0ZS1pY29uLWRpc2FibGVkLWNvbG9yOiB2YXIoLS12YW4tZ3JheS01KX0udmFuLXJhdGV7ZGlzcGxheTppbmxpbmUtZmxleDtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtmbGV4LXdyYXA6d3JhcH0udmFuLXJhdGVfX2l0ZW17cG9zaXRpb246cmVsYXRpdmV9LnZhbi1yYXRlX19pdGVtOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcmF0ZS1pY29uLWd1dHRlcil9LnZhbi1yYXRlX19pY29ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MWVtO2NvbG9yOnZhcigtLXZhbi1yYXRlLWljb24tdm9pZC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1yYXRlLWljb24tc2l6ZSl9LnZhbi1yYXRlX19pY29uLS1oYWxme3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX0udmFuLXJhdGVfX2ljb24tLWZ1bGx7Y29sb3I6dmFyKC0tdmFuLXJhdGUtaWNvbi1mdWxsLWNvbG9yKX0udmFuLXJhdGVfX2ljb24tLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi1yYXRlLWljb24tZGlzYWJsZWQtY29sb3IpfS52YW4tcmF0ZS0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tcmF0ZS0tcmVhZG9ubHl7Y3Vyc29yOmRlZmF1bHR9OnJvb3QsOmhvc3R7LS12YW4tbm90aWNlLWJhci1oZWlnaHQ6IDQwcHg7LS12YW4tbm90aWNlLWJhci1wYWRkaW5nOiAwIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1ub3RpY2UtYmFyLXdyYXBhYmxlLXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tbm90aWNlLWJhci10ZXh0LWNvbG9yOiB2YXIoLS12YW4tb3JhbmdlLWRhcmspOy0tdmFuLW5vdGljZS1iYXItZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1ub3RpY2UtYmFyLWxpbmUtaGVpZ2h0OiAyNHB4Oy0tdmFuLW5vdGljZS1iYXItYmFja2dyb3VuZDogdmFyKC0tdmFuLW9yYW5nZS1saWdodCk7LS12YW4tbm90aWNlLWJhci1pY29uLXNpemU6IDE2cHg7LS12YW4tbm90aWNlLWJhci1pY29uLW1pbi13aWR0aDogMjRweH0udmFuLW5vdGljZS1iYXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6dmFyKC0tdmFuLW5vdGljZS1iYXItaGVpZ2h0KTtwYWRkaW5nOnZhcigtLXZhbi1ub3RpY2UtYmFyLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1ub3RpY2UtYmFyLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbm90aWNlLWJhci1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1ub3RpY2UtYmFyLWxpbmUtaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1ub3RpY2UtYmFyLWJhY2tncm91bmQpfS52YW4tbm90aWNlLWJhcl9fbGVmdC1pY29uLC52YW4tbm90aWNlLWJhcl9fcmlnaHQtaWNvbnttaW4td2lkdGg6dmFyKC0tdmFuLW5vdGljZS1iYXItaWNvbi1taW4td2lkdGgpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbm90aWNlLWJhci1pY29uLXNpemUpfS52YW4tbm90aWNlLWJhcl9fcmlnaHQtaWNvbnt0ZXh0LWFsaWduOnJpZ2h0O2N1cnNvcjpwb2ludGVyfS52YW4tbm90aWNlLWJhcl9fd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleDoxO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59LnZhbi1ub3RpY2UtYmFyX19jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9LnZhbi1ub3RpY2UtYmFyX19jb250ZW50LnZhbi1lbGxpcHNpc3ttYXgtd2lkdGg6MTAwJX0udmFuLW5vdGljZS1iYXItLXdyYXBhYmxle2hlaWdodDphdXRvO3BhZGRpbmc6dmFyKC0tdmFuLW5vdGljZS1iYXItd3JhcGFibGUtcGFkZGluZyl9LnZhbi1ub3RpY2UtYmFyLS13cmFwYWJsZSAudmFuLW5vdGljZS1iYXJfX3dyYXB7aGVpZ2h0OmF1dG99LnZhbi1ub3RpY2UtYmFyLS13cmFwYWJsZSAudmFuLW5vdGljZS1iYXJfX2NvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtd3JhcDpicmVhay13b3JkfTpyb290LDpob3N0ey0tdmFuLW5hdi1iYXItaGVpZ2h0OiA0NnB4Oy0tdmFuLW5hdi1iYXItYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tbmF2LWJhci1hcnJvdy1zaXplOiAxNnB4Oy0tdmFuLW5hdi1iYXItaWNvbi1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLW5hdi1iYXItdGV4dC1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLW5hdi1iYXItdGl0bGUtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLWxnKTstLXZhbi1uYXYtYmFyLXRpdGxlLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1uYXYtYmFyLXotaW5kZXg6IDE7LS12YW4tbmF2LWJhci1kaXNhYmxlZC1vcGFjaXR5OiB2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi1uYXYtYmFye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6dmFyKC0tdmFuLW5hdi1iYXItei1pbmRleCk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LWxnKTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi1uYXYtYmFyLWJhY2tncm91bmQpOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52YW4tbmF2LWJhci0tZml4ZWR7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCV9LnZhbi1uYXYtYmFyLS1zYWZlLWFyZWEtaW5zZXQtdG9we3BhZGRpbmctdG9wOmNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApO3BhZGRpbmctdG9wOmVudihzYWZlLWFyZWEtaW5zZXQtdG9wKX0udmFuLW5hdi1iYXIgLnZhbi1pY29ue2NvbG9yOnZhcigtLXZhbi1uYXYtYmFyLWljb24tY29sb3IpfS52YW4tbmF2LWJhcl9fY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDp2YXIoLS12YW4tbmF2LWJhci1oZWlnaHQpfS52YW4tbmF2LWJhcl9fYXJyb3d7bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbmF2LWJhci1hcnJvdy1zaXplKX0udmFuLW5hdi1iYXJfX3RpdGxle21heC13aWR0aDo2MCU7bWFyZ2luOjAgYXV0bztjb2xvcjp2YXIoLS12YW4tbmF2LWJhci10aXRsZS10ZXh0LWNvbG9yKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtmb250LXNpemU6dmFyKC0tdmFuLW5hdi1iYXItdGl0bGUtZm9udC1zaXplKX0udmFuLW5hdi1iYXJfX2xlZnQsLnZhbi1uYXYtYmFyX19yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1tZCk7Zm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpfS52YW4tbmF2LWJhcl9fbGVmdC0tZGlzYWJsZWQsLnZhbi1uYXYtYmFyX19yaWdodC0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6dmFyKC0tdmFuLW5hdi1iYXItZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi1uYXYtYmFyX19sZWZ0e2xlZnQ6MH0udmFuLW5hdi1iYXJfX3JpZ2h0e3JpZ2h0OjB9LnZhbi1uYXYtYmFyX190ZXh0e2NvbG9yOnZhcigtLXZhbi1uYXYtYmFyLXRleHQtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1zaXplOiA0OHB4Oy0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1pbml0aWFsLWdhcDogMjRweDstLXZhbi1mbG9hdGluZy1idWJibGUtaWNvbi1zaXplOiAyOHB4Oy0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tZmxvYXRpbmctYnViYmxlLWNvbG9yOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1mbG9hdGluZy1idWJibGUtei1pbmRleDogOTk5Oy0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1ib3JkZXItcmFkaXVzOiB2YXIoLS12YW4tcmFkaXVzLW1heCl9LnZhbi1mbG9hdGluZy1idWJibGV7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3RvcDowO3JpZ2h0OnZhcigtLXZhbi1mbG9hdGluZy1idWJibGUtaW5pdGlhbC1nYXApO2JvdHRvbTp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLWluaXRpYWwtZ2FwKTt3aWR0aDp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLXNpemUpO2hlaWdodDp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLXNpemUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3RvdWNoLWFjdGlvbjpub25lO2JhY2tncm91bmQ6dmFyKC0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1iYWNrZ3JvdW5kKTtjb2xvcjp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1mbG9hdGluZy1idWJibGUtYm9yZGVyLXJhZGl1cyk7ei1pbmRleDp2YXIoLS12YW4tZmxvYXRpbmctYnViYmxlLXotaW5kZXgpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKX0udmFuLWZsb2F0aW5nLWJ1YmJsZTphY3RpdmV7b3BhY2l0eTouOH0udmFuLWZsb2F0aW5nLWJ1YmJsZV9faWNvbntmb250LXNpemU6dmFyKC0tdmFuLWZsb2F0aW5nLWJ1YmJsZS1pY29uLXNpemUpfTpyb290LDpob3N0ey0tdmFuLWltYWdlLXBsYWNlaG9sZGVyLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWltYWdlLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4taW1hZ2UtcGxhY2Vob2xkZXItYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLWltYWdlLWxvYWRpbmctaWNvbi1zaXplOiAzMnB4Oy0tdmFuLWltYWdlLWxvYWRpbmctaWNvbi1jb2xvcjogdmFyKC0tdmFuLWdyYXktNCk7LS12YW4taW1hZ2UtZXJyb3ItaWNvbi1zaXplOiAzMnB4Oy0tdmFuLWltYWdlLWVycm9yLWljb24tY29sb3I6IHZhcigtLXZhbi1ncmF5LTQpfS52YW4taW1hZ2V7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnZhbi1pbWFnZS0tcm91bmR7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpfS52YW4taW1hZ2UtLXJvdW5kIC52YW4taW1hZ2VfX2ltZ3tib3JkZXItcmFkaXVzOmluaGVyaXR9LnZhbi1pbWFnZS0tYmxvY2t7ZGlzcGxheTpibG9ja30udmFuLWltYWdlX19pbWcsLnZhbi1pbWFnZV9fZXJyb3IsLnZhbi1pbWFnZV9fbG9hZGluZ3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnZhbi1pbWFnZV9fZXJyb3IsLnZhbi1pbWFnZV9fbG9hZGluZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp2YXIoLS12YW4taW1hZ2UtcGxhY2Vob2xkZXItdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1pbWFnZS1wbGFjZWhvbGRlci1mb250LXNpemUpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWltYWdlLXBsYWNlaG9sZGVyLWJhY2tncm91bmQpfS52YW4taW1hZ2VfX2xvYWRpbmctaWNvbntjb2xvcjp2YXIoLS12YW4taW1hZ2UtbG9hZGluZy1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWltYWdlLWxvYWRpbmctaWNvbi1zaXplKX0udmFuLWltYWdlX19lcnJvci1pY29ue2NvbG9yOnZhcigtLXZhbi1pbWFnZS1lcnJvci1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWltYWdlLWVycm9yLWljb24tc2l6ZSl9OnJvb3QsOmhvc3R7LS12YW4tYmFjay10b3Atc2l6ZTogNDBweDstLXZhbi1iYWNrLXRvcC1yaWdodDogMzBweDstLXZhbi1iYWNrLXRvcC1ib3R0b206IDQwcHg7LS12YW4tYmFjay10b3Atei1pbmRleDogMTAwOy0tdmFuLWJhY2stdG9wLWljb24tc2l6ZTogMjBweDstLXZhbi1iYWNrLXRvcC10ZXh0LWNvbG9yOiAjZmZmOy0tdmFuLWJhY2stdG9wLWJhY2tncm91bmQ6IHZhcigtLXZhbi1ibHVlKX0udmFuLWJhY2stdG9we3Bvc2l0aW9uOmZpeGVkO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDp2YXIoLS12YW4tYmFjay10b3Atc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1iYWNrLXRvcC1zaXplKTtyaWdodDp2YXIoLS12YW4tYmFjay10b3AtcmlnaHQpO2JvdHRvbTp2YXIoLS12YW4tYmFjay10b3AtYm90dG9tKTt6LWluZGV4OnZhcigtLXZhbi1iYWNrLXRvcC16LWluZGV4KTtjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS12YW4tYmFjay10b3AtdGV4dC1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCk7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDFmO3RyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2l0aW9uOnZhcigtLXZhbi1kdXJhdGlvbi1iYXNlKSBjdWJpYy1iZXppZXIoLjI1LC44LC41LDEpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2stdG9wLWJhY2tncm91bmQpfS52YW4tYmFjay10b3A6YWN0aXZle29wYWNpdHk6dmFyKC0tdmFuLWFjdGl2ZS1vcGFjaXR5KX0udmFuLWJhY2stdG9wX19wbGFjZWhvbGRlcntkaXNwbGF5Om5vbmV9LnZhbi1iYWNrLXRvcC0tYWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxKX0udmFuLWJhY2stdG9wX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tYmFjay10b3AtaWNvbi1zaXplKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKX06cm9vdCw6aG9zdHstLXZhbi10YWctcGFkZGluZzogMCB2YXIoLS12YW4tcGFkZGluZy1iYXNlKTstLXZhbi10YWctdGV4dC1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi10YWctZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi10YWctcmFkaXVzOiAycHg7LS12YW4tdGFnLWxpbmUtaGVpZ2h0OiAxNnB4Oy0tdmFuLXRhZy1tZWRpdW0tcGFkZGluZzogMnB4IDZweDstLXZhbi10YWctbGFyZ2UtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctYmFzZSkgdmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLXRhZy1sYXJnZS1yYWRpdXM6IHZhcigtLXZhbi1yYWRpdXMtbWQpOy0tdmFuLXRhZy1sYXJnZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLXRhZy1yb3VuZC1yYWRpdXM6IHZhcigtLXZhbi1yYWRpdXMtbWF4KTstLXZhbi10YWctZGFuZ2VyLWNvbG9yOiB2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi10YWctcHJpbWFyeS1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXRhZy1zdWNjZXNzLWNvbG9yOiB2YXIoLS12YW4tc3VjY2Vzcy1jb2xvcik7LS12YW4tdGFnLXdhcm5pbmctY29sb3I6IHZhcigtLXZhbi13YXJuaW5nLWNvbG9yKTstLXZhbi10YWctZGVmYXVsdC1jb2xvcjogdmFyKC0tdmFuLWdyYXktNik7LS12YW4tdGFnLXBsYWluLWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpfS52YW4tdGFne3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6dmFyKC0tdmFuLXRhZy1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tdGFnLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdGFnLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXRhZy1saW5lLWhlaWdodCk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tdGFnLXJhZGl1cyl9LnZhbi10YWctLWRlZmF1bHR7YmFja2dyb3VuZDp2YXIoLS12YW4tdGFnLWRlZmF1bHQtY29sb3IpfS52YW4tdGFnLS1kZWZhdWx0LnZhbi10YWctLXBsYWlue2NvbG9yOnZhcigtLXZhbi10YWctZGVmYXVsdC1jb2xvcil9LnZhbi10YWctLWRhbmdlcntiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWctZGFuZ2VyLWNvbG9yKX0udmFuLXRhZy0tZGFuZ2VyLnZhbi10YWctLXBsYWlue2NvbG9yOnZhcigtLXZhbi10YWctZGFuZ2VyLWNvbG9yKX0udmFuLXRhZy0tcHJpbWFyeXtiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWctcHJpbWFyeS1jb2xvcil9LnZhbi10YWctLXByaW1hcnkudmFuLXRhZy0tcGxhaW57Y29sb3I6dmFyKC0tdmFuLXRhZy1wcmltYXJ5LWNvbG9yKX0udmFuLXRhZy0tc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWctc3VjY2Vzcy1jb2xvcil9LnZhbi10YWctLXN1Y2Nlc3MudmFuLXRhZy0tcGxhaW57Y29sb3I6dmFyKC0tdmFuLXRhZy1zdWNjZXNzLWNvbG9yKX0udmFuLXRhZy0td2FybmluZ3tiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWctd2FybmluZy1jb2xvcil9LnZhbi10YWctLXdhcm5pbmcudmFuLXRhZy0tcGxhaW57Y29sb3I6dmFyKC0tdmFuLXRhZy13YXJuaW5nLWNvbG9yKX0udmFuLXRhZy0tcGxhaW57YmFja2dyb3VuZDp2YXIoLS12YW4tdGFnLXBsYWluLWJhY2tncm91bmQpO2JvcmRlci1jb2xvcjpjdXJyZW50Q29sb3J9LnZhbi10YWctLXBsYWluOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czppbmhlcml0O2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZX0udmFuLXRhZy0tbWVkaXVte3BhZGRpbmc6dmFyKC0tdmFuLXRhZy1tZWRpdW0tcGFkZGluZyl9LnZhbi10YWctLWxhcmdle3BhZGRpbmc6dmFyKC0tdmFuLXRhZy1sYXJnZS1wYWRkaW5nKTtmb250LXNpemU6dmFyKC0tdmFuLXRhZy1sYXJnZS1mb250LXNpemUpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXRhZy1sYXJnZS1yYWRpdXMpfS52YW4tdGFnLS1tYXJre2JvcmRlci1yYWRpdXM6MCB2YXIoLS12YW4tdGFnLXJvdW5kLXJhZGl1cykgdmFyKC0tdmFuLXRhZy1yb3VuZC1yYWRpdXMpIDB9LnZhbi10YWctLW1hcms6YWZ0ZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoycHg7Y29udGVudDoiIn0udmFuLXRhZy0tcm91bmR7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tdGFnLXJvdW5kLXJhZGl1cyl9LnZhbi10YWdfX2Nsb3Nle21hcmdpbi1sZWZ0OjJweH06cm9vdCw6aG9zdHstLXZhbi1jYXJkLXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY2FyZC1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWNhcmQtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWNhcmQtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLWNhcmQtdGh1bWItc2l6ZTogODhweDstLXZhbi1jYXJkLXRodW1iLXJhZGl1czogdmFyKC0tdmFuLXJhZGl1cy1sZyk7LS12YW4tY2FyZC10aXRsZS1saW5lLWhlaWdodDogMTZweDstLXZhbi1jYXJkLWRlc2MtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNhcmQtZGVzYy1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi1jYXJkLXByaWNlLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tY2FyZC1vcmlnaW4tcHJpY2UtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNhcmQtbnVtLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1jYXJkLW9yaWdpbi1wcmljZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUteHMpOy0tdmFuLWNhcmQtcHJpY2UtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi1jYXJkLXByaWNlLWludGVnZXItZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLWxnKTstLXZhbi1jYXJkLXByaWNlLWZvbnQ6IHZhcigtLXZhbi1wcmljZS1mb250KX0udmFuLWNhcmR7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6dmFyKC0tdmFuLWNhcmQtcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLWNhcmQtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1jYXJkLWZvbnQtc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tY2FyZC1iYWNrZ3JvdW5kKX0udmFuLWNhcmQ6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDp2YXIoLS12YW4tcGFkZGluZy14cyl9LnZhbi1jYXJkX19oZWFkZXJ7ZGlzcGxheTpmbGV4fS52YW4tY2FyZF9fdGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7ZmxleDpub25lO3dpZHRoOnZhcigtLXZhbi1jYXJkLXRodW1iLXNpemUpO2hlaWdodDp2YXIoLS12YW4tY2FyZC10aHVtYi1zaXplKTttYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmcteHMpfS52YW4tY2FyZF9fdGh1bWIgaW1ne2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLWNhcmQtdGh1bWItcmFkaXVzKX0udmFuLWNhcmRfX2NvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXg6MTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWluLXdpZHRoOjA7bWluLWhlaWdodDp2YXIoLS12YW4tY2FyZC10aHVtYi1zaXplKX0udmFuLWNhcmRfX2NvbnRlbnQtLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnZhbi1jYXJkX190aXRsZSwudmFuLWNhcmRfX2Rlc2N7d29yZC13cmFwOmJyZWFrLXdvcmR9LnZhbi1jYXJkX190aXRsZXttYXgtaGVpZ2h0OjMycHg7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNhcmQtdGl0bGUtbGluZS1oZWlnaHQpfS52YW4tY2FyZF9fZGVzY3ttYXgtaGVpZ2h0OnZhcigtLXZhbi1jYXJkLWRlc2MtbGluZS1oZWlnaHQpO2NvbG9yOnZhcigtLXZhbi1jYXJkLWRlc2MtY29sb3IpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jYXJkLWRlc2MtbGluZS1oZWlnaHQpfS52YW4tY2FyZF9fYm90dG9te2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCl9LnZhbi1jYXJkX19wcmljZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjp2YXIoLS12YW4tY2FyZC1wcmljZS1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7Zm9udC1zaXplOnZhcigtLXZhbi1jYXJkLXByaWNlLWZvbnQtc2l6ZSl9LnZhbi1jYXJkX19wcmljZS1pbnRlZ2Vye2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FyZC1wcmljZS1pbnRlZ2VyLWZvbnQtc2l6ZSk7Zm9udC1mYW1pbHk6dmFyKC0tdmFuLWNhcmQtcHJpY2UtZm9udCl9LnZhbi1jYXJkX19wcmljZS1kZWNpbWFse2ZvbnQtZmFtaWx5OnZhcigtLXZhbi1jYXJkLXByaWNlLWZvbnQpfS52YW4tY2FyZF9fb3JpZ2luLXByaWNle2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjVweDtjb2xvcjp2YXIoLS12YW4tY2FyZC1vcmlnaW4tcHJpY2UtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FyZC1vcmlnaW4tcHJpY2UtZm9udC1zaXplKTt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS52YW4tY2FyZF9fbnVte2Zsb2F0OnJpZ2h0O2NvbG9yOnZhcigtLXZhbi1jYXJkLW51bS1jb2xvcil9LnZhbi1jYXJkX190YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtsZWZ0OjB9LnZhbi1jYXJkX19mb290ZXJ7ZmxleDpub25lO3RleHQtYWxpZ246cmlnaHR9LnZhbi1jYXJkX19mb290ZXIgLnZhbi1idXR0b257bWFyZ2luLWxlZnQ6NXB4fTpyb290LDpob3N0ey0tdmFuLWNlbGwtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jZWxsLWxpbmUtaGVpZ2h0OiAyNHB4Oy0tdmFuLWNlbGwtdmVydGljYWwtcGFkZGluZzogMTBweDstLXZhbi1jZWxsLWhvcml6b250YWwtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWNlbGwtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWNlbGwtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tY2VsbC1ib3JkZXItY29sb3I6IHZhcigtLXZhbi1ib3JkZXItY29sb3IpOy0tdmFuLWNlbGwtYWN0aXZlLWNvbG9yOiB2YXIoLS12YW4tYWN0aXZlLWNvbG9yKTstLXZhbi1jZWxsLXJlcXVpcmVkLWNvbG9yOiB2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1jZWxsLWxhYmVsLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1jZWxsLWxhYmVsLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tY2VsbC1sYWJlbC1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LXNtKTstLXZhbi1jZWxsLWxhYmVsLW1hcmdpbi10b3A6IHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLWNlbGwtdmFsdWUtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNlbGwtdmFsdWUtZm9udC1zaXplOiBpbmhlcml0Oy0tdmFuLWNlbGwtaWNvbi1zaXplOiAxNnB4Oy0tdmFuLWNlbGwtcmlnaHQtaWNvbi1jb2xvcjogdmFyKC0tdmFuLWdyYXktNik7LS12YW4tY2VsbC1sYXJnZS12ZXJ0aWNhbC1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tY2VsbC1sYXJnZS10aXRsZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWNlbGwtbGFyZ2UtbGFiZWwtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jZWxsLWxhcmdlLXZhbHVlLWZvbnQtc2l6ZTogaW5oZXJpdH0udmFuLWNlbGx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO3BhZGRpbmc6dmFyKC0tdmFuLWNlbGwtdmVydGljYWwtcGFkZGluZykgdmFyKC0tdmFuLWNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKTtvdmVyZmxvdzpoaWRkZW47Y29sb3I6dmFyKC0tdmFuLWNlbGwtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtbGluZS1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWNlbGwtYmFja2dyb3VuZCl9LnZhbi1jZWxsOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIgIjtwb2ludGVyLWV2ZW50czpub25lO3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtib3R0b206MDtsZWZ0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS12YW4tY2VsbC1ib3JkZXItY29sb3IpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfS52YW4tY2VsbDpsYXN0LWNoaWxkOmFmdGVyLC52YW4tY2VsbC0tYm9yZGVybGVzczphZnRlcntkaXNwbGF5Om5vbmV9LnZhbi1jZWxsX19sYWJlbHttYXJnaW4tdG9wOnZhcigtLXZhbi1jZWxsLWxhYmVsLW1hcmdpbi10b3ApO2NvbG9yOnZhcigtLXZhbi1jZWxsLWxhYmVsLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWNlbGwtbGFiZWwtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY2VsbC1sYWJlbC1saW5lLWhlaWdodCl9LnZhbi1jZWxsX190aXRsZSwudmFuLWNlbGxfX3ZhbHVle2ZsZXg6MX0udmFuLWNlbGxfX3ZhbHVle3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtjb2xvcjp2YXIoLS12YW4tY2VsbC12YWx1ZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLXZhbHVlLWZvbnQtc2l6ZSk7dGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d29yZC13cmFwOmJyZWFrLXdvcmR9LnZhbi1jZWxsX19sZWZ0LWljb24sLnZhbi1jZWxsX19yaWdodC1pY29ue2hlaWdodDp2YXIoLS12YW4tY2VsbC1saW5lLWhlaWdodCk7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLWljb24tc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtbGluZS1oZWlnaHQpfS52YW4tY2VsbF9fbGVmdC1pY29ue21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKX0udmFuLWNlbGxfX3JpZ2h0LWljb257bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Y29sb3I6dmFyKC0tdmFuLWNlbGwtcmlnaHQtaWNvbi1jb2xvcil9LnZhbi1jZWxsLS1jbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9LnZhbi1jZWxsLS1jbGlja2FibGU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWNlbGwtYWN0aXZlLWNvbG9yKX0udmFuLWNlbGwtLXJlcXVpcmVke292ZXJmbG93OnZpc2libGV9LnZhbi1jZWxsLS1yZXF1aXJlZDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDp2YXIoLS12YW4tcGFkZGluZy14cyk7Y29sb3I6dmFyKC0tdmFuLWNlbGwtcmVxdWlyZWQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2VsbC1mb250LXNpemUpO2NvbnRlbnQ6IioifS52YW4tY2VsbC0tY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0udmFuLWNlbGwtLWxhcmdle3BhZGRpbmctdG9wOnZhcigtLXZhbi1jZWxsLWxhcmdlLXZlcnRpY2FsLXBhZGRpbmcpO3BhZGRpbmctYm90dG9tOnZhcigtLXZhbi1jZWxsLWxhcmdlLXZlcnRpY2FsLXBhZGRpbmcpfS52YW4tY2VsbC0tbGFyZ2UgLnZhbi1jZWxsX190aXRsZXtmb250LXNpemU6dmFyKC0tdmFuLWNlbGwtbGFyZ2UtdGl0bGUtZm9udC1zaXplKX0udmFuLWNlbGwtLWxhcmdlIC52YW4tY2VsbF9fbGFiZWx7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLWxhcmdlLWxhYmVsLWZvbnQtc2l6ZSl9LnZhbi1jZWxsLS1sYXJnZSAudmFuLWNlbGxfX3ZhbHVle2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2VsbC1sYXJnZS12YWx1ZS1mb250LXNpemUpfTpyb290LDpob3N0ey0tdmFuLWNvdXBvbi1jZWxsLXNlbGVjdGVkLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKX0udmFuLWNvdXBvbi1jZWxsX192YWx1ZS0tc2VsZWN0ZWR7Y29sb3I6dmFyKC0tdmFuLWNvdXBvbi1jZWxsLXNlbGVjdGVkLXRleHQtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWNvbnRhY3QtY2FyZC1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY29udGFjdC1jYXJkLWFkZC1pY29uLXNpemU6IDQwcHg7LS12YW4tY29udGFjdC1jYXJkLWFkZC1pY29uLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tY29udGFjdC1jYXJkLXRpdGxlLWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpfS52YW4tY29udGFjdC1jYXJke3BhZGRpbmc6dmFyKC0tdmFuLWNvbnRhY3QtY2FyZC1wYWRkaW5nKX0udmFuLWNvbnRhY3QtY2FyZF9fdGl0bGV7bWFyZ2luLWxlZnQ6NXB4O2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jb250YWN0LWNhcmQtdGl0bGUtbGluZS1oZWlnaHQpfS52YW4tY29udGFjdC1jYXJkLS1hZGQgLnZhbi1jb250YWN0LWNhcmRfX3ZhbHVle2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1jb250YWN0LWNhcmQtYWRkLWljb24tc2l6ZSl9LnZhbi1jb250YWN0LWNhcmQtLWFkZCAudmFuLWNlbGxfX2xlZnQtaWNvbntjb2xvcjp2YXIoLS12YW4tY29udGFjdC1jYXJkLWFkZC1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWNvbnRhY3QtY2FyZC1hZGQtaWNvbi1zaXplKX0udmFuLWNvbnRhY3QtY2FyZDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLHZhcigtLXZhbi13YXJuaW5nLWNvbG9yKSAwLHZhcigtLXZhbi13YXJuaW5nLWNvbG9yKSAyMCUsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCAyNSUsdmFyKC0tdmFuLXByaW1hcnktY29sb3IpIDAsdmFyKC0tdmFuLXByaW1hcnktY29sb3IpIDQ1JSx0cmFuc3BhcmVudCAwLHRyYW5zcGFyZW50IDUwJSk7YmFja2dyb3VuZC1zaXplOjgwcHg7Y29udGVudDoiIn06cm9vdCw6aG9zdHstLXZhbi1jb2xsYXBzZS1pdGVtLWR1cmF0aW9uOiB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSk7LS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXNtKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LWxpbmUtaGVpZ2h0OiAxLjU7LS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1jb2xsYXBzZS1pdGVtLXRpdGxlLWRpc2FibGVkLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0zKX0udmFuLWNvbGxhcHNlLWl0ZW17cG9zaXRpb246cmVsYXRpdmV9LnZhbi1jb2xsYXBzZS1pdGVtLS1ib3JkZXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiAiO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7cmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpO2xlZnQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXZhbi1ib3JkZXItY29sb3IpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfS52YW4tY29sbGFwc2UtaXRlbV9fdGl0bGUgLnZhbi1jZWxsX19yaWdodC1pY29uOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKSB0cmFuc2xhdGVaKDApO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXZhbi1jb2xsYXBzZS1pdGVtLWR1cmF0aW9uKX0udmFuLWNvbGxhcHNlLWl0ZW1fX3RpdGxlOmFmdGVye3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtkaXNwbGF5Om5vbmV9LnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZXhwYW5kZWQgLnZhbi1jZWxsX19yaWdodC1pY29uOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9LnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZXhwYW5kZWQ6YWZ0ZXJ7ZGlzcGxheTpibG9ja30udmFuLWNvbGxhcHNlLWl0ZW1fX3RpdGxlLS1ib3JkZXJsZXNzOmFmdGVye2Rpc3BsYXk6bm9uZX0udmFuLWNvbGxhcHNlLWl0ZW1fX3RpdGxlLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZGlzYWJsZWQsLnZhbi1jb2xsYXBzZS1pdGVtX190aXRsZS0tZGlzYWJsZWQgLnZhbi1jZWxsX19yaWdodC1pY29ue2NvbG9yOnZhcigtLXZhbi1jb2xsYXBzZS1pdGVtLXRpdGxlLWRpc2FibGVkLWNvbG9yKX0udmFuLWNvbGxhcHNlLWl0ZW1fX3dyYXBwZXJ7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246aGVpZ2h0IHZhcigtLXZhbi1jb2xsYXBzZS1pdGVtLWR1cmF0aW9uKSBlYXNlLWluLW91dDt3aWxsLWNoYW5nZTpoZWlnaHR9LnZhbi1jb2xsYXBzZS1pdGVtX19jb250ZW50e3BhZGRpbmc6dmFyKC0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNvbGxhcHNlLWl0ZW0tY29udGVudC1saW5lLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tY29sbGFwc2UtaXRlbS1jb250ZW50LWJhY2tncm91bmQpfTpyb290LDpob3N0ey0tdmFuLWZpZWxkLWxhYmVsLXdpZHRoOiA2LjJlbTstLXZhbi1maWVsZC1sYWJlbC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWZpZWxkLWxhYmVsLW1hcmdpbi1yaWdodDogdmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLWZpZWxkLWlucHV0LXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1maWVsZC1pbnB1dC1lcnJvci10ZXh0LWNvbG9yOiB2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1maWVsZC1pbnB1dC1kaXNhYmxlZC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1maWVsZC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1maWVsZC1pY29uLXNpemU6IDE4cHg7LS12YW4tZmllbGQtY2xlYXItaWNvbi1zaXplOiAxOHB4Oy0tdmFuLWZpZWxkLWNsZWFyLWljb24tY29sb3I6IHZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLWZpZWxkLXJpZ2h0LWljb24tY29sb3I6IHZhcigtLXZhbi1ncmF5LTYpOy0tdmFuLWZpZWxkLWVycm9yLW1lc3NhZ2UtY29sb3I6IHZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLWZpZWxkLWVycm9yLW1lc3NhZ2UtZm9udC1zaXplOiAxMnB4Oy0tdmFuLWZpZWxkLXRleHQtYXJlYS1taW4taGVpZ2h0OiA2MHB4Oy0tdmFuLWZpZWxkLXdvcmQtbGltaXQtY29sb3I6IHZhcigtLXZhbi1ncmF5LTcpOy0tdmFuLWZpZWxkLXdvcmQtbGltaXQtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi1maWVsZC13b3JkLWxpbWl0LWxpbmUtaGVpZ2h0OiAxNnB4Oy0tdmFuLWZpZWxkLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWZpZWxkLXJlcXVpcmVkLW1hcmstY29sb3I6IHZhcigtLXZhbi1yZWQpfS52YW4tZmllbGR7ZmxleC13cmFwOndyYXB9LnZhbi1maWVsZF9fbGFiZWx7ZmxleDpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDp2YXIoLS12YW4tZmllbGQtbGFiZWwtd2lkdGgpO21hcmdpbi1yaWdodDp2YXIoLS12YW4tZmllbGQtbGFiZWwtbWFyZ2luLXJpZ2h0KTtjb2xvcjp2YXIoLS12YW4tZmllbGQtbGFiZWwtY29sb3IpO3RleHQtYWxpZ246bGVmdDt3b3JkLXdyYXA6YnJlYWstd29yZH0udmFuLWZpZWxkX19sYWJlbC0tY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS52YW4tZmllbGRfX2xhYmVsLS1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS52YW4tZmllbGRfX2xhYmVsLS10b3B7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0O21hcmdpbi1ib3R0b206dmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS52YW4tZmllbGRfX2xhYmVsLS1yZXF1aXJlZDpiZWZvcmV7bWFyZ2luLXJpZ2h0OjJweDtjb2xvcjp2YXIoLS12YW4tZmllbGQtcmVxdWlyZWQtbWFyay1jb2xvcik7Y29udGVudDoiKiJ9LnZhbi1maWVsZC0tZGlzYWJsZWQgLnZhbi1maWVsZF9fbGFiZWx7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWRpc2FibGVkLXRleHQtY29sb3IpfS52YW4tZmllbGRfX3ZhbHVle292ZXJmbG93OnZpc2libGV9LnZhbi1maWVsZF9fYm9keXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS52YW4tZmllbGRfX2NvbnRyb2x7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttaW4td2lkdGg6MDttYXJnaW46MDtwYWRkaW5nOjA7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWlucHV0LXRleHQtY29sb3IpO2xpbmUtaGVpZ2h0OmluaGVyaXQ7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7cmVzaXplOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDphdXRvO3VzZXItc2VsZWN0OmF1dG99LnZhbi1maWVsZF9fY29udHJvbDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS12YW4tZmllbGQtcGxhY2Vob2xkZXItdGV4dC1jb2xvcil9LnZhbi1maWVsZF9fY29udHJvbDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLXBsYWNlaG9sZGVyLXRleHQtY29sb3IpfS52YW4tZmllbGRfX2NvbnRyb2w6cmVhZC1vbmx5e2N1cnNvcjpkZWZhdWx0fS52YW4tZmllbGRfX2NvbnRyb2w6ZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWlucHV0LWRpc2FibGVkLXRleHQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5OjE7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dmFyKC0tdmFuLWZpZWxkLWlucHV0LWRpc2FibGVkLXRleHQtY29sb3IpfS52YW4tZmllbGRfX2NvbnRyb2wtLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS52YW4tZmllbGRfX2NvbnRyb2wtLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt0ZXh0LWFsaWduOnJpZ2h0fS52YW4tZmllbGRfX2NvbnRyb2wtLWN1c3RvbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtbGluZS1oZWlnaHQpfS52YW4tZmllbGRfX2NvbnRyb2wtLWVycm9yOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXZhbi1maWVsZC1pbnB1dC1lcnJvci10ZXh0LWNvbG9yKTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjpjdXJyZW50Q29sb3J9LnZhbi1maWVsZF9fY29udHJvbC0tZXJyb3IsLnZhbi1maWVsZF9fY29udHJvbC0tZXJyb3I6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXZhbi1maWVsZC1pbnB1dC1lcnJvci10ZXh0LWNvbG9yKTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjpjdXJyZW50Q29sb3J9LnZhbi1maWVsZF9fY29udHJvbC0tbWluLWhlaWdodHttaW4taGVpZ2h0OnZhcigtLXZhbi1maWVsZC10ZXh0LWFyZWEtbWluLWhlaWdodCl9LnZhbi1maWVsZF9fY29udHJvbFt0eXBlPWRhdGVdLC52YW4tZmllbGRfX2NvbnRyb2xbdHlwZT10aW1lXSwudmFuLWZpZWxkX19jb250cm9sW3R5cGU9ZGF0ZXRpbWUtbG9jYWxde21pbi1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtbGluZS1oZWlnaHQpfS52YW4tZmllbGRfX2NvbnRyb2xbdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTpub25lfS52YW4tZmllbGRfX2NsZWFyLC52YW4tZmllbGRfX2ljb24sLnZhbi1maWVsZF9fYnV0dG9uLC52YW4tZmllbGRfX3JpZ2h0LWljb257ZmxleC1zaHJpbms6MH0udmFuLWZpZWxkX19jbGVhciwudmFuLWZpZWxkX19yaWdodC1pY29ue21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXZhbi1wYWRkaW5nLXhzKSAqIC0xKTtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpO2xpbmUtaGVpZ2h0OmluaGVyaXR9LnZhbi1maWVsZF9fY2xlYXJ7Y29sb3I6dmFyKC0tdmFuLWZpZWxkLWNsZWFyLWljb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZmllbGQtY2xlYXItaWNvbi1zaXplKTtjdXJzb3I6cG9pbnRlcn0udmFuLWZpZWxkX19sZWZ0LWljb24gLnZhbi1pY29uLC52YW4tZmllbGRfX3JpZ2h0LWljb24gLnZhbi1pY29ue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOnZhcigtLXZhbi1maWVsZC1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OmluaGVyaXR9LnZhbi1maWVsZF9fbGVmdC1pY29ue21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKX0udmFuLWZpZWxkX19yaWdodC1pY29ue2NvbG9yOnZhcigtLXZhbi1maWVsZC1yaWdodC1pY29uLWNvbG9yKX0udmFuLWZpZWxkX19idXR0b257cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLWZpZWxkX19lcnJvci1tZXNzYWdle2NvbG9yOnZhcigtLXZhbi1maWVsZC1lcnJvci1tZXNzYWdlLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWZpZWxkLWVycm9yLW1lc3NhZ2UtZm9udC1zaXplKTt0ZXh0LWFsaWduOmxlZnR9LnZhbi1maWVsZF9fZXJyb3ItbWVzc2FnZS0tY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS52YW4tZmllbGRfX2Vycm9yLW1lc3NhZ2UtLXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LnZhbi1maWVsZF9fd29yZC1saW1pdHttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2NvbG9yOnZhcigtLXZhbi1maWVsZC13b3JkLWxpbWl0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWZpZWxkLXdvcmQtbGltaXQtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tZmllbGQtd29yZC1saW1pdC1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpyaWdodH06cm9vdCw6aG9zdHstLXZhbi1zZWFyY2gtcGFkZGluZzogMTBweCB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tc2VhcmNoLWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXNlYXJjaC1jb250ZW50LWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kKTstLXZhbi1zZWFyY2gtaW5wdXQtaGVpZ2h0OiAzNHB4Oy0tdmFuLXNlYXJjaC1sYWJlbC1wYWRkaW5nOiAwIDVweDstLXZhbi1zZWFyY2gtbGFiZWwtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1zZWFyY2gtbGFiZWwtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1zZWFyY2gtbGVmdC1pY29uLWNvbG9yOiB2YXIoLS12YW4tZ3JheS02KTstLXZhbi1zZWFyY2gtYWN0aW9uLXBhZGRpbmc6IDAgdmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLXNlYXJjaC1hY3Rpb24tdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXNlYXJjaC1hY3Rpb24tZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKX0udmFuLXNlYXJjaHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1zZWFyY2gtcGFkZGluZyk7YmFja2dyb3VuZDp2YXIoLS12YW4tc2VhcmNoLWJhY2tncm91bmQpfS52YW4tc2VhcmNoX19jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4OjE7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXNtKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1zZWFyY2gtY29udGVudC1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtc20pfS52YW4tc2VhcmNoX19jb250ZW50LS1yb3VuZHtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KX0udmFuLXNlYXJjaF9fbGFiZWx7cGFkZGluZzp2YXIoLS12YW4tc2VhcmNoLWxhYmVsLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1zZWFyY2gtbGFiZWwtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2VhcmNoLWxhYmVsLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXNlYXJjaC1pbnB1dC1oZWlnaHQpfS52YW4tc2VhcmNoX19maWVsZHtmbGV4OjE7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy14cykgMCAwO2hlaWdodDp2YXIoLS12YW4tc2VhcmNoLWlucHV0LWhlaWdodCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udmFuLXNlYXJjaF9fZmllbGQgLnZhbi1maWVsZF9fbGVmdC1pY29ue2NvbG9yOnZhcigtLXZhbi1zZWFyY2gtbGVmdC1pY29uLWNvbG9yKX0udmFuLXNlYXJjaF9fZmllbGQtLXdpdGgtbWVzc2FnZXtoZWlnaHQ6YXV0bzthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmctdG9wOjVweDtwYWRkaW5nLWJvdHRvbTo1cHh9LnZhbi1zZWFyY2gtLXNob3ctYWN0aW9ue3BhZGRpbmctcmlnaHQ6MH0udmFuLXNlYXJjaCBpbnB1dDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwudmFuLXNlYXJjaCBpbnB1dDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwudmFuLXNlYXJjaCBpbnB1dDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLnZhbi1zZWFyY2ggaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbntkaXNwbGF5Om5vbmV9LnZhbi1zZWFyY2hfX2FjdGlvbntwYWRkaW5nOnZhcigtLXZhbi1zZWFyY2gtYWN0aW9uLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1zZWFyY2gtYWN0aW9uLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2VhcmNoLWFjdGlvbi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1zZWFyY2gtaW5wdXQtaGVpZ2h0KTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLXNlYXJjaF9fYWN0aW9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWFjdGlvbi1iYXItaWNvbi13aWR0aDogNDhweDstLXZhbi1hY3Rpb24tYmFyLWljb24taGVpZ2h0OiAxMDAlOy0tdmFuLWFjdGlvbi1iYXItaWNvbi1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWFjdGlvbi1iYXItaWNvbi1zaXplOiAxOHB4Oy0tdmFuLWFjdGlvbi1iYXItaWNvbi1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUteHMpOy0tdmFuLWFjdGlvbi1iYXItaWNvbi1hY3RpdmUtY29sb3I6IHZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLWFjdGlvbi1iYXItaWNvbi10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tYWN0aW9uLWJhci1pY29uLWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpfS52YW4tYWN0aW9uLWJhci1pY29ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6dmFyKC0tdmFuLWFjdGlvbi1iYXItaWNvbi13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tYmFyLWljb24taGVpZ2h0KTtjb2xvcjp2YXIoLS12YW4tYWN0aW9uLWJhci1pY29uLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYWN0aW9uLWJhci1pY29uLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi1hY3Rpb24tYmFyLWljb24tYmFja2dyb3VuZCk7Y3Vyc29yOnBvaW50ZXJ9LnZhbi1hY3Rpb24tYmFyLWljb246YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWFjdGlvbi1iYXItaWNvbi1hY3RpdmUtY29sb3IpfS52YW4tYWN0aW9uLWJhci1pY29uX19pY29ue21hcmdpbjowIGF1dG8gdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1iYXItaWNvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1hY3Rpb24tYmFyLWljb24tc2l6ZSl9OnJvb3QsOmhvc3R7LS12YW4tbG9hZGluZy10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1sb2FkaW5nLXRleHQtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1sb2FkaW5nLXNwaW5uZXItY29sb3I6IHZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLWxvYWRpbmctc3Bpbm5lci1zaXplOiAzMHB4Oy0tdmFuLWxvYWRpbmctc3Bpbm5lci1kdXJhdGlvbjogLjhzfS52YW4tbG9hZGluZ3twb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjp2YXIoLS12YW4tbG9hZGluZy1zcGlubmVyLWNvbG9yKTtmb250LXNpemU6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnZhbi1sb2FkaW5nX19zcGlubmVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOnZhcigtLXZhbi1sb2FkaW5nLXNwaW5uZXItc2l6ZSk7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLXZhbi1sb2FkaW5nLXNwaW5uZXItc2l6ZSk7bWF4LWhlaWdodDoxMDAlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTthbmltYXRpb246dmFuLXJvdGF0ZSB2YXIoLS12YW4tbG9hZGluZy1zcGlubmVyLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGV9LnZhbi1sb2FkaW5nX19zcGlubmVyLS1zcGlubmVye2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246c3RlcHMoMTIpfS52YW4tbG9hZGluZ19fc3Bpbm5lci0tY2lyY3VsYXJ7YW5pbWF0aW9uLWR1cmF0aW9uOjJzfS52YW4tbG9hZGluZ19fbGluZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udmFuLWxvYWRpbmdfX2xpbmU6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7d2lkdGg6MnB4O2hlaWdodDoyNSU7bWFyZ2luOjAgYXV0bztiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXItcmFkaXVzOjQwJTtjb250ZW50OiIgIn0udmFuLWxvYWRpbmdfX2NpcmN1bGFye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udmFuLWxvYWRpbmdfX2NpcmN1bGFyIGNpcmNsZXthbmltYXRpb246dmFuLWNpcmN1bGFyIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2Utd2lkdGg6MztzdHJva2UtbGluZWNhcDpyb3VuZH0udmFuLWxvYWRpbmdfX3RleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLXBhZGRpbmcteHMpO2NvbG9yOnZhcigtLXZhbi1sb2FkaW5nLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbG9hZGluZy10ZXh0LWZvbnQtc2l6ZSk7dmVydGljYWwtYWxpZ246bWlkZGxlfS52YW4tbG9hZGluZy0tdmVydGljYWx7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9LnZhbi1sb2FkaW5nLS12ZXJ0aWNhbCAudmFuLWxvYWRpbmdfX3RleHR7bWFyZ2luOnZhcigtLXZhbi1wYWRkaW5nLXhzKSAwIDB9QGtleWZyYW1lcyB2YW4tY2lyY3VsYXJ7MCV7c3Ryb2tlLWRhc2hhcnJheToxLDIwMDtzdHJva2UtZGFzaG9mZnNldDowfTUwJXtzdHJva2UtZGFzaGFycmF5OjkwLDE1MDtzdHJva2UtZGFzaG9mZnNldDotNDB9dG97c3Ryb2tlLWRhc2hhcnJheTo5MCwxNTA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTEyMH19LnZhbi1sb2FkaW5nX19saW5lLS0xe3RyYW5zZm9ybTpyb3RhdGUoMzBkZWcpO29wYWNpdHk6MX0udmFuLWxvYWRpbmdfX2xpbmUtLTJ7dHJhbnNmb3JtOnJvdGF0ZSg2MGRlZyk7b3BhY2l0eTouOTM3NX0udmFuLWxvYWRpbmdfX2xpbmUtLTN7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7b3BhY2l0eTouODc1fS52YW4tbG9hZGluZ19fbGluZS0tNHt0cmFuc2Zvcm06cm90YXRlKDEyMGRlZyk7b3BhY2l0eTouODEyNX0udmFuLWxvYWRpbmdfX2xpbmUtLTV7dHJhbnNmb3JtOnJvdGF0ZSgxNTBkZWcpO29wYWNpdHk6Ljc1fS52YW4tbG9hZGluZ19fbGluZS0tNnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7b3BhY2l0eTouNjg3NX0udmFuLWxvYWRpbmdfX2xpbmUtLTd7dHJhbnNmb3JtOnJvdGF0ZSgyMTBkZWcpO29wYWNpdHk6LjYyNX0udmFuLWxvYWRpbmdfX2xpbmUtLTh7dHJhbnNmb3JtOnJvdGF0ZSgyNDBkZWcpO29wYWNpdHk6LjU2MjV9LnZhbi1sb2FkaW5nX19saW5lLS05e3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTtvcGFjaXR5Oi41fS52YW4tbG9hZGluZ19fbGluZS0tMTB7dHJhbnNmb3JtOnJvdGF0ZSgzMDBkZWcpO29wYWNpdHk6LjQzNzV9LnZhbi1sb2FkaW5nX19saW5lLS0xMXt0cmFuc2Zvcm06cm90YXRlKDMzMGRlZyk7b3BhY2l0eTouMzc1fS52YW4tbG9hZGluZ19fbGluZS0tMTJ7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO29wYWNpdHk6LjMxMjV9OnJvb3QsOmhvc3R7LS12YW4tcHVsbC1yZWZyZXNoLWhlYWQtaGVpZ2h0OiA1MHB4Oy0tdmFuLXB1bGwtcmVmcmVzaC1oZWFkLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tcHVsbC1yZWZyZXNoLWhlYWQtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tcHVsbC1yZWZyZXNoLWxvYWRpbmctaWNvbi1zaXplOiAxNnB4fS52YW4tcHVsbC1yZWZyZXNoe292ZXJmbG93OmhpZGRlbn0udmFuLXB1bGwtcmVmcmVzaF9fdHJhY2t7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm19LnZhbi1wdWxsLXJlZnJlc2hfX2hlYWR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLXZhbi1wdWxsLXJlZnJlc2gtaGVhZC1oZWlnaHQpO292ZXJmbG93OmhpZGRlbjtjb2xvcjp2YXIoLS12YW4tcHVsbC1yZWZyZXNoLWhlYWQtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1wdWxsLXJlZnJlc2gtaGVhZC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1wdWxsLXJlZnJlc2gtaGVhZC1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKX0udmFuLXB1bGwtcmVmcmVzaF9fbG9hZGluZyAudmFuLWxvYWRpbmdfX3NwaW5uZXJ7d2lkdGg6dmFyKC0tdmFuLXB1bGwtcmVmcmVzaC1sb2FkaW5nLWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1wdWxsLXJlZnJlc2gtbG9hZGluZy1pY29uLXNpemUpfTpyb290LDpob3N0ey0tdmFuLW51bWJlci1rZXlib2FyZC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tZ3JheS0yKTstLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWhlaWdodDogNDhweDstLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWZvbnQtc2l6ZTogMjhweDstLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWFjdGl2ZS1jb2xvcjogdmFyKC0tdmFuLWdyYXktMyk7LS12YW4tbnVtYmVyLWtleWJvYXJkLWtleS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1udW1iZXIta2V5Ym9hcmQtZGVsZXRlLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tbnVtYmVyLWtleWJvYXJkLXRpdGxlLWNvbG9yOiB2YXIoLS12YW4tZ3JheS03KTstLXZhbi1udW1iZXIta2V5Ym9hcmQtdGl0bGUtaGVpZ2h0OiAzNHB4Oy0tdmFuLW51bWJlci1rZXlib2FyZC10aXRsZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLW51bWJlci1rZXlib2FyZC1jbG9zZS1wYWRkaW5nOiAwIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1udW1iZXIta2V5Ym9hcmQtY2xvc2UtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1udW1iZXIta2V5Ym9hcmQtY2xvc2UtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1udW1iZXIta2V5Ym9hcmQtYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLXZhbi13aGl0ZSk7LS12YW4tbnVtYmVyLWtleWJvYXJkLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tbnVtYmVyLWtleWJvYXJkLXotaW5kZXg6IDEwMH0udmFuLXRoZW1lLWRhcmt7LS12YW4tbnVtYmVyLWtleWJvYXJkLWJhY2tncm91bmQ6IHZhcigtLXZhbi1ncmF5LTgpOy0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktYmFja2dyb3VuZDogdmFyKC0tdmFuLWdyYXktNyk7LS12YW4tbnVtYmVyLWtleWJvYXJkLWtleS1hY3RpdmUtY29sb3I6IHZhcigtLXZhbi1ncmF5LTYpfS52YW4tbnVtYmVyLWtleWJvYXJke3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4OnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQtei1pbmRleCk7d2lkdGg6MTAwJTtwYWRkaW5nLWJvdHRvbToyMnB4O2JhY2tncm91bmQ6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1iYWNrZ3JvdW5kKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLW51bWJlci1rZXlib2FyZC0td2l0aC10aXRsZXtib3JkZXItcmFkaXVzOjIwcHggMjBweCAwIDB9LnZhbi1udW1iZXIta2V5Ym9hcmRfX2hlYWRlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNpemluZzpjb250ZW50LWJveDtoZWlnaHQ6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC10aXRsZS1oZWlnaHQpO3BhZGRpbmctdG9wOjZweDtjb2xvcjp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLXRpdGxlLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC10aXRsZS1mb250LXNpemUpfS52YW4tbnVtYmVyLWtleWJvYXJkX190aXRsZXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDo0MDB9LnZhbi1udW1iZXIta2V5Ym9hcmRfX3RpdGxlLWxlZnR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS52YW4tbnVtYmVyLWtleWJvYXJkX19ib2R5e2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjZweCAwIDAgNnB4fS52YW4tbnVtYmVyLWtleWJvYXJkX19rZXlze2Rpc3BsYXk6ZmxleDtmbGV4OjM7ZmxleC13cmFwOndyYXB9LnZhbi1udW1iZXIta2V5Ym9hcmRfX2Nsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7aGVpZ2h0OjEwMCU7cGFkZGluZzp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLWNsb3NlLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQtY2xvc2UtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLWNsb3NlLWZvbnQtc2l6ZSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZX0udmFuLW51bWJlci1rZXlib2FyZF9fc2lkZWJhcntkaXNwbGF5OmZsZXg7ZmxleDoxO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udmFuLW51bWJlci1rZXlib2FyZC0tdW5maXR7cGFkZGluZy1ib3R0b206MH0udmFuLWtleXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWhlaWdodCk7Zm9udC1zaXplOnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQta2V5LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6MS41O2JhY2tncm91bmQ6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktYmFja2dyb3VuZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLWxnKTtjdXJzb3I6cG9pbnRlcn0udmFuLWtleS0tbGFyZ2V7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MCA2cHggNnB4IDA7aGVpZ2h0OmF1dG99LnZhbi1rZXktLWJsdWUsLnZhbi1rZXktLWRlbGV0ZXtmb250LXNpemU6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1kZWxldGUtZm9udC1zaXplKX0udmFuLWtleS0tYWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1rZXktYWN0aXZlLWNvbG9yKX0udmFuLWtleS0tYmx1ZXtjb2xvcjp2YXIoLS12YW4tbnVtYmVyLWtleWJvYXJkLWJ1dHRvbi10ZXh0LWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1udW1iZXIta2V5Ym9hcmQtYnV0dG9uLWJhY2tncm91bmQpfS52YW4ta2V5LS1ibHVlLnZhbi1rZXktLWFjdGl2ZXtvcGFjaXR5OnZhcigtLXZhbi1hY3RpdmUtb3BhY2l0eSl9LnZhbi1rZXlfX3dyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZmxleDoxO2ZsZXgtYmFzaXM6MzMlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgNnB4IDZweCAwfS52YW4ta2V5X193cmFwcGVyLS13aWRlcntmbGV4LWJhc2lzOjY2JX0udmFuLWtleV9fZGVsZXRlLWljb257d2lkdGg6MzJweDtoZWlnaHQ6MjJweH0udmFuLWtleV9fY29sbGFwc2UtaWNvbnt3aWR0aDozMHB4O2hlaWdodDoyNHB4fS52YW4ta2V5X19sb2FkaW5nLWljb257Y29sb3I6dmFyKC0tdmFuLW51bWJlci1rZXlib2FyZC1idXR0b24tdGV4dC1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tbGlzdC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1saXN0LXRleHQtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1saXN0LXRleHQtbGluZS1oZWlnaHQ6IDUwcHg7LS12YW4tbGlzdC1sb2FkaW5nLWljb24tc2l6ZTogMTZweH0udmFuLWxpc3RfX2xvYWRpbmcsLnZhbi1saXN0X19maW5pc2hlZC10ZXh0LC52YW4tbGlzdF9fZXJyb3ItdGV4dHtjb2xvcjp2YXIoLS12YW4tbGlzdC10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWxpc3QtdGV4dC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1saXN0LXRleHQtbGluZS1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyfS52YW4tbGlzdF9fcGxhY2Vob2xkZXJ7aGVpZ2h0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0udmFuLWxpc3RfX2xvYWRpbmctaWNvbiAudmFuLWxvYWRpbmdfX3NwaW5uZXJ7d2lkdGg6dmFyKC0tdmFuLWxpc3QtbG9hZGluZy1pY29uLXNpemUpO2hlaWdodDp2YXIoLS12YW4tbGlzdC1sb2FkaW5nLWljb24tc2l6ZSl9OnJvb3QsOmhvc3R7LS12YW4tc3dpdGNoLXNpemU6IDI2cHg7LS12YW4tc3dpdGNoLXdpZHRoOiBjYWxjKDEuOGVtICsgNHB4KSA7LS12YW4tc3dpdGNoLWhlaWdodDogY2FsYygxZW0gKyA0cHgpIDstLXZhbi1zd2l0Y2gtbm9kZS1zaXplOiAxZW07LS12YW4tc3dpdGNoLW5vZGUtYmFja2dyb3VuZDogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1zd2l0Y2gtbm9kZS1zaGFkb3c6IDAgM3B4IDFweCAwIHJnYmEoMCwgMCwgMCwgLjA1KTstLXZhbi1zd2l0Y2gtYmFja2dyb3VuZDogcmdiYSgxMjAsIDEyMCwgMTI4LCAuMTYpOy0tdmFuLXN3aXRjaC1vbi1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tc3dpdGNoLWR1cmF0aW9uOiB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSk7LS12YW4tc3dpdGNoLWRpc2FibGVkLW9wYWNpdHk6IHZhcigtLXZhbi1kaXNhYmxlZC1vcGFjaXR5KX0udmFuLXRoZW1lLWRhcmt7LS12YW4tc3dpdGNoLWJhY2tncm91bmQ6IHJnYmEoMTIwLCAxMjAsIDEyOCwgLjMyKX0udmFuLXN3aXRjaHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jaztib3gtc2l6aW5nOmNvbnRlbnQtYm94O3dpZHRoOnZhcigtLXZhbi1zd2l0Y2gtd2lkdGgpO2hlaWdodDp2YXIoLS12YW4tc3dpdGNoLWhlaWdodCk7Zm9udC1zaXplOnZhcigtLXZhbi1zd2l0Y2gtc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tc3dpdGNoLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXN3aXRjaC1ub2RlLXNpemUpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS12YW4tc3dpdGNoLWR1cmF0aW9uKX0udmFuLXN3aXRjaF9fbm9kZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4O3dpZHRoOnZhcigtLXZhbi1zd2l0Y2gtbm9kZS1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXN3aXRjaC1ub2RlLXNpemUpO2ZvbnQtc2l6ZTppbmhlcml0O2JhY2tncm91bmQ6dmFyKC0tdmFuLXN3aXRjaC1ub2RlLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6MTAwJTtib3gtc2hhZG93OnZhcigtLXZhbi1zd2l0Y2gtbm9kZS1zaGFkb3cpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXZhbi1zd2l0Y2gtZHVyYXRpb24pIGN1YmljLWJlemllciguMywxLjA1LC40LDEuMDUpfS52YW4tc3dpdGNoX19sb2FkaW5ne3RvcDoyNSU7bGVmdDoyNSU7d2lkdGg6NTAlO2hlaWdodDo1MCU7bGluZS1oZWlnaHQ6MX0udmFuLXN3aXRjaC0tb257YmFja2dyb3VuZDp2YXIoLS12YW4tc3dpdGNoLW9uLWJhY2tncm91bmQpfS52YW4tc3dpdGNoLS1vbiAudmFuLXN3aXRjaF9fbm9kZXt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGModmFyKC0tdmFuLXN3aXRjaC13aWR0aCkgLSB2YXIoLS12YW4tc3dpdGNoLW5vZGUtc2l6ZSkgLSA0cHgpKX0udmFuLXN3aXRjaC0tb24gLnZhbi1zd2l0Y2hfX2xvYWRpbmd7Y29sb3I6dmFyKC0tdmFuLXN3aXRjaC1vbi1iYWNrZ3JvdW5kKX0udmFuLXN3aXRjaC0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6dmFyKC0tdmFuLXN3aXRjaC1kaXNhYmxlZC1vcGFjaXR5KX0udmFuLXN3aXRjaC0tbG9hZGluZ3tjdXJzb3I6ZGVmYXVsdH06cm9vdCw6aG9zdHstLXZhbi1idXR0b24tbWluaS1oZWlnaHQ6IDI0cHg7LS12YW4tYnV0dG9uLW1pbmktcGFkZGluZzogMCB2YXIoLS12YW4tcGFkZGluZy1iYXNlKTstLXZhbi1idXR0b24tbWluaS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUteHMpOy0tdmFuLWJ1dHRvbi1zbWFsbC1oZWlnaHQ6IDMycHg7LS12YW4tYnV0dG9uLXNtYWxsLXBhZGRpbmc6IDAgdmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWJ1dHRvbi1zbWFsbC1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWJ1dHRvbi1ub3JtYWwtcGFkZGluZzogMCAxNXB4Oy0tdmFuLWJ1dHRvbi1ub3JtYWwtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1idXR0b24tbGFyZ2UtaGVpZ2h0OiA1MHB4Oy0tdmFuLWJ1dHRvbi1kZWZhdWx0LWhlaWdodDogNDRweDstLXZhbi1idXR0b24tZGVmYXVsdC1saW5lLWhlaWdodDogMS4yOy0tdmFuLWJ1dHRvbi1kZWZhdWx0LWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tYnV0dG9uLWRlZmF1bHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1idXR0b24tZGVmYXVsdC1ib3JkZXItY29sb3I6IHZhcigtLXZhbi1ncmF5LTQpOy0tdmFuLWJ1dHRvbi1wcmltYXJ5LWNvbG9yOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1idXR0b24tcHJpbWFyeS1ib3JkZXItY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1idXR0b24tc3VjY2Vzcy1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1idXR0b24tc3VjY2Vzcy1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tc3VjY2Vzcy1jb2xvcik7LS12YW4tYnV0dG9uLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yOiB2YXIoLS12YW4tc3VjY2Vzcy1jb2xvcik7LS12YW4tYnV0dG9uLWRhbmdlci1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1idXR0b24tZGFuZ2VyLWJhY2tncm91bmQ6IHZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLWJ1dHRvbi1kYW5nZXItYm9yZGVyLWNvbG9yOiB2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1idXR0b24td2FybmluZy1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1idXR0b24td2FybmluZy1iYWNrZ3JvdW5kOiB2YXIoLS12YW4td2FybmluZy1jb2xvcik7LS12YW4tYnV0dG9uLXdhcm5pbmctYm9yZGVyLWNvbG9yOiB2YXIoLS12YW4td2FybmluZy1jb2xvcik7LS12YW4tYnV0dG9uLWJvcmRlci13aWR0aDogdmFyKC0tdmFuLWJvcmRlci13aWR0aCk7LS12YW4tYnV0dG9uLXJhZGl1czogdmFyKC0tdmFuLXJhZGl1cy1tZCk7LS12YW4tYnV0dG9uLXJvdW5kLXJhZGl1czogdmFyKC0tdmFuLXJhZGl1cy1tYXgpOy0tdmFuLWJ1dHRvbi1wbGFpbi1iYWNrZ3JvdW5kOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLWJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5OiB2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSk7LS12YW4tYnV0dG9uLWljb24tc2l6ZTogMS4yZW07LS12YW4tYnV0dG9uLWxvYWRpbmctaWNvbi1zaXplOiAyMHB4fS52YW4tdGhlbWUtZGFya3stLXZhbi1idXR0b24tcGxhaW4tYmFja2dyb3VuZDogdHJhbnNwYXJlbnR9LnZhbi1idXR0b257cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDp2YXIoLS12YW4tYnV0dG9uLWRlZmF1bHQtaGVpZ2h0KTttYXJnaW46MDtwYWRkaW5nOjA7Zm9udC1zaXplOnZhcigtLXZhbi1idXR0b24tZGVmYXVsdC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1idXR0b24tZGVmYXVsdC1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tYnV0dG9uLXJhZGl1cyk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLXZhbi1kdXJhdGlvbi1mYXN0KTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmF1dG99LnZhbi1idXR0b246YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1ibGFjayk7Ym9yZGVyOmluaGVyaXQ7Ym9yZGVyLWNvbG9yOnZhcigtLXZhbi1ibGFjayk7Ym9yZGVyLXJhZGl1czppbmhlcml0O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtvcGFjaXR5OjA7Y29udGVudDoiICI7Ym94LXNpemluZzpjb250ZW50LWJveH0udmFuLWJ1dHRvbjphY3RpdmU6YmVmb3Jle29wYWNpdHk6LjF9LnZhbi1idXR0b24tLWxvYWRpbmc6YmVmb3JlLC52YW4tYnV0dG9uLS1kaXNhYmxlZDpiZWZvcmV7ZGlzcGxheTpub25lfS52YW4tYnV0dG9uLS1kZWZhdWx0e2NvbG9yOnZhcigtLXZhbi1idXR0b24tZGVmYXVsdC1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4tYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCk7Ym9yZGVyOnZhcigtLXZhbi1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS12YW4tYnV0dG9uLWRlZmF1bHQtYm9yZGVyLWNvbG9yKX0udmFuLWJ1dHRvbi0tcHJpbWFyeXtjb2xvcjp2YXIoLS12YW4tYnV0dG9uLXByaW1hcnktY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQpO2JvcmRlcjp2YXIoLS12YW4tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tdmFuLWJ1dHRvbi1wcmltYXJ5LWJvcmRlci1jb2xvcil9LnZhbi1idXR0b24tLXN1Y2Nlc3N7Y29sb3I6dmFyKC0tdmFuLWJ1dHRvbi1zdWNjZXNzLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1idXR0b24tc3VjY2Vzcy1iYWNrZ3JvdW5kKTtib3JkZXI6dmFyKC0tdmFuLWJ1dHRvbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXZhbi1idXR0b24tc3VjY2Vzcy1ib3JkZXItY29sb3IpfS52YW4tYnV0dG9uLS1kYW5nZXJ7Y29sb3I6dmFyKC0tdmFuLWJ1dHRvbi1kYW5nZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWJ1dHRvbi1kYW5nZXItYmFja2dyb3VuZCk7Ym9yZGVyOnZhcigtLXZhbi1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS12YW4tYnV0dG9uLWRhbmdlci1ib3JkZXItY29sb3IpfS52YW4tYnV0dG9uLS13YXJuaW5ne2NvbG9yOnZhcigtLXZhbi1idXR0b24td2FybmluZy1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4tYnV0dG9uLXdhcm5pbmctYmFja2dyb3VuZCk7Ym9yZGVyOnZhcigtLXZhbi1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS12YW4tYnV0dG9uLXdhcm5pbmctYm9yZGVyLWNvbG9yKX0udmFuLWJ1dHRvbi0tcGxhaW57YmFja2dyb3VuZDp2YXIoLS12YW4tYnV0dG9uLXBsYWluLWJhY2tncm91bmQpfS52YW4tYnV0dG9uLS1wbGFpbi52YW4tYnV0dG9uLS1wcmltYXJ5e2NvbG9yOnZhcigtLXZhbi1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kKX0udmFuLWJ1dHRvbi0tcGxhaW4udmFuLWJ1dHRvbi0tc3VjY2Vzc3tjb2xvcjp2YXIoLS12YW4tYnV0dG9uLXN1Y2Nlc3MtYmFja2dyb3VuZCl9LnZhbi1idXR0b24tLXBsYWluLnZhbi1idXR0b24tLWRhbmdlcntjb2xvcjp2YXIoLS12YW4tYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kKX0udmFuLWJ1dHRvbi0tcGxhaW4udmFuLWJ1dHRvbi0td2FybmluZ3tjb2xvcjp2YXIoLS12YW4tYnV0dG9uLXdhcm5pbmctYmFja2dyb3VuZCl9LnZhbi1idXR0b24tLWxhcmdle3dpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLXZhbi1idXR0b24tbGFyZ2UtaGVpZ2h0KX0udmFuLWJ1dHRvbi0tbm9ybWFse3BhZGRpbmc6dmFyKC0tdmFuLWJ1dHRvbi1ub3JtYWwtcGFkZGluZyk7Zm9udC1zaXplOnZhcigtLXZhbi1idXR0b24tbm9ybWFsLWZvbnQtc2l6ZSl9LnZhbi1idXR0b24tLXNtYWxse2hlaWdodDp2YXIoLS12YW4tYnV0dG9uLXNtYWxsLWhlaWdodCk7cGFkZGluZzp2YXIoLS12YW4tYnV0dG9uLXNtYWxsLXBhZGRpbmcpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYnV0dG9uLXNtYWxsLWZvbnQtc2l6ZSl9LnZhbi1idXR0b25fX2xvYWRpbmd7Y29sb3I6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdH0udmFuLWJ1dHRvbl9fbG9hZGluZyAudmFuLWxvYWRpbmdfX3NwaW5uZXJ7Y29sb3I6Y3VycmVudENvbG9yO3dpZHRoOnZhcigtLXZhbi1idXR0b24tbG9hZGluZy1pY29uLXNpemUpO2hlaWdodDp2YXIoLS12YW4tYnV0dG9uLWxvYWRpbmctaWNvbi1zaXplKX0udmFuLWJ1dHRvbi0tbWluaXtoZWlnaHQ6dmFyKC0tdmFuLWJ1dHRvbi1taW5pLWhlaWdodCk7cGFkZGluZzp2YXIoLS12YW4tYnV0dG9uLW1pbmktcGFkZGluZyk7Zm9udC1zaXplOnZhcigtLXZhbi1idXR0b24tbWluaS1mb250LXNpemUpfS52YW4tYnV0dG9uLS1taW5pKy52YW4tYnV0dG9uLS1taW5pe21hcmdpbi1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpfS52YW4tYnV0dG9uLS1ibG9ja3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9LnZhbi1idXR0b24tLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5OnZhcigtLXZhbi1idXR0b24tZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi1idXR0b24tLWxvYWRpbmd7Y3Vyc29yOmRlZmF1bHR9LnZhbi1idXR0b24tLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLWJ1dHRvbi1yb3VuZC1yYWRpdXMpfS52YW4tYnV0dG9uLS1zcXVhcmV7Ym9yZGVyLXJhZGl1czowfS52YW4tYnV0dG9uX19jb250ZW50e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MTAwJX0udmFuLWJ1dHRvbl9fY29udGVudDpiZWZvcmV7Y29udGVudDoiICJ9LnZhbi1idXR0b25fX2ljb257Zm9udC1zaXplOnZhcigtLXZhbi1idXR0b24taWNvbi1zaXplKTtsaW5lLWhlaWdodDppbmhlcml0fS52YW4tYnV0dG9uX19pY29uKy52YW4tYnV0dG9uX190ZXh0LC52YW4tYnV0dG9uX19sb2FkaW5nKy52YW4tYnV0dG9uX190ZXh0LC52YW4tYnV0dG9uX190ZXh0Ky52YW4tYnV0dG9uX19pY29uLC52YW4tYnV0dG9uX190ZXh0Ky52YW4tYnV0dG9uX19sb2FkaW5ne21hcmdpbi1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpfS52YW4tYnV0dG9uLS1oYWlybGluZXtib3JkZXItd2lkdGg6MH0udmFuLWJ1dHRvbi0taGFpcmxpbmU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXZhbi1idXR0b24tcmFkaXVzKSAqIDIpfS52YW4tYnV0dG9uLS1oYWlybGluZS52YW4tYnV0dG9uLS1yb3VuZDphZnRlcntib3JkZXItcmFkaXVzOnZhcigtLXZhbi1idXR0b24tcm91bmQtcmFkaXVzKX0udmFuLWJ1dHRvbi0taGFpcmxpbmUudmFuLWJ1dHRvbi0tc3F1YXJlOmFmdGVye2JvcmRlci1yYWRpdXM6MH06cm9vdCw6aG9zdHstLXZhbi1zdWJtaXQtYmFyLWhlaWdodDogNTBweDstLXZhbi1zdWJtaXQtYmFyLXotaW5kZXg6IDEwMDstLXZhbi1zdWJtaXQtYmFyLWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXN1Ym1pdC1iYXItYnV0dG9uLXdpZHRoOiAxMTBweDstLXZhbi1zdWJtaXQtYmFyLXByaWNlLWNvbG9yOiB2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1zdWJtaXQtYmFyLXByaWNlLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tc3VibWl0LWJhci1wcmljZS1pbnRlZ2VyLWZvbnQtc2l6ZTogMjBweDstLXZhbi1zdWJtaXQtYmFyLXByaWNlLWZvbnQ6IHZhcigtLXZhbi1wcmljZS1mb250KTstLXZhbi1zdWJtaXQtYmFyLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1zdWJtaXQtYmFyLXRleHQtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1zdWJtaXQtYmFyLXRpcC1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy14cykgdmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLXN1Ym1pdC1iYXItdGlwLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tc3VibWl0LWJhci10aXAtbGluZS1oZWlnaHQ6IDEuNTstLXZhbi1zdWJtaXQtYmFyLXRpcC1jb2xvcjogdmFyKC0tdmFuLW9yYW5nZS1kYXJrKTstLXZhbi1zdWJtaXQtYmFyLXRpcC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tb3JhbmdlLWxpZ2h0KTstLXZhbi1zdWJtaXQtYmFyLXRpcC1pY29uLXNpemU6IDEycHg7LS12YW4tc3VibWl0LWJhci1idXR0b24taGVpZ2h0OiA0MHB4Oy0tdmFuLXN1Ym1pdC1iYXItcGFkZGluZzogMCB2YXIoLS12YW4tcGFkZGluZy1tZCl9LnZhbi1zdWJtaXQtYmFye3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4OnZhcigtLXZhbi1zdWJtaXQtYmFyLXotaW5kZXgpO3dpZHRoOjEwMCU7YmFja2dyb3VuZDp2YXIoLS12YW4tc3VibWl0LWJhci1iYWNrZ3JvdW5kKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLXN1Ym1pdC1iYXJfX3RpcHtwYWRkaW5nOnZhcigtLXZhbi1zdWJtaXQtYmFyLXRpcC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tc3VibWl0LWJhci10aXAtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc3VibWl0LWJhci10aXAtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tc3VibWl0LWJhci10aXAtbGluZS1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGlwLWJhY2tncm91bmQpfS52YW4tc3VibWl0LWJhcl9fdGlwLWljb257bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc3VibWl0LWJhci10aXAtaWNvbi1zaXplKTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnZhbi1zdWJtaXQtYmFyX190aXAtdGV4dHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnZhbi1zdWJtaXQtYmFyX19iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7aGVpZ2h0OnZhcigtLXZhbi1zdWJtaXQtYmFyLWhlaWdodCk7cGFkZGluZzp2YXIoLS12YW4tc3VibWl0LWJhci1wYWRkaW5nKTtmb250LXNpemU6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGV4dC1mb250LXNpemUpfS52YW4tc3VibWl0LWJhcl9fdGV4dHtmbGV4OjE7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1zbSk7Y29sb3I6dmFyKC0tdmFuLXN1Ym1pdC1iYXItdGV4dC1jb2xvcik7dGV4dC1hbGlnbjpyaWdodH0udmFuLXN1Ym1pdC1iYXJfX3RleHQgc3BhbntkaXNwbGF5OmlubGluZS1ibG9ja30udmFuLXN1Ym1pdC1iYXJfX3N1ZmZpeC1sYWJlbHttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKX0udmFuLXN1Ym1pdC1iYXJfX3ByaWNle2NvbG9yOnZhcigtLXZhbi1zdWJtaXQtYmFyLXByaWNlLWNvbG9yKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtmb250LXNpemU6dmFyKC0tdmFuLXN1Ym1pdC1iYXItcHJpY2UtZm9udC1zaXplKTttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKX0udmFuLXN1Ym1pdC1iYXJfX3ByaWNlLWludGVnZXJ7Zm9udC1zaXplOnZhcigtLXZhbi1zdWJtaXQtYmFyLXByaWNlLWludGVnZXItZm9udC1zaXplKTtmb250LWZhbWlseTp2YXIoLS12YW4tc3VibWl0LWJhci1wcmljZS1mb250KX0udmFuLXN1Ym1pdC1iYXJfX2J1dHRvbnt3aWR0aDp2YXIoLS12YW4tc3VibWl0LWJhci1idXR0b24td2lkdGgpO2hlaWdodDp2YXIoLS12YW4tc3VibWl0LWJhci1idXR0b24taGVpZ2h0KTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtib3JkZXI6bm9uZX0udmFuLXN1Ym1pdC1iYXJfX2J1dHRvbi0tZGFuZ2Vye2JhY2tncm91bmQ6dmFyKC0tdmFuLWdyYWRpZW50LXJlZCl9OnJvb3QsOmhvc3R7LS12YW4tc2lnbmF0dXJlLXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi1zaWduYXR1cmUtY29udGVudC1oZWlnaHQ6IDIwMHB4Oy0tdmFuLXNpZ25hdHVyZS1jb250ZW50LWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXNpZ25hdHVyZS1jb250ZW50LWJvcmRlcjogMXB4IGRvdHRlZCAjZGFkYWRhfS52YW4tc2lnbmF0dXJle3BhZGRpbmc6dmFyKC0tdmFuLXNpZ25hdHVyZS1wYWRkaW5nKX0udmFuLXNpZ25hdHVyZV9fY29udGVudHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OnZhcigtLXZhbi1zaWduYXR1cmUtY29udGVudC1oZWlnaHQpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXNpZ25hdHVyZS1jb250ZW50LWJhY2tncm91bmQpO2JvcmRlcjp2YXIoLS12YW4tc2lnbmF0dXJlLWNvbnRlbnQtYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbGcpO292ZXJmbG93OmhpZGRlbn0udmFuLXNpZ25hdHVyZV9fY29udGVudCBjYW52YXN7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udmFuLXNpZ25hdHVyZV9fZm9vdGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnZhbi1zaWduYXR1cmVfX2Zvb3RlciAudmFuLWJ1dHRvbntwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpO21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpO21hcmdpbi1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXhzKX06cm9vdCw6aG9zdHstLXZhbi1jb250YWN0LWVkaXQtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWNvbnRhY3QtZWRpdC1maWVsZHMtcmFkaXVzOiB2YXIoLS12YW4tcmFkaXVzLW1kKTstLXZhbi1jb250YWN0LWVkaXQtYnV0dG9ucy1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy14bCkgMDstLXZhbi1jb250YWN0LWVkaXQtYnV0dG9uLW1hcmdpbi1ib3R0b206IHZhcigtLXZhbi1wYWRkaW5nLXNtKTstLXZhbi1jb250YWN0LWVkaXQtYnV0dG9uLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tY29udGFjdC1lZGl0LWZpZWxkLWxhYmVsLXdpZHRoOiA0LjFlbX0udmFuLWNvbnRhY3QtZWRpdHtwYWRkaW5nOnZhcigtLXZhbi1jb250YWN0LWVkaXQtcGFkZGluZyl9LnZhbi1jb250YWN0LWVkaXRfX2ZpZWxkc3tvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tY29udGFjdC1lZGl0LWZpZWxkcy1yYWRpdXMpfS52YW4tY29udGFjdC1lZGl0X19maWVsZHMgLnZhbi1maWVsZF9fbGFiZWx7d2lkdGg6dmFyKC0tdmFuLWNvbnRhY3QtZWRpdC1maWVsZC1sYWJlbC13aWR0aCl9LnZhbi1jb250YWN0LWVkaXRfX3N3aXRjaC1jZWxse21hcmdpbi10b3A6MTBweDtwYWRkaW5nLXRvcDo5cHg7cGFkZGluZy1ib3R0b206OXB4O2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLWNvbnRhY3QtZWRpdC1maWVsZHMtcmFkaXVzKX0udmFuLWNvbnRhY3QtZWRpdF9fYnV0dG9uc3twYWRkaW5nOnZhcigtLXZhbi1jb250YWN0LWVkaXQtYnV0dG9ucy1wYWRkaW5nKX0udmFuLWNvbnRhY3QtZWRpdF9fYnV0dG9ue21hcmdpbi1ib3R0b206dmFyKC0tdmFuLWNvbnRhY3QtZWRpdC1idXR0b24tbWFyZ2luLWJvdHRvbSk7Zm9udC1zaXplOnZhcigtLXZhbi1jb250YWN0LWVkaXQtYnV0dG9uLWZvbnQtc2l6ZSl9OnJvb3QsOmhvc3R7LS12YW4tYWN0aW9uLWJhci1idXR0b24taGVpZ2h0OiA0MHB4Oy0tdmFuLWFjdGlvbi1iYXItYnV0dG9uLXdhcm5pbmctY29sb3I6IHZhcigtLXZhbi1ncmFkaWVudC1vcmFuZ2UpOy0tdmFuLWFjdGlvbi1iYXItYnV0dG9uLWRhbmdlci1jb2xvcjogdmFyKC0tdmFuLWdyYWRpZW50LXJlZCl9LnZhbi1hY3Rpb24tYmFyLWJ1dHRvbntmbGV4OjE7aGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tYmFyLWJ1dHRvbi1oZWlnaHQpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLW1kKTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjB9LnZhbi1hY3Rpb24tYmFyLWJ1dHRvbi0tZmlyc3R7bWFyZ2luLWxlZnQ6NXB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpfS52YW4tYWN0aW9uLWJhci1idXR0b24tLWxhc3R7bWFyZ2luLXJpZ2h0OjVweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpfS52YW4tYWN0aW9uLWJhci1idXR0b24tLXdhcm5pbmd7YmFja2dyb3VuZDp2YXIoLS12YW4tYWN0aW9uLWJhci1idXR0b24td2FybmluZy1jb2xvcil9LnZhbi1hY3Rpb24tYmFyLWJ1dHRvbi0tZGFuZ2Vye2JhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGlvbi1iYXItYnV0dG9uLWRhbmdlci1jb2xvcil9QG1lZGlhIChtYXgtd2lkdGg6IDMyMXB4KXsudmFuLWFjdGlvbi1iYXItYnV0dG9ue2ZvbnQtc2l6ZToxM3B4fX06cm9vdCw6aG9zdHstLXZhbi1vdmVybGF5LXotaW5kZXg6IDE7LS12YW4tb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC43KX0udmFuLW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3otaW5kZXg6dmFyKC0tdmFuLW92ZXJsYXktei1pbmRleCk7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1vdmVybGF5LWJhY2tncm91bmQpfTpyb290LDpob3N0ey0tdmFuLXBvcHVwLWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXBvcHVwLXRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSk7LS12YW4tcG9wdXAtcm91bmQtcmFkaXVzOiAxNnB4Oy0tdmFuLXBvcHVwLWNsb3NlLWljb24tc2l6ZTogMjJweDstLXZhbi1wb3B1cC1jbG9zZS1pY29uLWNvbG9yOiB2YXIoLS12YW4tZ3JheS01KTstLXZhbi1wb3B1cC1jbG9zZS1pY29uLW1hcmdpbjogMTZweDstLXZhbi1wb3B1cC1jbG9zZS1pY29uLXotaW5kZXg6IDF9LnZhbi1vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0udmFuLXBvcHVwe3Bvc2l0aW9uOmZpeGVkO21heC1oZWlnaHQ6MTAwJTtvdmVyZmxvdy15OmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6dmFyKC0tdmFuLXBvcHVwLWJhY2tncm91bmQpO3RyYW5zaXRpb246dmFyKC0tdmFuLXBvcHVwLXRyYW5zaXRpb24pOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofS52YW4tcG9wdXAtLWNlbnRlcnt0b3A6NTAlO2xlZnQ6MDtyaWdodDowO3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSB2YXIoLS12YW4tcGFkZGluZy1tZCkgKiAyKTttYXJnaW46MCBhdXRvO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS52YW4tcG9wdXAtLWNlbnRlci52YW4tcG9wdXAtLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXBvcHVwLXJvdW5kLXJhZGl1cyl9LnZhbi1wb3B1cC0tdG9we3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlfS52YW4tcG9wdXAtLXRvcC52YW4tcG9wdXAtLXJvdW5ke2JvcmRlci1yYWRpdXM6MCAwIHZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpIHZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpfS52YW4tcG9wdXAtLXJpZ2h0e3RvcDo1MCU7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApfS52YW4tcG9wdXAtLXJpZ2h0LnZhbi1wb3B1cC0tcm91bmR7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcG9wdXAtcm91bmQtcmFkaXVzKSAwIDAgdmFyKC0tdmFuLXBvcHVwLXJvdW5kLXJhZGl1cyl9LnZhbi1wb3B1cC0tYm90dG9te2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlfS52YW4tcG9wdXAtLWJvdHRvbS52YW4tcG9wdXAtLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXBvcHVwLXJvdW5kLXJhZGl1cykgdmFyKC0tdmFuLXBvcHVwLXJvdW5kLXJhZGl1cykgMCAwfS52YW4tcG9wdXAtLWxlZnR7dG9wOjUwJTtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTUwJSwwKX0udmFuLXBvcHVwLS1sZWZ0LnZhbi1wb3B1cC0tcm91bmR7Ym9yZGVyLXJhZGl1czowIHZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpIHZhcigtLXZhbi1wb3B1cC1yb3VuZC1yYWRpdXMpIDB9LnZhbi1wb3B1cC1zbGlkZS10b3AtZW50ZXItYWN0aXZlLC52YW4tcG9wdXAtc2xpZGUtbGVmdC1lbnRlci1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1yaWdodC1lbnRlci1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1ib3R0b20tZW50ZXItYWN0aXZle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1wb3B1cC1zbGlkZS10b3AtbGVhdmUtYWN0aXZlLC52YW4tcG9wdXAtc2xpZGUtbGVmdC1sZWF2ZS1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1yaWdodC1sZWF2ZS1hY3RpdmUsLnZhbi1wb3B1cC1zbGlkZS1ib3R0b20tbGVhdmUtYWN0aXZle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXZhbi1lYXNlLWluKX0udmFuLXBvcHVwLXNsaWRlLXRvcC1lbnRlci1mcm9tLC52YW4tcG9wdXAtc2xpZGUtdG9wLWxlYXZlLWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX0udmFuLXBvcHVwLXNsaWRlLXJpZ2h0LWVudGVyLWZyb20sLnZhbi1wb3B1cC1zbGlkZS1yaWdodC1sZWF2ZS1hY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsLTUwJSwwKX0udmFuLXBvcHVwLXNsaWRlLWJvdHRvbS1lbnRlci1mcm9tLC52YW4tcG9wdXAtc2xpZGUtYm90dG9tLWxlYXZlLWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfS52YW4tcG9wdXAtc2xpZGUtbGVmdC1lbnRlci1mcm9tLC52YW4tcG9wdXAtc2xpZGUtbGVmdC1sZWF2ZS1hY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLC01MCUsMCl9LnZhbi1wb3B1cF9fY2xvc2UtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OnZhcigtLXZhbi1wb3B1cC1jbG9zZS1pY29uLXotaW5kZXgpO2NvbG9yOnZhcigtLXZhbi1wb3B1cC1jbG9zZS1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tc2l6ZSl9LnZhbi1wb3B1cF9fY2xvc2UtaWNvbi0tdG9wLWxlZnR7dG9wOnZhcigtLXZhbi1wb3B1cC1jbG9zZS1pY29uLW1hcmdpbik7bGVmdDp2YXIoLS12YW4tcG9wdXAtY2xvc2UtaWNvbi1tYXJnaW4pfS52YW4tcG9wdXBfX2Nsb3NlLWljb24tLXRvcC1yaWdodHt0b3A6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKTtyaWdodDp2YXIoLS12YW4tcG9wdXAtY2xvc2UtaWNvbi1tYXJnaW4pfS52YW4tcG9wdXBfX2Nsb3NlLWljb24tLWJvdHRvbS1sZWZ0e2JvdHRvbTp2YXIoLS12YW4tcG9wdXAtY2xvc2UtaWNvbi1tYXJnaW4pO2xlZnQ6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKX0udmFuLXBvcHVwX19jbG9zZS1pY29uLS1ib3R0b20tcmlnaHR7cmlnaHQ6dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKTtib3R0b206dmFyKC0tdmFuLXBvcHVwLWNsb3NlLWljb24tbWFyZ2luKX06cm9vdCw6aG9zdHstLXZhbi1zaGFyZS1zaGVldC1oZWFkZXItcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctc20pIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1zaGFyZS1zaGVldC10aXRsZS1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXNoYXJlLXNoZWV0LXRpdGxlLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tc2hhcmUtc2hlZXQtdGl0bGUtbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7LS12YW4tc2hhcmUtc2hlZXQtZGVzY3JpcHRpb24tY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLXNoYXJlLXNoZWV0LWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tc2hhcmUtc2hlZXQtZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ6IDE2cHg7LS12YW4tc2hhcmUtc2hlZXQtaWNvbi1zaXplOiA0OHB4Oy0tdmFuLXNoYXJlLXNoZWV0LW9wdGlvbi1uYW1lLWNvbG9yOiB2YXIoLS12YW4tZ3JheS03KTstLXZhbi1zaGFyZS1zaGVldC1vcHRpb24tbmFtZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLXNoYXJlLXNoZWV0LW9wdGlvbi1kZXNjcmlwdGlvbi1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMyk7LS12YW4tc2hhcmUtc2hlZXQtb3B0aW9uLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7LS12YW4tc2hhcmUtc2hlZXQtY2FuY2VsLWJ1dHRvbi1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLXNoYXJlLXNoZWV0LWNhbmNlbC1idXR0b24taGVpZ2h0OiA0OHB4Oy0tdmFuLXNoYXJlLXNoZWV0LWNhbmNlbC1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi1zaGFyZS1zaGVldF9faGVhZGVye3BhZGRpbmc6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LWhlYWRlci1wYWRkaW5nKTt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLXNoYXJlLXNoZWV0X190aXRsZXttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKTtjb2xvcjp2YXIoLS12YW4tc2hhcmUtc2hlZXQtdGl0bGUtY29sb3IpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LXRpdGxlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LXRpdGxlLWxpbmUtaGVpZ2h0KX0udmFuLXNoYXJlLXNoZWV0X19kZXNjcmlwdGlvbntkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpO2NvbG9yOnZhcigtLXZhbi1zaGFyZS1zaGVldC1kZXNjcmlwdGlvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1zaGFyZS1zaGVldC1kZXNjcmlwdGlvbi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1zaGFyZS1zaGVldC1kZXNjcmlwdGlvbi1saW5lLWhlaWdodCl9LnZhbi1zaGFyZS1zaGVldF9fb3B0aW9uc3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7cGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1tZCkgMCB2YXIoLS12YW4tcGFkZGluZy1tZCkgdmFyKC0tdmFuLXBhZGRpbmcteHMpO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OnZpc2libGU7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnZhbi1zaGFyZS1zaGVldF9fb3B0aW9ucy0tYm9yZGVyOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiICI7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtyaWdodDowO2xlZnQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXZhbi1ib3JkZXItY29sb3IpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfS52YW4tc2hhcmUtc2hlZXRfX29wdGlvbnM6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDowfS52YW4tc2hhcmUtc2hlZXRfX29wdGlvbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLXNoYXJlLXNoZWV0X19pY29uLC52YW4tc2hhcmUtc2hlZXRfX2ltYWdlLWljb257d2lkdGg6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1zaGFyZS1zaGVldC1pY29uLXNpemUpO21hcmdpbjowIHZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXNoYXJlLXNoZWV0X19pY29ue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp2YXIoLS12YW4tZ3JheS03KTtib3JkZXItcmFkaXVzOjEwMCU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tZ3JheS0yKX0udmFuLXNoYXJlLXNoZWV0X19pY29uLS1saW5rLC52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXBvc3RlciwudmFuLXNoYXJlLXNoZWV0X19pY29uLS1xcmNvZGV7Zm9udC1zaXplOjI2cHh9LnZhbi1zaGFyZS1zaGVldF9faWNvbi0td2VhcHAtcXJjb2Rle2ZvbnQtc2l6ZToyOHB4fS52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXFxLC52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXdlaWJvLC52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXdlY2hhdCwudmFuLXNoYXJlLXNoZWV0X19pY29uLS13ZWNoYXQtbW9tZW50c3tmb250LXNpemU6MzBweDtjb2xvcjp2YXIoLS12YW4td2hpdGUpfS52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXFxe2JhY2tncm91bmQtY29sb3I6IzM4YjlmYX0udmFuLXNoYXJlLXNoZWV0X19pY29uLS13ZWNoYXR7YmFja2dyb3VuZC1jb2xvcjojMGJjMTVmfS52YW4tc2hhcmUtc2hlZXRfX2ljb24tLXdlaWJve2JhY2tncm91bmQtY29sb3I6I2VlNTc1ZX0udmFuLXNoYXJlLXNoZWV0X19pY29uLS13ZWNoYXQtbW9tZW50c3tiYWNrZ3JvdW5kLWNvbG9yOiM3YmM4NDV9LnZhbi1zaGFyZS1zaGVldF9fbmFtZXttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKTtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Y29sb3I6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LW9wdGlvbi1uYW1lLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LW9wdGlvbi1uYW1lLWZvbnQtc2l6ZSl9LnZhbi1zaGFyZS1zaGVldF9fb3B0aW9uLWRlc2NyaXB0aW9ue3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtjb2xvcjp2YXIoLS12YW4tc2hhcmUtc2hlZXQtb3B0aW9uLWRlc2NyaXB0aW9uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXNoYXJlLXNoZWV0LW9wdGlvbi1kZXNjcmlwdGlvbi1mb250LXNpemUpfS52YW4tc2hhcmUtc2hlZXRfX2NhbmNlbHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZzowO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc2hhcmUtc2hlZXQtY2FuY2VsLWJ1dHRvbi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1zaGFyZS1zaGVldC1jYW5jZWwtYnV0dG9uLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS12YW4tc2hhcmUtc2hlZXQtY2FuY2VsLWJ1dHRvbi1iYWNrZ3JvdW5kKTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcn0udmFuLXNoYXJlLXNoZWV0X19jYW5jZWw6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1iYWNrZ3JvdW5kKTtjb250ZW50OiIgIn0udmFuLXNoYXJlLXNoZWV0X19jYW5jZWw6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWFjdGl2ZS1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tcG9wb3Zlci1hcnJvdy1zaXplOiA2cHg7LS12YW4tcG9wb3Zlci1yYWRpdXM6IHZhcigtLXZhbi1yYWRpdXMtbGcpOy0tdmFuLXBvcG92ZXItYWN0aW9uLXdpZHRoOiAxMjhweDstLXZhbi1wb3BvdmVyLWFjdGlvbi1oZWlnaHQ6IDQ0cHg7LS12YW4tcG9wb3Zlci1hY3Rpb24tZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1wb3BvdmVyLWFjdGlvbi1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi1wb3BvdmVyLWFjdGlvbi1pY29uLXNpemU6IDIwcHg7LS12YW4tcG9wb3Zlci1ob3Jpem9udGFsLWFjdGlvbi1oZWlnaHQ6IDM0cHg7LS12YW4tcG9wb3Zlci1ob3Jpem9udGFsLWFjdGlvbi1pY29uLXNpemU6IDE2cHg7LS12YW4tcG9wb3Zlci1saWdodC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tcG9wb3Zlci1saWdodC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1wb3BvdmVyLWxpZ2h0LWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1wb3BvdmVyLWRhcmstdGV4dC1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1wb3BvdmVyLWRhcmstYmFja2dyb3VuZDogIzRhNGE0YTstLXZhbi1wb3BvdmVyLWRhcmstYWN0aW9uLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpfS52YW4tcG9wb3Zlcntwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzp2aXNpYmxlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMsdHJhbnNmb3JtIC4xNXN9LnZhbi1wb3BvdmVyX193cmFwcGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4tcG9wb3Zlcl9fYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDp2YXIoLS12YW4tcG9wb3Zlci1hcnJvdy1zaXplKX0udmFuLXBvcG92ZXJfX2NvbnRlbnR7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXBvcG92ZXItcmFkaXVzKX0udmFuLXBvcG92ZXJfX2NvbnRlbnQtLWhvcml6b250YWx7ZGlzcGxheTpmbGV4O3dpZHRoOi13ZWJraXQtbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnR9LnZhbi1wb3BvdmVyX19jb250ZW50LS1ob3Jpem9udGFsIC52YW4tcG9wb3Zlcl9fYWN0aW9ue2ZsZXg6bm9uZTt3aWR0aDphdXRvO2hlaWdodDp2YXIoLS12YW4tcG9wb3Zlci1ob3Jpem9udGFsLWFjdGlvbi1oZWlnaHQpO3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1zbSl9LnZhbi1wb3BvdmVyX19jb250ZW50LS1ob3Jpem9udGFsIC52YW4tcG9wb3Zlcl9fYWN0aW9uOmxhc3QtY2hpbGQ6YWZ0ZXJ7ZGlzcGxheTpub25lfS52YW4tcG9wb3Zlcl9fY29udGVudC0taG9yaXpvbnRhbCAudmFuLXBvcG92ZXJfX2FjdGlvbi1pY29ue21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtmb250LXNpemU6dmFyKC0tdmFuLXBvcG92ZXItaG9yaXpvbnRhbC1hY3Rpb24taWNvbi1zaXplKX0udmFuLXBvcG92ZXJfX2FjdGlvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDp2YXIoLS12YW4tcG9wb3Zlci1hY3Rpb24td2lkdGgpO2hlaWdodDp2YXIoLS12YW4tcG9wb3Zlci1hY3Rpb24taGVpZ2h0KTtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcG9wb3Zlci1hY3Rpb24tZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpO2N1cnNvcjpwb2ludGVyfS52YW4tcG9wb3Zlcl9fYWN0aW9uOmxhc3QtY2hpbGQgLnZhbi1wb3BvdmVyX19hY3Rpb24tdGV4dDphZnRlcntkaXNwbGF5Om5vbmV9LnZhbi1wb3BvdmVyX19hY3Rpb24tdGV4dHtkaXNwbGF5OmZsZXg7ZmxleDoxO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDoxMDAlfS52YW4tcG9wb3Zlcl9fYWN0aW9uLWljb257bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTtmb250LXNpemU6dmFyKC0tdmFuLXBvcG92ZXItYWN0aW9uLWljb24tc2l6ZSl9LnZhbi1wb3BvdmVyX19hY3Rpb24tLXdpdGgtaWNvbiAudmFuLXBvcG92ZXJfX2FjdGlvbi10ZXh0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnRePXRvcF0gLnZhbi1wb3BvdmVyX19hcnJvd3tib3R0b206MDtib3JkZXItdG9wLWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXItYm90dG9tLXdpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXZhbi1wb3BvdmVyLWFycm93LXNpemUpICogLTEpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wXXt0cmFuc2Zvcm0tb3JpZ2luOjUwJSAxMDAlfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wXSAudmFuLXBvcG92ZXJfX2Fycm93e2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD10b3Atc3RhcnRde3RyYW5zZm9ybS1vcmlnaW46MCAxMDAlfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wLXN0YXJ0XSAudmFuLXBvcG92ZXJfX2Fycm93e2xlZnQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9dG9wLWVuZF17dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD10b3AtZW5kXSAudmFuLXBvcG92ZXJfX2Fycm93e3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XSAudmFuLXBvcG92ZXJfX2Fycm93e3JpZ2h0OjA7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9yZGVyLWxlZnQtY29sb3I6Y3VycmVudENvbG9yO21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXZhbi1wb3BvdmVyLWFycm93LXNpemUpICogLTEpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9bGVmdF17dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PWxlZnRdIC52YW4tcG9wb3Zlcl9fYXJyb3d7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PWxlZnQtc3RhcnRde3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9bGVmdC1zdGFydF0gLnZhbi1wb3BvdmVyX19hcnJvd3t0b3A6dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9bGVmdC1lbmRde3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9bGVmdC1lbmRdIC52YW4tcG9wb3Zlcl9fYXJyb3d7Ym90dG9tOnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF0gLnZhbi1wb3BvdmVyX19hcnJvd3tsZWZ0OjA7Ym9yZGVyLXJpZ2h0LWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXItbGVmdC13aWR0aDowO21hcmdpbi1sZWZ0OmNhbGModmFyKC0tdmFuLXBvcG92ZXItYXJyb3ctc2l6ZSkgKiAtMSl9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1yaWdodF17dHJhbnNmb3JtLW9yaWdpbjowIDUwJX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PXJpZ2h0XSAudmFuLXBvcG92ZXJfX2Fycm93e3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1yaWdodC1zdGFydF17dHJhbnNmb3JtLW9yaWdpbjowIDB9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1yaWdodC1zdGFydF0gLnZhbi1wb3BvdmVyX19hcnJvd3t0b3A6dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9cmlnaHQtZW5kXXt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJX0udmFuLXBvcG92ZXJbZGF0YS1wb3BwZXItcGxhY2VtZW50PXJpZ2h0LWVuZF0gLnZhbi1wb3BvdmVyX19hcnJvd3tib3R0b206dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV0gLnZhbi1wb3BvdmVyX19hcnJvd3t0b3A6MDtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS1jb2xvcjpjdXJyZW50Q29sb3I7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXZhbi1wb3BvdmVyLWFycm93LXNpemUpICogLTEpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9Ym90dG9tXXt0cmFuc2Zvcm0tb3JpZ2luOjUwJSAwfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9Ym90dG9tXSAudmFuLXBvcG92ZXJfX2Fycm93e2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1ib3R0b20tc3RhcnRde3RyYW5zZm9ybS1vcmlnaW46MCAwfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9Ym90dG9tLXN0YXJ0XSAudmFuLXBvcG92ZXJfX2Fycm93e2xlZnQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tcG9wb3ZlcltkYXRhLXBvcHBlci1wbGFjZW1lbnQ9Ym90dG9tLWVuZF17dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9LnZhbi1wb3BvdmVyW2RhdGEtcG9wcGVyLXBsYWNlbWVudD1ib3R0b20tZW5kXSAudmFuLXBvcG92ZXJfX2Fycm93e3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLXBvcG92ZXItLWxpZ2h0e2NvbG9yOnZhcigtLXZhbi1wb3BvdmVyLWxpZ2h0LXRleHQtY29sb3IpfS52YW4tcG9wb3Zlci0tbGlnaHQgLnZhbi1wb3BvdmVyX19jb250ZW50e2JhY2tncm91bmQ6dmFyKC0tdmFuLXBvcG92ZXItbGlnaHQtYmFja2dyb3VuZCk7Ym94LXNoYWRvdzowIDJweCAxMnB4ICMzMjMyMzMxZn0udmFuLXBvcG92ZXItLWxpZ2h0IC52YW4tcG9wb3Zlcl9fYXJyb3d7Y29sb3I6dmFyKC0tdmFuLXBvcG92ZXItbGlnaHQtYmFja2dyb3VuZCl9LnZhbi1wb3BvdmVyLS1saWdodCAudmFuLXBvcG92ZXJfX2FjdGlvbjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYWN0aXZlLWNvbG9yKX0udmFuLXBvcG92ZXItLWxpZ2h0IC52YW4tcG9wb3Zlcl9fYWN0aW9uLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tcG9wb3Zlci1saWdodC1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tcG9wb3Zlci0tbGlnaHQgLnZhbi1wb3BvdmVyX19hY3Rpb24tLWRpc2FibGVkOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS52YW4tcG9wb3Zlci0tZGFya3tjb2xvcjp2YXIoLS12YW4tcG9wb3Zlci1kYXJrLXRleHQtY29sb3IpfS52YW4tcG9wb3Zlci0tZGFyayAudmFuLXBvcG92ZXJfX2NvbnRlbnR7YmFja2dyb3VuZDp2YXIoLS12YW4tcG9wb3Zlci1kYXJrLWJhY2tncm91bmQpfS52YW4tcG9wb3Zlci0tZGFyayAudmFuLXBvcG92ZXJfX2Fycm93e2NvbG9yOnZhcigtLXZhbi1wb3BvdmVyLWRhcmstYmFja2dyb3VuZCl9LnZhbi1wb3BvdmVyLS1kYXJrIC52YW4tcG9wb3Zlcl9fYWN0aW9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAzfS52YW4tcG9wb3Zlci0tZGFyayAudmFuLXBvcG92ZXJfX2FjdGlvbi0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLXBvcG92ZXItZGFyay1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcil9LnZhbi1wb3BvdmVyLS1kYXJrIC52YW4tcG9wb3Zlcl9fYWN0aW9uLS1kaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udmFuLXBvcG92ZXItLWRhcmsgLnZhbi1wb3BvdmVyX19hY3Rpb24tdGV4dDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tdmFuLWdyYXktNyl9LnZhbi1wb3BvdmVyLXpvb20tZW50ZXItZnJvbSwudmFuLXBvcG92ZXItem9vbS1sZWF2ZS1hY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC44KTtvcGFjaXR5OjB9LnZhbi1wb3BvdmVyLXpvb20tZW50ZXItYWN0aXZle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1wb3BvdmVyLXpvb20tbGVhdmUtYWN0aXZle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXZhbi1lYXNlLWluKX06cm9vdCw6aG9zdHstLXZhbi1ub3RpZnktdGV4dC1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1ub3RpZnktcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmcteHMpIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1ub3RpZnktZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1ub3RpZnktbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7LS12YW4tbm90aWZ5LXByaW1hcnktYmFja2dyb3VuZDogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLW5vdGlmeS1zdWNjZXNzLWJhY2tncm91bmQ6IHZhcigtLXZhbi1zdWNjZXNzLWNvbG9yKTstLXZhbi1ub3RpZnktZGFuZ2VyLWJhY2tncm91bmQ6IHZhcigtLXZhbi1kYW5nZXItY29sb3IpOy0tdmFuLW5vdGlmeS13YXJuaW5nLWJhY2tncm91bmQ6IHZhcigtLXZhbi13YXJuaW5nLWNvbG9yKX0udmFuLW5vdGlmeXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6dmFyKC0tdmFuLW5vdGlmeS1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tbm90aWZ5LXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tbm90aWZ5LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLW5vdGlmeS1saW5lLWhlaWdodCk7d2hpdGUtc3BhY2U6cHJlLXdyYXA7dGV4dC1hbGlnbjpjZW50ZXI7d29yZC13cmFwOmJyZWFrLXdvcmR9LnZhbi1ub3RpZnktLXByaW1hcnl7YmFja2dyb3VuZDp2YXIoLS12YW4tbm90aWZ5LXByaW1hcnktYmFja2dyb3VuZCl9LnZhbi1ub3RpZnktLXN1Y2Nlc3N7YmFja2dyb3VuZDp2YXIoLS12YW4tbm90aWZ5LXN1Y2Nlc3MtYmFja2dyb3VuZCl9LnZhbi1ub3RpZnktLWRhbmdlcntiYWNrZ3JvdW5kOnZhcigtLXZhbi1ub3RpZnktZGFuZ2VyLWJhY2tncm91bmQpfS52YW4tbm90aWZ5LS13YXJuaW5ne2JhY2tncm91bmQ6dmFyKC0tdmFuLW5vdGlmeS13YXJuaW5nLWJhY2tncm91bmQpfTpyb290LDpob3N0ey0tdmFuLWRpYWxvZy13aWR0aDogMzIwcHg7LS12YW4tZGlhbG9nLXNtYWxsLXNjcmVlbi13aWR0aDogOTAlOy0tdmFuLWRpYWxvZy1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWRpYWxvZy10cmFuc2l0aW9uOiB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSk7LS12YW4tZGlhbG9nLXJhZGl1czogMTZweDstLXZhbi1kaWFsb2ctYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tZGlhbG9nLWhlYWRlci1mb250LXdlaWdodDogdmFyKC0tdmFuLWZvbnQtYm9sZCk7LS12YW4tZGlhbG9nLWhlYWRlci1saW5lLWhlaWdodDogMjRweDstLXZhbi1kaWFsb2ctaGVhZGVyLXBhZGRpbmctdG9wOiAyNnB4Oy0tdmFuLWRpYWxvZy1oZWFkZXItaXNvbGF0ZWQtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctbGcpIDA7LS12YW4tZGlhbG9nLW1lc3NhZ2UtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctbGcpOy0tdmFuLWRpYWxvZy1tZXNzYWdlLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tZGlhbG9nLW1lc3NhZ2UtbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7LS12YW4tZGlhbG9nLW1lc3NhZ2UtbWF4LWhlaWdodDogNjB2aDstLXZhbi1kaWFsb2ctaGFzLXRpdGxlLW1lc3NhZ2UtdGV4dC1jb2xvcjogdmFyKC0tdmFuLWdyYXktNyk7LS12YW4tZGlhbG9nLWhhcy10aXRsZS1tZXNzYWdlLXBhZGRpbmctdG9wOiB2YXIoLS12YW4tcGFkZGluZy14cyk7LS12YW4tZGlhbG9nLWJ1dHRvbi1oZWlnaHQ6IDQ4cHg7LS12YW4tZGlhbG9nLXJvdW5kLWJ1dHRvbi1oZWlnaHQ6IDM2cHg7LS12YW4tZGlhbG9nLWNvbmZpcm0tYnV0dG9uLXRleHQtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKX0udmFuLWRpYWxvZ3t0b3A6NDUlO3dpZHRoOnZhcigtLXZhbi1kaWFsb2ctd2lkdGgpO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6dmFyKC0tdmFuLWRpYWxvZy1mb250LXNpemUpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWRpYWxvZy1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1kaWFsb2ctcmFkaXVzKTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3RyYW5zaXRpb246dmFyKC0tdmFuLWRpYWxvZy10cmFuc2l0aW9uKTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxvcGFjaXR5fUBtZWRpYSAobWF4LXdpZHRoOiAzMjFweCl7LnZhbi1kaWFsb2d7d2lkdGg6dmFyKC0tdmFuLWRpYWxvZy1zbWFsbC1zY3JlZW4td2lkdGgpfX0udmFuLWRpYWxvZ19faGVhZGVye2NvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTtwYWRkaW5nLXRvcDp2YXIoLS12YW4tZGlhbG9nLWhlYWRlci1wYWRkaW5nLXRvcCk7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWRpYWxvZy1oZWFkZXItZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1kaWFsb2ctaGVhZGVyLWxpbmUtaGVpZ2h0KTt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLWRpYWxvZ19faGVhZGVyLS1pc29sYXRlZHtwYWRkaW5nOnZhcigtLXZhbi1kaWFsb2ctaGVhZGVyLWlzb2xhdGVkLXBhZGRpbmcpfS52YW4tZGlhbG9nX19jb250ZW50LS1pc29sYXRlZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6MTA0cHh9LnZhbi1kaWFsb2dfX21lc3NhZ2V7Y29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpO2ZsZXg6MTttYXgtaGVpZ2h0OnZhcigtLXZhbi1kaWFsb2ctbWVzc2FnZS1tYXgtaGVpZ2h0KTtwYWRkaW5nOjI2cHggdmFyKC0tdmFuLWRpYWxvZy1tZXNzYWdlLXBhZGRpbmcpO292ZXJmbG93LXk6YXV0bztmb250LXNpemU6dmFyKC0tdmFuLWRpYWxvZy1tZXNzYWdlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWRpYWxvZy1tZXNzYWdlLWxpbmUtaGVpZ2h0KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt0ZXh0LWFsaWduOmNlbnRlcjt3b3JkLXdyYXA6YnJlYWstd29yZDstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0udmFuLWRpYWxvZ19fbWVzc2FnZS0taGFzLXRpdGxle3BhZGRpbmctdG9wOnZhcigtLXZhbi1kaWFsb2ctaGFzLXRpdGxlLW1lc3NhZ2UtcGFkZGluZy10b3ApO2NvbG9yOnZhcigtLXZhbi1kaWFsb2ctaGFzLXRpdGxlLW1lc3NhZ2UtdGV4dC1jb2xvcil9LnZhbi1kaWFsb2dfX21lc3NhZ2UtLWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS52YW4tZGlhbG9nX19tZXNzYWdlLS1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS52YW4tZGlhbG9nX19tZXNzYWdlLS1qdXN0aWZ5e3RleHQtYWxpZ246anVzdGlmeX0udmFuLWRpYWxvZ19fZm9vdGVye2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnZhbi1kaWFsb2dfX2NvbmZpcm0sLnZhbi1kaWFsb2dfX2NhbmNlbHtmbGV4OjE7aGVpZ2h0OnZhcigtLXZhbi1kaWFsb2ctYnV0dG9uLWhlaWdodCk7bWFyZ2luOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowfS52YW4tZGlhbG9nX19jb25maXJtLC52YW4tZGlhbG9nX19jb25maXJtOmFjdGl2ZXtjb2xvcjp2YXIoLS12YW4tZGlhbG9nLWNvbmZpcm0tYnV0dG9uLXRleHQtY29sb3IpfS52YW4tZGlhbG9nLS1yb3VuZC1idXR0b24gLnZhbi1kaWFsb2dfX2Zvb3Rlcntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6YXV0bztwYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1sZykgdmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tZGlhbG9nLS1yb3VuZC1idXR0b24gLnZhbi1kaWFsb2dfX21lc3NhZ2V7cGFkZGluZy1ib3R0b206dmFyKC0tdmFuLXBhZGRpbmctbWQpO2NvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKX0udmFuLWRpYWxvZy0tcm91bmQtYnV0dG9uIC52YW4tZGlhbG9nX19jb25maXJtLC52YW4tZGlhbG9nLS1yb3VuZC1idXR0b24gLnZhbi1kaWFsb2dfX2NhbmNlbHtoZWlnaHQ6dmFyKC0tdmFuLWRpYWxvZy1yb3VuZC1idXR0b24taGVpZ2h0KX0udmFuLWRpYWxvZy0tcm91bmQtYnV0dG9uIC52YW4tZGlhbG9nX19jb25maXJte2NvbG9yOnZhcigtLXZhbi13aGl0ZSl9LnZhbi1kaWFsb2ctLXJvdW5kLWJ1dHRvbiAudmFuLWFjdGlvbi1iYXItYnV0dG9uLS1maXJzdHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KX0udmFuLWRpYWxvZy0tcm91bmQtYnV0dG9uIC52YW4tYWN0aW9uLWJhci1idXR0b24tLWxhc3R7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KX0udmFuLWRpYWxvZy1ib3VuY2UtZW50ZXItZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHNjYWxlKC43KTtvcGFjaXR5OjB9LnZhbi1kaWFsb2ctYm91bmNlLWxlYXZlLWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHNjYWxlKC45KTtvcGFjaXR5OjB9OnJvb3QsOmhvc3R7LS12YW4tdG9hc3QtbWF4LXdpZHRoOiA3MCU7LS12YW4tdG9hc3QtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi10b2FzdC10ZXh0LWNvbG9yOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLXRvYXN0LWxvYWRpbmctaWNvbi1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi10b2FzdC1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi10b2FzdC1yYWRpdXM6IHZhcigtLXZhbi1yYWRpdXMtbGcpOy0tdmFuLXRvYXN0LWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjcpOy0tdmFuLXRvYXN0LWljb24tc2l6ZTogMzZweDstLXZhbi10b2FzdC10ZXh0LW1pbi13aWR0aDogOTZweDstLXZhbi10b2FzdC10ZXh0LXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tdG9hc3QtZGVmYXVsdC1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tdG9hc3QtZGVmYXVsdC13aWR0aDogODhweDstLXZhbi10b2FzdC1kZWZhdWx0LW1pbi1oZWlnaHQ6IDg4cHg7LS12YW4tdG9hc3QtcG9zaXRpb24tdG9wLWRpc3RhbmNlOiAyMCU7LS12YW4tdG9hc3QtcG9zaXRpb24tYm90dG9tLWRpc3RhbmNlOiAyMCV9LnZhbi10b2FzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JveC1zaXppbmc6Y29udGVudC1ib3g7dHJhbnNpdGlvbjphbGwgdmFyKC0tdmFuLWR1cmF0aW9uLWZhc3QpO3dpZHRoOnZhcigtLXZhbi10b2FzdC1kZWZhdWx0LXdpZHRoKTttYXgtd2lkdGg6dmFyKC0tdmFuLXRvYXN0LW1heC13aWR0aCk7bWluLWhlaWdodDp2YXIoLS12YW4tdG9hc3QtZGVmYXVsdC1taW4taGVpZ2h0KTtwYWRkaW5nOnZhcigtLXZhbi10b2FzdC1kZWZhdWx0LXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi10b2FzdC10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXRvYXN0LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXRvYXN0LWxpbmUtaGVpZ2h0KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLWFsbDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLXZhbi10b2FzdC1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi10b2FzdC1yYWRpdXMpfS52YW4tdG9hc3QtLWJyZWFrLW5vcm1hbHt3b3JkLWJyZWFrOm5vcm1hbDt3b3JkLXdyYXA6bm9ybWFsfS52YW4tdG9hc3QtLWJyZWFrLXdvcmR7d29yZC1icmVhazpub3JtYWw7d29yZC13cmFwOmJyZWFrLXdvcmR9LnZhbi10b2FzdC0tdW5jbGlja2FibGV7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLXRvYXN0LS11bmNsaWNrYWJsZSAqe3BvaW50ZXItZXZlbnRzOm5vbmV9LnZhbi10b2FzdC0tdGV4dCwudmFuLXRvYXN0LS1odG1se3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWluLXdpZHRoOnZhcigtLXZhbi10b2FzdC10ZXh0LW1pbi13aWR0aCk7bWluLWhlaWdodDowO3BhZGRpbmc6dmFyKC0tdmFuLXRvYXN0LXRleHQtcGFkZGluZyl9LnZhbi10b2FzdC0tdGV4dCAudmFuLXRvYXN0X190ZXh0LC52YW4tdG9hc3QtLWh0bWwgLnZhbi10b2FzdF9fdGV4dHttYXJnaW4tdG9wOjB9LnZhbi10b2FzdC0tdG9we3RvcDp2YXIoLS12YW4tdG9hc3QtcG9zaXRpb24tdG9wLWRpc3RhbmNlKX0udmFuLXRvYXN0LS1ib3R0b217dG9wOmF1dG87Ym90dG9tOnZhcigtLXZhbi10b2FzdC1wb3NpdGlvbi1ib3R0b20tZGlzdGFuY2UpfS52YW4tdG9hc3RfX2ljb257Zm9udC1zaXplOnZhcigtLXZhbi10b2FzdC1pY29uLXNpemUpfS52YW4tdG9hc3RfX2xvYWRpbmd7cGFkZGluZzp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtjb2xvcjp2YXIoLS12YW4tdG9hc3QtbG9hZGluZy1pY29uLWNvbG9yKX0udmFuLXRvYXN0X190ZXh0e21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpfTpyb290LDpob3N0ey0tdmFuLWFjdGlvbi1zaGVldC1tYXgtaGVpZ2h0OiA4MCU7LS12YW4tYWN0aW9uLXNoZWV0LWhlYWRlci1oZWlnaHQ6IDQ4cHg7LS12YW4tYWN0aW9uLXNoZWV0LWhlYWRlci1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWFjdGlvbi1zaGVldC1kZXNjcmlwdGlvbi1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tYWN0aW9uLXNoZWV0LWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tYWN0aW9uLXNoZWV0LWRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tYWN0aW9uLXNoZWV0LWl0ZW0tbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC1sZyk7LS12YW4tYWN0aW9uLXNoZWV0LWl0ZW0tdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWljb24tc2l6ZTogMThweDstLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1pY29uLW1hcmdpbi1yaWdodDogdmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWFjdGlvbi1zaGVldC1zdWJuYW1lLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1hY3Rpb24tc2hlZXQtc3VibmFtZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWFjdGlvbi1zaGVldC1zdWJuYW1lLWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtc20pOy0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLXNpemU6IDIycHg7LS12YW4tYWN0aW9uLXNoZWV0LWNsb3NlLWljb24tY29sb3I6IHZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLXBhZGRpbmc6IDAgdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWFjdGlvbi1zaGVldC1jYW5jZWwtdGV4dC1jb2xvcjogdmFyKC0tdmFuLWdyYXktNyk7LS12YW4tYWN0aW9uLXNoZWV0LWNhbmNlbC1wYWRkaW5nLXRvcDogdmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWFjdGlvbi1zaGVldC1jYW5jZWwtcGFkZGluZy1jb2xvcjogdmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLWFjdGlvbi1zaGVldC1sb2FkaW5nLWljb24tc2l6ZTogMjJweH0udmFuLWFjdGlvbi1zaGVldHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC1oZWlnaHQ6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1tYXgtaGVpZ2h0KTtvdmVyZmxvdzpoaWRkZW47Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLXRleHQtY29sb3IpfS52YW4tYWN0aW9uLXNoZWV0X19jb250ZW50e2ZsZXg6MSBhdXRvO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0udmFuLWFjdGlvbi1zaGVldF9faXRlbSwudmFuLWFjdGlvbi1zaGVldF9fY2FuY2Vse2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6MTRweCB2YXIoLS12YW4tcGFkZGluZy1tZCk7Zm9udC1zaXplOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1mb250LXNpemUpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1pdGVtLWJhY2tncm91bmQpO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyfS52YW4tYWN0aW9uLXNoZWV0X19pdGVtOmFjdGl2ZSwudmFuLWFjdGlvbi1zaGVldF9fY2FuY2VsOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpfS52YW4tYWN0aW9uLXNoZWV0X19pdGVte2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1saW5lLWhlaWdodCl9LnZhbi1hY3Rpb24tc2hlZXRfX2l0ZW0tLWxvYWRpbmcsLnZhbi1hY3Rpb24tc2hlZXRfX2l0ZW0tLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1kaXNhYmxlZC10ZXh0LWNvbG9yKX0udmFuLWFjdGlvbi1zaGVldF9faXRlbS0tbG9hZGluZzphY3RpdmUsLnZhbi1hY3Rpb24tc2hlZXRfX2l0ZW0tLWRpc2FibGVkOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1iYWNrZ3JvdW5kKX0udmFuLWFjdGlvbi1zaGVldF9faXRlbS0tZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tYWN0aW9uLXNoZWV0X19pdGVtLS1sb2FkaW5ne2N1cnNvcjpkZWZhdWx0fS52YW4tYWN0aW9uLXNoZWV0X19pdGVtLWljb257Zm9udC1zaXplOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtaXRlbS1pY29uLXNpemUpO21hcmdpbi1yaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWl0ZW0taWNvbi1tYXJnaW4tcmlnaHQpfS52YW4tYWN0aW9uLXNoZWV0X19jYW5jZWx7ZmxleC1zaHJpbms6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1jYW5jZWwtdGV4dC1jb2xvcil9LnZhbi1hY3Rpb24tc2hlZXRfX3N1Ym5hbWV7d2lkdGg6MTAwJTttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKTtjb2xvcjp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LXN1Ym5hbWUtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LXN1Ym5hbWUtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LXN1Ym5hbWUtbGluZS1oZWlnaHQpO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0udmFuLWFjdGlvbi1zaGVldF9fZ2Fwe2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtY2FuY2VsLXBhZGRpbmctdG9wKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtY2FuY2VsLXBhZGRpbmctY29sb3IpfS52YW4tYWN0aW9uLXNoZWV0X19oZWFkZXJ7ZmxleC1zaHJpbms6MDtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtmb250LXNpemU6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1oZWFkZXItZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWhlYWRlci1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyfS52YW4tYWN0aW9uLXNoZWV0X19kZXNjcmlwdGlvbntwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowO3BhZGRpbmc6MjBweCB2YXIoLS12YW4tcGFkZGluZy1tZCk7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1kZXNjcmlwdGlvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtZGVzY3JpcHRpb24tZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0KTt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLWFjdGlvbi1zaGVldF9fZGVzY3JpcHRpb246YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiAiO3BvaW50ZXItZXZlbnRzOm5vbmU7cmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpO2JvdHRvbTowO2xlZnQ6dmFyKC0tdmFuLXBhZGRpbmctbWQpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLXZhbi1ib3JkZXItY29sb3IpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfS52YW4tYWN0aW9uLXNoZWV0X19sb2FkaW5nLWljb24gLnZhbi1sb2FkaW5nX19zcGlubmVye3dpZHRoOnZhcigtLXZhbi1hY3Rpb24tc2hlZXQtbG9hZGluZy1pY29uLXNpemUpO2hlaWdodDp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWxvYWRpbmctaWNvbi1zaXplKX0udmFuLWFjdGlvbi1zaGVldF9fY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt6LWluZGV4OjE7cGFkZGluZzp2YXIoLS12YW4tYWN0aW9uLXNoZWV0LWNsb3NlLWljb24tcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWFjdGlvbi1zaGVldC1jbG9zZS1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OmluaGVyaXR9OnJvb3QsOmhvc3R7LS12YW4tc3RpY2t5LXotaW5kZXg6IDk5fS52YW4tc3RpY2t5LS1maXhlZHtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OnZhcigtLXZhbi1zdGlja3ktei1pbmRleCl9OnJvb3QsOmhvc3R7LS12YW4tc3dpcGUtaW5kaWNhdG9yLXNpemU6IDZweDstLXZhbi1zd2lwZS1pbmRpY2F0b3ItbWFyZ2luOiB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tc3dpcGUtaW5kaWNhdG9yLWFjdGl2ZS1vcGFjaXR5OiAxOy0tdmFuLXN3aXBlLWluZGljYXRvci1pbmFjdGl2ZS1vcGFjaXR5OiAuMzstLXZhbi1zd2lwZS1pbmRpY2F0b3ItYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1zd2lwZS1pbmRpY2F0b3ItaW5hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJvcmRlci1jb2xvcil9LnZhbi1zd2lwZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLXN3aXBlX190cmFja3tkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm19LnZhbi1zd2lwZV9fdHJhY2stLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udmFuLXN3aXBlX19pbmRpY2F0b3Jze3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLW1hcmdpbik7bGVmdDo1MCU7ZGlzcGxheTpmbGV4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LnZhbi1zd2lwZV9faW5kaWNhdG9ycy0tdmVydGljYWx7dG9wOjUwJTtib3R0b206YXV0bztsZWZ0OnZhcigtLXZhbi1zd2lwZS1pbmRpY2F0b3ItbWFyZ2luKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnZhbi1zd2lwZV9faW5kaWNhdG9ycy0tdmVydGljYWwgLnZhbi1zd2lwZV9faW5kaWNhdG9yOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLXNpemUpfS52YW4tc3dpcGVfX2luZGljYXRvcnt3aWR0aDp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLXNpemUpO2hlaWdodDp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLXNpemUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXN3aXBlLWluZGljYXRvci1pbmFjdGl2ZS1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOjEwMCU7b3BhY2l0eTp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLWluYWN0aXZlLW9wYWNpdHkpO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS12YW4tZHVyYXRpb24tZmFzdCksYmFja2dyb3VuZC1jb2xvciB2YXIoLS12YW4tZHVyYXRpb24tZmFzdCl9LnZhbi1zd2lwZV9faW5kaWNhdG9yOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1zd2lwZS1pbmRpY2F0b3Itc2l6ZSl9LnZhbi1zd2lwZV9faW5kaWNhdG9yLS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc3dpcGUtaW5kaWNhdG9yLWFjdGl2ZS1iYWNrZ3JvdW5kKTtvcGFjaXR5OnZhcigtLXZhbi1zd2lwZS1pbmRpY2F0b3ItYWN0aXZlLW9wYWNpdHkpfS52YW4tc3dpcGUtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9OnJvb3QsOmhvc3R7LS12YW4taW1hZ2UtcHJldmlldy1pbmRleC10ZXh0LWNvbG9yOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1pbWFnZS1wcmV2aWV3LWluZGV4LWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtdGV4dC1zaGFkb3c6IDAgMXB4IDFweCB2YXIoLS12YW4tZ3JheS04KTstLXZhbi1pbWFnZS1wcmV2aWV3LW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuOSk7LS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLXNpemU6IDIycHg7LS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLWNvbG9yOiB2YXIoLS12YW4tZ3JheS01KTstLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tbWFyZ2luOiB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLXotaW5kZXg6IDF9LnZhbi1pbWFnZS1wcmV2aWV3e3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21heC13aWR0aDpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNmb3JtOm5vbmV9LnZhbi1pbWFnZS1wcmV2aWV3X19zd2lwZXtoZWlnaHQ6MTAwJX0udmFuLWltYWdlLXByZXZpZXdfX3N3aXBlLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmhpZGRlbn0udmFuLWltYWdlLXByZXZpZXdfX2NvdmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0udmFuLWltYWdlLXByZXZpZXdfX2ltYWdlLC52YW4taW1hZ2UtcHJldmlld19faW1hZ2Utd3JhcHt3aWR0aDoxMDAlO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfS52YW4taW1hZ2UtcHJldmlld19faW1hZ2UtLXZlcnRpY2FsLC52YW4taW1hZ2UtcHJldmlld19faW1hZ2Utd3JhcC0tdmVydGljYWx7d2lkdGg6YXV0bztoZWlnaHQ6MTAwJX0udmFuLWltYWdlLXByZXZpZXdfX2ltYWdlIGltZywudmFuLWltYWdlLXByZXZpZXdfX2ltYWdlLXdyYXAgaW1nLC52YW4taW1hZ2UtcHJldmlld19faW1hZ2UgdmlkZW8sLnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZS13cmFwIHZpZGVvey13ZWJraXQtdXNlci1kcmFnOm5vbmV9LnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZSAudmFuLWltYWdlX19lcnJvciwudmFuLWltYWdlLXByZXZpZXdfX2ltYWdlLXdyYXAgLnZhbi1pbWFnZV9fZXJyb3J7dG9wOjMwJTtoZWlnaHQ6NDAlfS52YW4taW1hZ2UtcHJldmlld19faW1hZ2UgLnZhbi1pbWFnZV9fZXJyb3ItaWNvbiwudmFuLWltYWdlLXByZXZpZXdfX2ltYWdlLXdyYXAgLnZhbi1pbWFnZV9fZXJyb3ItaWNvbntmb250LXNpemU6MzZweH0udmFuLWltYWdlLXByZXZpZXdfX2ltYWdlIC52YW4taW1hZ2VfX2xvYWRpbmcsLnZhbi1pbWFnZS1wcmV2aWV3X19pbWFnZS13cmFwIC52YW4taW1hZ2VfX2xvYWRpbmd7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udmFuLWltYWdlLXByZXZpZXdfX2luZGV4e3Bvc2l0aW9uOmFic29sdXRlO3RvcDp2YXIoLS12YW4tcGFkZGluZy1tZCk7bGVmdDo1MCU7Y29sb3I6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWluZGV4LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctaW5kZXgtbGluZS1oZWlnaHQpO3RleHQtc2hhZG93OnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWluZGV4LXRleHQtc2hhZG93KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpfS52YW4taW1hZ2UtcHJldmlld19fb3ZlcmxheXtiYWNrZ3JvdW5kOnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LW92ZXJsYXktYmFja2dyb3VuZCl9LnZhbi1pbWFnZS1wcmV2aWV3X19jbG9zZS1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctY2xvc2UtaWNvbi16LWluZGV4KTtjb2xvcjp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctY2xvc2UtaWNvbi1zaXplKX0udmFuLWltYWdlLXByZXZpZXdfX2Nsb3NlLWljb24tLXRvcC1sZWZ0e3RvcDp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLW1hcmdpbik7bGVmdDp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLW1hcmdpbil9LnZhbi1pbWFnZS1wcmV2aWV3X19jbG9zZS1pY29uLS10b3AtcmlnaHR7dG9wOnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tbWFyZ2luKTtyaWdodDp2YXIoLS12YW4taW1hZ2UtcHJldmlldy1jbG9zZS1pY29uLW1hcmdpbil9LnZhbi1pbWFnZS1wcmV2aWV3X19jbG9zZS1pY29uLS1ib3R0b20tbGVmdHtib3R0b206dmFyKC0tdmFuLWltYWdlLXByZXZpZXctY2xvc2UtaWNvbi1tYXJnaW4pO2xlZnQ6dmFyKC0tdmFuLWltYWdlLXByZXZpZXctY2xvc2UtaWNvbi1tYXJnaW4pfS52YW4taW1hZ2UtcHJldmlld19fY2xvc2UtaWNvbi0tYm90dG9tLXJpZ2h0e3JpZ2h0OnZhcigtLXZhbi1pbWFnZS1wcmV2aWV3LWNsb3NlLWljb24tbWFyZ2luKTtib3R0b206dmFyKC0tdmFuLWltYWdlLXByZXZpZXctY2xvc2UtaWNvbi1tYXJnaW4pfTpyb290LDpob3N0ey0tdmFuLXVwbG9hZGVyLXNpemU6IDgwcHg7LS12YW4tdXBsb2FkZXItaWNvbi1zaXplOiAyNHB4Oy0tdmFuLXVwbG9hZGVyLWljb24tY29sb3I6IHZhcigtLXZhbi1ncmF5LTQpOy0tdmFuLXVwbG9hZGVyLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLXVwbG9hZGVyLXRleHQtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi11cGxvYWRlci11cGxvYWQtYmFja2dyb3VuZDogdmFyKC0tdmFuLWdyYXktMSk7LS12YW4tdXBsb2FkZXItdXBsb2FkLWFjdGl2ZS1jb2xvcjogdmFyKC0tdmFuLWFjdGl2ZS1jb2xvcik7LS12YW4tdXBsb2FkZXItZGVsZXRlLWNvbG9yOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1pY29uLXNpemU6IDE0cHg7LS12YW4tdXBsb2FkZXItZGVsZXRlLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjcpOy0tdmFuLXVwbG9hZGVyLWZpbGUtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLXVwbG9hZGVyLWZpbGUtaWNvbi1zaXplOiAyMHB4Oy0tdmFuLXVwbG9hZGVyLWZpbGUtaWNvbi1jb2xvcjogdmFyKC0tdmFuLWdyYXktNyk7LS12YW4tdXBsb2FkZXItZmlsZS1uYW1lLXBhZGRpbmc6IDAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7LS12YW4tdXBsb2FkZXItZmlsZS1uYW1lLW1hcmdpbi10b3A6IHZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi11cGxvYWRlci1maWxlLW5hbWUtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXNtKTstLXZhbi11cGxvYWRlci1maWxlLW5hbWUtdGV4dC1jb2xvcjogdmFyKC0tdmFuLWdyYXktNyk7LS12YW4tdXBsb2FkZXItbWFzay10ZXh0LWNvbG9yOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLXVwbG9hZGVyLW1hc2stYmFja2dyb3VuZDogcmdiYSg1MCwgNTAsIDUxLCAuODgpOy0tdmFuLXVwbG9hZGVyLW1hc2staWNvbi1zaXplOiAyMnB4Oy0tdmFuLXVwbG9hZGVyLW1hc2stbWVzc2FnZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLXVwbG9hZGVyLW1hc2stbWVzc2FnZS1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LXhzKTstLXZhbi11cGxvYWRlci1sb2FkaW5nLWljb24tc2l6ZTogMjJweDstLXZhbi11cGxvYWRlci1sb2FkaW5nLWljb24tY29sb3I6IHZhcigtLXZhbi13aGl0ZSk7LS12YW4tdXBsb2FkZXItZGlzYWJsZWQtb3BhY2l0eTogdmFyKC0tdmFuLWRpc2FibGVkLW9wYWNpdHkpOy0tdmFuLXVwbG9hZGVyLWJvcmRlci1yYWRpdXM6IDBweH0udmFuLXVwbG9hZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS52YW4tdXBsb2FkZXJfX3dyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwfS52YW4tdXBsb2FkZXJfX3dyYXBwZXItLWRpc2FibGVke29wYWNpdHk6dmFyKC0tdmFuLXVwbG9hZGVyLWRpc2FibGVkLW9wYWNpdHkpfS52YW4tdXBsb2FkZXJfX2lucHV0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjB9LnZhbi11cGxvYWRlcl9faW5wdXQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXVwbG9hZGVyX19pbnB1dDpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi11cGxvYWRlcl9fdXBsb2Fke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOnZhcigtLXZhbi11cGxvYWRlci1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXVwbG9hZGVyLXNpemUpO21hcmdpbjowIHZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy14cykgMDtiYWNrZ3JvdW5kOnZhcigtLXZhbi11cGxvYWRlci11cGxvYWQtYmFja2dyb3VuZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tdXBsb2FkZXItYm9yZGVyLXJhZGl1cyl9LnZhbi11cGxvYWRlcl9fdXBsb2FkOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi11cGxvYWRlci11cGxvYWQtYWN0aXZlLWNvbG9yKX0udmFuLXVwbG9hZGVyX191cGxvYWQtLXJlYWRvbmx5OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi11cGxvYWRlci11cGxvYWQtYmFja2dyb3VuZCl9LnZhbi11cGxvYWRlcl9fdXBsb2FkLWljb257Y29sb3I6dmFyKC0tdmFuLXVwbG9hZGVyLWljb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdXBsb2FkZXItaWNvbi1zaXplKX0udmFuLXVwbG9hZGVyX191cGxvYWQtdGV4dHttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLXhzKTtjb2xvcjp2YXIoLS12YW4tdXBsb2FkZXItdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi11cGxvYWRlci10ZXh0LWZvbnQtc2l6ZSl9LnZhbi11cGxvYWRlcl9fcHJldmlld3twb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MCB2YXIoLS12YW4tcGFkZGluZy14cykgdmFyKC0tdmFuLXBhZGRpbmcteHMpIDA7Y3Vyc29yOnBvaW50ZXJ9LnZhbi11cGxvYWRlcl9fcHJldmlldy1pbWFnZXtkaXNwbGF5OmJsb2NrO3dpZHRoOnZhcigtLXZhbi11cGxvYWRlci1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXVwbG9hZGVyLXNpemUpO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOnZhcigtLXZhbi11cGxvYWRlci1ib3JkZXItcmFkaXVzKX0udmFuLXVwbG9hZGVyX19wcmV2aWV3LWRlbGV0ZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowfS52YW4tdXBsb2FkZXJfX3ByZXZpZXctZGVsZXRlLS1zaGFkb3d7d2lkdGg6dmFyKC0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1pY29uLXNpemUpO2hlaWdodDp2YXIoLS12YW4tdXBsb2FkZXItZGVsZXRlLWljb24tc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tdXBsb2FkZXItZGVsZXRlLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6MCAwIDAgMTJweH0udmFuLXVwbG9hZGVyX19wcmV2aWV3LWRlbGV0ZS1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Y29sb3I6dmFyKC0tdmFuLXVwbG9hZGVyLWRlbGV0ZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi11cGxvYWRlci1kZWxldGUtaWNvbi1zaXplKTt0cmFuc2Zvcm06c2NhbGUoLjcpIHRyYW5zbGF0ZSgxMCUsLTEwJSl9LnZhbi11cGxvYWRlcl9fcHJldmlldy1jb3Zlcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowfS52YW4tdXBsb2FkZXJfX21hc2t7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLXZhbi11cGxvYWRlci1tYXNrLXRleHQtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXVwbG9hZGVyLW1hc2stYmFja2dyb3VuZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tdXBsb2FkZXItYm9yZGVyLXJhZGl1cyl9LnZhbi11cGxvYWRlcl9fbWFzay1pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tdXBsb2FkZXItbWFzay1pY29uLXNpemUpfS52YW4tdXBsb2FkZXJfX21hc2stbWVzc2FnZXttYXJnaW4tdG9wOjZweDtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Zm9udC1zaXplOnZhcigtLXZhbi11cGxvYWRlci1tYXNrLW1lc3NhZ2UtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tdXBsb2FkZXItbWFzay1tZXNzYWdlLWxpbmUtaGVpZ2h0KX0udmFuLXVwbG9hZGVyX19sb2FkaW5ne3dpZHRoOnZhcigtLXZhbi11cGxvYWRlci1sb2FkaW5nLWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi11cGxvYWRlci1sb2FkaW5nLWljb24tc2l6ZSk7Y29sb3I6dmFyKC0tdmFuLXVwbG9hZGVyLWxvYWRpbmctaWNvbi1jb2xvcil9LnZhbi11cGxvYWRlcl9fZmlsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOnZhcigtLXZhbi11cGxvYWRlci1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLXVwbG9hZGVyLXNpemUpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXVwbG9hZGVyLWZpbGUtYmFja2dyb3VuZCl9LnZhbi11cGxvYWRlcl9fZmlsZS1pY29ue2NvbG9yOnZhcigtLXZhbi11cGxvYWRlci1maWxlLWljb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdXBsb2FkZXItZmlsZS1pY29uLXNpemUpfS52YW4tdXBsb2FkZXJfX2ZpbGUtbmFtZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXJnaW4tdG9wOnZhcigtLXZhbi11cGxvYWRlci1maWxlLW5hbWUtbWFyZ2luLXRvcCk7cGFkZGluZzp2YXIoLS12YW4tdXBsb2FkZXItZmlsZS1uYW1lLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi11cGxvYWRlci1maWxlLW5hbWUtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi11cGxvYWRlci1maWxlLW5hbWUtZm9udC1zaXplKTt0ZXh0LWFsaWduOmNlbnRlcn06cm9vdCw6aG9zdHstLXZhbi10YWItdGV4dC1jb2xvcjogdmFyKC0tdmFuLWdyYXktNyk7LS12YW4tdGFiLWFjdGl2ZS10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tdGFiLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLXRhYi1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLXRhYi1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi10YWJzLWRlZmF1bHQtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi10YWJzLWxpbmUtaGVpZ2h0OiA0NHB4Oy0tdmFuLXRhYnMtY2FyZC1oZWlnaHQ6IDMwcHg7LS12YW4tdGFicy1uYXYtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tdGFicy1ib3R0b20tYmFyLXdpZHRoOiA0MHB4Oy0tdmFuLXRhYnMtYm90dG9tLWJhci1oZWlnaHQ6IDNweDstLXZhbi10YWJzLWJvdHRvbS1iYXItY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKX0udmFuLXRhYntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleDoxO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7Y29sb3I6dmFyKC0tdmFuLXRhYi10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXRhYi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi10YWItbGluZS1oZWlnaHQpO2N1cnNvcjpwb2ludGVyfS52YW4tdGFiLS1hY3RpdmV7Y29sb3I6dmFyKC0tdmFuLXRhYi1hY3RpdmUtdGV4dC1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCl9LnZhbi10YWItLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi10YWItZGlzYWJsZWQtdGV4dC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tdGFiLS1ncm93e2ZsZXg6MSAwIGF1dG87cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLXNtKX0udmFuLXRhYi0tc2hyaW5re2ZsZXg6bm9uZTtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpfS52YW4tdGFiLS1jYXJke2NvbG9yOnZhcigtLXZhbi10YWJzLWRlZmF1bHQtY29sb3IpO2JvcmRlci1yaWdodDp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS12YW4tdGFicy1kZWZhdWx0LWNvbG9yKX0udmFuLXRhYi0tY2FyZDpsYXN0LWNoaWxke2JvcmRlci1yaWdodDpub25lfS52YW4tdGFiLS1jYXJkLnZhbi10YWItLWFjdGl2ZXtjb2xvcjp2YXIoLS12YW4td2hpdGUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXRhYnMtZGVmYXVsdC1jb2xvcil9LnZhbi10YWItLWNhcmQudmFuLXRhYi0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLXRhYi1kaXNhYmxlZC10ZXh0LWNvbG9yKX0udmFuLXRhYl9fdGV4dC0tZWxsaXBzaXN7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1saW5lLWNsYW1wOjE7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsfS52YW4tdGFic3twb3NpdGlvbjpyZWxhdGl2ZX0udmFuLXRhYnNfX3dyYXB7b3ZlcmZsb3c6aGlkZGVufS52YW4tdGFic19fd3JhcC0tcGFnZS10b3B7cG9zaXRpb246Zml4ZWR9LnZhbi10YWJzX193cmFwLS1jb250ZW50LWJvdHRvbXt0b3A6YXV0bztib3R0b206MH0udmFuLXRhYnNfX25hdntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YmFja2dyb3VuZDp2YXIoLS12YW4tdGFicy1uYXYtYmFja2dyb3VuZCk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnZhbi10YWJzX19uYXYtLWNvbXBsZXRle292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0udmFuLXRhYnNfX25hdi0tY29tcGxldGU6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udmFuLXRhYnNfX25hdi0tbGluZXtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDoxMDAlO3BhZGRpbmctYm90dG9tOjE1cHh9LnZhbi10YWJzX19uYXYtLWxpbmUudmFuLXRhYnNfX25hdi0tc2hyaW5rLC52YW4tdGFic19fbmF2LS1saW5lLnZhbi10YWJzX19uYXYtLWNvbXBsZXRle3BhZGRpbmctcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmcteHMpO3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy14cyl9LnZhbi10YWJzX19uYXYtLWNhcmR7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDp2YXIoLS12YW4tdGFicy1jYXJkLWhlaWdodCk7bWFyZ2luOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpO2JvcmRlcjp2YXIoLS12YW4tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS12YW4tdGFicy1kZWZhdWx0LWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtc20pfS52YW4tdGFic19fbmF2LS1jYXJkLnZhbi10YWJzX19uYXYtLXNocmlua3tkaXNwbGF5OmlubGluZS1mbGV4fS52YW4tdGFic19fbGluZXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTVweDtsZWZ0OjA7ei1pbmRleDoxO3dpZHRoOnZhcigtLXZhbi10YWJzLWJvdHRvbS1iYXItd2lkdGgpO2hlaWdodDp2YXIoLS12YW4tdGFicy1ib3R0b20tYmFyLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tdGFicy1ib3R0b20tYmFyLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi10YWJzLWJvdHRvbS1iYXItaGVpZ2h0KX0udmFuLXRhYnNfX3RyYWNre3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3dpbGwtY2hhbmdlOmxlZnR9LnZhbi10YWJzX19jb250ZW50LS1hbmltYXRlZHtvdmVyZmxvdzpoaWRkZW59LnZhbi10YWJzLS1saW5lIC52YW4tdGFic19fd3JhcHtoZWlnaHQ6dmFyKC0tdmFuLXRhYnMtbGluZS1oZWlnaHQpfS52YW4tdGFicy0tY2FyZD4udmFuLXRhYnNfX3dyYXB7aGVpZ2h0OnZhcigtLXZhbi10YWJzLWNhcmQtaGVpZ2h0KX0udmFuLXRhYl9fcGFuZWwsLnZhbi10YWJfX3BhbmVsLXdyYXBwZXJ7ZmxleC1zaHJpbms6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJX0udmFuLXRhYl9fcGFuZWwtd3JhcHBlci0taW5hY3RpdmV7aGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZX06cm9vdCw6aG9zdHstLXZhbi1jYXNjYWRlci1oZWFkZXItaGVpZ2h0OiA0OHB4Oy0tdmFuLWNhc2NhZGVyLWhlYWRlci1wYWRkaW5nOiAwIHZhcigtLXZhbi1wYWRkaW5nLW1kKTstLXZhbi1jYXNjYWRlci10aXRsZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWNhc2NhZGVyLXRpdGxlLWxpbmUtaGVpZ2h0OiAyMHB4Oy0tdmFuLWNhc2NhZGVyLWNsb3NlLWljb24tc2l6ZTogMjJweDstLXZhbi1jYXNjYWRlci1jbG9zZS1pY29uLWNvbG9yOiB2YXIoLS12YW4tZ3JheS01KTstLXZhbi1jYXNjYWRlci1zZWxlY3RlZC1pY29uLXNpemU6IDE4cHg7LS12YW4tY2FzY2FkZXItdGFicy1oZWlnaHQ6IDQ4cHg7LS12YW4tY2FzY2FkZXItYWN0aXZlLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tY2FzY2FkZXItb3B0aW9ucy1oZWlnaHQ6IDM4NHB4Oy0tdmFuLWNhc2NhZGVyLW9wdGlvbi1kaXNhYmxlZC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMyk7LS12YW4tY2FzY2FkZXItdGFiLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tY2FzY2FkZXItdW5zZWxlY3RlZC10YWItY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpfS52YW4tY2FzY2FkZXJfX2hlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDp2YXIoLS12YW4tY2FzY2FkZXItaGVhZGVyLWhlaWdodCk7cGFkZGluZzp2YXIoLS12YW4tY2FzY2FkZXItaGVhZGVyLXBhZGRpbmcpfS52YW4tY2FzY2FkZXJfX3RpdGxle2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FzY2FkZXItdGl0bGUtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY2FzY2FkZXItdGl0bGUtbGluZS1oZWlnaHQpfS52YW4tY2FzY2FkZXJfX2Nsb3NlLWljb257Y29sb3I6dmFyKC0tdmFuLWNhc2NhZGVyLWNsb3NlLWljb24tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FzY2FkZXItY2xvc2UtaWNvbi1zaXplKX0udmFuLWNhc2NhZGVyX190YWJzLnZhbi10YWJzLS1saW5lIC52YW4tdGFic19fd3JhcHtoZWlnaHQ6dmFyKC0tdmFuLWNhc2NhZGVyLXRhYnMtaGVpZ2h0KX0udmFuLWNhc2NhZGVyX190YWJ7Y29sb3I6dmFyKC0tdmFuLWNhc2NhZGVyLXRhYi1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCl9LnZhbi1jYXNjYWRlcl9fdGFiLS11bnNlbGVjdGVke2NvbG9yOnZhcigtLXZhbi1jYXNjYWRlci11bnNlbGVjdGVkLXRhYi1jb2xvcik7Zm9udC13ZWlnaHQ6NDAwfS52YW4tY2FzY2FkZXJfX29wdGlvbntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTBweCB2YXIoLS12YW4tcGFkZGluZy1tZCk7Zm9udC1zaXplOnZhcigtLXZhbi1mb250LXNpemUtbWQpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7Y3Vyc29yOnBvaW50ZXJ9LnZhbi1jYXNjYWRlcl9fb3B0aW9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1hY3RpdmUtY29sb3IpfS52YW4tY2FzY2FkZXJfX29wdGlvbi0tc2VsZWN0ZWR7Y29sb3I6dmFyKC0tdmFuLWNhc2NhZGVyLWFjdGl2ZS1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCl9LnZhbi1jYXNjYWRlcl9fb3B0aW9uLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tY2FzY2FkZXItb3B0aW9uLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1jYXNjYWRlcl9fb3B0aW9uLS1kaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udmFuLWNhc2NhZGVyX19zZWxlY3RlZC1pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FzY2FkZXItc2VsZWN0ZWQtaWNvbi1zaXplKX0udmFuLWNhc2NhZGVyX19vcHRpb25ze2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6dmFyKC0tdmFuLWNhc2NhZGVyLW9wdGlvbnMtaGVpZ2h0KTtwYWRkaW5nLXRvcDo2cHg7b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofTpyb290LDpob3N0ey0tdmFuLXBpY2tlci1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1waWNrZXItdG9vbGJhci1oZWlnaHQ6IDQ0cHg7LS12YW4tcGlja2VyLXRpdGxlLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tcGlja2VyLXRpdGxlLWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpOy0tdmFuLXBpY2tlci1hY3Rpb24tcGFkZGluZzogMCB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tcGlja2VyLWFjdGlvbi1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLXBpY2tlci1jb25maXJtLWFjdGlvbi1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXBpY2tlci1jYW5jZWwtYWN0aW9uLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1waWNrZXItb3B0aW9uLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tcGlja2VyLW9wdGlvbi1wYWRkaW5nOiAwIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpOy0tdmFuLXBpY2tlci1vcHRpb24tdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXBpY2tlci1vcHRpb24tZGlzYWJsZWQtb3BhY2l0eTogLjM7LS12YW4tcGlja2VyLWxvYWRpbmctaWNvbi1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXBpY2tlci1sb2FkaW5nLW1hc2stY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjkpOy0tdmFuLXBpY2tlci1tYXNrLWNvbG9yOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIC45KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNCkpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAuOSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjQpKX0udmFuLXRoZW1lLWRhcmt7LS12YW4tcGlja2VyLWxvYWRpbmctbWFzay1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNik7LS12YW4tcGlja2VyLW1hc2stY29sb3I6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMCwgMCwgLjYpLCByZ2JhKDAsIDAsIDAsIC4xKSksIGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsIDAsIDAsIC42KSwgcmdiYSgwLCAwLCAwLCAuMSkpfS52YW4tcGlja2Vye3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6dmFyKC0tdmFuLXBpY2tlci1iYWNrZ3JvdW5kKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLXBpY2tlcl9fdG9vbGJhcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDp2YXIoLS12YW4tcGlja2VyLXRvb2xiYXItaGVpZ2h0KX0udmFuLXBpY2tlcl9fY2FuY2VsLC52YW4tcGlja2VyX19jb25maXJte2hlaWdodDoxMDAlO3BhZGRpbmc6dmFyKC0tdmFuLXBpY2tlci1hY3Rpb24tcGFkZGluZyk7Zm9udC1zaXplOnZhcigtLXZhbi1waWNrZXItYWN0aW9uLWZvbnQtc2l6ZSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZX0udmFuLXBpY2tlcl9fY29uZmlybXtjb2xvcjp2YXIoLS12YW4tcGlja2VyLWNvbmZpcm0tYWN0aW9uLWNvbG9yKX0udmFuLXBpY2tlcl9fY2FuY2Vse2NvbG9yOnZhcigtLXZhbi1waWNrZXItY2FuY2VsLWFjdGlvbi1jb2xvcil9LnZhbi1waWNrZXJfX3RpdGxle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO2NvbG9yOnZhcigtLXZhbi10ZXh0LWNvbG9yKTttYXgtd2lkdGg6NTAlO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcGlja2VyLXRpdGxlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXBpY2tlci10aXRsZS1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKX0udmFuLXBpY2tlcl9fY29sdW1uc3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYn0udmFuLXBpY2tlcl9fbG9hZGluZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6dmFyKC0tdmFuLXBpY2tlci1sb2FkaW5nLWljb24tY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXBpY2tlci1sb2FkaW5nLW1hc2stY29sb3IpfS52YW4tcGlja2VyX19mcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtsZWZ0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTt6LWluZGV4OjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZX0udmFuLXBpY2tlcl9fbWFza3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDoxO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1pbWFnZTp2YXIoLS12YW4tcGlja2VyLW1hc2stY29sb3IpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcCxib3R0b207dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7cG9pbnRlci1ldmVudHM6bm9uZX0udmFuLXBpY2tlci1jb2x1bW57ZmxleDoxO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6dmFyKC0tdmFuLXBpY2tlci1vcHRpb24tZm9udC1zaXplKX0udmFuLXBpY2tlci1jb2x1bW5fX3dyYXBwZXJ7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMywxLC42OCwxKX0udmFuLXBpY2tlci1jb2x1bW5fX2l0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6dmFyKC0tdmFuLXBpY2tlci1vcHRpb24tcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLXBpY2tlci1vcHRpb24tdGV4dC1jb2xvcil9LnZhbi1waWNrZXItY29sdW1uX19pdGVtLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTp2YXIoLS12YW4tcGlja2VyLW9wdGlvbi1kaXNhYmxlZC1vcGFjaXR5KX06cm9vdCw6aG9zdHstLXZhbi1waWNrZXItZ3JvdXAtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi1waWNrZXItZ3JvdXB7YmFja2dyb3VuZDp2YXIoLS12YW4tcGlja2VyLWdyb3VwLWJhY2tncm91bmQpfS52YW4tcGlja2VyLWdyb3VwX190YWJze21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmctYmFzZSl9LnZhbi1waWNrZXItZ3JvdXBfX3RhYi10aXRsZXttYXJnaW4tcmlnaHQ6MTZweH06cm9vdCw6aG9zdHstLXZhbi1jYWxlbmRhci1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1jYWxlbmRhci1wb3B1cC1oZWlnaHQ6IDgwJTstLXZhbi1jYWxlbmRhci1oZWFkZXItc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMTI1LCAxMjYsIDEyOCwgLjE2KTstLXZhbi1jYWxlbmRhci1oZWFkZXItdGl0bGUtaGVpZ2h0OiA0NHB4Oy0tdmFuLWNhbGVuZGFyLWhlYWRlci10aXRsZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpOy0tdmFuLWNhbGVuZGFyLWhlYWRlci1zdWJ0aXRsZS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNhbGVuZGFyLWhlYWRlci1hY3Rpb24td2lkdGg6IDI4cHg7LS12YW4tY2FsZW5kYXItaGVhZGVyLWFjdGlvbi1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWNhbGVuZGFyLWhlYWRlci1hY3Rpb24tZGlzYWJsZWQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWNhbGVuZGFyLXdlZWtkYXlzLWhlaWdodDogMzBweDstLXZhbi1jYWxlbmRhci13ZWVrZGF5cy1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLWNhbGVuZGFyLW1vbnRoLXRpdGxlLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tY2FsZW5kYXItbW9udGgtbWFyay1jb2xvcjogcmdiYSgyNDIsIDI0MywgMjQ1LCAuOCk7LS12YW4tY2FsZW5kYXItbW9udGgtbWFyay1mb250LXNpemU6IDE2MHB4Oy0tdmFuLWNhbGVuZGFyLWRheS1oZWlnaHQ6IDY0cHg7LS12YW4tY2FsZW5kYXItZGF5LWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7LS12YW4tY2FsZW5kYXItZGF5LW1hcmdpbi1ib3R0b206IDRweDstLXZhbi1jYWxlbmRhci1kYXktZGlzYWJsZWQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWNhbGVuZGFyLXJhbmdlLWVkZ2UtY29sb3I6IHZhcigtLXZhbi13aGl0ZSk7LS12YW4tY2FsZW5kYXItcmFuZ2UtZWRnZS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tY2FsZW5kYXItcmFuZ2UtbWlkZGxlLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tY2FsZW5kYXItcmFuZ2UtbWlkZGxlLWJhY2tncm91bmQtb3BhY2l0eTogLjE7LS12YW4tY2FsZW5kYXItc2VsZWN0ZWQtZGF5LXNpemU6IDU0cHg7LS12YW4tY2FsZW5kYXItc2VsZWN0ZWQtZGF5LWNvbG9yOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLWNhbGVuZGFyLXNlbGVjdGVkLWRheS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tY2FsZW5kYXItaW5mby1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUteHMpOy0tdmFuLWNhbGVuZGFyLWluZm8tbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC14cyk7LS12YW4tY2FsZW5kYXItY29uZmlybS1idXR0b24taGVpZ2h0OiAzNnB4Oy0tdmFuLWNhbGVuZGFyLWNvbmZpcm0tYnV0dG9uLW1hcmdpbjogN3B4IDB9LnZhbi10aGVtZS1kYXJrey0tdmFuLWNhbGVuZGFyLW1vbnRoLW1hcmstY29sb3I6IHJnYmEoMTAwLCAxMDEsIDEwMiwgLjIpOy0tdmFuLWNhbGVuZGFyLWRheS1kaXNhYmxlZC1jb2xvcjogdmFyKC0tdmFuLWdyYXktNyl9LnZhbi1jYWxlbmRhcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dmFyKC0tdmFuLWNhbGVuZGFyLWJhY2tncm91bmQpfS52YW4tY2FsZW5kYXJfX3BvcHVwLnZhbi1wb3B1cC0tdG9wLC52YW4tY2FsZW5kYXJfX3BvcHVwLnZhbi1wb3B1cC0tYm90dG9te2hlaWdodDp2YXIoLS12YW4tY2FsZW5kYXItcG9wdXAtaGVpZ2h0KX0udmFuLWNhbGVuZGFyX19wb3B1cC52YW4tcG9wdXAtLWxlZnQsLnZhbi1jYWxlbmRhcl9fcG9wdXAudmFuLXBvcHVwLS1yaWdodHtoZWlnaHQ6MTAwJX0udmFuLWNhbGVuZGFyX19wb3B1cCAudmFuLXBvcHVwX19jbG9zZS1pY29ue3RvcDoxMXB4fS52YW4tY2FsZW5kYXJfX2hlYWRlcntmbGV4LXNocmluazowO2JveC1zaGFkb3c6dmFyKC0tdmFuLWNhbGVuZGFyLWhlYWRlci1zaGFkb3cpfS52YW4tY2FsZW5kYXJfX21vbnRoLXRpdGxlLC52YW4tY2FsZW5kYXJfX2hlYWRlci10aXRsZSwudmFuLWNhbGVuZGFyX19oZWFkZXItc3VidGl0bGV7Y29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3IpO2hlaWdodDp2YXIoLS12YW4tY2FsZW5kYXItaGVhZGVyLXRpdGxlLWhlaWdodCk7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNhbGVuZGFyLWhlYWRlci10aXRsZS1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyfS52YW4tY2FsZW5kYXJfX2hlYWRlci10aXRsZXtmb250LXNpemU6dmFyKC0tdmFuLWNhbGVuZGFyLWhlYWRlci10aXRsZS1mb250LXNpemUpfS52YW4tY2FsZW5kYXJfX2hlYWRlci1zdWJ0aXRsZXtmb250LXNpemU6dmFyKC0tdmFuLWNhbGVuZGFyLWhlYWRlci1zdWJ0aXRsZS1mb250LXNpemUpfS52YW4tY2FsZW5kYXJfX2hlYWRlci1zdWJ0aXRsZS0td2l0aC1zd2l0Y2h7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSl9LnZhbi1jYWxlbmRhcl9faGVhZGVyLXN1YnRpdGxlLXRleHR7ZmxleDoxfS52YW4tY2FsZW5kYXJfX2hlYWRlci1hY3Rpb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDp2YXIoLS12YW4tY2FsZW5kYXItaGVhZGVyLWFjdGlvbi13aWR0aCk7aGVpZ2h0OjEwMCU7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLWhlYWRlci1hY3Rpb24tY29sb3IpO2N1cnNvcjpwb2ludGVyfS52YW4tY2FsZW5kYXJfX2hlYWRlci1hY3Rpb24tLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi1jYWxlbmRhci1oZWFkZXItYWN0aW9uLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1jYWxlbmRhcl9fbW9udGgtdGl0bGV7Zm9udC1zaXplOnZhcigtLXZhbi1jYWxlbmRhci1tb250aC10aXRsZS1mb250LXNpemUpfS52YW4tY2FsZW5kYXJfX3dlZWtkYXlze2Rpc3BsYXk6ZmxleH0udmFuLWNhbGVuZGFyX193ZWVrZGF5e2ZsZXg6MTtmb250LXNpemU6dmFyKC0tdmFuLWNhbGVuZGFyLXdlZWtkYXlzLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNhbGVuZGFyLXdlZWtkYXlzLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXJ9LnZhbi1jYWxlbmRhcl9fYm9keXtmbGV4OjE7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0udmFuLWNhbGVuZGFyX19kYXlze3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLWNhbGVuZGFyX19tb250aC1tYXJre3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7ei1pbmRleDowO2NvbG9yOnZhcigtLXZhbi1jYWxlbmRhci1tb250aC1tYXJrLWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWNhbGVuZGFyLW1vbnRoLW1hcmstZm9udC1zaXplKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZX0udmFuLWNhbGVuZGFyX19kYXksLnZhbi1jYWxlbmRhcl9fc2VsZWN0ZWQtZGF5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLWNhbGVuZGFyX19kYXl7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTQuMjg1JTtoZWlnaHQ6dmFyKC0tdmFuLWNhbGVuZGFyLWRheS1oZWlnaHQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY2FsZW5kYXItZGF5LWZvbnQtc2l6ZSk7bWFyZ2luLWJvdHRvbTp2YXIoLS12YW4tY2FsZW5kYXItZGF5LW1hcmdpbi1ib3R0b20pO2N1cnNvcjpwb2ludGVyfS52YW4tY2FsZW5kYXJfX2RheS0tZW5kLC52YW4tY2FsZW5kYXJfX2RheS0tc3RhcnQsLnZhbi1jYWxlbmRhcl9fZGF5LS1zdGFydC1lbmQsLnZhbi1jYWxlbmRhcl9fZGF5LS1tdWx0aXBsZS1taWRkbGUsLnZhbi1jYWxlbmRhcl9fZGF5LS1tdWx0aXBsZS1zZWxlY3RlZHtjb2xvcjp2YXIoLS12YW4tY2FsZW5kYXItcmFuZ2UtZWRnZS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4tY2FsZW5kYXItcmFuZ2UtZWRnZS1iYWNrZ3JvdW5kKX0udmFuLWNhbGVuZGFyX19kYXktLXN0YXJ0e2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tZCkgMCAwIHZhcigtLXZhbi1yYWRpdXMtbWQpfS52YW4tY2FsZW5kYXJfX2RheS0tZW5ke2JvcmRlci1yYWRpdXM6MCB2YXIoLS12YW4tcmFkaXVzLW1kKSB2YXIoLS12YW4tcmFkaXVzLW1kKSAwfS52YW4tY2FsZW5kYXJfX2RheS0tc3RhcnQtZW5kLC52YW4tY2FsZW5kYXJfX2RheS0tbXVsdGlwbGUtc2VsZWN0ZWR7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1kKX0udmFuLWNhbGVuZGFyX19kYXktLW1pZGRsZXtjb2xvcjp2YXIoLS12YW4tY2FsZW5kYXItcmFuZ2UtbWlkZGxlLWNvbG9yKX0udmFuLWNhbGVuZGFyX19kYXktLW1pZGRsZTphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO29wYWNpdHk6dmFyKC0tdmFuLWNhbGVuZGFyLXJhbmdlLW1pZGRsZS1iYWNrZ3JvdW5kLW9wYWNpdHkpO2NvbnRlbnQ6IiJ9LnZhbi1jYWxlbmRhcl9fZGF5LS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tY2FsZW5kYXItZGF5LWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6ZGVmYXVsdH0udmFuLWNhbGVuZGFyX190b3AtaW5mbywudmFuLWNhbGVuZGFyX19ib3R0b20taW5mb3twb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6MDtmb250LXNpemU6dmFyKC0tdmFuLWNhbGVuZGFyLWluZm8tZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY2FsZW5kYXItaW5mby1saW5lLWhlaWdodCl9QG1lZGlhIChtYXgtd2lkdGg6IDM1MHB4KXsudmFuLWNhbGVuZGFyX190b3AtaW5mbywudmFuLWNhbGVuZGFyX19ib3R0b20taW5mb3tmb250LXNpemU6OXB4fX0udmFuLWNhbGVuZGFyX190b3AtaW5mb3t0b3A6NnB4fS52YW4tY2FsZW5kYXJfX2JvdHRvbS1pbmZve2JvdHRvbTo2cHh9LnZhbi1jYWxlbmRhcl9fc2VsZWN0ZWQtZGF5e3dpZHRoOnZhcigtLXZhbi1jYWxlbmRhci1zZWxlY3RlZC1kYXktc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1jYWxlbmRhci1zZWxlY3RlZC1kYXktc2l6ZSk7Y29sb3I6dmFyKC0tdmFuLWNhbGVuZGFyLXNlbGVjdGVkLWRheS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4tY2FsZW5kYXItc2VsZWN0ZWQtZGF5LWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tZCl9LnZhbi1jYWxlbmRhcl9fZm9vdGVye2ZsZXgtc2hyaW5rOjA7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLWNhbGVuZGFyX19jb25maXJte2hlaWdodDp2YXIoLS12YW4tY2FsZW5kYXItY29uZmlybS1idXR0b24taGVpZ2h0KTttYXJnaW46dmFyKC0tdmFuLWNhbGVuZGFyLWNvbmZpcm0tYnV0dG9uLW1hcmdpbil9OnJvb3QsOmhvc3R7LS12YW4tYWRkcmVzcy1lZGl0LXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXNtKTstLXZhbi1hZGRyZXNzLWVkaXQtYnV0dG9ucy1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy14bCkgdmFyKC0tdmFuLXBhZGRpbmctYmFzZSk7LS12YW4tYWRkcmVzcy1lZGl0LWJ1dHRvbi1tYXJnaW4tYm90dG9tOiB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tYWRkcmVzcy1lZGl0LWJ1dHRvbi1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbGcpfS52YW4tYWRkcmVzcy1lZGl0e3BhZGRpbmc6dmFyKC0tdmFuLWFkZHJlc3MtZWRpdC1wYWRkaW5nKX0udmFuLWFkZHJlc3MtZWRpdF9fZmllbGRze292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLWFkZHJlc3MtZWRpdF9fZmllbGRzIC52YW4tZmllbGRfX2xhYmVse3dpZHRoOjQuMWVtfS52YW4tYWRkcmVzcy1lZGl0X19kZWZhdWx0e21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmctc20pO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLWFkZHJlc3MtZWRpdF9fYnV0dG9uc3twYWRkaW5nOnZhcigtLXZhbi1hZGRyZXNzLWVkaXQtYnV0dG9ucy1wYWRkaW5nKX0udmFuLWFkZHJlc3MtZWRpdF9fYnV0dG9ue21hcmdpbi1ib3R0b206dmFyKC0tdmFuLWFkZHJlc3MtZWRpdC1idXR0b24tbWFyZ2luLWJvdHRvbSk7Zm9udC1zaXplOnZhcigtLXZhbi1hZGRyZXNzLWVkaXQtYnV0dG9uLWZvbnQtc2l6ZSl9LnZhbi1hZGRyZXNzLWVkaXQtZGV0YWlsX19zZWFyY2gtaXRlbXtiYWNrZ3JvdW5kOnZhcigtLXZhbi1ncmF5LTIpfS52YW4tcmFkaW8tZ3JvdXAtLWhvcml6b250YWwsLnZhbi1jaGVja2JveC1ncm91cC0taG9yaXpvbnRhbHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9OnJvb3QsOmhvc3R7LS12YW4tY2hlY2tib3gtc2l6ZTogMjBweDstLXZhbi1jaGVja2JveC1ib3JkZXItY29sb3I6IHZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLWNoZWNrYm94LWR1cmF0aW9uOiB2YXIoLS12YW4tZHVyYXRpb24tZmFzdCk7LS12YW4tY2hlY2tib3gtbGFiZWwtbWFyZ2luOiB2YXIoLS12YW4tcGFkZGluZy14cyk7LS12YW4tY2hlY2tib3gtbGFiZWwtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1jaGVja2JveC1jaGVja2VkLWljb24tY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1jaGVja2JveC1kaXNhYmxlZC1pY29uLWNvbG9yOiB2YXIoLS12YW4tZ3JheS01KTstLXZhbi1jaGVja2JveC1kaXNhYmxlZC1sYWJlbC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMyk7LS12YW4tY2hlY2tib3gtZGlzYWJsZWQtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJvcmRlci1jb2xvcil9LnZhbi1jaGVja2JveHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLWNoZWNrYm94LS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1jaGVja2JveC0tbGFiZWwtZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LnZhbi1jaGVja2JveC0taG9yaXpvbnRhbHttYXJnaW4tcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctc20pfS52YW4tY2hlY2tib3hfX2ljb257ZmxleDpub25lO2hlaWdodDoxZW07Zm9udC1zaXplOnZhcigtLXZhbi1jaGVja2JveC1zaXplKTtsaW5lLWhlaWdodDoxZW07Y3Vyc29yOnBvaW50ZXJ9LnZhbi1jaGVja2JveF9faWNvbiAudmFuLWljb257ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MS4yNWVtO2hlaWdodDoxLjI1ZW07Y29sb3I6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOi44ZW07bGluZS1oZWlnaHQ6MS4yNTt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXZhbi1jaGVja2JveC1ib3JkZXItY29sb3IpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tdmFuLWNoZWNrYm94LWR1cmF0aW9uKTt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yfS52YW4tY2hlY2tib3hfX2ljb24tLXJvdW5kIC52YW4taWNvbntib3JkZXItcmFkaXVzOjEwMCV9LnZhbi1jaGVja2JveF9faWNvbi0taW5kZXRlcm1pbmF0ZSAudmFuLWljb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7Ym9yZGVyLWNvbG9yOnZhcigtLXZhbi1jaGVja2JveC1jaGVja2VkLWljb24tY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWNoZWNrYm94LWNoZWNrZWQtaWNvbi1jb2xvcil9LnZhbi1jaGVja2JveF9faWNvbi0tY2hlY2tlZCAudmFuLWljb257Y29sb3I6dmFyKC0tdmFuLXdoaXRlKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1jaGVja2JveC1jaGVja2VkLWljb24tY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tY2hlY2tib3gtY2hlY2tlZC1pY29uLWNvbG9yKX0udmFuLWNoZWNrYm94X19pY29uLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1jaGVja2JveF9faWNvbi0tZGlzYWJsZWQgLnZhbi1pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWNoZWNrYm94LWRpc2FibGVkLWJhY2tncm91bmQpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tY2hlY2tib3gtZGlzYWJsZWQtaWNvbi1jb2xvcil9LnZhbi1jaGVja2JveF9faWNvbi0tZGlzYWJsZWQudmFuLWNoZWNrYm94X19pY29uLS1jaGVja2VkIC52YW4taWNvbntjb2xvcjp2YXIoLS12YW4tY2hlY2tib3gtZGlzYWJsZWQtaWNvbi1jb2xvcil9LnZhbi1jaGVja2JveF9fbGFiZWx7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLWNoZWNrYm94LWxhYmVsLW1hcmdpbik7Y29sb3I6dmFyKC0tdmFuLWNoZWNrYm94LWxhYmVsLWNvbG9yKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY2hlY2tib3gtc2l6ZSl9LnZhbi1jaGVja2JveF9fbGFiZWwtLWxlZnR7bWFyZ2luOjAgdmFyKC0tdmFuLWNoZWNrYm94LWxhYmVsLW1hcmdpbikgMCAwfS52YW4tY2hlY2tib3hfX2xhYmVsLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tY2hlY2tib3gtZGlzYWJsZWQtbGFiZWwtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWNvdXBvbi1tYXJnaW46IDAgdmFyKC0tdmFuLXBhZGRpbmctc20pIHZhcigtLXZhbi1wYWRkaW5nLXNtKTstLXZhbi1jb3Vwb24tY29udGVudC1oZWlnaHQ6IDg0cHg7LS12YW4tY291cG9uLWNvbnRlbnQtcGFkZGluZzogMTRweCAwOy0tdmFuLWNvdXBvbi1jb250ZW50LXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1jb3Vwb24tYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tY291cG9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYWN0aXZlLWNvbG9yKTstLXZhbi1jb3Vwb24tcmFkaXVzOiB2YXIoLS12YW4tcmFkaXVzLWxnKTstLXZhbi1jb3Vwb24tc2hhZG93OiAwIDAgNHB4IHJnYmEoMCwgMCwgMCwgLjEpOy0tdmFuLWNvdXBvbi1oZWFkLXdpZHRoOiA5NnB4Oy0tdmFuLWNvdXBvbi1hbW91bnQtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1jb3Vwb24tYW1vdW50LWZvbnQtc2l6ZTogMzBweDstLXZhbi1jb3Vwb24tY3VycmVuY3ktZm9udC1zaXplOiA0MCU7LS12YW4tY291cG9uLW5hbWUtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jb3Vwb24tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tY291cG9uLWRlc2NyaXB0aW9uLXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXhzKSB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY291cG9uLWRlc2NyaXB0aW9uLWJvcmRlci1jb2xvcjogdmFyKC0tdmFuLWJvcmRlci1jb2xvcik7LS12YW4tY291cG9uLWNoZWNrYm94LWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcil9LnZhbi1jb3Vwb257bWFyZ2luOnZhcigtLXZhbi1jb3Vwb24tbWFyZ2luKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS12YW4tY291cG9uLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLWNvdXBvbi1yYWRpdXMpO2JveC1zaGFkb3c6dmFyKC0tdmFuLWNvdXBvbi1zaGFkb3cpfS52YW4tY291cG9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1jb3Vwb24tYWN0aXZlLWJhY2tncm91bmQpfS52YW4tY291cG9uX19jb250ZW50e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O21pbi1oZWlnaHQ6dmFyKC0tdmFuLWNvdXBvbi1jb250ZW50LWhlaWdodCk7cGFkZGluZzp2YXIoLS12YW4tY291cG9uLWNvbnRlbnQtcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLWNvdXBvbi1jb250ZW50LXRleHQtY29sb3IpfS52YW4tY291cG9uX19oZWFke3Bvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDp2YXIoLS12YW4tY291cG9uLWhlYWQtd2lkdGgpO3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy14cyk7Y29sb3I6dmFyKC0tdmFuLWNvdXBvbi1hbW91bnQtY29sb3IpO3RleHQtYWxpZ246Y2VudGVyfS52YW4tY291cG9uX19hbW91bnQsLnZhbi1jb3Vwb25fX2NvbmRpdGlvbiwudmFuLWNvdXBvbl9fbmFtZSwudmFuLWNvdXBvbl9fdmFsaWR7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS52YW4tY291cG9uX19hbW91bnR7bWFyZ2luLWJvdHRvbTo2cHg7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWZvbnQtYm9sZCk7Zm9udC1zaXplOnZhcigtLXZhbi1jb3Vwb24tYW1vdW50LWZvbnQtc2l6ZSk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS52YW4tY291cG9uX19hbW91bnQgc3Bhbntmb250LXNpemU6dmFyKC0tdmFuLWNvdXBvbi1jdXJyZW5jeS1mb250LXNpemUpfS52YW4tY291cG9uX19hbW91bnQgc3Bhbjpub3QoOmVtcHR5KXttYXJnaW4tbGVmdDoycHh9LnZhbi1jb3Vwb25fX2NvbmRpdGlvbntmb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSk7bGluZS1oZWlnaHQ6MTZweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0udmFuLWNvdXBvbl9fYm9keXtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjF9LnZhbi1jb3Vwb25fX25hbWV7bWFyZ2luLWJvdHRvbToxMHB4O2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY291cG9uLW5hbWUtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpfS52YW4tY291cG9uX192YWxpZHtmb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1zbSl9LnZhbi1jb3Vwb25fX2Nvcm5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7Ym90dG9tOjB9LnZhbi1jb3Vwb25fX2Nvcm5lciAudmFuLWNoZWNrYm94X19pY29uLS1jaGVja2VkIC52YW4taWNvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1jb3Vwb24tY2hlY2tib3gtY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tY291cG9uLWNoZWNrYm94LWNvbG9yKX0udmFuLWNvdXBvbl9fZGVzY3JpcHRpb257cGFkZGluZzp2YXIoLS12YW4tY291cG9uLWRlc2NyaXB0aW9uLXBhZGRpbmcpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tZm9udC1zaXplLXNtKTtib3JkZXItdG9wOjFweCBkYXNoZWQgdmFyKC0tdmFuLWNvdXBvbi1kZXNjcmlwdGlvbi1ib3JkZXItY29sb3IpfS52YW4tY291cG9uLS1kaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tY291cG9uLWJhY2tncm91bmQpfS52YW4tY291cG9uLS1kaXNhYmxlZCAudmFuLWNvdXBvbi1pdGVtX19jb250ZW50e2hlaWdodDpjYWxjKHZhcigtLXZhbi1jb3Vwb24tY29udGVudC1oZWlnaHQpIC0gMTBweCl9LnZhbi1jb3Vwb24tLWRpc2FibGVkIC52YW4tY291cG9uX19oZWFke2NvbG9yOmluaGVyaXR9OnJvb3QsOmhvc3R7LS12YW4tcmFkaW8tc2l6ZTogMjBweDstLXZhbi1yYWRpby1kb3Qtc2l6ZTogOHB4Oy0tdmFuLXJhZGlvLWJvcmRlci1jb2xvcjogdmFyKC0tdmFuLWdyYXktNSk7LS12YW4tcmFkaW8tZHVyYXRpb246IHZhcigtLXZhbi1kdXJhdGlvbi1mYXN0KTstLXZhbi1yYWRpby1sYWJlbC1tYXJnaW46IHZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi1yYWRpby1sYWJlbC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3I6IHZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLXJhZGlvLWRpc2FibGVkLWxhYmVsLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1yYWRpby1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYm9yZGVyLWNvbG9yKX0udmFuLXJhZGlve2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52YW4tcmFkaW8tLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLXJhZGlvLS1sYWJlbC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0udmFuLXJhZGlvLS1ob3Jpem9udGFse21hcmdpbi1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1zbSl9LnZhbi1yYWRpb19faWNvbntmbGV4Om5vbmU7aGVpZ2h0OjFlbTtmb250LXNpemU6dmFyKC0tdmFuLXJhZGlvLXNpemUpO2xpbmUtaGVpZ2h0OjFlbTtjdXJzb3I6cG9pbnRlcn0udmFuLXJhZGlvX19pY29uIC52YW4taWNvbntkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxLjI1ZW07aGVpZ2h0OjEuMjVlbTtjb2xvcjp0cmFuc3BhcmVudDtmb250LXNpemU6LjhlbTtsaW5lLWhlaWdodDoxLjI1O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlcjoxcHggc29saWQgdmFyKC0tdmFuLXJhZGlvLWJvcmRlci1jb2xvcik7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS12YW4tcmFkaW8tZHVyYXRpb24pO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYm9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LnZhbi1yYWRpb19faWNvbi0tcm91bmQgLnZhbi1pY29ue2JvcmRlci1yYWRpdXM6MTAwJX0udmFuLXJhZGlvX19pY29uLS1kb3R7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDp2YXIoLS12YW4tcmFkaW8tc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1yYWRpby1zaXplKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXZhbi1yYWRpby1ib3JkZXItY29sb3IpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tdmFuLXJhZGlvLWR1cmF0aW9uKTt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcn0udmFuLXJhZGlvX19pY29uLS1kb3RfX2ljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7Ym9yZGVyLXJhZGl1czoxMDAlO2hlaWdodDpjYWxjKDEwMCUgLSB2YXIoLS12YW4tcmFkaW8tZG90LXNpemUpKTt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS12YW4tcmFkaW8tZG90LXNpemUpKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXZhbi1yYWRpby1kdXJhdGlvbik7dHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kLWNvbG9yfS52YW4tcmFkaW9fX2ljb24tLWNoZWNrZWQgLnZhbi1pY29ue2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tdmFuLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19faWNvbi0tY2hlY2tlZC52YW4tcmFkaW9fX2ljb24tLWRvdHtib3JkZXItY29sb3I6dmFyKC0tdmFuLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19faWNvbi0tY2hlY2tlZC52YW4tcmFkaW9fX2ljb24tLWRvdCAudmFuLXJhZGlvX19pY29uLS1kb3RfX2ljb257YmFja2dyb3VuZDp2YXIoLS12YW4tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKX0udmFuLXJhZGlvX19pY29uLS1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1yYWRpb19faWNvbi0tZGlzYWJsZWQgLnZhbi1pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19faWNvbi0tZGlzYWJsZWQudmFuLXJhZGlvX19pY29uLS1jaGVja2VkIC52YW4taWNvbntjb2xvcjp2YXIoLS12YW4tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcil9LnZhbi1yYWRpb19fbGFiZWx7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLXJhZGlvLWxhYmVsLW1hcmdpbik7Y29sb3I6dmFyKC0tdmFuLXJhZGlvLWxhYmVsLWNvbG9yKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tcmFkaW8tc2l6ZSl9LnZhbi1yYWRpb19fbGFiZWwtLWxlZnR7bWFyZ2luOjAgdmFyKC0tdmFuLXJhZGlvLWxhYmVsLW1hcmdpbikgMCAwfS52YW4tcmFkaW9fX2xhYmVsLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tcmFkaW8tZGlzYWJsZWQtbGFiZWwtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLWNvbnRhY3QtbGlzdC1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy1zbSkgdmFyKC0tdmFuLXBhZGRpbmctc20pIDgwcHg7LS12YW4tY29udGFjdC1saXN0LWVkaXQtaWNvbi1zaXplOiAxNnB4Oy0tdmFuLWNvbnRhY3QtbGlzdC1hZGQtYnV0dG9uLXotaW5kZXg6IDk5OTstLXZhbi1jb250YWN0LWxpc3QtcmFkaW8tY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1jb250YWN0LWxpc3QtaXRlbS1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy1tZCl9LnZhbi1jb250YWN0LWxpc3R7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO3BhZGRpbmc6dmFyKC0tdmFuLWNvbnRhY3QtbGlzdC1wYWRkaW5nKX0udmFuLWNvbnRhY3QtbGlzdF9faXRlbXtwYWRkaW5nOnZhcigtLXZhbi1jb250YWN0LWxpc3QtaXRlbS1wYWRkaW5nKX0udmFuLWNvbnRhY3QtbGlzdF9faXRlbS10aXRsZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmcteGwpO3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy14cyl9LnZhbi1jb250YWN0LWxpc3RfX2l0ZW0tdGFne2ZsZXg6bm9uZTttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy14cyk7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO2xpbmUtaGVpZ2h0OjEuNGVtfS52YW4tY29udGFjdC1saXN0X19ncm91cHtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7b3ZlcmZsb3cteTpzY3JvbGw7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLWxnKX0udmFuLWNvbnRhY3QtbGlzdF9fZWRpdHtmb250LXNpemU6dmFyKC0tdmFuLWNvbnRhY3QtbGlzdC1lZGl0LWljb24tc2l6ZSl9LnZhbi1jb250YWN0LWxpc3RfX3JhZGlvIC52YW4tcmFkaW9fX2ljb24tLWNoZWNrZWQgLnZhbi1pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWNvbnRhY3QtbGlzdC1yYWRpby1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLXZhbi1jb250YWN0LWxpc3QtcmFkaW8tY29sb3IpfS52YW4tY29udGFjdC1saXN0X19ib3R0b217cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDp2YXIoLS12YW4tY29udGFjdC1saXN0LWFkZC1idXR0b24tei1pbmRleCk7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpfS52YW4tY29udGFjdC1saXN0X19hZGR7aGVpZ2h0OjQwcHg7bWFyZ2luOjVweCAwfTpyb290LDpob3N0ey0tdmFuLWFkZHJlc3MtbGlzdC1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy1zbSkgdmFyKC0tdmFuLXBhZGRpbmctc20pIDgwcHg7LS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWFkZHJlc3MtbGlzdC1kaXNhYmxlZC10ZXh0LXBhZGRpbmc6IGNhbGModmFyKC0tdmFuLXBhZGRpbmctYmFzZSkgKiA1KSAwOy0tdmFuLWFkZHJlc3MtbGlzdC1kaXNhYmxlZC10ZXh0LWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC1tZCk7LS12YW4tYWRkcmVzcy1saXN0LWFkZC1idXR0b24tei1pbmRleDogOTk5Oy0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLXBhZGRpbmc6IHZhcigtLXZhbi1wYWRkaW5nLXNtKTstLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tYWRkcmVzcy1saXN0LWl0ZW0tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMyk7LS12YW4tYWRkcmVzcy1saXN0LWl0ZW0tZm9udC1zaXplOiAxM3B4Oy0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtc20pOy0tdmFuLWFkZHJlc3MtbGlzdC1yYWRpby1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLWFkZHJlc3MtbGlzdC1lZGl0LWljb24tc2l6ZTogMjBweH0udmFuLWFkZHJlc3MtbGlzdHtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7cGFkZGluZzp2YXIoLS12YW4tYWRkcmVzcy1saXN0LXBhZGRpbmcpfS52YW4tYWRkcmVzcy1saXN0X19ib3R0b217cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjA7bGVmdDowO3otaW5kZXg6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1hZGQtYnV0dG9uLXotaW5kZXgpO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy1tZCk7cGFkZGluZy1yaWdodDp2YXIoLS12YW4tcGFkZGluZy1tZCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYmFja2dyb3VuZC0yKX0udmFuLWFkZHJlc3MtbGlzdF9fYWRke2hlaWdodDo0MHB4O21hcmdpbjo1cHggMH0udmFuLWFkZHJlc3MtbGlzdF9fZGlzYWJsZWQtdGV4dHtwYWRkaW5nOnZhcigtLXZhbi1hZGRyZXNzLWxpc3QtZGlzYWJsZWQtdGV4dC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tYWRkcmVzcy1saXN0LWRpc2FibGVkLXRleHQtbGluZS1oZWlnaHQpfS52YW4tYWRkcmVzcy1pdGVte3BhZGRpbmc6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLXBhZGRpbmcpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLWxnKX0udmFuLWFkZHJlc3MtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206dmFyKC0tdmFuLXBhZGRpbmctc20pfS52YW4tYWRkcmVzcy1pdGVtX190aXRsZXtwYWRkaW5nLXJpZ2h0OjQ0cHh9LnZhbi1hZGRyZXNzLWl0ZW1fX25hbWV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOnZhcigtLXZhbi1wYWRkaW5nLXhzKTtmb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWxpbmUtaGVpZ2h0LWxnKX0udmFuLWFkZHJlc3MtaXRlbV9fdGFne2ZsZXg6bm9uZTttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy14cyk7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO2xpbmUtaGVpZ2h0OjEuNGVtfS52YW4tYWRkcmVzcy1pdGVtX19hZGRyZXNze2NvbG9yOnZhcigtLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1pdGVtLWxpbmUtaGVpZ2h0KX0udmFuLWFkZHJlc3MtaXRlbS0tZGlzYWJsZWQgLnZhbi1hZGRyZXNzLWl0ZW1fX25hbWUsLnZhbi1hZGRyZXNzLWl0ZW0tLWRpc2FibGVkIC52YW4tYWRkcmVzcy1pdGVtX19hZGRyZXNze2NvbG9yOnZhcigtLXZhbi1hZGRyZXNzLWxpc3QtaXRlbS1kaXNhYmxlZC10ZXh0LWNvbG9yKX0udmFuLWFkZHJlc3MtaXRlbV9fZWRpdHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtjb2xvcjp2YXIoLS12YW4tZ3JheS02KTtmb250LXNpemU6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1lZGl0LWljb24tc2l6ZSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnZhbi1hZGRyZXNzLWl0ZW0gLnZhbi1jZWxse3BhZGRpbmc6MH0udmFuLWFkZHJlc3MtaXRlbSAudmFuLXJhZGlvX19sYWJlbHttYXJnaW4tbGVmdDp2YXIoLS12YW4tcGFkZGluZy1zbSl9LnZhbi1hZGRyZXNzLWl0ZW0gLnZhbi1yYWRpb19faWNvbi0tY2hlY2tlZCAudmFuLWljb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYWRkcmVzcy1saXN0LXJhZGlvLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tdmFuLWFkZHJlc3MtbGlzdC1yYWRpby1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tYmFycmFnZS1mb250LXNpemU6IDE2cHg7LS12YW4tYmFycmFnZS1zcGFjZTogMTBweDstLXZhbi1iYXJyYWdlLWZvbnQ6IGluaGVyaXQ7LS12YW4tYmFycmFnZS1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKX0udmFuLWJhcnJhZ2V7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS52YW4tYmFycmFnZV9faXRlbXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3otaW5kZXg6OTk7cGFkZGluZy1ib3R0b206dmFyKC0tdmFuLWJhcnJhZ2Utc3BhY2UpO29wYWNpdHk6Ljc1O2xpbmUtaGVpZ2h0OjE7Zm9udC1zaXplOnZhcigtLXZhbi1iYXJyYWdlLWZvbnQtc2l6ZSk7Zm9udC1mYW1pbHk6dmFyKC0tdmFuLWJhcnJhZ2UtZm9udCk7Zm9udC13ZWlnaHQ6NzAwO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjp2YXIoLS12YW4tYmFycmFnZS1jb2xvcik7dGV4dC1zaGFkb3c6MXB4IDAgMXB4ICMwMDAwMDAsMCAxcHggMXB4ICMwMDAwMDAsMCAtMXB4IDFweCAjMDAwMDAwLC0xcHggMCAxcHggIzAwMDAwMDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMTAlKX1Aa2V5ZnJhbWVzIHZhbi1iYXJyYWdlezAle3RyYW5zZm9ybTp0cmFuc2xhdGUoMTEwJSl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS1tb3ZlLWRpc3RhbmNlKSl9fTpyb290LDpob3N0ey0tdmFuLWNlbGwtZ3JvdXAtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tY2VsbC1ncm91cC10aXRsZS1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tY2VsbC1ncm91cC10aXRsZS1wYWRkaW5nOiB2YXIoLS12YW4tcGFkZGluZy1tZCkgdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWNlbGwtZ3JvdXAtdGl0bGUtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jZWxsLWdyb3VwLXRpdGxlLWxpbmUtaGVpZ2h0OiAxNnB4Oy0tdmFuLWNlbGwtZ3JvdXAtaW5zZXQtcGFkZGluZzogMCB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tY2VsbC1ncm91cC1pbnNldC1yYWRpdXM6IHZhcigtLXZhbi1yYWRpdXMtbGcpOy0tdmFuLWNlbGwtZ3JvdXAtaW5zZXQtdGl0bGUtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctbWQpIHZhcigtLXZhbi1wYWRkaW5nLW1kKX0udmFuLWNlbGwtZ3JvdXB7YmFja2dyb3VuZDp2YXIoLS12YW4tY2VsbC1ncm91cC1iYWNrZ3JvdW5kKX0udmFuLWNlbGwtZ3JvdXAtLWluc2V0e21hcmdpbjp2YXIoLS12YW4tY2VsbC1ncm91cC1pbnNldC1wYWRkaW5nKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1jZWxsLWdyb3VwLWluc2V0LXJhZGl1cyk7b3ZlcmZsb3c6aGlkZGVufS52YW4tY2VsbC1ncm91cF9fdGl0bGV7cGFkZGluZzp2YXIoLS12YW4tY2VsbC1ncm91cC10aXRsZS1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tY2VsbC1ncm91cC10aXRsZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1jZWxsLWdyb3VwLXRpdGxlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNlbGwtZ3JvdXAtdGl0bGUtbGluZS1oZWlnaHQpfS52YW4tY2VsbC1ncm91cF9fdGl0bGUtLWluc2V0e3BhZGRpbmc6dmFyKC0tdmFuLWNlbGwtZ3JvdXAtaW5zZXQtdGl0bGUtcGFkZGluZyl9OnJvb3QsOmhvc3R7LS12YW4tY2lyY2xlLXNpemU6IDEwMHB4Oy0tdmFuLWNpcmNsZS1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpOy0tdmFuLWNpcmNsZS1sYXllci1jb2xvcjogdmFyKC0tdmFuLXdoaXRlKTstLXZhbi1jaXJjbGUtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWNpcmNsZS10ZXh0LWZvbnQtd2VpZ2h0OiB2YXIoLS12YW4tZm9udC1ib2xkKTstLXZhbi1jaXJjbGUtdGV4dC1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNpcmNsZS10ZXh0LWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpfS52YW4tY2lyY2xle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOnZhcigtLXZhbi1jaXJjbGUtc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1jaXJjbGUtc2l6ZSk7dGV4dC1hbGlnbjpjZW50ZXJ9LnZhbi1jaXJjbGUgc3Zne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS52YW4tY2lyY2xlX19sYXllcntzdHJva2U6dmFyKC0tdmFuLWNpcmNsZS1sYXllci1jb2xvcil9LnZhbi1jaXJjbGVfX2hvdmVye2ZpbGw6bm9uZTtzdHJva2U6dmFyKC0tdmFuLWNpcmNsZS1jb2xvcik7c3Ryb2tlLWxpbmVjYXA6cm91bmR9LnZhbi1jaXJjbGVfX3RleHR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjA7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO2NvbG9yOnZhcigtLXZhbi1jaXJjbGUtdGV4dC1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tdmFuLWNpcmNsZS10ZXh0LWZvbnQtd2VpZ2h0KTtmb250LXNpemU6dmFyKC0tdmFuLWNpcmNsZS10ZXh0LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNpcmNsZS10ZXh0LWxpbmUtaGVpZ2h0KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0udmFuLXJvd3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LnZhbi1yb3ctLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwfS52YW4tcm93LS1qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS52YW4tcm93LS1qdXN0aWZ5LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnZhbi1yb3ctLWp1c3RpZnktc3BhY2UtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udmFuLXJvdy0tanVzdGlmeS1zcGFjZS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0udmFuLXJvdy0tYWxpZ24tY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0udmFuLXJvdy0tYWxpZ24tYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfS52YW4tY29se2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O21pbi1oZWlnaHQ6MXB4fS52YW4tY29sLS0xe2ZsZXg6MCAwIDQuMTY2NjY2NjclO21heC13aWR0aDo0LjE2NjY2NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTF7bWFyZ2luLWxlZnQ6NC4xNjY2NjY2NyV9LnZhbi1jb2wtLTJ7ZmxleDowIDAgOC4zMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMlfS52YW4tY29sLS1vZmZzZXQtMnttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0udmFuLWNvbC0tM3tmbGV4OjAgMCAxMi41JTttYXgtd2lkdGg6MTIuNSV9LnZhbi1jb2wtLW9mZnNldC0ze21hcmdpbi1sZWZ0OjEyLjUlfS52YW4tY29sLS00e2ZsZXg6MCAwIDE2LjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjclfS52YW4tY29sLS1vZmZzZXQtNHttYXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9LnZhbi1jb2wtLTV7ZmxleDowIDAgMjAuODMzMzMzMzMlO21heC13aWR0aDoyMC44MzMzMzMzMyV9LnZhbi1jb2wtLW9mZnNldC01e21hcmdpbi1sZWZ0OjIwLjgzMzMzMzMzJX0udmFuLWNvbC0tNntmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0udmFuLWNvbC0tb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6MjUlfS52YW4tY29sLS03e2ZsZXg6MCAwIDI5LjE2NjY2NjY3JTttYXgtd2lkdGg6MjkuMTY2NjY2NjclfS52YW4tY29sLS1vZmZzZXQtN3ttYXJnaW4tbGVmdDoyOS4xNjY2NjY2NyV9LnZhbi1jb2wtLTh7ZmxleDowIDAgMzMuMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMyV9LnZhbi1jb2wtLW9mZnNldC04e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0udmFuLWNvbC0tOXtmbGV4OjAgMCAzNy41JTttYXgtd2lkdGg6MzcuNSV9LnZhbi1jb2wtLW9mZnNldC05e21hcmdpbi1sZWZ0OjM3LjUlfS52YW4tY29sLS0xMHtmbGV4OjAgMCA0MS42NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY3JX0udmFuLWNvbC0tMTF7ZmxleDowIDAgNDUuODMzMzMzMzMlO21heC13aWR0aDo0NS44MzMzMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0xMXttYXJnaW4tbGVmdDo0NS44MzMzMzMzMyV9LnZhbi1jb2wtLTEye2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS52YW4tY29sLS1vZmZzZXQtMTJ7bWFyZ2luLWxlZnQ6NTAlfS52YW4tY29sLS0xM3tmbGV4OjAgMCA1NC4xNjY2NjY2NyU7bWF4LXdpZHRoOjU0LjE2NjY2NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTEze21hcmdpbi1sZWZ0OjU0LjE2NjY2NjY3JX0udmFuLWNvbC0tMTR7ZmxleDowIDAgNTguMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0xNHttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9LnZhbi1jb2wtLTE1e2ZsZXg6MCAwIDYyLjUlO21heC13aWR0aDo2Mi41JX0udmFuLWNvbC0tb2Zmc2V0LTE1e21hcmdpbi1sZWZ0OjYyLjUlfS52YW4tY29sLS0xNntmbGV4OjAgMCA2Ni42NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTE2e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY3JX0udmFuLWNvbC0tMTd7ZmxleDowIDAgNzAuODMzMzMzMzMlO21heC13aWR0aDo3MC44MzMzMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0xN3ttYXJnaW4tbGVmdDo3MC44MzMzMzMzMyV9LnZhbi1jb2wtLTE4e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS52YW4tY29sLS1vZmZzZXQtMTh7bWFyZ2luLWxlZnQ6NzUlfS52YW4tY29sLS0xOXtmbGV4OjAgMCA3OS4xNjY2NjY2NyU7bWF4LXdpZHRoOjc5LjE2NjY2NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTE5e21hcmdpbi1sZWZ0Ojc5LjE2NjY2NjY3JX0udmFuLWNvbC0tMjB7ZmxleDowIDAgODMuMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0yMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LnZhbi1jb2wtLTIxe2ZsZXg6MCAwIDg3LjUlO21heC13aWR0aDo4Ny41JX0udmFuLWNvbC0tb2Zmc2V0LTIxe21hcmdpbi1sZWZ0Ojg3LjUlfS52YW4tY29sLS0yMntmbGV4OjAgMCA5MS42NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY3JX0udmFuLWNvbC0tb2Zmc2V0LTIye21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY3JX0udmFuLWNvbC0tMjN7ZmxleDowIDAgOTUuODMzMzMzMzMlO21heC13aWR0aDo5NS44MzMzMzMzMyV9LnZhbi1jb2wtLW9mZnNldC0yM3ttYXJnaW4tbGVmdDo5NS44MzMzMzMzMyV9LnZhbi1jb2wtLTI0e2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9LnZhbi1jb2wtLW9mZnNldC0yNHttYXJnaW4tbGVmdDoxMDAlfTpyb290LDpob3N0ey0tdmFuLWNvdW50LWRvd24tdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLWNvdW50LWRvd24tZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1jb3VudC1kb3duLWxpbmUtaGVpZ2h0OiB2YXIoLS12YW4tbGluZS1oZWlnaHQtbWQpfS52YW4tY291bnQtZG93bntjb2xvcjp2YXIoLS12YW4tY291bnQtZG93bi10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWNvdW50LWRvd24tZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tY291bnQtZG93bi1saW5lLWhlaWdodCl9OnJvb3QsOmhvc3R7LS12YW4tZW1wdHktcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmcteGwpIDA7LS12YW4tZW1wdHktaW1hZ2Utc2l6ZTogMTYwcHg7LS12YW4tZW1wdHktZGVzY3JpcHRpb24tbWFyZ2luLXRvcDogdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWVtcHR5LWRlc2NyaXB0aW9uLXBhZGRpbmc6IDAgNjBweDstLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tZW1wdHktZGVzY3JpcHRpb24tZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi1lbXB0eS1ib3R0b20tbWFyZ2luLXRvcDogMjRweH0udmFuLWVtcHR5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6dmFyKC0tdmFuLWVtcHR5LXBhZGRpbmcpfS52YW4tZW1wdHlfX2ltYWdle3dpZHRoOnZhcigtLXZhbi1lbXB0eS1pbWFnZS1zaXplKTtoZWlnaHQ6dmFyKC0tdmFuLWVtcHR5LWltYWdlLXNpemUpfS52YW4tZW1wdHlfX2ltYWdlIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS52YW4tZW1wdHlfX2Rlc2NyaXB0aW9ue21hcmdpbi10b3A6dmFyKC0tdmFuLWVtcHR5LWRlc2NyaXB0aW9uLW1hcmdpbi10b3ApO3BhZGRpbmc6dmFyKC0tdmFuLWVtcHR5LWRlc2NyaXB0aW9uLXBhZGRpbmcpO2NvbG9yOnZhcigtLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1lbXB0eS1kZXNjcmlwdGlvbi1saW5lLWhlaWdodCl9LnZhbi1lbXB0eV9fYm90dG9te21hcmdpbi10b3A6dmFyKC0tdmFuLWVtcHR5LWJvdHRvbS1tYXJnaW4tdG9wKX0udmFuLXRoZW1lLWRhcmsgLnZhbi1lbXB0eXtvcGFjaXR5Oi41fTpyb290LDpob3N0ey0tdmFuLWNvdXBvbi1saXN0LWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kKTstLXZhbi1jb3Vwb24tbGlzdC1maWVsZC1wYWRkaW5nOiA1cHggMCA1cHggdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWNvdXBvbi1saXN0LWV4Y2hhbmdlLWJ1dHRvbi1oZWlnaHQ6IDMycHg7LS12YW4tY291cG9uLWxpc3QtY2xvc2UtYnV0dG9uLWhlaWdodDogNDBweDstLXZhbi1jb3Vwb24tbGlzdC1lbXB0eS10aXAtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWNvdXBvbi1saXN0LWVtcHR5LXRpcC1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWNvdXBvbi1saXN0LWVtcHR5LXRpcC1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKX0udmFuLWNvdXBvbi1saXN0e3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dmFyKC0tdmFuLWNvdXBvbi1saXN0LWJhY2tncm91bmQpfS52YW4tY291cG9uLWxpc3RfX2ZpZWxke3BhZGRpbmc6dmFyKC0tdmFuLWNvdXBvbi1saXN0LWZpZWxkLXBhZGRpbmcpfS52YW4tY291cG9uLWxpc3RfX2ZpZWxkIC52YW4tZmllbGRfX2JvZHl7aGVpZ2h0OjM0cHg7cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLXNtKTtsaW5lLWhlaWdodDozNHB4O2JhY2tncm91bmQ6dmFyKC0tdmFuLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpfS52YW4tY291cG9uLWxpc3RfX2ZpZWxkIC52YW4tZmllbGRfX2JvZHk6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyl9LnZhbi1jb3Vwb24tbGlzdF9fZmllbGQgLnZhbi1maWVsZF9fYm9keTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdmFuLXRleHQtY29sb3ItMyl9LnZhbi1jb3Vwb24tbGlzdF9fZmllbGQgLnZhbi1maWVsZF9fY2xlYXJ7bWFyZ2luLXJpZ2h0OjB9LnZhbi1jb3Vwb24tbGlzdF9fZXhjaGFuZ2UtYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tYmFja2dyb3VuZC0yKX0udmFuLWNvdXBvbi1saXN0X19leGNoYW5nZXtmbGV4Om5vbmU7aGVpZ2h0OnZhcigtLXZhbi1jb3Vwb24tbGlzdC1leGNoYW5nZS1idXR0b24taGVpZ2h0KTtmb250LXNpemU6dmFyKC0tdmFuLWZvbnQtc2l6ZS1sZyk7bGluZS1oZWlnaHQ6Y2FsYyh2YXIoLS12YW4tY291cG9uLWxpc3QtZXhjaGFuZ2UtYnV0dG9uLWhlaWdodCkgLSAycHgpO2JvcmRlcjowfS52YW4tY291cG9uLWxpc3QgLnZhbi10YWJzX193cmFwe2JveC1zaGFkb3c6MCA2cHggMTJweCAtMTJweCB2YXIoLS12YW4tZ3JheS02KX0udmFuLWNvdXBvbi1saXN0X19saXN0e2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1wYWRkaW5nLW1kKSAwIHZhcigtLXZhbi1wYWRkaW5nLWxnKTtvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnZhbi1jb3Vwb24tbGlzdF9fbGlzdC0td2l0aC1ib3R0b217cGFkZGluZy1ib3R0b206NTBweH0udmFuLWNvdXBvbi1saXN0X19ib3R0b217cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3otaW5kZXg6OTk5O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO3BhZGRpbmc6NXB4IHZhcigtLXZhbi1wYWRkaW5nLW1kKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpfS52YW4tY291cG9uLWxpc3RfX2Nsb3Nle2hlaWdodDp2YXIoLS12YW4tY291cG9uLWxpc3QtY2xvc2UtYnV0dG9uLWhlaWdodCl9LnZhbi1jb3Vwb24tbGlzdF9fZW1wdHktdGlwe2NvbG9yOnZhcigtLXZhbi1jb3Vwb24tbGlzdC1lbXB0eS10aXAtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tY291cG9uLWxpc3QtZW1wdHktdGlwLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWNvdXBvbi1saXN0LWVtcHR5LXRpcC1saW5lLWhlaWdodCl9OnJvb3QsOmhvc3R7LS12YW4tZGl2aWRlci1tYXJnaW46IHZhcigtLXZhbi1wYWRkaW5nLW1kKSAwOy0tdmFuLWRpdmlkZXItdmVydGljYWwtbWFyZ2luOiAwIHZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi1kaXZpZGVyLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLWRpdmlkZXItZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1kaXZpZGVyLWxpbmUtaGVpZ2h0OiAyNHB4Oy0tdmFuLWRpdmlkZXItYm9yZGVyLWNvbG9yOiB2YXIoLS12YW4tYm9yZGVyLWNvbG9yKTstLXZhbi1kaXZpZGVyLWNvbnRlbnQtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctbWQpOy0tdmFuLWRpdmlkZXItY29udGVudC1sZWZ0LXdpZHRoOiAxMCU7LS12YW4tZGl2aWRlci1jb250ZW50LXJpZ2h0LXdpZHRoOiAxMCV9LnZhbi1kaXZpZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOnZhcigtLXZhbi1kaXZpZGVyLW1hcmdpbik7Y29sb3I6dmFyKC0tdmFuLWRpdmlkZXItdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1kaXZpZGVyLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWRpdmlkZXItbGluZS1oZWlnaHQpO2JvcmRlci1jb2xvcjp2YXIoLS12YW4tZGl2aWRlci1ib3JkZXItY29sb3IpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MH0udmFuLWRpdmlkZXI6YmVmb3JlLC52YW4tZGl2aWRlcjphZnRlcntkaXNwbGF5OmJsb2NrO2ZsZXg6MTtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjFweDtib3JkZXItY29sb3I6aW5oZXJpdDtib3JkZXItc3R5bGU6aW5oZXJpdDtib3JkZXItd2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCkgMCAwfS52YW4tZGl2aWRlcjpiZWZvcmV7Y29udGVudDoiIn0udmFuLWRpdmlkZXItLWhhaXJsaW5lOmJlZm9yZSwudmFuLWRpdmlkZXItLWhhaXJsaW5lOmFmdGVye3RyYW5zZm9ybTpzY2FsZVkoLjUpfS52YW4tZGl2aWRlci0tZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LnZhbi1kaXZpZGVyLS1jb250ZW50LWNlbnRlcjpiZWZvcmUsLnZhbi1kaXZpZGVyLS1jb250ZW50LWxlZnQ6YmVmb3JlLC52YW4tZGl2aWRlci0tY29udGVudC1yaWdodDpiZWZvcmV7bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1kaXZpZGVyLWNvbnRlbnQtcGFkZGluZyl9LnZhbi1kaXZpZGVyLS1jb250ZW50LWNlbnRlcjphZnRlciwudmFuLWRpdmlkZXItLWNvbnRlbnQtbGVmdDphZnRlciwudmFuLWRpdmlkZXItLWNvbnRlbnQtcmlnaHQ6YWZ0ZXJ7bWFyZ2luLWxlZnQ6dmFyKC0tdmFuLWRpdmlkZXItY29udGVudC1wYWRkaW5nKTtjb250ZW50OiIifS52YW4tZGl2aWRlci0tY29udGVudC1sZWZ0OmJlZm9yZXttYXgtd2lkdGg6dmFyKC0tdmFuLWRpdmlkZXItY29udGVudC1sZWZ0LXdpZHRoKX0udmFuLWRpdmlkZXItLWNvbnRlbnQtcmlnaHQ6YWZ0ZXJ7bWF4LXdpZHRoOnZhcigtLXZhbi1kaXZpZGVyLWNvbnRlbnQtcmlnaHQtd2lkdGgpfS52YW4tZGl2aWRlci0tdmVydGljYWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCk7aGVpZ2h0OjFlbTttYXJnaW46dmFyKC0tdmFuLWRpdmlkZXItdmVydGljYWwtbWFyZ2luKTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnZhbi1kaXZpZGVyLS12ZXJ0aWNhbDpiZWZvcmV7aGVpZ2h0OjEwMCU7Ym9yZGVyLXdpZHRoOjAgMCAwIHZhcigtLXZhbi1ib3JkZXItd2lkdGgpfS52YW4tZGl2aWRlci0tdmVydGljYWw6YWZ0ZXJ7ZGlzcGxheTpub25lfS52YW4tZGl2aWRlci0tdmVydGljYWwudmFuLWRpdmlkZXItLWhhaXJsaW5lOmJlZm9yZXt0cmFuc2Zvcm06c2NhbGVYKC41KX06cm9vdCw6aG9zdHstLXZhbi1kcm9wZG93bi1tZW51LWhlaWdodDogNDhweDstLXZhbi1kcm9wZG93bi1tZW51LWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWRyb3Bkb3duLW1lbnUtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMTAwLCAxMDEsIDEwMiwgLjEyKTstLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLWZvbnQtc2l6ZTogMTVweDstLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLWFjdGl2ZS10ZXh0LWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tZHJvcGRvd24tbWVudS10aXRsZS1kaXNhYmxlZC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0yKTstLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLXBhZGRpbmc6IDAgdmFyKC0tdmFuLXBhZGRpbmcteHMpOy0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC1sZyk7LS12YW4tZHJvcGRvd24tbWVudS1vcHRpb24tYWN0aXZlLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tZHJvcGRvd24tbWVudS1vcHRpb24tZGlzYWJsZWQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLWRyb3Bkb3duLW1lbnUtY29udGVudC1tYXgtaGVpZ2h0OiA4MCV9LnZhbi1kcm9wZG93bi1tZW51ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52YW4tZHJvcGRvd24tbWVudV9fYmFye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1kcm9wZG93bi1tZW51LWJhY2tncm91bmQpO2JveC1zaGFkb3c6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtc2hhZG93KX0udmFuLWRyb3Bkb3duLW1lbnVfX2Jhci0tb3BlbmVke3otaW5kZXg6Y2FsYyh2YXIoLS12YW4tZHJvcGRvd24taXRlbS16LWluZGV4KSArIDEpfS52YW4tZHJvcGRvd24tbWVudV9fYmFyLS1zY3JvbGxhYmxle3BhZGRpbmctbGVmdDp2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLXhzKTtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnZhbi1kcm9wZG93bi1tZW51X19iYXItLXNjcm9sbGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udmFuLWRyb3Bkb3duLW1lbnVfX2l0ZW17ZGlzcGxheTpmbGV4O2ZsZXg6MTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6MH0udmFuLWRyb3Bkb3duLW1lbnVfX2l0ZW0tLWRpc2FibGVkIC52YW4tZHJvcGRvd24tbWVudV9fdGl0bGV7Y29sb3I6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtZGlzYWJsZWQtdGV4dC1jb2xvcil9LnZhbi1kcm9wZG93bi1tZW51X19pdGVtLS1ncm93e2ZsZXg6MSAwIGF1dG87cGFkZGluZy1sZWZ0OnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpO3BhZGRpbmctcmlnaHQ6dmFyKC0tdmFuLXBhZGRpbmctc20pfS52YW4tZHJvcGRvd24tbWVudV9fdGl0bGV7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O21heC13aWR0aDoxMDAlO3BhZGRpbmc6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtcGFkZGluZyk7Y29sb3I6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1kcm9wZG93bi1tZW51LXRpdGxlLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtdGl0bGUtbGluZS1oZWlnaHQpfS52YW4tZHJvcGRvd24tbWVudV9fdGl0bGU6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDotNHB4O21hcmdpbi10b3A6LTVweDtib3JkZXI6M3B4IHNvbGlkO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS12YW4tZ3JheS00KSB2YXIoLS12YW4tZ3JheS00KTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7b3BhY2l0eTouODtjb250ZW50OiIifS52YW4tZHJvcGRvd24tbWVudV9fdGl0bGUtLWFjdGl2ZXtjb2xvcjp2YXIoLS12YW4tZHJvcGRvd24tbWVudS10aXRsZS1hY3RpdmUtdGV4dC1jb2xvcil9LnZhbi1kcm9wZG93bi1tZW51X190aXRsZS0tYWN0aXZlOmFmdGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCBjdXJyZW50Q29sb3IgY3VycmVudENvbG9yfS52YW4tZHJvcGRvd24tbWVudV9fdGl0bGUtLWRvd246YWZ0ZXJ7bWFyZ2luLXRvcDotMXB4O3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX06cm9vdCw6aG9zdHstLXZhbi1kcm9wZG93bi1pdGVtLXotaW5kZXg6IDEwfS52YW4tZHJvcGRvd24taXRlbXtwb3NpdGlvbjpmaXhlZDtyaWdodDowO2xlZnQ6MDt6LWluZGV4OnZhcigtLXZhbi1kcm9wZG93bi1pdGVtLXotaW5kZXgpO292ZXJmbG93OmhpZGRlbn0udmFuLWRyb3Bkb3duLWl0ZW1fX2ljb257ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDppbmhlcml0fS52YW4tZHJvcGRvd24taXRlbV9fb3B0aW9ue3RleHQtYWxpZ246bGVmdH0udmFuLWRyb3Bkb3duLWl0ZW1fX29wdGlvbi0tYWN0aXZlLC52YW4tZHJvcGRvd24taXRlbV9fb3B0aW9uLS1hY3RpdmUgLnZhbi1kcm9wZG93bi1pdGVtX19pY29ue2NvbG9yOnZhcigtLXZhbi1kcm9wZG93bi1tZW51LW9wdGlvbi1hY3RpdmUtY29sb3IpfS52YW4tZHJvcGRvd24taXRlbV9fb3B0aW9uLS1kaXNhYmxlZCwudmFuLWRyb3Bkb3duLWl0ZW1fX29wdGlvbi0tZGlzYWJsZWQgLnZhbi1kcm9wZG93bi1pdGVtX19pY29ue2NvbG9yOnZhcigtLXZhbi1kcm9wZG93bi1tZW51LW9wdGlvbi1kaXNhYmxlZC1jb2xvcil9LnZhbi1kcm9wZG93bi1pdGVtLS11cHt0b3A6MH0udmFuLWRyb3Bkb3duLWl0ZW0tLWRvd257Ym90dG9tOjB9LnZhbi1kcm9wZG93bi1pdGVtX19jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO21heC1oZWlnaHQ6dmFyKC0tdmFuLWRyb3Bkb3duLW1lbnUtY29udGVudC1tYXgtaGVpZ2h0KX06cm9vdCw6aG9zdHstLXZhbi1mbG9hdGluZy1wYW5lbC1ib3JkZXItcmFkaXVzOiAxNnB4Oy0tdmFuLWZsb2F0aW5nLXBhbmVsLWhlYWRlci1oZWlnaHQ6IDMwcHg7LS12YW4tZmxvYXRpbmctcGFuZWwtei1pbmRleDogOTk5Oy0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhci13aWR0aDogMjBweDstLXZhbi1mbG9hdGluZy1wYW5lbC1iYXItaGVpZ2h0OiAzcHg7LS12YW4tZmxvYXRpbmctcGFuZWwtYmFyLWNvbG9yOiB2YXIoLS12YW4tZ3JheS01KX0udmFuLWZsb2F0aW5nLXBhbmVse3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDtib3R0b206MDt3aWR0aDoxMDB2dzt6LWluZGV4OnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC16LWluZGV4KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3RvdWNoLWFjdGlvbjpub25lO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLWJvcmRlci1yYWRpdXMpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC1ib3JkZXItcmFkaXVzKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC1iYWNrZ3JvdW5kKTt3aWxsLWNoYW5nZTp0cmFuc2Zvcm19LnZhbi1mbG9hdGluZy1wYW5lbDphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0xMDB2aDtoZWlnaHQ6MTAwdmg7d2lkdGg6MTAwdnc7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS52YW4tZmxvYXRpbmctcGFuZWxfX2hlYWRlcntoZWlnaHQ6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLWhlYWRlci1oZWlnaHQpO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFiOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52YW4tZmxvYXRpbmctcGFuZWxfX2hlYWRlci1iYXJ7aGVpZ2h0OnZhcigtLXZhbi1mbG9hdGluZy1wYW5lbC1iYXItaGVpZ2h0KTt3aWR0aDp2YXIoLS12YW4tZmxvYXRpbmctcGFuZWwtYmFyLXdpZHRoKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhci1jb2xvcil9LnZhbi1mbG9hdGluZy1wYW5lbF9fY29udGVudHtmbGV4OjE7b3ZlcmZsb3cteTphdXRvO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWZsb2F0aW5nLXBhbmVsLWJhY2tncm91bmQpfS52YW4tZ3JpZHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9OnJvb3QsOmhvc3R7LS12YW4tZ3JpZC1pdGVtLWNvbnRlbnQtcGFkZGluZzogdmFyKC0tdmFuLXBhZGRpbmctbWQpIHZhcigtLXZhbi1wYWRkaW5nLXhzKTstLXZhbi1ncmlkLWl0ZW0tY29udGVudC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKTstLXZhbi1ncmlkLWl0ZW0tY29udGVudC1hY3RpdmUtY29sb3I6IHZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLWdyaWQtaXRlbS1pY29uLXNpemU6IDI4cHg7LS12YW4tZ3JpZC1pdGVtLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1ncmlkLWl0ZW0tdGV4dC1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pfS52YW4tZ3JpZC1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0udmFuLWdyaWQtaXRlbS0tc3F1YXJle2hlaWdodDowfS52YW4tZ3JpZC1pdGVtX19pY29ue2ZvbnQtc2l6ZTp2YXIoLS12YW4tZ3JpZC1pdGVtLWljb24tc2l6ZSl9LnZhbi1ncmlkLWl0ZW1fX3RleHR7Y29sb3I6dmFyKC0tdmFuLWdyaWQtaXRlbS10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLWdyaWQtaXRlbS10ZXh0LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6MS41O3dvcmQtYnJlYWs6YnJlYWstYWxsfS52YW4tZ3JpZC1pdGVtX19pY29uKy52YW4tZ3JpZC1pdGVtX190ZXh0e21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpfS52YW4tZ3JpZC1pdGVtX19jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO3BhZGRpbmc6dmFyKC0tdmFuLWdyaWQtaXRlbS1jb250ZW50LXBhZGRpbmcpO2JhY2tncm91bmQ6dmFyKC0tdmFuLWdyaWQtaXRlbS1jb250ZW50LWJhY2tncm91bmQpfS52YW4tZ3JpZC1pdGVtX19jb250ZW50OmFmdGVye3otaW5kZXg6MTtib3JkZXItd2lkdGg6MCB2YXIoLS12YW4tYm9yZGVyLXdpZHRoKSB2YXIoLS12YW4tYm9yZGVyLXdpZHRoKSAwfS52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1zcXVhcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtsZWZ0OjB9LnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udmFuLWdyaWQtaXRlbV9fY29udGVudC0taG9yaXpvbnRhbHtmbGV4LWRpcmVjdGlvbjpyb3d9LnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLWhvcml6b250YWwgLnZhbi1ncmlkLWl0ZW1fX3RleHR7bWFyZ2luOjAgMCAwIHZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLWdyaWQtaXRlbV9fY29udGVudC0tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0udmFuLWdyaWQtaXRlbV9fY29udGVudC0tcmV2ZXJzZSAudmFuLWdyaWQtaXRlbV9fdGV4dHttYXJnaW46MCAwIHZhcigtLXZhbi1wYWRkaW5nLXhzKX0udmFuLWdyaWQtaXRlbV9fY29udGVudC0taG9yaXpvbnRhbC52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1ob3Jpem9udGFsLnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLXJldmVyc2UgLnZhbi1ncmlkLWl0ZW1fX3RleHR7bWFyZ2luOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpIDAgMH0udmFuLWdyaWQtaXRlbV9fY29udGVudC0tc3Vycm91bmQ6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOnZhcigtLXZhbi1ib3JkZXItd2lkdGgpfS52YW4tZ3JpZC1pdGVtX19jb250ZW50LS1jbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9LnZhbi1ncmlkLWl0ZW1fX2NvbnRlbnQtLWNsaWNrYWJsZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tZ3JpZC1pdGVtLWNvbnRlbnQtYWN0aXZlLWNvbG9yKX06cm9vdCw6aG9zdHstLXZhbi1oaWdobGlnaHQtdGFnLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcil9LnZhbi1oaWdobGlnaHRfX3RhZ3tjb2xvcjp2YXIoLS12YW4taGlnaGxpZ2h0LXRhZy1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4taW5kZXgtYmFyLXNpZGViYXItei1pbmRleDogMjstLXZhbi1pbmRleC1iYXItaW5kZXgtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXhzKTstLXZhbi1pbmRleC1iYXItaW5kZXgtbGluZS1oZWlnaHQ6IHZhcigtLXZhbi1saW5lLWhlaWdodC14cyk7LS12YW4taW5kZXgtYmFyLWluZGV4LWFjdGl2ZS1jb2xvcjogdmFyKC0tdmFuLXByaW1hcnktY29sb3IpfS52YW4taW5kZXgtYmFyX19zaWRlYmFye3Bvc2l0aW9uOmZpeGVkO3RvcDo1MCU7cmlnaHQ6MDt6LWluZGV4OnZhcigtLXZhbi1pbmRleC1iYXItc2lkZWJhci16LWluZGV4KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3RleHQtYWxpZ246Y2VudGVyO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52YW4taW5kZXgtYmFyX19pbmRleHtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmcteHMpIDAgdmFyKC0tdmFuLXBhZGRpbmctbWQpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1mb250LWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4taW5kZXgtYmFyLWluZGV4LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWluZGV4LWJhci1pbmRleC1saW5lLWhlaWdodCl9LnZhbi1pbmRleC1iYXJfX2luZGV4LS1hY3RpdmV7Y29sb3I6dmFyKC0tdmFuLWluZGV4LWJhci1pbmRleC1hY3RpdmUtY29sb3IpO2ZvbnQtd2VpZ2h0OjcwMH06cm9vdCw6aG9zdHstLXZhbi1pbmRleC1hbmNob3Itei1pbmRleDogMTstLXZhbi1pbmRleC1hbmNob3ItcGFkZGluZzogMCB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4taW5kZXgtYW5jaG9yLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1pbmRleC1hbmNob3ItZm9udC13ZWlnaHQ6IHZhcigtLXZhbi1mb250LWJvbGQpOy0tdmFuLWluZGV4LWFuY2hvci1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLWluZGV4LWFuY2hvci1saW5lLWhlaWdodDogMzJweDstLXZhbi1pbmRleC1hbmNob3ItYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7LS12YW4taW5kZXgtYW5jaG9yLXN0aWNreS10ZXh0LWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4taW5kZXgtYW5jaG9yLXN0aWNreS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKX0udmFuLWluZGV4LWFuY2hvcnt6LWluZGV4OnZhcigtLXZhbi1pbmRleC1hbmNob3Itei1pbmRleCk7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6dmFyKC0tdmFuLWluZGV4LWFuY2hvci1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4taW5kZXgtYW5jaG9yLXRleHQtY29sb3IpO2ZvbnQtd2VpZ2h0OnZhcigtLXZhbi1pbmRleC1hbmNob3ItZm9udC13ZWlnaHQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4taW5kZXgtYW5jaG9yLWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLWluZGV4LWFuY2hvci1saW5lLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4taW5kZXgtYW5jaG9yLWJhY2tncm91bmQpfS52YW4taW5kZXgtYW5jaG9yLS1zdGlja3l7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OjA7Y29sb3I6dmFyKC0tdmFuLWluZGV4LWFuY2hvci1zdGlja3ktdGV4dC1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS12YW4taW5kZXgtYW5jaG9yLXN0aWNreS1iYWNrZ3JvdW5kKX06cm9vdCw6aG9zdHstLXZhbi1wYWdpbmF0aW9uLWhlaWdodDogNDBweDstLXZhbi1wYWdpbmF0aW9uLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tcGFnaW5hdGlvbi1pdGVtLXdpZHRoOiAzNnB4Oy0tdmFuLXBhZ2luYXRpb24taXRlbS1kZWZhdWx0LWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWNvbG9yOiB2YXIoLS12YW4tZ3JheS03KTstLXZhbi1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLXBhZ2luYXRpb24tYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tcGFnaW5hdGlvbi1kZXNjLWNvbG9yOiB2YXIoLS12YW4tZ3JheS03KTstLXZhbi1wYWdpbmF0aW9uLWRpc2FibGVkLW9wYWNpdHk6IHZhcigtLXZhbi1kaXNhYmxlZC1vcGFjaXR5KX0udmFuLXBhZ2luYXRpb257Zm9udC1zaXplOnZhcigtLXZhbi1wYWdpbmF0aW9uLWZvbnQtc2l6ZSl9LnZhbi1wYWdpbmF0aW9uX19pdGVtc3tkaXNwbGF5OmZsZXh9LnZhbi1wYWdpbmF0aW9uX19pdGVtLC52YW4tcGFnaW5hdGlvbl9fcGFnZS1kZXNje2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udmFuLXBhZ2luYXRpb25fX2l0ZW17ZmxleDoxO2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4td2lkdGg6dmFyKC0tdmFuLXBhZ2luYXRpb24taXRlbS13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1wYWdpbmF0aW9uLWhlaWdodCk7Y29sb3I6dmFyKC0tdmFuLXBhZ2luYXRpb24taXRlbS1kZWZhdWx0LWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wYWdpbmF0aW9uLWJhY2tncm91bmQpO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS52YW4tcGFnaW5hdGlvbl9faXRlbSBidXR0b257ZmxleDoxO2hlaWdodDoxMDAlO2JvcmRlcjpub25lO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS52YW4tcGFnaW5hdGlvbl9faXRlbSBidXR0b25bZGlzYWJsZWRde2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLXBhZ2luYXRpb25fX2l0ZW06YWN0aXZle2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tcGFnaW5hdGlvbi1pdGVtLWRlZmF1bHQtY29sb3IpfS52YW4tcGFnaW5hdGlvbl9faXRlbTpub3QoOmxhc3QtY2hpbGQpOmFmdGVye2JvcmRlci1yaWdodC13aWR0aDowfS52YW4tcGFnaW5hdGlvbl9faXRlbS0tYWN0aXZle2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tcGFnaW5hdGlvbi1pdGVtLWRlZmF1bHQtY29sb3IpfS52YW4tcGFnaW5hdGlvbl9faXRlbS0tcGFnZXtmbGV4LWdyb3c6MH0udmFuLXBhZ2luYXRpb25fX2l0ZW0tLXByZXYsLnZhbi1wYWdpbmF0aW9uX19pdGVtLS1uZXh0e3BhZGRpbmc6MCB2YXIoLS12YW4tcGFkZGluZy1iYXNlKTtjdXJzb3I6cG9pbnRlcn0udmFuLXBhZ2luYXRpb25fX2l0ZW0tLWJvcmRlcjpmaXJzdC1jaGlsZDphZnRlcntib3JkZXItcmlnaHQtd2lkdGg6dmFyKC0tdmFuLWJvcmRlci13aWR0aCl9LnZhbi1wYWdpbmF0aW9uX19pdGVtLS1kaXNhYmxlZCwudmFuLXBhZ2luYXRpb25fX2l0ZW0tLWRpc2FibGVkOmFjdGl2ZXtjb2xvcjp2YXIoLS12YW4tcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQtYmFja2dyb3VuZCk7b3BhY2l0eTp2YXIoLS12YW4tcGFnaW5hdGlvbi1kaXNhYmxlZC1vcGFjaXR5KX0udmFuLXBhZ2luYXRpb25fX3BhZ2UtZGVzY3tmbGV4OjE7aGVpZ2h0OnZhcigtLXZhbi1wYWdpbmF0aW9uLWhlaWdodCk7Y29sb3I6dmFyKC0tdmFuLXBhZ2luYXRpb24tZGVzYy1jb2xvcil9OnJvb3QsOmhvc3R7LS12YW4tcGFzc3dvcmQtaW5wdXQtaGVpZ2h0OiA1MHB4Oy0tdmFuLXBhc3N3b3JkLWlucHV0LW1hcmdpbjogMCB2YXIoLS12YW4tcGFkZGluZy1tZCk7LS12YW4tcGFzc3dvcmQtaW5wdXQtZm9udC1zaXplOiAyMHB4Oy0tdmFuLXBhc3N3b3JkLWlucHV0LXJhZGl1czogNnB4Oy0tdmFuLXBhc3N3b3JkLWlucHV0LWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXBhc3N3b3JkLWlucHV0LWluZm8tY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTIpOy0tdmFuLXBhc3N3b3JkLWlucHV0LWluZm8tZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1wYXNzd29yZC1pbnB1dC1lcnJvci1pbmZvLWNvbG9yOiB2YXIoLS12YW4tZGFuZ2VyLWNvbG9yKTstLXZhbi1wYXNzd29yZC1pbnB1dC1kb3Qtc2l6ZTogMTBweDstLXZhbi1wYXNzd29yZC1pbnB1dC1kb3QtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1wYXNzd29yZC1pbnB1dC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLXdpZHRoOiAxcHg7LS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLWhlaWdodDogNDAlOy0tdmFuLXBhc3N3b3JkLWlucHV0LWN1cnNvci1kdXJhdGlvbjogMXN9LnZhbi1wYXNzd29yZC1pbnB1dHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LW1hcmdpbik7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnZhbi1wYXNzd29yZC1pbnB1dF9faW5mbywudmFuLXBhc3N3b3JkLWlucHV0X19lcnJvci1pbmZve21hcmdpbi10b3A6dmFyKC0tdmFuLXBhZGRpbmctbWQpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtaW5mby1mb250LXNpemUpO3RleHQtYWxpZ246Y2VudGVyfS52YW4tcGFzc3dvcmQtaW5wdXRfX2luZm97Y29sb3I6dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LWluZm8tY29sb3IpfS52YW4tcGFzc3dvcmQtaW5wdXRfX2Vycm9yLWluZm97Y29sb3I6dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LWVycm9yLWluZm8tY29sb3IpfS52YW4tcGFzc3dvcmQtaW5wdXRfX3NlY3VyaXR5e2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtaGVpZ2h0KTtjdXJzb3I6cG9pbnRlcn0udmFuLXBhc3N3b3JkLWlucHV0X19zZWN1cml0eTphZnRlcntib3JkZXItcmFkaXVzOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1yYWRpdXMpfS52YW4tcGFzc3dvcmQtaW5wdXRfX3NlY3VyaXR5IGxpe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4OjE7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjEwMCU7Y29sb3I6dmFyKC0tdmFuLXBhc3N3b3JkLWlucHV0LXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtZm9udC1zaXplKTtsaW5lLWhlaWdodDoxLjI7YmFja2dyb3VuZDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtYmFja2dyb3VuZCl9LnZhbi1wYXNzd29yZC1pbnB1dF9fc2VjdXJpdHkgaXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3dpZHRoOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1kb3Qtc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1kb3Qtc2l6ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtZG90LWNvbG9yKTtib3JkZXItcmFkaXVzOjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3Zpc2liaWxpdHk6aGlkZGVufS52YW4tcGFzc3dvcmQtaW5wdXRfX2N1cnNvcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3dpZHRoOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1jdXJzb3Itd2lkdGgpO2hlaWdodDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tcGFzc3dvcmQtaW5wdXQtY3Vyc29yLWNvbG9yKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7YW5pbWF0aW9uOnZhcigtLXZhbi1wYXNzd29yZC1pbnB1dC1jdXJzb3ItZHVyYXRpb24pIHZhbi1jdXJzb3ItZmxpY2tlciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHZhbi1jdXJzb3ItZmxpY2tlcnswJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fTpyb290LDpob3N0ey0tdmFuLXByb2dyZXNzLWhlaWdodDogNHB4Oy0tdmFuLXByb2dyZXNzLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tcHJvZ3Jlc3MtaW5hY3RpdmUtY29sb3I6IHZhcigtLXZhbi1ncmF5LTUpOy0tdmFuLXByb2dyZXNzLWJhY2tncm91bmQ6IHZhcigtLXZhbi1ncmF5LTMpOy0tdmFuLXByb2dyZXNzLXBpdm90LXBhZGRpbmc6IDAgNXB4Oy0tdmFuLXByb2dyZXNzLXBpdm90LXRleHQtY29sb3I6IHZhcigtLXZhbi13aGl0ZSk7LS12YW4tcHJvZ3Jlc3MtcGl2b3QtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXhzKTstLXZhbi1wcm9ncmVzcy1waXZvdC1saW5lLWhlaWdodDogMS42Oy0tdmFuLXByb2dyZXNzLXBpdm90LWJhY2tncm91bmQ6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKX0udmFuLXByb2dyZXNze3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDp2YXIoLS12YW4tcHJvZ3Jlc3MtaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wcm9ncmVzcy1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1wcm9ncmVzcy1oZWlnaHQpfS52YW4tcHJvZ3Jlc3NfX3BvcnRpb257cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp2YXIoLS12YW4tcHJvZ3Jlc3MtY29sb3IpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDt0cmFuc2Zvcm0tb3JpZ2luOjA7dHJhbnNpdGlvbjphbGwgdmFyKC0tdmFuLWR1cmF0aW9uLWJhc2UpIHZhcigtLXZhbi1lYXNlLW91dCl9LnZhbi1wcm9ncmVzc19fcG9ydGlvbi0taW5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS12YW4tcHJvZ3Jlc3MtaW5hY3RpdmUtY29sb3IpfS52YW4tcHJvZ3Jlc3NfX3Bpdm90e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7Ym94LXNpemluZzpib3JkZXItYm94O21pbi13aWR0aDozLjZlbTtwYWRkaW5nOnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1wYWRkaW5nKTtjb2xvcjp2YXIoLS12YW4tcHJvZ3Jlc3MtcGl2b3QtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1saW5lLWhlaWdodCk7dGV4dC1hbGlnbjpjZW50ZXI7d29yZC1icmVhazprZWVwLWFsbDtiYWNrZ3JvdW5kOnZhcigtLXZhbi1wcm9ncmVzcy1waXZvdC1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOjFlbTt0cmFuc2l0aW9uOmFsbCB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSkgdmFyKC0tdmFuLWVhc2Utb3V0KX0udmFuLXByb2dyZXNzX19waXZvdC0taW5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS12YW4tcHJvZ3Jlc3MtaW5hY3RpdmUtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLXJvbGxpbmctdGV4dC1iYWNrZ3JvdW5kOiBpbmhlcml0Oy0tdmFuLXJvbGxpbmctdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXJvbGxpbmctdGV4dC1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtbWQpOy0tdmFuLXJvbGxpbmctdGV4dC1nYXA6IDBweDstLXZhbi1yb2xsaW5nLXRleHQtaXRlbS13aWR0aDogMTVweDstLXZhbi1yb2xsaW5nLXRleHQtaXRlbS1ib3JkZXItcmFkaXVzOiAwcHh9LnZhbi1yb2xsaW5nLXRleHR7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6dmFyKC0tdmFuLXJvbGxpbmctdGV4dC1mb250LXNpemUpO2NvbG9yOnZhcigtLXZhbi1yb2xsaW5nLXRleHQtY29sb3IpfS52YW4tcm9sbGluZy10ZXh0LWl0ZW17bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1yb2xsaW5nLXRleHQtZ2FwKTt3aWR0aDp2YXIoLS12YW4tcm9sbGluZy10ZXh0LWl0ZW0td2lkdGgpO2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJvbGxpbmctdGV4dC1pdGVtLWJvcmRlci1yYWRpdXMpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXJvbGxpbmctdGV4dC1iYWNrZ3JvdW5kKTtvdmVyZmxvdzpoaWRkZW59LnZhbi1yb2xsaW5nLXRleHQtaXRlbTpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS52YW4tcm9sbGluZy10ZXh0LWl0ZW1fX2JveHtvdmVyZmxvdzpoaWRkZW59LnZhbi1yb2xsaW5nLXRleHQtaXRlbV9fYm94LS1hbmltYXRle2FuaW1hdGlvbjp2YW4tdXAgdmFyKC0tdmFuLWR1cmF0aW9uKSBlYXNlLWluLW91dCB2YXIoLS12YW4tZGVsYXkpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LnZhbi1yb2xsaW5nLXRleHQtaXRlbV9faXRlbXt0ZXh0LWFsaWduOmNlbnRlcn0udmFuLXJvbGxpbmctdGV4dC1pdGVtLS1kb3duIC52YW4tcm9sbGluZy10ZXh0LWl0ZW1fX2JveHt0cmFuc2Zvcm06dHJhbnNsYXRlWSh2YXIoLS12YW4tdHJhbnNsYXRlKSl9LnZhbi1yb2xsaW5nLXRleHQtaXRlbS0tZG93biAudmFuLXJvbGxpbmctdGV4dC1pdGVtX19ib3gtLWFuaW1hdGV7YW5pbWF0aW9uLW5hbWU6dmFuLWRvd259QGtleWZyYW1lcyB2YW4tZG93bnswJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSh2YXIoLS12YW4tdHJhbnNsYXRlKSl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgdmFuLXVwezAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKHZhcigtLXZhbi10cmFuc2xhdGUpKX19OnJvb3QsOmhvc3R7LS12YW4tc2lkZWJhci13aWR0aDogODBweH0udmFuLXNpZGViYXJ7d2lkdGg6dmFyKC0tdmFuLXNpZGViYXItd2lkdGgpO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH06cm9vdCw6aG9zdHstLXZhbi1zaWRlYmFyLWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tc2lkZWJhci1saW5lLWhlaWdodDogdmFyKC0tdmFuLWxpbmUtaGVpZ2h0LW1kKTstLXZhbi1zaWRlYmFyLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi1zaWRlYmFyLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yLTMpOy0tdmFuLXNpZGViYXItcGFkZGluZzogMjBweCB2YXIoLS12YW4tcGFkZGluZy1zbSk7LS12YW4tc2lkZWJhci1hY3RpdmUtY29sb3I6IHZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLXNpZGViYXItYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQpOy0tdmFuLXNpZGViYXItc2VsZWN0ZWQtZm9udC13ZWlnaHQ6IHZhcigtLXZhbi1mb250LWJvbGQpOy0tdmFuLXNpZGViYXItc2VsZWN0ZWQtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXNpZGViYXItc2VsZWN0ZWQtYm9yZGVyLXdpZHRoOiA0cHg7LS12YW4tc2lkZWJhci1zZWxlY3RlZC1ib3JkZXItaGVpZ2h0OiAxNnB4Oy0tdmFuLXNpZGViYXItc2VsZWN0ZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tc2lkZWJhci1zZWxlY3RlZC1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0yKX0udmFuLXNpZGViYXItaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOnZhcigtLXZhbi1zaWRlYmFyLXBhZGRpbmcpO292ZXJmbG93OmhpZGRlbjtjb2xvcjp2YXIoLS12YW4tc2lkZWJhci10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tdmFuLXNpZGViYXItZm9udC1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tc2lkZWJhci1saW5lLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tc2lkZWJhci1iYWNrZ3JvdW5kKTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udmFuLXNpZGViYXItaXRlbTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc2lkZWJhci1hY3RpdmUtY29sb3IpfS52YW4tc2lkZWJhci1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LnZhbi1zaWRlYmFyLWl0ZW1fX3RleHR7d29yZC1icmVhazpicmVhay1hbGx9LnZhbi1zaWRlYmFyLWl0ZW0tLXNlbGVjdHtjb2xvcjp2YXIoLS12YW4tc2lkZWJhci1zZWxlY3RlZC10ZXh0LWNvbG9yKTtmb250LXdlaWdodDp2YXIoLS12YW4tc2lkZWJhci1zZWxlY3RlZC1mb250LXdlaWdodCl9LnZhbi1zaWRlYmFyLWl0ZW0tLXNlbGVjdCwudmFuLXNpZGViYXItaXRlbS0tc2VsZWN0OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zaWRlYmFyLXNlbGVjdGVkLWJhY2tncm91bmQpfS52YW4tc2lkZWJhci1pdGVtLS1zZWxlY3Q6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3dpZHRoOnZhcigtLXZhbi1zaWRlYmFyLXNlbGVjdGVkLWJvcmRlci13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1zaWRlYmFyLXNlbGVjdGVkLWJvcmRlci1oZWlnaHQpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXNpZGViYXItc2VsZWN0ZWQtYm9yZGVyLWNvbG9yKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtjb250ZW50OiIifS52YW4tc2lkZWJhci1pdGVtLS1kaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tc2lkZWJhci1kaXNhYmxlZC10ZXh0LWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1zaWRlYmFyLWl0ZW0tLWRpc2FibGVkOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zaWRlYmFyLWJhY2tncm91bmQpfTpyb290LDpob3N0ey0tdmFuLXRyZWUtc2VsZWN0LWZvbnQtc2l6ZTogdmFyKC0tdmFuLWZvbnQtc2l6ZS1tZCk7LS12YW4tdHJlZS1zZWxlY3QtbmF2LWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kKTstLXZhbi10cmVlLXNlbGVjdC1jb250ZW50LWJhY2tncm91bmQ6IHZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpOy0tdmFuLXRyZWUtc2VsZWN0LW5hdi1pdGVtLXBhZGRpbmc6IDE0cHggdmFyKC0tdmFuLXBhZGRpbmctc20pOy0tdmFuLXRyZWUtc2VsZWN0LWl0ZW0taGVpZ2h0OiA0OHB4Oy0tdmFuLXRyZWUtc2VsZWN0LWl0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tdHJlZS1zZWxlY3QtaXRlbS1kaXNhYmxlZC1jb2xvcjogdmFyKC0tdmFuLWdyYXktNSk7LS12YW4tdHJlZS1zZWxlY3QtaXRlbS1zZWxlY3RlZC1zaXplOiAxNnB4fS52YW4tdHJlZS1zZWxlY3R7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTp2YXIoLS12YW4tdHJlZS1zZWxlY3QtZm9udC1zaXplKX0udmFuLXRyZWUtc2VsZWN0X19uYXZ7ZmxleDoxO292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kOnZhcigtLXZhbi10cmVlLXNlbGVjdC1uYXYtYmFja2dyb3VuZCk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnZhbi10cmVlLXNlbGVjdF9fbmF2LWl0ZW17cGFkZGluZzp2YXIoLS12YW4tdHJlZS1zZWxlY3QtbmF2LWl0ZW0tcGFkZGluZyl9LnZhbi10cmVlLXNlbGVjdF9fY29udGVudHtmbGV4OjI7b3ZlcmZsb3cteTphdXRvO2JhY2tncm91bmQ6dmFyKC0tdmFuLXRyZWUtc2VsZWN0LWNvbnRlbnQtYmFja2dyb3VuZCk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnZhbi10cmVlLXNlbGVjdF9faXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjAgMzJweCAwIHZhcigtLXZhbi1wYWRkaW5nLW1kKTtmb250LXdlaWdodDp2YXIoLS12YW4tZm9udC1ib2xkKTtsaW5lLWhlaWdodDp2YXIoLS12YW4tdHJlZS1zZWxlY3QtaXRlbS1oZWlnaHQpOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyfS52YW4tdHJlZS1zZWxlY3RfX2l0ZW0tLWFjdGl2ZXtjb2xvcjp2YXIoLS12YW4tdHJlZS1zZWxlY3QtaXRlbS1hY3RpdmUtY29sb3IpfS52YW4tdHJlZS1zZWxlY3RfX2l0ZW06YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWFjdGl2ZS1jb2xvcil9LnZhbi10cmVlLXNlbGVjdF9faXRlbS0tZGlzYWJsZWR7Y29sb3I6dmFyKC0tdmFuLXRyZWUtc2VsZWN0LWl0ZW0tZGlzYWJsZWQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZH0udmFuLXRyZWUtc2VsZWN0X19pdGVtLS1kaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udmFuLXRyZWUtc2VsZWN0X19zZWxlY3RlZHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTttYXJnaW4tdG9wOmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdHJlZS1zZWxlY3QtaXRlbS1zZWxlY3RlZC1zaXplKX06cm9vdCw6aG9zdHstLXZhbi1za2VsZXRvbi10aXRsZS13aWR0aDogNDAlfS52YW4tc2tlbGV0b24tdGl0bGV7aGVpZ2h0OnZhcigtLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtYmFja2dyb3VuZCl9LnZhbi1za2VsZXRvbi10aXRsZS0tcm91bmR7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tcmFkaXVzLW1heCl9LnZhbi1za2VsZXRvbi10aXRsZXt3aWR0aDp2YXIoLS12YW4tc2tlbGV0b24tdGl0bGUtd2lkdGgpO21hcmdpbjowfS52YW4tc2tlbGV0b24tdGl0bGUrLnZhbi1za2VsZXRvbi1wYXJhZ3JhcGh7bWFyZ2luLXRvcDoyMHB4fTpyb290LDpob3N0ey0tdmFuLXNrZWxldG9uLWF2YXRhci1zaXplOiAzMnB4Oy0tdmFuLXNrZWxldG9uLWF2YXRhci1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYWN0aXZlLWNvbG9yKX0udmFuLXNrZWxldG9uLWF2YXRhcntmbGV4LXNocmluazowO3dpZHRoOnZhcigtLXZhbi1za2VsZXRvbi1hdmF0YXItc2l6ZSk7aGVpZ2h0OnZhcigtLXZhbi1za2VsZXRvbi1hdmF0YXItc2l6ZSk7bWFyZ2luLXJpZ2h0OnZhcigtLXZhbi1wYWRkaW5nLW1kKTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1za2VsZXRvbi1hdmF0YXItYmFja2dyb3VuZCl9LnZhbi1za2VsZXRvbi1hdmF0YXItLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpfS52YW4tc2tlbGV0b24tYXZhdGFyKy52YW4tc2tlbGV0b25fX2NvbnRlbnR7cGFkZGluZy10b3A6dmFyKC0tdmFuLXBhZGRpbmcteHMpfTpyb290LDpob3N0ey0tdmFuLXNrZWxldG9uLXBhcmFncmFwaC1oZWlnaHQ6IDE2cHg7LS12YW4tc2tlbGV0b24tcGFyYWdyYXBoLWJhY2tncm91bmQ6IHZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLXNrZWxldG9uLXBhcmFncmFwaC1tYXJnaW4tdG9wOiB2YXIoLS12YW4tcGFkZGluZy1zbSl9LnZhbi1za2VsZXRvbi1wYXJhZ3JhcGh7aGVpZ2h0OnZhcigtLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtYmFja2dyb3VuZCl9LnZhbi1za2VsZXRvbi1wYXJhZ3JhcGgtLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFyKC0tdmFuLXJhZGl1cy1tYXgpfS52YW4tc2tlbGV0b24tcGFyYWdyYXBoOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi10b3A6dmFyKC0tdmFuLXNrZWxldG9uLXBhcmFncmFwaC1tYXJnaW4tdG9wKX06cm9vdCw6aG9zdHstLXZhbi1za2VsZXRvbi1kdXJhdGlvbjogMS4yc30udmFuLXNrZWxldG9ue2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjAgdmFyKC0tdmFuLXBhZGRpbmctbWQpfS52YW4tc2tlbGV0b25fX2NvbnRlbnR7d2lkdGg6MTAwJX0udmFuLXNrZWxldG9uLS1hbmltYXRle2FuaW1hdGlvbjp2YW4tc2tlbGV0b24tYmxpbmsgdmFyKC0tdmFuLXNrZWxldG9uLWR1cmF0aW9uKSBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHZhbi1za2VsZXRvbi1ibGlua3s1MCV7b3BhY2l0eTouNn19OnJvb3QsOmhvc3R7LS12YW4tc2xpZGVyLWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tcHJpbWFyeS1jb2xvcik7LS12YW4tc2xpZGVyLWluYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXZhbi1ncmF5LTMpOy0tdmFuLXNsaWRlci1kaXNhYmxlZC1vcGFjaXR5OiB2YXIoLS12YW4tZGlzYWJsZWQtb3BhY2l0eSk7LS12YW4tc2xpZGVyLWJhci1oZWlnaHQ6IDJweDstLXZhbi1zbGlkZXItYnV0dG9uLXdpZHRoOiAyNHB4Oy0tdmFuLXNsaWRlci1idXR0b24taGVpZ2h0OiAyNHB4Oy0tdmFuLXNsaWRlci1idXR0b24tcmFkaXVzOiA1MCU7LS12YW4tc2xpZGVyLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS12YW4td2hpdGUpOy0tdmFuLXNsaWRlci1idXR0b24tc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAuNSl9LnZhbi10aGVtZS1kYXJrey0tdmFuLXNsaWRlci1pbmFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS12YW4tYmFja2dyb3VuZC0zKX0udmFuLXNsaWRlcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS12YW4tc2xpZGVyLWJhci1oZWlnaHQpO2JhY2tncm91bmQ6dmFyKC0tdmFuLXNsaWRlci1pbmFjdGl2ZS1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1yYWRpdXMtbWF4KTtjdXJzb3I6cG9pbnRlcn0udmFuLXNsaWRlcjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO3JpZ2h0OjA7Ym90dG9tOmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpO2xlZnQ6MDtjb250ZW50OiIifS52YW4tc2xpZGVyX19iYXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1zbGlkZXItYWN0aXZlLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDt0cmFuc2l0aW9uOmFsbCB2YXIoLS12YW4tZHVyYXRpb24tZmFzdCl9LnZhbi1zbGlkZXJfX2J1dHRvbnt3aWR0aDp2YXIoLS12YW4tc2xpZGVyLWJ1dHRvbi13aWR0aCk7aGVpZ2h0OnZhcigtLXZhbi1zbGlkZXItYnV0dG9uLWhlaWdodCk7YmFja2dyb3VuZDp2YXIoLS12YW4tc2xpZGVyLWJ1dHRvbi1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXZhbi1zbGlkZXItYnV0dG9uLXJhZGl1cyk7Ym94LXNoYWRvdzp2YXIoLS12YW4tc2xpZGVyLWJ1dHRvbi1zaGFkb3cpfS52YW4tc2xpZGVyX19idXR0b24td3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFiO3RvcDo1MCV9LnZhbi1zbGlkZXJfX2J1dHRvbi13cmFwcGVyLS1yaWdodHtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg1MCUsLTUwJSwwKX0udmFuLXNsaWRlcl9fYnV0dG9uLXdyYXBwZXItLWxlZnR7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCl9LnZhbi1zbGlkZXItLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5OnZhcigtLXZhbi1zbGlkZXItZGlzYWJsZWQtb3BhY2l0eSl9LnZhbi1zbGlkZXItLWRpc2FibGVkIC52YW4tc2xpZGVyX19idXR0b24td3JhcHBlcntjdXJzb3I6bm90LWFsbG93ZWR9LnZhbi1zbGlkZXItLXZlcnRpY2Fse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOnZhcigtLXZhbi1zbGlkZXItYmFyLWhlaWdodCk7aGVpZ2h0OjEwMCV9LnZhbi1zbGlkZXItLXZlcnRpY2FsIC52YW4tc2xpZGVyX19idXR0b24td3JhcHBlci0tcmlnaHR7dG9wOmF1dG87cmlnaHQ6NTAlO2JvdHRvbTowO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg1MCUsNTAlLDApfS52YW4tc2xpZGVyLS12ZXJ0aWNhbCAudmFuLXNsaWRlcl9fYnV0dG9uLXdyYXBwZXItLWxlZnR7dG9wOjA7cmlnaHQ6NTAlO2xlZnQ6YXV0bzt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoNTAlLC01MCUsMCl9LnZhbi1zbGlkZXItLXZlcnRpY2FsOmJlZm9yZXt0b3A6MDtyaWdodDpjYWxjKHZhcigtLXZhbi1wYWRkaW5nLXhzKSAqIC0xKTtib3R0b206MDtsZWZ0OmNhbGModmFyKC0tdmFuLXBhZGRpbmcteHMpICogLTEpfS52YW4tc3BhY2V7ZGlzcGxheTppbmxpbmUtZmxleH0udmFuLXNwYWNlLS1ob3Jpem9udGFsIC52YW4tc3BhY2UtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS52YW4tc3BhY2UtLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udmFuLXNwYWNlLS1hbGlnbi1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0udmFuLXNwYWNlLS1hbGlnbi1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS52YW4tc3BhY2UtLWFsaWduLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZH0udmFuLXNwYWNlLS1hbGlnbi1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS52YW4tc3BhY2UtLXdyYXB7ZmxleC13cmFwOndyYXB9LnZhbi1zcGFjZS0tZmlsbHtkaXNwbGF5OmZsZXh9OnJvb3QsOmhvc3R7LS12YW4tc3RlcHMtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi1zdGVwc3tvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc3RlcHMtYmFja2dyb3VuZCl9LnZhbi1zdGVwcy0taG9yaXpvbnRhbHtwYWRkaW5nOjEwcHggMTBweCAwfS52YW4tc3RlcHMtLWhvcml6b250YWwgLnZhbi1zdGVwc19faXRlbXN7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O21hcmdpbjowIDAgMTBweDtwYWRkaW5nLWJvdHRvbToyMnB4fS52YW4tc3RlcHMtLXZlcnRpY2Fse3BhZGRpbmc6MCAwIDAgdmFyKC0tdmFuLXBhZGRpbmcteGwpfTpyb290LDpob3N0ey0tdmFuLXN0ZXAtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3ItMik7LS12YW4tc3RlcC1hY3RpdmUtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1zdGVwLXByb2Nlc3MtdGV4dC1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXN0ZXAtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1zdGVwLWxpbmUtY29sb3I6IHZhcigtLXZhbi1ib3JkZXItY29sb3IpOy0tdmFuLXN0ZXAtZmluaXNoLWxpbmUtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1zdGVwLWZpbmlzaC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tc3RlcC1pY29uLXNpemU6IDEycHg7LS12YW4tc3RlcC1jaXJjbGUtc2l6ZTogNXB4Oy0tdmFuLXN0ZXAtY2lyY2xlLWNvbG9yOiB2YXIoLS12YW4tZ3JheS02KTstLXZhbi1zdGVwLWhvcml6b250YWwtdGl0bGUtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLXNtKX0udmFuLXN0ZXB7cG9zaXRpb246cmVsYXRpdmU7ZmxleDoxO2NvbG9yOnZhcigtLXZhbi1zdGVwLXRleHQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc3RlcC1mb250LXNpemUpfS52YW4tc3RlcF9fY2lyY2xle2Rpc3BsYXk6YmxvY2s7d2lkdGg6dmFyKC0tdmFuLXN0ZXAtY2lyY2xlLXNpemUpO2hlaWdodDp2YXIoLS12YW4tc3RlcC1jaXJjbGUtc2l6ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc3RlcC1jaXJjbGUtY29sb3IpO2JvcmRlci1yYWRpdXM6NTAlfS52YW4tc3RlcF9fbGluZXtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zdGVwLWxpbmUtY29sb3IpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSl9LnZhbi1zdGVwLS1ob3Jpem9udGFse2Zsb2F0OmxlZnR9LnZhbi1zdGVwLS1ob3Jpem9udGFsOmZpcnN0LWNoaWxkIC52YW4tc3RlcF9fdGl0bGV7bWFyZ2luLWxlZnQ6MDt0cmFuc2Zvcm06bm9uZX0udmFuLXN0ZXAtLWhvcml6b250YWw6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxcHg7d2lkdGg6YXV0b30udmFuLXN0ZXAtLWhvcml6b250YWw6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSAudmFuLXN0ZXBfX3RpdGxle21hcmdpbi1sZWZ0OjA7dHJhbnNmb3JtOm5vbmV9LnZhbi1zdGVwLS1ob3Jpem9udGFsOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgLnZhbi1zdGVwX19jaXJjbGUtY29udGFpbmVye3JpZ2h0Oi05cHg7bGVmdDphdXRvfS52YW4tc3RlcC0taG9yaXpvbnRhbCAudmFuLXN0ZXBfX2NpcmNsZS1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjMwcHg7bGVmdDpjYWxjKHZhcigtLXZhbi1wYWRkaW5nLXhzKSAqIC0xKTt6LWluZGV4OjE7cGFkZGluZzowIHZhcigtLXZhbi1wYWRkaW5nLXhzKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1iYWNrZ3JvdW5kLTIpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS52YW4tc3RlcC0taG9yaXpvbnRhbCAudmFuLXN0ZXBfX3RpdGxle2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjNweDtmb250LXNpemU6dmFyKC0tdmFuLXN0ZXAtaG9yaXpvbnRhbC10aXRsZS1mb250LXNpemUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LnZhbi1zdGVwLS1ob3Jpem9udGFsIC52YW4tc3RlcF9fbGluZXt0b3A6MzBweDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MXB4fS52YW4tc3RlcC0taG9yaXpvbnRhbCAudmFuLXN0ZXBfX2ljb257ZGlzcGxheTpibG9jaztmb250LXNpemU6dmFyKC0tdmFuLXN0ZXAtaWNvbi1zaXplKX0udmFuLXN0ZXAtLWhvcml6b250YWwgLnZhbi1zdGVwLS1wcm9jZXNze2NvbG9yOnZhcigtLXZhbi1zdGVwLXByb2Nlc3MtdGV4dC1jb2xvcil9LnZhbi1zdGVwLS12ZXJ0aWNhbHtkaXNwbGF5OmJsb2NrO2Zsb2F0Om5vbmU7cGFkZGluZzoxMHB4IDEwcHggMTBweCAwO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi1saW5lLWhlaWdodC1zbSl9LnZhbi1zdGVwLS12ZXJ0aWNhbDpub3QoOmxhc3QtY2hpbGQpOmFmdGVye2JvcmRlci1ib3R0b20td2lkdGg6MXB4fS52YW4tc3RlcC0tdmVydGljYWwgLnZhbi1zdGVwX19jaXJjbGUtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxOXB4O2xlZnQ6LTE1cHg7ei1pbmRleDoxO2ZvbnQtc2l6ZTp2YXIoLS12YW4tc3RlcC1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfS52YW4tc3RlcC0tdmVydGljYWwgLnZhbi1zdGVwX19saW5le3RvcDoxNnB4O2xlZnQ6LTE1cHg7d2lkdGg6MXB4O2hlaWdodDoxMDAlfS52YW4tc3RlcDpsYXN0LWNoaWxkIC52YW4tc3RlcF9fbGluZXt3aWR0aDowfS52YW4tc3RlcC0tZmluaXNoe2NvbG9yOnZhcigtLXZhbi1zdGVwLWZpbmlzaC10ZXh0LWNvbG9yKX0udmFuLXN0ZXAtLWZpbmlzaCAudmFuLXN0ZXBfX2NpcmNsZSwudmFuLXN0ZXAtLWZpbmlzaCAudmFuLXN0ZXBfX2xpbmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS12YW4tc3RlcC1maW5pc2gtbGluZS1jb2xvcil9LnZhbi1zdGVwX19pY29uLC52YW4tc3RlcF9fdGl0bGV7dHJhbnNpdGlvbjpjb2xvciB2YXIoLS12YW4tZHVyYXRpb24tYmFzZSl9LnZhbi1zdGVwX19pY29uLS1hY3RpdmUsLnZhbi1zdGVwX190aXRsZS0tYWN0aXZlLC52YW4tc3RlcF9faWNvbi0tZmluaXNoLC52YW4tc3RlcF9fdGl0bGUtLWZpbmlzaHtjb2xvcjp2YXIoLS12YW4tc3RlcC1hY3RpdmUtY29sb3IpfTpyb290LDpob3N0ey0tdmFuLXN0ZXBwZXItYmFja2dyb3VuZDogdmFyKC0tdmFuLWFjdGl2ZS1jb2xvcik7LS12YW4tc3RlcHBlci1idXR0b24taWNvbi1jb2xvcjogdmFyKC0tdmFuLXRleHQtY29sb3IpOy0tdmFuLXN0ZXBwZXItYnV0dG9uLWRpc2FibGVkLWNvbG9yOiB2YXIoLS12YW4tYmFja2dyb3VuZCk7LS12YW4tc3RlcHBlci1idXR0b24tZGlzYWJsZWQtaWNvbi1jb2xvcjogdmFyKC0tdmFuLWdyYXktNSk7LS12YW4tc3RlcHBlci1idXR0b24tcm91bmQtdGhlbWUtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi1zdGVwcGVyLWlucHV0LXdpZHRoOiAzMnB4Oy0tdmFuLXN0ZXBwZXItaW5wdXQtaGVpZ2h0OiAyOHB4Oy0tdmFuLXN0ZXBwZXItaW5wdXQtZm9udC1zaXplOiB2YXIoLS12YW4tZm9udC1zaXplLW1kKTstLXZhbi1zdGVwcGVyLWlucHV0LWxpbmUtaGVpZ2h0OiBub3JtYWw7LS12YW4tc3RlcHBlci1pbnB1dC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvcik7LS12YW4tc3RlcHBlci1pbnB1dC1kaXNhYmxlZC10ZXh0LWNvbG9yOiB2YXIoLS12YW4tdGV4dC1jb2xvci0zKTstLXZhbi1zdGVwcGVyLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLXZhbi1hY3RpdmUtY29sb3IpOy0tdmFuLXN0ZXBwZXItcmFkaXVzOiB2YXIoLS12YW4tcmFkaXVzLW1kKX0udmFuLXN0ZXBwZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnZhbi1zdGVwcGVyX19taW51cywudmFuLXN0ZXBwZXJfX3BsdXN7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LWhlaWdodCk7aGVpZ2h0OnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LWhlaWdodCk7bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWJ1dHRvbi1pY29uLWNvbG9yKTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZDp2YXIoLS12YW4tc3RlcHBlci1iYWNrZ3JvdW5kKTtib3JkZXI6MH0udmFuLXN0ZXBwZXJfX21pbnVzOmJlZm9yZSwudmFuLXN0ZXBwZXJfX3BsdXM6YmVmb3Jle3dpZHRoOjUwJTtoZWlnaHQ6MXB4fS52YW4tc3RlcHBlcl9fbWludXM6YWZ0ZXIsLnZhbi1zdGVwcGVyX19wbHVzOmFmdGVye3dpZHRoOjFweDtoZWlnaHQ6NTAlfS52YW4tc3RlcHBlcl9fbWludXM6YmVmb3JlLC52YW4tc3RlcHBlcl9fcGx1czpiZWZvcmUsLnZhbi1zdGVwcGVyX19taW51czphZnRlciwudmFuLXN0ZXBwZXJfX3BsdXM6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7Y29udGVudDoiIn0udmFuLXN0ZXBwZXJfX21pbnVzLS1kaXNhYmxlZCwudmFuLXN0ZXBwZXJfX3BsdXMtLWRpc2FibGVke2NvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWJ1dHRvbi1kaXNhYmxlZC1pY29uLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWJ1dHRvbi1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tc3RlcHBlcl9fbWludXN7Ym9yZGVyLXJhZGl1czp2YXIoLS12YW4tc3RlcHBlci1yYWRpdXMpIDAgMCB2YXIoLS12YW4tc3RlcHBlci1yYWRpdXMpfS52YW4tc3RlcHBlcl9fbWludXM6YWZ0ZXJ7ZGlzcGxheTpub25lfS52YW4tc3RlcHBlcl9fcGx1c3tib3JkZXItcmFkaXVzOjAgdmFyKC0tdmFuLXN0ZXBwZXItcmFkaXVzKSB2YXIoLS12YW4tc3RlcHBlci1yYWRpdXMpIDB9LnZhbi1zdGVwcGVyX19pbnB1dHtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6dmFyKC0tdmFuLXN0ZXBwZXItaW5wdXQtd2lkdGgpO2hlaWdodDp2YXIoLS12YW4tc3RlcHBlci1pbnB1dC1oZWlnaHQpO21hcmdpbjowIDJweDtwYWRkaW5nOjA7Y29sb3I6dmFyKC0tdmFuLXN0ZXBwZXItaW5wdXQtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXN0ZXBwZXItaW5wdXQtbGluZS1oZWlnaHQpO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kOnZhcigtLXZhbi1zdGVwcGVyLWJhY2tncm91bmQpO2JvcmRlcjowO2JvcmRlci13aWR0aDoxcHggMDtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnZhbi1zdGVwcGVyX19pbnB1dDpkaXNhYmxlZHtjb2xvcjp2YXIoLS12YW4tc3RlcHBlci1pbnB1dC1kaXNhYmxlZC10ZXh0LWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnZhcigtLXZhbi1zdGVwcGVyLWlucHV0LWRpc2FibGVkLXRleHQtY29sb3IpO29wYWNpdHk6MX0udmFuLXN0ZXBwZXJfX2lucHV0OnJlYWQtb25seXtjdXJzb3I6ZGVmYXVsdH0udmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9faW5wdXR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9fcGx1cywudmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9fbWludXN7Ym9yZGVyLXJhZGl1czoxMDAlfS52YW4tc3RlcHBlci0tcm91bmQgLnZhbi1zdGVwcGVyX19wbHVzLS1kaXNhYmxlZCwudmFuLXN0ZXBwZXItLXJvdW5kIC52YW4tc3RlcHBlcl9fbWludXMtLWRpc2FibGVke29wYWNpdHk6LjM7Y3Vyc29yOm5vdC1hbGxvd2VkfS52YW4tc3RlcHBlci0tcm91bmQgLnZhbi1zdGVwcGVyX19wbHVze2NvbG9yOnZhcigtLXZhbi13aGl0ZSk7YmFja2dyb3VuZDp2YXIoLS12YW4tc3RlcHBlci1idXR0b24tcm91bmQtdGhlbWUtY29sb3IpfS52YW4tc3RlcHBlci0tcm91bmQgLnZhbi1zdGVwcGVyX19taW51c3tjb2xvcjp2YXIoLS12YW4tc3RlcHBlci1idXR0b24tcm91bmQtdGhlbWUtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLWJhY2tncm91bmQtMik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS12YW4tc3RlcHBlci1idXR0b24tcm91bmQtdGhlbWUtY29sb3IpfS52YW4tc3dpcGUtY2VsbHtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYn0udmFuLXN3aXBlLWNlbGxfX3dyYXBwZXJ7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xOCwuODksLjMyLDEpO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfS52YW4tc3dpcGUtY2VsbF9fbGVmdCwudmFuLXN3aXBlLWNlbGxfX3JpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2hlaWdodDoxMDAlfS52YW4tc3dpcGUtY2VsbF9fbGVmdHtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCl9LnZhbi1zd2lwZS1jZWxsX19yaWdodHtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCl9OnJvb3QsOmhvc3R7LS12YW4tdGFiYmFyLWhlaWdodDogNTBweDstLXZhbi10YWJiYXItei1pbmRleDogMTstLXZhbi10YWJiYXItYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMil9LnZhbi10YWJiYXJ7ei1pbmRleDp2YXIoLS12YW4tdGFiYmFyLXotaW5kZXgpO2Rpc3BsYXk6ZmxleDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3dpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLXZhbi10YWJiYXItaGVpZ2h0KTtiYWNrZ3JvdW5kOnZhcigtLXZhbi10YWJiYXItYmFja2dyb3VuZCl9LnZhbi10YWJiYXItLWZpeGVke3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MH06cm9vdCw6aG9zdHstLXZhbi10YWJiYXItaXRlbS1mb250LXNpemU6IHZhcigtLXZhbi1mb250LXNpemUtc20pOy0tdmFuLXRhYmJhci1pdGVtLXRleHQtY29sb3I6IHZhcigtLXZhbi10ZXh0LWNvbG9yKTstLXZhbi10YWJiYXItaXRlbS1hY3RpdmUtY29sb3I6IHZhcigtLXZhbi1wcmltYXJ5LWNvbG9yKTstLXZhbi10YWJiYXItaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tdmFuLWJhY2tncm91bmQtMik7LS12YW4tdGFiYmFyLWl0ZW0tbGluZS1oZWlnaHQ6IDE7LS12YW4tdGFiYmFyLWl0ZW0taWNvbi1zaXplOiAyMnB4Oy0tdmFuLXRhYmJhci1pdGVtLWljb24tbWFyZ2luLWJvdHRvbTogdmFyKC0tdmFuLXBhZGRpbmctYmFzZSl9LnZhbi10YWJiYXItaXRlbXtkaXNwbGF5OmZsZXg7ZmxleDoxO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp2YXIoLS12YW4tdGFiYmFyLWl0ZW0tdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLXZhbi10YWJiYXItaXRlbS1mb250LXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXZhbi10YWJiYXItaXRlbS1saW5lLWhlaWdodCk7Y3Vyc29yOnBvaW50ZXJ9LnZhbi10YWJiYXItaXRlbV9faWNvbnttYXJnaW4tYm90dG9tOnZhcigtLXZhbi10YWJiYXItaXRlbS1pY29uLW1hcmdpbi1ib3R0b20pO2ZvbnQtc2l6ZTp2YXIoLS12YW4tdGFiYmFyLWl0ZW0taWNvbi1zaXplKX0udmFuLXRhYmJhci1pdGVtX19pY29uIC52YW4taWNvbntkaXNwbGF5OmJsb2NrfS52YW4tdGFiYmFyLWl0ZW1fX2ljb24gLnZhbi1iYWRnZXttYXJnaW4tdG9wOnZhcigtLXZhbi1wYWRkaW5nLWJhc2UpfS52YW4tdGFiYmFyLWl0ZW1fX2ljb24gaW1ne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjIwcHh9LnZhbi10YWJiYXItaXRlbS0tYWN0aXZle2NvbG9yOnZhcigtLXZhbi10YWJiYXItaXRlbS1hY3RpdmUtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdmFuLXRhYmJhci1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kKX06cm9vdCw6aG9zdHstLXZhbi10ZXh0LWVsbGlwc2lzLWxpbmUtaGVpZ2h0OiAxLjY7LS12YW4tdGV4dC1lbGxpcHNpcy1hY3Rpb24tY29sb3I6IHZhcigtLXZhbi1ibHVlKX0udmFuLXRleHQtZWxsaXBzaXN7bGluZS1oZWlnaHQ6dmFyKC0tdmFuLXRleHQtZWxsaXBzaXMtbGluZS1oZWlnaHQpO3doaXRlLXNwYWNlOnByZS13cmFwO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0udmFuLXRleHQtZWxsaXBzaXNfX2FjdGlvbntjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS12YW4tdGV4dC1lbGxpcHNpcy1hY3Rpb24tY29sb3IpfS52YW4tdGV4dC1lbGxpcHNpc19fYWN0aW9uOmFjdGl2ZXtvcGFjaXR5OnZhcigtLXZhbi1hY3RpdmUtb3BhY2l0eSl9OnJvb3QsOmhvc3R7LS12YW4td2F0ZXJtYXJrLXotaW5kZXg6IDEwMH0udmFuLXdhdGVybWFya3twb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDt6LWluZGV4OnZhcigtLXZhbi13YXRlcm1hcmstei1pbmRleCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O3BvaW50ZXItZXZlbnRzOm5vbmV9LnZhbi13YXRlcm1hcmtfX3dyYXBwZXJ7ZGlzcGxheTpub25lfS52YW4td2F0ZXJtYXJrLS1mdWxse3Bvc2l0aW9uOmZpeGVkfS8qISB0YWlsd2luZGNzcyB2NC4xLjExIHwgTUlUIExpY2Vuc2UgfCBodHRwczovL3RhaWx3aW5kY3NzLmNvbSAqL0BsYXllciBwcm9wZXJ0aWVze0BzdXBwb3J0cyAoKCgtd2Via2l0LWh5cGhlbnM6bm9uZSkpIGFuZCAobm90IChtYXJnaW4tdHJpbTppbmxpbmUpKSkgb3IgKCgtbW96LW9yaWVudDppbmxpbmUpIGFuZCAobm90IChjb2xvcjpyZ2IoZnJvbSByZWQgciBnIGIpKSkpeyosOmJlZm9yZSw6YWZ0ZXIsOjpiYWNrZHJvcHstLXR3LXJvdGF0ZS14OmluaXRpYWw7LS10dy1yb3RhdGUteTppbml0aWFsOy0tdHctcm90YXRlLXo6aW5pdGlhbDstLXR3LXNrZXcteDppbml0aWFsOy0tdHctc2tldy15OmluaXRpYWw7LS10dy1lYXNlOmluaXRpYWx9fX1AbGF5ZXIgdGhlbWV7OnJvb3QsOmhvc3R7LS1mb250LXNhbnM6dWktc2Fucy1zZXJpZixzeXN0ZW0tdWksc2Fucy1zZXJpZiwiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIlNlZ29lIFVJIFN5bWJvbCIsIk5vdG8gQ29sb3IgRW1vamkiOy0tZm9udC1tb25vOnVpLW1vbm9zcGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsIkxpYmVyYXRpb24gTW9ubyIsIkNvdXJpZXIgTmV3Iixtb25vc3BhY2U7LS1zcGFjaW5nOi4yNXJlbTstLWVhc2UtaW4tb3V0OmN1YmljLWJlemllciguNCwwLC4yLDEpOy0tZGVmYXVsdC1mb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpOy0tZGVmYXVsdC1tb25vLWZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyl9fUBsYXllciBiYXNleyosOmFmdGVyLDpiZWZvcmUsOjpiYWNrZHJvcHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOjAgc29saWQ7bWFyZ2luOjA7cGFkZGluZzowfTo6ZmlsZS1zZWxlY3Rvci1idXR0b257Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjowIHNvbGlkO21hcmdpbjowO3BhZGRpbmc6MH1odG1sLDpob3N0ey13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlO3RhYi1zaXplOjQ7bGluZS1oZWlnaHQ6MS41O2ZvbnQtZmFtaWx5OnZhcigtLWRlZmF1bHQtZm9udC1mYW1pbHksdWktc2Fucy1zZXJpZixzeXN0ZW0tdWksc2Fucy1zZXJpZiwiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIlNlZ29lIFVJIFN5bWJvbCIsIk5vdG8gQ29sb3IgRW1vamkiKTtmb250LWZlYXR1cmUtc2V0dGluZ3M6dmFyKC0tZGVmYXVsdC1mb250LWZlYXR1cmUtc2V0dGluZ3Msbm9ybWFsKTtmb250LXZhcmlhdGlvbi1zZXR0aW5nczp2YXIoLS1kZWZhdWx0LWZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLG5vcm1hbCk7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fWhye2hlaWdodDowO2NvbG9yOmluaGVyaXQ7Ym9yZGVyLXRvcC13aWR0aDoxcHh9YWJicjp3aGVyZShbdGl0bGVdKXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkfWgxLGgyLGgzLGg0LGg1LGg2e2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OmluaGVyaXR9YXtjb2xvcjppbmhlcml0Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHNhbXAscHJle2ZvbnQtZmFtaWx5OnZhcigtLWRlZmF1bHQtbW9uby1mb250LWZhbWlseSx1aS1tb25vc3BhY2UsU0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLCJMaWJlcmF0aW9uIE1vbm8iLCJDb3VyaWVyIE5ldyIsbW9ub3NwYWNlKTtmb250LWZlYXR1cmUtc2V0dGluZ3M6dmFyKC0tZGVmYXVsdC1tb25vLWZvbnQtZmVhdHVyZS1zZXR0aW5ncyxub3JtYWwpO2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOnZhcigtLWRlZmF1bHQtbW9uby1mb250LXZhcmlhdGlvbi1zZXR0aW5ncyxub3JtYWwpO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOmF1dG99cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX1vbCx1bCxtZW51e2xpc3Qtc3R5bGU6bm9uZX1pbWcsc3ZnLHZpZGVvLGNhbnZhcyxhdWRpbyxpZnJhbWUsZW1iZWQsb2JqZWN0e3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtkaXNwbGF5OmJsb2NrfWltZyx2aWRlb3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b31idXR0b24saW5wdXQsc2VsZWN0LG9wdGdyb3VwLHRleHRhcmVhe2ZvbnQ6aW5oZXJpdDtmb250LWZlYXR1cmUtc2V0dGluZ3M6aW5oZXJpdDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczppbmhlcml0O2xldHRlci1zcGFjaW5nOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtvcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjojMDAwMDtib3JkZXItcmFkaXVzOjB9OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntmb250OmluaGVyaXQ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O2NvbG9yOmluaGVyaXQ7b3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6IzAwMDA7Ym9yZGVyLXJhZGl1czowfTp3aGVyZShzZWxlY3Q6aXMoW211bHRpcGxlXSxbc2l6ZV0pKSBvcHRncm91cHtmb250LXdlaWdodDpib2xkZXJ9OndoZXJlKHNlbGVjdDppcyhbbXVsdGlwbGVdLFtzaXplXSkpIG9wdGdyb3VwIG9wdGlvbntwYWRkaW5nLWlubGluZS1zdGFydDoyMHB4fTo6ZmlsZS1zZWxlY3Rvci1idXR0b257bWFyZ2luLWlubGluZS1lbmQ6NHB4fTo6cGxhY2Vob2xkZXJ7b3BhY2l0eToxfUBzdXBwb3J0cyAobm90ICgoLXdlYmtpdC1hcHBlYXJhbmNlOi1hcHBsZS1wYXktYnV0dG9uKSkpIG9yIChjb250YWluLWludHJpbnNpYy1zaXplOjFweCl7OjpwbGFjZWhvbGRlcntjb2xvcjpjdXJyZW50Q29sb3J9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLHJlZCxyZWQpKXs6OnBsYWNlaG9sZGVye2NvbG9yOmNvbG9yLW1peChpbiBva2xhYixjdXJyZW50Y29sb3IgNTAlLHRyYW5zcGFyZW50KX19fXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWV7bWluLWhlaWdodDoxbGg7dGV4dC1hbGlnbjppbmhlcml0fTo6LXdlYmtpdC1kYXRldGltZS1lZGl0e2Rpc3BsYXk6aW5saW5lLWZsZXh9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZmllbGRzLXdyYXBwZXJ7cGFkZGluZzowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0e3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1ob3VyLWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taW51dGUtZmllbGR7cGFkZGluZy1ibG9jazowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXNlY29uZC1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbWlsbGlzZWNvbmQtZmllbGR7cGFkZGluZy1ibG9jazowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1lcmlkaWVtLWZpZWxke3BhZGRpbmctYmxvY2s6MH06LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX1idXR0b24saW5wdXQ6d2hlcmUoW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0sW3R5cGU9c3VibWl0XSl7YXBwZWFyYW5jZTpidXR0b259OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbnthcHBlYXJhbmNlOmJ1dHRvbn06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVtoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj11bnRpbC1mb3VuZF0pKXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbGF5ZXIgY29tcG9uZW50cztAbGF5ZXIgdXRpbGl0aWVzey52aXNpYmxle3Zpc2liaWxpdHk6dmlzaWJsZX0ubXQtNHttYXJnaW4tdG9wOmNhbGModmFyKC0tc3BhY2luZykqNCl9LmZsZXh7ZGlzcGxheTpmbGV4fS53LWZ1bGx7d2lkdGg6MTAwJX0udHJhbnNmb3Jte3RyYW5zZm9ybTp2YXIoLS10dy1yb3RhdGUteCwpdmFyKC0tdHctcm90YXRlLXksKXZhcigtLXR3LXJvdGF0ZS16LCl2YXIoLS10dy1za2V3LXgsKXZhcigtLXR3LXNrZXcteSwpfS5mbGV4LWNvbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lml0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9Lmp1c3RpZnktY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnAtNHtwYWRkaW5nOmNhbGModmFyKC0tc3BhY2luZykqNCl9LnB0LTR7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0uZWFzZS1pbi1vdXR7LS10dy1lYXNlOnZhcigtLWVhc2UtaW4tb3V0KTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1lYXNlLWluLW91dCl9fUBwcm9wZXJ0eSAtLXR3LXJvdGF0ZS14e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctcm90YXRlLXl7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1yb3RhdGUtentzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXNrZXcteHtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXNrZXcteXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWVhc2V7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX0K`; const scriptBase64 = `data:text/javascript;base64,KGZ1bmN0aW9uKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikucmVsTGlzdDtpZih0JiZ0LnN1cHBvcnRzJiZ0LnN1cHBvcnRzKCJtb2R1bGVwcmVsb2FkIikpcmV0dXJuO2Zvcihjb25zdCBzIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJtb2R1bGVwcmVsb2FkIl0nKSlyKHMpO25ldyBNdXRhdGlvbk9ic2VydmVyKHM9Pntmb3IoY29uc3QgaSBvZiBzKWlmKGkudHlwZT09PSJjaGlsZExpc3QiKWZvcihjb25zdCBvIG9mIGkuYWRkZWROb2RlcylvLnRhZ05hbWU9PT0iTElOSyImJm8ucmVsPT09Im1vZHVsZXByZWxvYWQiJiZyKG8pfSkub2JzZXJ2ZShkb2N1bWVudCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KTtmdW5jdGlvbiBuKHMpe2NvbnN0IGk9e307cmV0dXJuIHMuaW50ZWdyaXR5JiYoaS5pbnRlZ3JpdHk9cy5pbnRlZ3JpdHkpLHMucmVmZXJyZXJQb2xpY3kmJihpLnJlZmVycmVyUG9saWN5PXMucmVmZXJyZXJQb2xpY3kpLHMuY3Jvc3NPcmlnaW49PT0idXNlLWNyZWRlbnRpYWxzIj9pLmNyZWRlbnRpYWxzPSJpbmNsdWRlIjpzLmNyb3NzT3JpZ2luPT09ImFub255bW91cyI/aS5jcmVkZW50aWFscz0ib21pdCI6aS5jcmVkZW50aWFscz0ic2FtZS1vcmlnaW4iLGl9ZnVuY3Rpb24gcihzKXtpZihzLmVwKXJldHVybjtzLmVwPSEwO2NvbnN0IGk9bihzKTtmZXRjaChzLmhyZWYsaSl9fSkoKTsvKioKKiBAdnVlL3NoYXJlZCB2My41LjE3CiogKGMpIDIwMTgtcHJlc2VudCBZdXhpIChFdmFuKSBZb3UgYW5kIFZ1ZSBjb250cmlidXRvcnMKKiBAbGljZW5zZSBNSVQKKiovLyohICNfX05PX1NJREVfRUZGRUNUU19fICovZnVuY3Rpb24gaGkoZSl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBuIG9mIGUuc3BsaXQoIiwiKSl0W25dPTE7cmV0dXJuIG49Pm4gaW4gdH1jb25zdCBoZT17fSx5bj1bXSxFdD0oKT0+e30sRWM9KCk9PiExLFdyPWU9PmUuY2hhckNvZGVBdCgwKT09PTExMSYmZS5jaGFyQ29kZUF0KDEpPT09MTEwJiYoZS5jaGFyQ29kZUF0KDIpPjEyMnx8ZS5jaGFyQ29kZUF0KDIpPDk3KSxnaT1lPT5lLnN0YXJ0c1dpdGgoIm9uVXBkYXRlOiIpLEJlPU9iamVjdC5hc3NpZ24sbWk9KGUsdCk9Pntjb25zdCBuPWUuaW5kZXhPZih0KTtuPi0xJiZlLnNwbGljZShuLDEpfSxUYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGNlPShlLHQpPT5UYy5jYWxsKGUsdCksSj1BcnJheS5pc0FycmF5LCRuPWU9PktyKGUpPT09IltvYmplY3QgTWFwXSIsQWM9ZT0+S3IoZSk9PT0iW29iamVjdCBTZXRdIixZPWU9PnR5cGVvZiBlPT0iZnVuY3Rpb24iLFNlPWU9PnR5cGVvZiBlPT0ic3RyaW5nIixDbj1lPT50eXBlb2YgZT09InN5bWJvbCIsQ2U9ZT0+ZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IixtbD1lPT4oQ2UoZSl8fFkoZSkpJiZZKGUudGhlbikmJlkoZS5jYXRjaCksT2M9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxLcj1lPT5PYy5jYWxsKGUpLFJjPWU9PktyKGUpLnNsaWNlKDgsLTEpLEljPWU9PktyKGUpPT09IltvYmplY3QgT2JqZWN0XSIscGk9ZT0+U2UoZSkmJmUhPT0iTmFOIiYmZVswXSE9PSItIiYmIiIrcGFyc2VJbnQoZSwxMCk9PT1lLExuPWhpKCIsa2V5LHJlZixyZWZfZm9yLHJlZl9rZXksb25Wbm9kZUJlZm9yZU1vdW50LG9uVm5vZGVNb3VudGVkLG9uVm5vZGVCZWZvcmVVcGRhdGUsb25Wbm9kZVVwZGF0ZWQsb25Wbm9kZUJlZm9yZVVubW91bnQsb25Wbm9kZVVubW91bnRlZCIpLEpyPWU9Pntjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG49PnRbbl18fCh0W25dPWUobikpfSxQYz0vLShcdykvZyxhdD1KcihlPT5lLnJlcGxhY2UoUGMsKHQsbik9Pm4/bi50b1VwcGVyQ2FzZSgpOiIiKSksQmM9L1xCKFtBLVpdKS9nLGt0PUpyKGU9PmUucmVwbGFjZShCYywiLSQxIikudG9Mb3dlckNhc2UoKSksR3I9SnIoZT0+ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpKSx3cz1KcihlPT5lP2BvbiR7R3IoZSl9YDoiIikscXQ9KGUsdCk9PiFPYmplY3QuaXMoZSx0KSx4cz0oZSwuLi50KT0+e2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKWVbbl0oLi4udCl9LGpzPShlLHQsbixyPSExKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOnIsdmFsdWU6bn0pfSxGYz1lPT57Y29uc3QgdD1wYXJzZUZsb2F0KGUpO3JldHVybiBpc05hTih0KT9lOnR9LERjPWU9Pntjb25zdCB0PVNlKGUpP051bWJlcihlKTpOYU47cmV0dXJuIGlzTmFOKHQpP2U6dH07bGV0IHFpO2NvbnN0IFlyPSgpPT5xaXx8KHFpPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6e30pO2Z1bmN0aW9uIFhyKGUpe2lmKEooZSkpe2NvbnN0IHQ9e307Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2NvbnN0IHI9ZVtuXSxzPVNlKHIpP0xjKHIpOlhyKHIpO2lmKHMpZm9yKGNvbnN0IGkgaW4gcyl0W2ldPXNbaV19cmV0dXJuIHR9ZWxzZSBpZihTZShlKXx8Q2UoZSkpcmV0dXJuIGV9Y29uc3QgTmM9LzsoPyFbXihdKlwpKS9nLGtjPS86KFteXSspLywkYz0vXC9cKlteXSo/XCpcLy9nO2Z1bmN0aW9uIExjKGUpe2NvbnN0IHQ9e307cmV0dXJuIGUucmVwbGFjZSgkYywiIikuc3BsaXQoTmMpLmZvckVhY2gobj0+e2lmKG4pe2NvbnN0IHI9bi5zcGxpdChrYyk7ci5sZW5ndGg+MSYmKHRbclswXS50cmltKCldPXJbMV0udHJpbSgpKX19KSx0fWZ1bmN0aW9uIE1jKGUpe2lmKCFlKXJldHVybiIiO2lmKFNlKGUpKXJldHVybiBlO2xldCB0PSIiO2Zvcihjb25zdCBuIGluIGUpe2NvbnN0IHI9ZVtuXTtpZihTZShyKXx8dHlwZW9mIHI9PSJudW1iZXIiKXtjb25zdCBzPW4uc3RhcnRzV2l0aCgiLS0iKT9uOmt0KG4pO3QrPWAke3N9OiR7cn07YH19cmV0dXJuIHR9ZnVuY3Rpb24gWnIoZSl7bGV0IHQ9IiI7aWYoU2UoZSkpdD1lO2Vsc2UgaWYoSihlKSlmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7Y29uc3Qgcj1acihlW25dKTtyJiYodCs9cisiICIpfWVsc2UgaWYoQ2UoZSkpZm9yKGNvbnN0IG4gaW4gZSllW25dJiYodCs9bisiICIpO3JldHVybiB0LnRyaW0oKX1jb25zdCBIYz0iaXRlbXNjb3BlLGFsbG93ZnVsbHNjcmVlbixmb3Jtbm92YWxpZGF0ZSxpc21hcCxub21vZHVsZSxub3ZhbGlkYXRlLHJlYWRvbmx5IixVYz1oaShIYyk7ZnVuY3Rpb24gcGwoZSl7cmV0dXJuISFlfHxlPT09IiJ9LyoqCiogQHZ1ZS9yZWFjdGl2aXR5IHYzLjUuMTcKKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwoqIEBsaWNlbnNlIE1JVAoqKi9sZXQgWWU7Y2xhc3MgamN7Y29uc3RydWN0b3IodD0hMSl7dGhpcy5kZXRhY2hlZD10LHRoaXMuX2FjdGl2ZT0hMCx0aGlzLl9vbj0wLHRoaXMuZWZmZWN0cz1bXSx0aGlzLmNsZWFudXBzPVtdLHRoaXMuX2lzUGF1c2VkPSExLHRoaXMucGFyZW50PVllLCF0JiZZZSYmKHRoaXMuaW5kZXg9KFllLnNjb3Blc3x8KFllLnNjb3Blcz1bXSkpLnB1c2godGhpcyktMSl9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLl9hY3RpdmV9cGF1c2UoKXtpZih0aGlzLl9hY3RpdmUpe3RoaXMuX2lzUGF1c2VkPSEwO2xldCB0LG47aWYodGhpcy5zY29wZXMpZm9yKHQ9MCxuPXRoaXMuc2NvcGVzLmxlbmd0aDt0PG47dCsrKXRoaXMuc2NvcGVzW3RdLnBhdXNlKCk7Zm9yKHQ9MCxuPXRoaXMuZWZmZWN0cy5sZW5ndGg7dDxuO3QrKyl0aGlzLmVmZmVjdHNbdF0ucGF1c2UoKX19cmVzdW1lKCl7aWYodGhpcy5fYWN0aXZlJiZ0aGlzLl9pc1BhdXNlZCl7dGhpcy5faXNQYXVzZWQ9ITE7bGV0IHQsbjtpZih0aGlzLnNjb3Blcylmb3IodD0wLG49dGhpcy5zY29wZXMubGVuZ3RoO3Q8bjt0KyspdGhpcy5zY29wZXNbdF0ucmVzdW1lKCk7Zm9yKHQ9MCxuPXRoaXMuZWZmZWN0cy5sZW5ndGg7dDxuO3QrKyl0aGlzLmVmZmVjdHNbdF0ucmVzdW1lKCl9fXJ1bih0KXtpZih0aGlzLl9hY3RpdmUpe2NvbnN0IG49WWU7dHJ5e3JldHVybiBZZT10aGlzLHQoKX1maW5hbGx5e1llPW59fX1vbigpeysrdGhpcy5fb249PT0xJiYodGhpcy5wcmV2U2NvcGU9WWUsWWU9dGhpcyl9b2ZmKCl7dGhpcy5fb24+MCYmLS10aGlzLl9vbj09PTAmJihZZT10aGlzLnByZXZTY29wZSx0aGlzLnByZXZTY29wZT12b2lkIDApfXN0b3AodCl7aWYodGhpcy5fYWN0aXZlKXt0aGlzLl9hY3RpdmU9ITE7bGV0IG4scjtmb3Iobj0wLHI9dGhpcy5lZmZlY3RzLmxlbmd0aDtuPHI7bisrKXRoaXMuZWZmZWN0c1tuXS5zdG9wKCk7Zm9yKHRoaXMuZWZmZWN0cy5sZW5ndGg9MCxuPTAscj10aGlzLmNsZWFudXBzLmxlbmd0aDtuPHI7bisrKXRoaXMuY2xlYW51cHNbbl0oKTtpZih0aGlzLmNsZWFudXBzLmxlbmd0aD0wLHRoaXMuc2NvcGVzKXtmb3Iobj0wLHI9dGhpcy5zY29wZXMubGVuZ3RoO248cjtuKyspdGhpcy5zY29wZXNbbl0uc3RvcCghMCk7dGhpcy5zY29wZXMubGVuZ3RoPTB9aWYoIXRoaXMuZGV0YWNoZWQmJnRoaXMucGFyZW50JiYhdCl7Y29uc3Qgcz10aGlzLnBhcmVudC5zY29wZXMucG9wKCk7cyYmcyE9PXRoaXMmJih0aGlzLnBhcmVudC5zY29wZXNbdGhpcy5pbmRleF09cyxzLmluZGV4PXRoaXMuaW5kZXgpfXRoaXMucGFyZW50PXZvaWQgMH19fWZ1bmN0aW9uIFZjKCl7cmV0dXJuIFllfWxldCBtZTtjb25zdCBTcz1uZXcgV2Vha1NldDtjbGFzcyB5bHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmZuPXQsdGhpcy5kZXBzPXZvaWQgMCx0aGlzLmRlcHNUYWlsPXZvaWQgMCx0aGlzLmZsYWdzPTUsdGhpcy5uZXh0PXZvaWQgMCx0aGlzLmNsZWFudXA9dm9pZCAwLHRoaXMuc2NoZWR1bGVyPXZvaWQgMCxZZSYmWWUuYWN0aXZlJiZZZS5lZmZlY3RzLnB1c2godGhpcyl9cGF1c2UoKXt0aGlzLmZsYWdzfD02NH1yZXN1bWUoKXt0aGlzLmZsYWdzJjY0JiYodGhpcy5mbGFncyY9LTY1LFNzLmhhcyh0aGlzKSYmKFNzLmRlbGV0ZSh0aGlzKSx0aGlzLnRyaWdnZXIoKSkpfW5vdGlmeSgpe3RoaXMuZmxhZ3MmMiYmISh0aGlzLmZsYWdzJjMyKXx8dGhpcy5mbGFncyY4fHx2bCh0aGlzKX1ydW4oKXtpZighKHRoaXMuZmxhZ3MmMSkpcmV0dXJuIHRoaXMuZm4oKTt0aGlzLmZsYWdzfD0yLFdpKHRoaXMpLF9sKHRoaXMpO2NvbnN0IHQ9bWUsbj1mdDttZT10aGlzLGZ0PSEwO3RyeXtyZXR1cm4gdGhpcy5mbigpfWZpbmFsbHl7d2wodGhpcyksbWU9dCxmdD1uLHRoaXMuZmxhZ3MmPS0zfX1zdG9wKCl7aWYodGhpcy5mbGFncyYxKXtmb3IobGV0IHQ9dGhpcy5kZXBzO3Q7dD10Lm5leHREZXApdmkodCk7dGhpcy5kZXBzPXRoaXMuZGVwc1RhaWw9dm9pZCAwLFdpKHRoaXMpLHRoaXMub25TdG9wJiZ0aGlzLm9uU3RvcCgpLHRoaXMuZmxhZ3MmPS0yfX10cmlnZ2VyKCl7dGhpcy5mbGFncyY2ND9Tcy5hZGQodGhpcyk6dGhpcy5zY2hlZHVsZXI/dGhpcy5zY2hlZHVsZXIoKTp0aGlzLnJ1bklmRGlydHkoKX1ydW5JZkRpcnR5KCl7VnModGhpcykmJnRoaXMucnVuKCl9Z2V0IGRpcnR5KCl7cmV0dXJuIFZzKHRoaXMpfX1sZXQgYmw9MCxNbixIbjtmdW5jdGlvbiB2bChlLHQ9ITEpe2lmKGUuZmxhZ3N8PTgsdCl7ZS5uZXh0PUhuLEhuPWU7cmV0dXJufWUubmV4dD1NbixNbj1lfWZ1bmN0aW9uIHlpKCl7YmwrK31mdW5jdGlvbiBiaSgpe2lmKC0tYmw+MClyZXR1cm47aWYoSG4pe2xldCB0PUhuO2ZvcihIbj12b2lkIDA7dDspe2NvbnN0IG49dC5uZXh0O3QubmV4dD12b2lkIDAsdC5mbGFncyY9LTksdD1ufX1sZXQgZTtmb3IoO01uOyl7bGV0IHQ9TW47Zm9yKE1uPXZvaWQgMDt0Oyl7Y29uc3Qgbj10Lm5leHQ7aWYodC5uZXh0PXZvaWQgMCx0LmZsYWdzJj0tOSx0LmZsYWdzJjEpdHJ5e3QudHJpZ2dlcigpfWNhdGNoKHIpe2V8fChlPXIpfXQ9bn19aWYoZSl0aHJvdyBlfWZ1bmN0aW9uIF9sKGUpe2ZvcihsZXQgdD1lLmRlcHM7dDt0PXQubmV4dERlcCl0LnZlcnNpb249LTEsdC5wcmV2QWN0aXZlTGluaz10LmRlcC5hY3RpdmVMaW5rLHQuZGVwLmFjdGl2ZUxpbms9dH1mdW5jdGlvbiB3bChlKXtsZXQgdCxuPWUuZGVwc1RhaWwscj1uO2Zvcig7cjspe2NvbnN0IHM9ci5wcmV2RGVwO3IudmVyc2lvbj09PS0xPyhyPT09biYmKG49cyksdmkociksemMocikpOnQ9cixyLmRlcC5hY3RpdmVMaW5rPXIucHJldkFjdGl2ZUxpbmssci5wcmV2QWN0aXZlTGluaz12b2lkIDAscj1zfWUuZGVwcz10LGUuZGVwc1RhaWw9bn1mdW5jdGlvbiBWcyhlKXtmb3IobGV0IHQ9ZS5kZXBzO3Q7dD10Lm5leHREZXApaWYodC5kZXAudmVyc2lvbiE9PXQudmVyc2lvbnx8dC5kZXAuY29tcHV0ZWQmJih4bCh0LmRlcC5jb21wdXRlZCl8fHQuZGVwLnZlcnNpb24hPT10LnZlcnNpb24pKXJldHVybiEwO3JldHVybiEhZS5fZGlydHl9ZnVuY3Rpb24geGwoZSl7aWYoZS5mbGFncyY0JiYhKGUuZmxhZ3MmMTYpfHwoZS5mbGFncyY9LTE3LGUuZ2xvYmFsVmVyc2lvbj09PUtuKXx8KGUuZ2xvYmFsVmVyc2lvbj1LbiwhZS5pc1NTUiYmZS5mbGFncyYxMjgmJighZS5kZXBzJiYhZS5fZGlydHl8fCFWcyhlKSkpKXJldHVybjtlLmZsYWdzfD0yO2NvbnN0IHQ9ZS5kZXAsbj1tZSxyPWZ0O21lPWUsZnQ9ITA7dHJ5e19sKGUpO2NvbnN0IHM9ZS5mbihlLl92YWx1ZSk7KHQudmVyc2lvbj09PTB8fHF0KHMsZS5fdmFsdWUpKSYmKGUuZmxhZ3N8PTEyOCxlLl92YWx1ZT1zLHQudmVyc2lvbisrKX1jYXRjaChzKXt0aHJvdyB0LnZlcnNpb24rKyxzfWZpbmFsbHl7bWU9bixmdD1yLHdsKGUpLGUuZmxhZ3MmPS0zfX1mdW5jdGlvbiB2aShlLHQ9ITEpe2NvbnN0e2RlcDpuLHByZXZTdWI6cixuZXh0U3ViOnN9PWU7aWYociYmKHIubmV4dFN1Yj1zLGUucHJldlN1Yj12b2lkIDApLHMmJihzLnByZXZTdWI9cixlLm5leHRTdWI9dm9pZCAwKSxuLnN1YnM9PT1lJiYobi5zdWJzPXIsIXImJm4uY29tcHV0ZWQpKXtuLmNvbXB1dGVkLmZsYWdzJj0tNTtmb3IobGV0IGk9bi5jb21wdXRlZC5kZXBzO2k7aT1pLm5leHREZXApdmkoaSwhMCl9IXQmJiEtLW4uc2MmJm4ubWFwJiZuLm1hcC5kZWxldGUobi5rZXkpfWZ1bmN0aW9uIHpjKGUpe2NvbnN0e3ByZXZEZXA6dCxuZXh0RGVwOm59PWU7dCYmKHQubmV4dERlcD1uLGUucHJldkRlcD12b2lkIDApLG4mJihuLnByZXZEZXA9dCxlLm5leHREZXA9dm9pZCAwKX1sZXQgZnQ9ITA7Y29uc3QgU2w9W107ZnVuY3Rpb24gRHQoKXtTbC5wdXNoKGZ0KSxmdD0hMX1mdW5jdGlvbiBOdCgpe2NvbnN0IGU9U2wucG9wKCk7ZnQ9ZT09PXZvaWQgMD8hMDplfWZ1bmN0aW9uIFdpKGUpe2NvbnN0e2NsZWFudXA6dH09ZTtpZihlLmNsZWFudXA9dm9pZCAwLHQpe2NvbnN0IG49bWU7bWU9dm9pZCAwO3RyeXt0KCl9ZmluYWxseXttZT1ufX19bGV0IEtuPTA7Y2xhc3MgcWN7Y29uc3RydWN0b3IodCxuKXt0aGlzLnN1Yj10LHRoaXMuZGVwPW4sdGhpcy52ZXJzaW9uPW4udmVyc2lvbix0aGlzLm5leHREZXA9dGhpcy5wcmV2RGVwPXRoaXMubmV4dFN1Yj10aGlzLnByZXZTdWI9dGhpcy5wcmV2QWN0aXZlTGluaz12b2lkIDB9fWNsYXNzIF9pe2NvbnN0cnVjdG9yKHQpe3RoaXMuY29tcHV0ZWQ9dCx0aGlzLnZlcnNpb249MCx0aGlzLmFjdGl2ZUxpbms9dm9pZCAwLHRoaXMuc3Vicz12b2lkIDAsdGhpcy5tYXA9dm9pZCAwLHRoaXMua2V5PXZvaWQgMCx0aGlzLnNjPTAsdGhpcy5fX3Zfc2tpcD0hMH10cmFjayh0KXtpZighbWV8fCFmdHx8bWU9PT10aGlzLmNvbXB1dGVkKXJldHVybjtsZXQgbj10aGlzLmFjdGl2ZUxpbms7aWYobj09PXZvaWQgMHx8bi5zdWIhPT1tZSluPXRoaXMuYWN0aXZlTGluaz1uZXcgcWMobWUsdGhpcyksbWUuZGVwcz8obi5wcmV2RGVwPW1lLmRlcHNUYWlsLG1lLmRlcHNUYWlsLm5leHREZXA9bixtZS5kZXBzVGFpbD1uKTptZS5kZXBzPW1lLmRlcHNUYWlsPW4sQ2wobik7ZWxzZSBpZihuLnZlcnNpb249PT0tMSYmKG4udmVyc2lvbj10aGlzLnZlcnNpb24sbi5uZXh0RGVwKSl7Y29uc3Qgcj1uLm5leHREZXA7ci5wcmV2RGVwPW4ucHJldkRlcCxuLnByZXZEZXAmJihuLnByZXZEZXAubmV4dERlcD1yKSxuLnByZXZEZXA9bWUuZGVwc1RhaWwsbi5uZXh0RGVwPXZvaWQgMCxtZS5kZXBzVGFpbC5uZXh0RGVwPW4sbWUuZGVwc1RhaWw9bixtZS5kZXBzPT09biYmKG1lLmRlcHM9cil9cmV0dXJuIG59dHJpZ2dlcih0KXt0aGlzLnZlcnNpb24rKyxLbisrLHRoaXMubm90aWZ5KHQpfW5vdGlmeSh0KXt5aSgpO3RyeXtmb3IobGV0IG49dGhpcy5zdWJzO247bj1uLnByZXZTdWIpbi5zdWIubm90aWZ5KCkmJm4uc3ViLmRlcC5ub3RpZnkoKX1maW5hbGx5e2JpKCl9fX1mdW5jdGlvbiBDbChlKXtpZihlLmRlcC5zYysrLGUuc3ViLmZsYWdzJjQpe2NvbnN0IHQ9ZS5kZXAuY29tcHV0ZWQ7aWYodCYmIWUuZGVwLnN1YnMpe3QuZmxhZ3N8PTIwO2ZvcihsZXQgcj10LmRlcHM7cjtyPXIubmV4dERlcClDbChyKX1jb25zdCBuPWUuZGVwLnN1YnM7biE9PWUmJihlLnByZXZTdWI9bixuJiYobi5uZXh0U3ViPWUpKSxlLmRlcC5zdWJzPWV9fWNvbnN0IHpzPW5ldyBXZWFrTWFwLHNuPVN5bWJvbCgiIikscXM9U3ltYm9sKCIiKSxKbj1TeW1ib2woIiIpO2Z1bmN0aW9uIE1lKGUsdCxuKXtpZihmdCYmbWUpe2xldCByPXpzLmdldChlKTtyfHx6cy5zZXQoZSxyPW5ldyBNYXApO2xldCBzPXIuZ2V0KG4pO3N8fChyLnNldChuLHM9bmV3IF9pKSxzLm1hcD1yLHMua2V5PW4pLHMudHJhY2soKX19ZnVuY3Rpb24gUHQoZSx0LG4scixzLGkpe2NvbnN0IG89enMuZ2V0KGUpO2lmKCFvKXtLbisrO3JldHVybn1jb25zdCBsPWE9PnthJiZhLnRyaWdnZXIoKX07aWYoeWkoKSx0PT09ImNsZWFyIilvLmZvckVhY2gobCk7ZWxzZXtjb25zdCBhPUooZSksdT1hJiZwaShuKTtpZihhJiZuPT09Imxlbmd0aCIpe2NvbnN0IGM9TnVtYmVyKHIpO28uZm9yRWFjaCgoZixoKT0+eyhoPT09Imxlbmd0aCJ8fGg9PT1Kbnx8IUNuKGgpJiZoPj1jKSYmbChmKX0pfWVsc2Ugc3dpdGNoKChuIT09dm9pZCAwfHxvLmhhcyh2b2lkIDApKSYmbChvLmdldChuKSksdSYmbChvLmdldChKbikpLHQpe2Nhc2UiYWRkIjphP3UmJmwoby5nZXQoImxlbmd0aCIpKToobChvLmdldChzbikpLCRuKGUpJiZsKG8uZ2V0KHFzKSkpO2JyZWFrO2Nhc2UiZGVsZXRlIjphfHwobChvLmdldChzbikpLCRuKGUpJiZsKG8uZ2V0KHFzKSkpO2JyZWFrO2Nhc2Uic2V0IjokbihlKSYmbChvLmdldChzbikpO2JyZWFrfX1iaSgpfWZ1bmN0aW9uIGZuKGUpe2NvbnN0IHQ9bGUoZSk7cmV0dXJuIHQ9PT1lP3Q6KE1lKHQsIml0ZXJhdGUiLEpuKSxsdChlKT90OnQubWFwKERlKSl9ZnVuY3Rpb24gUXIoZSl7cmV0dXJuIE1lKGU9bGUoZSksIml0ZXJhdGUiLEpuKSxlfWNvbnN0IFdjPXtfX3Byb3RvX186bnVsbCxbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBDcyh0aGlzLFN5bWJvbC5pdGVyYXRvcixEZSl9LGNvbmNhdCguLi5lKXtyZXR1cm4gZm4odGhpcykuY29uY2F0KC4uLmUubWFwKHQ9PkoodCk/Zm4odCk6dCkpfSxlbnRyaWVzKCl7cmV0dXJuIENzKHRoaXMsImVudHJpZXMiLGU9PihlWzFdPURlKGVbMV0pLGUpKX0sZXZlcnkoZSx0KXtyZXR1cm4gQXQodGhpcywiZXZlcnkiLGUsdCx2b2lkIDAsYXJndW1lbnRzKX0sZmlsdGVyKGUsdCl7cmV0dXJuIEF0KHRoaXMsImZpbHRlciIsZSx0LG49Pm4ubWFwKERlKSxhcmd1bWVudHMpfSxmaW5kKGUsdCl7cmV0dXJuIEF0KHRoaXMsImZpbmQiLGUsdCxEZSxhcmd1bWVudHMpfSxmaW5kSW5kZXgoZSx0KXtyZXR1cm4gQXQodGhpcywiZmluZEluZGV4IixlLHQsdm9pZCAwLGFyZ3VtZW50cyl9LGZpbmRMYXN0KGUsdCl7cmV0dXJuIEF0KHRoaXMsImZpbmRMYXN0IixlLHQsRGUsYXJndW1lbnRzKX0sZmluZExhc3RJbmRleChlLHQpe3JldHVybiBBdCh0aGlzLCJmaW5kTGFzdEluZGV4IixlLHQsdm9pZCAwLGFyZ3VtZW50cyl9LGZvckVhY2goZSx0KXtyZXR1cm4gQXQodGhpcywiZm9yRWFjaCIsZSx0LHZvaWQgMCxhcmd1bWVudHMpfSxpbmNsdWRlcyguLi5lKXtyZXR1cm4gRXModGhpcywiaW5jbHVkZXMiLGUpfSxpbmRleE9mKC4uLmUpe3JldHVybiBFcyh0aGlzLCJpbmRleE9mIixlKX0sam9pbihlKXtyZXR1cm4gZm4odGhpcykuam9pbihlKX0sbGFzdEluZGV4T2YoLi4uZSl7cmV0dXJuIEVzKHRoaXMsImxhc3RJbmRleE9mIixlKX0sbWFwKGUsdCl7cmV0dXJuIEF0KHRoaXMsIm1hcCIsZSx0LHZvaWQgMCxhcmd1bWVudHMpfSxwb3AoKXtyZXR1cm4gSW4odGhpcywicG9wIil9LHB1c2goLi4uZSl7cmV0dXJuIEluKHRoaXMsInB1c2giLGUpfSxyZWR1Y2UoZSwuLi50KXtyZXR1cm4gS2kodGhpcywicmVkdWNlIixlLHQpfSxyZWR1Y2VSaWdodChlLC4uLnQpe3JldHVybiBLaSh0aGlzLCJyZWR1Y2VSaWdodCIsZSx0KX0sc2hpZnQoKXtyZXR1cm4gSW4odGhpcywic2hpZnQiKX0sc29tZShlLHQpe3JldHVybiBBdCh0aGlzLCJzb21lIixlLHQsdm9pZCAwLGFyZ3VtZW50cyl9LHNwbGljZSguLi5lKXtyZXR1cm4gSW4odGhpcywic3BsaWNlIixlKX0sdG9SZXZlcnNlZCgpe3JldHVybiBmbih0aGlzKS50b1JldmVyc2VkKCl9LHRvU29ydGVkKGUpe3JldHVybiBmbih0aGlzKS50b1NvcnRlZChlKX0sdG9TcGxpY2VkKC4uLmUpe3JldHVybiBmbih0aGlzKS50b1NwbGljZWQoLi4uZSl9LHVuc2hpZnQoLi4uZSl7cmV0dXJuIEluKHRoaXMsInVuc2hpZnQiLGUpfSx2YWx1ZXMoKXtyZXR1cm4gQ3ModGhpcywidmFsdWVzIixEZSl9fTtmdW5jdGlvbiBDcyhlLHQsbil7Y29uc3Qgcj1RcihlKSxzPXJbdF0oKTtyZXR1cm4gciE9PWUmJiFsdChlKSYmKHMuX25leHQ9cy5uZXh0LHMubmV4dD0oKT0+e2NvbnN0IGk9cy5fbmV4dCgpO3JldHVybiBpLnZhbHVlJiYoaS52YWx1ZT1uKGkudmFsdWUpKSxpfSksc31jb25zdCBLYz1BcnJheS5wcm90b3R5cGU7ZnVuY3Rpb24gQXQoZSx0LG4scixzLGkpe2NvbnN0IG89UXIoZSksbD1vIT09ZSYmIWx0KGUpLGE9b1t0XTtpZihhIT09S2NbdF0pe2NvbnN0IGY9YS5hcHBseShlLGkpO3JldHVybiBsP0RlKGYpOmZ9bGV0IHU9bjtvIT09ZSYmKGw/dT1mdW5jdGlvbihmLGgpe3JldHVybiBuLmNhbGwodGhpcyxEZShmKSxoLGUpfTpuLmxlbmd0aD4yJiYodT1mdW5jdGlvbihmLGgpe3JldHVybiBuLmNhbGwodGhpcyxmLGgsZSl9KSk7Y29uc3QgYz1hLmNhbGwobyx1LHIpO3JldHVybiBsJiZzP3MoYyk6Y31mdW5jdGlvbiBLaShlLHQsbixyKXtjb25zdCBzPVFyKGUpO2xldCBpPW47cmV0dXJuIHMhPT1lJiYobHQoZSk/bi5sZW5ndGg+MyYmKGk9ZnVuY3Rpb24obyxsLGEpe3JldHVybiBuLmNhbGwodGhpcyxvLGwsYSxlKX0pOmk9ZnVuY3Rpb24obyxsLGEpe3JldHVybiBuLmNhbGwodGhpcyxvLERlKGwpLGEsZSl9KSxzW3RdKGksLi4ucil9ZnVuY3Rpb24gRXMoZSx0LG4pe2NvbnN0IHI9bGUoZSk7TWUociwiaXRlcmF0ZSIsSm4pO2NvbnN0IHM9clt0XSguLi5uKTtyZXR1cm4ocz09PS0xfHxzPT09ITEpJiZTaShuWzBdKT8oblswXT1sZShuWzBdKSxyW3RdKC4uLm4pKTpzfWZ1bmN0aW9uIEluKGUsdCxuPVtdKXtEdCgpLHlpKCk7Y29uc3Qgcj1sZShlKVt0XS5hcHBseShlLG4pO3JldHVybiBiaSgpLE50KCkscn1jb25zdCBKYz1oaSgiX19wcm90b19fLF9fdl9pc1JlZixfX2lzVnVlIiksRWw9bmV3IFNldChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTeW1ib2wpLmZpbHRlcihlPT5lIT09ImFyZ3VtZW50cyImJmUhPT0iY2FsbGVyIikubWFwKGU9PlN5bWJvbFtlXSkuZmlsdGVyKENuKSk7ZnVuY3Rpb24gR2MoZSl7Q24oZSl8fChlPVN0cmluZyhlKSk7Y29uc3QgdD1sZSh0aGlzKTtyZXR1cm4gTWUodCwiaGFzIixlKSx0Lmhhc093blByb3BlcnR5KGUpfWNsYXNzIFRse2NvbnN0cnVjdG9yKHQ9ITEsbj0hMSl7dGhpcy5faXNSZWFkb25seT10LHRoaXMuX2lzU2hhbGxvdz1ufWdldCh0LG4scil7aWYobj09PSJfX3Zfc2tpcCIpcmV0dXJuIHQuX192X3NraXA7Y29uc3Qgcz10aGlzLl9pc1JlYWRvbmx5LGk9dGhpcy5faXNTaGFsbG93O2lmKG49PT0iX192X2lzUmVhY3RpdmUiKXJldHVybiFzO2lmKG49PT0iX192X2lzUmVhZG9ubHkiKXJldHVybiBzO2lmKG49PT0iX192X2lzU2hhbGxvdyIpcmV0dXJuIGk7aWYobj09PSJfX3ZfcmF3IilyZXR1cm4gcj09PShzP2k/aXU6SWw6aT9SbDpPbCkuZ2V0KHQpfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocik/dDp2b2lkIDA7Y29uc3Qgbz1KKHQpO2lmKCFzKXtsZXQgYTtpZihvJiYoYT1XY1tuXSkpcmV0dXJuIGE7aWYobj09PSJoYXNPd25Qcm9wZXJ0eSIpcmV0dXJuIEdjfWNvbnN0IGw9UmVmbGVjdC5nZXQodCxuLGtlKHQpP3Q6cik7cmV0dXJuKENuKG4pP0VsLmhhcyhuKTpKYyhuKSl8fChzfHxNZSh0LCJnZXQiLG4pLGkpP2w6a2UobCk/byYmcGkobik/bDpsLnZhbHVlOkNlKGwpP3M/UGwobCk6cnQobCk6bH19Y2xhc3MgQWwgZXh0ZW5kcyBUbHtjb25zdHJ1Y3Rvcih0PSExKXtzdXBlcighMSx0KX1zZXQodCxuLHIscyl7bGV0IGk9dFtuXTtpZighdGhpcy5faXNTaGFsbG93KXtjb25zdCBhPUt0KGkpO2lmKCFsdChyKSYmIUt0KHIpJiYoaT1sZShpKSxyPWxlKHIpKSwhSih0KSYma2UoaSkmJiFrZShyKSlyZXR1cm4gYT8hMTooaS52YWx1ZT1yLCEwKX1jb25zdCBvPUoodCkmJnBpKG4pP051bWJlcihuKTx0Lmxlbmd0aDpjZSh0LG4pLGw9UmVmbGVjdC5zZXQodCxuLHIsa2UodCk/dDpzKTtyZXR1cm4gdD09PWxlKHMpJiYobz9xdChyLGkpJiZQdCh0LCJzZXQiLG4scik6UHQodCwiYWRkIixuLHIpKSxsfWRlbGV0ZVByb3BlcnR5KHQsbil7Y29uc3Qgcj1jZSh0LG4pO3Rbbl07Y29uc3Qgcz1SZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHQsbik7cmV0dXJuIHMmJnImJlB0KHQsImRlbGV0ZSIsbix2b2lkIDApLHN9aGFzKHQsbil7Y29uc3Qgcj1SZWZsZWN0Lmhhcyh0LG4pO3JldHVybighQ24obil8fCFFbC5oYXMobikpJiZNZSh0LCJoYXMiLG4pLHJ9b3duS2V5cyh0KXtyZXR1cm4gTWUodCwiaXRlcmF0ZSIsSih0KT8ibGVuZ3RoIjpzbiksUmVmbGVjdC5vd25LZXlzKHQpfX1jbGFzcyBZYyBleHRlbmRzIFRse2NvbnN0cnVjdG9yKHQ9ITEpe3N1cGVyKCEwLHQpfXNldCh0LG4pe3JldHVybiEwfWRlbGV0ZVByb3BlcnR5KHQsbil7cmV0dXJuITB9fWNvbnN0IFhjPW5ldyBBbCxaYz1uZXcgWWMsUWM9bmV3IEFsKCEwKTtjb25zdCBXcz1lPT5lLG1yPWU9PlJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoZSk7ZnVuY3Rpb24gZXUoZSx0LG4pe3JldHVybiBmdW5jdGlvbiguLi5yKXtjb25zdCBzPXRoaXMuX192X3JhdyxpPWxlKHMpLG89JG4oaSksbD1lPT09ImVudHJpZXMifHxlPT09U3ltYm9sLml0ZXJhdG9yJiZvLGE9ZT09PSJrZXlzIiYmbyx1PXNbZV0oLi4uciksYz1uP1dzOnQ/RnI6RGU7cmV0dXJuIXQmJk1lKGksIml0ZXJhdGUiLGE/cXM6c24pLHtuZXh0KCl7Y29uc3R7dmFsdWU6Zixkb25lOmh9PXUubmV4dCgpO3JldHVybiBoP3t2YWx1ZTpmLGRvbmU6aH06e3ZhbHVlOmw/W2MoZlswXSksYyhmWzFdKV06YyhmKSxkb25lOmh9fSxbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzfX19fWZ1bmN0aW9uIHByKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtyZXR1cm4gZT09PSJkZWxldGUiPyExOmU9PT0iY2xlYXIiP3ZvaWQgMDp0aGlzfX1mdW5jdGlvbiB0dShlLHQpe2NvbnN0IG49e2dldChzKXtjb25zdCBpPXRoaXMuX192X3JhdyxvPWxlKGkpLGw9bGUocyk7ZXx8KHF0KHMsbCkmJk1lKG8sImdldCIscyksTWUobywiZ2V0IixsKSk7Y29uc3R7aGFzOmF9PW1yKG8pLHU9dD9XczplP0ZyOkRlO2lmKGEuY2FsbChvLHMpKXJldHVybiB1KGkuZ2V0KHMpKTtpZihhLmNhbGwobyxsKSlyZXR1cm4gdShpLmdldChsKSk7aSE9PW8mJmkuZ2V0KHMpfSxnZXQgc2l6ZSgpe2NvbnN0IHM9dGhpcy5fX3ZfcmF3O3JldHVybiFlJiZNZShsZShzKSwiaXRlcmF0ZSIsc24pLFJlZmxlY3QuZ2V0KHMsInNpemUiLHMpfSxoYXMocyl7Y29uc3QgaT10aGlzLl9fdl9yYXcsbz1sZShpKSxsPWxlKHMpO3JldHVybiBlfHwocXQocyxsKSYmTWUobywiaGFzIixzKSxNZShvLCJoYXMiLGwpKSxzPT09bD9pLmhhcyhzKTppLmhhcyhzKXx8aS5oYXMobCl9LGZvckVhY2gocyxpKXtjb25zdCBvPXRoaXMsbD1vLl9fdl9yYXcsYT1sZShsKSx1PXQ/V3M6ZT9GcjpEZTtyZXR1cm4hZSYmTWUoYSwiaXRlcmF0ZSIsc24pLGwuZm9yRWFjaCgoYyxmKT0+cy5jYWxsKGksdShjKSx1KGYpLG8pKX19O3JldHVybiBCZShuLGU/e2FkZDpwcigiYWRkIiksc2V0OnByKCJzZXQiKSxkZWxldGU6cHIoImRlbGV0ZSIpLGNsZWFyOnByKCJjbGVhciIpfTp7YWRkKHMpeyF0JiYhbHQocykmJiFLdChzKSYmKHM9bGUocykpO2NvbnN0IGk9bGUodGhpcyk7cmV0dXJuIG1yKGkpLmhhcy5jYWxsKGkscyl8fChpLmFkZChzKSxQdChpLCJhZGQiLHMscykpLHRoaXN9LHNldChzLGkpeyF0JiYhbHQoaSkmJiFLdChpKSYmKGk9bGUoaSkpO2NvbnN0IG89bGUodGhpcykse2hhczpsLGdldDphfT1tcihvKTtsZXQgdT1sLmNhbGwobyxzKTt1fHwocz1sZShzKSx1PWwuY2FsbChvLHMpKTtjb25zdCBjPWEuY2FsbChvLHMpO3JldHVybiBvLnNldChzLGkpLHU/cXQoaSxjKSYmUHQobywic2V0IixzLGkpOlB0KG8sImFkZCIscyxpKSx0aGlzfSxkZWxldGUocyl7Y29uc3QgaT1sZSh0aGlzKSx7aGFzOm8sZ2V0Omx9PW1yKGkpO2xldCBhPW8uY2FsbChpLHMpO2F8fChzPWxlKHMpLGE9by5jYWxsKGkscykpLGwmJmwuY2FsbChpLHMpO2NvbnN0IHU9aS5kZWxldGUocyk7cmV0dXJuIGEmJlB0KGksImRlbGV0ZSIscyx2b2lkIDApLHV9LGNsZWFyKCl7Y29uc3Qgcz1sZSh0aGlzKSxpPXMuc2l6ZSE9PTAsbz1zLmNsZWFyKCk7cmV0dXJuIGkmJlB0KHMsImNsZWFyIix2b2lkIDAsdm9pZCAwKSxvfX0pLFsia2V5cyIsInZhbHVlcyIsImVudHJpZXMiLFN5bWJvbC5pdGVyYXRvcl0uZm9yRWFjaChzPT57bltzXT1ldShzLGUsdCl9KSxufWZ1bmN0aW9uIHdpKGUsdCl7Y29uc3Qgbj10dShlLHQpO3JldHVybihyLHMsaSk9PnM9PT0iX192X2lzUmVhY3RpdmUiPyFlOnM9PT0iX192X2lzUmVhZG9ubHkiP2U6cz09PSJfX3ZfcmF3Ij9yOlJlZmxlY3QuZ2V0KGNlKG4scykmJnMgaW4gcj9uOnIscyxpKX1jb25zdCBudT17Z2V0OndpKCExLCExKX0scnU9e2dldDp3aSghMSwhMCl9LHN1PXtnZXQ6d2koITAsITEpfTtjb25zdCBPbD1uZXcgV2Vha01hcCxSbD1uZXcgV2Vha01hcCxJbD1uZXcgV2Vha01hcCxpdT1uZXcgV2Vha01hcDtmdW5jdGlvbiBvdShlKXtzd2l0Y2goZSl7Y2FzZSJPYmplY3QiOmNhc2UiQXJyYXkiOnJldHVybiAxO2Nhc2UiTWFwIjpjYXNlIlNldCI6Y2FzZSJXZWFrTWFwIjpjYXNlIldlYWtTZXQiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIGx1KGUpe3JldHVybiBlLl9fdl9za2lwfHwhT2JqZWN0LmlzRXh0ZW5zaWJsZShlKT8wOm91KFJjKGUpKX1mdW5jdGlvbiBydChlKXtyZXR1cm4gS3QoZSk/ZTp4aShlLCExLFhjLG51LE9sKX1mdW5jdGlvbiBhdShlKXtyZXR1cm4geGkoZSwhMSxRYyxydSxSbCl9ZnVuY3Rpb24gUGwoZSl7cmV0dXJuIHhpKGUsITAsWmMsc3UsSWwpfWZ1bmN0aW9uIHhpKGUsdCxuLHIscyl7aWYoIUNlKGUpfHxlLl9fdl9yYXcmJiEodCYmZS5fX3ZfaXNSZWFjdGl2ZSkpcmV0dXJuIGU7Y29uc3QgaT1sdShlKTtpZihpPT09MClyZXR1cm4gZTtjb25zdCBvPXMuZ2V0KGUpO2lmKG8pcmV0dXJuIG87Y29uc3QgbD1uZXcgUHJveHkoZSxpPT09Mj9yOm4pO3JldHVybiBzLnNldChlLGwpLGx9ZnVuY3Rpb24gYm4oZSl7cmV0dXJuIEt0KGUpP2JuKGUuX192X3Jhdyk6ISEoZSYmZS5fX3ZfaXNSZWFjdGl2ZSl9ZnVuY3Rpb24gS3QoZSl7cmV0dXJuISEoZSYmZS5fX3ZfaXNSZWFkb25seSl9ZnVuY3Rpb24gbHQoZSl7cmV0dXJuISEoZSYmZS5fX3ZfaXNTaGFsbG93KX1mdW5jdGlvbiBTaShlKXtyZXR1cm4gZT8hIWUuX192X3JhdzohMX1mdW5jdGlvbiBsZShlKXtjb25zdCB0PWUmJmUuX192X3JhdztyZXR1cm4gdD9sZSh0KTplfWZ1bmN0aW9uIGN1KGUpe3JldHVybiFjZShlLCJfX3Zfc2tpcCIpJiZPYmplY3QuaXNFeHRlbnNpYmxlKGUpJiZqcyhlLCJfX3Zfc2tpcCIsITApLGV9Y29uc3QgRGU9ZT0+Q2UoZSk/cnQoZSk6ZSxGcj1lPT5DZShlKT9QbChlKTplO2Z1bmN0aW9uIGtlKGUpe3JldHVybiBlP2UuX192X2lzUmVmPT09ITA6ITF9ZnVuY3Rpb24gUShlKXtyZXR1cm4gdXUoZSwhMSl9ZnVuY3Rpb24gdXUoZSx0KXtyZXR1cm4ga2UoZSk/ZTpuZXcgZnUoZSx0KX1jbGFzcyBmdXtjb25zdHJ1Y3Rvcih0LG4pe3RoaXMuZGVwPW5ldyBfaSx0aGlzLl9fdl9pc1JlZj0hMCx0aGlzLl9fdl9pc1NoYWxsb3c9ITEsdGhpcy5fcmF3VmFsdWU9bj90OmxlKHQpLHRoaXMuX3ZhbHVlPW4/dDpEZSh0KSx0aGlzLl9fdl9pc1NoYWxsb3c9bn1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5kZXAudHJhY2soKSx0aGlzLl92YWx1ZX1zZXQgdmFsdWUodCl7Y29uc3Qgbj10aGlzLl9yYXdWYWx1ZSxyPXRoaXMuX192X2lzU2hhbGxvd3x8bHQodCl8fEt0KHQpO3Q9cj90OmxlKHQpLHF0KHQsbikmJih0aGlzLl9yYXdWYWx1ZT10LHRoaXMuX3ZhbHVlPXI/dDpEZSh0KSx0aGlzLmRlcC50cmlnZ2VyKCkpfX1mdW5jdGlvbiBHbihlKXtyZXR1cm4ga2UoZSk/ZS52YWx1ZTplfWNvbnN0IGR1PXtnZXQ6KGUsdCxuKT0+dD09PSJfX3ZfcmF3Ij9lOkduKFJlZmxlY3QuZ2V0KGUsdCxuKSksc2V0OihlLHQsbixyKT0+e2NvbnN0IHM9ZVt0XTtyZXR1cm4ga2UocykmJiFrZShuKT8ocy52YWx1ZT1uLCEwKTpSZWZsZWN0LnNldChlLHQsbixyKX19O2Z1bmN0aW9uIEJsKGUpe3JldHVybiBibihlKT9lOm5ldyBQcm94eShlLGR1KX1jbGFzcyBodXtjb25zdHJ1Y3Rvcih0LG4scil7dGhpcy5mbj10LHRoaXMuc2V0dGVyPW4sdGhpcy5fdmFsdWU9dm9pZCAwLHRoaXMuZGVwPW5ldyBfaSh0aGlzKSx0aGlzLl9fdl9pc1JlZj0hMCx0aGlzLmRlcHM9dm9pZCAwLHRoaXMuZGVwc1RhaWw9dm9pZCAwLHRoaXMuZmxhZ3M9MTYsdGhpcy5nbG9iYWxWZXJzaW9uPUtuLTEsdGhpcy5uZXh0PXZvaWQgMCx0aGlzLmVmZmVjdD10aGlzLHRoaXMuX192X2lzUmVhZG9ubHk9IW4sdGhpcy5pc1NTUj1yfW5vdGlmeSgpe2lmKHRoaXMuZmxhZ3N8PTE2LCEodGhpcy5mbGFncyY4KSYmbWUhPT10aGlzKXJldHVybiB2bCh0aGlzLCEwKSwhMH1nZXQgdmFsdWUoKXtjb25zdCB0PXRoaXMuZGVwLnRyYWNrKCk7cmV0dXJuIHhsKHRoaXMpLHQmJih0LnZlcnNpb249dGhpcy5kZXAudmVyc2lvbiksdGhpcy5fdmFsdWV9c2V0IHZhbHVlKHQpe3RoaXMuc2V0dGVyJiZ0aGlzLnNldHRlcih0KX19ZnVuY3Rpb24gZ3UoZSx0LG49ITEpe2xldCByLHM7cmV0dXJuIFkoZSk/cj1lOihyPWUuZ2V0LHM9ZS5zZXQpLG5ldyBodShyLHMsbil9Y29uc3QgeXI9e30sRHI9bmV3IFdlYWtNYXA7bGV0IHRuO2Z1bmN0aW9uIG11KGUsdD0hMSxuPXRuKXtpZihuKXtsZXQgcj1Eci5nZXQobik7cnx8RHIuc2V0KG4scj1bXSksci5wdXNoKGUpfX1mdW5jdGlvbiBwdShlLHQsbj1oZSl7Y29uc3R7aW1tZWRpYXRlOnIsZGVlcDpzLG9uY2U6aSxzY2hlZHVsZXI6byxhdWdtZW50Sm9iOmwsY2FsbDphfT1uLHU9Uj0+cz9SOmx0KFIpfHxzPT09ITF8fHM9PT0wP0J0KFIsMSk6QnQoUik7bGV0IGMsZixoLHYscD0hMSxiPSExO2lmKGtlKGUpPyhmPSgpPT5lLnZhbHVlLHA9bHQoZSkpOmJuKGUpPyhmPSgpPT51KGUpLHA9ITApOkooZSk/KGI9ITAscD1lLnNvbWUoUj0+Ym4oUil8fGx0KFIpKSxmPSgpPT5lLm1hcChSPT57aWYoa2UoUikpcmV0dXJuIFIudmFsdWU7aWYoYm4oUikpcmV0dXJuIHUoUik7aWYoWShSKSlyZXR1cm4gYT9hKFIsMik6UigpfSkpOlkoZSk/dD9mPWE/KCk9PmEoZSwyKTplOmY9KCk9PntpZihoKXtEdCgpO3RyeXtoKCl9ZmluYWxseXtOdCgpfX1jb25zdCBSPXRuO3RuPWM7dHJ5e3JldHVybiBhP2EoZSwzLFt2XSk6ZSh2KX1maW5hbGx5e3RuPVJ9fTpmPUV0LHQmJnMpe2NvbnN0IFI9ZixEPXM9PT0hMD8xLzA6cztmPSgpPT5CdChSKCksRCl9Y29uc3QgeT1WYygpLFM9KCk9PntjLnN0b3AoKSx5JiZ5LmFjdGl2ZSYmbWkoeS5lZmZlY3RzLGMpfTtpZihpJiZ0KXtjb25zdCBSPXQ7dD0oLi4uRCk9PntSKC4uLkQpLFMoKX19bGV0IEM9Yj9uZXcgQXJyYXkoZS5sZW5ndGgpLmZpbGwoeXIpOnlyO2NvbnN0IEY9Uj0+e2lmKCEoIShjLmZsYWdzJjEpfHwhYy5kaXJ0eSYmIVIpKWlmKHQpe2NvbnN0IEQ9Yy5ydW4oKTtpZihzfHxwfHwoYj9ELnNvbWUoKE4sVyk9PnF0KE4sQ1tXXSkpOnF0KEQsQykpKXtoJiZoKCk7Y29uc3QgTj10bjt0bj1jO3RyeXtjb25zdCBXPVtELEM9PT15cj92b2lkIDA6YiYmQ1swXT09PXlyP1tdOkMsdl07Qz1ELGE/YSh0LDMsVyk6dCguLi5XKX1maW5hbGx5e3RuPU59fX1lbHNlIGMucnVuKCl9O3JldHVybiBsJiZsKEYpLGM9bmV3IHlsKGYpLGMuc2NoZWR1bGVyPW8/KCk9Pm8oRiwhMSk6Rix2PVI9Pm11KFIsITEsYyksaD1jLm9uU3RvcD0oKT0+e2NvbnN0IFI9RHIuZ2V0KGMpO2lmKFIpe2lmKGEpYShSLDQpO2Vsc2UgZm9yKGNvbnN0IEQgb2YgUilEKCk7RHIuZGVsZXRlKGMpfX0sdD9yP0YoITApOkM9Yy5ydW4oKTpvP28oRi5iaW5kKG51bGwsITApLCEwKTpjLnJ1bigpLFMucGF1c2U9Yy5wYXVzZS5iaW5kKGMpLFMucmVzdW1lPWMucmVzdW1lLmJpbmQoYyksUy5zdG9wPVMsU31mdW5jdGlvbiBCdChlLHQ9MS8wLG4pe2lmKHQ8PTB8fCFDZShlKXx8ZS5fX3Zfc2tpcHx8KG49bnx8bmV3IFNldCxuLmhhcyhlKSkpcmV0dXJuIGU7aWYobi5hZGQoZSksdC0tLGtlKGUpKUJ0KGUudmFsdWUsdCxuKTtlbHNlIGlmKEooZSkpZm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspQnQoZVtyXSx0LG4pO2Vsc2UgaWYoQWMoZSl8fCRuKGUpKWUuZm9yRWFjaChyPT57QnQocix0LG4pfSk7ZWxzZSBpZihJYyhlKSl7Zm9yKGNvbnN0IHIgaW4gZSlCdChlW3JdLHQsbik7Zm9yKGNvbnN0IHIgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKSlPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyKSYmQnQoZVtyXSx0LG4pfXJldHVybiBlfS8qKgoqIEB2dWUvcnVudGltZS1jb3JlIHYzLjUuMTcKKiAoYykgMjAxOC1wcmVzZW50IFl1eGkgKEV2YW4pIFlvdSBhbmQgVnVlIGNvbnRyaWJ1dG9ycwoqIEBsaWNlbnNlIE1JVAoqKi9mdW5jdGlvbiBvcihlLHQsbixyKXt0cnl7cmV0dXJuIHI/ZSguLi5yKTplKCl9Y2F0Y2gocyl7ZXMocyx0LG4pfX1mdW5jdGlvbiBkdChlLHQsbixyKXtpZihZKGUpKXtjb25zdCBzPW9yKGUsdCxuLHIpO3JldHVybiBzJiZtbChzKSYmcy5jYXRjaChpPT57ZXMoaSx0LG4pfSksc31pZihKKGUpKXtjb25zdCBzPVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXMucHVzaChkdChlW2ldLHQsbixyKSk7cmV0dXJuIHN9fWZ1bmN0aW9uIGVzKGUsdCxuLHI9ITApe2NvbnN0IHM9dD90LnZub2RlOm51bGwse2Vycm9ySGFuZGxlcjppLHRocm93VW5oYW5kbGVkRXJyb3JJblByb2R1Y3Rpb246b309dCYmdC5hcHBDb250ZXh0LmNvbmZpZ3x8aGU7aWYodCl7bGV0IGw9dC5wYXJlbnQ7Y29uc3QgYT10LnByb3h5LHU9YGh0dHBzOi8vdnVlanMub3JnL2Vycm9yLXJlZmVyZW5jZS8jcnVudGltZS0ke259YDtmb3IoO2w7KXtjb25zdCBjPWwuZWM7aWYoYyl7Zm9yKGxldCBmPTA7ZjxjLmxlbmd0aDtmKyspaWYoY1tmXShlLGEsdSk9PT0hMSlyZXR1cm59bD1sLnBhcmVudH1pZihpKXtEdCgpLG9yKGksbnVsbCwxMCxbZSxhLHVdKSxOdCgpO3JldHVybn19eXUoZSxuLHMscixvKX1mdW5jdGlvbiB5dShlLHQsbixyPSEwLHM9ITEpe2lmKHMpdGhyb3cgZTtjb25zb2xlLmVycm9yKGUpfWNvbnN0IFdlPVtdO2xldCB4dD0tMTtjb25zdCB2bj1bXTtsZXQgVXQ9bnVsbCxwbj0wO2NvbnN0IEZsPVByb21pc2UucmVzb2x2ZSgpO2xldCBOcj1udWxsO2Z1bmN0aW9uIEllKGUpe2NvbnN0IHQ9TnJ8fEZsO3JldHVybiBlP3QudGhlbih0aGlzP2UuYmluZCh0aGlzKTplKTp0fWZ1bmN0aW9uIGJ1KGUpe2xldCB0PXh0KzEsbj1XZS5sZW5ndGg7Zm9yKDt0PG47KXtjb25zdCByPXQrbj4+PjEscz1XZVtyXSxpPVluKHMpO2k8ZXx8aT09PWUmJnMuZmxhZ3MmMj90PXIrMTpuPXJ9cmV0dXJuIHR9ZnVuY3Rpb24gQ2koZSl7aWYoIShlLmZsYWdzJjEpKXtjb25zdCB0PVluKGUpLG49V2VbV2UubGVuZ3RoLTFdOyFufHwhKGUuZmxhZ3MmMikmJnQ+PVluKG4pP1dlLnB1c2goZSk6V2Uuc3BsaWNlKGJ1KHQpLDAsZSksZS5mbGFnc3w9MSxEbCgpfX1mdW5jdGlvbiBEbCgpe05yfHwoTnI9RmwudGhlbihrbCkpfWZ1bmN0aW9uIHZ1KGUpe0ooZSk/dm4ucHVzaCguLi5lKTpVdCYmZS5pZD09PS0xP1V0LnNwbGljZShwbisxLDAsZSk6ZS5mbGFncyYxfHwodm4ucHVzaChlKSxlLmZsYWdzfD0xKSxEbCgpfWZ1bmN0aW9uIEppKGUsdCxuPXh0KzEpe2Zvcig7bjxXZS5sZW5ndGg7bisrKXtjb25zdCByPVdlW25dO2lmKHImJnIuZmxhZ3MmMil7aWYoZSYmci5pZCE9PWUudWlkKWNvbnRpbnVlO1dlLnNwbGljZShuLDEpLG4tLSxyLmZsYWdzJjQmJihyLmZsYWdzJj0tMikscigpLHIuZmxhZ3MmNHx8KHIuZmxhZ3MmPS0yKX19fWZ1bmN0aW9uIE5sKGUpe2lmKHZuLmxlbmd0aCl7Y29uc3QgdD1bLi4ubmV3IFNldCh2bildLnNvcnQoKG4scik9PlluKG4pLVluKHIpKTtpZih2bi5sZW5ndGg9MCxVdCl7VXQucHVzaCguLi50KTtyZXR1cm59Zm9yKFV0PXQscG49MDtwbjxVdC5sZW5ndGg7cG4rKyl7Y29uc3Qgbj1VdFtwbl07bi5mbGFncyY0JiYobi5mbGFncyY9LTIpLG4uZmxhZ3MmOHx8bigpLG4uZmxhZ3MmPS0yfVV0PW51bGwscG49MH19Y29uc3QgWW49ZT0+ZS5pZD09bnVsbD9lLmZsYWdzJjI/LTE6MS8wOmUuaWQ7ZnVuY3Rpb24ga2woZSl7dHJ5e2Zvcih4dD0wO3h0PFdlLmxlbmd0aDt4dCsrKXtjb25zdCB0PVdlW3h0XTt0JiYhKHQuZmxhZ3MmOCkmJih0LmZsYWdzJjQmJih0LmZsYWdzJj0tMiksb3IodCx0LmksdC5pPzE1OjE0KSx0LmZsYWdzJjR8fCh0LmZsYWdzJj0tMikpfX1maW5hbGx5e2Zvcig7eHQ8V2UubGVuZ3RoO3h0Kyspe2NvbnN0IHQ9V2VbeHRdO3QmJih0LmZsYWdzJj0tMil9eHQ9LTEsV2UubGVuZ3RoPTAsTmwoKSxOcj1udWxsLChXZS5sZW5ndGh8fHZuLmxlbmd0aCkmJmtsKCl9fWxldCBYZT1udWxsLCRsPW51bGw7ZnVuY3Rpb24ga3IoZSl7Y29uc3QgdD1YZTtyZXR1cm4gWGU9ZSwkbD1lJiZlLnR5cGUuX19zY29wZUlkfHxudWxsLHR9ZnVuY3Rpb24gVmUoZSx0PVhlLG4pe2lmKCF0fHxlLl9uKXJldHVybiBlO2NvbnN0IHI9KC4uLnMpPT57ci5fZCYmYW8oLTEpO2NvbnN0IGk9a3IodCk7bGV0IG87dHJ5e289ZSguLi5zKX1maW5hbGx5e2tyKGkpLHIuX2QmJmFvKDEpfXJldHVybiBvfTtyZXR1cm4gci5fbj0hMCxyLl9jPSEwLHIuX2Q9ITAscn1mdW5jdGlvbiBFaShlLHQpe2lmKFhlPT09bnVsbClyZXR1cm4gZTtjb25zdCBuPW9zKFhlKSxyPWUuZGlyc3x8KGUuZGlycz1bXSk7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2xldFtpLG8sbCxhPWhlXT10W3NdO2kmJihZKGkpJiYoaT17bW91bnRlZDppLHVwZGF0ZWQ6aX0pLGkuZGVlcCYmQnQobyksci5wdXNoKHtkaXI6aSxpbnN0YW5jZTpuLHZhbHVlOm8sb2xkVmFsdWU6dm9pZCAwLGFyZzpsLG1vZGlmaWVyczphfSkpfXJldHVybiBlfWZ1bmN0aW9uIFl0KGUsdCxuLHIpe2NvbnN0IHM9ZS5kaXJzLGk9dCYmdC5kaXJzO2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXtjb25zdCBsPXNbb107aSYmKGwub2xkVmFsdWU9aVtvXS52YWx1ZSk7bGV0IGE9bC5kaXJbcl07YSYmKER0KCksZHQoYSxuLDgsW2UuZWwsbCxlLHRdKSxOdCgpKX19Y29uc3QgTGw9U3ltYm9sKCJfdnRlIiksTWw9ZT0+ZS5fX2lzVGVsZXBvcnQsVW49ZT0+ZSYmKGUuZGlzYWJsZWR8fGUuZGlzYWJsZWQ9PT0iIiksR2k9ZT0+ZSYmKGUuZGVmZXJ8fGUuZGVmZXI9PT0iIiksWWk9ZT0+dHlwZW9mIFNWR0VsZW1lbnQ8InUiJiZlIGluc3RhbmNlb2YgU1ZHRWxlbWVudCxYaT1lPT50eXBlb2YgTWF0aE1MRWxlbWVudD09ImZ1bmN0aW9uIiYmZSBpbnN0YW5jZW9mIE1hdGhNTEVsZW1lbnQsS3M9KGUsdCk9Pntjb25zdCBuPWUmJmUudG87cmV0dXJuIFNlKG4pP3Q/dChuKTpudWxsOm59LEhsPXtuYW1lOiJUZWxlcG9ydCIsX19pc1RlbGVwb3J0OiEwLHByb2Nlc3MoZSx0LG4scixzLGksbyxsLGEsdSl7Y29uc3R7bWM6YyxwYzpmLHBiYzpoLG86e2luc2VydDp2LHF1ZXJ5U2VsZWN0b3I6cCxjcmVhdGVUZXh0OmIsY3JlYXRlQ29tbWVudDp5fX09dSxTPVVuKHQucHJvcHMpO2xldHtzaGFwZUZsYWc6QyxjaGlsZHJlbjpGLGR5bmFtaWNDaGlsZHJlbjpSfT10O2lmKGU9PW51bGwpe2NvbnN0IEQ9dC5lbD1iKCIiKSxOPXQuYW5jaG9yPWIoIiIpO3YoRCxuLHIpLHYoTixuLHIpO2NvbnN0IFc9KEwsVik9PntDJjE2JiYocyYmcy5pc0NFJiYocy5jZS5fdGVsZXBvcnRUYXJnZXQ9TCksYyhGLEwsVixzLGksbyxsLGEpKX0sWD0oKT0+e2NvbnN0IEw9dC50YXJnZXQ9S3ModC5wcm9wcyxwKSxWPWpsKEwsdCxiLHYpO0wmJihvIT09InN2ZyImJllpKEwpP289InN2ZyI6byE9PSJtYXRobWwiJiZYaShMKSYmKG89Im1hdGhtbCIpLFN8fChXKEwsViksVHIodCwhMSkpKX07UyYmKFcobixOKSxUcih0LCEwKSksR2kodC5wcm9wcyk/KHQuZWwuX19pc01vdW50ZWQ9ITEscWUoKCk9PntYKCksZGVsZXRlIHQuZWwuX19pc01vdW50ZWR9LGkpKTpYKCl9ZWxzZXtpZihHaSh0LnByb3BzKSYmZS5lbC5fX2lzTW91bnRlZD09PSExKXtxZSgoKT0+e0hsLnByb2Nlc3MoZSx0LG4scixzLGksbyxsLGEsdSl9LGkpO3JldHVybn10LmVsPWUuZWwsdC50YXJnZXRTdGFydD1lLnRhcmdldFN0YXJ0O2NvbnN0IEQ9dC5hbmNob3I9ZS5hbmNob3IsTj10LnRhcmdldD1lLnRhcmdldCxXPXQudGFyZ2V0QW5jaG9yPWUudGFyZ2V0QW5jaG9yLFg9VW4oZS5wcm9wcyksTD1YP246TixWPVg/RDpXO2lmKG89PT0ic3ZnInx8WWkoTik/bz0ic3ZnIjoobz09PSJtYXRobWwifHxYaShOKSkmJihvPSJtYXRobWwiKSxSPyhoKGUuZHluYW1pY0NoaWxkcmVuLFIsTCxzLGksbyxsKSxPaShlLHQsITApKTphfHxmKGUsdCxMLFYscyxpLG8sbCwhMSksUylYP3QucHJvcHMmJmUucHJvcHMmJnQucHJvcHMudG8hPT1lLnByb3BzLnRvJiYodC5wcm9wcy50bz1lLnByb3BzLnRvKTpicih0LG4sRCx1LDEpO2Vsc2UgaWYoKHQucHJvcHMmJnQucHJvcHMudG8pIT09KGUucHJvcHMmJmUucHJvcHMudG8pKXtjb25zdCBlZT10LnRhcmdldD1Lcyh0LnByb3BzLHApO2VlJiZicih0LGVlLG51bGwsdSwwKX1lbHNlIFgmJmJyKHQsTixXLHUsMSk7VHIodCxTKX19LHJlbW92ZShlLHQsbix7dW06cixvOntyZW1vdmU6c319LGkpe2NvbnN0e3NoYXBlRmxhZzpvLGNoaWxkcmVuOmwsYW5jaG9yOmEsdGFyZ2V0U3RhcnQ6dSx0YXJnZXRBbmNob3I6Yyx0YXJnZXQ6Zixwcm9wczpofT1lO2lmKGYmJihzKHUpLHMoYykpLGkmJnMoYSksbyYxNil7Y29uc3Qgdj1pfHwhVW4oaCk7Zm9yKGxldCBwPTA7cDxsLmxlbmd0aDtwKyspe2NvbnN0IGI9bFtwXTtyKGIsdCxuLHYsISFiLmR5bmFtaWNDaGlsZHJlbil9fX0sbW92ZTpicixoeWRyYXRlOl91fTtmdW5jdGlvbiBicihlLHQsbix7bzp7aW5zZXJ0OnJ9LG06c30saT0yKXtpPT09MCYmcihlLnRhcmdldEFuY2hvcix0LG4pO2NvbnN0e2VsOm8sYW5jaG9yOmwsc2hhcGVGbGFnOmEsY2hpbGRyZW46dSxwcm9wczpjfT1lLGY9aT09PTI7aWYoZiYmcihvLHQsbiksKCFmfHxVbihjKSkmJmEmMTYpZm9yKGxldCBoPTA7aDx1Lmxlbmd0aDtoKyspcyh1W2hdLHQsbiwyKTtmJiZyKGwsdCxuKX1mdW5jdGlvbiBfdShlLHQsbixyLHMsaSx7bzp7bmV4dFNpYmxpbmc6byxwYXJlbnROb2RlOmwscXVlcnlTZWxlY3RvcjphLGluc2VydDp1LGNyZWF0ZVRleHQ6Y319LGYpe2NvbnN0IGg9dC50YXJnZXQ9S3ModC5wcm9wcyxhKTtpZihoKXtjb25zdCB2PVVuKHQucHJvcHMpLHA9aC5fbHBhfHxoLmZpcnN0Q2hpbGQ7aWYodC5zaGFwZUZsYWcmMTYpaWYodil0LmFuY2hvcj1mKG8oZSksdCxsKGUpLG4scixzLGkpLHQudGFyZ2V0U3RhcnQ9cCx0LnRhcmdldEFuY2hvcj1wJiZvKHApO2Vsc2V7dC5hbmNob3I9byhlKTtsZXQgYj1wO2Zvcig7Yjspe2lmKGImJmIubm9kZVR5cGU9PT04KXtpZihiLmRhdGE9PT0idGVsZXBvcnQgc3RhcnQgYW5jaG9yIil0LnRhcmdldFN0YXJ0PWI7ZWxzZSBpZihiLmRhdGE9PT0idGVsZXBvcnQgYW5jaG9yIil7dC50YXJnZXRBbmNob3I9YixoLl9scGE9dC50YXJnZXRBbmNob3ImJm8odC50YXJnZXRBbmNob3IpO2JyZWFrfX1iPW8oYil9dC50YXJnZXRBbmNob3J8fGpsKGgsdCxjLHUpLGYocCYmbyhwKSx0LGgsbixyLHMsaSl9VHIodCx2KX1yZXR1cm4gdC5hbmNob3ImJm8odC5hbmNob3IpfWNvbnN0IFVsPUhsO2Z1bmN0aW9uIFRyKGUsdCl7Y29uc3Qgbj1lLmN0eDtpZihuJiZuLnV0KXtsZXQgcixzO2Zvcih0PyhyPWUuZWwscz1lLmFuY2hvcik6KHI9ZS50YXJnZXRTdGFydCxzPWUudGFyZ2V0QW5jaG9yKTtyJiZyIT09czspci5ub2RlVHlwZT09PTEmJnIuc2V0QXR0cmlidXRlKCJkYXRhLXYtb3duZXIiLG4udWlkKSxyPXIubmV4dFNpYmxpbmc7bi51dCgpfX1mdW5jdGlvbiBqbChlLHQsbixyKXtjb25zdCBzPXQudGFyZ2V0U3RhcnQ9bigiIiksaT10LnRhcmdldEFuY2hvcj1uKCIiKTtyZXR1cm4gc1tMbF09aSxlJiYocihzLGUpLHIoaSxlKSksaX1jb25zdCBqdD1TeW1ib2woIl9sZWF2ZUNiIiksdnI9U3ltYm9sKCJfZW50ZXJDYiIpO2Z1bmN0aW9uIHd1KCl7Y29uc3QgZT17aXNNb3VudGVkOiExLGlzTGVhdmluZzohMSxpc1VubW91bnRpbmc6ITEsbGVhdmluZ1ZOb2RlczpuZXcgTWFwfTtyZXR1cm4gaHQoKCk9PntlLmlzTW91bnRlZD0hMH0pLGFyKCgpPT57ZS5pc1VubW91bnRpbmc9ITB9KSxlfWNvbnN0IGl0PVtGdW5jdGlvbixBcnJheV0sVmw9e21vZGU6U3RyaW5nLGFwcGVhcjpCb29sZWFuLHBlcnNpc3RlZDpCb29sZWFuLG9uQmVmb3JlRW50ZXI6aXQsb25FbnRlcjppdCxvbkFmdGVyRW50ZXI6aXQsb25FbnRlckNhbmNlbGxlZDppdCxvbkJlZm9yZUxlYXZlOml0LG9uTGVhdmU6aXQsb25BZnRlckxlYXZlOml0LG9uTGVhdmVDYW5jZWxsZWQ6aXQsb25CZWZvcmVBcHBlYXI6aXQsb25BcHBlYXI6aXQsb25BZnRlckFwcGVhcjppdCxvbkFwcGVhckNhbmNlbGxlZDppdH0semw9ZT0+e2NvbnN0IHQ9ZS5zdWJUcmVlO3JldHVybiB0LmNvbXBvbmVudD96bCh0LmNvbXBvbmVudCk6dH0seHU9e25hbWU6IkJhc2VUcmFuc2l0aW9uIixwcm9wczpWbCxzZXR1cChlLHtzbG90czp0fSl7Y29uc3Qgbj1HdCgpLHI9d3UoKTtyZXR1cm4oKT0+e2NvbnN0IHM9dC5kZWZhdWx0JiZLbCh0LmRlZmF1bHQoKSwhMCk7aWYoIXN8fCFzLmxlbmd0aClyZXR1cm47Y29uc3QgaT1xbChzKSxvPWxlKGUpLHttb2RlOmx9PW87aWYoci5pc0xlYXZpbmcpcmV0dXJuIFRzKGkpO2NvbnN0IGE9WmkoaSk7aWYoIWEpcmV0dXJuIFRzKGkpO2xldCB1PUpzKGEsbyxyLG4sZj0+dT1mKTthLnR5cGUhPT1LZSYmWG4oYSx1KTtsZXQgYz1uLnN1YlRyZWUmJlppKG4uc3ViVHJlZSk7aWYoYyYmYy50eXBlIT09S2UmJiFubihhLGMpJiZ6bChuKS50eXBlIT09S2Upe2xldCBmPUpzKGMsbyxyLG4pO2lmKFhuKGMsZiksbD09PSJvdXQtaW4iJiZhLnR5cGUhPT1LZSlyZXR1cm4gci5pc0xlYXZpbmc9ITAsZi5hZnRlckxlYXZlPSgpPT57ci5pc0xlYXZpbmc9ITEsbi5qb2IuZmxhZ3MmOHx8bi51cGRhdGUoKSxkZWxldGUgZi5hZnRlckxlYXZlLGM9dm9pZCAwfSxUcyhpKTtsPT09ImluLW91dCImJmEudHlwZSE9PUtlP2YuZGVsYXlMZWF2ZT0oaCx2LHApPT57Y29uc3QgYj1XbChyLGMpO2JbU3RyaW5nKGMua2V5KV09YyxoW2p0XT0oKT0+e3YoKSxoW2p0XT12b2lkIDAsZGVsZXRlIHUuZGVsYXllZExlYXZlLGM9dm9pZCAwfSx1LmRlbGF5ZWRMZWF2ZT0oKT0+e3AoKSxkZWxldGUgdS5kZWxheWVkTGVhdmUsYz12b2lkIDB9fTpjPXZvaWQgMH1lbHNlIGMmJihjPXZvaWQgMCk7cmV0dXJuIGl9fX07ZnVuY3Rpb24gcWwoZSl7bGV0IHQ9ZVswXTtpZihlLmxlbmd0aD4xKXtmb3IoY29uc3QgbiBvZiBlKWlmKG4udHlwZSE9PUtlKXt0PW47YnJlYWt9fXJldHVybiB0fWNvbnN0IFN1PXh1O2Z1bmN0aW9uIFdsKGUsdCl7Y29uc3R7bGVhdmluZ1ZOb2RlczpufT1lO2xldCByPW4uZ2V0KHQudHlwZSk7cmV0dXJuIHJ8fChyPU9iamVjdC5jcmVhdGUobnVsbCksbi5zZXQodC50eXBlLHIpKSxyfWZ1bmN0aW9uIEpzKGUsdCxuLHIscyl7Y29uc3R7YXBwZWFyOmksbW9kZTpvLHBlcnNpc3RlZDpsPSExLG9uQmVmb3JlRW50ZXI6YSxvbkVudGVyOnUsb25BZnRlckVudGVyOmMsb25FbnRlckNhbmNlbGxlZDpmLG9uQmVmb3JlTGVhdmU6aCxvbkxlYXZlOnYsb25BZnRlckxlYXZlOnAsb25MZWF2ZUNhbmNlbGxlZDpiLG9uQmVmb3JlQXBwZWFyOnksb25BcHBlYXI6UyxvbkFmdGVyQXBwZWFyOkMsb25BcHBlYXJDYW5jZWxsZWQ6Rn09dCxSPVN0cmluZyhlLmtleSksRD1XbChuLGUpLE49KEwsVik9PntMJiZkdChMLHIsOSxWKX0sVz0oTCxWKT0+e2NvbnN0IGVlPVZbMV07TihMLFYpLEooTCk/TC5ldmVyeShCPT5CLmxlbmd0aDw9MSkmJmVlKCk6TC5sZW5ndGg8PTEmJmVlKCl9LFg9e21vZGU6byxwZXJzaXN0ZWQ6bCxiZWZvcmVFbnRlcihMKXtsZXQgVj1hO2lmKCFuLmlzTW91bnRlZClpZihpKVY9eXx8YTtlbHNlIHJldHVybjtMW2p0XSYmTFtqdF0oITApO2NvbnN0IGVlPURbUl07ZWUmJm5uKGUsZWUpJiZlZS5lbFtqdF0mJmVlLmVsW2p0XSgpLE4oVixbTF0pfSxlbnRlcihMKXtsZXQgVj11LGVlPWMsQj1mO2lmKCFuLmlzTW91bnRlZClpZihpKVY9U3x8dSxlZT1DfHxjLEI9Rnx8ZjtlbHNlIHJldHVybjtsZXQgc2U9ITE7Y29uc3QgYmU9TFt2cl09JGU9PntzZXx8KHNlPSEwLCRlP04oQixbTF0pOk4oZWUsW0xdKSxYLmRlbGF5ZWRMZWF2ZSYmWC5kZWxheWVkTGVhdmUoKSxMW3ZyXT12b2lkIDApfTtWP1coVixbTCxiZV0pOmJlKCl9LGxlYXZlKEwsVil7Y29uc3QgZWU9U3RyaW5nKGUua2V5KTtpZihMW3ZyXSYmTFt2cl0oITApLG4uaXNVbm1vdW50aW5nKXJldHVybiBWKCk7TihoLFtMXSk7bGV0IEI9ITE7Y29uc3Qgc2U9TFtqdF09YmU9PntCfHwoQj0hMCxWKCksYmU/TihiLFtMXSk6TihwLFtMXSksTFtqdF09dm9pZCAwLERbZWVdPT09ZSYmZGVsZXRlIERbZWVdKX07RFtlZV09ZSx2P1codixbTCxzZV0pOnNlKCl9LGNsb25lKEwpe2NvbnN0IFY9SnMoTCx0LG4scixzKTtyZXR1cm4gcyYmcyhWKSxWfX07cmV0dXJuIFh9ZnVuY3Rpb24gVHMoZSl7aWYodHMoZSkpcmV0dXJuIGU9SnQoZSksZS5jaGlsZHJlbj1udWxsLGV9ZnVuY3Rpb24gWmkoZSl7aWYoIXRzKGUpKXJldHVybiBNbChlLnR5cGUpJiZlLmNoaWxkcmVuP3FsKGUuY2hpbGRyZW4pOmU7aWYoZS5jb21wb25lbnQpcmV0dXJuIGUuY29tcG9uZW50LnN1YlRyZWU7Y29uc3R7c2hhcGVGbGFnOnQsY2hpbGRyZW46bn09ZTtpZihuKXtpZih0JjE2KXJldHVybiBuWzBdO2lmKHQmMzImJlkobi5kZWZhdWx0KSlyZXR1cm4gbi5kZWZhdWx0KCl9fWZ1bmN0aW9uIFhuKGUsdCl7ZS5zaGFwZUZsYWcmNiYmZS5jb21wb25lbnQ/KGUudHJhbnNpdGlvbj10LFhuKGUuY29tcG9uZW50LnN1YlRyZWUsdCkpOmUuc2hhcGVGbGFnJjEyOD8oZS5zc0NvbnRlbnQudHJhbnNpdGlvbj10LmNsb25lKGUuc3NDb250ZW50KSxlLnNzRmFsbGJhY2sudHJhbnNpdGlvbj10LmNsb25lKGUuc3NGYWxsYmFjaykpOmUudHJhbnNpdGlvbj10fWZ1bmN0aW9uIEtsKGUsdD0hMSxuKXtsZXQgcj1bXSxzPTA7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2xldCBvPWVbaV07Y29uc3QgbD1uPT1udWxsP28ua2V5OlN0cmluZyhuKStTdHJpbmcoby5rZXkhPW51bGw/by5rZXk6aSk7by50eXBlPT09SGU/KG8ucGF0Y2hGbGFnJjEyOCYmcysrLHI9ci5jb25jYXQoS2woby5jaGlsZHJlbix0LGwpKSk6KHR8fG8udHlwZSE9PUtlKSYmci5wdXNoKGwhPW51bGw/SnQobyx7a2V5Omx9KTpvKX1pZihzPjEpZm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspcltpXS5wYXRjaEZsYWc9LTI7cmV0dXJuIHJ9LyohICNfX05PX1NJREVfRUZGRUNUU19fICovZnVuY3Rpb24gVGUoZSx0KXtyZXR1cm4gWShlKT9CZSh7bmFtZTplLm5hbWV9LHQse3NldHVwOmV9KTplfWZ1bmN0aW9uIEpsKGUpe2UuaWRzPVtlLmlkc1swXStlLmlkc1syXSsrKyItIiwwLDBdfWZ1bmN0aW9uIGpuKGUsdCxuLHIscz0hMSl7aWYoSihlKSl7ZS5mb3JFYWNoKChwLGIpPT5qbihwLHQmJihKKHQpP3RbYl06dCksbixyLHMpKTtyZXR1cm59aWYoVm4ocikmJiFzKXtyLnNoYXBlRmxhZyY1MTImJnIudHlwZS5fX2FzeW5jUmVzb2x2ZWQmJnIuY29tcG9uZW50LnN1YlRyZWUuY29tcG9uZW50JiZqbihlLHQsbixyLmNvbXBvbmVudC5zdWJUcmVlKTtyZXR1cm59Y29uc3QgaT1yLnNoYXBlRmxhZyY0P29zKHIuY29tcG9uZW50KTpyLmVsLG89cz9udWxsOmkse2k6bCxyOmF9PWUsdT10JiZ0LnIsYz1sLnJlZnM9PT1oZT9sLnJlZnM9e306bC5yZWZzLGY9bC5zZXR1cFN0YXRlLGg9bGUoZiksdj1mPT09aGU/KCk9PiExOnA9PmNlKGgscCk7aWYodSE9bnVsbCYmdSE9PWEmJihTZSh1KT8oY1t1XT1udWxsLHYodSkmJihmW3VdPW51bGwpKTprZSh1KSYmKHUudmFsdWU9bnVsbCkpLFkoYSkpb3IoYSxsLDEyLFtvLGNdKTtlbHNle2NvbnN0IHA9U2UoYSksYj1rZShhKTtpZihwfHxiKXtjb25zdCB5PSgpPT57aWYoZS5mKXtjb25zdCBTPXA/dihhKT9mW2FdOmNbYV06YS52YWx1ZTtzP0ooUykmJm1pKFMsaSk6SihTKT9TLmluY2x1ZGVzKGkpfHxTLnB1c2goaSk6cD8oY1thXT1baV0sdihhKSYmKGZbYV09Y1thXSkpOihhLnZhbHVlPVtpXSxlLmsmJihjW2Uua109YS52YWx1ZSkpfWVsc2UgcD8oY1thXT1vLHYoYSkmJihmW2FdPW8pKTpiJiYoYS52YWx1ZT1vLGUuayYmKGNbZS5rXT1vKSl9O28/KHkuaWQ9LTEscWUoeSxuKSk6eSgpfX19WXIoKS5yZXF1ZXN0SWRsZUNhbGxiYWNrO1lyKCkuY2FuY2VsSWRsZUNhbGxiYWNrO2NvbnN0IFZuPWU9PiEhZS50eXBlLl9fYXN5bmNMb2FkZXIsdHM9ZT0+ZS50eXBlLl9faXNLZWVwQWxpdmU7ZnVuY3Rpb24gbHIoZSx0KXtHbChlLCJhIix0KX1mdW5jdGlvbiBFbihlLHQpe0dsKGUsImRhIix0KX1mdW5jdGlvbiBHbChlLHQsbj1OZSl7Y29uc3Qgcj1lLl9fd2RjfHwoZS5fX3dkYz0oKT0+e2xldCBzPW47Zm9yKDtzOyl7aWYocy5pc0RlYWN0aXZhdGVkKXJldHVybjtzPXMucGFyZW50fXJldHVybiBlKCl9KTtpZihucyh0LHIsbiksbil7bGV0IHM9bi5wYXJlbnQ7Zm9yKDtzJiZzLnBhcmVudDspdHMocy5wYXJlbnQudm5vZGUpJiZDdShyLHQsbixzKSxzPXMucGFyZW50fX1mdW5jdGlvbiBDdShlLHQsbixyKXtjb25zdCBzPW5zKHQsZSxyLCEwKTtycygoKT0+e21pKHJbdF0scyl9LG4pfWZ1bmN0aW9uIG5zKGUsdCxuPU5lLHI9ITEpe2lmKG4pe2NvbnN0IHM9bltlXXx8KG5bZV09W10pLGk9dC5fX3dlaHx8KHQuX193ZWg9KC4uLm8pPT57RHQoKTtjb25zdCBsPWNyKG4pLGE9ZHQodCxuLGUsbyk7cmV0dXJuIGwoKSxOdCgpLGF9KTtyZXR1cm4gcj9zLnVuc2hpZnQoaSk6cy5wdXNoKGkpLGl9fWNvbnN0ICR0PWU9Pih0LG49TmUpPT57KCFlcnx8ZT09PSJzcCIpJiZucyhlLCguLi5yKT0+dCguLi5yKSxuKX0sRXU9JHQoImJtIiksaHQ9JHQoIm0iKSxZbD0kdCgiYnUiKSxYbD0kdCgidSIpLGFyPSR0KCJidW0iKSxycz0kdCgidW0iKSxUdT0kdCgic3AiKSxBdT0kdCgicnRnIiksT3U9JHQoInJ0YyIpO2Z1bmN0aW9uIFJ1KGUsdD1OZSl7bnMoImVjIixlLHQpfWNvbnN0IEl1PSJjb21wb25lbnRzIjtmdW5jdGlvbiB2dChlLHQpe3JldHVybiBCdShJdSxlLCEwLHQpfHxlfWNvbnN0IFB1PVN5bWJvbC5mb3IoInYtbmRjIik7ZnVuY3Rpb24gQnUoZSx0LG49ITAscj0hMSl7Y29uc3Qgcz1YZXx8TmU7aWYocyl7Y29uc3QgaT1zLnR5cGU7e2NvbnN0IGw9dmYoaSwhMSk7aWYobCYmKGw9PT10fHxsPT09YXQodCl8fGw9PT1HcihhdCh0KSkpKXJldHVybiBpfWNvbnN0IG89UWkoc1tlXXx8aVtlXSx0KXx8UWkocy5hcHBDb250ZXh0W2VdLHQpO3JldHVybiFvJiZyP2k6b319ZnVuY3Rpb24gUWkoZSx0KXtyZXR1cm4gZSYmKGVbdF18fGVbYXQodCldfHxlW0dyKGF0KHQpKV0pfWZ1bmN0aW9uIEFzKGUsdCxuLHIpe2xldCBzO2NvbnN0IGk9bixvPUooZSk7aWYob3x8U2UoZSkpe2NvbnN0IGw9byYmYm4oZSk7bGV0IGE9ITEsdT0hMTtsJiYoYT0hbHQoZSksdT1LdChlKSxlPVFyKGUpKSxzPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKGxldCBjPTAsZj1lLmxlbmd0aDtjPGY7YysrKXNbY109dChhP3U/RnIoRGUoZVtjXSkpOkRlKGVbY10pOmVbY10sYyx2b2lkIDAsaSl9ZWxzZSBpZih0eXBlb2YgZT09Im51bWJlciIpe3M9bmV3IEFycmF5KGUpO2ZvcihsZXQgbD0wO2w8ZTtsKyspc1tsXT10KGwrMSxsLHZvaWQgMCxpKX1lbHNlIGlmKENlKGUpKWlmKGVbU3ltYm9sLml0ZXJhdG9yXSlzPUFycmF5LmZyb20oZSwobCxhKT0+dChsLGEsdm9pZCAwLGkpKTtlbHNle2NvbnN0IGw9T2JqZWN0LmtleXMoZSk7cz1uZXcgQXJyYXkobC5sZW5ndGgpO2ZvcihsZXQgYT0wLHU9bC5sZW5ndGg7YTx1O2ErKyl7Y29uc3QgYz1sW2FdO3NbYV09dChlW2NdLGMsYSxpKX19ZWxzZSBzPVtdO3JldHVybiBzfWNvbnN0IEdzPWU9PmU/bWEoZSk/b3MoZSk6R3MoZS5wYXJlbnQpOm51bGwsem49QmUoT2JqZWN0LmNyZWF0ZShudWxsKSx7JDplPT5lLCRlbDplPT5lLnZub2RlLmVsLCRkYXRhOmU9PmUuZGF0YSwkcHJvcHM6ZT0+ZS5wcm9wcywkYXR0cnM6ZT0+ZS5hdHRycywkc2xvdHM6ZT0+ZS5zbG90cywkcmVmczplPT5lLnJlZnMsJHBhcmVudDplPT5HcyhlLnBhcmVudCksJHJvb3Q6ZT0+R3MoZS5yb290KSwkaG9zdDplPT5lLmNlLCRlbWl0OmU9PmUuZW1pdCwkb3B0aW9uczplPT5RbChlKSwkZm9yY2VVcGRhdGU6ZT0+ZS5mfHwoZS5mPSgpPT57Q2koZS51cGRhdGUpfSksJG5leHRUaWNrOmU9PmUubnx8KGUubj1JZS5iaW5kKGUucHJveHkpKSwkd2F0Y2g6ZT0+ZWYuYmluZChlKX0pLE9zPShlLHQpPT5lIT09aGUmJiFlLl9faXNTY3JpcHRTZXR1cCYmY2UoZSx0KSxGdT17Z2V0KHtfOmV9LHQpe2lmKHQ9PT0iX192X3NraXAiKXJldHVybiEwO2NvbnN0e2N0eDpuLHNldHVwU3RhdGU6cixkYXRhOnMscHJvcHM6aSxhY2Nlc3NDYWNoZTpvLHR5cGU6bCxhcHBDb250ZXh0OmF9PWU7bGV0IHU7aWYodFswXSE9PSIkIil7Y29uc3Qgdj1vW3RdO2lmKHYhPT12b2lkIDApc3dpdGNoKHYpe2Nhc2UgMTpyZXR1cm4gclt0XTtjYXNlIDI6cmV0dXJuIHNbdF07Y2FzZSA0OnJldHVybiBuW3RdO2Nhc2UgMzpyZXR1cm4gaVt0XX1lbHNle2lmKE9zKHIsdCkpcmV0dXJuIG9bdF09MSxyW3RdO2lmKHMhPT1oZSYmY2Uocyx0KSlyZXR1cm4gb1t0XT0yLHNbdF07aWYoKHU9ZS5wcm9wc09wdGlvbnNbMF0pJiZjZSh1LHQpKXJldHVybiBvW3RdPTMsaVt0XTtpZihuIT09aGUmJmNlKG4sdCkpcmV0dXJuIG9bdF09NCxuW3RdO1lzJiYob1t0XT0wKX19Y29uc3QgYz16blt0XTtsZXQgZixoO2lmKGMpcmV0dXJuIHQ9PT0iJGF0dHJzIiYmTWUoZS5hdHRycywiZ2V0IiwiIiksYyhlKTtpZigoZj1sLl9fY3NzTW9kdWxlcykmJihmPWZbdF0pKXJldHVybiBmO2lmKG4hPT1oZSYmY2Uobix0KSlyZXR1cm4gb1t0XT00LG5bdF07aWYoaD1hLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLGNlKGgsdCkpcmV0dXJuIGhbdF19LHNldCh7XzplfSx0LG4pe2NvbnN0e2RhdGE6cixzZXR1cFN0YXRlOnMsY3R4Oml9PWU7cmV0dXJuIE9zKHMsdCk/KHNbdF09biwhMCk6ciE9PWhlJiZjZShyLHQpPyhyW3RdPW4sITApOmNlKGUucHJvcHMsdCl8fHRbMF09PT0iJCImJnQuc2xpY2UoMSlpbiBlPyExOihpW3RdPW4sITApfSxoYXMoe186e2RhdGE6ZSxzZXR1cFN0YXRlOnQsYWNjZXNzQ2FjaGU6bixjdHg6cixhcHBDb250ZXh0OnMscHJvcHNPcHRpb25zOml9fSxvKXtsZXQgbDtyZXR1cm4hIW5bb118fGUhPT1oZSYmY2UoZSxvKXx8T3ModCxvKXx8KGw9aVswXSkmJmNlKGwsbyl8fGNlKHIsbyl8fGNlKHpuLG8pfHxjZShzLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLG8pfSxkZWZpbmVQcm9wZXJ0eShlLHQsbil7cmV0dXJuIG4uZ2V0IT1udWxsP2UuXy5hY2Nlc3NDYWNoZVt0XT0wOmNlKG4sInZhbHVlIikmJnRoaXMuc2V0KGUsdCxuLnZhbHVlLG51bGwpLFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZSx0LG4pfX07ZnVuY3Rpb24gZW8oZSl7cmV0dXJuIEooZSk/ZS5yZWR1Y2UoKHQsbik9Pih0W25dPW51bGwsdCkse30pOmV9bGV0IFlzPSEwO2Z1bmN0aW9uIER1KGUpe2NvbnN0IHQ9UWwoZSksbj1lLnByb3h5LHI9ZS5jdHg7WXM9ITEsdC5iZWZvcmVDcmVhdGUmJnRvKHQuYmVmb3JlQ3JlYXRlLGUsImJjIik7Y29uc3R7ZGF0YTpzLGNvbXB1dGVkOmksbWV0aG9kczpvLHdhdGNoOmwscHJvdmlkZTphLGluamVjdDp1LGNyZWF0ZWQ6YyxiZWZvcmVNb3VudDpmLG1vdW50ZWQ6aCxiZWZvcmVVcGRhdGU6dix1cGRhdGVkOnAsYWN0aXZhdGVkOmIsZGVhY3RpdmF0ZWQ6eSxiZWZvcmVEZXN0cm95OlMsYmVmb3JlVW5tb3VudDpDLGRlc3Ryb3llZDpGLHVubW91bnRlZDpSLHJlbmRlcjpELHJlbmRlclRyYWNrZWQ6TixyZW5kZXJUcmlnZ2VyZWQ6VyxlcnJvckNhcHR1cmVkOlgsc2VydmVyUHJlZmV0Y2g6TCxleHBvc2U6Vixpbmhlcml0QXR0cnM6ZWUsY29tcG9uZW50czpCLGRpcmVjdGl2ZXM6c2UsZmlsdGVyczpiZX09dDtpZih1JiZOdSh1LHIsbnVsbCksbylmb3IoY29uc3QgYWUgaW4gbyl7Y29uc3Qgb2U9b1thZV07WShvZSkmJihyW2FlXT1vZS5iaW5kKG4pKX1pZihzKXtjb25zdCBhZT1zLmNhbGwobixuKTtDZShhZSkmJihlLmRhdGE9cnQoYWUpKX1pZihZcz0hMCxpKWZvcihjb25zdCBhZSBpbiBpKXtjb25zdCBvZT1pW2FlXSxldD1ZKG9lKT9vZS5iaW5kKG4sbik6WShvZS5nZXQpP29lLmdldC5iaW5kKG4sbik6RXQsbXQ9IVkob2UpJiZZKG9lLnNldCk/b2Uuc2V0LmJpbmQobik6RXQsSD1uZSh7Z2V0OmV0LHNldDptdH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGFlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6KCk9PkgudmFsdWUsc2V0OnJlPT5ILnZhbHVlPXJlfSl9aWYobClmb3IoY29uc3QgYWUgaW4gbClabChsW2FlXSxyLG4sYWUpO2lmKGEpe2NvbnN0IGFlPVkoYSk/YS5jYWxsKG4pOmE7UmVmbGVjdC5vd25LZXlzKGFlKS5mb3JFYWNoKG9lPT57eG4ob2UsYWVbb2VdKX0pfWMmJnRvKGMsZSwiYyIpO2Z1bmN0aW9uIHZlKGFlLG9lKXtKKG9lKT9vZS5mb3JFYWNoKGV0PT5hZShldC5iaW5kKG4pKSk6b2UmJmFlKG9lLmJpbmQobikpfWlmKHZlKEV1LGYpLHZlKGh0LGgpLHZlKFlsLHYpLHZlKFhsLHApLHZlKGxyLGIpLHZlKEVuLHkpLHZlKFJ1LFgpLHZlKE91LE4pLHZlKEF1LFcpLHZlKGFyLEMpLHZlKHJzLFIpLHZlKFR1LEwpLEooVikpaWYoVi5sZW5ndGgpe2NvbnN0IGFlPWUuZXhwb3NlZHx8KGUuZXhwb3NlZD17fSk7Vi5mb3JFYWNoKG9lPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGFlLG9lLHtnZXQ6KCk9Pm5bb2VdLHNldDpldD0+bltvZV09ZXR9KX0pfWVsc2UgZS5leHBvc2VkfHwoZS5leHBvc2VkPXt9KTtEJiZlLnJlbmRlcj09PUV0JiYoZS5yZW5kZXI9RCksZWUhPW51bGwmJihlLmluaGVyaXRBdHRycz1lZSksQiYmKGUuY29tcG9uZW50cz1CKSxzZSYmKGUuZGlyZWN0aXZlcz1zZSksTCYmSmwoZSl9ZnVuY3Rpb24gTnUoZSx0LG49RXQpe0ooZSkmJihlPVhzKGUpKTtmb3IoY29uc3QgciBpbiBlKXtjb25zdCBzPWVbcl07bGV0IGk7Q2Uocyk/ImRlZmF1bHQiaW4gcz9pPVd0KHMuZnJvbXx8cixzLmRlZmF1bHQsITApOmk9V3Qocy5mcm9tfHxyKTppPVd0KHMpLGtlKGkpP09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDooKT0+aS52YWx1ZSxzZXQ6bz0+aS52YWx1ZT1vfSk6dFtyXT1pfX1mdW5jdGlvbiB0byhlLHQsbil7ZHQoSihlKT9lLm1hcChyPT5yLmJpbmQodC5wcm94eSkpOmUuYmluZCh0LnByb3h5KSx0LG4pfWZ1bmN0aW9uIFpsKGUsdCxuLHIpe2xldCBzPXIuaW5jbHVkZXMoIi4iKT91YShuLHIpOigpPT5uW3JdO2lmKFNlKGUpKXtjb25zdCBpPXRbZV07WShpKSYmcGUocyxpKX1lbHNlIGlmKFkoZSkpcGUocyxlLmJpbmQobikpO2Vsc2UgaWYoQ2UoZSkpaWYoSihlKSllLmZvckVhY2goaT0+WmwoaSx0LG4scikpO2Vsc2V7Y29uc3QgaT1ZKGUuaGFuZGxlcik/ZS5oYW5kbGVyLmJpbmQobik6dFtlLmhhbmRsZXJdO1koaSkmJnBlKHMsaSxlKX19ZnVuY3Rpb24gUWwoZSl7Y29uc3QgdD1lLnR5cGUse21peGluczpuLGV4dGVuZHM6cn09dCx7bWl4aW5zOnMsb3B0aW9uc0NhY2hlOmksY29uZmlnOntvcHRpb25NZXJnZVN0cmF0ZWdpZXM6b319PWUuYXBwQ29udGV4dCxsPWkuZ2V0KHQpO2xldCBhO3JldHVybiBsP2E9bDohcy5sZW5ndGgmJiFuJiYhcj9hPXQ6KGE9e30scy5sZW5ndGgmJnMuZm9yRWFjaCh1PT4kcihhLHUsbywhMCkpLCRyKGEsdCxvKSksQ2UodCkmJmkuc2V0KHQsYSksYX1mdW5jdGlvbiAkcihlLHQsbixyPSExKXtjb25zdHttaXhpbnM6cyxleHRlbmRzOml9PXQ7aSYmJHIoZSxpLG4sITApLHMmJnMuZm9yRWFjaChvPT4kcihlLG8sbiwhMCkpO2Zvcihjb25zdCBvIGluIHQpaWYoIShyJiZvPT09ImV4cG9zZSIpKXtjb25zdCBsPWt1W29dfHxuJiZuW29dO2Vbb109bD9sKGVbb10sdFtvXSk6dFtvXX1yZXR1cm4gZX1jb25zdCBrdT17ZGF0YTpubyxwcm9wczpybyxlbWl0czpybyxtZXRob2RzOk5uLGNvbXB1dGVkOk5uLGJlZm9yZUNyZWF0ZTp6ZSxjcmVhdGVkOnplLGJlZm9yZU1vdW50OnplLG1vdW50ZWQ6emUsYmVmb3JlVXBkYXRlOnplLHVwZGF0ZWQ6emUsYmVmb3JlRGVzdHJveTp6ZSxiZWZvcmVVbm1vdW50OnplLGRlc3Ryb3llZDp6ZSx1bm1vdW50ZWQ6emUsYWN0aXZhdGVkOnplLGRlYWN0aXZhdGVkOnplLGVycm9yQ2FwdHVyZWQ6emUsc2VydmVyUHJlZmV0Y2g6emUsY29tcG9uZW50czpObixkaXJlY3RpdmVzOk5uLHdhdGNoOkx1LHByb3ZpZGU6bm8saW5qZWN0OiR1fTtmdW5jdGlvbiBubyhlLHQpe3JldHVybiB0P2U/ZnVuY3Rpb24oKXtyZXR1cm4gQmUoWShlKT9lLmNhbGwodGhpcyx0aGlzKTplLFkodCk/dC5jYWxsKHRoaXMsdGhpcyk6dCl9OnQ6ZX1mdW5jdGlvbiAkdShlLHQpe3JldHVybiBObihYcyhlKSxYcyh0KSl9ZnVuY3Rpb24gWHMoZSl7aWYoSihlKSl7Y29uc3QgdD17fTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl0W2Vbbl1dPWVbbl07cmV0dXJuIHR9cmV0dXJuIGV9ZnVuY3Rpb24gemUoZSx0KXtyZXR1cm4gZT9bLi4ubmV3IFNldChbXS5jb25jYXQoZSx0KSldOnR9ZnVuY3Rpb24gTm4oZSx0KXtyZXR1cm4gZT9CZShPYmplY3QuY3JlYXRlKG51bGwpLGUsdCk6dH1mdW5jdGlvbiBybyhlLHQpe3JldHVybiBlP0ooZSkmJkoodCk/Wy4uLm5ldyBTZXQoWy4uLmUsLi4udF0pXTpCZShPYmplY3QuY3JlYXRlKG51bGwpLGVvKGUpLGVvKHQ/P3t9KSk6dH1mdW5jdGlvbiBMdShlLHQpe2lmKCFlKXJldHVybiB0O2lmKCF0KXJldHVybiBlO2NvbnN0IG49QmUoT2JqZWN0LmNyZWF0ZShudWxsKSxlKTtmb3IoY29uc3QgciBpbiB0KW5bcl09emUoZVtyXSx0W3JdKTtyZXR1cm4gbn1mdW5jdGlvbiBlYSgpe3JldHVybnthcHA6bnVsbCxjb25maWc6e2lzTmF0aXZlVGFnOkVjLHBlcmZvcm1hbmNlOiExLGdsb2JhbFByb3BlcnRpZXM6e30sb3B0aW9uTWVyZ2VTdHJhdGVnaWVzOnt9LGVycm9ySGFuZGxlcjp2b2lkIDAsd2FybkhhbmRsZXI6dm9pZCAwLGNvbXBpbGVyT3B0aW9uczp7fX0sbWl4aW5zOltdLGNvbXBvbmVudHM6e30sZGlyZWN0aXZlczp7fSxwcm92aWRlczpPYmplY3QuY3JlYXRlKG51bGwpLG9wdGlvbnNDYWNoZTpuZXcgV2Vha01hcCxwcm9wc0NhY2hlOm5ldyBXZWFrTWFwLGVtaXRzQ2FjaGU6bmV3IFdlYWtNYXB9fWxldCBNdT0wO2Z1bmN0aW9uIEh1KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIscz1udWxsKXtZKHIpfHwocj1CZSh7fSxyKSkscyE9bnVsbCYmIUNlKHMpJiYocz1udWxsKTtjb25zdCBpPWVhKCksbz1uZXcgV2Vha1NldCxsPVtdO2xldCBhPSExO2NvbnN0IHU9aS5hcHA9e191aWQ6TXUrKyxfY29tcG9uZW50OnIsX3Byb3BzOnMsX2NvbnRhaW5lcjpudWxsLF9jb250ZXh0OmksX2luc3RhbmNlOm51bGwsdmVyc2lvbjp4ZixnZXQgY29uZmlnKCl7cmV0dXJuIGkuY29uZmlnfSxzZXQgY29uZmlnKGMpe30sdXNlKGMsLi4uZil7cmV0dXJuIG8uaGFzKGMpfHwoYyYmWShjLmluc3RhbGwpPyhvLmFkZChjKSxjLmluc3RhbGwodSwuLi5mKSk6WShjKSYmKG8uYWRkKGMpLGModSwuLi5mKSkpLHV9LG1peGluKGMpe3JldHVybiBpLm1peGlucy5pbmNsdWRlcyhjKXx8aS5taXhpbnMucHVzaChjKSx1fSxjb21wb25lbnQoYyxmKXtyZXR1cm4gZj8oaS5jb21wb25lbnRzW2NdPWYsdSk6aS5jb21wb25lbnRzW2NdfSxkaXJlY3RpdmUoYyxmKXtyZXR1cm4gZj8oaS5kaXJlY3RpdmVzW2NdPWYsdSk6aS5kaXJlY3RpdmVzW2NdfSxtb3VudChjLGYsaCl7aWYoIWEpe2NvbnN0IHY9dS5fY2VWTm9kZXx8ZyhyLHMpO3JldHVybiB2LmFwcENvbnRleHQ9aSxoPT09ITA/aD0ic3ZnIjpoPT09ITEmJihoPXZvaWQgMCksZSh2LGMsaCksYT0hMCx1Ll9jb250YWluZXI9YyxjLl9fdnVlX2FwcF9fPXUsb3Modi5jb21wb25lbnQpfX0sb25Vbm1vdW50KGMpe2wucHVzaChjKX0sdW5tb3VudCgpe2EmJihkdChsLHUuX2luc3RhbmNlLDE2KSxlKG51bGwsdS5fY29udGFpbmVyKSxkZWxldGUgdS5fY29udGFpbmVyLl9fdnVlX2FwcF9fKX0scHJvdmlkZShjLGYpe3JldHVybiBpLnByb3ZpZGVzW2NdPWYsdX0scnVuV2l0aENvbnRleHQoYyl7Y29uc3QgZj1fbjtfbj11O3RyeXtyZXR1cm4gYygpfWZpbmFsbHl7X249Zn19fTtyZXR1cm4gdX19bGV0IF9uPW51bGw7ZnVuY3Rpb24geG4oZSx0KXtpZihOZSl7bGV0IG49TmUucHJvdmlkZXM7Y29uc3Qgcj1OZS5wYXJlbnQmJk5lLnBhcmVudC5wcm92aWRlcztyPT09biYmKG49TmUucHJvdmlkZXM9T2JqZWN0LmNyZWF0ZShyKSksbltlXT10fX1mdW5jdGlvbiBXdChlLHQsbj0hMSl7Y29uc3Qgcj1OZXx8WGU7aWYocnx8X24pe2xldCBzPV9uP19uLl9jb250ZXh0LnByb3ZpZGVzOnI/ci5wYXJlbnQ9PW51bGx8fHIuY2U/ci52bm9kZS5hcHBDb250ZXh0JiZyLnZub2RlLmFwcENvbnRleHQucHJvdmlkZXM6ci5wYXJlbnQucHJvdmlkZXM6dm9pZCAwO2lmKHMmJmUgaW4gcylyZXR1cm4gc1tlXTtpZihhcmd1bWVudHMubGVuZ3RoPjEpcmV0dXJuIG4mJlkodCk/dC5jYWxsKHImJnIucHJveHkpOnR9fWNvbnN0IHRhPXt9LG5hPSgpPT5PYmplY3QuY3JlYXRlKHRhKSxyYT1lPT5PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT10YTtmdW5jdGlvbiBVdShlLHQsbixyPSExKXtjb25zdCBzPXt9LGk9bmEoKTtlLnByb3BzRGVmYXVsdHM9T2JqZWN0LmNyZWF0ZShudWxsKSxzYShlLHQscyxpKTtmb3IoY29uc3QgbyBpbiBlLnByb3BzT3B0aW9uc1swXSlvIGluIHN8fChzW29dPXZvaWQgMCk7bj9lLnByb3BzPXI/czphdShzKTplLnR5cGUucHJvcHM/ZS5wcm9wcz1zOmUucHJvcHM9aSxlLmF0dHJzPWl9ZnVuY3Rpb24ganUoZSx0LG4scil7Y29uc3R7cHJvcHM6cyxhdHRyczppLHZub2RlOntwYXRjaEZsYWc6b319PWUsbD1sZShzKSxbYV09ZS5wcm9wc09wdGlvbnM7bGV0IHU9ITE7aWYoKHJ8fG8+MCkmJiEobyYxNikpe2lmKG8mOCl7Y29uc3QgYz1lLnZub2RlLmR5bmFtaWNQcm9wcztmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrKyl7bGV0IGg9Y1tmXTtpZihzcyhlLmVtaXRzT3B0aW9ucyxoKSljb250aW51ZTtjb25zdCB2PXRbaF07aWYoYSlpZihjZShpLGgpKXYhPT1pW2hdJiYoaVtoXT12LHU9ITApO2Vsc2V7Y29uc3QgcD1hdChoKTtzW3BdPVpzKGEsbCxwLHYsZSwhMSl9ZWxzZSB2IT09aVtoXSYmKGlbaF09dix1PSEwKX19fWVsc2V7c2EoZSx0LHMsaSkmJih1PSEwKTtsZXQgYztmb3IoY29uc3QgZiBpbiBsKSghdHx8IWNlKHQsZikmJigoYz1rdChmKSk9PT1mfHwhY2UodCxjKSkpJiYoYT9uJiYobltmXSE9PXZvaWQgMHx8bltjXSE9PXZvaWQgMCkmJihzW2ZdPVpzKGEsbCxmLHZvaWQgMCxlLCEwKSk6ZGVsZXRlIHNbZl0pO2lmKGkhPT1sKWZvcihjb25zdCBmIGluIGkpKCF0fHwhY2UodCxmKSkmJihkZWxldGUgaVtmXSx1PSEwKX11JiZQdChlLmF0dHJzLCJzZXQiLCIiKX1mdW5jdGlvbiBzYShlLHQsbixyKXtjb25zdFtzLGldPWUucHJvcHNPcHRpb25zO2xldCBvPSExLGw7aWYodClmb3IobGV0IGEgaW4gdCl7aWYoTG4oYSkpY29udGludWU7Y29uc3QgdT10W2FdO2xldCBjO3MmJmNlKHMsYz1hdChhKSk/IWl8fCFpLmluY2x1ZGVzKGMpP25bY109dToobHx8KGw9e30pKVtjXT11OnNzKGUuZW1pdHNPcHRpb25zLGEpfHwoIShhIGluIHIpfHx1IT09clthXSkmJihyW2FdPXUsbz0hMCl9aWYoaSl7Y29uc3QgYT1sZShuKSx1PWx8fGhlO2ZvcihsZXQgYz0wO2M8aS5sZW5ndGg7YysrKXtjb25zdCBmPWlbY107bltmXT1acyhzLGEsZix1W2ZdLGUsIWNlKHUsZikpfX1yZXR1cm4gb31mdW5jdGlvbiBacyhlLHQsbixyLHMsaSl7Y29uc3Qgbz1lW25dO2lmKG8hPW51bGwpe2NvbnN0IGw9Y2UobywiZGVmYXVsdCIpO2lmKGwmJnI9PT12b2lkIDApe2NvbnN0IGE9by5kZWZhdWx0O2lmKG8udHlwZSE9PUZ1bmN0aW9uJiYhby5za2lwRmFjdG9yeSYmWShhKSl7Y29uc3R7cHJvcHNEZWZhdWx0czp1fT1zO2lmKG4gaW4gdSlyPXVbbl07ZWxzZXtjb25zdCBjPWNyKHMpO3I9dVtuXT1hLmNhbGwobnVsbCx0KSxjKCl9fWVsc2Ugcj1hO3MuY2UmJnMuY2UuX3NldFByb3AobixyKX1vWzBdJiYoaSYmIWw/cj0hMTpvWzFdJiYocj09PSIifHxyPT09a3QobikpJiYocj0hMCkpfXJldHVybiByfWNvbnN0IFZ1PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGlhKGUsdCxuPSExKXtjb25zdCByPW4/VnU6dC5wcm9wc0NhY2hlLHM9ci5nZXQoZSk7aWYocylyZXR1cm4gcztjb25zdCBpPWUucHJvcHMsbz17fSxsPVtdO2xldCBhPSExO2lmKCFZKGUpKXtjb25zdCBjPWY9PnthPSEwO2NvbnN0W2gsdl09aWEoZix0LCEwKTtCZShvLGgpLHYmJmwucHVzaCguLi52KX07IW4mJnQubWl4aW5zLmxlbmd0aCYmdC5taXhpbnMuZm9yRWFjaChjKSxlLmV4dGVuZHMmJmMoZS5leHRlbmRzKSxlLm1peGlucyYmZS5taXhpbnMuZm9yRWFjaChjKX1pZighaSYmIWEpcmV0dXJuIENlKGUpJiZyLnNldChlLHluKSx5bjtpZihKKGkpKWZvcihsZXQgYz0wO2M8aS5sZW5ndGg7YysrKXtjb25zdCBmPWF0KGlbY10pO3NvKGYpJiYob1tmXT1oZSl9ZWxzZSBpZihpKWZvcihjb25zdCBjIGluIGkpe2NvbnN0IGY9YXQoYyk7aWYoc28oZikpe2NvbnN0IGg9aVtjXSx2PW9bZl09SihoKXx8WShoKT97dHlwZTpofTpCZSh7fSxoKSxwPXYudHlwZTtsZXQgYj0hMSx5PSEwO2lmKEoocCkpZm9yKGxldCBTPTA7UzxwLmxlbmd0aDsrK1Mpe2NvbnN0IEM9cFtTXSxGPVkoQykmJkMubmFtZTtpZihGPT09IkJvb2xlYW4iKXtiPSEwO2JyZWFrfWVsc2UgRj09PSJTdHJpbmciJiYoeT0hMSl9ZWxzZSBiPVkocCkmJnAubmFtZT09PSJCb29sZWFuIjt2WzBdPWIsdlsxXT15LChifHxjZSh2LCJkZWZhdWx0IikpJiZsLnB1c2goZil9fWNvbnN0IHU9W28sbF07cmV0dXJuIENlKGUpJiZyLnNldChlLHUpLHV9ZnVuY3Rpb24gc28oZSl7cmV0dXJuIGVbMF0hPT0iJCImJiFMbihlKX1jb25zdCBUaT1lPT5lWzBdPT09Il8ifHxlPT09IiRzdGFibGUiLEFpPWU9PkooZSk/ZS5tYXAoU3QpOltTdChlKV0senU9KGUsdCxuKT0+e2lmKHQuX24pcmV0dXJuIHQ7Y29uc3Qgcj1WZSgoLi4ucyk9PkFpKHQoLi4ucykpLG4pO3JldHVybiByLl9jPSExLHJ9LG9hPShlLHQsbik9Pntjb25zdCByPWUuX2N0eDtmb3IoY29uc3QgcyBpbiBlKXtpZihUaShzKSljb250aW51ZTtjb25zdCBpPWVbc107aWYoWShpKSl0W3NdPXp1KHMsaSxyKTtlbHNlIGlmKGkhPW51bGwpe2NvbnN0IG89QWkoaSk7dFtzXT0oKT0+b319fSxsYT0oZSx0KT0+e2NvbnN0IG49QWkodCk7ZS5zbG90cy5kZWZhdWx0PSgpPT5ufSxhYT0oZSx0LG4pPT57Zm9yKGNvbnN0IHIgaW4gdCkobnx8IVRpKHIpKSYmKGVbcl09dFtyXSl9LHF1PShlLHQsbik9Pntjb25zdCByPWUuc2xvdHM9bmEoKTtpZihlLnZub2RlLnNoYXBlRmxhZyYzMil7Y29uc3Qgcz10Ll9fO3MmJmpzKHIsIl9fIixzLCEwKTtjb25zdCBpPXQuXztpPyhhYShyLHQsbiksbiYmanMociwiXyIsaSwhMCkpOm9hKHQscil9ZWxzZSB0JiZsYShlLHQpfSxXdT0oZSx0LG4pPT57Y29uc3R7dm5vZGU6cixzbG90czpzfT1lO2xldCBpPSEwLG89aGU7aWYoci5zaGFwZUZsYWcmMzIpe2NvbnN0IGw9dC5fO2w/biYmbD09PTE/aT0hMTphYShzLHQsbik6KGk9IXQuJHN0YWJsZSxvYSh0LHMpKSxvPXR9ZWxzZSB0JiYobGEoZSx0KSxvPXtkZWZhdWx0OjF9KTtpZihpKWZvcihjb25zdCBsIGluIHMpIVRpKGwpJiZvW2xdPT1udWxsJiZkZWxldGUgc1tsXX0scWU9YWY7ZnVuY3Rpb24gS3UoZSl7cmV0dXJuIEp1KGUpfWZ1bmN0aW9uIEp1KGUsdCl7Y29uc3Qgbj1ZcigpO24uX19WVUVfXz0hMDtjb25zdHtpbnNlcnQ6cixyZW1vdmU6cyxwYXRjaFByb3A6aSxjcmVhdGVFbGVtZW50Om8sY3JlYXRlVGV4dDpsLGNyZWF0ZUNvbW1lbnQ6YSxzZXRUZXh0OnUsc2V0RWxlbWVudFRleHQ6YyxwYXJlbnROb2RlOmYsbmV4dFNpYmxpbmc6aCxzZXRTY29wZUlkOnY9RXQsaW5zZXJ0U3RhdGljQ29udGVudDpwfT1lLGI9KGQsbSx4LEU9bnVsbCxUPW51bGwsQT1udWxsLGs9dm9pZCAwLFA9bnVsbCxJPSEhbS5keW5hbWljQ2hpbGRyZW4pPT57aWYoZD09PW0pcmV0dXJuO2QmJiFubihkLG0pJiYoRT1fKGQpLHJlKGQsVCxBLCEwKSxkPW51bGwpLG0ucGF0Y2hGbGFnPT09LTImJihJPSExLG0uZHluYW1pY0NoaWxkcmVuPW51bGwpO2NvbnN0e3R5cGU6TyxyZWY6cSxzaGFwZUZsYWc6JH09bTtzd2l0Y2goTyl7Y2FzZSBpczp5KGQsbSx4LEUpO2JyZWFrO2Nhc2UgS2U6UyhkLG0seCxFKTticmVhaztjYXNlIElzOmQ9PW51bGwmJkMobSx4LEUsayk7YnJlYWs7Y2FzZSBIZTpCKGQsbSx4LEUsVCxBLGssUCxJKTticmVhaztkZWZhdWx0OiQmMT9EKGQsbSx4LEUsVCxBLGssUCxJKTokJjY/c2UoZCxtLHgsRSxULEEsayxQLEkpOigkJjY0fHwkJjEyOCkmJk8ucHJvY2VzcyhkLG0seCxFLFQsQSxrLFAsSSx0ZSl9cSE9bnVsbCYmVD9qbihxLGQmJmQucmVmLEEsbXx8ZCwhbSk6cT09bnVsbCYmZCYmZC5yZWYhPW51bGwmJmpuKGQucmVmLG51bGwsQSxkLCEwKX0seT0oZCxtLHgsRSk9PntpZihkPT1udWxsKXIobS5lbD1sKG0uY2hpbGRyZW4pLHgsRSk7ZWxzZXtjb25zdCBUPW0uZWw9ZC5lbDttLmNoaWxkcmVuIT09ZC5jaGlsZHJlbiYmdShULG0uY2hpbGRyZW4pfX0sUz0oZCxtLHgsRSk9PntkPT1udWxsP3IobS5lbD1hKG0uY2hpbGRyZW58fCIiKSx4LEUpOm0uZWw9ZC5lbH0sQz0oZCxtLHgsRSk9PntbZC5lbCxkLmFuY2hvcl09cChkLmNoaWxkcmVuLG0seCxFLGQuZWwsZC5hbmNob3IpfSxGPSh7ZWw6ZCxhbmNob3I6bX0seCxFKT0+e2xldCBUO2Zvcig7ZCYmZCE9PW07KVQ9aChkKSxyKGQseCxFKSxkPVQ7cihtLHgsRSl9LFI9KHtlbDpkLGFuY2hvcjptfSk9PntsZXQgeDtmb3IoO2QmJmQhPT1tOyl4PWgoZCkscyhkKSxkPXg7cyhtKX0sRD0oZCxtLHgsRSxULEEsayxQLEkpPT57bS50eXBlPT09InN2ZyI/az0ic3ZnIjptLnR5cGU9PT0ibWF0aCImJihrPSJtYXRobWwiKSxkPT1udWxsP04obSx4LEUsVCxBLGssUCxJKTpMKGQsbSxULEEsayxQLEkpfSxOPShkLG0seCxFLFQsQSxrLFApPT57bGV0IEksTztjb25zdHtwcm9wczpxLHNoYXBlRmxhZzokLHRyYW5zaXRpb246aixkaXJzOkd9PWQ7aWYoST1kLmVsPW8oZC50eXBlLEEscSYmcS5pcyxxKSwkJjg/YyhJLGQuY2hpbGRyZW4pOiQmMTYmJlgoZC5jaGlsZHJlbixJLG51bGwsRSxULFJzKGQsQSksayxQKSxHJiZZdChkLG51bGwsRSwiY3JlYXRlZCIpLFcoSSxkLGQuc2NvcGVJZCxrLEUpLHEpe2Zvcihjb25zdCBnZSBpbiBxKWdlIT09InZhbHVlIiYmIUxuKGdlKSYmaShJLGdlLG51bGwscVtnZV0sQSxFKTsidmFsdWUiaW4gcSYmaShJLCJ2YWx1ZSIsbnVsbCxxLnZhbHVlLEEpLChPPXEub25Wbm9kZUJlZm9yZU1vdW50KSYmX3QoTyxFLGQpfUcmJll0KGQsbnVsbCxFLCJiZWZvcmVNb3VudCIpO2NvbnN0IGllPUd1KFQsaik7aWUmJmouYmVmb3JlRW50ZXIoSSkscihJLG0seCksKChPPXEmJnEub25Wbm9kZU1vdW50ZWQpfHxpZXx8RykmJnFlKCgpPT57TyYmX3QoTyxFLGQpLGllJiZqLmVudGVyKEkpLEcmJll0KGQsbnVsbCxFLCJtb3VudGVkIil9LFQpfSxXPShkLG0seCxFLFQpPT57aWYoeCYmdihkLHgpLEUpZm9yKGxldCBBPTA7QTxFLmxlbmd0aDtBKyspdihkLEVbQV0pO2lmKFQpe2xldCBBPVQuc3ViVHJlZTtpZihtPT09QXx8ZGEoQS50eXBlKSYmKEEuc3NDb250ZW50PT09bXx8QS5zc0ZhbGxiYWNrPT09bSkpe2NvbnN0IGs9VC52bm9kZTtXKGQsayxrLnNjb3BlSWQsay5zbG90U2NvcGVJZHMsVC5wYXJlbnQpfX19LFg9KGQsbSx4LEUsVCxBLGssUCxJPTApPT57Zm9yKGxldCBPPUk7TzxkLmxlbmd0aDtPKyspe2NvbnN0IHE9ZFtPXT1QP3p0KGRbT10pOlN0KGRbT10pO2IobnVsbCxxLG0seCxFLFQsQSxrLFApfX0sTD0oZCxtLHgsRSxULEEsayk9Pntjb25zdCBQPW0uZWw9ZC5lbDtsZXR7cGF0Y2hGbGFnOkksZHluYW1pY0NoaWxkcmVuOk8sZGlyczpxfT1tO0l8PWQucGF0Y2hGbGFnJjE2O2NvbnN0ICQ9ZC5wcm9wc3x8aGUsaj1tLnByb3BzfHxoZTtsZXQgRztpZih4JiZYdCh4LCExKSwoRz1qLm9uVm5vZGVCZWZvcmVVcGRhdGUpJiZfdChHLHgsbSxkKSxxJiZZdChtLGQseCwiYmVmb3JlVXBkYXRlIikseCYmWHQoeCwhMCksKCQuaW5uZXJIVE1MJiZqLmlubmVySFRNTD09bnVsbHx8JC50ZXh0Q29udGVudCYmai50ZXh0Q29udGVudD09bnVsbCkmJmMoUCwiIiksTz9WKGQuZHluYW1pY0NoaWxkcmVuLE8sUCx4LEUsUnMobSxUKSxBKTprfHxvZShkLG0sUCxudWxsLHgsRSxScyhtLFQpLEEsITEpLEk+MCl7aWYoSSYxNillZShQLCQsaix4LFQpO2Vsc2UgaWYoSSYyJiYkLmNsYXNzIT09ai5jbGFzcyYmaShQLCJjbGFzcyIsbnVsbCxqLmNsYXNzLFQpLEkmNCYmaShQLCJzdHlsZSIsJC5zdHlsZSxqLnN0eWxlLFQpLEkmOCl7Y29uc3QgaWU9bS5keW5hbWljUHJvcHM7Zm9yKGxldCBnZT0wO2dlPGllLmxlbmd0aDtnZSsrKXtjb25zdCB1ZT1pZVtnZV0sSmU9JFt1ZV0sR2U9alt1ZV07KEdlIT09SmV8fHVlPT09InZhbHVlIikmJmkoUCx1ZSxKZSxHZSxULHgpfX1JJjEmJmQuY2hpbGRyZW4hPT1tLmNoaWxkcmVuJiZjKFAsbS5jaGlsZHJlbil9ZWxzZSFrJiZPPT1udWxsJiZlZShQLCQsaix4LFQpOygoRz1qLm9uVm5vZGVVcGRhdGVkKXx8cSkmJnFlKCgpPT57RyYmX3QoRyx4LG0sZCkscSYmWXQobSxkLHgsInVwZGF0ZWQiKX0sRSl9LFY9KGQsbSx4LEUsVCxBLGspPT57Zm9yKGxldCBQPTA7UDxtLmxlbmd0aDtQKyspe2NvbnN0IEk9ZFtQXSxPPW1bUF0scT1JLmVsJiYoSS50eXBlPT09SGV8fCFubihJLE8pfHxJLnNoYXBlRmxhZyYxOTgpP2YoSS5lbCk6eDtiKEksTyxxLG51bGwsRSxULEEsaywhMCl9fSxlZT0oZCxtLHgsRSxUKT0+e2lmKG0hPT14KXtpZihtIT09aGUpZm9yKGNvbnN0IEEgaW4gbSkhTG4oQSkmJiEoQSBpbiB4KSYmaShkLEEsbVtBXSxudWxsLFQsRSk7Zm9yKGNvbnN0IEEgaW4geCl7aWYoTG4oQSkpY29udGludWU7Y29uc3Qgaz14W0FdLFA9bVtBXTtrIT09UCYmQSE9PSJ2YWx1ZSImJmkoZCxBLFAsayxULEUpfSJ2YWx1ZSJpbiB4JiZpKGQsInZhbHVlIixtLnZhbHVlLHgudmFsdWUsVCl9fSxCPShkLG0seCxFLFQsQSxrLFAsSSk9Pntjb25zdCBPPW0uZWw9ZD9kLmVsOmwoIiIpLHE9bS5hbmNob3I9ZD9kLmFuY2hvcjpsKCIiKTtsZXR7cGF0Y2hGbGFnOiQsZHluYW1pY0NoaWxkcmVuOmosc2xvdFNjb3BlSWRzOkd9PW07RyYmKFA9UD9QLmNvbmNhdChHKTpHKSxkPT1udWxsPyhyKE8seCxFKSxyKHEseCxFKSxYKG0uY2hpbGRyZW58fFtdLHgscSxULEEsayxQLEkpKTokPjAmJiQmNjQmJmomJmQuZHluYW1pY0NoaWxkcmVuPyhWKGQuZHluYW1pY0NoaWxkcmVuLGoseCxULEEsayxQKSwobS5rZXkhPW51bGx8fFQmJm09PT1ULnN1YlRyZWUpJiZPaShkLG0sITApKTpvZShkLG0seCxxLFQsQSxrLFAsSSl9LHNlPShkLG0seCxFLFQsQSxrLFAsSSk9PnttLnNsb3RTY29wZUlkcz1QLGQ9PW51bGw/bS5zaGFwZUZsYWcmNTEyP1QuY3R4LmFjdGl2YXRlKG0seCxFLGssSSk6YmUobSx4LEUsVCxBLGssSSk6JGUoZCxtLEkpfSxiZT0oZCxtLHgsRSxULEEsayk9Pntjb25zdCBQPWQuY29tcG9uZW50PWdmKGQsRSxUKTtpZih0cyhkKSYmKFAuY3R4LnJlbmRlcmVyPXRlKSxtZihQLCExLGspLFAuYXN5bmNEZXApe2lmKFQmJlQucmVnaXN0ZXJEZXAoUCx2ZSxrKSwhZC5lbCl7Y29uc3QgST1QLnN1YlRyZWU9ZyhLZSk7UyhudWxsLEksbSx4KX19ZWxzZSB2ZShQLGQsbSx4LFQsQSxrKX0sJGU9KGQsbSx4KT0+e2NvbnN0IEU9bS5jb21wb25lbnQ9ZC5jb21wb25lbnQ7aWYob2YoZCxtLHgpKWlmKEUuYXN5bmNEZXAmJiFFLmFzeW5jUmVzb2x2ZWQpe2FlKEUsbSx4KTtyZXR1cm59ZWxzZSBFLm5leHQ9bSxFLnVwZGF0ZSgpO2Vsc2UgbS5lbD1kLmVsLEUudm5vZGU9bX0sdmU9KGQsbSx4LEUsVCxBLGspPT57Y29uc3QgUD0oKT0+e2lmKGQuaXNNb3VudGVkKXtsZXR7bmV4dDokLGJ1OmosdTpHLHBhcmVudDppZSx2bm9kZTpnZX09ZDt7Y29uc3QgeXQ9Y2EoZCk7aWYoeXQpeyQmJigkLmVsPWdlLmVsLGFlKGQsJCxrKSkseXQuYXN5bmNEZXAudGhlbigoKT0+e2QuaXNVbm1vdW50ZWR8fFAoKX0pO3JldHVybn19bGV0IHVlPSQsSmU7WHQoZCwhMSksJD8oJC5lbD1nZS5lbCxhZShkLCQsaykpOiQ9Z2UsaiYmeHMoaiksKEplPSQucHJvcHMmJiQucHJvcHMub25Wbm9kZUJlZm9yZVVwZGF0ZSkmJl90KEplLGllLCQsZ2UpLFh0KGQsITApO2NvbnN0IEdlPW9vKGQpLHB0PWQuc3ViVHJlZTtkLnN1YlRyZWU9R2UsYihwdCxHZSxmKHB0LmVsKSxfKHB0KSxkLFQsQSksJC5lbD1HZS5lbCx1ZT09PW51bGwmJmxmKGQsR2UuZWwpLEcmJnFlKEcsVCksKEplPSQucHJvcHMmJiQucHJvcHMub25Wbm9kZVVwZGF0ZWQpJiZxZSgoKT0+X3QoSmUsaWUsJCxnZSksVCl9ZWxzZXtsZXQgJDtjb25zdHtlbDpqLHByb3BzOkd9PW0se2JtOmllLG06Z2UscGFyZW50OnVlLHJvb3Q6SmUsdHlwZTpHZX09ZCxwdD1WbihtKTtYdChkLCExKSxpZSYmeHMoaWUpLCFwdCYmKCQ9RyYmRy5vblZub2RlQmVmb3JlTW91bnQpJiZfdCgkLHVlLG0pLFh0KGQsITApO3tKZS5jZSYmSmUuY2UuX2RlZi5zaGFkb3dSb290IT09ITEmJkplLmNlLl9pbmplY3RDaGlsZFN0eWxlKEdlKTtjb25zdCB5dD1kLnN1YlRyZWU9b28oZCk7YihudWxsLHl0LHgsRSxkLFQsQSksbS5lbD15dC5lbH1pZihnZSYmcWUoZ2UsVCksIXB0JiYoJD1HJiZHLm9uVm5vZGVNb3VudGVkKSl7Y29uc3QgeXQ9bTtxZSgoKT0+X3QoJCx1ZSx5dCksVCl9KG0uc2hhcGVGbGFnJjI1Nnx8dWUmJlZuKHVlLnZub2RlKSYmdWUudm5vZGUuc2hhcGVGbGFnJjI1NikmJmQuYSYmcWUoZC5hLFQpLGQuaXNNb3VudGVkPSEwLG09eD1FPW51bGx9fTtkLnNjb3BlLm9uKCk7Y29uc3QgST1kLmVmZmVjdD1uZXcgeWwoUCk7ZC5zY29wZS5vZmYoKTtjb25zdCBPPWQudXBkYXRlPUkucnVuLmJpbmQoSSkscT1kLmpvYj1JLnJ1bklmRGlydHkuYmluZChJKTtxLmk9ZCxxLmlkPWQudWlkLEkuc2NoZWR1bGVyPSgpPT5DaShxKSxYdChkLCEwKSxPKCl9LGFlPShkLG0seCk9PnttLmNvbXBvbmVudD1kO2NvbnN0IEU9ZC52bm9kZS5wcm9wcztkLnZub2RlPW0sZC5uZXh0PW51bGwsanUoZCxtLnByb3BzLEUseCksV3UoZCxtLmNoaWxkcmVuLHgpLER0KCksSmkoZCksTnQoKX0sb2U9KGQsbSx4LEUsVCxBLGssUCxJPSExKT0+e2NvbnN0IE89ZCYmZC5jaGlsZHJlbixxPWQ/ZC5zaGFwZUZsYWc6MCwkPW0uY2hpbGRyZW4se3BhdGNoRmxhZzpqLHNoYXBlRmxhZzpHfT1tO2lmKGo+MCl7aWYoaiYxMjgpe210KE8sJCx4LEUsVCxBLGssUCxJKTtyZXR1cm59ZWxzZSBpZihqJjI1Nil7ZXQoTywkLHgsRSxULEEsayxQLEkpO3JldHVybn19RyY4PyhxJjE2JiZLKE8sVCxBKSwkIT09TyYmYyh4LCQpKTpxJjE2P0cmMTY/bXQoTywkLHgsRSxULEEsayxQLEkpOksoTyxULEEsITApOihxJjgmJmMoeCwiIiksRyYxNiYmWCgkLHgsRSxULEEsayxQLEkpKX0sZXQ9KGQsbSx4LEUsVCxBLGssUCxJKT0+e2Q9ZHx8eW4sbT1tfHx5bjtjb25zdCBPPWQubGVuZ3RoLHE9bS5sZW5ndGgsJD1NYXRoLm1pbihPLHEpO2xldCBqO2ZvcihqPTA7ajwkO2orKyl7Y29uc3QgRz1tW2pdPUk/enQobVtqXSk6U3QobVtqXSk7YihkW2pdLEcseCxudWxsLFQsQSxrLFAsSSl9Tz5xP0soZCxULEEsITAsITEsJCk6WChtLHgsRSxULEEsayxQLEksJCl9LG10PShkLG0seCxFLFQsQSxrLFAsSSk9PntsZXQgTz0wO2NvbnN0IHE9bS5sZW5ndGg7bGV0ICQ9ZC5sZW5ndGgtMSxqPXEtMTtmb3IoO088PSQmJk88PWo7KXtjb25zdCBHPWRbT10saWU9bVtPXT1JP3p0KG1bT10pOlN0KG1bT10pO2lmKG5uKEcsaWUpKWIoRyxpZSx4LG51bGwsVCxBLGssUCxJKTtlbHNlIGJyZWFrO08rK31mb3IoO088PSQmJk88PWo7KXtjb25zdCBHPWRbJF0saWU9bVtqXT1JP3p0KG1bal0pOlN0KG1bal0pO2lmKG5uKEcsaWUpKWIoRyxpZSx4LG51bGwsVCxBLGssUCxJKTtlbHNlIGJyZWFrOyQtLSxqLS19aWYoTz4kKXtpZihPPD1qKXtjb25zdCBHPWorMSxpZT1HPHE/bVtHXS5lbDpFO2Zvcig7Tzw9ajspYihudWxsLG1bT109ST96dChtW09dKTpTdChtW09dKSx4LGllLFQsQSxrLFAsSSksTysrfX1lbHNlIGlmKE8+ailmb3IoO088PSQ7KXJlKGRbT10sVCxBLCEwKSxPKys7ZWxzZXtjb25zdCBHPU8saWU9TyxnZT1uZXcgTWFwO2ZvcihPPWllO088PWo7TysrKXtjb25zdCB0dD1tW09dPUk/enQobVtPXSk6U3QobVtPXSk7dHQua2V5IT1udWxsJiZnZS5zZXQodHQua2V5LE8pfWxldCB1ZSxKZT0wO2NvbnN0IEdlPWotaWUrMTtsZXQgcHQ9ITEseXQ9MDtjb25zdCBSbj1uZXcgQXJyYXkoR2UpO2ZvcihPPTA7TzxHZTtPKyspUm5bT109MDtmb3IoTz1HO088PSQ7TysrKXtjb25zdCB0dD1kW09dO2lmKEplPj1HZSl7cmUodHQsVCxBLCEwKTtjb250aW51ZX1sZXQgYnQ7aWYodHQua2V5IT1udWxsKWJ0PWdlLmdldCh0dC5rZXkpO2Vsc2UgZm9yKHVlPWllO3VlPD1qO3VlKyspaWYoUm5bdWUtaWVdPT09MCYmbm4odHQsbVt1ZV0pKXtidD11ZTticmVha31idD09PXZvaWQgMD9yZSh0dCxULEEsITApOihSbltidC1pZV09TysxLGJ0Pj15dD95dD1idDpwdD0hMCxiKHR0LG1bYnRdLHgsbnVsbCxULEEsayxQLEkpLEplKyspfWNvbnN0IFZpPXB0P1l1KFJuKTp5bjtmb3IodWU9VmkubGVuZ3RoLTEsTz1HZS0xO08+PTA7Ty0tKXtjb25zdCB0dD1pZStPLGJ0PW1bdHRdLHppPXR0KzE8cT9tW3R0KzFdLmVsOkU7Um5bT109PT0wP2IobnVsbCxidCx4LHppLFQsQSxrLFAsSSk6cHQmJih1ZTwwfHxPIT09VmlbdWVdP0goYnQseCx6aSwyKTp1ZS0tKX19fSxIPShkLG0seCxFLFQ9bnVsbCk9Pntjb25zdHtlbDpBLHR5cGU6ayx0cmFuc2l0aW9uOlAsY2hpbGRyZW46SSxzaGFwZUZsYWc6T309ZDtpZihPJjYpe0goZC5jb21wb25lbnQuc3ViVHJlZSxtLHgsRSk7cmV0dXJufWlmKE8mMTI4KXtkLnN1c3BlbnNlLm1vdmUobSx4LEUpO3JldHVybn1pZihPJjY0KXtrLm1vdmUoZCxtLHgsdGUpO3JldHVybn1pZihrPT09SGUpe3IoQSxtLHgpO2ZvcihsZXQgJD0wOyQ8SS5sZW5ndGg7JCsrKUgoSVskXSxtLHgsRSk7cihkLmFuY2hvcixtLHgpO3JldHVybn1pZihrPT09SXMpe0YoZCxtLHgpO3JldHVybn1pZihFIT09MiYmTyYxJiZQKWlmKEU9PT0wKVAuYmVmb3JlRW50ZXIoQSkscihBLG0seCkscWUoKCk9PlAuZW50ZXIoQSksVCk7ZWxzZXtjb25zdHtsZWF2ZTokLGRlbGF5TGVhdmU6aixhZnRlckxlYXZlOkd9PVAsaWU9KCk9PntkLmN0eC5pc1VubW91bnRlZD9zKEEpOnIoQSxtLHgpfSxnZT0oKT0+eyQoQSwoKT0+e2llKCksRyYmRygpfSl9O2o/aihBLGllLGdlKTpnZSgpfWVsc2UgcihBLG0seCl9LHJlPShkLG0seCxFPSExLFQ9ITEpPT57Y29uc3R7dHlwZTpBLHByb3BzOmsscmVmOlAsY2hpbGRyZW46SSxkeW5hbWljQ2hpbGRyZW46TyxzaGFwZUZsYWc6cSxwYXRjaEZsYWc6JCxkaXJzOmosY2FjaGVJbmRleDpHfT1kO2lmKCQ9PT0tMiYmKFQ9ITEpLFAhPW51bGwmJihEdCgpLGpuKFAsbnVsbCx4LGQsITApLE50KCkpLEchPW51bGwmJihtLnJlbmRlckNhY2hlW0ddPXZvaWQgMCkscSYyNTYpe20uY3R4LmRlYWN0aXZhdGUoZCk7cmV0dXJufWNvbnN0IGllPXEmMSYmaixnZT0hVm4oZCk7bGV0IHVlO2lmKGdlJiYodWU9ayYmay5vblZub2RlQmVmb3JlVW5tb3VudCkmJl90KHVlLG0sZCkscSY2KU0oZC5jb21wb25lbnQseCxFKTtlbHNle2lmKHEmMTI4KXtkLnN1c3BlbnNlLnVubW91bnQoeCxFKTtyZXR1cm59aWUmJll0KGQsbnVsbCxtLCJiZWZvcmVVbm1vdW50IikscSY2ND9kLnR5cGUucmVtb3ZlKGQsbSx4LHRlLEUpOk8mJiFPLmhhc09uY2UmJihBIT09SGV8fCQ+MCYmJCY2NCk/SyhPLG0seCwhMSwhMCk6KEE9PT1IZSYmJCYzODR8fCFUJiZxJjE2KSYmSyhJLG0seCksRSYmZGUoZCl9KGdlJiYodWU9ayYmay5vblZub2RlVW5tb3VudGVkKXx8aWUpJiZxZSgoKT0+e3VlJiZfdCh1ZSxtLGQpLGllJiZZdChkLG51bGwsbSwidW5tb3VudGVkIil9LHgpfSxkZT1kPT57Y29uc3R7dHlwZTptLGVsOngsYW5jaG9yOkUsdHJhbnNpdGlvbjpUfT1kO2lmKG09PT1IZSl7UGUoeCxFKTtyZXR1cm59aWYobT09PUlzKXtSKGQpO3JldHVybn1jb25zdCBBPSgpPT57cyh4KSxUJiYhVC5wZXJzaXN0ZWQmJlQuYWZ0ZXJMZWF2ZSYmVC5hZnRlckxlYXZlKCl9O2lmKGQuc2hhcGVGbGFnJjEmJlQmJiFULnBlcnNpc3RlZCl7Y29uc3R7bGVhdmU6ayxkZWxheUxlYXZlOlB9PVQsST0oKT0+ayh4LEEpO1A/UChkLmVsLEEsSSk6SSgpfWVsc2UgQSgpfSxQZT0oZCxtKT0+e2xldCB4O2Zvcig7ZCE9PW07KXg9aChkKSxzKGQpLGQ9eDtzKG0pfSxNPShkLG0seCk9Pntjb25zdHtidW06RSxzY29wZTpULGpvYjpBLHN1YlRyZWU6ayx1bTpQLG06SSxhOk8scGFyZW50OnEsc2xvdHM6e19fOiR9fT1kO2lvKEkpLGlvKE8pLEUmJnhzKEUpLHEmJkooJCkmJiQuZm9yRWFjaChqPT57cS5yZW5kZXJDYWNoZVtqXT12b2lkIDB9KSxULnN0b3AoKSxBJiYoQS5mbGFnc3w9OCxyZShrLGQsbSx4KSksUCYmcWUoUCxtKSxxZSgoKT0+e2QuaXNVbm1vdW50ZWQ9ITB9LG0pLG0mJm0ucGVuZGluZ0JyYW5jaCYmIW0uaXNVbm1vdW50ZWQmJmQuYXN5bmNEZXAmJiFkLmFzeW5jUmVzb2x2ZWQmJmQuc3VzcGVuc2VJZD09PW0ucGVuZGluZ0lkJiYobS5kZXBzLS0sbS5kZXBzPT09MCYmbS5yZXNvbHZlKCkpfSxLPShkLG0seCxFPSExLFQ9ITEsQT0wKT0+e2ZvcihsZXQgaz1BO2s8ZC5sZW5ndGg7aysrKXJlKGRba10sbSx4LEUsVCl9LF89ZD0+e2lmKGQuc2hhcGVGbGFnJjYpcmV0dXJuIF8oZC5jb21wb25lbnQuc3ViVHJlZSk7aWYoZC5zaGFwZUZsYWcmMTI4KXJldHVybiBkLnN1c3BlbnNlLm5leHQoKTtjb25zdCBtPWgoZC5hbmNob3J8fGQuZWwpLHg9bSYmbVtMbF07cmV0dXJuIHg/aCh4KTptfTtsZXQgVT0hMTtjb25zdCB6PShkLG0seCk9PntkPT1udWxsP20uX3Zub2RlJiZyZShtLl92bm9kZSxudWxsLG51bGwsITApOmIobS5fdm5vZGV8fG51bGwsZCxtLG51bGwsbnVsbCxudWxsLHgpLG0uX3Zub2RlPWQsVXx8KFU9ITAsSmkoKSxObCgpLFU9ITEpfSx0ZT17cDpiLHVtOnJlLG06SCxyOmRlLG10OmJlLG1jOlgscGM6b2UscGJjOlYsbjpfLG86ZX07cmV0dXJue3JlbmRlcjp6LGh5ZHJhdGU6dm9pZCAwLGNyZWF0ZUFwcDpIdSh6KX19ZnVuY3Rpb24gUnMoe3R5cGU6ZSxwcm9wczp0fSxuKXtyZXR1cm4gbj09PSJzdmciJiZlPT09ImZvcmVpZ25PYmplY3QifHxuPT09Im1hdGhtbCImJmU9PT0iYW5ub3RhdGlvbi14bWwiJiZ0JiZ0LmVuY29kaW5nJiZ0LmVuY29kaW5nLmluY2x1ZGVzKCJodG1sIik/dm9pZCAwOm59ZnVuY3Rpb24gWHQoe2VmZmVjdDplLGpvYjp0fSxuKXtuPyhlLmZsYWdzfD0zMix0LmZsYWdzfD00KTooZS5mbGFncyY9LTMzLHQuZmxhZ3MmPS01KX1mdW5jdGlvbiBHdShlLHQpe3JldHVybighZXx8ZSYmIWUucGVuZGluZ0JyYW5jaCkmJnQmJiF0LnBlcnNpc3RlZH1mdW5jdGlvbiBPaShlLHQsbj0hMSl7Y29uc3Qgcj1lLmNoaWxkcmVuLHM9dC5jaGlsZHJlbjtpZihKKHIpJiZKKHMpKWZvcihsZXQgaT0wO2k8ci5sZW5ndGg7aSsrKXtjb25zdCBvPXJbaV07bGV0IGw9c1tpXTtsLnNoYXBlRmxhZyYxJiYhbC5keW5hbWljQ2hpbGRyZW4mJigobC5wYXRjaEZsYWc8PTB8fGwucGF0Y2hGbGFnPT09MzIpJiYobD1zW2ldPXp0KHNbaV0pLGwuZWw9by5lbCksIW4mJmwucGF0Y2hGbGFnIT09LTImJk9pKG8sbCkpLGwudHlwZT09PWlzJiYobC5lbD1vLmVsKSxsLnR5cGU9PT1LZSYmIWwuZWwmJihsLmVsPW8uZWwpfX1mdW5jdGlvbiBZdShlKXtjb25zdCB0PWUuc2xpY2UoKSxuPVswXTtsZXQgcixzLGksbyxsO2NvbnN0IGE9ZS5sZW5ndGg7Zm9yKHI9MDtyPGE7cisrKXtjb25zdCB1PWVbcl07aWYodSE9PTApe2lmKHM9bltuLmxlbmd0aC0xXSxlW3NdPHUpe3Rbcl09cyxuLnB1c2gocik7Y29udGludWV9Zm9yKGk9MCxvPW4ubGVuZ3RoLTE7aTxvOylsPWkrbz4+MSxlW25bbF1dPHU/aT1sKzE6bz1sO3U8ZVtuW2ldXSYmKGk+MCYmKHRbcl09bltpLTFdKSxuW2ldPXIpfX1mb3IoaT1uLmxlbmd0aCxvPW5baS0xXTtpLS0gPjA7KW5baV09byxvPXRbb107cmV0dXJuIG59ZnVuY3Rpb24gY2EoZSl7Y29uc3QgdD1lLnN1YlRyZWUuY29tcG9uZW50O2lmKHQpcmV0dXJuIHQuYXN5bmNEZXAmJiF0LmFzeW5jUmVzb2x2ZWQ/dDpjYSh0KX1mdW5jdGlvbiBpbyhlKXtpZihlKWZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0uZmxhZ3N8PTh9Y29uc3QgWHU9U3ltYm9sLmZvcigidi1zY3giKSxadT0oKT0+V3QoWHUpO2Z1bmN0aW9uIFF1KGUsdCl7cmV0dXJuIFJpKGUsbnVsbCx0KX1mdW5jdGlvbiBwZShlLHQsbil7cmV0dXJuIFJpKGUsdCxuKX1mdW5jdGlvbiBSaShlLHQsbj1oZSl7Y29uc3R7aW1tZWRpYXRlOnIsZGVlcDpzLGZsdXNoOmksb25jZTpvfT1uLGw9QmUoe30sbiksYT10JiZyfHwhdCYmaSE9PSJwb3N0IjtsZXQgdTtpZihlcil7aWYoaT09PSJzeW5jIil7Y29uc3Qgdj1adSgpO3U9di5fX3dhdGNoZXJIYW5kbGVzfHwodi5fX3dhdGNoZXJIYW5kbGVzPVtdKX1lbHNlIGlmKCFhKXtjb25zdCB2PSgpPT57fTtyZXR1cm4gdi5zdG9wPUV0LHYucmVzdW1lPUV0LHYucGF1c2U9RXQsdn19Y29uc3QgYz1OZTtsLmNhbGw9KHYscCxiKT0+ZHQodixjLHAsYik7bGV0IGY9ITE7aT09PSJwb3N0Ij9sLnNjaGVkdWxlcj12PT57cWUodixjJiZjLnN1c3BlbnNlKX06aSE9PSJzeW5jIiYmKGY9ITAsbC5zY2hlZHVsZXI9KHYscCk9PntwP3YoKTpDaSh2KX0pLGwuYXVnbWVudEpvYj12PT57dCYmKHYuZmxhZ3N8PTQpLGYmJih2LmZsYWdzfD0yLGMmJih2LmlkPWMudWlkLHYuaT1jKSl9O2NvbnN0IGg9cHUoZSx0LGwpO3JldHVybiBlciYmKHU/dS5wdXNoKGgpOmEmJmgoKSksaH1mdW5jdGlvbiBlZihlLHQsbil7Y29uc3Qgcj10aGlzLnByb3h5LHM9U2UoZSk/ZS5pbmNsdWRlcygiLiIpP3VhKHIsZSk6KCk9PnJbZV06ZS5iaW5kKHIscik7bGV0IGk7WSh0KT9pPXQ6KGk9dC5oYW5kbGVyLG49dCk7Y29uc3Qgbz1jcih0aGlzKSxsPVJpKHMsaS5iaW5kKHIpLG4pO3JldHVybiBvKCksbH1mdW5jdGlvbiB1YShlLHQpe2NvbnN0IG49dC5zcGxpdCgiLiIpO3JldHVybigpPT57bGV0IHI9ZTtmb3IobGV0IHM9MDtzPG4ubGVuZ3RoJiZyO3MrKylyPXJbbltzXV07cmV0dXJuIHJ9fWNvbnN0IHRmPShlLHQpPT50PT09Im1vZGVsVmFsdWUifHx0PT09Im1vZGVsLXZhbHVlIj9lLm1vZGVsTW9kaWZpZXJzOmVbYCR7dH1Nb2RpZmllcnNgXXx8ZVtgJHthdCh0KX1Nb2RpZmllcnNgXXx8ZVtgJHtrdCh0KX1Nb2RpZmllcnNgXTtmdW5jdGlvbiBuZihlLHQsLi4ubil7aWYoZS5pc1VubW91bnRlZClyZXR1cm47Y29uc3Qgcj1lLnZub2RlLnByb3BzfHxoZTtsZXQgcz1uO2NvbnN0IGk9dC5zdGFydHNXaXRoKCJ1cGRhdGU6Iiksbz1pJiZ0ZihyLHQuc2xpY2UoNykpO28mJihvLnRyaW0mJihzPW4ubWFwKGM9PlNlKGMpP2MudHJpbSgpOmMpKSxvLm51bWJlciYmKHM9bi5tYXAoRmMpKSk7bGV0IGwsYT1yW2w9d3ModCldfHxyW2w9d3MoYXQodCkpXTshYSYmaSYmKGE9cltsPXdzKGt0KHQpKV0pLGEmJmR0KGEsZSw2LHMpO2NvbnN0IHU9cltsKyJPbmNlIl07aWYodSl7aWYoIWUuZW1pdHRlZCllLmVtaXR0ZWQ9e307ZWxzZSBpZihlLmVtaXR0ZWRbbF0pcmV0dXJuO2UuZW1pdHRlZFtsXT0hMCxkdCh1LGUsNixzKX19ZnVuY3Rpb24gZmEoZSx0LG49ITEpe2NvbnN0IHI9dC5lbWl0c0NhY2hlLHM9ci5nZXQoZSk7aWYocyE9PXZvaWQgMClyZXR1cm4gcztjb25zdCBpPWUuZW1pdHM7bGV0IG89e30sbD0hMTtpZighWShlKSl7Y29uc3QgYT11PT57Y29uc3QgYz1mYSh1LHQsITApO2MmJihsPSEwLEJlKG8sYykpfTshbiYmdC5taXhpbnMubGVuZ3RoJiZ0Lm1peGlucy5mb3JFYWNoKGEpLGUuZXh0ZW5kcyYmYShlLmV4dGVuZHMpLGUubWl4aW5zJiZlLm1peGlucy5mb3JFYWNoKGEpfXJldHVybiFpJiYhbD8oQ2UoZSkmJnIuc2V0KGUsbnVsbCksbnVsbCk6KEooaSk/aS5mb3JFYWNoKGE9Pm9bYV09bnVsbCk6QmUobyxpKSxDZShlKSYmci5zZXQoZSxvKSxvKX1mdW5jdGlvbiBzcyhlLHQpe3JldHVybiFlfHwhV3IodCk/ITE6KHQ9dC5zbGljZSgyKS5yZXBsYWNlKC9PbmNlJC8sIiIpLGNlKGUsdFswXS50b0xvd2VyQ2FzZSgpK3Quc2xpY2UoMSkpfHxjZShlLGt0KHQpKXx8Y2UoZSx0KSl9ZnVuY3Rpb24gb28oZSl7Y29uc3R7dHlwZTp0LHZub2RlOm4scHJveHk6cix3aXRoUHJveHk6cyxwcm9wc09wdGlvbnM6W2ldLHNsb3RzOm8sYXR0cnM6bCxlbWl0OmEscmVuZGVyOnUscmVuZGVyQ2FjaGU6Yyxwcm9wczpmLGRhdGE6aCxzZXR1cFN0YXRlOnYsY3R4OnAsaW5oZXJpdEF0dHJzOmJ9PWUseT1rcihlKTtsZXQgUyxDO3RyeXtpZihuLnNoYXBlRmxhZyY0KXtjb25zdCBSPXN8fHIsRD1SO1M9U3QodS5jYWxsKEQsUixjLGYsdixoLHApKSxDPWx9ZWxzZXtjb25zdCBSPXQ7Uz1TdChSLmxlbmd0aD4xP1IoZix7YXR0cnM6bCxzbG90czpvLGVtaXQ6YX0pOlIoZixudWxsKSksQz10LnByb3BzP2w6cmYobCl9fWNhdGNoKFIpe3FuLmxlbmd0aD0wLGVzKFIsZSwxKSxTPWcoS2UpfWxldCBGPVM7aWYoQyYmYiE9PSExKXtjb25zdCBSPU9iamVjdC5rZXlzKEMpLHtzaGFwZUZsYWc6RH09RjtSLmxlbmd0aCYmRCY3JiYoaSYmUi5zb21lKGdpKSYmKEM9c2YoQyxpKSksRj1KdChGLEMsITEsITApKX1yZXR1cm4gbi5kaXJzJiYoRj1KdChGLG51bGwsITEsITApLEYuZGlycz1GLmRpcnM/Ri5kaXJzLmNvbmNhdChuLmRpcnMpOm4uZGlycyksbi50cmFuc2l0aW9uJiZYbihGLG4udHJhbnNpdGlvbiksUz1GLGtyKHkpLFN9Y29uc3QgcmY9ZT0+e2xldCB0O2Zvcihjb25zdCBuIGluIGUpKG49PT0iY2xhc3MifHxuPT09InN0eWxlInx8V3IobikpJiYoKHR8fCh0PXt9KSlbbl09ZVtuXSk7cmV0dXJuIHR9LHNmPShlLHQpPT57Y29uc3Qgbj17fTtmb3IoY29uc3QgciBpbiBlKSghZ2kocil8fCEoci5zbGljZSg5KWluIHQpKSYmKG5bcl09ZVtyXSk7cmV0dXJuIG59O2Z1bmN0aW9uIG9mKGUsdCxuKXtjb25zdHtwcm9wczpyLGNoaWxkcmVuOnMsY29tcG9uZW50Oml9PWUse3Byb3BzOm8sY2hpbGRyZW46bCxwYXRjaEZsYWc6YX09dCx1PWkuZW1pdHNPcHRpb25zO2lmKHQuZGlyc3x8dC50cmFuc2l0aW9uKXJldHVybiEwO2lmKG4mJmE+PTApe2lmKGEmMTAyNClyZXR1cm4hMDtpZihhJjE2KXJldHVybiByP2xvKHIsbyx1KTohIW87aWYoYSY4KXtjb25zdCBjPXQuZHluYW1pY1Byb3BzO2ZvcihsZXQgZj0wO2Y8Yy5sZW5ndGg7ZisrKXtjb25zdCBoPWNbZl07aWYob1toXSE9PXJbaF0mJiFzcyh1LGgpKXJldHVybiEwfX19ZWxzZSByZXR1cm4oc3x8bCkmJighbHx8IWwuJHN0YWJsZSk/ITA6cj09PW8/ITE6cj9vP2xvKHIsbyx1KTohMDohIW87cmV0dXJuITF9ZnVuY3Rpb24gbG8oZSx0LG4pe2NvbnN0IHI9T2JqZWN0LmtleXModCk7aWYoci5sZW5ndGghPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuITA7Zm9yKGxldCBzPTA7czxyLmxlbmd0aDtzKyspe2NvbnN0IGk9cltzXTtpZih0W2ldIT09ZVtpXSYmIXNzKG4saSkpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbGYoe3Zub2RlOmUscGFyZW50OnR9LG4pe2Zvcig7dDspe2NvbnN0IHI9dC5zdWJUcmVlO2lmKHIuc3VzcGVuc2UmJnIuc3VzcGVuc2UuYWN0aXZlQnJhbmNoPT09ZSYmKHIuZWw9ZS5lbCkscj09PWUpKGU9dC52bm9kZSkuZWw9bix0PXQucGFyZW50O2Vsc2UgYnJlYWt9fWNvbnN0IGRhPWU9PmUuX19pc1N1c3BlbnNlO2Z1bmN0aW9uIGFmKGUsdCl7dCYmdC5wZW5kaW5nQnJhbmNoP0ooZSk/dC5lZmZlY3RzLnB1c2goLi4uZSk6dC5lZmZlY3RzLnB1c2goZSk6dnUoZSl9Y29uc3QgSGU9U3ltYm9sLmZvcigidi1mZ3QiKSxpcz1TeW1ib2wuZm9yKCJ2LXR4dCIpLEtlPVN5bWJvbC5mb3IoInYtY210IiksSXM9U3ltYm9sLmZvcigidi1zdGMiKSxxbj1bXTtsZXQgbnQ9bnVsbDtmdW5jdGlvbiBMZShlPSExKXtxbi5wdXNoKG50PWU/bnVsbDpbXSl9ZnVuY3Rpb24gY2YoKXtxbi5wb3AoKSxudD1xbltxbi5sZW5ndGgtMV18fG51bGx9bGV0IFpuPTE7ZnVuY3Rpb24gYW8oZSx0PSExKXtabis9ZSxlPDAmJm50JiZ0JiYobnQuaGFzT25jZT0hMCl9ZnVuY3Rpb24gaGEoZSl7cmV0dXJuIGUuZHluYW1pY0NoaWxkcmVuPVpuPjA/bnR8fHluOm51bGwsY2YoKSxabj4wJiZudCYmbnQucHVzaChlKSxlfWZ1bmN0aW9uIEx0KGUsdCxuLHIscyxpKXtyZXR1cm4gaGEoTHIoZSx0LG4scixzLGksITApKX1mdW5jdGlvbiBIdChlLHQsbixyLHMpe3JldHVybiBoYShnKGUsdCxuLHIscywhMCkpfWZ1bmN0aW9uIFFuKGUpe3JldHVybiBlP2UuX192X2lzVk5vZGU9PT0hMDohMX1mdW5jdGlvbiBubihlLHQpe3JldHVybiBlLnR5cGU9PT10LnR5cGUmJmUua2V5PT09dC5rZXl9Y29uc3QgZ2E9KHtrZXk6ZX0pPT5lPz9udWxsLEFyPSh7cmVmOmUscmVmX2tleTp0LHJlZl9mb3I6bn0pPT4odHlwZW9mIGU9PSJudW1iZXIiJiYoZT0iIitlKSxlIT1udWxsP1NlKGUpfHxrZShlKXx8WShlKT97aTpYZSxyOmUsazp0LGY6ISFufTplOm51bGwpO2Z1bmN0aW9uIExyKGUsdD1udWxsLG49bnVsbCxyPTAscz1udWxsLGk9ZT09PUhlPzA6MSxvPSExLGw9ITEpe2NvbnN0IGE9e19fdl9pc1ZOb2RlOiEwLF9fdl9za2lwOiEwLHR5cGU6ZSxwcm9wczp0LGtleTp0JiZnYSh0KSxyZWY6dCYmQXIodCksc2NvcGVJZDokbCxzbG90U2NvcGVJZHM6bnVsbCxjaGlsZHJlbjpuLGNvbXBvbmVudDpudWxsLHN1c3BlbnNlOm51bGwsc3NDb250ZW50Om51bGwsc3NGYWxsYmFjazpudWxsLGRpcnM6bnVsbCx0cmFuc2l0aW9uOm51bGwsZWw6bnVsbCxhbmNob3I6bnVsbCx0YXJnZXQ6bnVsbCx0YXJnZXRTdGFydDpudWxsLHRhcmdldEFuY2hvcjpudWxsLHN0YXRpY0NvdW50OjAsc2hhcGVGbGFnOmkscGF0Y2hGbGFnOnIsZHluYW1pY1Byb3BzOnMsZHluYW1pY0NoaWxkcmVuOm51bGwsYXBwQ29udGV4dDpudWxsLGN0eDpYZX07cmV0dXJuIGw/KElpKGEsbiksaSYxMjgmJmUubm9ybWFsaXplKGEpKTpuJiYoYS5zaGFwZUZsYWd8PVNlKG4pPzg6MTYpLFpuPjAmJiFvJiZudCYmKGEucGF0Y2hGbGFnPjB8fGkmNikmJmEucGF0Y2hGbGFnIT09MzImJm50LnB1c2goYSksYX1jb25zdCBnPXVmO2Z1bmN0aW9uIHVmKGUsdD1udWxsLG49bnVsbCxyPTAscz1udWxsLGk9ITEpe2lmKCghZXx8ZT09PVB1KSYmKGU9S2UpLFFuKGUpKXtjb25zdCBsPUp0KGUsdCwhMCk7cmV0dXJuIG4mJklpKGwsbiksWm4+MCYmIWkmJm50JiYobC5zaGFwZUZsYWcmNj9udFtudC5pbmRleE9mKGUpXT1sOm50LnB1c2gobCkpLGwucGF0Y2hGbGFnPS0yLGx9aWYoX2YoZSkmJihlPWUuX192Y2NPcHRzKSx0KXt0PWZmKHQpO2xldHtjbGFzczpsLHN0eWxlOmF9PXQ7bCYmIVNlKGwpJiYodC5jbGFzcz1acihsKSksQ2UoYSkmJihTaShhKSYmIUooYSkmJihhPUJlKHt9LGEpKSx0LnN0eWxlPVhyKGEpKX1jb25zdCBvPVNlKGUpPzE6ZGEoZSk/MTI4Ok1sKGUpPzY0OkNlKGUpPzQ6WShlKT8yOjA7cmV0dXJuIExyKGUsdCxuLHIscyxvLGksITApfWZ1bmN0aW9uIGZmKGUpe3JldHVybiBlP1NpKGUpfHxyYShlKT9CZSh7fSxlKTplOm51bGx9ZnVuY3Rpb24gSnQoZSx0LG49ITEscj0hMSl7Y29uc3R7cHJvcHM6cyxyZWY6aSxwYXRjaEZsYWc6byxjaGlsZHJlbjpsLHRyYW5zaXRpb246YX09ZSx1PXQ/c3Qoc3x8e30sdCk6cyxjPXtfX3ZfaXNWTm9kZTohMCxfX3Zfc2tpcDohMCx0eXBlOmUudHlwZSxwcm9wczp1LGtleTp1JiZnYSh1KSxyZWY6dCYmdC5yZWY/biYmaT9KKGkpP2kuY29uY2F0KEFyKHQpKTpbaSxBcih0KV06QXIodCk6aSxzY29wZUlkOmUuc2NvcGVJZCxzbG90U2NvcGVJZHM6ZS5zbG90U2NvcGVJZHMsY2hpbGRyZW46bCx0YXJnZXQ6ZS50YXJnZXQsdGFyZ2V0U3RhcnQ6ZS50YXJnZXRTdGFydCx0YXJnZXRBbmNob3I6ZS50YXJnZXRBbmNob3Isc3RhdGljQ291bnQ6ZS5zdGF0aWNDb3VudCxzaGFwZUZsYWc6ZS5zaGFwZUZsYWcscGF0Y2hGbGFnOnQmJmUudHlwZSE9PUhlP289PT0tMT8xNjpvfDE2Om8sZHluYW1pY1Byb3BzOmUuZHluYW1pY1Byb3BzLGR5bmFtaWNDaGlsZHJlbjplLmR5bmFtaWNDaGlsZHJlbixhcHBDb250ZXh0OmUuYXBwQ29udGV4dCxkaXJzOmUuZGlycyx0cmFuc2l0aW9uOmEsY29tcG9uZW50OmUuY29tcG9uZW50LHN1c3BlbnNlOmUuc3VzcGVuc2Usc3NDb250ZW50OmUuc3NDb250ZW50JiZKdChlLnNzQ29udGVudCksc3NGYWxsYmFjazplLnNzRmFsbGJhY2smJkp0KGUuc3NGYWxsYmFjayksZWw6ZS5lbCxhbmNob3I6ZS5hbmNob3IsY3R4OmUuY3R4LGNlOmUuY2V9O3JldHVybiBhJiZyJiZYbihjLGEuY2xvbmUoYykpLGN9ZnVuY3Rpb24gVnQoZT0iICIsdD0wKXtyZXR1cm4gZyhpcyxudWxsLGUsdCl9ZnVuY3Rpb24gZG4oZT0iIix0PSExKXtyZXR1cm4gdD8oTGUoKSxIdChLZSxudWxsLGUpKTpnKEtlLG51bGwsZSl9ZnVuY3Rpb24gU3QoZSl7cmV0dXJuIGU9PW51bGx8fHR5cGVvZiBlPT0iYm9vbGVhbiI/ZyhLZSk6SihlKT9nKEhlLG51bGwsZS5zbGljZSgpKTpRbihlKT96dChlKTpnKGlzLG51bGwsU3RyaW5nKGUpKX1mdW5jdGlvbiB6dChlKXtyZXR1cm4gZS5lbD09PW51bGwmJmUucGF0Y2hGbGFnIT09LTF8fGUubWVtbz9lOkp0KGUpfWZ1bmN0aW9uIElpKGUsdCl7bGV0IG49MDtjb25zdHtzaGFwZUZsYWc6cn09ZTtpZih0PT1udWxsKXQ9bnVsbDtlbHNlIGlmKEoodCkpbj0xNjtlbHNlIGlmKHR5cGVvZiB0PT0ib2JqZWN0IilpZihyJjY1KXtjb25zdCBzPXQuZGVmYXVsdDtzJiYocy5fYyYmKHMuX2Q9ITEpLElpKGUscygpKSxzLl9jJiYocy5fZD0hMCkpO3JldHVybn1lbHNle249MzI7Y29uc3Qgcz10Ll87IXMmJiFyYSh0KT90Ll9jdHg9WGU6cz09PTMmJlhlJiYoWGUuc2xvdHMuXz09PTE/dC5fPTE6KHQuXz0yLGUucGF0Y2hGbGFnfD0xMDI0KSl9ZWxzZSBZKHQpPyh0PXtkZWZhdWx0OnQsX2N0eDpYZX0sbj0zMik6KHQ9U3RyaW5nKHQpLHImNjQ/KG49MTYsdD1bVnQodCldKTpuPTgpO2UuY2hpbGRyZW49dCxlLnNoYXBlRmxhZ3w9bn1mdW5jdGlvbiBzdCguLi5lKXtjb25zdCB0PXt9O2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtjb25zdCByPWVbbl07Zm9yKGNvbnN0IHMgaW4gcilpZihzPT09ImNsYXNzIil0LmNsYXNzIT09ci5jbGFzcyYmKHQuY2xhc3M9WnIoW3QuY2xhc3Msci5jbGFzc10pKTtlbHNlIGlmKHM9PT0ic3R5bGUiKXQuc3R5bGU9WHIoW3Quc3R5bGUsci5zdHlsZV0pO2Vsc2UgaWYoV3Iocykpe2NvbnN0IGk9dFtzXSxvPXJbc107byYmaSE9PW8mJiEoSihpKSYmaS5pbmNsdWRlcyhvKSkmJih0W3NdPWk/W10uY29uY2F0KGksbyk6byl9ZWxzZSBzIT09IiImJih0W3NdPXJbc10pfXJldHVybiB0fWZ1bmN0aW9uIF90KGUsdCxuLHI9bnVsbCl7ZHQoZSx0LDcsW24scl0pfWNvbnN0IGRmPWVhKCk7bGV0IGhmPTA7ZnVuY3Rpb24gZ2YoZSx0LG4pe2NvbnN0IHI9ZS50eXBlLHM9KHQ/dC5hcHBDb250ZXh0OmUuYXBwQ29udGV4dCl8fGRmLGk9e3VpZDpoZisrLHZub2RlOmUsdHlwZTpyLHBhcmVudDp0LGFwcENvbnRleHQ6cyxyb290Om51bGwsbmV4dDpudWxsLHN1YlRyZWU6bnVsbCxlZmZlY3Q6bnVsbCx1cGRhdGU6bnVsbCxqb2I6bnVsbCxzY29wZTpuZXcgamMoITApLHJlbmRlcjpudWxsLHByb3h5Om51bGwsZXhwb3NlZDpudWxsLGV4cG9zZVByb3h5Om51bGwsd2l0aFByb3h5Om51bGwscHJvdmlkZXM6dD90LnByb3ZpZGVzOk9iamVjdC5jcmVhdGUocy5wcm92aWRlcyksaWRzOnQ/dC5pZHM6WyIiLDAsMF0sYWNjZXNzQ2FjaGU6bnVsbCxyZW5kZXJDYWNoZTpbXSxjb21wb25lbnRzOm51bGwsZGlyZWN0aXZlczpudWxsLHByb3BzT3B0aW9uczppYShyLHMpLGVtaXRzT3B0aW9uczpmYShyLHMpLGVtaXQ6bnVsbCxlbWl0dGVkOm51bGwscHJvcHNEZWZhdWx0czpoZSxpbmhlcml0QXR0cnM6ci5pbmhlcml0QXR0cnMsY3R4OmhlLGRhdGE6aGUscHJvcHM6aGUsYXR0cnM6aGUsc2xvdHM6aGUscmVmczpoZSxzZXR1cFN0YXRlOmhlLHNldHVwQ29udGV4dDpudWxsLHN1c3BlbnNlOm4sc3VzcGVuc2VJZDpuP24ucGVuZGluZ0lkOjAsYXN5bmNEZXA6bnVsbCxhc3luY1Jlc29sdmVkOiExLGlzTW91bnRlZDohMSxpc1VubW91bnRlZDohMSxpc0RlYWN0aXZhdGVkOiExLGJjOm51bGwsYzpudWxsLGJtOm51bGwsbTpudWxsLGJ1Om51bGwsdTpudWxsLHVtOm51bGwsYnVtOm51bGwsZGE6bnVsbCxhOm51bGwscnRnOm51bGwscnRjOm51bGwsZWM6bnVsbCxzcDpudWxsfTtyZXR1cm4gaS5jdHg9e186aX0saS5yb290PXQ/dC5yb290OmksaS5lbWl0PW5mLmJpbmQobnVsbCxpKSxlLmNlJiZlLmNlKGkpLGl9bGV0IE5lPW51bGw7Y29uc3QgR3Q9KCk9Pk5lfHxYZTtsZXQgTXIsUXM7e2NvbnN0IGU9WXIoKSx0PShuLHIpPT57bGV0IHM7cmV0dXJuKHM9ZVtuXSl8fChzPWVbbl09W10pLHMucHVzaChyKSxpPT57cy5sZW5ndGg+MT9zLmZvckVhY2gobz0+byhpKSk6c1swXShpKX19O01yPXQoIl9fVlVFX0lOU1RBTkNFX1NFVFRFUlNfXyIsbj0+TmU9biksUXM9dCgiX19WVUVfU1NSX1NFVFRFUlNfXyIsbj0+ZXI9bil9Y29uc3QgY3I9ZT0+e2NvbnN0IHQ9TmU7cmV0dXJuIE1yKGUpLGUuc2NvcGUub24oKSwoKT0+e2Uuc2NvcGUub2ZmKCksTXIodCl9fSxjbz0oKT0+e05lJiZOZS5zY29wZS5vZmYoKSxNcihudWxsKX07ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIGUudm5vZGUuc2hhcGVGbGFnJjR9bGV0IGVyPSExO2Z1bmN0aW9uIG1mKGUsdD0hMSxuPSExKXt0JiZRcyh0KTtjb25zdHtwcm9wczpyLGNoaWxkcmVuOnN9PWUudm5vZGUsaT1tYShlKTtVdShlLHIsaSx0KSxxdShlLHMsbnx8dCk7Y29uc3Qgbz1pP3BmKGUsdCk6dm9pZCAwO3JldHVybiB0JiZRcyghMSksb31mdW5jdGlvbiBwZihlLHQpe2NvbnN0IG49ZS50eXBlO2UuYWNjZXNzQ2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKSxlLnByb3h5PW5ldyBQcm94eShlLmN0eCxGdSk7Y29uc3R7c2V0dXA6cn09bjtpZihyKXtEdCgpO2NvbnN0IHM9ZS5zZXR1cENvbnRleHQ9ci5sZW5ndGg+MT9iZihlKTpudWxsLGk9Y3IoZSksbz1vcihyLGUsMCxbZS5wcm9wcyxzXSksbD1tbChvKTtpZihOdCgpLGkoKSwobHx8ZS5zcCkmJiFWbihlKSYmSmwoZSksbCl7aWYoby50aGVuKGNvLGNvKSx0KXJldHVybiBvLnRoZW4oYT0+e3VvKGUsYSl9KS5jYXRjaChhPT57ZXMoYSxlLDApfSk7ZS5hc3luY0RlcD1vfWVsc2UgdW8oZSxvKX1lbHNlIHBhKGUpfWZ1bmN0aW9uIHVvKGUsdCxuKXtZKHQpP2UudHlwZS5fX3NzcklubGluZVJlbmRlcj9lLnNzclJlbmRlcj10OmUucmVuZGVyPXQ6Q2UodCkmJihlLnNldHVwU3RhdGU9QmwodCkpLHBhKGUpfWZ1bmN0aW9uIHBhKGUsdCxuKXtjb25zdCByPWUudHlwZTtlLnJlbmRlcnx8KGUucmVuZGVyPXIucmVuZGVyfHxFdCk7e2NvbnN0IHM9Y3IoZSk7RHQoKTt0cnl7RHUoZSl9ZmluYWxseXtOdCgpLHMoKX19fWNvbnN0IHlmPXtnZXQoZSx0KXtyZXR1cm4gTWUoZSwiZ2V0IiwiIiksZVt0XX19O2Z1bmN0aW9uIGJmKGUpe2NvbnN0IHQ9bj0+e2UuZXhwb3NlZD1ufHx7fX07cmV0dXJue2F0dHJzOm5ldyBQcm94eShlLmF0dHJzLHlmKSxzbG90czplLnNsb3RzLGVtaXQ6ZS5lbWl0LGV4cG9zZTp0fX1mdW5jdGlvbiBvcyhlKXtyZXR1cm4gZS5leHBvc2VkP2UuZXhwb3NlUHJveHl8fChlLmV4cG9zZVByb3h5PW5ldyBQcm94eShCbChjdShlLmV4cG9zZWQpKSx7Z2V0KHQsbil7aWYobiBpbiB0KXJldHVybiB0W25dO2lmKG4gaW4gem4pcmV0dXJuIHpuW25dKGUpfSxoYXModCxuKXtyZXR1cm4gbiBpbiB0fHxuIGluIHpufX0pKTplLnByb3h5fWZ1bmN0aW9uIHZmKGUsdD0hMCl7cmV0dXJuIFkoZSk/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lOmUubmFtZXx8dCYmZS5fX25hbWV9ZnVuY3Rpb24gX2YoZSl7cmV0dXJuIFkoZSkmJiJfX3ZjY09wdHMiaW4gZX1jb25zdCBuZT0oZSx0KT0+Z3UoZSx0LGVyKTtmdW5jdGlvbiB3ZihlLHQsbil7Y29uc3Qgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByPT09Mj9DZSh0KSYmIUoodCk/UW4odCk/ZyhlLG51bGwsW3RdKTpnKGUsdCk6ZyhlLG51bGwsdCk6KHI+Mz9uPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTpyPT09MyYmUW4obikmJihuPVtuXSksZyhlLHQsbikpfWNvbnN0IHhmPSIzLjUuMTciOy8qKgoqIEB2dWUvcnVudGltZS1kb20gdjMuNS4xNwoqIChjKSAyMDE4LXByZXNlbnQgWXV4aSAoRXZhbikgWW91IGFuZCBWdWUgY29udHJpYnV0b3JzCiogQGxpY2Vuc2UgTUlUCioqL2xldCBlaTtjb25zdCBmbz10eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LnRydXN0ZWRUeXBlcztpZihmbyl0cnl7ZWk9Zm8uY3JlYXRlUG9saWN5KCJ2dWUiLHtjcmVhdGVIVE1MOmU9PmV9KX1jYXRjaHt9Y29uc3QgeWE9ZWk/ZT0+ZWkuY3JlYXRlSFRNTChlKTplPT5lLFNmPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsQ2Y9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiLEl0PXR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6bnVsbCxobz1JdCYmSXQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKSxFZj17aW5zZXJ0OihlLHQsbik9Pnt0Lmluc2VydEJlZm9yZShlLG58fG51bGwpfSxyZW1vdmU6ZT0+e2NvbnN0IHQ9ZS5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQoZSl9LGNyZWF0ZUVsZW1lbnQ6KGUsdCxuLHIpPT57Y29uc3Qgcz10PT09InN2ZyI/SXQuY3JlYXRlRWxlbWVudE5TKFNmLGUpOnQ9PT0ibWF0aG1sIj9JdC5jcmVhdGVFbGVtZW50TlMoQ2YsZSk6bj9JdC5jcmVhdGVFbGVtZW50KGUse2lzOm59KTpJdC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiBlPT09InNlbGVjdCImJnImJnIubXVsdGlwbGUhPW51bGwmJnMuc2V0QXR0cmlidXRlKCJtdWx0aXBsZSIsci5tdWx0aXBsZSksc30sY3JlYXRlVGV4dDplPT5JdC5jcmVhdGVUZXh0Tm9kZShlKSxjcmVhdGVDb21tZW50OmU9Pkl0LmNyZWF0ZUNvbW1lbnQoZSksc2V0VGV4dDooZSx0KT0+e2Uubm9kZVZhbHVlPXR9LHNldEVsZW1lbnRUZXh0OihlLHQpPT57ZS50ZXh0Q29udGVudD10fSxwYXJlbnROb2RlOmU9PmUucGFyZW50Tm9kZSxuZXh0U2libGluZzplPT5lLm5leHRTaWJsaW5nLHF1ZXJ5U2VsZWN0b3I6ZT0+SXQucXVlcnlTZWxlY3RvcihlKSxzZXRTY29wZUlkKGUsdCl7ZS5zZXRBdHRyaWJ1dGUodCwiIil9LGluc2VydFN0YXRpY0NvbnRlbnQoZSx0LG4scixzLGkpe2NvbnN0IG89bj9uLnByZXZpb3VzU2libGluZzp0Lmxhc3RDaGlsZDtpZihzJiYocz09PWl8fHMubmV4dFNpYmxpbmcpKWZvcig7dC5pbnNlcnRCZWZvcmUocy5jbG9uZU5vZGUoITApLG4pLCEocz09PWl8fCEocz1zLm5leHRTaWJsaW5nKSk7KTtlbHNle2hvLmlubmVySFRNTD15YShyPT09InN2ZyI/YDxzdmc+JHtlfTwvc3ZnPmA6cj09PSJtYXRobWwiP2A8bWF0aD4ke2V9PC9tYXRoPmA6ZSk7Y29uc3QgbD1oby5jb250ZW50O2lmKHI9PT0ic3ZnInx8cj09PSJtYXRobWwiKXtjb25zdCBhPWwuZmlyc3RDaGlsZDtmb3IoO2EuZmlyc3RDaGlsZDspbC5hcHBlbmRDaGlsZChhLmZpcnN0Q2hpbGQpO2wucmVtb3ZlQ2hpbGQoYSl9dC5pbnNlcnRCZWZvcmUobCxuKX1yZXR1cm5bbz9vLm5leHRTaWJsaW5nOnQuZmlyc3RDaGlsZCxuP24ucHJldmlvdXNTaWJsaW5nOnQubGFzdENoaWxkXX19LE10PSJ0cmFuc2l0aW9uIixQbj0iYW5pbWF0aW9uIix0cj1TeW1ib2woIl92dGMiKSxiYT17bmFtZTpTdHJpbmcsdHlwZTpTdHJpbmcsY3NzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0sZHVyYXRpb246W1N0cmluZyxOdW1iZXIsT2JqZWN0XSxlbnRlckZyb21DbGFzczpTdHJpbmcsZW50ZXJBY3RpdmVDbGFzczpTdHJpbmcsZW50ZXJUb0NsYXNzOlN0cmluZyxhcHBlYXJGcm9tQ2xhc3M6U3RyaW5nLGFwcGVhckFjdGl2ZUNsYXNzOlN0cmluZyxhcHBlYXJUb0NsYXNzOlN0cmluZyxsZWF2ZUZyb21DbGFzczpTdHJpbmcsbGVhdmVBY3RpdmVDbGFzczpTdHJpbmcsbGVhdmVUb0NsYXNzOlN0cmluZ30sVGY9QmUoe30sVmwsYmEpLEFmPWU9PihlLmRpc3BsYXlOYW1lPSJUcmFuc2l0aW9uIixlLnByb3BzPVRmLGUpLHZhPUFmKChlLHtzbG90czp0fSk9PndmKFN1LE9mKGUpLHQpKSxadD0oZSx0PVtdKT0+e0ooZSk/ZS5mb3JFYWNoKG49Pm4oLi4udCkpOmUmJmUoLi4udCl9LGdvPWU9PmU/SihlKT9lLnNvbWUodD0+dC5sZW5ndGg+MSk6ZS5sZW5ndGg+MTohMTtmdW5jdGlvbiBPZihlKXtjb25zdCB0PXt9O2Zvcihjb25zdCBCIGluIGUpQiBpbiBiYXx8KHRbQl09ZVtCXSk7aWYoZS5jc3M9PT0hMSlyZXR1cm4gdDtjb25zdHtuYW1lOm49InYiLHR5cGU6cixkdXJhdGlvbjpzLGVudGVyRnJvbUNsYXNzOmk9YCR7bn0tZW50ZXItZnJvbWAsZW50ZXJBY3RpdmVDbGFzczpvPWAke259LWVudGVyLWFjdGl2ZWAsZW50ZXJUb0NsYXNzOmw9YCR7bn0tZW50ZXItdG9gLGFwcGVhckZyb21DbGFzczphPWksYXBwZWFyQWN0aXZlQ2xhc3M6dT1vLGFwcGVhclRvQ2xhc3M6Yz1sLGxlYXZlRnJvbUNsYXNzOmY9YCR7bn0tbGVhdmUtZnJvbWAsbGVhdmVBY3RpdmVDbGFzczpoPWAke259LWxlYXZlLWFjdGl2ZWAsbGVhdmVUb0NsYXNzOnY9YCR7bn0tbGVhdmUtdG9gfT1lLHA9UmYocyksYj1wJiZwWzBdLHk9cCYmcFsxXSx7b25CZWZvcmVFbnRlcjpTLG9uRW50ZXI6QyxvbkVudGVyQ2FuY2VsbGVkOkYsb25MZWF2ZTpSLG9uTGVhdmVDYW5jZWxsZWQ6RCxvbkJlZm9yZUFwcGVhcjpOPVMsb25BcHBlYXI6Vz1DLG9uQXBwZWFyQ2FuY2VsbGVkOlg9Rn09dCxMPShCLHNlLGJlLCRlKT0+e0IuX2VudGVyQ2FuY2VsbGVkPSRlLFF0KEIsc2U/YzpsKSxRdChCLHNlP3U6byksYmUmJmJlKCl9LFY9KEIsc2UpPT57Qi5faXNMZWF2aW5nPSExLFF0KEIsZiksUXQoQix2KSxRdChCLGgpLHNlJiZzZSgpfSxlZT1CPT4oc2UsYmUpPT57Y29uc3QgJGU9Qj9XOkMsdmU9KCk9Pkwoc2UsQixiZSk7WnQoJGUsW3NlLHZlXSksbW8oKCk9PntRdChzZSxCP2E6aSksT3Qoc2UsQj9jOmwpLGdvKCRlKXx8cG8oc2UscixiLHZlKX0pfTtyZXR1cm4gQmUodCx7b25CZWZvcmVFbnRlcihCKXtadChTLFtCXSksT3QoQixpKSxPdChCLG8pfSxvbkJlZm9yZUFwcGVhcihCKXtadChOLFtCXSksT3QoQixhKSxPdChCLHUpfSxvbkVudGVyOmVlKCExKSxvbkFwcGVhcjplZSghMCksb25MZWF2ZShCLHNlKXtCLl9pc0xlYXZpbmc9ITA7Y29uc3QgYmU9KCk9PlYoQixzZSk7T3QoQixmKSxCLl9lbnRlckNhbmNlbGxlZD8oT3QoQixoKSx2bygpKToodm8oKSxPdChCLGgpKSxtbygoKT0+e0IuX2lzTGVhdmluZyYmKFF0KEIsZiksT3QoQix2KSxnbyhSKXx8cG8oQixyLHksYmUpKX0pLFp0KFIsW0IsYmVdKX0sb25FbnRlckNhbmNlbGxlZChCKXtMKEIsITEsdm9pZCAwLCEwKSxadChGLFtCXSl9LG9uQXBwZWFyQ2FuY2VsbGVkKEIpe0woQiwhMCx2b2lkIDAsITApLFp0KFgsW0JdKX0sb25MZWF2ZUNhbmNlbGxlZChCKXtWKEIpLFp0KEQsW0JdKX19KX1mdW5jdGlvbiBSZihlKXtpZihlPT1udWxsKXJldHVybiBudWxsO2lmKENlKGUpKXJldHVybltQcyhlLmVudGVyKSxQcyhlLmxlYXZlKV07e2NvbnN0IHQ9UHMoZSk7cmV0dXJuW3QsdF19fWZ1bmN0aW9uIFBzKGUpe3JldHVybiBEYyhlKX1mdW5jdGlvbiBPdChlLHQpe3Quc3BsaXQoL1xzKy8pLmZvckVhY2gobj0+biYmZS5jbGFzc0xpc3QuYWRkKG4pKSwoZVt0cl18fChlW3RyXT1uZXcgU2V0KSkuYWRkKHQpfWZ1bmN0aW9uIFF0KGUsdCl7dC5zcGxpdCgvXHMrLykuZm9yRWFjaChyPT5yJiZlLmNsYXNzTGlzdC5yZW1vdmUocikpO2NvbnN0IG49ZVt0cl07biYmKG4uZGVsZXRlKHQpLG4uc2l6ZXx8KGVbdHJdPXZvaWQgMCkpfWZ1bmN0aW9uIG1vKGUpe3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZShlKX0pfWxldCBJZj0wO2Z1bmN0aW9uIHBvKGUsdCxuLHIpe2NvbnN0IHM9ZS5fZW5kSWQ9KytJZixpPSgpPT57cz09PWUuX2VuZElkJiZyKCl9O2lmKG4hPW51bGwpcmV0dXJuIHNldFRpbWVvdXQoaSxuKTtjb25zdHt0eXBlOm8sdGltZW91dDpsLHByb3BDb3VudDphfT1QZihlLHQpO2lmKCFvKXJldHVybiByKCk7Y29uc3QgdT1vKyJlbmQiO2xldCBjPTA7Y29uc3QgZj0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcih1LGgpLGkoKX0saD12PT57di50YXJnZXQ9PT1lJiYrK2M+PWEmJmYoKX07c2V0VGltZW91dCgoKT0+e2M8YSYmZigpfSxsKzEpLGUuYWRkRXZlbnRMaXN0ZW5lcih1LGgpfWZ1bmN0aW9uIFBmKGUsdCl7Y29uc3Qgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxyPXA9PihuW3BdfHwiIikuc3BsaXQoIiwgIikscz1yKGAke010fURlbGF5YCksaT1yKGAke010fUR1cmF0aW9uYCksbz15byhzLGkpLGw9cihgJHtQbn1EZWxheWApLGE9cihgJHtQbn1EdXJhdGlvbmApLHU9eW8obCxhKTtsZXQgYz1udWxsLGY9MCxoPTA7dD09PU10P28+MCYmKGM9TXQsZj1vLGg9aS5sZW5ndGgpOnQ9PT1Qbj91PjAmJihjPVBuLGY9dSxoPWEubGVuZ3RoKTooZj1NYXRoLm1heChvLHUpLGM9Zj4wP28+dT9NdDpQbjpudWxsLGg9Yz9jPT09TXQ/aS5sZW5ndGg6YS5sZW5ndGg6MCk7Y29uc3Qgdj1jPT09TXQmJi9cYih0cmFuc2Zvcm18YWxsKSgsfCQpLy50ZXN0KHIoYCR7TXR9UHJvcGVydHlgKS50b1N0cmluZygpKTtyZXR1cm57dHlwZTpjLHRpbWVvdXQ6Zixwcm9wQ291bnQ6aCxoYXNUcmFuc2Zvcm06dn19ZnVuY3Rpb24geW8oZSx0KXtmb3IoO2UubGVuZ3RoPHQubGVuZ3RoOyllPWUuY29uY2F0KGUpO3JldHVybiBNYXRoLm1heCguLi50Lm1hcCgobixyKT0+Ym8obikrYm8oZVtyXSkpKX1mdW5jdGlvbiBibyhlKXtyZXR1cm4gZT09PSJhdXRvIj8wOk51bWJlcihlLnNsaWNlKDAsLTEpLnJlcGxhY2UoIiwiLCIuIikpKjFlM31mdW5jdGlvbiB2bygpe3JldHVybiBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodH1mdW5jdGlvbiBCZihlLHQsbil7Y29uc3Qgcj1lW3RyXTtyJiYodD0odD9bdCwuLi5yXTpbLi4ucl0pLmpvaW4oIiAiKSksdD09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTpuP2Uuc2V0QXR0cmlidXRlKCJjbGFzcyIsdCk6ZS5jbGFzc05hbWU9dH1jb25zdCBIcj1TeW1ib2woIl92b2QiKSxfYT1TeW1ib2woIl92c2giKSxQaT17YmVmb3JlTW91bnQoZSx7dmFsdWU6dH0se3RyYW5zaXRpb246bn0pe2VbSHJdPWUuc3R5bGUuZGlzcGxheT09PSJub25lIj8iIjplLnN0eWxlLmRpc3BsYXksbiYmdD9uLmJlZm9yZUVudGVyKGUpOkJuKGUsdCl9LG1vdW50ZWQoZSx7dmFsdWU6dH0se3RyYW5zaXRpb246bn0pe24mJnQmJm4uZW50ZXIoZSl9LHVwZGF0ZWQoZSx7dmFsdWU6dCxvbGRWYWx1ZTpufSx7dHJhbnNpdGlvbjpyfSl7IXQhPSFuJiYocj90PyhyLmJlZm9yZUVudGVyKGUpLEJuKGUsITApLHIuZW50ZXIoZSkpOnIubGVhdmUoZSwoKT0+e0JuKGUsITEpfSk6Qm4oZSx0KSl9LGJlZm9yZVVubW91bnQoZSx7dmFsdWU6dH0pe0JuKGUsdCl9fTtmdW5jdGlvbiBCbihlLHQpe2Uuc3R5bGUuZGlzcGxheT10P2VbSHJdOiJub25lIixlW19hXT0hdH1jb25zdCBGZj1TeW1ib2woIiIpLERmPS8oXnw7KVxzKmRpc3BsYXlccyo6LztmdW5jdGlvbiBOZihlLHQsbil7Y29uc3Qgcj1lLnN0eWxlLHM9U2Uobik7bGV0IGk9ITE7aWYobiYmIXMpe2lmKHQpaWYoU2UodCkpZm9yKGNvbnN0IG8gb2YgdC5zcGxpdCgiOyIpKXtjb25zdCBsPW8uc2xpY2UoMCxvLmluZGV4T2YoIjoiKSkudHJpbSgpO25bbF09PW51bGwmJk9yKHIsbCwiIil9ZWxzZSBmb3IoY29uc3QgbyBpbiB0KW5bb109PW51bGwmJk9yKHIsbywiIik7Zm9yKGNvbnN0IG8gaW4gbilvPT09ImRpc3BsYXkiJiYoaT0hMCksT3IocixvLG5bb10pfWVsc2UgaWYocyl7aWYodCE9PW4pe2NvbnN0IG89cltGZl07byYmKG4rPSI7IitvKSxyLmNzc1RleHQ9bixpPURmLnRlc3Qobil9fWVsc2UgdCYmZS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIik7SHIgaW4gZSYmKGVbSHJdPWk/ci5kaXNwbGF5OiIiLGVbX2FdJiYoci5kaXNwbGF5PSJub25lIikpfWNvbnN0IF9vPS9ccyohaW1wb3J0YW50JC87ZnVuY3Rpb24gT3IoZSx0LG4pe2lmKEoobikpbi5mb3JFYWNoKHI9Pk9yKGUsdCxyKSk7ZWxzZSBpZihuPT1udWxsJiYobj0iIiksdC5zdGFydHNXaXRoKCItLSIpKWUuc2V0UHJvcGVydHkodCxuKTtlbHNle2NvbnN0IHI9a2YoZSx0KTtfby50ZXN0KG4pP2Uuc2V0UHJvcGVydHkoa3Qociksbi5yZXBsYWNlKF9vLCIiKSwiaW1wb3J0YW50Iik6ZVtyXT1ufX1jb25zdCB3bz1bIldlYmtpdCIsIk1veiIsIm1zIl0sQnM9e307ZnVuY3Rpb24ga2YoZSx0KXtjb25zdCBuPUJzW3RdO2lmKG4pcmV0dXJuIG47bGV0IHI9YXQodCk7aWYociE9PSJmaWx0ZXIiJiZyIGluIGUpcmV0dXJuIEJzW3RdPXI7cj1HcihyKTtmb3IobGV0IHM9MDtzPHdvLmxlbmd0aDtzKyspe2NvbnN0IGk9d29bc10rcjtpZihpIGluIGUpcmV0dXJuIEJzW3RdPWl9cmV0dXJuIHR9Y29uc3QgeG89Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiO2Z1bmN0aW9uIFNvKGUsdCxuLHIscyxpPVVjKHQpKXtyJiZ0LnN0YXJ0c1dpdGgoInhsaW5rOiIpP249PW51bGw/ZS5yZW1vdmVBdHRyaWJ1dGVOUyh4byx0LnNsaWNlKDYsdC5sZW5ndGgpKTplLnNldEF0dHJpYnV0ZU5TKHhvLHQsbik6bj09bnVsbHx8aSYmIXBsKG4pP2UucmVtb3ZlQXR0cmlidXRlKHQpOmUuc2V0QXR0cmlidXRlKHQsaT8iIjpDbihuKT9TdHJpbmcobik6bil9ZnVuY3Rpb24gQ28oZSx0LG4scixzKXtpZih0PT09ImlubmVySFRNTCJ8fHQ9PT0idGV4dENvbnRlbnQiKXtuIT1udWxsJiYoZVt0XT10PT09ImlubmVySFRNTCI/eWEobik6bik7cmV0dXJufWNvbnN0IGk9ZS50YWdOYW1lO2lmKHQ9PT0idmFsdWUiJiZpIT09IlBST0dSRVNTIiYmIWkuaW5jbHVkZXMoIi0iKSl7Y29uc3QgbD1pPT09Ik9QVElPTiI/ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIil8fCIiOmUudmFsdWUsYT1uPT1udWxsP2UudHlwZT09PSJjaGVja2JveCI/Im9uIjoiIjpTdHJpbmcobik7KGwhPT1hfHwhKCJfdmFsdWUiaW4gZSkpJiYoZS52YWx1ZT1hKSxuPT1udWxsJiZlLnJlbW92ZUF0dHJpYnV0ZSh0KSxlLl92YWx1ZT1uO3JldHVybn1sZXQgbz0hMTtpZihuPT09IiJ8fG49PW51bGwpe2NvbnN0IGw9dHlwZW9mIGVbdF07bD09PSJib29sZWFuIj9uPXBsKG4pOm49PW51bGwmJmw9PT0ic3RyaW5nIj8obj0iIixvPSEwKTpsPT09Im51bWJlciImJihuPTAsbz0hMCl9dHJ5e2VbdF09bn1jYXRjaHt9byYmZS5yZW1vdmVBdHRyaWJ1dGUoc3x8dCl9ZnVuY3Rpb24gJGYoZSx0LG4scil7ZS5hZGRFdmVudExpc3RlbmVyKHQsbixyKX1mdW5jdGlvbiBMZihlLHQsbixyKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxuLHIpfWNvbnN0IEVvPVN5bWJvbCgiX3ZlaSIpO2Z1bmN0aW9uIE1mKGUsdCxuLHIscz1udWxsKXtjb25zdCBpPWVbRW9dfHwoZVtFb109e30pLG89aVt0XTtpZihyJiZvKW8udmFsdWU9cjtlbHNle2NvbnN0W2wsYV09SGYodCk7aWYocil7Y29uc3QgdT1pW3RdPVZmKHIscyk7JGYoZSxsLHUsYSl9ZWxzZSBvJiYoTGYoZSxsLG8sYSksaVt0XT12b2lkIDApfX1jb25zdCBUbz0vKD86T25jZXxQYXNzaXZlfENhcHR1cmUpJC87ZnVuY3Rpb24gSGYoZSl7bGV0IHQ7aWYoVG8udGVzdChlKSl7dD17fTtsZXQgcjtmb3IoO3I9ZS5tYXRjaChUbyk7KWU9ZS5zbGljZSgwLGUubGVuZ3RoLXJbMF0ubGVuZ3RoKSx0W3JbMF0udG9Mb3dlckNhc2UoKV09ITB9cmV0dXJuW2VbMl09PT0iOiI/ZS5zbGljZSgzKTprdChlLnNsaWNlKDIpKSx0XX1sZXQgRnM9MDtjb25zdCBVZj1Qcm9taXNlLnJlc29sdmUoKSxqZj0oKT0+RnN8fChVZi50aGVuKCgpPT5Gcz0wKSxGcz1EYXRlLm5vdygpKTtmdW5jdGlvbiBWZihlLHQpe2NvbnN0IG49cj0+e2lmKCFyLl92dHMpci5fdnRzPURhdGUubm93KCk7ZWxzZSBpZihyLl92dHM8PW4uYXR0YWNoZWQpcmV0dXJuO2R0KHpmKHIsbi52YWx1ZSksdCw1LFtyXSl9O3JldHVybiBuLnZhbHVlPWUsbi5hdHRhY2hlZD1qZigpLG59ZnVuY3Rpb24gemYoZSx0KXtpZihKKHQpKXtjb25zdCBuPWUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uO3JldHVybiBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbj0oKT0+e24uY2FsbChlKSxlLl9zdG9wcGVkPSEwfSx0Lm1hcChyPT5zPT4hcy5fc3RvcHBlZCYmciYmcihzKSl9ZWxzZSByZXR1cm4gdH1jb25zdCBBbz1lPT5lLmNoYXJDb2RlQXQoMCk9PT0xMTEmJmUuY2hhckNvZGVBdCgxKT09PTExMCYmZS5jaGFyQ29kZUF0KDIpPjk2JiZlLmNoYXJDb2RlQXQoMik8MTIzLHFmPShlLHQsbixyLHMsaSk9Pntjb25zdCBvPXM9PT0ic3ZnIjt0PT09ImNsYXNzIj9CZihlLHIsbyk6dD09PSJzdHlsZSI/TmYoZSxuLHIpOldyKHQpP2dpKHQpfHxNZihlLHQsbixyLGkpOih0WzBdPT09Ii4iPyh0PXQuc2xpY2UoMSksITApOnRbMF09PT0iXiI/KHQ9dC5zbGljZSgxKSwhMSk6V2YoZSx0LHIsbykpPyhDbyhlLHQsciksIWUudGFnTmFtZS5pbmNsdWRlcygiLSIpJiYodD09PSJ2YWx1ZSJ8fHQ9PT0iY2hlY2tlZCJ8fHQ9PT0ic2VsZWN0ZWQiKSYmU28oZSx0LHIsbyxpLHQhPT0idmFsdWUiKSk6ZS5faXNWdWVDRSYmKC9bQS1aXS8udGVzdCh0KXx8IVNlKHIpKT9DbyhlLGF0KHQpLHIsaSx0KToodD09PSJ0cnVlLXZhbHVlIj9lLl90cnVlVmFsdWU9cjp0PT09ImZhbHNlLXZhbHVlIiYmKGUuX2ZhbHNlVmFsdWU9ciksU28oZSx0LHIsbykpfTtmdW5jdGlvbiBXZihlLHQsbixyKXtpZihyKXJldHVybiEhKHQ9PT0iaW5uZXJIVE1MInx8dD09PSJ0ZXh0Q29udGVudCJ8fHQgaW4gZSYmQW8odCkmJlkobikpO2lmKHQ9PT0ic3BlbGxjaGVjayJ8fHQ9PT0iZHJhZ2dhYmxlInx8dD09PSJ0cmFuc2xhdGUifHx0PT09ImF1dG9jb3JyZWN0Inx8dD09PSJmb3JtInx8dD09PSJsaXN0IiYmZS50YWdOYW1lPT09IklOUFVUInx8dD09PSJ0eXBlIiYmZS50YWdOYW1lPT09IlRFWFRBUkVBIilyZXR1cm4hMTtpZih0PT09IndpZHRoInx8dD09PSJoZWlnaHQiKXtjb25zdCBzPWUudGFnTmFtZTtpZihzPT09IklNRyJ8fHM9PT0iVklERU8ifHxzPT09IkNBTlZBUyJ8fHM9PT0iU09VUkNFIilyZXR1cm4hMX1yZXR1cm4gQW8odCkmJlNlKG4pPyExOnQgaW4gZX1jb25zdCBLZj17ZXNjOiJlc2NhcGUiLHNwYWNlOiIgIix1cDoiYXJyb3ctdXAiLGxlZnQ6ImFycm93LWxlZnQiLHJpZ2h0OiJhcnJvdy1yaWdodCIsZG93bjoiYXJyb3ctZG93biIsZGVsZXRlOiJiYWNrc3BhY2UifSxKZj0oZSx0KT0+e2NvbnN0IG49ZS5fd2l0aEtleXN8fChlLl93aXRoS2V5cz17fSkscj10LmpvaW4oIi4iKTtyZXR1cm4gbltyXXx8KG5bcl09cz0+e2lmKCEoImtleSJpbiBzKSlyZXR1cm47Y29uc3QgaT1rdChzLmtleSk7aWYodC5zb21lKG89Pm89PT1pfHxLZltvXT09PWkpKXJldHVybiBlKHMpfSl9LEdmPUJlKHtwYXRjaFByb3A6cWZ9LEVmKTtsZXQgT287ZnVuY3Rpb24gWWYoKXtyZXR1cm4gT298fChPbz1LdShHZikpfWNvbnN0IHdhPSguLi5lKT0+e2NvbnN0IHQ9WWYoKS5jcmVhdGVBcHAoLi4uZSkse21vdW50Om59PXQ7cmV0dXJuIHQubW91bnQ9cj0+e2NvbnN0IHM9WmYocik7aWYoIXMpcmV0dXJuO2NvbnN0IGk9dC5fY29tcG9uZW50OyFZKGkpJiYhaS5yZW5kZXImJiFpLnRlbXBsYXRlJiYoaS50ZW1wbGF0ZT1zLmlubmVySFRNTCkscy5ub2RlVHlwZT09PTEmJihzLnRleHRDb250ZW50PSIiKTtjb25zdCBvPW4ocywhMSxYZihzKSk7cmV0dXJuIHMgaW5zdGFuY2VvZiBFbGVtZW50JiYocy5yZW1vdmVBdHRyaWJ1dGUoInYtY2xvYWsiKSxzLnNldEF0dHJpYnV0ZSgiZGF0YS12LWFwcCIsIiIpKSxvfSx0fTtmdW5jdGlvbiBYZihlKXtpZihlIGluc3RhbmNlb2YgU1ZHRWxlbWVudClyZXR1cm4ic3ZnIjtpZih0eXBlb2YgTWF0aE1MRWxlbWVudD09ImZ1bmN0aW9uIiYmZSBpbnN0YW5jZW9mIE1hdGhNTEVsZW1lbnQpcmV0dXJuIm1hdGhtbCJ9ZnVuY3Rpb24gWmYoZSl7cmV0dXJuIFNlKGUpP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk6ZX1mdW5jdGlvbiB0aSgpe31jb25zdCBGZT1PYmplY3QuYXNzaWduLHVyPXR5cGVvZiB3aW5kb3c8InUiLGZyPWU9PmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIsUmU9ZT0+ZSE9bnVsbCxucj1lPT50eXBlb2YgZT09ImZ1bmN0aW9uIix4YT1lPT5mcihlKSYmbnIoZS50aGVuKSYmbnIoZS5jYXRjaCksU2E9ZT0+dHlwZW9mIGU9PSJudW1iZXIifHwvXlxkKyhcLlxkKyk/JC8udGVzdChlKSxRZj0oKT0+dXI/L2lvc3xpcGhvbmV8aXBhZHxpcG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk6ITE7ZnVuY3Rpb24gUm8oZSx0KXtjb25zdCBuPXQuc3BsaXQoIi4iKTtsZXQgcj1lO3JldHVybiBuLmZvckVhY2gocz0+e3ZhciBpO3I9ZnIocikmJihpPXJbc10pIT1udWxsP2k6IiJ9KSxyfWZ1bmN0aW9uIFVyKGUsdCxuKXtyZXR1cm4gdC5yZWR1Y2UoKHIscyk9PihyW3NdPWVbc10scikse30pfWNvbnN0IElvPWU9PkFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sRnQ9bnVsbCxmZT1bTnVtYmVyLFN0cmluZ10sd2U9e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxEcz1lPT4oe3R5cGU6ZSxyZXF1aXJlZDohMH0pLHV0PWU9Pih7dHlwZTpmZSxkZWZhdWx0OmV9KSxfZT1lPT4oe3R5cGU6U3RyaW5nLGRlZmF1bHQ6ZX0pO3ZhciBUbj10eXBlb2Ygd2luZG93PCJ1IjtmdW5jdGlvbiBycihlKXtyZXR1cm4gVG4/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOi0xfWZ1bmN0aW9uIENhKGUpe1RuJiZjYW5jZWxBbmltYXRpb25GcmFtZShlKX1mdW5jdGlvbiBrbihlKXtycigoKT0+cnIoZSkpfXZhciBlZD1lPT5lPT09d2luZG93LFBvPShlLHQpPT4oe3RvcDowLGxlZnQ6MCxyaWdodDplLGJvdHRvbTp0LHdpZHRoOmUsaGVpZ2h0OnR9KSxDdD1lPT57Y29uc3QgdD1HbihlKTtpZihlZCh0KSl7Y29uc3Qgbj10LmlubmVyV2lkdGgscj10LmlubmVySGVpZ2h0O3JldHVybiBQbyhuLHIpfXJldHVybiB0Py5nZXRCb3VuZGluZ0NsaWVudFJlY3Q/dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTpQbygwLDApfTtmdW5jdGlvbiBscyhlKXtjb25zdCB0PVd0KGUsbnVsbCk7aWYodCl7Y29uc3Qgbj1HdCgpLHtsaW5rOnIsdW5saW5rOnMsaW50ZXJuYWxDaGlsZHJlbjppfT10O3IobikscnMoKCk9PnMobikpO2NvbnN0IG89bmUoKCk9PmkuaW5kZXhPZihuKSk7cmV0dXJue3BhcmVudDp0LGluZGV4Om99fXJldHVybntwYXJlbnQ6bnVsbCxpbmRleDpRKC0xKX19ZnVuY3Rpb24gdGQoZSl7Y29uc3QgdD1bXSxuPXI9PntBcnJheS5pc0FycmF5KHIpJiZyLmZvckVhY2gocz0+e3ZhciBpO1FuKHMpJiYodC5wdXNoKHMpLChpPXMuY29tcG9uZW50KSE9bnVsbCYmaS5zdWJUcmVlJiYodC5wdXNoKHMuY29tcG9uZW50LnN1YlRyZWUpLG4ocy5jb21wb25lbnQuc3ViVHJlZS5jaGlsZHJlbikpLHMuY2hpbGRyZW4mJm4ocy5jaGlsZHJlbikpfSl9O3JldHVybiBuKGUpLHR9dmFyIEJvPShlLHQpPT57Y29uc3Qgbj1lLmluZGV4T2YodCk7cmV0dXJuIG49PT0tMT9lLmZpbmRJbmRleChyPT50LmtleSE9PXZvaWQgMCYmdC5rZXkhPT1udWxsJiZyLnR5cGU9PT10LnR5cGUmJnIua2V5PT09dC5rZXkpOm59O2Z1bmN0aW9uIG5kKGUsdCxuKXtjb25zdCByPXRkKGUuc3ViVHJlZS5jaGlsZHJlbik7bi5zb3J0KChpLG8pPT5CbyhyLGkudm5vZGUpLUJvKHIsby52bm9kZSkpO2NvbnN0IHM9bi5tYXAoaT0+aS5wcm94eSk7dC5zb3J0KChpLG8pPT57Y29uc3QgbD1zLmluZGV4T2YoaSksYT1zLmluZGV4T2Yobyk7cmV0dXJuIGwtYX0pfWZ1bmN0aW9uIEJpKGUpe2NvbnN0IHQ9cnQoW10pLG49cnQoW10pLHI9R3QoKTtyZXR1cm57Y2hpbGRyZW46dCxsaW5rQ2hpbGRyZW46aT0+e3huKGUsT2JqZWN0LmFzc2lnbih7bGluazphPT57YS5wcm94eSYmKG4ucHVzaChhKSx0LnB1c2goYS5wcm94eSksbmQocix0LG4pKX0sdW5saW5rOmE9Pntjb25zdCB1PW4uaW5kZXhPZihhKTt0LnNwbGljZSh1LDEpLG4uc3BsaWNlKHUsMSl9LGNoaWxkcmVuOnQsaW50ZXJuYWxDaGlsZHJlbjpufSxpKSl9fX1mdW5jdGlvbiBhcyhlKXtsZXQgdDtodCgoKT0+e2UoKSxJZSgoKT0+e3Q9ITB9KX0pLGxyKCgpPT57dCYmZSgpfSl9ZnVuY3Rpb24gdW4oZSx0LG49e30pe2lmKCFUbilyZXR1cm47Y29uc3R7dGFyZ2V0OnI9d2luZG93LHBhc3NpdmU6cz0hMSxjYXB0dXJlOmk9ITF9PW47bGV0IG89ITEsbDtjb25zdCBhPWY9PntpZihvKXJldHVybjtjb25zdCBoPUduKGYpO2gmJiFsJiYoaC5hZGRFdmVudExpc3RlbmVyKGUsdCx7Y2FwdHVyZTppLHBhc3NpdmU6c30pLGw9ITApfSx1PWY9PntpZihvKXJldHVybjtjb25zdCBoPUduKGYpO2gmJmwmJihoLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LGkpLGw9ITEpfTtycygoKT0+dShyKSksRW4oKCk9PnUocikpLGFzKCgpPT5hKHIpKTtsZXQgYztyZXR1cm4ga2UocikmJihjPXBlKHIsKGYsaCk9Pnt1KGgpLGEoZil9KSksKCk9PntjPy4oKSx1KHIpLG89ITB9fXZhciBfcixOcztmdW5jdGlvbiByZCgpe2lmKCFfciYmKF9yPVEoMCksTnM9USgwKSxUbikpe2NvbnN0IGU9KCk9Pntfci52YWx1ZT13aW5kb3cuaW5uZXJXaWR0aCxOcy52YWx1ZT13aW5kb3cuaW5uZXJIZWlnaHR9O2UoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixlLHtwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixlLHtwYXNzaXZlOiEwfSl9cmV0dXJue3dpZHRoOl9yLGhlaWdodDpOc319dmFyIHNkPS9zY3JvbGx8YXV0b3xvdmVybGF5L2ksRWE9VG4/d2luZG93OnZvaWQgMDtmdW5jdGlvbiBpZChlKXtyZXR1cm4gZS50YWdOYW1lIT09IkhUTUwiJiZlLnRhZ05hbWUhPT0iQk9EWSImJmUubm9kZVR5cGU9PT0xfWZ1bmN0aW9uIFRhKGUsdD1FYSl7bGV0IG49ZTtmb3IoO24mJm4hPT10JiZpZChuKTspe2NvbnN0e292ZXJmbG93WTpyfT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuKTtpZihzZC50ZXN0KHIpKXJldHVybiBuO249bi5wYXJlbnROb2RlfXJldHVybiB0fWZ1bmN0aW9uIEZpKGUsdD1FYSl7Y29uc3Qgbj1RKCk7cmV0dXJuIGh0KCgpPT57ZS52YWx1ZSYmKG4udmFsdWU9VGEoZS52YWx1ZSx0KSl9KSxufXZhciB3cjtmdW5jdGlvbiBvZCgpe2lmKCF3ciYmKHdyPVEoInZpc2libGUiKSxUbikpe2NvbnN0IGU9KCk9Pnt3ci52YWx1ZT1kb2N1bWVudC5oaWRkZW4/ImhpZGRlbiI6InZpc2libGUifTtlKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGUpfXJldHVybiB3cn12YXIgbGQ9U3ltYm9sKCJ2YW4tZmllbGQiKTtmdW5jdGlvbiBEaShlKXtjb25zdCB0PSJzY3JvbGxUb3AiaW4gZT9lLnNjcm9sbFRvcDplLnBhZ2VZT2Zmc2V0O3JldHVybiBNYXRoLm1heCh0LDApfWZ1bmN0aW9uIG5pKGUsdCl7InNjcm9sbFRvcCJpbiBlP2Uuc2Nyb2xsVG9wPXQ6ZS5zY3JvbGxUbyhlLnNjcm9sbFgsdCl9ZnVuY3Rpb24gTmkoKXtyZXR1cm4gd2luZG93LnBhZ2VZT2Zmc2V0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcHx8MH1mdW5jdGlvbiBraShlKXtuaSh3aW5kb3csZSksbmkoZG9jdW1lbnQuYm9keSxlKX1mdW5jdGlvbiBGbyhlLHQpe2lmKGU9PT13aW5kb3cpcmV0dXJuIDA7Y29uc3Qgbj10P0RpKHQpOk5pKCk7cmV0dXJuIEN0KGUpLnRvcCtufWNvbnN0IGFkPVFmKCk7ZnVuY3Rpb24gY2QoKXthZCYma2koTmkoKSl9Y29uc3QgdWQ9ZT0+ZS5zdG9wUHJvcGFnYXRpb24oKTtmdW5jdGlvbiBvbihlLHQpeyh0eXBlb2YgZS5jYW5jZWxhYmxlIT0iYm9vbGVhbiJ8fGUuY2FuY2VsYWJsZSkmJmUucHJldmVudERlZmF1bHQoKSx0JiZ1ZChlKX1mdW5jdGlvbiBTbihlKXtjb25zdCB0PUduKGUpO2lmKCF0KXJldHVybiExO2NvbnN0IG49d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkscj1uLmRpc3BsYXk9PT0ibm9uZSIscz10Lm9mZnNldFBhcmVudD09PW51bGwmJm4ucG9zaXRpb24hPT0iZml4ZWQiO3JldHVybiByfHxzfWNvbnN0e3dpZHRoOmRyLGhlaWdodDpjc309cmQoKTtmdW5jdGlvbiBVZShlKXtpZihSZShlKSlyZXR1cm4gU2EoZSk/YCR7ZX1weGA6U3RyaW5nKGUpfWZ1bmN0aW9uIEFhKGUpe2lmKFJlKGUpKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybnt3aWR0aDpVZShlWzBdKSxoZWlnaHQ6VWUoZVsxXSl9O2NvbnN0IHQ9VWUoZSk7cmV0dXJue3dpZHRoOnQsaGVpZ2h0OnR9fX1mdW5jdGlvbiBPYShlKXtjb25zdCB0PXt9O3JldHVybiBlIT09dm9pZCAwJiYodC56SW5kZXg9K2UpLHR9bGV0IGtzO2Z1bmN0aW9uIGZkKCl7aWYoIWtzKXtjb25zdCBlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0PWUuc3R5bGUuZm9udFNpemV8fHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLmZvbnRTaXplO2tzPXBhcnNlRmxvYXQodCl9cmV0dXJuIGtzfWZ1bmN0aW9uIGRkKGUpe3JldHVybiBlPWUucmVwbGFjZSgvcmVtL2csIiIpLCtlKmZkKCl9ZnVuY3Rpb24gaGQoZSl7cmV0dXJuIGU9ZS5yZXBsYWNlKC92dy9nLCIiKSwrZSpkci52YWx1ZS8xMDB9ZnVuY3Rpb24gZ2QoZSl7cmV0dXJuIGU9ZS5yZXBsYWNlKC92aC9nLCIiKSwrZSpjcy52YWx1ZS8xMDB9ZnVuY3Rpb24gUmEoZSl7aWYodHlwZW9mIGU9PSJudW1iZXIiKXJldHVybiBlO2lmKHVyKXtpZihlLmluY2x1ZGVzKCJyZW0iKSlyZXR1cm4gZGQoZSk7aWYoZS5pbmNsdWRlcygidnciKSlyZXR1cm4gaGQoZSk7aWYoZS5pbmNsdWRlcygidmgiKSlyZXR1cm4gZ2QoZSl9cmV0dXJuIHBhcnNlRmxvYXQoZSl9Y29uc3QgbWQ9Ly0oXHcpL2csSWE9ZT0+ZS5yZXBsYWNlKG1kLCh0LG4pPT5uLnRvVXBwZXJDYXNlKCkpLFJyPShlLHQsbik9Pk1hdGgubWluKE1hdGgubWF4KGUsdCksbik7ZnVuY3Rpb24gRG8oZSx0LG4pe2NvbnN0IHI9ZS5pbmRleE9mKHQpO3JldHVybiByPT09LTE/ZTp0PT09Ii0iJiZyIT09MD9lLnNsaWNlKDAscik6ZS5zbGljZSgwLHIrMSkrZS5zbGljZShyKS5yZXBsYWNlKG4sIiIpfWZ1bmN0aW9uIHBkKGUsdD0hMCxuPSEwKXt0P2U9RG8oZSwiLiIsL1wuL2cpOmU9ZS5zcGxpdCgiLiIpWzBdLG4/ZT1EbyhlLCItIiwvLS9nKTplPWUucmVwbGFjZSgvLS8sIiIpO2NvbnN0IHI9dD8vW14tMC05Ll0vZzovW14tMC05XS9nO3JldHVybiBlLnJlcGxhY2UociwiIil9Y29uc3R7aGFzT3duUHJvcGVydHk6eWR9PU9iamVjdC5wcm90b3R5cGU7ZnVuY3Rpb24gYmQoZSx0LG4pe2NvbnN0IHI9dFtuXTtSZShyKSYmKCF5ZC5jYWxsKGUsbil8fCFmcihyKT9lW25dPXI6ZVtuXT1QYShPYmplY3QoZVtuXSkscikpfWZ1bmN0aW9uIFBhKGUsdCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2gobj0+e2JkKGUsdCxuKX0pLGV9dmFyIHZkPXtuYW1lOiLlp5PlkI0iLHRlbDoi55S16K+dIixzYXZlOiLkv53lrZgiLGNsZWFyOiLmuIXnqboiLGNhbmNlbDoi5Y+W5raIIixjb25maXJtOiLnoa7orqQiLGRlbGV0ZToi5Yig6ZmkIixsb2FkaW5nOiLliqDovb3kuK0uLi4iLG5vQ291cG9uOiLmmoLml6DkvJjmg6DliLgiLG5hbWVFbXB0eToi6K+35aGr5YaZ5aeT5ZCNIixhZGRDb250YWN0OiLmt7vliqDogZTns7vkuroiLHRlbEludmFsaWQ6Iuivt+Whq+WGmeato+ehrueahOeUteivnSIsdmFuQ2FsZW5kYXI6e2VuZDoi57uT5p2fIixzdGFydDoi5byA5aeLIix0aXRsZToi5pel5pyf6YCJ5oupIix3ZWVrZGF5czpbIuaXpSIsIuS4gCIsIuS6jCIsIuS4iSIsIuWbmyIsIuS6lCIsIuWFrSJdLG1vbnRoVGl0bGU6KGUsdCk9PmAke2V95bm0JHt0feaciGAscmFuZ2VQcm9tcHQ6ZT0+YOacgOWkmumAieaLqSAke2V9IOWkqWB9LHZhbkNhc2NhZGVyOntzZWxlY3Q6Iuivt+mAieaLqSJ9LHZhblBhZ2luYXRpb246e3ByZXY6IuS4iuS4gOmhtSIsbmV4dDoi5LiL5LiA6aG1In0sdmFuUHVsbFJlZnJlc2g6e3B1bGxpbmc6IuS4i+aLieWNs+WPr+WIt+aWsC4uLiIsbG9vc2luZzoi6YeK5pS+5Y2z5Y+v5Yi35pawLi4uIn0sdmFuU3VibWl0QmFyOntsYWJlbDoi5ZCI6K6hOiJ9LHZhbkNvdXBvbjp7dW5saW1pdGVkOiLml6Dpl6jmp5siLGRpc2NvdW50OmU9PmAke2V95oqYYCxjb25kaXRpb246ZT0+YOa7oSR7ZX3lhYPlj6/nlKhgfSx2YW5Db3Vwb25DZWxsOnt0aXRsZToi5LyY5oOg5Yi4Iixjb3VudDplPT5gJHtlfeW8oOWPr+eUqGB9LHZhbkNvdXBvbkxpc3Q6e2V4Y2hhbmdlOiLlhZHmjaIiLGNsb3NlOiLkuI3kvb/nlKgiLGVuYWJsZToi5Y+v55SoIixkaXNhYmxlZDoi5LiN5Y+v55SoIixwbGFjZWhvbGRlcjoi6L6T5YWl5LyY5oOg56CBIn0sdmFuQWRkcmVzc0VkaXQ6e2FyZWE6IuWcsOWMuiIsYXJlYUVtcHR5OiLor7fpgInmi6nlnLDljLoiLGFkZHJlc3NFbXB0eToi6K+35aGr5YaZ6K+m57uG5Zyw5Z2AIixhZGRyZXNzRGV0YWlsOiLor6bnu4blnLDlnYAiLGRlZmF1bHRBZGRyZXNzOiLorr7kuLrpu5jorqTmlLbotKflnLDlnYAifSx2YW5BZGRyZXNzTGlzdDp7YWRkOiLmlrDlop7lnLDlnYAifX07Y29uc3QgTm89USgiemgtQ04iKSxrbz1ydCh7InpoLUNOIjp2ZH0pLF9kPXttZXNzYWdlcygpe3JldHVybiBrb1tOby52YWx1ZV19LHVzZShlLHQpe05vLnZhbHVlPWUsdGhpcy5hZGQoe1tlXTp0fSl9LGFkZChlPXt9KXtQYShrbyxlKX19O3ZhciB3ZD1fZDtmdW5jdGlvbiB4ZChlKXtjb25zdCB0PUlhKGUpKyIuIjtyZXR1cm4obiwuLi5yKT0+e2NvbnN0IHM9d2QubWVzc2FnZXMoKSxpPVJvKHMsdCtuKXx8Um8ocyxuKTtyZXR1cm4gbnIoaSk/aSguLi5yKTppfX1mdW5jdGlvbiByaShlLHQpe3JldHVybiB0P3R5cGVvZiB0PT0ic3RyaW5nIj9gICR7ZX0tLSR7dH1gOkFycmF5LmlzQXJyYXkodCk/dC5yZWR1Y2UoKG4scik9Pm4rcmkoZSxyKSwiIik6T2JqZWN0LmtleXModCkucmVkdWNlKChuLHIpPT5uKyh0W3JdP3JpKGUscik6IiIpLCIiKToiIn1mdW5jdGlvbiBTZChlKXtyZXR1cm4odCxuKT0+KHQmJnR5cGVvZiB0IT0ic3RyaW5nIiYmKG49dCx0PSIiKSx0PXQ/YCR7ZX1fXyR7dH1gOmUsYCR7dH0ke3JpKHQsbil9YCl9ZnVuY3Rpb24gRWUoZSl7Y29uc3QgdD1gdmFuLSR7ZX1gO3JldHVyblt0LFNkKHQpLHhkKHQpXX1jb25zdCB1cz0idmFuLWhhaXJsaW5lIixDZD1gJHt1c30tLXRvcGAsRWQ9YCR7dXN9LS1sZWZ0YCxUZD1gJHt1c30tLXN1cnJvdW5kYCxCYT1gJHt1c30tLXRvcC1ib3R0b21gLEFkPSJ2YW4taGFwdGljcy1mZWVkYmFjayIsT2Q9U3ltYm9sKCJ2YW4tZm9ybSIpLCRvPTU7ZnVuY3Rpb24gJGkoZSx7YXJnczp0PVtdLGRvbmU6bixjYW5jZWxlZDpyLGVycm9yOnN9KXtpZihlKXtjb25zdCBpPWUuYXBwbHkobnVsbCx0KTt4YShpKT9pLnRoZW4obz0+e28/bigpOnImJnIoKX0pLmNhdGNoKHN8fHRpKTppP24oKTpyJiZyKCl9ZWxzZSBuKCl9ZnVuY3Rpb24gT2UoZSl7cmV0dXJuIGUuaW5zdGFsbD10PT57Y29uc3R7bmFtZTpufT1lO24mJih0LmNvbXBvbmVudChuLGUpLHQuY29tcG9uZW50KElhKGAtJHtufWApLGUpKX0sZX1jb25zdCBGYT1TeW1ib2woKTtmdW5jdGlvbiBMaShlKXtjb25zdCB0PVd0KEZhLG51bGwpO3QmJnBlKHQsbj0+e24mJmUoKX0pfWNvbnN0IFJkPShlLHQpPT57Y29uc3Qgbj1RKCkscj0oKT0+e24udmFsdWU9Q3QoZSkuaGVpZ2h0fTtyZXR1cm4gaHQoKCk9PntJZShyKTtmb3IobGV0IHM9MTtzPD0zO3MrKylzZXRUaW1lb3V0KHIsMTAwKnMpfSksTGkoKCk9PkllKHIpKSxwZShbZHIsY3NdLHIpLG59O2Z1bmN0aW9uIElkKGUsdCl7Y29uc3Qgbj1SZChlKTtyZXR1cm4gcj0+ZygiZGl2Iix7Y2xhc3M6dCgicGxhY2Vob2xkZXIiKSxzdHlsZTp7aGVpZ2h0Om4udmFsdWU/YCR7bi52YWx1ZX1weGA6dm9pZCAwfX0sW3IoKV0pfWNvbnN0W0RhLExvXT1FZSgiYWN0aW9uLWJhciIpLE5hPVN5bWJvbChEYSksUGQ9e3BsYWNlaG9sZGVyOkJvb2xlYW4sc2FmZUFyZWFJbnNldEJvdHRvbTp3ZX07dmFyIEJkPVRlKHtuYW1lOkRhLHByb3BzOlBkLHNldHVwKGUse3Nsb3RzOnR9KXtjb25zdCBuPVEoKSxyPUlkKG4sTG8pLHtsaW5rQ2hpbGRyZW46c309QmkoTmEpO3MoKTtjb25zdCBpPSgpPT57dmFyIG87cmV0dXJuIGcoImRpdiIse3JlZjpuLGNsYXNzOltMbygpLHsidmFuLXNhZmUtYXJlYS1ib3R0b20iOmUuc2FmZUFyZWFJbnNldEJvdHRvbX1dfSxbKG89dC5kZWZhdWx0KT09bnVsbD92b2lkIDA6by5jYWxsKHQpXSl9O3JldHVybigpPT5lLnBsYWNlaG9sZGVyP3IoaSk6aSgpfX0pO2NvbnN0IEZkPU9lKEJkKTtmdW5jdGlvbiBUdChlKXtjb25zdCB0PUd0KCk7dCYmRmUodC5wcm94eSxlKX1jb25zdCBmcz17dG86W1N0cmluZyxPYmplY3RdLHVybDpTdHJpbmcscmVwbGFjZTpCb29sZWFufTtmdW5jdGlvbiBrYSh7dG86ZSx1cmw6dCxyZXBsYWNlOm4sJHJvdXRlcjpyfSl7ZSYmcj9yW24/InJlcGxhY2UiOiJwdXNoIl0oZSk6dCYmKG4/bG9jYXRpb24ucmVwbGFjZSh0KTpsb2NhdGlvbi5ocmVmPXQpfWZ1bmN0aW9uIE1pKCl7Y29uc3QgZT1HdCgpLnByb3h5O3JldHVybigpPT5rYShlKX1jb25zdFtEZCxNb109RWUoImJhZGdlIiksTmQ9e2RvdDpCb29sZWFuLG1heDpmZSx0YWc6X2UoImRpdiIpLGNvbG9yOlN0cmluZyxvZmZzZXQ6QXJyYXksY29udGVudDpmZSxzaG93WmVybzp3ZSxwb3NpdGlvbjpfZSgidG9wLXJpZ2h0Iil9O3ZhciBrZD1UZSh7bmFtZTpEZCxwcm9wczpOZCxzZXR1cChlLHtzbG90czp0fSl7Y29uc3Qgbj0oKT0+e2lmKHQuY29udGVudClyZXR1cm4hMDtjb25zdHtjb250ZW50Omwsc2hvd1plcm86YX09ZTtyZXR1cm4gUmUobCkmJmwhPT0iIiYmKGF8fGwhPT0wJiZsIT09IjAiKX0scj0oKT0+e2NvbnN0e2RvdDpsLG1heDphLGNvbnRlbnQ6dX09ZTtpZighbCYmbigpKXJldHVybiB0LmNvbnRlbnQ/dC5jb250ZW50KCk6UmUoYSkmJlNhKHUpJiYrdT4rYT9gJHthfStgOnV9LHM9bD0+bC5zdGFydHNXaXRoKCItIik/bC5yZXBsYWNlKCItIiwiIik6YC0ke2x9YCxpPW5lKCgpPT57Y29uc3QgbD17YmFja2dyb3VuZDplLmNvbG9yfTtpZihlLm9mZnNldCl7Y29uc3RbYSx1XT1lLm9mZnNldCx7cG9zaXRpb246Y309ZSxbZixoXT1jLnNwbGl0KCItIik7dC5kZWZhdWx0Pyh0eXBlb2YgdT09Im51bWJlciI/bFtmXT1VZShmPT09InRvcCI/dTotdSk6bFtmXT1mPT09InRvcCI/VWUodSk6cyh1KSx0eXBlb2YgYT09Im51bWJlciI/bFtoXT1VZShoPT09ImxlZnQiP2E6LWEpOmxbaF09aD09PSJsZWZ0Ij9VZShhKTpzKGEpKToobC5tYXJnaW5Ub3A9VWUodSksbC5tYXJnaW5MZWZ0PVVlKGEpKX1yZXR1cm4gbH0pLG89KCk9PntpZihuKCl8fGUuZG90KXJldHVybiBnKCJkaXYiLHtjbGFzczpNbyhbZS5wb3NpdGlvbix7ZG90OmUuZG90LGZpeGVkOiEhdC5kZWZhdWx0fV0pLHN0eWxlOmkudmFsdWV9LFtyKCldKX07cmV0dXJuKCk9PntpZih0LmRlZmF1bHQpe2NvbnN0e3RhZzpsfT1lO3JldHVybiBnKGwse2NsYXNzOk1vKCJ3cmFwcGVyIil9LHtkZWZhdWx0OigpPT5bdC5kZWZhdWx0KCksbygpXX0pfXJldHVybiBvKCl9fX0pO2NvbnN0ICRhPU9lKGtkKTtsZXQgJGQ9MmUzO2NvbnN0IExkPSgpPT4rKyRkLFtNZCxkcF09RWUoImNvbmZpZy1wcm92aWRlciIpLEhkPVN5bWJvbChNZCksW1VkLEhvXT1FZSgiaWNvbiIpLGpkPWU9PmU/LmluY2x1ZGVzKCIvIiksVmQ9e2RvdDpCb29sZWFuLHRhZzpfZSgiaSIpLG5hbWU6U3RyaW5nLHNpemU6ZmUsYmFkZ2U6ZmUsY29sb3I6U3RyaW5nLGJhZGdlUHJvcHM6T2JqZWN0LGNsYXNzUHJlZml4OlN0cmluZ307dmFyIHpkPVRlKHtuYW1lOlVkLHByb3BzOlZkLHNldHVwKGUse3Nsb3RzOnR9KXtjb25zdCBuPVd0KEhkLG51bGwpLHI9bmUoKCk9PmUuY2xhc3NQcmVmaXh8fG4/Lmljb25QcmVmaXh8fEhvKCkpO3JldHVybigpPT57Y29uc3R7dGFnOnMsZG90OmksbmFtZTpvLHNpemU6bCxiYWRnZTphLGNvbG9yOnV9PWUsYz1qZChvKTtyZXR1cm4gZygkYSxzdCh7ZG90OmksdGFnOnMsY2xhc3M6W3IudmFsdWUsYz8iIjpgJHtyLnZhbHVlfS0ke299YF0sc3R5bGU6e2NvbG9yOnUsZm9udFNpemU6VWUobCl9LGNvbnRlbnQ6YX0sZS5iYWRnZVByb3BzKSx7ZGVmYXVsdDooKT0+e3ZhciBmO3JldHVyblsoZj10LmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpmLmNhbGwodCksYyYmZygiaW1nIix7Y2xhc3M6SG8oImltYWdlIiksc3JjOm99LG51bGwpXX19KX19fSk7Y29uc3QgbG49T2UoemQpLFtxZCxXbl09RWUoImxvYWRpbmciKSxXZD1BcnJheSgxMikuZmlsbChudWxsKS5tYXAoKGUsdCk9PmcoImkiLHtjbGFzczpXbigibGluZSIsU3RyaW5nKHQrMSkpfSxudWxsKSksS2Q9Zygic3ZnIix7Y2xhc3M6V24oImNpcmN1bGFyIiksdmlld0JveDoiMjUgMjUgNTAgNTAifSxbZygiY2lyY2xlIix7Y3g6IjUwIixjeToiNTAiLHI6IjIwIixmaWxsOiJub25lIn0sbnVsbCldKSxKZD17c2l6ZTpmZSx0eXBlOl9lKCJjaXJjdWxhciIpLGNvbG9yOlN0cmluZyx2ZXJ0aWNhbDpCb29sZWFuLHRleHRTaXplOmZlLHRleHRDb2xvcjpTdHJpbmd9O3ZhciBHZD1UZSh7bmFtZTpxZCxwcm9wczpKZCxzZXR1cChlLHtzbG90czp0fSl7Y29uc3Qgbj1uZSgoKT0+RmUoe2NvbG9yOmUuY29sb3J9LEFhKGUuc2l6ZSkpKSxyPSgpPT57Y29uc3QgaT1lLnR5cGU9PT0ic3Bpbm5lciI/V2Q6S2Q7cmV0dXJuIGcoInNwYW4iLHtjbGFzczpXbigic3Bpbm5lciIsZS50eXBlKSxzdHlsZTpuLnZhbHVlfSxbdC5pY29uP3QuaWNvbigpOmldKX0scz0oKT0+e3ZhciBpO2lmKHQuZGVmYXVsdClyZXR1cm4gZygic3BhbiIse2NsYXNzOlduKCJ0ZXh0Iiksc3R5bGU6e2ZvbnRTaXplOlVlKGUudGV4dFNpemUpLGNvbG9yOihpPWUudGV4dENvbG9yKSE9bnVsbD9pOmUuY29sb3J9fSxbdC5kZWZhdWx0KCldKX07cmV0dXJuKCk9Pntjb25zdHt0eXBlOmksdmVydGljYWw6b309ZTtyZXR1cm4gZygiZGl2Iix7Y2xhc3M6V24oW2kse3ZlcnRpY2FsOm99XSksImFyaWEtbGl2ZSI6InBvbGl0ZSIsImFyaWEtYnVzeSI6ITB9LFtyKCkscygpXSl9fX0pO2NvbnN0IGpyPU9lKEdkKSxbWWQsaG5dPUVlKCJidXR0b24iKSxYZD1GZSh7fSxmcyx7dGFnOl9lKCJidXR0b24iKSx0ZXh0OlN0cmluZyxpY29uOlN0cmluZyx0eXBlOl9lKCJkZWZhdWx0Iiksc2l6ZTpfZSgibm9ybWFsIiksY29sb3I6U3RyaW5nLGJsb2NrOkJvb2xlYW4scGxhaW46Qm9vbGVhbixyb3VuZDpCb29sZWFuLHNxdWFyZTpCb29sZWFuLGxvYWRpbmc6Qm9vbGVhbixoYWlybGluZTpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4saWNvblByZWZpeDpTdHJpbmcsbmF0aXZlVHlwZTpfZSgiYnV0dG9uIiksbG9hZGluZ1NpemU6ZmUsbG9hZGluZ1RleHQ6U3RyaW5nLGxvYWRpbmdUeXBlOlN0cmluZyxpY29uUG9zaXRpb246X2UoImxlZnQiKX0pO3ZhciBaZD1UZSh7bmFtZTpZZCxwcm9wczpYZCxlbWl0czpbImNsaWNrIl0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtjb25zdCByPU1pKCkscz0oKT0+bi5sb2FkaW5nP24ubG9hZGluZygpOmcoanIse3NpemU6ZS5sb2FkaW5nU2l6ZSx0eXBlOmUubG9hZGluZ1R5cGUsY2xhc3M6aG4oImxvYWRpbmciKX0sbnVsbCksaT0oKT0+e2lmKGUubG9hZGluZylyZXR1cm4gcygpO2lmKG4uaWNvbilyZXR1cm4gZygiZGl2Iix7Y2xhc3M6aG4oImljb24iKX0sW24uaWNvbigpXSk7aWYoZS5pY29uKXJldHVybiBnKGxuLHtuYW1lOmUuaWNvbixjbGFzczpobigiaWNvbiIpLGNsYXNzUHJlZml4OmUuaWNvblByZWZpeH0sbnVsbCl9LG89KCk9PntsZXQgdTtpZihlLmxvYWRpbmc/dT1lLmxvYWRpbmdUZXh0OnU9bi5kZWZhdWx0P24uZGVmYXVsdCgpOmUudGV4dCx1KXJldHVybiBnKCJzcGFuIix7Y2xhc3M6aG4oInRleHQiKX0sW3VdKX0sbD0oKT0+e2NvbnN0e2NvbG9yOnUscGxhaW46Y309ZTtpZih1KXtjb25zdCBmPXtjb2xvcjpjP3U6IndoaXRlIn07cmV0dXJuIGN8fChmLmJhY2tncm91bmQ9dSksdS5pbmNsdWRlcygiZ3JhZGllbnQiKT9mLmJvcmRlcj0wOmYuYm9yZGVyQ29sb3I9dSxmfX0sYT11PT57ZS5sb2FkaW5nP29uKHUpOmUuZGlzYWJsZWR8fCh0KCJjbGljayIsdSkscigpKX07cmV0dXJuKCk9Pntjb25zdHt0YWc6dSx0eXBlOmMsc2l6ZTpmLGJsb2NrOmgscm91bmQ6dixwbGFpbjpwLHNxdWFyZTpiLGxvYWRpbmc6eSxkaXNhYmxlZDpTLGhhaXJsaW5lOkMsbmF0aXZlVHlwZTpGLGljb25Qb3NpdGlvbjpSfT1lLEQ9W2huKFtjLGYse3BsYWluOnAsYmxvY2s6aCxyb3VuZDp2LHNxdWFyZTpiLGxvYWRpbmc6eSxkaXNhYmxlZDpTLGhhaXJsaW5lOkN9XSkse1tUZF06Q31dO3JldHVybiBnKHUse3R5cGU6RixjbGFzczpELHN0eWxlOmwoKSxkaXNhYmxlZDpTLG9uQ2xpY2s6YX0se2RlZmF1bHQ6KCk9PltnKCJkaXYiLHtjbGFzczpobigiY29udGVudCIpfSxbUj09PSJsZWZ0IiYmaSgpLG8oKSxSPT09InJpZ2h0IiYmaSgpXSldfSl9fX0pO2NvbnN0IHNyPU9lKFpkKSxbUWQsZWhdPUVlKCJhY3Rpb24tYmFyLWJ1dHRvbiIpLHRoPUZlKHt9LGZzLHt0eXBlOlN0cmluZyx0ZXh0OlN0cmluZyxpY29uOlN0cmluZyxjb2xvcjpTdHJpbmcsbG9hZGluZzpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW59KTt2YXIgbmg9VGUoe25hbWU6UWQscHJvcHM6dGgsc2V0dXAoZSx7c2xvdHM6dH0pe2NvbnN0IG49TWkoKSx7cGFyZW50OnIsaW5kZXg6c309bHMoTmEpLGk9bmUoKCk9PntpZihyKXtjb25zdCBsPXIuY2hpbGRyZW5bcy52YWx1ZS0xXTtyZXR1cm4hKGwmJiJpc0J1dHRvbiJpbiBsKX19KSxvPW5lKCgpPT57aWYocil7Y29uc3QgbD1yLmNoaWxkcmVuW3MudmFsdWUrMV07cmV0dXJuIShsJiYiaXNCdXR0b24iaW4gbCl9fSk7cmV0dXJuIFR0KHtpc0J1dHRvbjohMH0pLCgpPT57Y29uc3R7dHlwZTpsLGljb246YSx0ZXh0OnUsY29sb3I6Yyxsb2FkaW5nOmYsZGlzYWJsZWQ6aH09ZTtyZXR1cm4gZyhzcix7Y2xhc3M6ZWgoW2wse2xhc3Q6by52YWx1ZSxmaXJzdDppLnZhbHVlfV0pLHNpemU6ImxhcmdlIix0eXBlOmwsaWNvbjphLGNvbG9yOmMsbG9hZGluZzpmLGRpc2FibGVkOmgsb25DbGljazpufSx7ZGVmYXVsdDooKT0+W3QuZGVmYXVsdD90LmRlZmF1bHQoKTp1XX0pfX19KTtjb25zdCBVbz1PZShuaCksZHM9e3Nob3c6Qm9vbGVhbix6SW5kZXg6ZmUsb3ZlcmxheTp3ZSxkdXJhdGlvbjpmZSx0ZWxlcG9ydDpbU3RyaW5nLE9iamVjdF0sbG9ja1Njcm9sbDp3ZSxsYXp5UmVuZGVyOndlLGJlZm9yZUNsb3NlOkZ1bmN0aW9uLG92ZXJsYXlQcm9wczpPYmplY3Qsb3ZlcmxheVN0eWxlOk9iamVjdCxvdmVybGF5Q2xhc3M6RnQsdHJhbnNpdGlvbkFwcGVhcjpCb29sZWFuLGNsb3NlT25DbGlja092ZXJsYXk6d2V9LHJoPU9iamVjdC5rZXlzKGRzKTtmdW5jdGlvbiBzaChlLHQpe3JldHVybiBlPnQ/Imhvcml6b250YWwiOnQ+ZT8idmVydGljYWwiOiIifWZ1bmN0aW9uIExhKCl7Y29uc3QgZT1RKDApLHQ9USgwKSxuPVEoMCkscj1RKDApLHM9USgwKSxpPVEoMCksbz1RKCIiKSxsPVEoITApLGE9KCk9Pm8udmFsdWU9PT0idmVydGljYWwiLHU9KCk9Pm8udmFsdWU9PT0iaG9yaXpvbnRhbCIsYz0oKT0+e24udmFsdWU9MCxyLnZhbHVlPTAscy52YWx1ZT0wLGkudmFsdWU9MCxvLnZhbHVlPSIiLGwudmFsdWU9ITB9O3JldHVybnttb3ZlOnY9Pntjb25zdCBwPXYudG91Y2hlc1swXTtuLnZhbHVlPShwLmNsaWVudFg8MD8wOnAuY2xpZW50WCktZS52YWx1ZSxyLnZhbHVlPXAuY2xpZW50WS10LnZhbHVlLHMudmFsdWU9TWF0aC5hYnMobi52YWx1ZSksaS52YWx1ZT1NYXRoLmFicyhyLnZhbHVlKTtjb25zdCBiPTEwOyghby52YWx1ZXx8cy52YWx1ZTxiJiZpLnZhbHVlPGIpJiYoby52YWx1ZT1zaChzLnZhbHVlLGkudmFsdWUpKSxsLnZhbHVlJiYocy52YWx1ZT4kb3x8aS52YWx1ZT4kbykmJihsLnZhbHVlPSExKX0sc3RhcnQ6dj0+e2MoKSxlLnZhbHVlPXYudG91Y2hlc1swXS5jbGllbnRYLHQudmFsdWU9di50b3VjaGVzWzBdLmNsaWVudFl9LHJlc2V0OmMsc3RhcnRYOmUsc3RhcnRZOnQsZGVsdGFYOm4sZGVsdGFZOnIsb2Zmc2V0WDpzLG9mZnNldFk6aSxkaXJlY3Rpb246byxpc1ZlcnRpY2FsOmEsaXNIb3Jpem9udGFsOnUsaXNUYXA6bH19bGV0IEZuPTA7Y29uc3Qgam89InZhbi1vdmVyZmxvdy1oaWRkZW4iO2Z1bmN0aW9uIGloKGUsdCl7Y29uc3Qgbj1MYSgpLHI9IjAxIixzPSIxMCIsaT1jPT57bi5tb3ZlKGMpO2NvbnN0IGY9bi5kZWx0YVkudmFsdWU+MD9zOnIsaD1UYShjLnRhcmdldCxlLnZhbHVlKSx7c2Nyb2xsSGVpZ2h0OnYsb2Zmc2V0SGVpZ2h0OnAsc2Nyb2xsVG9wOmJ9PWg7bGV0IHk9IjExIjtiPT09MD95PXA+PXY/IjAwIjoiMDEiOmIrcD49diYmKHk9IjEwIikseSE9PSIxMSImJm4uaXNWZXJ0aWNhbCgpJiYhKHBhcnNlSW50KHksMikmcGFyc2VJbnQoZiwyKSkmJm9uKGMsITApfSxvPSgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsbi5zdGFydCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixpLHtwYXNzaXZlOiExfSksRm58fGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChqbyksRm4rK30sbD0oKT0+e0ZuJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsbi5zdGFydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixpKSxGbi0tLEZufHxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoam8pKX0sYT0oKT0+dCgpJiZvKCksdT0oKT0+dCgpJiZsKCk7YXMoYSksRW4odSksYXIodSkscGUodCxjPT57Yz9vKCk6bCgpfSl9ZnVuY3Rpb24gTWEoZSl7Y29uc3QgdD1RKCExKTtyZXR1cm4gcGUoZSxuPT57biYmKHQudmFsdWU9bil9LHtpbW1lZGlhdGU6ITB9KSxuPT4oKT0+dC52YWx1ZT9uKCk6bnVsbH1jb25zdCBzaT0oKT0+e3ZhciBlO2NvbnN0e3Njb3BlSWQ6dH09KChlPUd0KCkpPT1udWxsP3ZvaWQgMDplLnZub2RlKXx8e307cmV0dXJuIHQ/e1t0XToiIn06bnVsbH0sW29oLGxoXT1FZSgib3ZlcmxheSIpLGFoPXtzaG93OkJvb2xlYW4sekluZGV4OmZlLGR1cmF0aW9uOmZlLGNsYXNzTmFtZTpGdCxsb2NrU2Nyb2xsOndlLGxhenlSZW5kZXI6d2UsY3VzdG9tU3R5bGU6T2JqZWN0LHRlbGVwb3J0OltTdHJpbmcsT2JqZWN0XX07dmFyIGNoPVRlKHtuYW1lOm9oLGluaGVyaXRBdHRyczohMSxwcm9wczphaCxzZXR1cChlLHthdHRyczp0LHNsb3RzOm59KXtjb25zdCByPVEoKSxzPU1hKCgpPT5lLnNob3d8fCFlLmxhenlSZW5kZXIpLGk9bD0+e2UubG9ja1Njcm9sbCYmb24obCwhMCl9LG89cygoKT0+e3ZhciBsO2NvbnN0IGE9RmUoT2EoZS56SW5kZXgpLGUuY3VzdG9tU3R5bGUpO3JldHVybiBSZShlLmR1cmF0aW9uKSYmKGEuYW5pbWF0aW9uRHVyYXRpb249YCR7ZS5kdXJhdGlvbn1zYCksRWkoZygiZGl2IixzdCh7cmVmOnIsc3R5bGU6YSxjbGFzczpbbGgoKSxlLmNsYXNzTmFtZV19LHQpLFsobD1uLmRlZmF1bHQpPT1udWxsP3ZvaWQgMDpsLmNhbGwobildKSxbW1BpLGUuc2hvd11dKX0pO3JldHVybiB1bigidG91Y2htb3ZlIixpLHt0YXJnZXQ6cn0pLCgpPT57Y29uc3QgbD1nKHZhLHtuYW1lOiJ2YW4tZmFkZSIsYXBwZWFyOiEwfSx7ZGVmYXVsdDpvfSk7cmV0dXJuIGUudGVsZXBvcnQ/ZyhVbCx7dG86ZS50ZWxlcG9ydH0se2RlZmF1bHQ6KCk9PltsXX0pOmx9fX0pO2NvbnN0IHVoPU9lKGNoKSxmaD1GZSh7fSxkcyx7cm91bmQ6Qm9vbGVhbixwb3NpdGlvbjpfZSgiY2VudGVyIiksY2xvc2VJY29uOl9lKCJjcm9zcyIpLGNsb3NlYWJsZTpCb29sZWFuLHRyYW5zaXRpb246U3RyaW5nLGljb25QcmVmaXg6U3RyaW5nLGNsb3NlT25Qb3BzdGF0ZTpCb29sZWFuLGNsb3NlSWNvblBvc2l0aW9uOl9lKCJ0b3AtcmlnaHQiKSxkZXN0cm95T25DbG9zZTpCb29sZWFuLHNhZmVBcmVhSW5zZXRUb3A6Qm9vbGVhbixzYWZlQXJlYUluc2V0Qm90dG9tOkJvb2xlYW59KSxbZGgsVm9dPUVlKCJwb3B1cCIpO3ZhciBoaD1UZSh7bmFtZTpkaCxpbmhlcml0QXR0cnM6ITEscHJvcHM6ZmgsZW1pdHM6WyJvcGVuIiwiY2xvc2UiLCJvcGVuZWQiLCJjbG9zZWQiLCJrZXlkb3duIiwidXBkYXRlOnNob3ciLCJjbGlja092ZXJsYXkiLCJjbGlja0Nsb3NlSWNvbiJdLHNldHVwKGUse2VtaXQ6dCxhdHRyczpuLHNsb3RzOnJ9KXtsZXQgcyxpO2NvbnN0IG89USgpLGw9USgpLGE9TWEoKCk9PmUuc2hvd3x8IWUubGF6eVJlbmRlciksdT1uZSgoKT0+e2NvbnN0IE49e3pJbmRleDpvLnZhbHVlfTtpZihSZShlLmR1cmF0aW9uKSl7Y29uc3QgVz1lLnBvc2l0aW9uPT09ImNlbnRlciI/ImFuaW1hdGlvbkR1cmF0aW9uIjoidHJhbnNpdGlvbkR1cmF0aW9uIjtOW1ddPWAke2UuZHVyYXRpb259c2B9cmV0dXJuIE59KSxjPSgpPT57c3x8KHM9ITAsby52YWx1ZT1lLnpJbmRleCE9PXZvaWQgMD8rZS56SW5kZXg6TGQoKSx0KCJvcGVuIikpfSxmPSgpPT57cyYmJGkoZS5iZWZvcmVDbG9zZSx7ZG9uZSgpe3M9ITEsdCgiY2xvc2UiKSx0KCJ1cGRhdGU6c2hvdyIsITEpfX0pfSxoPU49Pnt0KCJjbGlja092ZXJsYXkiLE4pLGUuY2xvc2VPbkNsaWNrT3ZlcmxheSYmZigpfSx2PSgpPT57aWYoZS5vdmVybGF5KXtjb25zdCBOPUZlKHtzaG93OmUuc2hvdyxjbGFzczplLm92ZXJsYXlDbGFzcyx6SW5kZXg6by52YWx1ZSxkdXJhdGlvbjplLmR1cmF0aW9uLGN1c3RvbVN0eWxlOmUub3ZlcmxheVN0eWxlLHJvbGU6ZS5jbG9zZU9uQ2xpY2tPdmVybGF5PyJidXR0b24iOnZvaWQgMCx0YWJpbmRleDplLmNsb3NlT25DbGlja092ZXJsYXk/MDp2b2lkIDB9LGUub3ZlcmxheVByb3BzKTtyZXR1cm4gZyh1aCxzdChOLHNpKCkse29uQ2xpY2s6aH0pLHtkZWZhdWx0OnJbIm92ZXJsYXktY29udGVudCJdfSl9fSxwPU49Pnt0KCJjbGlja0Nsb3NlSWNvbiIsTiksZigpfSxiPSgpPT57aWYoZS5jbG9zZWFibGUpcmV0dXJuIGcobG4se3JvbGU6ImJ1dHRvbiIsdGFiaW5kZXg6MCxuYW1lOmUuY2xvc2VJY29uLGNsYXNzOltWbygiY2xvc2UtaWNvbiIsZS5jbG9zZUljb25Qb3NpdGlvbiksQWRdLGNsYXNzUHJlZml4OmUuaWNvblByZWZpeCxvbkNsaWNrOnB9LG51bGwpfTtsZXQgeTtjb25zdCBTPSgpPT57eSYmY2xlYXJUaW1lb3V0KHkpLHk9c2V0VGltZW91dCgoKT0+e3QoIm9wZW5lZCIpfSl9LEM9KCk9PnQoImNsb3NlZCIpLEY9Tj0+dCgia2V5ZG93biIsTiksUj1hKCgpPT57dmFyIE47Y29uc3R7ZGVzdHJveU9uQ2xvc2U6Vyxyb3VuZDpYLHBvc2l0aW9uOkwsc2FmZUFyZWFJbnNldFRvcDpWLHNhZmVBcmVhSW5zZXRCb3R0b206ZWUsc2hvdzpCfT1lO2lmKCEoIUImJlcpKXJldHVybiBFaShnKCJkaXYiLHN0KHtyZWY6bCxzdHlsZTp1LnZhbHVlLHJvbGU6ImRpYWxvZyIsdGFiaW5kZXg6MCxjbGFzczpbVm8oe3JvdW5kOlgsW0xdOkx9KSx7InZhbi1zYWZlLWFyZWEtdG9wIjpWLCJ2YW4tc2FmZS1hcmVhLWJvdHRvbSI6ZWV9XSxvbktleWRvd246Rn0sbixzaSgpKSxbKE49ci5kZWZhdWx0KT09bnVsbD92b2lkIDA6Ti5jYWxsKHIpLGIoKV0pLFtbUGksQl1dKX0pLEQ9KCk9Pntjb25zdHtwb3NpdGlvbjpOLHRyYW5zaXRpb246Vyx0cmFuc2l0aW9uQXBwZWFyOlh9PWUsTD1OPT09ImNlbnRlciI/InZhbi1mYWRlIjpgdmFuLXBvcHVwLXNsaWRlLSR7Tn1gO3JldHVybiBnKHZhLHtuYW1lOld8fEwsYXBwZWFyOlgsb25BZnRlckVudGVyOlMsb25BZnRlckxlYXZlOkN9LHtkZWZhdWx0OlJ9KX07cmV0dXJuIHBlKCgpPT5lLnNob3csTj0+e04mJiFzJiYoYygpLG4udGFiaW5kZXg9PT0wJiZJZSgoKT0+e3ZhciBXOyhXPWwudmFsdWUpPT1udWxsfHxXLmZvY3VzKCl9KSksIU4mJnMmJihzPSExLHQoImNsb3NlIikpfSksVHQoe3BvcHVwUmVmOmx9KSxpaChsLCgpPT5lLnNob3cmJmUubG9ja1Njcm9sbCksdW4oInBvcHN0YXRlIiwoKT0+e2UuY2xvc2VPblBvcHN0YXRlJiYoZigpLGk9ITEpfSksaHQoKCk9PntlLnNob3cmJmMoKX0pLGxyKCgpPT57aSYmKHQoInVwZGF0ZTpzaG93IiwhMCksaT0hMSl9KSxFbigoKT0+e2Uuc2hvdyYmZS50ZWxlcG9ydCYmKGYoKSxpPSEwKX0pLHhuKEZhLCgpPT5lLnNob3cpLCgpPT5lLnRlbGVwb3J0P2coVWwse3RvOmUudGVsZXBvcnR9LHtkZWZhdWx0OigpPT5bdigpLEQoKV19KTpnKEhlLG51bGwsW3YoKSxEKCldKX19KTtjb25zdCBWcj1PZShoaCk7ZnVuY3Rpb24gZ2goZSx0LG4pe2xldCByLHM9MDtjb25zdCBpPWUuc2Nyb2xsTGVmdCxvPW49PT0wPzE6TWF0aC5yb3VuZChuKjFlMy8xNik7bGV0IGw9aTtmdW5jdGlvbiBhKCl7Q2Eocil9ZnVuY3Rpb24gdSgpe2wrPSh0LWkpL28sZS5zY3JvbGxMZWZ0PWwsKytzPG8mJihyPXJyKHUpKX1yZXR1cm4gdSgpLGF9ZnVuY3Rpb24gbWgoZSx0LG4scil7bGV0IHMsaT1EaShlKTtjb25zdCBvPWk8dCxsPW49PT0wPzE6TWF0aC5yb3VuZChuKjFlMy8xNiksYT0odC1pKS9sO2Z1bmN0aW9uIHUoKXtDYShzKX1mdW5jdGlvbiBjKCl7aSs9YSwobyYmaT50fHwhbyYmaTx0KSYmKGk9dCksbmkoZSxpKSxvJiZpPHR8fCFvJiZpPnQ/cz1ycihjKTpyJiYocz1ycihyKSl9cmV0dXJuIGMoKSx1fWxldCBwaD0wO2Z1bmN0aW9uIGhzKCl7Y29uc3QgZT1HdCgpLHtuYW1lOnQ9InVua25vd24ifT1lPy50eXBlfHx7fTtyZXR1cm5gJHt0fS0keysrcGh9YH1mdW5jdGlvbiB5aCgpe2NvbnN0IGU9UShbXSksdD1bXTtyZXR1cm4gWWwoKCk9PntlLnZhbHVlPVtdfSksW2Uscj0+KHRbcl18fCh0W3JdPXM9PntlLnZhbHVlW3JdPXN9KSx0W3JdKV19ZnVuY3Rpb24gSGEoZSx0KXtpZighdXJ8fCF3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpcmV0dXJuO2NvbnN0IG49bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGk9Pnt0KGlbMF0uaW50ZXJzZWN0aW9uUmF0aW8+MCl9LHtyb290OmRvY3VtZW50LmJvZHl9KSxyPSgpPT57ZS52YWx1ZSYmbi5vYnNlcnZlKGUudmFsdWUpfSxzPSgpPT57ZS52YWx1ZSYmbi51bm9ic2VydmUoZS52YWx1ZSl9O0VuKHMpLGFyKHMpLGFzKHIpfWNvbnN0W2JoLHZoXT1FZSgic3RpY2t5IiksX2g9e3pJbmRleDpmZSxwb3NpdGlvbjpfZSgidG9wIiksY29udGFpbmVyOk9iamVjdCxvZmZzZXRUb3A6dXQoMCksb2Zmc2V0Qm90dG9tOnV0KDApfTt2YXIgd2g9VGUoe25hbWU6YmgscHJvcHM6X2gsZW1pdHM6WyJzY3JvbGwiLCJjaGFuZ2UiXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2NvbnN0IHI9USgpLHM9RmkociksaT1ydCh7Zml4ZWQ6ITEsd2lkdGg6MCxoZWlnaHQ6MCx0cmFuc2Zvcm06MH0pLG89USghMSksbD1uZSgoKT0+UmEoZS5wb3NpdGlvbj09PSJ0b3AiP2Uub2Zmc2V0VG9wOmUub2Zmc2V0Qm90dG9tKSksYT1uZSgoKT0+e2lmKG8udmFsdWUpcmV0dXJuO2NvbnN0e2ZpeGVkOmgsaGVpZ2h0OnYsd2lkdGg6cH09aTtpZihoKXJldHVybnt3aWR0aDpgJHtwfXB4YCxoZWlnaHQ6YCR7dn1weGB9fSksdT1uZSgoKT0+e2lmKCFpLmZpeGVkfHxvLnZhbHVlKXJldHVybjtjb25zdCBoPUZlKE9hKGUuekluZGV4KSx7d2lkdGg6YCR7aS53aWR0aH1weGAsaGVpZ2h0OmAke2kuaGVpZ2h0fXB4YCxbZS5wb3NpdGlvbl06YCR7bC52YWx1ZX1weGB9KTtyZXR1cm4gaS50cmFuc2Zvcm0mJihoLnRyYW5zZm9ybT1gdHJhbnNsYXRlM2QoMCwgJHtpLnRyYW5zZm9ybX1weCwgMClgKSxofSksYz1oPT50KCJzY3JvbGwiLHtzY3JvbGxUb3A6aCxpc0ZpeGVkOmkuZml4ZWR9KSxmPSgpPT57aWYoIXIudmFsdWV8fFNuKHIpKXJldHVybjtjb25zdHtjb250YWluZXI6aCxwb3NpdGlvbjp2fT1lLHA9Q3QociksYj1EaSh3aW5kb3cpO2lmKGkud2lkdGg9cC53aWR0aCxpLmhlaWdodD1wLmhlaWdodCx2PT09InRvcCIpaWYoaCl7Y29uc3QgeT1DdChoKSxTPXkuYm90dG9tLWwudmFsdWUtaS5oZWlnaHQ7aS5maXhlZD1sLnZhbHVlPnAudG9wJiZ5LmJvdHRvbT4wLGkudHJhbnNmb3JtPVM8MD9TOjB9ZWxzZSBpLmZpeGVkPWwudmFsdWU+cC50b3A7ZWxzZXtjb25zdHtjbGllbnRIZWlnaHQ6eX09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKGgpe2NvbnN0IFM9Q3QoaCksQz15LVMudG9wLWwudmFsdWUtaS5oZWlnaHQ7aS5maXhlZD15LWwudmFsdWU8cC5ib3R0b20mJnk+Uy50b3AsaS50cmFuc2Zvcm09QzwwPy1DOjB9ZWxzZSBpLmZpeGVkPXktbC52YWx1ZTxwLmJvdHRvbX1jKGIpfTtyZXR1cm4gcGUoKCk9PmkuZml4ZWQsaD0+dCgiY2hhbmdlIixoKSksdW4oInNjcm9sbCIsZix7dGFyZ2V0OnMscGFzc2l2ZTohMH0pLEhhKHIsZikscGUoW2RyLGNzXSwoKT0+eyFyLnZhbHVlfHxTbihyKXx8IWkuZml4ZWR8fChvLnZhbHVlPSEwLEllKCgpPT57Y29uc3QgaD1DdChyKTtpLndpZHRoPWgud2lkdGgsaS5oZWlnaHQ9aC5oZWlnaHQsby52YWx1ZT0hMX0pKX0pLCgpPT57dmFyIGg7cmV0dXJuIGcoImRpdiIse3JlZjpyLHN0eWxlOmEudmFsdWV9LFtnKCJkaXYiLHtjbGFzczp2aCh7Zml4ZWQ6aS5maXhlZCYmIW8udmFsdWV9KSxzdHlsZTp1LnZhbHVlfSxbKGg9bi5kZWZhdWx0KT09bnVsbD92b2lkIDA6aC5jYWxsKG4pXSldKX19fSk7Y29uc3QgeGg9T2Uod2gpLFtVYSx4cl09RWUoInN3aXBlIiksU2g9e2xvb3A6d2Usd2lkdGg6ZmUsaGVpZ2h0OmZlLHZlcnRpY2FsOkJvb2xlYW4sYXV0b3BsYXk6dXQoMCksZHVyYXRpb246dXQoNTAwKSx0b3VjaGFibGU6d2UsbGF6eVJlbmRlcjpCb29sZWFuLGluaXRpYWxTd2lwZTp1dCgwKSxpbmRpY2F0b3JDb2xvcjpTdHJpbmcsc2hvd0luZGljYXRvcnM6d2Usc3RvcFByb3BhZ2F0aW9uOndlfSxqYT1TeW1ib2woVWEpO3ZhciBDaD1UZSh7bmFtZTpVYSxwcm9wczpTaCxlbWl0czpbImNoYW5nZSIsImRyYWdTdGFydCIsImRyYWdFbmQiXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2NvbnN0IHI9USgpLHM9USgpLGk9cnQoe3JlY3Q6bnVsbCx3aWR0aDowLGhlaWdodDowLG9mZnNldDowLGFjdGl2ZTowLHN3aXBpbmc6ITF9KTtsZXQgbz0hMTtjb25zdCBsPUxhKCkse2NoaWxkcmVuOmEsbGlua0NoaWxkcmVuOnV9PUJpKGphKSxjPW5lKCgpPT5hLmxlbmd0aCksZj1uZSgoKT0+aVtlLnZlcnRpY2FsPyJoZWlnaHQiOiJ3aWR0aCJdKSxoPW5lKCgpPT5lLnZlcnRpY2FsP2wuZGVsdGFZLnZhbHVlOmwuZGVsdGFYLnZhbHVlKSx2PW5lKCgpPT5pLnJlY3Q/KGUudmVydGljYWw/aS5yZWN0LmhlaWdodDppLnJlY3Qud2lkdGgpLWYudmFsdWUqYy52YWx1ZTowKSxwPW5lKCgpPT5mLnZhbHVlP01hdGguY2VpbChNYXRoLmFicyh2LnZhbHVlKS9mLnZhbHVlKTpjLnZhbHVlKSxiPW5lKCgpPT5jLnZhbHVlKmYudmFsdWUpLHk9bmUoKCk9PihpLmFjdGl2ZStjLnZhbHVlKSVjLnZhbHVlKSxTPW5lKCgpPT57Y29uc3QgSD1lLnZlcnRpY2FsPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiO3JldHVybiBsLmRpcmVjdGlvbi52YWx1ZT09PUh9KSxDPW5lKCgpPT57Y29uc3QgSD17dHJhbnNpdGlvbkR1cmF0aW9uOmAke2kuc3dpcGluZz8wOmUuZHVyYXRpb259bXNgLHRyYW5zZm9ybTpgdHJhbnNsYXRlJHtlLnZlcnRpY2FsPyJZIjoiWCJ9KCR7K2kub2Zmc2V0LnRvRml4ZWQoMil9cHgpYH07aWYoZi52YWx1ZSl7Y29uc3QgcmU9ZS52ZXJ0aWNhbD8iaGVpZ2h0Ijoid2lkdGgiLGRlPWUudmVydGljYWw/IndpZHRoIjoiaGVpZ2h0IjtIW3JlXT1gJHtiLnZhbHVlfXB4YCxIW2RlXT1lW2RlXT9gJHtlW2RlXX1weGA6IiJ9cmV0dXJuIEh9KSxGPUg9Pntjb25zdHthY3RpdmU6cmV9PWk7cmV0dXJuIEg/ZS5sb29wP1JyKHJlK0gsLTEsYy52YWx1ZSk6UnIocmUrSCwwLHAudmFsdWUpOnJlfSxSPShILHJlPTApPT57bGV0IGRlPUgqZi52YWx1ZTtlLmxvb3B8fChkZT1NYXRoLm1pbihkZSwtdi52YWx1ZSkpO2xldCBQZT1yZS1kZTtyZXR1cm4gZS5sb29wfHwoUGU9UnIoUGUsdi52YWx1ZSwwKSksUGV9LEQ9KHtwYWNlOkg9MCxvZmZzZXQ6cmU9MCxlbWl0Q2hhbmdlOmRlfSk9PntpZihjLnZhbHVlPD0xKXJldHVybjtjb25zdHthY3RpdmU6UGV9PWksTT1GKEgpLEs9UihNLHJlKTtpZihlLmxvb3Ape2lmKGFbMF0mJkshPT12LnZhbHVlKXtjb25zdCBfPUs8di52YWx1ZTthWzBdLnNldE9mZnNldChfP2IudmFsdWU6MCl9aWYoYVtjLnZhbHVlLTFdJiZLIT09MCl7Y29uc3QgXz1LPjA7YVtjLnZhbHVlLTFdLnNldE9mZnNldChfPy1iLnZhbHVlOjApfX1pLmFjdGl2ZT1NLGkub2Zmc2V0PUssZGUmJk0hPT1QZSYmdCgiY2hhbmdlIix5LnZhbHVlKX0sTj0oKT0+e2kuc3dpcGluZz0hMCxpLmFjdGl2ZTw9LTE/RCh7cGFjZTpjLnZhbHVlfSk6aS5hY3RpdmU+PWMudmFsdWUmJkQoe3BhY2U6LWMudmFsdWV9KX0sVz0oKT0+e04oKSxsLnJlc2V0KCksa24oKCk9PntpLnN3aXBpbmc9ITEsRCh7cGFjZTotMSxlbWl0Q2hhbmdlOiEwfSl9KX0sWD0oKT0+e04oKSxsLnJlc2V0KCksa24oKCk9PntpLnN3aXBpbmc9ITEsRCh7cGFjZToxLGVtaXRDaGFuZ2U6ITB9KX0pfTtsZXQgTDtjb25zdCBWPSgpPT5jbGVhclRpbWVvdXQoTCksZWU9KCk9PntWKCksK2UuYXV0b3BsYXk+MCYmYy52YWx1ZT4xJiYoTD1zZXRUaW1lb3V0KCgpPT57WCgpLGVlKCl9LCtlLmF1dG9wbGF5KSl9LEI9KEg9K2UuaW5pdGlhbFN3aXBlKT0+e2lmKCFyLnZhbHVlKXJldHVybjtjb25zdCByZT0oKT0+e3ZhciBkZSxQZTtpZighU24ocikpe2NvbnN0IE09e3dpZHRoOnIudmFsdWUub2Zmc2V0V2lkdGgsaGVpZ2h0OnIudmFsdWUub2Zmc2V0SGVpZ2h0fTtpLnJlY3Q9TSxpLndpZHRoPSsoKGRlPWUud2lkdGgpIT1udWxsP2RlOk0ud2lkdGgpLGkuaGVpZ2h0PSsoKFBlPWUuaGVpZ2h0KSE9bnVsbD9QZTpNLmhlaWdodCl9Yy52YWx1ZSYmKEg9TWF0aC5taW4oYy52YWx1ZS0xLEgpLEg9PT0tMSYmKEg9Yy52YWx1ZS0xKSksaS5hY3RpdmU9SCxpLnN3aXBpbmc9ITAsaS5vZmZzZXQ9UihIKSxhLmZvckVhY2goTT0+e00uc2V0T2Zmc2V0KDApfSksZWUoKX07U24ocik/SWUoKS50aGVuKHJlKTpyZSgpfSxzZT0oKT0+QihpLmFjdGl2ZSk7bGV0IGJlO2NvbnN0ICRlPUg9PnshZS50b3VjaGFibGV8fEgudG91Y2hlcy5sZW5ndGg+MXx8KGwuc3RhcnQoSCksbz0hMSxiZT1EYXRlLm5vdygpLFYoKSxOKCkpfSx2ZT1IPT57ZS50b3VjaGFibGUmJmkuc3dpcGluZyYmKGwubW92ZShIKSxTLnZhbHVlJiYoIWUubG9vcCYmKGkuYWN0aXZlPT09MCYmaC52YWx1ZT4wfHxpLmFjdGl2ZT09PWMudmFsdWUtMSYmaC52YWx1ZTwwKXx8KG9uKEgsZS5zdG9wUHJvcGFnYXRpb24pLEQoe29mZnNldDpoLnZhbHVlfSksb3x8KHQoImRyYWdTdGFydCIse2luZGV4OnkudmFsdWV9KSxvPSEwKSkpKX0sYWU9KCk9PntpZighZS50b3VjaGFibGV8fCFpLnN3aXBpbmcpcmV0dXJuO2NvbnN0IEg9RGF0ZS5ub3coKS1iZSxyZT1oLnZhbHVlL0g7aWYoKE1hdGguYWJzKHJlKT4uMjV8fE1hdGguYWJzKGgudmFsdWUpPmYudmFsdWUvMikmJlMudmFsdWUpe2NvbnN0IFBlPWUudmVydGljYWw/bC5vZmZzZXRZLnZhbHVlOmwub2Zmc2V0WC52YWx1ZTtsZXQgTT0wO2UubG9vcD9NPVBlPjA/aC52YWx1ZT4wPy0xOjE6MDpNPS1NYXRoW2gudmFsdWU+MD8iY2VpbCI6ImZsb29yIl0oaC52YWx1ZS9mLnZhbHVlKSxEKHtwYWNlOk0sZW1pdENoYW5nZTohMH0pfWVsc2UgaC52YWx1ZSYmRCh7cGFjZTowfSk7bz0hMSxpLnN3aXBpbmc9ITEsdCgiZHJhZ0VuZCIse2luZGV4OnkudmFsdWV9KSxlZSgpfSxvZT0oSCxyZT17fSk9PntOKCksbC5yZXNldCgpLGtuKCgpPT57bGV0IGRlO2UubG9vcCYmSD09PWMudmFsdWU/ZGU9aS5hY3RpdmU9PT0wPzA6SDpkZT1IJWMudmFsdWUscmUuaW1tZWRpYXRlP2tuKCgpPT57aS5zd2lwaW5nPSExfSk6aS5zd2lwaW5nPSExLEQoe3BhY2U6ZGUtaS5hY3RpdmUsZW1pdENoYW5nZTohMH0pfSl9LGV0PShILHJlKT0+e2NvbnN0IGRlPXJlPT09eS52YWx1ZSxQZT1kZT97YmFja2dyb3VuZENvbG9yOmUuaW5kaWNhdG9yQ29sb3J9OnZvaWQgMDtyZXR1cm4gZygiaSIse3N0eWxlOlBlLGNsYXNzOnhyKCJpbmRpY2F0b3IiLHthY3RpdmU6ZGV9KX0sbnVsbCl9LG10PSgpPT57aWYobi5pbmRpY2F0b3IpcmV0dXJuIG4uaW5kaWNhdG9yKHthY3RpdmU6eS52YWx1ZSx0b3RhbDpjLnZhbHVlfSk7aWYoZS5zaG93SW5kaWNhdG9ycyYmYy52YWx1ZT4xKXJldHVybiBnKCJkaXYiLHtjbGFzczp4cigiaW5kaWNhdG9ycyIse3ZlcnRpY2FsOmUudmVydGljYWx9KX0sW0FycmF5KGMudmFsdWUpLmZpbGwoIiIpLm1hcChldCldKX07cmV0dXJuIFR0KHtwcmV2OlcsbmV4dDpYLHN0YXRlOmkscmVzaXplOnNlLHN3aXBlVG86b2V9KSx1KHtzaXplOmYscHJvcHM6ZSxjb3VudDpjLGFjdGl2ZUluZGljYXRvcjp5fSkscGUoKCk9PmUuaW5pdGlhbFN3aXBlLEg9PkIoK0gpKSxwZShjLCgpPT5CKGkuYWN0aXZlKSkscGUoKCk9PmUuYXV0b3BsYXksZWUpLHBlKFtkcixjcywoKT0+ZS53aWR0aCwoKT0+ZS5oZWlnaHRdLHNlKSxwZShvZCgpLEg9PntIPT09InZpc2libGUiP2VlKCk6VigpfSksaHQoQiksbHIoKCk9PkIoaS5hY3RpdmUpKSxMaSgoKT0+QihpLmFjdGl2ZSkpLEVuKFYpLGFyKFYpLHVuKCJ0b3VjaG1vdmUiLHZlLHt0YXJnZXQ6c30pLCgpPT57dmFyIEg7cmV0dXJuIGcoImRpdiIse3JlZjpyLGNsYXNzOnhyKCl9LFtnKCJkaXYiLHtyZWY6cyxzdHlsZTpDLnZhbHVlLGNsYXNzOnhyKCJ0cmFjayIse3ZlcnRpY2FsOmUudmVydGljYWx9KSxvblRvdWNoc3RhcnRQYXNzaXZlOiRlLG9uVG91Y2hlbmQ6YWUsb25Ub3VjaGNhbmNlbDphZX0sWyhIPW4uZGVmYXVsdCk9PW51bGw/dm9pZCAwOkguY2FsbChuKV0pLG10KCldKX19fSk7Y29uc3QgRWg9T2UoQ2gpLFtUaCx6b109RWUoInRhYnMiKTt2YXIgQWg9VGUoe25hbWU6VGgscHJvcHM6e2NvdW50OkRzKE51bWJlciksaW5pdGVkOkJvb2xlYW4sYW5pbWF0ZWQ6Qm9vbGVhbixkdXJhdGlvbjpEcyhmZSksc3dpcGVhYmxlOkJvb2xlYW4sbGF6eVJlbmRlcjpCb29sZWFuLGN1cnJlbnRJbmRleDpEcyhOdW1iZXIpfSxlbWl0czpbImNoYW5nZSJdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7Y29uc3Qgcj1RKCkscz1sPT50KCJjaGFuZ2UiLGwpLGk9KCk9Pnt2YXIgbDtjb25zdCBhPShsPW4uZGVmYXVsdCk9PW51bGw/dm9pZCAwOmwuY2FsbChuKTtyZXR1cm4gZS5hbmltYXRlZHx8ZS5zd2lwZWFibGU/ZyhFaCx7cmVmOnIsbG9vcDohMSxjbGFzczp6bygidHJhY2siKSxkdXJhdGlvbjorZS5kdXJhdGlvbioxZTMsdG91Y2hhYmxlOmUuc3dpcGVhYmxlLGxhenlSZW5kZXI6ZS5sYXp5UmVuZGVyLHNob3dJbmRpY2F0b3JzOiExLG9uQ2hhbmdlOnN9LHtkZWZhdWx0OigpPT5bYV19KTphfSxvPWw9Pntjb25zdCBhPXIudmFsdWU7YSYmYS5zdGF0ZS5hY3RpdmUhPT1sJiZhLnN3aXBlVG8obCx7aW1tZWRpYXRlOiFlLmluaXRlZH0pfTtyZXR1cm4gcGUoKCk9PmUuY3VycmVudEluZGV4LG8pLGh0KCgpPT57byhlLmN1cnJlbnRJbmRleCl9KSxUdCh7c3dpcGVSZWY6cn0pLCgpPT5nKCJkaXYiLHtjbGFzczp6bygiY29udGVudCIse2FuaW1hdGVkOmUuYW5pbWF0ZWR8fGUuc3dpcGVhYmxlfSl9LFtpKCldKX19KTtjb25zdFtWYSxTcl09RWUoInRhYnMiKSxPaD17dHlwZTpfZSgibGluZSIpLGNvbG9yOlN0cmluZyxib3JkZXI6Qm9vbGVhbixzdGlja3k6Qm9vbGVhbixzaHJpbms6Qm9vbGVhbixhY3RpdmU6dXQoMCksZHVyYXRpb246dXQoLjMpLGFuaW1hdGVkOkJvb2xlYW4sZWxsaXBzaXM6d2Usc3dpcGVhYmxlOkJvb2xlYW4sc2Nyb2xsc3B5OkJvb2xlYW4sb2Zmc2V0VG9wOnV0KDApLGJhY2tncm91bmQ6U3RyaW5nLGxhenlSZW5kZXI6d2Usc2hvd0hlYWRlcjp3ZSxsaW5lV2lkdGg6ZmUsbGluZUhlaWdodDpmZSxiZWZvcmVDaGFuZ2U6RnVuY3Rpb24sc3dpcGVUaHJlc2hvbGQ6dXQoNSksdGl0bGVBY3RpdmVDb2xvcjpTdHJpbmcsdGl0bGVJbmFjdGl2ZUNvbG9yOlN0cmluZ30semE9U3ltYm9sKFZhKTt2YXIgUmg9VGUoe25hbWU6VmEscHJvcHM6T2gsZW1pdHM6WyJjaGFuZ2UiLCJzY3JvbGwiLCJyZW5kZXJlZCIsImNsaWNrVGFiIiwidXBkYXRlOmFjdGl2ZSJdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7bGV0IHIscyxpLG8sbDtjb25zdCBhPVEoKSx1PVEoKSxjPVEoKSxmPVEoKSxoPWhzKCksdj1GaShhKSxbcCxiXT15aCgpLHtjaGlsZHJlbjp5LGxpbmtDaGlsZHJlbjpTfT1CaSh6YSksQz1ydCh7aW5pdGVkOiExLHBvc2l0aW9uOiIiLGxpbmVTdHlsZTp7fSxjdXJyZW50SW5kZXg6LTF9KSxGPW5lKCgpPT55Lmxlbmd0aD4rZS5zd2lwZVRocmVzaG9sZHx8IWUuZWxsaXBzaXN8fGUuc2hyaW5rKSxSPW5lKCgpPT4oe2JvcmRlckNvbG9yOmUuY29sb3IsYmFja2dyb3VuZDplLmJhY2tncm91bmR9KSksRD0oTSxLKT0+e3ZhciBfO3JldHVybihfPU0ubmFtZSkhPW51bGw/XzpLfSxOPW5lKCgpPT57Y29uc3QgTT15W0MuY3VycmVudEluZGV4XTtpZihNKXJldHVybiBEKE0sQy5jdXJyZW50SW5kZXgpfSksVz1uZSgoKT0+UmEoZS5vZmZzZXRUb3ApKSxYPW5lKCgpPT5lLnN0aWNreT9XLnZhbHVlK3I6MCksTD1NPT57Y29uc3QgSz11LnZhbHVlLF89cC52YWx1ZTtpZighRi52YWx1ZXx8IUt8fCFffHwhX1tDLmN1cnJlbnRJbmRleF0pcmV0dXJuO2NvbnN0IFU9X1tDLmN1cnJlbnRJbmRleF0uJGVsLHo9VS5vZmZzZXRMZWZ0LShLLm9mZnNldFdpZHRoLVUub2Zmc2V0V2lkdGgpLzI7byYmbygpLG89Z2goSyx6LE0/MDorZS5kdXJhdGlvbil9LFY9KCk9Pntjb25zdCBNPUMuaW5pdGVkO0llKCgpPT57Y29uc3QgSz1wLnZhbHVlO2lmKCFLfHwhS1tDLmN1cnJlbnRJbmRleF18fGUudHlwZSE9PSJsaW5lInx8U24oYS52YWx1ZSkpcmV0dXJuO2NvbnN0IF89S1tDLmN1cnJlbnRJbmRleF0uJGVsLHtsaW5lV2lkdGg6VSxsaW5lSGVpZ2h0Onp9PWUsdGU9Xy5vZmZzZXRMZWZ0K18ub2Zmc2V0V2lkdGgvMix5ZT17d2lkdGg6VWUoVSksYmFja2dyb3VuZENvbG9yOmUuY29sb3IsdHJhbnNmb3JtOmB0cmFuc2xhdGVYKCR7dGV9cHgpIHRyYW5zbGF0ZVgoLTUwJSlgfTtpZihNJiYoeWUudHJhbnNpdGlvbkR1cmF0aW9uPWAke2UuZHVyYXRpb259c2ApLFJlKHopKXtjb25zdCBkPVVlKHopO3llLmhlaWdodD1kLHllLmJvcmRlclJhZGl1cz1kfUMubGluZVN0eWxlPXllfSl9LGVlPU09Pntjb25zdCBLPU08Qy5jdXJyZW50SW5kZXg/LTE6MTtmb3IoO00+PTAmJk08eS5sZW5ndGg7KXtpZigheVtNXS5kaXNhYmxlZClyZXR1cm4gTTtNKz1LfX0sQj0oTSxLKT0+e2NvbnN0IF89ZWUoTSk7aWYoIVJlKF8pKXJldHVybjtjb25zdCBVPXlbX10sej1EKFUsXyksdGU9Qy5jdXJyZW50SW5kZXghPT1udWxsO0MuY3VycmVudEluZGV4IT09XyYmKEMuY3VycmVudEluZGV4PV8sS3x8TCgpLFYoKSkseiE9PWUuYWN0aXZlJiYodCgidXBkYXRlOmFjdGl2ZSIseiksdGUmJnQoImNoYW5nZSIseixVLnRpdGxlKSksaSYmIWUuc2Nyb2xsc3B5JiZraShNYXRoLmNlaWwoRm8oYS52YWx1ZSktVy52YWx1ZSkpfSxzZT0oTSxLKT0+e2NvbnN0IF89eS5maW5kSW5kZXgoKFUseik9PkQoVSx6KT09PU0pO0IoXz09PS0xPzA6XyxLKX0sYmU9KE09ITEpPT57aWYoZS5zY3JvbGxzcHkpe2NvbnN0IEs9eVtDLmN1cnJlbnRJbmRleF0uJGVsO2lmKEsmJnYudmFsdWUpe2NvbnN0IF89Rm8oSyx2LnZhbHVlKS1YLnZhbHVlO3M9ITAsbCYmbCgpLGw9bWgodi52YWx1ZSxfLE0/MDorZS5kdXJhdGlvbiwoKT0+e3M9ITF9KX19fSwkZT0oTSxLLF8pPT57Y29uc3R7dGl0bGU6VSxkaXNhYmxlZDp6fT15W0tdLHRlPUQoeVtLXSxLKTt6fHwoJGkoZS5iZWZvcmVDaGFuZ2Use2FyZ3M6W3RlXSxkb25lOigpPT57QihLKSxiZSgpfX0pLGthKE0pKSx0KCJjbGlja1RhYiIse25hbWU6dGUsdGl0bGU6VSxldmVudDpfLGRpc2FibGVkOnp9KX0sdmU9TT0+e2k9TS5pc0ZpeGVkLHQoInNjcm9sbCIsTSl9LGFlPU09PntJZSgoKT0+e3NlKE0pLGJlKCEwKX0pfSxvZT0oKT0+e2ZvcihsZXQgTT0wO008eS5sZW5ndGg7TSsrKXtjb25zdHt0b3A6S309Q3QoeVtNXS4kZWwpO2lmKEs+WC52YWx1ZSlyZXR1cm4gTT09PTA/MDpNLTF9cmV0dXJuIHkubGVuZ3RoLTF9LGV0PSgpPT57aWYoZS5zY3JvbGxzcHkmJiFzKXtjb25zdCBNPW9lKCk7QihNKX19LG10PSgpPT57aWYoZS50eXBlPT09ImxpbmUiJiZ5Lmxlbmd0aClyZXR1cm4gZygiZGl2Iix7Y2xhc3M6U3IoImxpbmUiKSxzdHlsZTpDLmxpbmVTdHlsZX0sbnVsbCl9LEg9KCk9Pnt2YXIgTSxLLF87Y29uc3R7dHlwZTpVLGJvcmRlcjp6LHN0aWNreTp0ZX09ZSx5ZT1bZygiZGl2Iix7cmVmOnRlP3ZvaWQgMDpjLGNsYXNzOltTcigid3JhcCIpLHtbQmFdOlU9PT0ibGluZSImJnp9XX0sW2coImRpdiIse3JlZjp1LHJvbGU6InRhYmxpc3QiLGNsYXNzOlNyKCJuYXYiLFtVLHtzaHJpbms6ZS5zaHJpbmssY29tcGxldGU6Ri52YWx1ZX1dKSxzdHlsZTpSLnZhbHVlLCJhcmlhLW9yaWVudGF0aW9uIjoiaG9yaXpvbnRhbCJ9LFsoTT1uWyJuYXYtbGVmdCJdKT09bnVsbD92b2lkIDA6TS5jYWxsKG4pLHkubWFwKGQ9PmQucmVuZGVyVGl0bGUoJGUpKSxtdCgpLChLPW5bIm5hdi1yaWdodCJdKT09bnVsbD92b2lkIDA6Sy5jYWxsKG4pXSldKSwoXz1uWyJuYXYtYm90dG9tIl0pPT1udWxsP3ZvaWQgMDpfLmNhbGwobildO3JldHVybiB0ZT9nKCJkaXYiLHtyZWY6Y30sW3llXSk6eWV9LHJlPSgpPT57VigpLEllKCgpPT57dmFyIE0sSztMKCEwKSwoSz0oTT1mLnZhbHVlKT09bnVsbD92b2lkIDA6TS5zd2lwZVJlZi52YWx1ZSk9PW51bGx8fEsucmVzaXplKCl9KX07cGUoKCk9PltlLmNvbG9yLGUuZHVyYXRpb24sZS5saW5lV2lkdGgsZS5saW5lSGVpZ2h0XSxWKSxwZShkcixyZSkscGUoKCk9PmUuYWN0aXZlLE09PntNIT09Ti52YWx1ZSYmc2UoTSl9KSxwZSgoKT0+eS5sZW5ndGgsKCk9PntDLmluaXRlZCYmKHNlKGUuYWN0aXZlKSxWKCksSWUoKCk9PntMKCEwKX0pKX0pO2NvbnN0IGRlPSgpPT57c2UoZS5hY3RpdmUsITApLEllKCgpPT57Qy5pbml0ZWQ9ITAsYy52YWx1ZSYmKHI9Q3QoYy52YWx1ZSkuaGVpZ2h0KSxMKCEwKX0pfSxQZT0oTSxLKT0+dCgicmVuZGVyZWQiLE0sSyk7cmV0dXJuIFR0KHtyZXNpemU6cmUsc2Nyb2xsVG86YWV9KSxscihWKSxMaShWKSxhcyhkZSksSGEoYSxWKSx1bigic2Nyb2xsIixldCx7dGFyZ2V0OnYscGFzc2l2ZTohMH0pLFMoe2lkOmgscHJvcHM6ZSxzZXRMaW5lOlYsc2Nyb2xsYWJsZTpGLG9uUmVuZGVyZWQ6UGUsY3VycmVudE5hbWU6TixzZXRUaXRsZVJlZnM6YixzY3JvbGxJbnRvVmlldzpMfSksKCk9PmcoImRpdiIse3JlZjphLGNsYXNzOlNyKFtlLnR5cGVdKX0sW2Uuc2hvd0hlYWRlcj9lLnN0aWNreT9nKHhoLHtjb250YWluZXI6YS52YWx1ZSxvZmZzZXRUb3A6Vy52YWx1ZSxvblNjcm9sbDp2ZX0se2RlZmF1bHQ6KCk9PltIKCldfSk6SCgpOm51bGwsZyhBaCx7cmVmOmYsY291bnQ6eS5sZW5ndGgsaW5pdGVkOkMuaW5pdGVkLGFuaW1hdGVkOmUuYW5pbWF0ZWQsZHVyYXRpb246ZS5kdXJhdGlvbixzd2lwZWFibGU6ZS5zd2lwZWFibGUsbGF6eVJlbmRlcjplLmxhenlSZW5kZXIsY3VycmVudEluZGV4OkMuY3VycmVudEluZGV4LG9uQ2hhbmdlOkJ9LHtkZWZhdWx0OigpPT57dmFyIE07cmV0dXJuWyhNPW4uZGVmYXVsdCk9PW51bGw/dm9pZCAwOk0uY2FsbChuKV19fSldKX19KTtjb25zdCBJaD1TeW1ib2woKSxxYT1TeW1ib2woKSxXYT0oKT0+V3QocWEsbnVsbCksUGg9ZT0+e2NvbnN0IHQ9V2EoKTt4bihJaCxlKSx4bihxYSxuZSgoKT0+KHQ9PW51bGx8fHQudmFsdWUpJiZlLnZhbHVlKSl9LFtCaCxxb109RWUoInRhYiIpLEZoPVRlKHtuYW1lOkJoLHByb3BzOntpZDpTdHJpbmcsZG90OkJvb2xlYW4sdHlwZTpTdHJpbmcsY29sb3I6U3RyaW5nLHRpdGxlOlN0cmluZyxiYWRnZTpmZSxzaHJpbms6Qm9vbGVhbixpc0FjdGl2ZTpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4sY29udHJvbHM6U3RyaW5nLHNjcm9sbGFibGU6Qm9vbGVhbixhY3RpdmVDb2xvcjpTdHJpbmcsaW5hY3RpdmVDb2xvcjpTdHJpbmcsc2hvd1plcm9CYWRnZTp3ZX0sc2V0dXAoZSx7c2xvdHM6dH0pe2NvbnN0IG49bmUoKCk9Pntjb25zdCBzPXt9LHt0eXBlOmksY29sb3I6byxkaXNhYmxlZDpsLGlzQWN0aXZlOmEsYWN0aXZlQ29sb3I6dSxpbmFjdGl2ZUNvbG9yOmN9PWU7byYmaT09PSJjYXJkIiYmKHMuYm9yZGVyQ29sb3I9byxsfHwoYT9zLmJhY2tncm91bmRDb2xvcj1vOnMuY29sb3I9bykpO2NvbnN0IGg9YT91OmM7cmV0dXJuIGgmJihzLmNvbG9yPWgpLHN9KSxyPSgpPT57Y29uc3Qgcz1nKCJzcGFuIix7Y2xhc3M6cW8oInRleHQiLHtlbGxpcHNpczohZS5zY3JvbGxhYmxlfSl9LFt0LnRpdGxlP3QudGl0bGUoKTplLnRpdGxlXSk7cmV0dXJuIGUuZG90fHxSZShlLmJhZGdlKSYmZS5iYWRnZSE9PSIiP2coJGEse2RvdDplLmRvdCxjb250ZW50OmUuYmFkZ2Usc2hvd1plcm86ZS5zaG93WmVyb0JhZGdlfSx7ZGVmYXVsdDooKT0+W3NdfSk6c307cmV0dXJuKCk9PmcoImRpdiIse2lkOmUuaWQscm9sZToidGFiIixjbGFzczpbcW8oW2UudHlwZSx7Z3JvdzplLnNjcm9sbGFibGUmJiFlLnNocmluayxzaHJpbms6ZS5zaHJpbmssYWN0aXZlOmUuaXNBY3RpdmUsZGlzYWJsZWQ6ZS5kaXNhYmxlZH1dKV0sc3R5bGU6bi52YWx1ZSx0YWJpbmRleDplLmRpc2FibGVkP3ZvaWQgMDplLmlzQWN0aXZlPzA6LTEsImFyaWEtc2VsZWN0ZWQiOmUuaXNBY3RpdmUsImFyaWEtZGlzYWJsZWQiOmUuZGlzYWJsZWR8fHZvaWQgMCwiYXJpYS1jb250cm9scyI6ZS5jb250cm9scywiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImF0dHJpYnV0ZSJ9LFtyKCldKX19KSxbRGgsTmhdPUVlKCJzd2lwZS1pdGVtIik7dmFyIGtoPVRlKHtuYW1lOkRoLHNldHVwKGUse3Nsb3RzOnR9KXtsZXQgbjtjb25zdCByPXJ0KHtvZmZzZXQ6MCxpbml0ZWQ6ITEsbW91bnRlZDohMX0pLHtwYXJlbnQ6cyxpbmRleDppfT1scyhqYSk7aWYoIXMpcmV0dXJuO2NvbnN0IG89bmUoKCk9Pntjb25zdCB1PXt9LHt2ZXJ0aWNhbDpjfT1zLnByb3BzO3JldHVybiBzLnNpemUudmFsdWUmJih1W2M/ImhlaWdodCI6IndpZHRoIl09YCR7cy5zaXplLnZhbHVlfXB4YCksci5vZmZzZXQmJih1LnRyYW5zZm9ybT1gdHJhbnNsYXRlJHtjPyJZIjoiWCJ9KCR7ci5vZmZzZXR9cHgpYCksdX0pLGw9bmUoKCk9Pntjb25zdHtsb29wOnUsbGF6eVJlbmRlcjpjfT1zLnByb3BzO2lmKCFjfHxuKXJldHVybiEwO2lmKCFyLm1vdW50ZWQpcmV0dXJuITE7Y29uc3QgZj1zLmFjdGl2ZUluZGljYXRvci52YWx1ZSxoPXMuY291bnQudmFsdWUtMSx2PWY9PT0wJiZ1P2g6Zi0xLHA9Zj09PWgmJnU/MDpmKzE7cmV0dXJuIG49aS52YWx1ZT09PWZ8fGkudmFsdWU9PT12fHxpLnZhbHVlPT09cCxufSksYT11PT57ci5vZmZzZXQ9dX07cmV0dXJuIGh0KCgpPT57SWUoKCk9PntyLm1vdW50ZWQ9ITB9KX0pLFR0KHtzZXRPZmZzZXQ6YX0pLCgpPT57dmFyIHU7cmV0dXJuIGcoImRpdiIse2NsYXNzOk5oKCksc3R5bGU6by52YWx1ZX0sW2wudmFsdWU/KHU9dC5kZWZhdWx0KT09bnVsbD92b2lkIDA6dS5jYWxsKHQpOm51bGxdKX19fSk7Y29uc3QgJGg9T2Uoa2gpLFtMaCwkc109RWUoInRhYiIpLE1oPUZlKHt9LGZzLHtkb3Q6Qm9vbGVhbixuYW1lOmZlLGJhZGdlOmZlLHRpdGxlOlN0cmluZyxkaXNhYmxlZDpCb29sZWFuLHRpdGxlQ2xhc3M6RnQsdGl0bGVTdHlsZTpbU3RyaW5nLE9iamVjdF0sc2hvd1plcm9CYWRnZTp3ZX0pO3ZhciBIaD1UZSh7bmFtZTpMaCxwcm9wczpNaCxzZXR1cChlLHtzbG90czp0fSl7Y29uc3Qgbj1ocygpLHI9USghMSkscz1HdCgpLHtwYXJlbnQ6aSxpbmRleDpvfT1scyh6YSk7aWYoIWkpcmV0dXJuO2NvbnN0IGw9KCk9Pnt2YXIgcDtyZXR1cm4ocD1lLm5hbWUpIT1udWxsP3A6by52YWx1ZX0sYT0oKT0+e3IudmFsdWU9ITAsaS5wcm9wcy5sYXp5UmVuZGVyJiZJZSgoKT0+e2kub25SZW5kZXJlZChsKCksZS50aXRsZSl9KX0sdT1uZSgoKT0+e2NvbnN0IHA9bCgpPT09aS5jdXJyZW50TmFtZS52YWx1ZTtyZXR1cm4gcCYmIXIudmFsdWUmJmEoKSxwfSksYz1RKCIiKSxmPVEoIiIpO1F1KCgpPT57Y29uc3R7dGl0bGVDbGFzczpwLHRpdGxlU3R5bGU6Yn09ZTtjLnZhbHVlPXA/WnIocCk6IiIsZi52YWx1ZT1iJiZ0eXBlb2YgYiE9InN0cmluZyI/TWMoWHIoYikpOmJ9KTtjb25zdCBoPXA9PmcoRmgsc3Qoe2tleTpuLGlkOmAke2kuaWR9LSR7by52YWx1ZX1gLHJlZjppLnNldFRpdGxlUmVmcyhvLnZhbHVlKSxzdHlsZTpmLnZhbHVlLGNsYXNzOmMudmFsdWUsaXNBY3RpdmU6dS52YWx1ZSxjb250cm9sczpuLHNjcm9sbGFibGU6aS5zY3JvbGxhYmxlLnZhbHVlLGFjdGl2ZUNvbG9yOmkucHJvcHMudGl0bGVBY3RpdmVDb2xvcixpbmFjdGl2ZUNvbG9yOmkucHJvcHMudGl0bGVJbmFjdGl2ZUNvbG9yLG9uQ2xpY2s6Yj0+cChzLnByb3h5LG8udmFsdWUsYil9LFVyKGkucHJvcHMsWyJ0eXBlIiwiY29sb3IiLCJzaHJpbmsiXSksVXIoZSxbImRvdCIsImJhZGdlIiwidGl0bGUiLCJkaXNhYmxlZCIsInNob3daZXJvQmFkZ2UiXSkpLHt0aXRsZTp0LnRpdGxlfSksdj1RKCF1LnZhbHVlKTtyZXR1cm4gcGUodSxwPT57cD92LnZhbHVlPSExOmtuKCgpPT57di52YWx1ZT0hMH0pfSkscGUoKCk9PmUudGl0bGUsKCk9PntpLnNldExpbmUoKSxpLnNjcm9sbEludG9WaWV3KCl9KSxQaCh1KSxUdCh7aWQ6bixyZW5kZXJUaXRsZTpofSksKCk9Pnt2YXIgcDtjb25zdCBiPWAke2kuaWR9LSR7by52YWx1ZX1gLHthbmltYXRlZDp5LHN3aXBlYWJsZTpTLHNjcm9sbHNweTpDLGxhenlSZW5kZXI6Rn09aS5wcm9wcztpZighdC5kZWZhdWx0JiYheSlyZXR1cm47Y29uc3QgUj1DfHx1LnZhbHVlO2lmKHl8fFMpcmV0dXJuIGcoJGgse2lkOm4scm9sZToidGFicGFuZWwiLGNsYXNzOiRzKCJwYW5lbC13cmFwcGVyIix7aW5hY3RpdmU6di52YWx1ZX0pLHRhYmluZGV4OnUudmFsdWU/MDotMSwiYXJpYS1oaWRkZW4iOiF1LnZhbHVlLCJhcmlhLWxhYmVsbGVkYnkiOmIsImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJhdHRyaWJ1dGUifSx7ZGVmYXVsdDooKT0+e3ZhciBXO3JldHVybltnKCJkaXYiLHtjbGFzczokcygicGFuZWwiKX0sWyhXPXQuZGVmYXVsdCk9PW51bGw/dm9pZCAwOlcuY2FsbCh0KV0pXX19KTtjb25zdCBOPXIudmFsdWV8fEN8fCFGPyhwPXQuZGVmYXVsdCk9PW51bGw/dm9pZCAwOnAuY2FsbCh0KTpudWxsO3JldHVybiBFaShnKCJkaXYiLHtpZDpuLHJvbGU6InRhYnBhbmVsIixjbGFzczokcygicGFuZWwiKSx0YWJpbmRleDpSPzA6LTEsImFyaWEtbGFiZWxsZWRieSI6YiwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImF0dHJpYnV0ZSJ9LFtOXSksW1tQaSxSXV0pfX19KTtjb25zdCBXbz1PZShIaCksS289T2UoUmgpLFtVaCxnbl09RWUoImNlbGwiKSxLYT17dGFnOl9lKCJkaXYiKSxpY29uOlN0cmluZyxzaXplOlN0cmluZyx0aXRsZTpmZSx2YWx1ZTpmZSxsYWJlbDpmZSxjZW50ZXI6Qm9vbGVhbixpc0xpbms6Qm9vbGVhbixib3JkZXI6d2UsaWNvblByZWZpeDpTdHJpbmcsdmFsdWVDbGFzczpGdCxsYWJlbENsYXNzOkZ0LHRpdGxlQ2xhc3M6RnQsdGl0bGVTdHlsZTpudWxsLGFycm93RGlyZWN0aW9uOlN0cmluZyxyZXF1aXJlZDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6bnVsbH0sY2xpY2thYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfX0samg9RmUoe30sS2EsZnMpO3ZhciBWaD1UZSh7bmFtZTpVaCxwcm9wczpqaCxzZXR1cChlLHtzbG90czp0fSl7Y29uc3Qgbj1NaSgpLHI9KCk9PntpZih0LmxhYmVsfHxSZShlLmxhYmVsKSlyZXR1cm4gZygiZGl2Iix7Y2xhc3M6W2duKCJsYWJlbCIpLGUubGFiZWxDbGFzc119LFt0LmxhYmVsP3QubGFiZWwoKTplLmxhYmVsXSl9LHM9KCk9Pnt2YXIgYTtpZih0LnRpdGxlfHxSZShlLnRpdGxlKSl7Y29uc3QgdT0oYT10LnRpdGxlKT09bnVsbD92b2lkIDA6YS5jYWxsKHQpO3JldHVybiBBcnJheS5pc0FycmF5KHUpJiZ1Lmxlbmd0aD09PTA/dm9pZCAwOmcoImRpdiIse2NsYXNzOltnbigidGl0bGUiKSxlLnRpdGxlQ2xhc3NdLHN0eWxlOmUudGl0bGVTdHlsZX0sW3V8fGcoInNwYW4iLG51bGwsW2UudGl0bGVdKSxyKCldKX19LGk9KCk9Pntjb25zdCBhPXQudmFsdWV8fHQuZGVmYXVsdDtpZihhfHxSZShlLnZhbHVlKSlyZXR1cm4gZygiZGl2Iix7Y2xhc3M6W2duKCJ2YWx1ZSIpLGUudmFsdWVDbGFzc119LFthP2EoKTpnKCJzcGFuIixudWxsLFtlLnZhbHVlXSldKX0sbz0oKT0+e2lmKHQuaWNvbilyZXR1cm4gdC5pY29uKCk7aWYoZS5pY29uKXJldHVybiBnKGxuLHtuYW1lOmUuaWNvbixjbGFzczpnbigibGVmdC1pY29uIiksY2xhc3NQcmVmaXg6ZS5pY29uUHJlZml4fSxudWxsKX0sbD0oKT0+e2lmKHRbInJpZ2h0LWljb24iXSlyZXR1cm4gdFsicmlnaHQtaWNvbiJdKCk7aWYoZS5pc0xpbmspe2NvbnN0IGE9ZS5hcnJvd0RpcmVjdGlvbiYmZS5hcnJvd0RpcmVjdGlvbiE9PSJyaWdodCI/YGFycm93LSR7ZS5hcnJvd0RpcmVjdGlvbn1gOiJhcnJvdyI7cmV0dXJuIGcobG4se25hbWU6YSxjbGFzczpnbigicmlnaHQtaWNvbiIpfSxudWxsKX19O3JldHVybigpPT57dmFyIGE7Y29uc3R7dGFnOnUsc2l6ZTpjLGNlbnRlcjpmLGJvcmRlcjpoLGlzTGluazp2LHJlcXVpcmVkOnB9PWUsYj0oYT1lLmNsaWNrYWJsZSkhPW51bGw/YTp2LHk9e2NlbnRlcjpmLHJlcXVpcmVkOiEhcCxjbGlja2FibGU6Yixib3JkZXJsZXNzOiFofTtyZXR1cm4gYyYmKHlbY109ISFjKSxnKHUse2NsYXNzOmduKHkpLHJvbGU6Yj8iYnV0dG9uIjp2b2lkIDAsdGFiaW5kZXg6Yj8wOnZvaWQgMCxvbkNsaWNrOm59LHtkZWZhdWx0OigpPT57dmFyIFM7cmV0dXJuW28oKSxzKCksaSgpLGwoKSwoUz10LmV4dHJhKT09bnVsbD92b2lkIDA6Uy5jYWxsKHQpXX19KX19fSk7Y29uc3QgaWk9T2UoVmgpO2Z1bmN0aW9uIEphKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpPyFlLmxlbmd0aDplPT09MD8hMTohZX1mdW5jdGlvbiB6aChlLHQpe2lmKEphKGUpKXtpZih0LnJlcXVpcmVkKXJldHVybiExO2lmKHQudmFsaWRhdGVFbXB0eT09PSExKXJldHVybiEwfXJldHVybiEodC5wYXR0ZXJuJiYhdC5wYXR0ZXJuLnRlc3QoU3RyaW5nKGUpKSl9ZnVuY3Rpb24gcWgoZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uobj0+e2NvbnN0IHI9dC52YWxpZGF0b3IoZSx0KTtpZih4YShyKSl7ci50aGVuKG4pO3JldHVybn1uKHIpfSl9ZnVuY3Rpb24gSm8oZSx0KXtjb25zdHttZXNzYWdlOm59PXQ7cmV0dXJuIG5yKG4pP24oZSx0KTpufHwiIn1mdW5jdGlvbiBXaCh7dGFyZ2V0OmV9KXtlLmNvbXBvc2luZz0hMH1mdW5jdGlvbiBHbyh7dGFyZ2V0OmV9KXtlLmNvbXBvc2luZyYmKGUuY29tcG9zaW5nPSExLGUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpKX1mdW5jdGlvbiBLaChlLHQpe2NvbnN0IG49TmkoKTtlLnN0eWxlLmhlaWdodD0iYXV0byI7bGV0IHI9ZS5zY3JvbGxIZWlnaHQ7aWYoZnIodCkpe2NvbnN0e21heEhlaWdodDpzLG1pbkhlaWdodDppfT10O3MhPT12b2lkIDAmJihyPU1hdGgubWluKHIscykpLGkhPT12b2lkIDAmJihyPU1hdGgubWF4KHIsaSkpfXImJihlLnN0eWxlLmhlaWdodD1gJHtyfXB4YCxraShuKSl9ZnVuY3Rpb24gSmgoZSx0KXtyZXR1cm4gZT09PSJudW1iZXIiJiYoZT0idGV4dCIsdD8/KHQ9ImRlY2ltYWwiKSksZT09PSJkaWdpdCImJihlPSJ0ZWwiLHQ/Pyh0PSJudW1lcmljIikpLHt0eXBlOmUsaW5wdXRtb2RlOnR9fWZ1bmN0aW9uIFJ0KGUpe3JldHVyblsuLi5lXS5sZW5ndGh9ZnVuY3Rpb24gTHMoZSx0KXtyZXR1cm5bLi4uZV0uc2xpY2UoMCx0KS5qb2luKCIiKX1jb25zdFtHaCxvdF09RWUoImZpZWxkIiksWWg9e2lkOlN0cmluZyxuYW1lOlN0cmluZyxsZWZ0SWNvbjpTdHJpbmcscmlnaHRJY29uOlN0cmluZyxhdXRvZm9jdXM6Qm9vbGVhbixjbGVhcmFibGU6Qm9vbGVhbixtYXhsZW5ndGg6ZmUsbWF4Ok51bWJlcixtaW46TnVtYmVyLGZvcm1hdHRlcjpGdW5jdGlvbixjbGVhckljb246X2UoImNsZWFyIiksbW9kZWxWYWx1ZTp1dCgiIiksaW5wdXRBbGlnbjpTdHJpbmcscGxhY2Vob2xkZXI6U3RyaW5nLGF1dG9jb21wbGV0ZTpTdHJpbmcsYXV0b2NhcGl0YWxpemU6U3RyaW5nLGF1dG9jb3JyZWN0OlN0cmluZyxlcnJvck1lc3NhZ2U6U3RyaW5nLGVudGVya2V5aGludDpTdHJpbmcsY2xlYXJUcmlnZ2VyOl9lKCJmb2N1cyIpLGZvcm1hdFRyaWdnZXI6X2UoIm9uQ2hhbmdlIiksc3BlbGxjaGVjazp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZXJyb3I6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxyZWFkb25seTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0saW5wdXRtb2RlOlN0cmluZ30sWGg9RmUoe30sS2EsWWgse3Jvd3M6ZmUsdHlwZTpfZSgidGV4dCIpLHJ1bGVzOkFycmF5LGF1dG9zaXplOltCb29sZWFuLE9iamVjdF0sbGFiZWxXaWR0aDpmZSxsYWJlbENsYXNzOkZ0LGxhYmVsQWxpZ246U3RyaW5nLHNob3dXb3JkTGltaXQ6Qm9vbGVhbixlcnJvck1lc3NhZ2VBbGlnbjpTdHJpbmcsY29sb246e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9fSk7dmFyIFpoPVRlKHtuYW1lOkdoLHByb3BzOlhoLGVtaXRzOlsiYmx1ciIsImZvY3VzIiwiY2xlYXIiLCJrZXlwcmVzcyIsImNsaWNrSW5wdXQiLCJlbmRWYWxpZGF0ZSIsInN0YXJ0VmFsaWRhdGUiLCJjbGlja0xlZnRJY29uIiwiY2xpY2tSaWdodEljb24iLCJ1cGRhdGU6bW9kZWxWYWx1ZSJdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7Y29uc3Qgcj1ocygpLHM9cnQoe3N0YXR1czoidW52YWxpZGF0ZWQiLGZvY3VzZWQ6ITEsdmFsaWRhdGVNZXNzYWdlOiIifSksaT1RKCksbz1RKCksbD1RKCkse3BhcmVudDphfT1scyhPZCksdT0oKT0+e3ZhciBfO3JldHVybiBTdHJpbmcoKF89ZS5tb2RlbFZhbHVlKSE9bnVsbD9fOiIiKX0sYz1fPT57aWYoUmUoZVtfXSkpcmV0dXJuIGVbX107aWYoYSYmUmUoYS5wcm9wc1tfXSkpcmV0dXJuIGEucHJvcHNbX119LGY9bmUoKCk9Pntjb25zdCBfPWMoInJlYWRvbmx5Iik7aWYoZS5jbGVhcmFibGUmJiFfKXtjb25zdCBVPXUoKSE9PSIiLHo9ZS5jbGVhclRyaWdnZXI9PT0iYWx3YXlzInx8ZS5jbGVhclRyaWdnZXI9PT0iZm9jdXMiJiZzLmZvY3VzZWQ7cmV0dXJuIFUmJnp9cmV0dXJuITF9KSxoPW5lKCgpPT5sLnZhbHVlJiZuLmlucHV0P2wudmFsdWUoKTplLm1vZGVsVmFsdWUpLHY9bmUoKCk9Pnt2YXIgXztjb25zdCBVPWMoInJlcXVpcmVkIik7cmV0dXJuIFU9PT0iYXV0byI/KF89ZS5ydWxlcyk9PW51bGw/dm9pZCAwOl8uc29tZSh6PT56LnJlcXVpcmVkKTpVfSkscD1fPT5fLnJlZHVjZSgoVSx6KT0+VS50aGVuKCgpPT57aWYocy5zdGF0dXM9PT0iZmFpbGVkIilyZXR1cm47bGV0e3ZhbHVlOnRlfT1oO2lmKHouZm9ybWF0dGVyJiYodGU9ei5mb3JtYXR0ZXIodGUseikpLCF6aCh0ZSx6KSl7cy5zdGF0dXM9ImZhaWxlZCIscy52YWxpZGF0ZU1lc3NhZ2U9Sm8odGUseik7cmV0dXJufWlmKHoudmFsaWRhdG9yKXJldHVybiBKYSh0ZSkmJnoudmFsaWRhdGVFbXB0eT09PSExP3ZvaWQgMDpxaCh0ZSx6KS50aGVuKHllPT57eWUmJnR5cGVvZiB5ZT09InN0cmluZyI/KHMuc3RhdHVzPSJmYWlsZWQiLHMudmFsaWRhdGVNZXNzYWdlPXllKTp5ZT09PSExJiYocy5zdGF0dXM9ImZhaWxlZCIscy52YWxpZGF0ZU1lc3NhZ2U9Sm8odGUseikpfSl9KSxQcm9taXNlLnJlc29sdmUoKSksYj0oKT0+e3Muc3RhdHVzPSJ1bnZhbGlkYXRlZCIscy52YWxpZGF0ZU1lc3NhZ2U9IiJ9LHk9KCk9PnQoImVuZFZhbGlkYXRlIix7c3RhdHVzOnMuc3RhdHVzLG1lc3NhZ2U6cy52YWxpZGF0ZU1lc3NhZ2V9KSxTPShfPWUucnVsZXMpPT5uZXcgUHJvbWlzZShVPT57YigpLF8/KHQoInN0YXJ0VmFsaWRhdGUiKSxwKF8pLnRoZW4oKCk9PntzLnN0YXR1cz09PSJmYWlsZWQiPyhVKHtuYW1lOmUubmFtZSxtZXNzYWdlOnMudmFsaWRhdGVNZXNzYWdlfSkseSgpKToocy5zdGF0dXM9InBhc3NlZCIsVSgpLHkoKSl9KSk6VSgpfSksQz1fPT57aWYoYSYmZS5ydWxlcyl7Y29uc3R7dmFsaWRhdGVUcmlnZ2VyOlV9PWEucHJvcHMsej1JbyhVKS5pbmNsdWRlcyhfKSx0ZT1lLnJ1bGVzLmZpbHRlcih5ZT0+eWUudHJpZ2dlcj9Jbyh5ZS50cmlnZ2VyKS5pbmNsdWRlcyhfKTp6KTt0ZS5sZW5ndGgmJlModGUpfX0sRj1fPT57dmFyIFU7Y29uc3R7bWF4bGVuZ3RoOnp9PWU7aWYoUmUoeikmJlJ0KF8pPit6KXtjb25zdCB0ZT11KCk7aWYodGUmJlJ0KHRlKT09PSt6KXJldHVybiB0ZTtjb25zdCB5ZT0oVT1pLnZhbHVlKT09bnVsbD92b2lkIDA6VS5zZWxlY3Rpb25FbmQ7aWYocy5mb2N1c2VkJiZ5ZSl7Y29uc3QgZD1bLi4uX10sbT1kLmxlbmd0aC0rejtyZXR1cm4gZC5zcGxpY2UoeWUtbSxtKSxkLmpvaW4oIiIpfXJldHVybiBMcyhfLCt6KX1yZXR1cm4gX30sUj0oXyxVPSJvbkNoYW5nZSIpPT57dmFyIHosdGU7Y29uc3QgeWU9XztfPUYoXyk7Y29uc3QgZD1SdCh5ZSktUnQoXyk7aWYoZS50eXBlPT09Im51bWJlciJ8fGUudHlwZT09PSJkaWdpdCIpe2NvbnN0IHg9ZS50eXBlPT09Im51bWJlciI7aWYoXz1wZChfLHgseCksVT09PSJvbkJsdXIiJiZfIT09IiImJihlLm1pbiE9PXZvaWQgMHx8ZS5tYXghPT12b2lkIDApKXtjb25zdCBFPVJyKCtfLCh6PWUubWluKSE9bnVsbD96Oi0xLzAsKHRlPWUubWF4KSE9bnVsbD90ZToxLzApOytfIT09RSYmKF89RS50b1N0cmluZygpKX19bGV0IG09MDtpZihlLmZvcm1hdHRlciYmVT09PWUuZm9ybWF0VHJpZ2dlcil7Y29uc3R7Zm9ybWF0dGVyOngsbWF4bGVuZ3RoOkV9PWU7aWYoXz14KF8pLFJlKEUpJiZSdChfKT4rRSYmKF89THMoXywrRSkpLGkudmFsdWUmJnMuZm9jdXNlZCl7Y29uc3R7c2VsZWN0aW9uRW5kOlR9PWkudmFsdWUsQT1Mcyh5ZSxUKTttPVJ0KHgoQSkpLVJ0KEEpfX1pZihpLnZhbHVlJiZpLnZhbHVlLnZhbHVlIT09XylpZihzLmZvY3VzZWQpe2xldHtzZWxlY3Rpb25TdGFydDp4LHNlbGVjdGlvbkVuZDpFfT1pLnZhbHVlO2lmKGkudmFsdWUudmFsdWU9XyxSZSh4KSYmUmUoRSkpe2NvbnN0IFQ9UnQoXyk7ZD8oeC09ZCxFLT1kKTptJiYoeCs9bSxFKz1tKSxpLnZhbHVlLnNldFNlbGVjdGlvblJhbmdlKE1hdGgubWluKHgsVCksTWF0aC5taW4oRSxUKSl9fWVsc2UgaS52YWx1ZS52YWx1ZT1fO18hPT1lLm1vZGVsVmFsdWUmJnQoInVwZGF0ZTptb2RlbFZhbHVlIixfKX0sRD1fPT57Xy50YXJnZXQuY29tcG9zaW5nfHxSKF8udGFyZ2V0LnZhbHVlKX0sTj0oKT0+e3ZhciBfO3JldHVybihfPWkudmFsdWUpPT1udWxsP3ZvaWQgMDpfLmJsdXIoKX0sVz0oKT0+e3ZhciBfO3JldHVybihfPWkudmFsdWUpPT1udWxsP3ZvaWQgMDpfLmZvY3VzKCl9LFg9KCk9Pntjb25zdCBfPWkudmFsdWU7ZS50eXBlPT09InRleHRhcmVhIiYmZS5hdXRvc2l6ZSYmXyYmS2goXyxlLmF1dG9zaXplKX0sTD1fPT57cy5mb2N1c2VkPSEwLHQoImZvY3VzIixfKSxJZShYKSxjKCJyZWFkb25seSIpJiZOKCl9LFY9Xz0+e3MuZm9jdXNlZD0hMSxSKHUoKSwib25CbHVyIiksdCgiYmx1ciIsXyksIWMoInJlYWRvbmx5IikmJihDKCJvbkJsdXIiKSxJZShYKSxjZCgpKX0sZWU9Xz0+dCgiY2xpY2tJbnB1dCIsXyksQj1fPT50KCJjbGlja0xlZnRJY29uIixfKSxzZT1fPT50KCJjbGlja1JpZ2h0SWNvbiIsXyksYmU9Xz0+e29uKF8pLHQoInVwZGF0ZTptb2RlbFZhbHVlIiwiIiksdCgiY2xlYXIiLF8pfSwkZT1uZSgoKT0+e2lmKHR5cGVvZiBlLmVycm9yPT0iYm9vbGVhbiIpcmV0dXJuIGUuZXJyb3I7aWYoYSYmYS5wcm9wcy5zaG93RXJyb3ImJnMuc3RhdHVzPT09ImZhaWxlZCIpcmV0dXJuITB9KSx2ZT1uZSgoKT0+e2NvbnN0IF89YygibGFiZWxXaWR0aCIpLFU9YygibGFiZWxBbGlnbiIpO2lmKF8mJlUhPT0idG9wIilyZXR1cm57d2lkdGg6VWUoXyl9fSksYWU9Xz0+e18ua2V5Q29kZT09PTEzJiYoIShhJiZhLnByb3BzLnN1Ym1pdE9uRW50ZXIpJiZlLnR5cGUhPT0idGV4dGFyZWEiJiZvbihfKSxlLnR5cGU9PT0ic2VhcmNoIiYmTigpKSx0KCJrZXlwcmVzcyIsXyl9LG9lPSgpPT5lLmlkfHxgJHtyfS1pbnB1dGAsZXQ9KCk9PnMuc3RhdHVzLG10PSgpPT57Y29uc3QgXz1vdCgiY29udHJvbCIsW2MoImlucHV0QWxpZ24iKSx7ZXJyb3I6JGUudmFsdWUsY3VzdG9tOiEhbi5pbnB1dCwibWluLWhlaWdodCI6ZS50eXBlPT09InRleHRhcmVhIiYmIWUuYXV0b3NpemV9XSk7aWYobi5pbnB1dClyZXR1cm4gZygiZGl2Iix7Y2xhc3M6XyxvbkNsaWNrOmVlfSxbbi5pbnB1dCgpXSk7Y29uc3QgVT17aWQ6b2UoKSxyZWY6aSxuYW1lOmUubmFtZSxyb3dzOmUucm93cyE9PXZvaWQgMD8rZS5yb3dzOnZvaWQgMCxjbGFzczpfLGRpc2FibGVkOmMoImRpc2FibGVkIikscmVhZG9ubHk6YygicmVhZG9ubHkiKSxhdXRvZm9jdXM6ZS5hdXRvZm9jdXMscGxhY2Vob2xkZXI6ZS5wbGFjZWhvbGRlcixhdXRvY29tcGxldGU6ZS5hdXRvY29tcGxldGUsYXV0b2NhcGl0YWxpemU6ZS5hdXRvY2FwaXRhbGl6ZSxhdXRvY29ycmVjdDplLmF1dG9jb3JyZWN0LGVudGVya2V5aGludDplLmVudGVya2V5aGludCxzcGVsbGNoZWNrOmUuc3BlbGxjaGVjaywiYXJpYS1sYWJlbGxlZGJ5IjplLmxhYmVsP2Ake3J9LWxhYmVsYDp2b2lkIDAsImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJhdHRyaWJ1dGUiLG9uQmx1cjpWLG9uRm9jdXM6TCxvbklucHV0OkQsb25DbGljazplZSxvbkNoYW5nZTpHbyxvbktleXByZXNzOmFlLG9uQ29tcG9zaXRpb25lbmQ6R28sb25Db21wb3NpdGlvbnN0YXJ0OldofTtyZXR1cm4gZS50eXBlPT09InRleHRhcmVhIj9nKCJ0ZXh0YXJlYSIsc3QoVSx7aW5wdXRtb2RlOmUuaW5wdXRtb2RlfSksbnVsbCk6ZygiaW5wdXQiLHN0KEpoKGUudHlwZSxlLmlucHV0bW9kZSksVSksbnVsbCl9LEg9KCk9Pntjb25zdCBfPW5bImxlZnQtaWNvbiJdO2lmKGUubGVmdEljb258fF8pcmV0dXJuIGcoImRpdiIse2NsYXNzOm90KCJsZWZ0LWljb24iKSxvbkNsaWNrOkJ9LFtfP18oKTpnKGxuLHtuYW1lOmUubGVmdEljb24sY2xhc3NQcmVmaXg6ZS5pY29uUHJlZml4fSxudWxsKV0pfSxyZT0oKT0+e2NvbnN0IF89blsicmlnaHQtaWNvbiJdO2lmKGUucmlnaHRJY29ufHxfKXJldHVybiBnKCJkaXYiLHtjbGFzczpvdCgicmlnaHQtaWNvbiIpLG9uQ2xpY2s6c2V9LFtfP18oKTpnKGxuLHtuYW1lOmUucmlnaHRJY29uLGNsYXNzUHJlZml4OmUuaWNvblByZWZpeH0sbnVsbCldKX0sZGU9KCk9PntpZihlLnNob3dXb3JkTGltaXQmJmUubWF4bGVuZ3RoKXtjb25zdCBfPVJ0KHUoKSk7cmV0dXJuIGcoImRpdiIse2NsYXNzOm90KCJ3b3JkLWxpbWl0Iil9LFtnKCJzcGFuIix7Y2xhc3M6b3QoIndvcmQtbnVtIil9LFtfXSksVnQoIi8iKSxlLm1heGxlbmd0aF0pfX0sUGU9KCk9PntpZihhJiZhLnByb3BzLnNob3dFcnJvck1lc3NhZ2U9PT0hMSlyZXR1cm47Y29uc3QgXz1lLmVycm9yTWVzc2FnZXx8cy52YWxpZGF0ZU1lc3NhZ2U7aWYoXyl7Y29uc3QgVT1uWyJlcnJvci1tZXNzYWdlIl0sej1jKCJlcnJvck1lc3NhZ2VBbGlnbiIpO3JldHVybiBnKCJkaXYiLHtjbGFzczpvdCgiZXJyb3ItbWVzc2FnZSIseil9LFtVP1Uoe21lc3NhZ2U6X30pOl9dKX19LE09KCk9Pntjb25zdCBfPWMoImxhYmVsV2lkdGgiKSxVPWMoImxhYmVsQWxpZ24iKSx6PWMoImNvbG9uIik/IjoiOiIiO2lmKG4ubGFiZWwpcmV0dXJuW24ubGFiZWwoKSx6XTtpZihlLmxhYmVsKXJldHVybiBnKCJsYWJlbCIse2lkOmAke3J9LWxhYmVsYCxmb3I6bi5pbnB1dD92b2lkIDA6b2UoKSwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImF0dHJpYnV0ZSIsb25DbGljazp0ZT0+e29uKHRlKSxXKCl9LHN0eWxlOlU9PT0idG9wIiYmXz97d2lkdGg6VWUoXyl9OnZvaWQgMH0sW2UubGFiZWwrel0pfSxLPSgpPT5bZygiZGl2Iix7Y2xhc3M6b3QoImJvZHkiKX0sW210KCksZi52YWx1ZSYmZyhsbix7cmVmOm8sbmFtZTplLmNsZWFySWNvbixjbGFzczpvdCgiY2xlYXIiKX0sbnVsbCkscmUoKSxuLmJ1dHRvbiYmZygiZGl2Iix7Y2xhc3M6b3QoImJ1dHRvbiIpfSxbbi5idXR0b24oKV0pXSksZGUoKSxQZSgpXTtyZXR1cm4gVHQoe2JsdXI6Tixmb2N1czpXLHZhbGlkYXRlOlMsZm9ybVZhbHVlOmgscmVzZXRWYWxpZGF0aW9uOmIsZ2V0VmFsaWRhdGlvblN0YXR1czpldH0pLHhuKGxkLHtjdXN0b21WYWx1ZTpsLHJlc2V0VmFsaWRhdGlvbjpiLHZhbGlkYXRlV2l0aFRyaWdnZXI6Q30pLHBlKCgpPT5lLm1vZGVsVmFsdWUsKCk9PntSKHUoKSksYigpLEMoIm9uQ2hhbmdlIiksSWUoWCl9KSxodCgoKT0+e1IodSgpLGUuZm9ybWF0VHJpZ2dlciksSWUoWCl9KSx1bigidG91Y2hzdGFydCIsYmUse3RhcmdldDpuZSgoKT0+e3ZhciBfO3JldHVybihfPW8udmFsdWUpPT1udWxsP3ZvaWQgMDpfLiRlbH0pfSksKCk9Pntjb25zdCBfPWMoImRpc2FibGVkIiksVT1jKCJsYWJlbEFsaWduIiksej1IKCksdGU9KCk9Pntjb25zdCB5ZT1NKCk7cmV0dXJuIFU9PT0idG9wIj9beix5ZV0uZmlsdGVyKEJvb2xlYW4pOnllfHxbXX07cmV0dXJuIGcoaWkse3NpemU6ZS5zaXplLGNsYXNzOm90KHtlcnJvcjokZS52YWx1ZSxkaXNhYmxlZDpfLFtgbGFiZWwtJHtVfWBdOlV9KSxjZW50ZXI6ZS5jZW50ZXIsYm9yZGVyOmUuYm9yZGVyLGlzTGluazplLmlzTGluayxjbGlja2FibGU6ZS5jbGlja2FibGUsdGl0bGVTdHlsZTp2ZS52YWx1ZSx2YWx1ZUNsYXNzOm90KCJ2YWx1ZSIpLHRpdGxlQ2xhc3M6W290KCJsYWJlbCIsW1Use3JlcXVpcmVkOnYudmFsdWV9XSksZS5sYWJlbENsYXNzXSxhcnJvd0RpcmVjdGlvbjplLmFycm93RGlyZWN0aW9ufSx7aWNvbjp6JiZVIT09InRvcCI/KCk9Pno6bnVsbCx0aXRsZTp0ZSx2YWx1ZTpLLGV4dHJhOm4uZXh0cmF9KX19fSk7Y29uc3QgWW89T2UoWmgpO2Z1bmN0aW9uIEdhKCl7Y29uc3QgZT1ydCh7c2hvdzohMX0pLHQ9cz0+e2Uuc2hvdz1zfSxuPXM9PntGZShlLHMse3RyYW5zaXRpb25BcHBlYXI6ITB9KSx0KCEwKX0scj0oKT0+dCghMSk7cmV0dXJuIFR0KHtvcGVuOm4sY2xvc2U6cix0b2dnbGU6dH0pLHtvcGVuOm4sY2xvc2U6cixzdGF0ZTplLHRvZ2dsZTp0fX1mdW5jdGlvbiBZYShlKXtjb25zdCB0PXdhKGUpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobikse2luc3RhbmNlOnQubW91bnQobiksdW5tb3VudCgpe3QudW5tb3VudCgpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobil9fX1jb25zdFtRaCxYb109RWUoImNlbGwtZ3JvdXAiKSxlZz17dGl0bGU6U3RyaW5nLGluc2V0OkJvb2xlYW4sYm9yZGVyOndlfTt2YXIgdGc9VGUoe25hbWU6UWgsaW5oZXJpdEF0dHJzOiExLHByb3BzOmVnLHNldHVwKGUse3Nsb3RzOnQsYXR0cnM6bn0pe2NvbnN0IHI9KCk9Pnt2YXIgaTtyZXR1cm4gZygiZGl2IixzdCh7Y2xhc3M6W1hvKHtpbnNldDplLmluc2V0fSkse1tCYV06ZS5ib3JkZXImJiFlLmluc2V0fV19LG4sc2koKSksWyhpPXQuZGVmYXVsdCk9PW51bGw/dm9pZCAwOmkuY2FsbCh0KV0pfSxzPSgpPT5nKCJkaXYiLHtjbGFzczpYbygidGl0bGUiLHtpbnNldDplLmluc2V0fSl9LFt0LnRpdGxlP3QudGl0bGUoKTplLnRpdGxlXSk7cmV0dXJuKCk9PmUudGl0bGV8fHQudGl0bGU/ZyhIZSxudWxsLFtzKCkscigpXSk6cigpfX0pO2NvbnN0IFpvPU9lKHRnKSxbbmcsQ3JdPUVlKCJlbXB0eSIpLHJnPXtpbWFnZTpfZSgiZGVmYXVsdCIpLGltYWdlU2l6ZTpbTnVtYmVyLFN0cmluZyxBcnJheV0sZGVzY3JpcHRpb246U3RyaW5nfTt2YXIgc2c9VGUoe25hbWU6bmcscHJvcHM6cmcsc2V0dXAoZSx7c2xvdHM6dH0pe2NvbnN0IG49KCk9Pntjb25zdCBTPXQuZGVzY3JpcHRpb24/dC5kZXNjcmlwdGlvbigpOmUuZGVzY3JpcHRpb247aWYoUylyZXR1cm4gZygicCIse2NsYXNzOkNyKCJkZXNjcmlwdGlvbiIpfSxbU10pfSxyPSgpPT57aWYodC5kZWZhdWx0KXJldHVybiBnKCJkaXYiLHtjbGFzczpDcigiYm90dG9tIil9LFt0LmRlZmF1bHQoKV0pfSxzPWhzKCksaT1TPT5gJHtzfS0ke1N9YCxvPVM9PmB1cmwoIyR7aShTKX0pYCxsPShTLEMsRik9PmcoInN0b3AiLHsic3RvcC1jb2xvciI6UyxvZmZzZXQ6YCR7Q30lYCwic3RvcC1vcGFjaXR5IjpGfSxudWxsKSxhPShTLEMpPT5bbChTLDApLGwoQywxMDApXSx1PVM9PltnKCJkZWZzIixudWxsLFtnKCJyYWRpYWxHcmFkaWVudCIse2lkOmkoUyksY3g6IjUwJSIsY3k6IjU0JSIsZng6IjUwJSIsZnk6IjU0JSIscjoiMjk3JSIsZ3JhZGllbnRUcmFuc2Zvcm06Im1hdHJpeCgtLjE2IDAgMCAtLjMzIC41OCAuNzIpIiwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImF0dHJpYnV0ZSJ9LFtsKCIjRUJFREYwIiwwKSxsKCIjRjJGM0Y1IiwxMDAsLjMpXSldKSxnKCJlbGxpcHNlIix7ZmlsbDpvKFMpLG9wYWNpdHk6Ii44IixjeDoiODAiLGN5OiIxNDAiLHJ4OiI0NiIscnk6IjgiLCJkYXRhLWFsbG93LW1pc21hdGNoIjoiYXR0cmlidXRlIn0sbnVsbCldLGM9KCk9PltnKCJkZWZzIixudWxsLFtnKCJsaW5lYXJHcmFkaWVudCIse2lkOmkoImEiKSx4MToiNjQlIix5MToiMTAwJSIseDI6IjY0JSIsImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJhdHRyaWJ1dGUifSxbbCgiI0ZGRiIsMCwuNSksbCgiI0YyRjNGNSIsMTAwKV0pXSksZygiZyIse29wYWNpdHk6Ii44IiwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImNoaWxkcmVuIn0sW2coInBhdGgiLHtkOiJNMzYgMTMxVjUzSDE2djIwSDJ2NThoMzR6IixmaWxsOm8oImEiKX0sbnVsbCksZygicGF0aCIse2Q6Ik0xMjMgMTVoMjJ2MTRoOXY3N2gtMzFWMTV6IixmaWxsOm8oImEiKX0sbnVsbCldKV0sZj0oKT0+W2coImRlZnMiLG51bGwsW2coImxpbmVhckdyYWRpZW50Iix7aWQ6aSgiYiIpLHgxOiI2NCUiLHkxOiI5NyUiLHgyOiI2NCUiLHkyOiIwJSIsImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJhdHRyaWJ1dGUifSxbbCgiI0YyRjNGNSIsMCwuMyksbCgiI0YyRjNGNSIsMTAwKV0pXSksZygiZyIse29wYWNpdHk6Ii44IiwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImNoaWxkcmVuIn0sW2coInBhdGgiLHtkOiJNODcgNmMzIDAgNyAzIDggNmE4IDggMCAxIDEtMSAxNkg4MGE3IDcgMCAwIDEtOC02YzAtNCAzLTcgNi03IDAtNSA0LTkgOS05WiIsZmlsbDpvKCJiIil9LG51bGwpLGcoInBhdGgiLHtkOiJNMTkgMjNjMiAwIDMgMSA0IDMgMiAwIDQgMiA0IDRhNCA0IDAgMCAxLTQgM3YxaC03di0xbC0xIDFjLTIgMC0zLTItMy00IDAtMSAxLTMgMy0zIDAtMiAyLTQgNC00WiIsZmlsbDpvKCJiIil9LG51bGwpXSldLGg9KCk9PmcoInN2ZyIse3ZpZXdCb3g6IjAgMCAxNjAgMTYwIn0sW2coImRlZnMiLHsiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImNoaWxkcmVuIn0sW2coImxpbmVhckdyYWRpZW50Iix7aWQ6aSgxKSx4MToiNjQlIix5MToiMTAwJSIseDI6IjY0JSJ9LFtsKCIjRkZGIiwwLC41KSxsKCIjRjJGM0Y1IiwxMDApXSksZygibGluZWFyR3JhZGllbnQiLHtpZDppKDIpLHgxOiI1MCUiLHgyOiI1MCUiLHkyOiI4NCUifSxbbCgiI0VCRURGMCIsMCksbCgiI0RDREVFMCIsMTAwLDApXSksZygibGluZWFyR3JhZGllbnQiLHtpZDppKDMpLHgxOiIxMDAlIix4MjoiMTAwJSIseTI6IjEwMCUifSxbYSgiI0VBRURGMCIsIiNEQ0RFRTAiKV0pLGcoInJhZGlhbEdyYWRpZW50Iix7aWQ6aSg0KSxjeDoiNTAlIixjeToiMCUiLGZ4OiI1MCUiLGZ5OiIwJSIscjoiMTAwJSIsZ3JhZGllbnRUcmFuc2Zvcm06Im1hdHJpeCgwIDEgLS41NCAwIC41IC0uNSkifSxbbCgiI0VCRURGMCIsMCksbCgiI0ZGRiIsMTAwLDApXSldKSxnKCJnIix7ZmlsbDoibm9uZSJ9LFtjKCksZygicGF0aCIse2ZpbGw6byg0KSxkOiJNMCAxMzloMTYwdjIxSDB6IiwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImF0dHJpYnV0ZSJ9LG51bGwpLGcoInBhdGgiLHtkOiJNODAgNTRhNyA3IDAgMCAxIDMgMTN2MjdsLTIgMmgtMmEyIDIgMCAwIDEtMi0yVjY3YTcgNyAwIDAgMSAzLTEzeiIsZmlsbDpvKDIpLCJkYXRhLWFsbG93LW1pc21hdGNoIjoiYXR0cmlidXRlIn0sbnVsbCksZygiZyIse29wYWNpdHk6Ii42Iiwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsInN0cm9rZS13aWR0aCI6IjciLCJkYXRhLWFsbG93LW1pc21hdGNoIjoiY2hpbGRyZW4ifSxbZygicGF0aCIse2Q6Ik02NCA0N2ExOSAxOSAwIDAgMC01IDEzYzAgNSAyIDEwIDUgMTMiLHN0cm9rZTpvKDMpfSxudWxsKSxnKCJwYXRoIix7ZDoiTTUzIDM2YTM0IDM0IDAgMCAwIDAgNDgiLHN0cm9rZTpvKDMpfSxudWxsKSxnKCJwYXRoIix7ZDoiTTk1IDczYTE5IDE5IDAgMCAwIDYtMTNjMC01LTItOS02LTEzIixzdHJva2U6bygzKX0sbnVsbCksZygicGF0aCIse2Q6Ik0xMDYgODRhMzQgMzQgMCAwIDAgMC00OCIsc3Ryb2tlOm8oMyl9LG51bGwpXSksZygiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDMxIDEwNSkifSxbZygicmVjdCIse2ZpbGw6IiNFQkVERjAiLHdpZHRoOiI5OCIsaGVpZ2h0OiIzNCIscng6IjIifSxudWxsKSxnKCJyZWN0Iix7ZmlsbDoiI0ZGRiIseDoiOSIseToiOCIsd2lkdGg6IjgwIixoZWlnaHQ6IjE4IixyeDoiMS4xIn0sbnVsbCksZygicmVjdCIse2ZpbGw6IiNFQkVERjAiLHg6IjE1Iix5OiIxMiIsd2lkdGg6IjE4IixoZWlnaHQ6IjYiLHJ4OiIxLjEifSxudWxsKV0pXSldKSx2PSgpPT5nKCJzdmciLHt2aWV3Qm94OiIwIDAgMTYwIDE2MCJ9LFtnKCJkZWZzIix7ImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJjaGlsZHJlbiJ9LFtnKCJsaW5lYXJHcmFkaWVudCIse3gxOiI1MCUiLHgyOiI1MCUiLHkyOiIxMDAlIixpZDppKDUpfSxbYSgiI0YyRjNGNSIsIiNEQ0RFRTAiKV0pLGcoImxpbmVhckdyYWRpZW50Iix7eDE6Ijk1JSIseTE6IjQ4JSIseDI6IjUuNSUiLHkyOiI1MSUiLGlkOmkoNil9LFthKCIjRUFFREYxIiwiI0RDREVFMCIpXSksZygibGluZWFyR3JhZGllbnQiLHt5MToiNDUlIix4MjoiMTAwJSIseTI6IjU0JSIsaWQ6aSg3KX0sW2EoIiNFQUVERjEiLCIjRENERUUwIildKV0pLGMoKSxmKCksZygiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDM2IDUwKSIsZmlsbDoibm9uZSJ9LFtnKCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoOCkifSxbZygicmVjdCIse2ZpbGw6IiNFQkVERjAiLG9wYWNpdHk6Ii42Iix4OiIzOCIseToiMTMiLHdpZHRoOiIzNiIsaGVpZ2h0OiI1MyIscng6IjIifSxudWxsKSxnKCJyZWN0Iix7ZmlsbDpvKDUpLHdpZHRoOiI2NCIsaGVpZ2h0OiI2NiIscng6IjIiLCJkYXRhLWFsbG93LW1pc21hdGNoIjoiYXR0cmlidXRlIn0sbnVsbCksZygicmVjdCIse2ZpbGw6IiNGRkYiLHg6IjYiLHk6IjYiLHdpZHRoOiI1MiIsaGVpZ2h0OiI1NSIscng6IjEifSxudWxsKSxnKCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMTUgMTcpIixmaWxsOm8oNiksImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJhdHRyaWJ1dGUifSxbZygicmVjdCIse3dpZHRoOiIzNCIsaGVpZ2h0OiI2IixyeDoiMSJ9LG51bGwpLGcoInBhdGgiLHtkOiJNMCAxNGgzNHY2SDB6In0sbnVsbCksZygicmVjdCIse3k6IjI4Iix3aWR0aDoiMzQiLGhlaWdodDoiNiIscng6IjEifSxudWxsKV0pXSksZygicmVjdCIse2ZpbGw6byg3KSx5OiI2MSIsd2lkdGg6Ijg4IixoZWlnaHQ6IjI4IixyeDoiMSIsImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJhdHRyaWJ1dGUifSxudWxsKSxnKCJyZWN0Iix7ZmlsbDoiI0Y3RjhGQSIseDoiMjkiLHk6IjcyIix3aWR0aDoiMzAiLGhlaWdodDoiNiIscng6IjEifSxudWxsKV0pXSkscD0oKT0+Zygic3ZnIix7dmlld0JveDoiMCAwIDE2MCAxNjAifSxbZygiZGVmcyIsbnVsbCxbZygibGluZWFyR3JhZGllbnQiLHt4MToiNTAlIix4MjoiNTAlIix5MjoiMTAwJSIsaWQ6aSg4KSwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImF0dHJpYnV0ZSJ9LFthKCIjRUFFREYxIiwiI0RDREVFMCIpXSldKSxjKCksZigpLHUoImMiKSxnKCJwYXRoIix7ZDoibTU5IDYwIDIxIDIxIDIxLTIxaDNsOSA5djNMOTIgOTNsMjEgMjF2M2wtOSA5aC0zbC0yMS0yMS0yMSAyMWgtM2wtOS05di0zbDIxLTIxLTIxLTIxdi0zbDktOWgzWiIsZmlsbDpvKDgpLCJkYXRhLWFsbG93LW1pc21hdGNoIjoiYXR0cmlidXRlIn0sbnVsbCldKSxiPSgpPT5nKCJzdmciLHt2aWV3Qm94OiIwIDAgMTYwIDE2MCJ9LFtnKCJkZWZzIix7ImRhdGEtYWxsb3ctbWlzbWF0Y2giOiJjaGlsZHJlbiJ9LFtnKCJsaW5lYXJHcmFkaWVudCIse3gxOiI1MCUiLHkxOiIxMDAlIix4MjoiNTAlIixpZDppKDkpfSxbYSgiI0VFRSIsIiNEOEQ4RDgiKV0pLGcoImxpbmVhckdyYWRpZW50Iix7eDE6IjEwMCUiLHkxOiI1MCUiLHkyOiI1MCUiLGlkOmkoMTApfSxbYSgiI0YyRjNGNSIsIiNEQ0RFRTAiKV0pLGcoImxpbmVhckdyYWRpZW50Iix7eDE6IjUwJSIseDI6IjUwJSIseTI6IjEwMCUiLGlkOmkoMTEpfSxbYSgiI0YyRjNGNSIsIiNEQ0RFRTAiKV0pLGcoImxpbmVhckdyYWRpZW50Iix7eDE6IjUwJSIseDI6IjUwJSIseTI6IjEwMCUiLGlkOmkoMTIpfSxbYSgiI0ZGRiIsIiNGN0Y4RkEiKV0pXSksYygpLGYoKSx1KCJkIiksZygiZyIse3RyYW5zZm9ybToicm90YXRlKC00NSAxMTMgLTQpIixmaWxsOiJub25lIiwiZGF0YS1hbGxvdy1taXNtYXRjaCI6ImNoaWxkcmVuIn0sW2coInJlY3QiLHtmaWxsOm8oOSkseDoiMjQiLHk6IjUyLjgiLHdpZHRoOiI1LjgiLGhlaWdodDoiMTkiLHJ4OiIxIn0sbnVsbCksZygicmVjdCIse2ZpbGw6bygxMCkseDoiMjIuMSIseToiNjcuMyIsd2lkdGg6IjkuOSIsaGVpZ2h0OiIyOCIscng6IjEifSxudWxsKSxnKCJjaXJjbGUiLHtzdHJva2U6bygxMSksInN0cm9rZS13aWR0aCI6IjgiLGN4OiIyNyIsY3k6IjI3IixyOiIyNyJ9LG51bGwpLGcoImNpcmNsZSIse2ZpbGw6bygxMiksY3g6IjI3IixjeToiMjciLHI6IjE2In0sbnVsbCksZygicGF0aCIse2Q6Ik0zNyA3Yy04IDAtMTUgNS0xNiAxMiIsc3Ryb2tlOm8oMTEpLCJzdHJva2Utd2lkdGgiOiIzIixvcGFjaXR5OiIuNSIsInN0cm9rZS1saW5lY2FwIjoicm91bmQiLHRyYW5zZm9ybToicm90YXRlKDQ1IDI5IDEzKSJ9LG51bGwpXSldKSx5PSgpPT57dmFyIFM7aWYodC5pbWFnZSlyZXR1cm4gdC5pbWFnZSgpO2NvbnN0IEM9e2Vycm9yOnAsc2VhcmNoOmIsbmV0d29yazpoLGRlZmF1bHQ6dn07cmV0dXJuKChTPUNbZS5pbWFnZV0pPT1udWxsP3ZvaWQgMDpTLmNhbGwoQykpfHxnKCJpbWciLHtzcmM6ZS5pbWFnZX0sbnVsbCl9O3JldHVybigpPT5nKCJkaXYiLHtjbGFzczpDcigpfSxbZygiZGl2Iix7Y2xhc3M6Q3IoImltYWdlIiksc3R5bGU6QWEoZS5pbWFnZVNpemUpfSxbeSgpXSksbigpLHIoKV0pfX0pO2NvbnN0IFFvPU9lKHNnKSxbaWcsY3QsRXJdPUVlKCJkaWFsb2ciKSxvZz1GZSh7fSxkcyx7dGl0bGU6U3RyaW5nLHRoZW1lOlN0cmluZyx3aWR0aDpmZSxtZXNzYWdlOltTdHJpbmcsRnVuY3Rpb25dLGNhbGxiYWNrOkZ1bmN0aW9uLGFsbG93SHRtbDpCb29sZWFuLGNsYXNzTmFtZTpGdCx0cmFuc2l0aW9uOl9lKCJ2YW4tZGlhbG9nLWJvdW5jZSIpLG1lc3NhZ2VBbGlnbjpTdHJpbmcsY2xvc2VPblBvcHN0YXRlOndlLHNob3dDYW5jZWxCdXR0b246Qm9vbGVhbixjYW5jZWxCdXR0b25UZXh0OlN0cmluZyxjYW5jZWxCdXR0b25Db2xvcjpTdHJpbmcsY2FuY2VsQnV0dG9uRGlzYWJsZWQ6Qm9vbGVhbixjb25maXJtQnV0dG9uVGV4dDpTdHJpbmcsY29uZmlybUJ1dHRvbkNvbG9yOlN0cmluZyxjb25maXJtQnV0dG9uRGlzYWJsZWQ6Qm9vbGVhbixzaG93Q29uZmlybUJ1dHRvbjp3ZSxjbG9zZU9uQ2xpY2tPdmVybGF5OkJvb2xlYW4sa2V5Ym9hcmRFbmFibGVkOndlLGRlc3Ryb3lPbkNsb3NlOkJvb2xlYW59KSxsZz1bLi4ucmgsInRyYW5zaXRpb24iLCJjbG9zZU9uUG9wc3RhdGUiLCJkZXN0cm95T25DbG9zZSJdO3ZhciBYYT1UZSh7bmFtZTppZyxwcm9wczpvZyxlbWl0czpbImNvbmZpcm0iLCJjYW5jZWwiLCJrZXlkb3duIiwidXBkYXRlOnNob3ciXSxzZXR1cChlLHtlbWl0OnQsc2xvdHM6bn0pe2NvbnN0IHI9USgpLHM9cnQoe2NvbmZpcm06ITEsY2FuY2VsOiExfSksaT1TPT50KCJ1cGRhdGU6c2hvdyIsUyksbz1TPT57dmFyIEM7aSghMSksKEM9ZS5jYWxsYmFjayk9PW51bGx8fEMuY2FsbChlLFMpfSxsPVM9PigpPT57ZS5zaG93JiYodChTKSxlLmJlZm9yZUNsb3NlPyhzW1NdPSEwLCRpKGUuYmVmb3JlQ2xvc2Use2FyZ3M6W1NdLGRvbmUoKXtvKFMpLHNbU109ITF9LGNhbmNlbGVkKCl7c1tTXT0hMX19KSk6byhTKSl9LGE9bCgiY2FuY2VsIiksdT1sKCJjb25maXJtIiksYz1KZihTPT57dmFyIEMsRjtpZighZS5rZXlib2FyZEVuYWJsZWR8fFMudGFyZ2V0IT09KChGPShDPXIudmFsdWUpPT1udWxsP3ZvaWQgMDpDLnBvcHVwUmVmKT09bnVsbD92b2lkIDA6Ri52YWx1ZSkpcmV0dXJuOyh7RW50ZXI6ZS5zaG93Q29uZmlybUJ1dHRvbj91OnRpLEVzY2FwZTplLnNob3dDYW5jZWxCdXR0b24/YTp0aX0pW1Mua2V5XSgpLHQoImtleWRvd24iLFMpfSxbImVudGVyIiwiZXNjIl0pLGY9KCk9Pntjb25zdCBTPW4udGl0bGU/bi50aXRsZSgpOmUudGl0bGU7aWYoUylyZXR1cm4gZygiZGl2Iix7Y2xhc3M6Y3QoImhlYWRlciIse2lzb2xhdGVkOiFlLm1lc3NhZ2UmJiFuLmRlZmF1bHR9KX0sW1NdKX0saD1TPT57Y29uc3R7bWVzc2FnZTpDLGFsbG93SHRtbDpGLG1lc3NhZ2VBbGlnbjpSfT1lLEQ9Y3QoIm1lc3NhZ2UiLHsiaGFzLXRpdGxlIjpTLFtSXTpSfSksTj1ucihDKT9DKCk6QztyZXR1cm4gRiYmdHlwZW9mIE49PSJzdHJpbmciP2coImRpdiIse2NsYXNzOkQsaW5uZXJIVE1MOk59LG51bGwpOmcoImRpdiIse2NsYXNzOkR9LFtOXSl9LHY9KCk9PntpZihuLmRlZmF1bHQpcmV0dXJuIGcoImRpdiIse2NsYXNzOmN0KCJjb250ZW50Iil9LFtuLmRlZmF1bHQoKV0pO2NvbnN0e3RpdGxlOlMsbWVzc2FnZTpDLGFsbG93SHRtbDpGfT1lO2lmKEMpe2NvbnN0IFI9ISEoU3x8bi50aXRsZSk7cmV0dXJuIGcoImRpdiIse2tleTpGPzE6MCxjbGFzczpjdCgiY29udGVudCIse2lzb2xhdGVkOiFSfSl9LFtoKFIpXSl9fSxwPSgpPT5nKCJkaXYiLHtjbGFzczpbQ2QsY3QoImZvb3RlciIpXX0sW2Uuc2hvd0NhbmNlbEJ1dHRvbiYmZyhzcix7c2l6ZToibGFyZ2UiLHRleHQ6ZS5jYW5jZWxCdXR0b25UZXh0fHxFcigiY2FuY2VsIiksY2xhc3M6Y3QoImNhbmNlbCIpLHN0eWxlOntjb2xvcjplLmNhbmNlbEJ1dHRvbkNvbG9yfSxsb2FkaW5nOnMuY2FuY2VsLGRpc2FibGVkOmUuY2FuY2VsQnV0dG9uRGlzYWJsZWQsb25DbGljazphfSxudWxsKSxlLnNob3dDb25maXJtQnV0dG9uJiZnKHNyLHtzaXplOiJsYXJnZSIsdGV4dDplLmNvbmZpcm1CdXR0b25UZXh0fHxFcigiY29uZmlybSIpLGNsYXNzOltjdCgiY29uZmlybSIpLHtbRWRdOmUuc2hvd0NhbmNlbEJ1dHRvbn1dLHN0eWxlOntjb2xvcjplLmNvbmZpcm1CdXR0b25Db2xvcn0sbG9hZGluZzpzLmNvbmZpcm0sZGlzYWJsZWQ6ZS5jb25maXJtQnV0dG9uRGlzYWJsZWQsb25DbGljazp1fSxudWxsKV0pLGI9KCk9PmcoRmQse2NsYXNzOmN0KCJmb290ZXIiKX0se2RlZmF1bHQ6KCk9PltlLnNob3dDYW5jZWxCdXR0b24mJmcoVW8se3R5cGU6Indhcm5pbmciLHRleHQ6ZS5jYW5jZWxCdXR0b25UZXh0fHxFcigiY2FuY2VsIiksY2xhc3M6Y3QoImNhbmNlbCIpLGNvbG9yOmUuY2FuY2VsQnV0dG9uQ29sb3IsbG9hZGluZzpzLmNhbmNlbCxkaXNhYmxlZDplLmNhbmNlbEJ1dHRvbkRpc2FibGVkLG9uQ2xpY2s6YX0sbnVsbCksZS5zaG93Q29uZmlybUJ1dHRvbiYmZyhVbyx7dHlwZToiZGFuZ2VyIix0ZXh0OmUuY29uZmlybUJ1dHRvblRleHR8fEVyKCJjb25maXJtIiksY2xhc3M6Y3QoImNvbmZpcm0iKSxjb2xvcjplLmNvbmZpcm1CdXR0b25Db2xvcixsb2FkaW5nOnMuY29uZmlybSxkaXNhYmxlZDplLmNvbmZpcm1CdXR0b25EaXNhYmxlZCxvbkNsaWNrOnV9LG51bGwpXX0pLHk9KCk9Pm4uZm9vdGVyP24uZm9vdGVyKCk6ZS50aGVtZT09PSJyb3VuZC1idXR0b24iP2IoKTpwKCk7cmV0dXJuKCk9Pntjb25zdHt3aWR0aDpTLHRpdGxlOkMsdGhlbWU6RixtZXNzYWdlOlIsY2xhc3NOYW1lOkR9PWU7cmV0dXJuIGcoVnIsc3Qoe3JlZjpyLHJvbGU6ImRpYWxvZyIsY2xhc3M6W2N0KFtGXSksRF0sc3R5bGU6e3dpZHRoOlVlKFMpfSx0YWJpbmRleDowLCJhcmlhLWxhYmVsbGVkYnkiOkN8fFIsb25LZXlkb3duOmMsIm9uVXBkYXRlOnNob3ciOml9LFVyKGUsbGcpKSx7ZGVmYXVsdDooKT0+W2YoKSx2KCkseSgpXX0pfX19KTtsZXQgb2k7Y29uc3QgYWc9e3RpdGxlOiIiLHdpZHRoOiIiLHRoZW1lOm51bGwsbWVzc2FnZToiIixvdmVybGF5OiEwLGNhbGxiYWNrOm51bGwsdGVsZXBvcnQ6ImJvZHkiLGNsYXNzTmFtZToiIixhbGxvd0h0bWw6ITEsbG9ja1Njcm9sbDohMCx0cmFuc2l0aW9uOnZvaWQgMCxiZWZvcmVDbG9zZTpudWxsLG92ZXJsYXlDbGFzczoiIixvdmVybGF5U3R5bGU6dm9pZCAwLG1lc3NhZ2VBbGlnbjoiIixjYW5jZWxCdXR0b25UZXh0OiIiLGNhbmNlbEJ1dHRvbkNvbG9yOm51bGwsY2FuY2VsQnV0dG9uRGlzYWJsZWQ6ITEsY29uZmlybUJ1dHRvblRleHQ6IiIsY29uZmlybUJ1dHRvbkNvbG9yOm51bGwsY29uZmlybUJ1dHRvbkRpc2FibGVkOiExLHNob3dDb25maXJtQnV0dG9uOiEwLHNob3dDYW5jZWxCdXR0b246ITEsY2xvc2VPblBvcHN0YXRlOiEwLGNsb3NlT25DbGlja092ZXJsYXk6ITEsZGVzdHJveU9uQ2xvc2U6ITF9O2xldCBjZz1GZSh7fSxhZyk7ZnVuY3Rpb24gdWcoKXsoe2luc3RhbmNlOm9pfT1ZYSh7c2V0dXAoKXtjb25zdHtzdGF0ZTp0LHRvZ2dsZTpufT1HYSgpO3JldHVybigpPT5nKFhhLHN0KHQseyJvblVwZGF0ZTpzaG93IjpufSksbnVsbCl9fSkpfWZ1bmN0aW9uIEFlKGUpe3JldHVybiB1cj9uZXcgUHJvbWlzZSgodCxuKT0+e29pfHx1ZygpLG9pLm9wZW4oRmUoe30sY2csZSx7Y2FsbGJhY2s6cj0+eyhyPT09ImNvbmZpcm0iP3Q6bikocil9fSkpfSk6UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9Y29uc3QgZmc9ZT0+QWUoRmUoe3Nob3dDYW5jZWxCdXR0b246ITB9LGUpKTtPZShYYSk7Y29uc3RbZGcsbW4saGddPUVlKCJsaXN0IiksZ2c9e2Vycm9yOkJvb2xlYW4sb2Zmc2V0OnV0KDMwMCksbG9hZGluZzpCb29sZWFuLGRpc2FibGVkOkJvb2xlYW4sZmluaXNoZWQ6Qm9vbGVhbixzY3JvbGxlcjpPYmplY3QsZXJyb3JUZXh0OlN0cmluZyxkaXJlY3Rpb246X2UoImRvd24iKSxsb2FkaW5nVGV4dDpTdHJpbmcsZmluaXNoZWRUZXh0OlN0cmluZyxpbW1lZGlhdGVDaGVjazp3ZX07dmFyIG1nPVRlKHtuYW1lOmRnLHByb3BzOmdnLGVtaXRzOlsibG9hZCIsInVwZGF0ZTplcnJvciIsInVwZGF0ZTpsb2FkaW5nIl0sc2V0dXAoZSx7ZW1pdDp0LHNsb3RzOm59KXtjb25zdCByPVEoZS5sb2FkaW5nKSxzPVEoKSxpPVEoKSxvPVdhKCksbD1GaShzKSxhPW5lKCgpPT5lLnNjcm9sbGVyfHxsLnZhbHVlKSx1PSgpPT57SWUoKCk9PntpZihyLnZhbHVlfHxlLmZpbmlzaGVkfHxlLmRpc2FibGVkfHxlLmVycm9yfHxvPy52YWx1ZT09PSExKXJldHVybjtjb25zdHtkaXJlY3Rpb246cH09ZSxiPStlLm9mZnNldCx5PUN0KGEpO2lmKCF5LmhlaWdodHx8U24ocykpcmV0dXJuO2xldCBTPSExO2NvbnN0IEM9Q3QoaSk7cD09PSJ1cCI/Uz15LnRvcC1DLnRvcDw9YjpTPUMuYm90dG9tLXkuYm90dG9tPD1iLFMmJihyLnZhbHVlPSEwLHQoInVwZGF0ZTpsb2FkaW5nIiwhMCksdCgibG9hZCIpKX0pfSxjPSgpPT57aWYoZS5maW5pc2hlZCl7Y29uc3QgcD1uLmZpbmlzaGVkP24uZmluaXNoZWQoKTplLmZpbmlzaGVkVGV4dDtpZihwKXJldHVybiBnKCJkaXYiLHtjbGFzczptbigiZmluaXNoZWQtdGV4dCIpfSxbcF0pfX0sZj0oKT0+e3QoInVwZGF0ZTplcnJvciIsITEpLHUoKX0saD0oKT0+e2lmKGUuZXJyb3Ipe2NvbnN0IHA9bi5lcnJvcj9uLmVycm9yKCk6ZS5lcnJvclRleHQ7aWYocClyZXR1cm4gZygiZGl2Iix7cm9sZToiYnV0dG9uIixjbGFzczptbigiZXJyb3ItdGV4dCIpLHRhYmluZGV4OjAsb25DbGljazpmfSxbcF0pfX0sdj0oKT0+e2lmKHIudmFsdWUmJiFlLmZpbmlzaGVkJiYhZS5kaXNhYmxlZClyZXR1cm4gZygiZGl2Iix7Y2xhc3M6bW4oImxvYWRpbmciKX0sW24ubG9hZGluZz9uLmxvYWRpbmcoKTpnKGpyLHtjbGFzczptbigibG9hZGluZy1pY29uIil9LHtkZWZhdWx0OigpPT5bZS5sb2FkaW5nVGV4dHx8aGcoImxvYWRpbmciKV19KV0pfTtyZXR1cm4gcGUoKCk9PltlLmxvYWRpbmcsZS5maW5pc2hlZCxlLmVycm9yXSx1KSxvJiZwZShvLHA9PntwJiZ1KCl9KSxYbCgoKT0+e3IudmFsdWU9ZS5sb2FkaW5nfSksaHQoKCk9PntlLmltbWVkaWF0ZUNoZWNrJiZ1KCl9KSxUdCh7Y2hlY2s6dX0pLHVuKCJzY3JvbGwiLHUse3RhcmdldDphLHBhc3NpdmU6ITB9KSwoKT0+e3ZhciBwO2NvbnN0IGI9KHA9bi5kZWZhdWx0KT09bnVsbD92b2lkIDA6cC5jYWxsKG4pLHk9ZygiZGl2Iix7cmVmOmksY2xhc3M6bW4oInBsYWNlaG9sZGVyIil9LG51bGwpO3JldHVybiBnKCJkaXYiLHtyZWY6cyxyb2xlOiJmZWVkIixjbGFzczptbigpLCJhcmlhLWJ1c3kiOnIudmFsdWV9LFtlLmRpcmVjdGlvbj09PSJkb3duIj9iOnksdigpLGMoKSxoKCksZS5kaXJlY3Rpb249PT0idXAiP2I6eV0pfX19KTtjb25zdCBlbD1PZShtZyksW3BnLHlnXT1FZSgibm90aWZ5IiksYmc9WyJsb2NrU2Nyb2xsIiwicG9zaXRpb24iLCJzaG93IiwidGVsZXBvcnQiLCJ6SW5kZXgiXSx2Zz1GZSh7fSxkcyx7dHlwZTpfZSgiZGFuZ2VyIiksY29sb3I6U3RyaW5nLG1lc3NhZ2U6ZmUscG9zaXRpb246X2UoInRvcCIpLGNsYXNzTmFtZTpGdCxiYWNrZ3JvdW5kOlN0cmluZyxsb2NrU2Nyb2xsOkJvb2xlYW59KTt2YXIgWmE9VGUoe25hbWU6cGcscHJvcHM6dmcsZW1pdHM6WyJ1cGRhdGU6c2hvdyJdLHNldHVwKGUse2VtaXQ6dCxzbG90czpufSl7Y29uc3Qgcj1zPT50KCJ1cGRhdGU6c2hvdyIscyk7cmV0dXJuKCk9PmcoVnIsc3Qoe2NsYXNzOlt5ZyhbZS50eXBlXSksZS5jbGFzc05hbWVdLHN0eWxlOntjb2xvcjplLmNvbG9yLGJhY2tncm91bmQ6ZS5iYWNrZ3JvdW5kfSxvdmVybGF5OiExLGR1cmF0aW9uOi4yLCJvblVwZGF0ZTpzaG93IjpyfSxVcihlLGJnKSkse2RlZmF1bHQ6KCk9PltuLmRlZmF1bHQ/bi5kZWZhdWx0KCk6ZS5tZXNzYWdlXX0pfX0pO2xldCB0bCx3bjtjb25zdCBfZz1lPT5mcihlKT9lOnttZXNzYWdlOmV9O2Z1bmN0aW9uIHdnKCl7KHtpbnN0YW5jZTp3bn09WWEoe3NldHVwKCl7Y29uc3R7c3RhdGU6ZSx0b2dnbGU6dH09R2EoKTtyZXR1cm4oKT0+ZyhaYSxzdChlLHsib25VcGRhdGU6c2hvdyI6dH0pLG51bGwpfX0pKX1jb25zdCB4Zz0oKT0+KHt0eXBlOiJkYW5nZXIiLGNvbG9yOnZvaWQgMCxtZXNzYWdlOiIiLG9uQ2xvc2U6dm9pZCAwLG9uQ2xpY2s6dm9pZCAwLG9uT3BlbmVkOnZvaWQgMCxkdXJhdGlvbjozZTMscG9zaXRpb246dm9pZCAwLGNsYXNzTmFtZToiIixsb2NrU2Nyb2xsOiExLGJhY2tncm91bmQ6dm9pZCAwfSk7bGV0IFNnPXhnKCk7Y29uc3QgQ2c9KCk9Pnt3biYmd24udG9nZ2xlKCExKX07ZnVuY3Rpb24gZW4oZSl7aWYodXIpcmV0dXJuIHdufHx3ZygpLGU9RmUoe30sU2csX2coZSkpLHduLm9wZW4oZSksY2xlYXJUaW1lb3V0KHRsKSxlLmR1cmF0aW9uPjAmJih0bD1zZXRUaW1lb3V0KENnLGUuZHVyYXRpb24pKSx3bn1PZShaYSk7Y29uc3QgRWc9KGUsdCk9Pntjb25zdCBuPWUuX192Y2NPcHRzfHxlO2Zvcihjb25zdFtyLHNdb2YgdCluW3JdPXM7cmV0dXJuIG59LFRnPXtjb21wb25lbnRzOntbUW8ubmFtZV06UW8sW2VsLm5hbWVdOmVsLFtpaS5uYW1lXTppaSxbWm8ubmFtZV06Wm8sW2pyLm5hbWVdOmpyLFtWci5uYW1lXTpWcixbc3IubmFtZV06c3IsW1dvLm5hbWVdOldvLFtLby5uYW1lXTpLbyxbWW8ubmFtZV06WW99LGRhdGEoKXtyZXR1cm57aXNfYXBwbHlfY291cnNlOiExLGlzX3N0dWR5aW5nX2NvdXJzZTohMSxpc19maWZfcmVhZDohMSxpc19sb2FkaW5nOiExLGNvdXJzZV9wYWdlOjEsY291cnNlX21heElEOm51bGwsYXBwbHlfY291cnNlOltdLHN1Y2Nlc3NfYXBwbHlfY291cnNlOltdLHN0dWR5aW5nX2FjdGl2ZTowLHN0dWR5aW5nX2NvdXJzZV9wYWdlOjEsc3R1ZHlpbmdfY291cnNlX21heFJlZ2lzdGVyVGltZTpudWxsLGlzX3N0YXJ0X3N0dWR5aW5nOiExLHN0dWR5aW5nX3NldGltZTpudWxsLHN0dWR5aW5nX2NvdXJzZXM6W10sbm9fYXBwcmFpc2VfcGFnZToxLG5vX2FwcHJhaXNlX21heFJlZ2lzdGVyVGltZTpudWxsLG5vX2FwcHJhaXNlX2NvdXJzZXM6W10sZmlmX2xldmVsSWQ6bnVsbCxmaWZfcXVlc3Rpb25JZDpudWxsLGZpZl9xdWVzdGlvbl9sZW5ndGg6MCxmaWZfc2VtYW50aWM6MCxmaWZfYWNjdXJhY3k6MCxmaWZfZmx1ZW5jeTowLGZpZl9jb21wbGV0ZTowLGZpZl9zY29yZTowLGZpZl9hbnNEZXRhaWw6MCxmaWZfcmVzdWx0SnNvbjpbXX19LG1vdW50ZWQoKXt0aGlzLmluaXRpYWxpemUoKX0sbWV0aG9kczp7aW5pdGlhbGl6ZSgpe3dpbmRvdy5sb2NhdGlvbi5ocmVmPT09Imh0dHBzOi8vY2xhc3MuYmlnZGF0YS5uY3Z0Lm5ldC9TdHVkZW50L0NvdXJzZS9pbmRleC5odG1sIiYmKHRoaXMuaXNfYXBwbHlfY291cnNlPSEwLHRoaXMuZ2V0Q291cnNlcygpKSx3aW5kb3cubG9jYXRpb24uaHJlZj09PSJodHRwczovL2NsYXNzLmJpZ2RhdGEubmN2dC5uZXQvU3R1ZGVudC9NeS9teUNvdXJzZS5odG1sIiYmKHRoaXMuaXNfc3R1ZHlpbmdfY291cnNlPSEwLHRoaXMuZ2V0U3R1ZHlpbmdDb3Vyc2VzKCkpLHdpbmRvdy5sb2NhdGlvbi5ob3N0PT09InN0YXRpYy5maWZlZHUuY29tIiYmKHRoaXMuaXNfZmlmX3JlYWQ9ITApfSxnZXRDb3Vyc2VzKCl7dGhpcy5pc19sb2FkaW5nPSEwLHRoaXMuJHJlcS5uY3Z0UE9TVCgiU3R1ZGVudC9Db3Vyc2UvZ2V0Q291cnNlc0NhbkFwcGx5Lmh0bWwiLHtwOnRoaXMuY291cnNlX3BhZ2UsbWF4SUQ6dGhpcy5jb3Vyc2VfbWF4SUR9KS50aGVuKGU9Pnt0aGlzLmNvdXJzZV9tYXhJRD1lWzBdLGVbMV0ubGVuZ3RoIT09MD8oZVsxXS5tYXAodD0+e3QuaXNBcHBseT0hMX0pLHRoaXMuYXBwbHlfY291cnNlLnB1c2goLi4uZVsxXSksdGhpcy5jb3Vyc2VfcGFnZSsrLHRoaXMuZ2V0Q291cnNlcygpKToodGhpcy5pc19sb2FkaW5nPSExLHRoaXMuYXBwbHlfY291cnNlLmxlbmd0aD09PTA/QWUoe3RpdGxlOiLmj5DnpLoiLG1lc3NhZ2U6IuayoeacieWPr+WtpuS5oOeahOivvueoiyJ9KTpmZyh7dGl0bGU6IuaPkOekuiIsbWVzc2FnZTpg5YWx6I635Y+W5YiwJHt0aGlzLmFwcGx5X2NvdXJzZS5sZW5ndGh95Liq6K++56iL77yM6KaB5YWo6YOo5Yqg5YWl5a2m5Lmg5ZCX77yfYH0pLnRoZW4oKCk9Pnt0aGlzLmFkZENvdXJzZVRvU3R1ZHkoKX0pKX0pLmNhdGNoKGU9PntBZSh7dGl0bGU6IumUmeivryIsbWVzc2FnZTpg6I635Y+W5Y+v5a2m5Lmg6K++56iL5aSx6LSlOiR7ZX1gfSl9KX0sYXN5bmMgYWRkQ291cnNlVG9TdHVkeSgpe2xldCBlPTA7Zm9yKGxldCB0PTA7dDx0aGlzLmFwcGx5X2NvdXJzZS5sZW5ndGg7dCsrKXRyeXthd2FpdCB0aGlzLiRyZXEubmN2dFBPU1QoIlN0dWRlbnQvQ291cnNlL2NvdXJzZVJlZ2lzdGVyLmh0bWwiLHtjb3Vyc2VJRDp0aGlzLmFwcGx5X2NvdXJzZVt0XS5jb3Vyc2VJRH0pPT09MSYmZSsrfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoYOWKoOWFpeivvueoi+Wksei0pTogJHt0aGlzLmFwcGx5X2NvdXJzZVt0XS5jb3Vyc2VJRH0gLSAke259YCl9dGhpcy5hcHBseV9jb3Vyc2UubGVuZ3RoPT09ZT9BZSh7dGl0bGU6IuaPkOekuiIsbWVzc2FnZToi5omA5pyJ6K++56iL5bey5oiQ5Yqf5Yqg5YWl5a2m5LmgIn0pOkFlKHt0aXRsZToi6K2m5ZGKIixtZXNzYWdlOmDpg6jliIbor77nqIvliqDlhaXlrabkuaDlpLHotKXjgILmiJDlip/liqDlhaXnmoTor77nqIvmlbDvvJoke2V9YH0pfSxnZXRTdHVkeWluZ0NvdXJzZXMoKXt0aGlzLiRyZXEubmN2dFBPU1QoIlN0dWRlbnQvTXkvbXlDb3Vyc2VfeHh6Lmh0bWwiLHtwOnRoaXMuc3R1ZHlpbmdfY291cnNlX3BhZ2UsbWF4UmVnaXN0ZXJUaW1lOnRoaXMuc3R1ZHlpbmdfY291cnNlX21heFJlZ2lzdGVyVGltZX0pLnRoZW4oZT0+e3RoaXMuc3R1ZHlpbmdfY291cnNlX21heFJlZ2lzdGVyVGltZT1lWzBdLGVbMV0ubGVuZ3RoIT09MD8oZVsxXS5tYXAodD0+e3Quc3RhcnRUaW1lPSLmnKrlrabkuaDlrozmr5UifSksdGhpcy5zdHVkeWluZ19jb3Vyc2VzLnB1c2goLi4uZVsxXSksdGhpcy5zdHVkeWluZ19jb3Vyc2VfcGFnZSsrLHRoaXMuZ2V0U3R1ZHlpbmdDb3Vyc2VzKCkpOnRoaXMuc3R1ZHlpbmdfY291cnNlcy5sZW5ndGg9PT0wP0FlKHt0aXRsZToi5o+Q56S6IixtZXNzYWdlOiLmsqHmnInmraPlnKjlrabkuaDnmoTor77nqIsifSk6QWUoe3RpdGxlOiLmj5DnpLoiLG1lc3NhZ2U6YOWFseiOt+WPluWIsCR7dGhpcy5zdHVkeWluZ19jb3Vyc2VzLmxlbmd0aH3kuKrmraPlnKjlrabkuaDnmoTor77nqIvvvIzor7fngrnlh7vlvIDlp4vlrabkuaDmjInpkq7lvIDlp4vlrabkuaBgfSl9KS5jYXRjaChlPT57QWUoe3RpdGxlOiLplJnor68iLG1lc3NhZ2U6YOiOt+WPluWtpuS5oOS4reivvueoi+Wksei0pToke2V9YH0pfSl9LGFzeW5jIHN0YXJ0U3R1ZHlDb3Vyc2UoKXt0aGlzLmlzX2xvYWRpbmc9ITA7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PHRoaXMuc3R1ZHlpbmdfY291cnNlcy5sZW5ndGg7dCsrKXRyeXtjb25zdCBuPWF3YWl0IHRoaXMuJHJlcS5uY3Z0UE9TVCgiU3R1ZGVudC9Db3Vyc2UvZ2V0U2Vjb25kc0FuZFJlbW1iZXJTdGFydFRpbWUuaHRtbCIse2NvdXJzZUlEOnRoaXMuc3R1ZHlpbmdfY291cnNlc1t0XS5jb3Vyc2VJRH0pO24hPT0iIiYmKHRoaXMuc3R1ZHlpbmdfY291cnNlc1t0XS5zdGFydFRpbWU9bixlKyspfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoYOW8gOWni+WtpuS5oOivvueoi+Wksei0pTogJHt0aGlzLnN0dWR5aW5nX2NvdXJzZXNbdF0uY291cnNlSUR9IC0gJHtufWApfXRoaXMuc3R1ZHlpbmdfY291cnNlcy5sZW5ndGg9PT1lP0FlKHt0aXRsZToi5o+Q56S6IixtZXNzYWdlOiLmiYDmnInor77nqIvlt7LmiJDlip/lvIDlp4vlrabkuaAifSk6QWUoe3RpdGxlOiLorablkYoiLG1lc3NhZ2U6YOmDqOWIhuivvueoi+W8gOWni+WtpuS5oOWksei0peOAguaIkOWKn+W8gOWni+WtpuS5oOeahOivvueoi+aVsO+8miR7ZX1gfSksdGhpcy5pc19sb2FkaW5nPSExLHRoaXMuaXNfc3RhcnRfc3R1ZHlpbmc9ITAsdGhpcy5zdHVkeWluZ19jb3Vyc2VzLnNvcnQoKHQsbik9Pk51bWJlcih0LnN0YXJ0VGltZSktTnVtYmVyKG4uc3RhcnRUaW1lKSksdGhpcy5jb3Vyc2VDb3VudGRvd24oKX0sYXN5bmMgZW5kU3R1ZHlDb3Vyc2UoKXt0aGlzLmlzX2xvYWRpbmc9ITA7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PHRoaXMuc3R1ZHlpbmdfY291cnNlcy5sZW5ndGg7dCsrKXRyeXtjb25zdCBuPWF3YWl0IHRoaXMuJHJlcS5uY3Z0UE9TVCgiU3R1ZGVudC9Db3Vyc2UvcmVtbWJlclN0dWR5VGltZS5odG1sIix7Y291cnNlSUQ6dGhpcy5zdHVkeWluZ19jb3Vyc2VzW3RdLmNvdXJzZUlEfSk7biE9PSIiJiYodGhpcy5zdHVkeWluZ19jb3Vyc2VzW3RdLnN0YXJ0VGltZT1uLGUrKyl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcihg57uT5p2f5a2m5Lmg6K++56iL5aSx6LSlOiAke3RoaXMuc3R1ZHlpbmdfY291cnNlc1t0XS5jb3Vyc2VJRH0gLSAke259YCl9dGhpcy5zdHVkeWluZ19jb3Vyc2VzLmxlbmd0aD09PWU/QWUoe3RpdGxlOiLmj5DnpLoiLG1lc3NhZ2U6IuaJgOacieivvueoi+W3suaIkOWKn+e7k+adn+WtpuS5oCJ9KTpBZSh7dGl0bGU6IuitpuWRiiIsbWVzc2FnZTpg6YOo5YiG6K++56iL57uT5p2f5a2m5Lmg5aSx6LSl44CC5bey57uT5p2f5a2m5Lmg55qE6K++56iL5pWw77yaJHtlfWB9KSx0aGlzLmlzX2xvYWRpbmc9ITEsdGhpcy5pc19zdGFydF9zdHVkeWluZz0hMSxjbGVhckludGVydmFsKHRoaXMuc3R1ZHlpbmdfc2V0aW1lKX0sY291cnNlQ291bnRkb3duKCl7dGhpcy5zdHVkeWluZ19zZXRpbWU9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnN0dWR5aW5nX2NvdXJzZXMuZm9yRWFjaChlPT57aWYoTnVtYmVyKGUuc3RhcnRUaW1lKT09PTApe3RoaXMuZW5kU2luZ2xlU3R1ZHlDb3Vyc2UoZS5jb3Vyc2VJRCxlLmNvdXJzZU5hbWUpO3JldHVybn1lLnN0YXJ0VGltZT1OdW1iZXIoZS5zdGFydFRpbWUpLTF9KX0sMWUzKX0sYXN5bmMgZW5kU2luZ2xlU3R1ZHlDb3Vyc2UoZSx0KXt0cnl7YXdhaXQgdGhpcy4kcmVxLm5jdnRQT1NUKCJTdHVkZW50L0NvdXJzZS9yZW1tYmVyU3R1ZHlUaW1lLmh0bWwiLHtjb3Vyc2VJRDplfSk9PT0wJiYodGhpcy5zdHVkeWluZ19jb3Vyc2VzPXRoaXMuc3R1ZHlpbmdfY291cnNlcy5maWx0ZXIocj0+ci5jb3Vyc2VJRCE9PWUpLGVuKHt0eXBlOiJzdWNjZXNzIixtZXNzYWdlOmDor77nqIsgJHt0fSDlrabkuaDlrozmr5VgfSksdGhpcy5zdHVkeWluZ19jb3Vyc2VzLmxlbmd0aD09PTAmJih0aGlzLmlzX3N0YXJ0X3N0dWR5aW5nPSExLGNsZWFySW50ZXJ2YWwodGhpcy5zdHVkeWluZ19zZXRpbWUpLGVuKHt0eXBlOiJzdWNjZXNzIixtZXNzYWdlOiLmiYDmnInor77nqIvlrabkuaDlrozmr5XvvIzlt7LlgZzmraLlgJLorqHml7YifSkpKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKGDnu5PmnZ/lrabkuaDor77nqIvlpLHotKU6ICR7ZX0gLSAke259YCksZW4oe3R5cGU6ImRhbmdlciIsbWVzc2FnZTpg6K++56iLICR7dH0g57uT5p2f5a2m5Lmg5aSx6LSlYH0pfX0sZ2V0Tm9BcHByYWlzZUNvdXJzZXMoKXt0aGlzLiRyZXEubmN2dFBPU1QoIlN0dWRlbnQvTXkvbXlDb3Vyc2Vfd3BqLmh0bWwiLHtwOnRoaXMubm9fYXBwcmFpc2VfcGFnZSxtYXhSZWdpc3RlclRpbWU6dGhpcy5ub19hcHByYWlzZV9tYXhSZWdpc3RlclRpbWV9KS50aGVuKGU9Pnt0aGlzLm5vX2FwcHJhaXNlX21heFJlZ2lzdGVyVGltZT1lWzBdLGVbMV0ubGVuZ3RoIT09MD8oZVsxXS5tYXAodD0+e3QuaXNBcHByYWlzZT0hMX0pLHRoaXMubm9fYXBwcmFpc2VfY291cnNlcy5wdXNoKC4uLmVbMV0pLHRoaXMubm9fYXBwcmFpc2VfcGFnZSsrLHRoaXMuZ2V0Tm9BcHByYWlzZUNvdXJzZXMoKSk6dGhpcy5ub19hcHByYWlzZV9jb3Vyc2VzLmxlbmd0aD09PTA/QWUoe3RpdGxlOiLmj5DnpLoiLG1lc3NhZ2U6IuayoeacieacquivhOS7t+eahOivvueoiyJ9KTpBZSh7dGl0bGU6IuaPkOekuiIsbWVzc2FnZTpg5YWx6I635Y+W5YiwJHt0aGlzLm5vX2FwcHJhaXNlX2NvdXJzZXMubGVuZ3RofeS4quacquivhOS7t+eahOivvueoi2B9KX0pLmNhdGNoKGU9PntBZSh7dGl0bGU6IumUmeivryIsbWVzc2FnZTpg6I635Y+W5pyq6K+E5Lu36K++56iL5aSx6LSlOiR7ZX1gfSl9KX0sYXN5bmMgYXBwcmFpc2VBbGxDb3Vyc2VzKCl7aWYodGhpcy5ub19hcHByYWlzZV9jb3Vyc2VzLmxlbmd0aD09PTApe0FlKHt0aXRsZToi5o+Q56S6IixtZXNzYWdlOiLmsqHmnInmnKror4Tku7fnmoTor77nqIsifSk7cmV0dXJufXRoaXMuaXNfbG9hZGluZz0hMDtsZXQgZT0wO2ZvcihsZXQgdD0wO3Q8dGhpcy5ub19hcHByYWlzZV9jb3Vyc2VzLmxlbmd0aDt0KyspdHJ5e2F3YWl0IHRoaXMuJHJlcS5uY3Z0UE9TVCgiU3R1ZGVudC9Db3Vyc2UvY29tbWVudC5odG1sIix7Y291cnNlSUQ6dGhpcy5ub19hcHByYWlzZV9jb3Vyc2VzW3RdLmNvdXJzZUlELHN0YXJzOjUsY29tbWVudFN0cjoi6Z2e5bi45aW955qE6K++56iL77yM5YaF5a655Liw5a+M77yM6K6y6Kej5riF5pmw77yM6Z2e5bi45oSf6LCi6ICB5biI55qE6L6b5Yuk5LuY5Ye677yBIn0pPT09MiYmKHRoaXMubm9fYXBwcmFpc2VfY291cnNlc1t0XS5pc0FwcHJhaXNlPSEwLGUrKyl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcihg6K+E5Lu36K++56iL5aSx6LSlOiAke3RoaXMubm9fYXBwcmFpc2VfY291cnNlc1t0XS5jb3Vyc2VJRH0gLSAke259YCl9dGhpcy5ub19hcHByYWlzZV9jb3Vyc2VzLmxlbmd0aD09PWU/QWUoe3RpdGxlOiLmj5DnpLoiLG1lc3NhZ2U6IuaJgOacieivvueoi+W3suaIkOWKn+ivhOS7t++8jOS4pOenkuWQjua4heepuuacquivhOS7t+ivvueoi+WIl+ihqCJ9KTpBZSh7dGl0bGU6IuitpuWRiiIsbWVzc2FnZTpg6YOo5YiG6K++56iL6K+E5Lu35aSx6LSl44CC5oiQ5Yqf6K+E5Lu355qE6K++56iL5pWw77yaJHtlfeOAguS4pOenkuWQjua4heepuuacquivhOS7t+ivvueoi+WIl+ihqGB9KSx0aGlzLmlzX2xvYWRpbmc9ITEsc2V0VGltZW91dCgoKT0+e3RoaXMubm9fYXBwcmFpc2VfY291cnNlcz1bXX0sMmUzKX0sZ2V0RmlmUmVhZFBhcmFtcygpe3RoaXMuaXNfbG9hZGluZz0hMDtjb25zdCByPSh3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaCgvXD8oLiopLyk/LlsxXXx8IiIpLnNwbGl0KCImIikucmVkdWNlKChzLGkpPT57Y29uc3RbbyxsXT1pLnNwbGl0KCI9Iik7cmV0dXJuIG8mJihzW29dPWx8fCIiKSxzfSx7fSk7dGhpcy5maWZfbGV2ZWxJZD1yLmdJZCx0aGlzLiRyZXEuZmlmUE9TVCgiaHR0cHM6Ly9tb3JhbC5maWZlZHUuY29tL2t5eGwtYXBwL2NvbHVtbi9nZXRMZXZlbEluZm8iLHtsZXZlbElkOnRoaXMuZmlmX2xldmVsSWR9KS50aGVuKHM9Pnt0aGlzLmZpZl9xdWVzdGlvbklkPXMuZGF0YS5jb250ZW50Lm1vc2hpWzFdLnF1ZXN0aW9uLnF1ZXN0aW9uaWQsdGhpcy5maWZfcXVlc3Rpb25fbGVuZ3RoPXMuZGF0YS5jb250ZW50Lm1vc2hpWzFdLnF1ZXN0aW9uLnFjb250ZW50Lml0ZW1bMF0ucXVlc3Rpb25zLmxlbmd0aCxBZSh7dGl0bGU6IuaPkOekuiIsbWVzc2FnZToi6I635Y+W5b+F6KaB5Y+C5pWw5a6M5oiQ77yM6K+354K55Ye75LiA6ZSu5a6M5oiQ5Y+j6K+t5L2c5Lia5oyJ6ZKuIn0pfSkuY2F0Y2gocz0+e2VuKHt0eXBlOiJkYW5nZXIiLG1lc3NhZ2U6YOiOt+WPluW/heimgeWPguaVsOWksei0pe+8miR7c31gfSl9KS5maW5hbGx5KCgpPT57dGhpcy5pc19sb2FkaW5nPSExfSl9LGNvbXBsZXRlRmlmUmVhZCgpe2lmKCF0aGlzLmZpZl9sZXZlbElkfHwhdGhpcy5maWZfcXVlc3Rpb25JZHx8dGhpcy5maWZfcXVlc3Rpb25fbGVuZ3RoPT09MCl7ZW4oe3R5cGU6ImRhbmdlciIsbWVzc2FnZToi6K+35YWI6I635Y+W5b+F6KaB5Y+C5pWwIn0pO3JldHVybn10aGlzLmlzX2xvYWRpbmc9ITA7Zm9yKGxldCBlPTA7ZTx0aGlzLmZpZl9xdWVzdGlvbl9sZW5ndGg7ZSsrKXRoaXMuZmlmX3Jlc3VsdEpzb24ucHVzaCh7cXVlc3Rpb25JZDpgJHt0aGlzLmZpZl9xdWVzdGlvbklkfSMwIyR7ZX1gLHNlbWFudGljOk51bWJlcih0aGlzLmZpZl9zZW1hbnRpYyksYWNjdXJhY3k6TnVtYmVyKHRoaXMuZmlmX2FjY3VyYWN5KSxmbHVlbmN5Ok51bWJlcih0aGlzLmZpZl9mbHVlbmN5KSxjb21wbGV0ZTpOdW1iZXIodGhpcy5maWZfY29tcGxldGUpLHNjb3JlOk51bWJlcih0aGlzLmZpZl9zY29yZSksYW5zRGV0YWlsOmB3b3JkIyR7dGhpcy5maWZfYW5zRGV0YWlsfWAsbGVhcm5fdGltZTozfSk7dGhpcy5maWZfcmVzdWx0SnNvbj1KU09OLnN0cmluZ2lmeSh0aGlzLmZpZl9yZXN1bHRKc29uKSxjb25zb2xlLmxvZyh0aGlzLmZpZl9yZXN1bHRKc29uKSx0aGlzLiRyZXEuZmlmUE9TVCgiaHR0cHM6Ly9tb3JhbC5maWZlZHUuY29tL2t5eGwtYXBwLWNoYWxsZW5nZS9ldmFsdWF0aW9uL3N1Ym1pdENoYWxsZW5nZVJlc3VsdHMiLHt0YXNrSWQ6MCxsZXZlbElkOnRoaXMuZmlmX2xldmVsSWQsc3R1ZGVudElkOkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oInVzZXJJbmZvIikpLmRhdGEudXNlcklkLHJlc3VsdEpzb246dGhpcy5maWZfcmVzdWx0SnNvbn0pLnRoZW4oZT0+e2Uuc3RhdHVzPT09MT9BZSh7dGl0bGU6IuaPkOekuiIsbWVzc2FnZToiRklG5Y+j6K+t5L2c5Lia5bey5a6M5oiQIn0pOmVuKHt0eXBlOiJkYW5nZXIiLG1lc3NhZ2U6YEZJRuWPo+ivreS9nOS4muWujOaIkOWksei0pe+8miR7ZS5tc2d9YH0pfSkuY2F0Y2goZT0+e2VuKHt0eXBlOiJkYW5nZXIiLG1lc3NhZ2U6YEZJRuWPo+ivreS9nOS4muWujOaIkOWksei0pe+8miR7ZX1gfSl9KS5maW5hbGx5KCgpPT57dGhpcy5pc19sb2FkaW5nPSExfSl9fX0sQWc9e2tleTowLGNsYXNzOiJwLTQifSxPZz17a2V5OjEsY2xhc3M6InAtNCJ9LFJnPXtrZXk6MSxjbGFzczoiZmxleCBmbGV4LWNvbCJ9LElnPXtjbGFzczoiZmxleCBmbGV4LWNvbCJ9LFBnPXtrZXk6MixjbGFzczoicC00In0sQmc9e2NsYXNzOiJmbGV4IGZsZXgtY29sIn07ZnVuY3Rpb24gRmcoZSx0LG4scixzLGkpe2NvbnN0IG89dnQoInZhbi1lbXB0eSIpLGw9dnQoInZhbi1jZWxsIiksYT12dCgidmFuLWxpc3QiKSx1PXZ0KCJ2YW4tYnV0dG9uIiksYz12dCgidmFuLXRhYiIpLGY9dnQoInZhbi10YWJzIiksaD12dCgidmFuLWZpZWxkIiksdj12dCgidmFuLWNlbGwtZ3JvdXAiKSxwPXZ0KCJ2YW4tbG9hZGluZyIpLGI9dnQoInZhbi1wb3B1cCIpO3JldHVybiBMZSgpLEx0KEhlLG51bGwsW3MuaXNfYXBwbHlfY291cnNlPyhMZSgpLEx0KCJkaXYiLEFnLFtzLmFwcGx5X2NvdXJzZS5sZW5ndGg9PT0wPyhMZSgpLEh0KG8se2tleTowLGRlc2NyaXB0aW9uOiLmmoLml6Dor77nqIsiLCJpbWFnZS1zaXplIjoiMjAwIn0pKTpkbigiIiwhMCksZyhhLHtkaXNhYmxlZDohMH0se2RlZmF1bHQ6VmUoKCk9PlsoTGUoITApLEx0KEhlLG51bGwsQXMocy5hcHBseV9jb3Vyc2UsKHksUyk9PihMZSgpLEh0KGwse2tleTpTLHRpdGxlOnkuY291cnNlTmFtZSx2YWx1ZTp5LmlzQXBwbHk/IuacquWKoOWFpSI6IuW3suWKoOWFpSJ9LG51bGwsOCxbInRpdGxlIiwidmFsdWUiXSkpKSwxMjgpKV0pLF86MX0pXSkpOmRuKCIiLCEwKSxzLmlzX3N0dWR5aW5nX2NvdXJzZT8oTGUoKSxMdCgiZGl2IixPZyxbZyhmLHthY3RpdmU6cy5zdHVkeWluZ19hY3RpdmUsIm9uVXBkYXRlOmFjdGl2ZSI6dFswXXx8KHRbMF09eT0+cy5zdHVkeWluZ19hY3RpdmU9eSl9LHtkZWZhdWx0OlZlKCgpPT5bZyhjLHt0aXRsZToi5a2m5Lmg5LitIixjbGFzczoicHQtNCJ9LHtkZWZhdWx0OlZlKCgpPT5bcy5zdHVkeWluZ19jb3Vyc2VzLmxlbmd0aD09PTA/KExlKCksSHQobyx7a2V5OjAsZGVzY3JpcHRpb246IuaaguaXoOivvueoiyIsImltYWdlLXNpemUiOiIyMDAifSkpOihMZSgpLEx0KCJkaXYiLFJnLFtzLmlzX3N0YXJ0X3N0dWR5aW5nP2RuKCIiLCEwKTooTGUoKSxIdCh1LHtrZXk6MCxjbGFzczoidy1mdWxsIixyb3VuZDoiIix0eXBlOiJzdWNjZXNzIixvbkNsaWNrOmkuc3RhcnRTdHVkeUNvdXJzZX0se2RlZmF1bHQ6VmUoKCk9PnRbOF18fCh0WzhdPVtWdCgi5byA5aeL5a2m5LmgICIpXSkpLF86MSxfXzpbOF19LDgsWyJvbkNsaWNrIl0pKSxzLmlzX3N0YXJ0X3N0dWR5aW5nPyhMZSgpLEh0KHUse2tleToxLGNsYXNzOiJ3LWZ1bGwiLHJvdW5kOiIiLHR5cGU6InN1Y2Nlc3MiLG9uQ2xpY2s6aS5lbmRTdHVkeUNvdXJzZX0se2RlZmF1bHQ6VmUoKCk9PnRbOV18fCh0WzldPVtWdCgi57uT5p2f5a2m5LmgICIpXSkpLF86MSxfXzpbOV19LDgsWyJvbkNsaWNrIl0pKTpkbigiIiwhMCksZyhhLHtkaXNhYmxlZDohMCxjbGFzczoibXQtNCJ9LHtkZWZhdWx0OlZlKCgpPT5bKExlKCEwKSxMdChIZSxudWxsLEFzKHMuc3R1ZHlpbmdfY291cnNlcywoeSxTKT0+KExlKCksSHQobCx7a2V5OlMsdGl0bGU6eS5jb3Vyc2VOYW1lLHZhbHVlOnkuc3RhcnRUaW1lfSxudWxsLDgsWyJ0aXRsZSIsInZhbHVlIl0pKSksMTI4KSldKSxfOjF9KV0pKV0pLF86MX0pLGcoYyx7dGl0bGU6IuacquivhOS7tyIsY2xhc3M6InB0LTQifSx7ZGVmYXVsdDpWZSgoKT0+W0xyKCJkaXYiLElnLFtnKHUse2NsYXNzOiJ3LWZ1bGwiLHJvdW5kOiIiLHR5cGU6InN1Y2Nlc3MiLG9uQ2xpY2s6aS5nZXROb0FwcHJhaXNlQ291cnNlc30se2RlZmF1bHQ6VmUoKCk9PnRbMTBdfHwodFsxMF09W1Z0KCIg6I635Y+W5pyq6K+E5Lu36K++56iLICIpXSkpLF86MSxfXzpbMTBdfSw4LFsib25DbGljayJdKSxnKHUse2NsYXNzOiJ3LWZ1bGwiLHN0eWxlOnsibWFyZ2luLXRvcCI6IjIwcHgifSxyb3VuZDoiIix0eXBlOiJzdWNjZXNzIixvbkNsaWNrOmkuYXBwcmFpc2VBbGxDb3Vyc2VzfSx7ZGVmYXVsdDpWZSgoKT0+dFsxMV18fCh0WzExXT1bVnQoIiDlvIDlp4vor4Tku7for77nqIsgIildKSksXzoxLF9fOlsxMV19LDgsWyJvbkNsaWNrIl0pLGcoYSx7ZGlzYWJsZWQ6ITAsY2xhc3M6Im10LTQifSx7ZGVmYXVsdDpWZSgoKT0+WyhMZSghMCksTHQoSGUsbnVsbCxBcyhzLm5vX2FwcHJhaXNlX2NvdXJzZXMsKHksUyk9PihMZSgpLEh0KGwse2tleTpTLHRpdGxlOnkuY291cnNlTmFtZSx2YWx1ZTp5LmlzQXBwcmFpc2U/IuW3suivhOS7tyI6IuacquivhOS7tyJ9LG51bGwsOCxbInRpdGxlIiwidmFsdWUiXSkpKSwxMjgpKV0pLF86MX0pXSldKSxfOjF9KV0pLF86MX0sOCxbImFjdGl2ZSJdKV0pKTpkbigiIiwhMCkscy5pc19maWZfcmVhZD8oTGUoKSxMdCgiZGl2IixQZyxbTHIoImRpdiIsQmcsW2codSx7Y2xhc3M6InctZnVsbCIscm91bmQ6IiIsdHlwZToic3VjY2VzcyIsb25DbGljazppLmdldEZpZlJlYWRQYXJhbXN9LHtkZWZhdWx0OlZlKCgpPT50WzEyXXx8KHRbMTJdPVtWdCgiIOiOt+WPluW/heimgeWPguaVsCAiKV0pKSxfOjEsX186WzEyXX0sOCxbIm9uQ2xpY2siXSksZyh1LHtjbGFzczoidy1mdWxsIixyb3VuZDoiIix0eXBlOiJzdWNjZXNzIixvbkNsaWNrOmkuY29tcGxldGVGaWZSZWFkLHN0eWxlOnsibWFyZ2luLXRvcCI6IjIwcHgifX0se2RlZmF1bHQ6VmUoKCk9PnRbMTNdfHwodFsxM109W1Z0KCIg5LiA6ZSu5a6M5oiQ5Y+j6K+t5L2c5LiaICIpXSkpLF86MSxfXzpbMTNdfSw4LFsib25DbGljayJdKSxnKHYse2luc2V0OiIiLHN0eWxlOnsibWFyZ2luLXRvcCI6IjIwcHgifX0se2RlZmF1bHQ6VmUoKCk9PltnKGgse21vZGVsVmFsdWU6cy5maWZfc2VtYW50aWMsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOnRbMV18fCh0WzFdPXk9PnMuZmlmX3NlbWFudGljPXkpLHR5cGU6ImRpZ2l0IixsYWJlbDoi6K+t5LmJ5YiG5pWwIn0sbnVsbCw4LFsibW9kZWxWYWx1ZSJdKSxnKGgse21vZGVsVmFsdWU6cy5maWZfYWNjdXJhY3ksIm9uVXBkYXRlOm1vZGVsVmFsdWUiOnRbMl18fCh0WzJdPXk9PnMuZmlmX2FjY3VyYWN5PXkpLHR5cGU6ImRpZ2l0IixsYWJlbDoi5Y+R6Z+z5YiG5pWwIn0sbnVsbCw4LFsibW9kZWxWYWx1ZSJdKSxnKGgse21vZGVsVmFsdWU6cy5maWZfZmx1ZW5jeSwib25VcGRhdGU6bW9kZWxWYWx1ZSI6dFszXXx8KHRbM109eT0+cy5maWZfZmx1ZW5jeT15KSx0eXBlOiJkaWdpdCIsbGFiZWw6Iua1geWIqeW6puWIhuaVsCJ9LG51bGwsOCxbIm1vZGVsVmFsdWUiXSksZyhoLHttb2RlbFZhbHVlOnMuZmlmX2NvbXBsZXRlLCJvblVwZGF0ZTptb2RlbFZhbHVlIjp0WzRdfHwodFs0XT15PT5zLmZpZl9jb21wbGV0ZT15KSx0eXBlOiJkaWdpdCIsbGFiZWw6IuWujOaVtOW6puWIhuaVsCJ9LG51bGwsOCxbIm1vZGVsVmFsdWUiXSksZyhoLHttb2RlbFZhbHVlOnMuZmlmX3Njb3JlLCJvblVwZGF0ZTptb2RlbFZhbHVlIjp0WzVdfHwodFs1XT15PT5zLmZpZl9zY29yZT15KSx0eXBlOiJkaWdpdCIsbGFiZWw6IuacgOe7iOWIhuaVsCJ9LG51bGwsOCxbIm1vZGVsVmFsdWUiXSksZyhoLHttb2RlbFZhbHVlOnMuZmlmX2Fuc0RldGFpbCwib25VcGRhdGU6bW9kZWxWYWx1ZSI6dFs2XXx8KHRbNl09eT0+cy5maWZfYW5zRGV0YWlsPXkpLHR5cGU6ImRpZ2l0IixsYWJlbDoi5Y2V6K+N57uG6IqC5YiG5pWwIn0sbnVsbCw4LFsibW9kZWxWYWx1ZSJdKV0pLF86MX0pXSldKSk6ZG4oIiIsITApLGcoYix7c2hvdzpzLmlzX2xvYWRpbmcsIm9uVXBkYXRlOnNob3ciOnRbN118fCh0WzddPXk9PnMuaXNfbG9hZGluZz15KSxjbGFzczoiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIiLHN0eWxlOntiYWNrZ3JvdW5kOiJub25lIix3aWR0aDoiMjB2dyIsaGVpZ2h0OiIyMHZ3In19LHtkZWZhdWx0OlZlKCgpPT5bZyhwLHtjb2xvcjoiIzE5ODlmYSIsdHlwZToiY2lyY3VsYXIiLHNpemU6IjUwIn0pXSksXzoxfSw4LFsic2hvdyJdKV0sNjQpfWNvbnN0IERnPUVnKFRnLFtbInJlbmRlciIsRmddXSk7ZnVuY3Rpb24gUWEoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fWNvbnN0e3RvU3RyaW5nOk5nfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpIaX09T2JqZWN0LHtpdGVyYXRvcjpncyx0b1N0cmluZ1RhZzplY309U3ltYm9sLG1zPShlPT50PT57Y29uc3Qgbj1OZy5jYWxsKHQpO3JldHVybiBlW25dfHwoZVtuXT1uLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksZ3Q9ZT0+KGU9ZS50b0xvd2VyQ2FzZSgpLHQ9Pm1zKHQpPT09ZSkscHM9ZT0+dD0+dHlwZW9mIHQ9PT1lLHtpc0FycmF5OkFufT1BcnJheSxpcj1wcygidW5kZWZpbmVkIik7ZnVuY3Rpb24ga2coZSl7cmV0dXJuIGUhPT1udWxsJiYhaXIoZSkmJmUuY29uc3RydWN0b3IhPT1udWxsJiYhaXIoZS5jb25zdHJ1Y3RvcikmJlplKGUuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpfWNvbnN0IHRjPWd0KCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uICRnKGUpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6dD1lJiZlLmJ1ZmZlciYmdGMoZS5idWZmZXIpLHR9Y29uc3QgTGc9cHMoInN0cmluZyIpLFplPXBzKCJmdW5jdGlvbiIpLG5jPXBzKCJudW1iZXIiKSx5cz1lPT5lIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiLE1nPWU9PmU9PT0hMHx8ZT09PSExLElyPWU9PntpZihtcyhlKSE9PSJvYmplY3QiKXJldHVybiExO2NvbnN0IHQ9SGkoZSk7cmV0dXJuKHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09bnVsbCkmJiEoZWMgaW4gZSkmJiEoZ3MgaW4gZSl9LEhnPWd0KCJEYXRlIiksVWc9Z3QoIkZpbGUiKSxqZz1ndCgiQmxvYiIpLFZnPWd0KCJGaWxlTGlzdCIpLHpnPWU9PnlzKGUpJiZaZShlLnBpcGUpLHFnPWU9PntsZXQgdDtyZXR1cm4gZSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmZSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxaZShlLmFwcGVuZCkmJigodD1tcyhlKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJlplKGUudG9TdHJpbmcpJiZlLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LFdnPWd0KCJVUkxTZWFyY2hQYXJhbXMiKSxbS2csSmcsR2csWWddPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKGd0KSxYZz1lPT5lLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gaHIoZSx0LHthbGxPd25LZXlzOm49ITF9PXt9KXtpZihlPT09bnVsbHx8dHlwZW9mIGU+InUiKXJldHVybjtsZXQgcixzO2lmKHR5cGVvZiBlIT0ib2JqZWN0IiYmKGU9W2VdKSxBbihlKSlmb3Iocj0wLHM9ZS5sZW5ndGg7cjxzO3IrKyl0LmNhbGwobnVsbCxlW3JdLHIsZSk7ZWxzZXtjb25zdCBpPW4/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk6T2JqZWN0LmtleXMoZSksbz1pLmxlbmd0aDtsZXQgbDtmb3Iocj0wO3I8bztyKyspbD1pW3JdLHQuY2FsbChudWxsLGVbbF0sbCxlKX19ZnVuY3Rpb24gcmMoZSx0KXt0PXQudG9Mb3dlckNhc2UoKTtjb25zdCBuPU9iamVjdC5rZXlzKGUpO2xldCByPW4ubGVuZ3RoLHM7Zm9yKDtyLS0gPjA7KWlmKHM9bltyXSx0PT09cy50b0xvd2VyQ2FzZSgpKXJldHVybiBzO3JldHVybiBudWxsfWNvbnN0IHJuPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsc2M9ZT0+IWlyKGUpJiZlIT09cm47ZnVuY3Rpb24gbGkoKXtjb25zdHtjYXNlbGVzczplfT1zYyh0aGlzKSYmdGhpc3x8e30sdD17fSxuPShyLHMpPT57Y29uc3QgaT1lJiZyYyh0LHMpfHxzO0lyKHRbaV0pJiZJcihyKT90W2ldPWxpKHRbaV0scik6SXIocik/dFtpXT1saSh7fSxyKTpBbihyKT90W2ldPXIuc2xpY2UoKTp0W2ldPXJ9O2ZvcihsZXQgcj0wLHM9YXJndW1lbnRzLmxlbmd0aDtyPHM7cisrKWFyZ3VtZW50c1tyXSYmaHIoYXJndW1lbnRzW3JdLG4pO3JldHVybiB0fWNvbnN0IFpnPShlLHQsbix7YWxsT3duS2V5czpyfT17fSk9Pihocih0LChzLGkpPT57biYmWmUocyk/ZVtpXT1RYShzLG4pOmVbaV09c30se2FsbE93bktleXM6cn0pLGUpLFFnPWU9PihlLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKGU9ZS5zbGljZSgxKSksZSksZW09KGUsdCxuLHIpPT57ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxyKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksbiYmT2JqZWN0LmFzc2lnbihlLnByb3RvdHlwZSxuKX0sdG09KGUsdCxuLHIpPT57bGV0IHMsaSxvO2NvbnN0IGw9e307aWYodD10fHx7fSxlPT1udWxsKXJldHVybiB0O2Rve2ZvcihzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLGk9cy5sZW5ndGg7aS0tID4wOylvPXNbaV0sKCFyfHxyKG8sZSx0KSkmJiFsW29dJiYodFtvXT1lW29dLGxbb109ITApO2U9biE9PSExJiZIaShlKX13aGlsZShlJiYoIW58fG4oZSx0KSkmJmUhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sbm09KGUsdCxuKT0+e2U9U3RyaW5nKGUpLChuPT09dm9pZCAwfHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpLG4tPXQubGVuZ3RoO2NvbnN0IHI9ZS5pbmRleE9mKHQsbik7cmV0dXJuIHIhPT0tMSYmcj09PW59LHJtPWU9PntpZighZSlyZXR1cm4gbnVsbDtpZihBbihlKSlyZXR1cm4gZTtsZXQgdD1lLmxlbmd0aDtpZighbmModCkpcmV0dXJuIG51bGw7Y29uc3Qgbj1uZXcgQXJyYXkodCk7Zm9yKDt0LS0gPjA7KW5bdF09ZVt0XTtyZXR1cm4gbn0sc209KGU9PnQ9PmUmJnQgaW5zdGFuY2VvZiBlKSh0eXBlb2YgVWludDhBcnJheTwidSImJkhpKFVpbnQ4QXJyYXkpKSxpbT0oZSx0KT0+e2NvbnN0IHI9KGUmJmVbZ3NdKS5jYWxsKGUpO2xldCBzO2Zvcig7KHM9ci5uZXh0KCkpJiYhcy5kb25lOyl7Y29uc3QgaT1zLnZhbHVlO3QuY2FsbChlLGlbMF0saVsxXSl9fSxvbT0oZSx0KT0+e2xldCBuO2NvbnN0IHI9W107Zm9yKDsobj1lLmV4ZWModCkpIT09bnVsbDspci5wdXNoKG4pO3JldHVybiByfSxsbT1ndCgiSFRNTEZvcm1FbGVtZW50IiksYW09ZT0+ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24obixyLHMpe3JldHVybiByLnRvVXBwZXJDYXNlKCkrc30pLG5sPSgoe2hhc093blByb3BlcnR5OmV9KT0+KHQsbik9PmUuY2FsbCh0LG4pKShPYmplY3QucHJvdG90eXBlKSxjbT1ndCgiUmVnRXhwIiksaWM9KGUsdCk9Pntjb25zdCBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGUpLHI9e307aHIobiwocyxpKT0+e2xldCBvOyhvPXQocyxpLGUpKSE9PSExJiYocltpXT1vfHxzKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUscil9LHVtPWU9PntpYyhlLCh0LG4pPT57aWYoWmUoZSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihuKSE9PS0xKXJldHVybiExO2NvbnN0IHI9ZVtuXTtpZihaZShyKSl7aWYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK24rIiciKX0pfX0pfSxmbT0oZSx0KT0+e2NvbnN0IG49e30scj1zPT57cy5mb3JFYWNoKGk9PntuW2ldPSEwfSl9O3JldHVybiBBbihlKT9yKGUpOnIoU3RyaW5nKGUpLnNwbGl0KHQpKSxufSxkbT0oKT0+e30saG09KGUsdCk9PmUhPW51bGwmJk51bWJlci5pc0Zpbml0ZShlPStlKT9lOnQ7ZnVuY3Rpb24gZ20oZSl7cmV0dXJuISEoZSYmWmUoZS5hcHBlbmQpJiZlW2VjXT09PSJGb3JtRGF0YSImJmVbZ3NdKX1jb25zdCBtbT1lPT57Y29uc3QgdD1uZXcgQXJyYXkoMTApLG49KHIscyk9PntpZih5cyhyKSl7aWYodC5pbmRleE9mKHIpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gcikpe3Rbc109cjtjb25zdCBpPUFuKHIpP1tdOnt9O3JldHVybiBocihyLChvLGwpPT57Y29uc3QgYT1uKG8scysxKTshaXIoYSkmJihpW2xdPWEpfSksdFtzXT12b2lkIDAsaX19cmV0dXJuIHJ9O3JldHVybiBuKGUsMCl9LHBtPWd0KCJBc3luY0Z1bmN0aW9uIikseW09ZT0+ZSYmKHlzKGUpfHxaZShlKSkmJlplKGUudGhlbikmJlplKGUuY2F0Y2gpLG9jPSgoZSx0KT0+ZT9zZXRJbW1lZGlhdGU6dD8oKG4scik9Pihybi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpzLGRhdGE6aX0pPT57cz09PXJuJiZpPT09biYmci5sZW5ndGgmJnIuc2hpZnQoKSgpfSwhMSkscz0+e3IucHVzaChzKSxybi5wb3N0TWVzc2FnZShuLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTpuPT5zZXRUaW1lb3V0KG4pKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLFplKHJuLnBvc3RNZXNzYWdlKSksYm09dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKHJuKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fG9jLHZtPWU9PmUhPW51bGwmJlplKGVbZ3NdKSx3PXtpc0FycmF5OkFuLGlzQXJyYXlCdWZmZXI6dGMsaXNCdWZmZXI6a2csaXNGb3JtRGF0YTpxZyxpc0FycmF5QnVmZmVyVmlldzokZyxpc1N0cmluZzpMZyxpc051bWJlcjpuYyxpc0Jvb2xlYW46TWcsaXNPYmplY3Q6eXMsaXNQbGFpbk9iamVjdDpJcixpc1JlYWRhYmxlU3RyZWFtOktnLGlzUmVxdWVzdDpKZyxpc1Jlc3BvbnNlOkdnLGlzSGVhZGVyczpZZyxpc1VuZGVmaW5lZDppcixpc0RhdGU6SGcsaXNGaWxlOlVnLGlzQmxvYjpqZyxpc1JlZ0V4cDpjbSxpc0Z1bmN0aW9uOlplLGlzU3RyZWFtOnpnLGlzVVJMU2VhcmNoUGFyYW1zOldnLGlzVHlwZWRBcnJheTpzbSxpc0ZpbGVMaXN0OlZnLGZvckVhY2g6aHIsbWVyZ2U6bGksZXh0ZW5kOlpnLHRyaW06WGcsc3RyaXBCT006UWcsaW5oZXJpdHM6ZW0sdG9GbGF0T2JqZWN0OnRtLGtpbmRPZjptcyxraW5kT2ZUZXN0Omd0LGVuZHNXaXRoOm5tLHRvQXJyYXk6cm0sZm9yRWFjaEVudHJ5OmltLG1hdGNoQWxsOm9tLGlzSFRNTEZvcm06bG0saGFzT3duUHJvcGVydHk6bmwsaGFzT3duUHJvcDpubCxyZWR1Y2VEZXNjcmlwdG9yczppYyxmcmVlemVNZXRob2RzOnVtLHRvT2JqZWN0U2V0OmZtLHRvQ2FtZWxDYXNlOmFtLG5vb3A6ZG0sdG9GaW5pdGVOdW1iZXI6aG0sZmluZEtleTpyYyxnbG9iYWw6cm4saXNDb250ZXh0RGVmaW5lZDpzYyxpc1NwZWNDb21wbGlhbnRGb3JtOmdtLHRvSlNPTk9iamVjdDptbSxpc0FzeW5jRm46cG0saXNUaGVuYWJsZTp5bSxzZXRJbW1lZGlhdGU6b2MsYXNhcDpibSxpc0l0ZXJhYmxlOnZtfTtmdW5jdGlvbiBaKGUsdCxuLHIscyl7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPWUsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLG4mJih0aGlzLmNvbmZpZz1uKSxyJiYodGhpcy5yZXF1ZXN0PXIpLHMmJih0aGlzLnJlc3BvbnNlPXMsdGhpcy5zdGF0dXM9cy5zdGF0dXM/cy5zdGF0dXM6bnVsbCl9dy5pbmhlcml0cyhaLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dy50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7Y29uc3QgbGM9Wi5wcm90b3R5cGUsYWM9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChlPT57YWNbZV09e3ZhbHVlOmV9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWixhYyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGxjLCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pO1ouZnJvbT0oZSx0LG4scixzLGkpPT57Y29uc3Qgbz1PYmplY3QuY3JlYXRlKGxjKTtyZXR1cm4gdy50b0ZsYXRPYmplY3QoZSxvLGZ1bmN0aW9uKGEpe3JldHVybiBhIT09RXJyb3IucHJvdG90eXBlfSxsPT5sIT09ImlzQXhpb3NFcnJvciIpLFouY2FsbChvLGUubWVzc2FnZSx0LG4scixzKSxvLmNhdXNlPWUsby5uYW1lPWUubmFtZSxpJiZPYmplY3QuYXNzaWduKG8saSksb307Y29uc3QgX209bnVsbDtmdW5jdGlvbiBhaShlKXtyZXR1cm4gdy5pc1BsYWluT2JqZWN0KGUpfHx3LmlzQXJyYXkoZSl9ZnVuY3Rpb24gY2MoZSl7cmV0dXJuIHcuZW5kc1dpdGgoZSwiW10iKT9lLnNsaWNlKDAsLTIpOmV9ZnVuY3Rpb24gcmwoZSx0LG4pe3JldHVybiBlP2UuY29uY2F0KHQpLm1hcChmdW5jdGlvbihzLGkpe3JldHVybiBzPWNjKHMpLCFuJiZpPyJbIitzKyJdIjpzfSkuam9pbihuPyIuIjoiIik6dH1mdW5jdGlvbiB3bShlKXtyZXR1cm4gdy5pc0FycmF5KGUpJiYhZS5zb21lKGFpKX1jb25zdCB4bT13LnRvRmxhdE9iamVjdCh3LHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gYnMoZSx0LG4pe2lmKCF3LmlzT2JqZWN0KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3IEZvcm1EYXRhLG49dy50b0ZsYXRPYmplY3Qobix7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGIseSl7cmV0dXJuIXcuaXNVbmRlZmluZWQoeVtiXSl9KTtjb25zdCByPW4ubWV0YVRva2VucyxzPW4udmlzaXRvcnx8YyxpPW4uZG90cyxvPW4uaW5kZXhlcyxhPShuLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJncuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighdy5pc0Z1bmN0aW9uKHMpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gdShwKXtpZihwPT09bnVsbClyZXR1cm4iIjtpZih3LmlzRGF0ZShwKSlyZXR1cm4gcC50b0lTT1N0cmluZygpO2lmKHcuaXNCb29sZWFuKHApKXJldHVybiBwLnRvU3RyaW5nKCk7aWYoIWEmJncuaXNCbG9iKHApKXRocm93IG5ldyBaKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiB3LmlzQXJyYXlCdWZmZXIocCl8fHcuaXNUeXBlZEFycmF5KHApP2EmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtwXSk6QnVmZmVyLmZyb20ocCk6cH1mdW5jdGlvbiBjKHAsYix5KXtsZXQgUz1wO2lmKHAmJiF5JiZ0eXBlb2YgcD09Im9iamVjdCIpe2lmKHcuZW5kc1dpdGgoYiwie30iKSliPXI/YjpiLnNsaWNlKDAsLTIpLHA9SlNPTi5zdHJpbmdpZnkocCk7ZWxzZSBpZih3LmlzQXJyYXkocCkmJndtKHApfHwody5pc0ZpbGVMaXN0KHApfHx3LmVuZHNXaXRoKGIsIltdIikpJiYoUz13LnRvQXJyYXkocCkpKXJldHVybiBiPWNjKGIpLFMuZm9yRWFjaChmdW5jdGlvbihGLFIpeyEody5pc1VuZGVmaW5lZChGKXx8Rj09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/cmwoW2JdLFIsaSk6bz09PW51bGw/YjpiKyJbXSIsdShGKSl9KSwhMX1yZXR1cm4gYWkocCk/ITA6KHQuYXBwZW5kKHJsKHksYixpKSx1KHApKSwhMSl9Y29uc3QgZj1bXSxoPU9iamVjdC5hc3NpZ24oeG0se2RlZmF1bHRWaXNpdG9yOmMsY29udmVydFZhbHVlOnUsaXNWaXNpdGFibGU6YWl9KTtmdW5jdGlvbiB2KHAsYil7aWYoIXcuaXNVbmRlZmluZWQocCkpe2lmKGYuaW5kZXhPZihwKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitiLmpvaW4oIi4iKSk7Zi5wdXNoKHApLHcuZm9yRWFjaChwLGZ1bmN0aW9uKFMsQyl7KCEody5pc1VuZGVmaW5lZChTKXx8Uz09PW51bGwpJiZzLmNhbGwodCxTLHcuaXNTdHJpbmcoQyk/Qy50cmltKCk6QyxiLGgpKT09PSEwJiZ2KFMsYj9iLmNvbmNhdChDKTpbQ10pfSksZi5wb3AoKX19aWYoIXcuaXNPYmplY3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiB2KGUpLHR9ZnVuY3Rpb24gc2woZSl7Y29uc3QgdD17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZyxmdW5jdGlvbihyKXtyZXR1cm4gdFtyXX0pfWZ1bmN0aW9uIFVpKGUsdCl7dGhpcy5fcGFpcnM9W10sZSYmYnMoZSx0aGlzLHQpfWNvbnN0IHVjPVVpLnByb3RvdHlwZTt1Yy5hcHBlbmQ9ZnVuY3Rpb24odCxuKXt0aGlzLl9wYWlycy5wdXNoKFt0LG5dKX07dWMudG9TdHJpbmc9ZnVuY3Rpb24odCl7Y29uc3Qgbj10P2Z1bmN0aW9uKHIpe3JldHVybiB0LmNhbGwodGhpcyxyLHNsKX06c2w7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gbihzWzBdKSsiPSIrbihzWzFdKX0sIiIpLmpvaW4oIiYiKX07ZnVuY3Rpb24gU20oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9ZnVuY3Rpb24gZmMoZSx0LG4pe2lmKCF0KXJldHVybiBlO2NvbnN0IHI9biYmbi5lbmNvZGV8fFNtO3cuaXNGdW5jdGlvbihuKSYmKG49e3NlcmlhbGl6ZTpufSk7Y29uc3Qgcz1uJiZuLnNlcmlhbGl6ZTtsZXQgaTtpZihzP2k9cyh0LG4pOmk9dy5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IFVpKHQsbikudG9TdHJpbmcociksaSl7Y29uc3Qgbz1lLmluZGV4T2YoIiMiKTtvIT09LTEmJihlPWUuc2xpY2UoMCxvKSksZSs9KGUuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikraX1yZXR1cm4gZX1jbGFzcyBpbHtjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKHQsbixyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6dCxyZWplY3RlZDpuLHN5bmNocm9ub3VzOnI/ci5zeW5jaHJvbm91czohMSxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KHQpe3RoaXMuaGFuZGxlcnNbdF0mJih0aGlzLmhhbmRsZXJzW3RdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2godCl7dy5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocil7ciE9PW51bGwmJnQocil9KX19Y29uc3QgZGM9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9LENtPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpVaSxFbT10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGwsVG09dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbCxBbT17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpDbSxGb3JtRGF0YTpFbSxCbG9iOlRtfSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX0samk9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsY2k9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLE9tPWppJiYoIWNpfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGNpLnByb2R1Y3QpPDApLFJtPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixJbT1qaSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0IixQbT1PYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7X19wcm90b19fOm51bGwsaGFzQnJvd3NlckVudjpqaSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6T20saGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OlJtLG5hdmlnYXRvcjpjaSxvcmlnaW46SW19LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSksamU9ey4uLlBtLC4uLkFtfTtmdW5jdGlvbiBCbShlLHQpe3JldHVybiBicyhlLG5ldyBqZS5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyxPYmplY3QuYXNzaWduKHt2aXNpdG9yOmZ1bmN0aW9uKG4scixzLGkpe3JldHVybiBqZS5pc05vZGUmJncuaXNCdWZmZXIobik/KHRoaXMuYXBwZW5kKHIsbi50b1N0cmluZygiYmFzZTY0IikpLCExKTppLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHQpKX1mdW5jdGlvbiBGbShlKXtyZXR1cm4gdy5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csZSkubWFwKHQ9PnRbMF09PT0iW10iPyIiOnRbMV18fHRbMF0pfWZ1bmN0aW9uIERtKGUpe2NvbnN0IHQ9e30sbj1PYmplY3Qua2V5cyhlKTtsZXQgcjtjb25zdCBzPW4ubGVuZ3RoO2xldCBpO2ZvcihyPTA7cjxzO3IrKylpPW5bcl0sdFtpXT1lW2ldO3JldHVybiB0fWZ1bmN0aW9uIGhjKGUpe2Z1bmN0aW9uIHQobixyLHMsaSl7bGV0IG89bltpKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtjb25zdCBsPU51bWJlci5pc0Zpbml0ZSgrbyksYT1pPj1uLmxlbmd0aDtyZXR1cm4gbz0hbyYmdy5pc0FycmF5KHMpP3MubGVuZ3RoOm8sYT8ody5oYXNPd25Qcm9wKHMsbyk/c1tvXT1bc1tvXSxyXTpzW29dPXIsIWwpOigoIXNbb118fCF3LmlzT2JqZWN0KHNbb10pKSYmKHNbb109W10pLHQobixyLHNbb10saSkmJncuaXNBcnJheShzW29dKSYmKHNbb109RG0oc1tvXSkpLCFsKX1pZih3LmlzRm9ybURhdGEoZSkmJncuaXNGdW5jdGlvbihlLmVudHJpZXMpKXtjb25zdCBuPXt9O3JldHVybiB3LmZvckVhY2hFbnRyeShlLChyLHMpPT57dChGbShyKSxzLG4sMCl9KSxufXJldHVybiBudWxsfWZ1bmN0aW9uIE5tKGUsdCxuKXtpZih3LmlzU3RyaW5nKGUpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoZSksdy50cmltKGUpfWNhdGNoKHIpe2lmKHIubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgcn1yZXR1cm4obnx8SlNPTi5zdHJpbmdpZnkpKGUpfWNvbnN0IGdyPXt0cmFuc2l0aW9uYWw6ZGMsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKHQsbil7Y29uc3Qgcj1uLmdldENvbnRlbnRUeXBlKCl8fCIiLHM9ci5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsaT13LmlzT2JqZWN0KHQpO2lmKGkmJncuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSx3LmlzRm9ybURhdGEodCkpcmV0dXJuIHM/SlNPTi5zdHJpbmdpZnkoaGModCkpOnQ7aWYody5pc0FycmF5QnVmZmVyKHQpfHx3LmlzQnVmZmVyKHQpfHx3LmlzU3RyZWFtKHQpfHx3LmlzRmlsZSh0KXx8dy5pc0Jsb2IodCl8fHcuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZih3LmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZih3LmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBuLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbDtpZihpKXtpZihyLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBCbSh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKGw9dy5pc0ZpbGVMaXN0KHQpKXx8ci5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2NvbnN0IGE9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBicyhsP3siZmlsZXNbXSI6dH06dCxhJiZuZXcgYSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGl8fHM/KG4uc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxObSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtjb25zdCBuPXRoaXMudHJhbnNpdGlvbmFsfHxnci50cmFuc2l0aW9uYWwscj1uJiZuLmZvcmNlZEpTT05QYXJzaW5nLHM9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYody5pc1Jlc3BvbnNlKHQpfHx3LmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmdy5pc1N0cmluZyh0KSYmKHImJiF0aGlzLnJlc3BvbnNlVHlwZXx8cykpe2NvbnN0IG89IShuJiZuLnNpbGVudEpTT05QYXJzaW5nKSYmczt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCl9Y2F0Y2gobCl7aWYobyl0aHJvdyBsLm5hbWU9PT0iU3ludGF4RXJyb3IiP1ouZnJvbShsLFouRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6bH19cmV0dXJuIHR9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmplLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpqZS5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07dy5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLGU9Pntnci5oZWFkZXJzW2VdPXt9fSk7Y29uc3Qga209dy50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSwkbT1lPT57Y29uc3QgdD17fTtsZXQgbixyLHM7cmV0dXJuIGUmJmUuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3M9by5pbmRleE9mKCI6Iiksbj1vLnN1YnN0cmluZygwLHMpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9by5zdWJzdHJpbmcocysxKS50cmltKCksISghbnx8dFtuXSYma21bbl0pJiYobj09PSJzZXQtY29va2llIj90W25dP3Rbbl0ucHVzaChyKTp0W25dPVtyXTp0W25dPXRbbl0/dFtuXSsiLCAiK3I6cil9KSx0fSxvbD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIERuKGUpe3JldHVybiBlJiZTdHJpbmcoZSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gUHIoZSl7cmV0dXJuIGU9PT0hMXx8ZT09bnVsbD9lOncuaXNBcnJheShlKT9lLm1hcChQcik6U3RyaW5nKGUpfWZ1bmN0aW9uIExtKGUpe2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxuPS8oW15ccyw7PV0rKVxzKig/Oj1ccyooW14sO10rKSk/L2c7bGV0IHI7Zm9yKDtyPW4uZXhlYyhlKTspdFtyWzFdXT1yWzJdO3JldHVybiB0fWNvbnN0IE1tPWU9Pi9eWy1fYS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3QoZS50cmltKCkpO2Z1bmN0aW9uIE1zKGUsdCxuLHIscyl7aWYody5pc0Z1bmN0aW9uKHIpKXJldHVybiByLmNhbGwodGhpcyx0LG4pO2lmKHMmJih0PW4pLCEhdy5pc1N0cmluZyh0KSl7aWYody5pc1N0cmluZyhyKSlyZXR1cm4gdC5pbmRleE9mKHIpIT09LTE7aWYody5pc1JlZ0V4cChyKSlyZXR1cm4gci50ZXN0KHQpfX1mdW5jdGlvbiBIbShlKXtyZXR1cm4gZS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxkXSkoXHcqKS9nLCh0LG4scik9Pm4udG9VcHBlckNhc2UoKStyKX1mdW5jdGlvbiBVbShlLHQpe2NvbnN0IG49dy50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyK24se3ZhbHVlOmZ1bmN0aW9uKHMsaSxvKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsdCxzLGksbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9bGV0IFFlPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LG4scil7Y29uc3Qgcz10aGlzO2Z1bmN0aW9uIGkobCxhLHUpe2NvbnN0IGM9RG4oYSk7aWYoIWMpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2NvbnN0IGY9dy5maW5kS2V5KHMsYyk7KCFmfHxzW2ZdPT09dm9pZCAwfHx1PT09ITB8fHU9PT12b2lkIDAmJnNbZl0hPT0hMSkmJihzW2Z8fGFdPVByKGwpKX1jb25zdCBvPShsLGEpPT53LmZvckVhY2gobCwodSxjKT0+aSh1LGMsYSkpO2lmKHcuaXNQbGFpbk9iamVjdCh0KXx8dCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3Ipbyh0LG4pO2Vsc2UgaWYody5pc1N0cmluZyh0KSYmKHQ9dC50cmltKCkpJiYhTW0odCkpbygkbSh0KSxuKTtlbHNlIGlmKHcuaXNPYmplY3QodCkmJncuaXNJdGVyYWJsZSh0KSl7bGV0IGw9e30sYSx1O2Zvcihjb25zdCBjIG9mIHQpe2lmKCF3LmlzQXJyYXkoYykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QgaXRlcmF0b3IgbXVzdCByZXR1cm4gYSBrZXktdmFsdWUgcGFpciIpO2xbdT1jWzBdXT0oYT1sW3VdKT93LmlzQXJyYXkoYSk/Wy4uLmEsY1sxXV06W2EsY1sxXV06Y1sxXX1vKGwsbil9ZWxzZSB0IT1udWxsJiZpKG4sdCxyKTtyZXR1cm4gdGhpc31nZXQodCxuKXtpZih0PURuKHQpLHQpe2NvbnN0IHI9dy5maW5kS2V5KHRoaXMsdCk7aWYocil7Y29uc3Qgcz10aGlzW3JdO2lmKCFuKXJldHVybiBzO2lmKG49PT0hMClyZXR1cm4gTG0ocyk7aWYody5pc0Z1bmN0aW9uKG4pKXJldHVybiBuLmNhbGwodGhpcyxzLHIpO2lmKHcuaXNSZWdFeHAobikpcmV0dXJuIG4uZXhlYyhzKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKHQsbil7aWYodD1Ebih0KSx0KXtjb25zdCByPXcuZmluZEtleSh0aGlzLHQpO3JldHVybiEhKHImJnRoaXNbcl0hPT12b2lkIDAmJighbnx8TXModGhpcyx0aGlzW3JdLHIsbikpKX1yZXR1cm4hMX1kZWxldGUodCxuKXtjb25zdCByPXRoaXM7bGV0IHM9ITE7ZnVuY3Rpb24gaShvKXtpZihvPURuKG8pLG8pe2NvbnN0IGw9dy5maW5kS2V5KHIsbyk7bCYmKCFufHxNcyhyLHJbbF0sbCxuKSkmJihkZWxldGUgcltsXSxzPSEwKX19cmV0dXJuIHcuaXNBcnJheSh0KT90LmZvckVhY2goaSk6aSh0KSxzfWNsZWFyKHQpe2NvbnN0IG49T2JqZWN0LmtleXModGhpcyk7bGV0IHI9bi5sZW5ndGgscz0hMTtmb3IoO3ItLTspe2NvbnN0IGk9bltyXTsoIXR8fE1zKHRoaXMsdGhpc1tpXSxpLHQsITApKSYmKGRlbGV0ZSB0aGlzW2ldLHM9ITApfXJldHVybiBzfW5vcm1hbGl6ZSh0KXtjb25zdCBuPXRoaXMscj17fTtyZXR1cm4gdy5mb3JFYWNoKHRoaXMsKHMsaSk9Pntjb25zdCBvPXcuZmluZEtleShyLGkpO2lmKG8pe25bb109UHIocyksZGVsZXRlIG5baV07cmV0dXJufWNvbnN0IGw9dD9IbShpKTpTdHJpbmcoaSkudHJpbSgpO2whPT1pJiZkZWxldGUgbltpXSxuW2xdPVByKHMpLHJbbF09ITB9KSx0aGlzfWNvbmNhdCguLi50KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi50KX10b0pTT04odCl7Y29uc3Qgbj1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiB3LmZvckVhY2godGhpcywocixzKT0+e3IhPW51bGwmJnIhPT0hMSYmKG5bc109dCYmdy5pc0FycmF5KHIpP3Iuam9pbigiLCAiKTpyKX0pLG59W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW3Qsbl0pPT50KyI6ICIrbikuam9pbihgCmApfWdldFNldENvb2tpZSgpe3JldHVybiB0aGlzLmdldCgic2V0LWNvb2tpZSIpfHxbXX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5uKXtjb25zdCByPW5ldyB0aGlzKHQpO3JldHVybiBuLmZvckVhY2gocz0+ci5zZXQocykpLHJ9c3RhdGljIGFjY2Vzc29yKHQpe2NvbnN0IHI9KHRoaXNbb2xdPXRoaXNbb2xdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscz10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBpKG8pe2NvbnN0IGw9RG4obyk7cltsXXx8KFVtKHMsbykscltsXT0hMCl9cmV0dXJuIHcuaXNBcnJheSh0KT90LmZvckVhY2goaSk6aSh0KSx0aGlzfX07UWUuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO3cucmVkdWNlRGVzY3JpcHRvcnMoUWUucHJvdG90eXBlLCh7dmFsdWU6ZX0sdCk9PntsZXQgbj10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5lLHNldChyKXt0aGlzW25dPXJ9fX0pO3cuZnJlZXplTWV0aG9kcyhRZSk7ZnVuY3Rpb24gSHMoZSx0KXtjb25zdCBuPXRoaXN8fGdyLHI9dHx8bixzPVFlLmZyb20oci5oZWFkZXJzKTtsZXQgaT1yLmRhdGE7cmV0dXJuIHcuZm9yRWFjaChlLGZ1bmN0aW9uKGwpe2k9bC5jYWxsKG4saSxzLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHMubm9ybWFsaXplKCksaX1mdW5jdGlvbiBnYyhlKXtyZXR1cm4hIShlJiZlLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIE9uKGUsdCxuKXtaLmNhbGwodGhpcyxlPz8iY2FuY2VsZWQiLFouRVJSX0NBTkNFTEVELHQsbiksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn13LmluaGVyaXRzKE9uLFose19fQ0FOQ0VMX186ITB9KTtmdW5jdGlvbiBtYyhlLHQsbil7Y29uc3Qgcj1uLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshbi5zdGF0dXN8fCFyfHxyKG4uc3RhdHVzKT9lKG4pOnQobmV3IFooIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIituLnN0YXR1cyxbWi5FUlJfQkFEX1JFUVVFU1QsWi5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKG4uc3RhdHVzLzEwMCktNF0sbi5jb25maWcsbi5yZXF1ZXN0LG4pKX1mdW5jdGlvbiBqbShlKXtjb25zdCB0PS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKGUpO3JldHVybiB0JiZ0WzFdfHwiIn1mdW5jdGlvbiBWbShlLHQpe2U9ZXx8MTA7Y29uc3Qgbj1uZXcgQXJyYXkoZSkscj1uZXcgQXJyYXkoZSk7bGV0IHM9MCxpPTAsbztyZXR1cm4gdD10IT09dm9pZCAwP3Q6MWUzLGZ1bmN0aW9uKGEpe2NvbnN0IHU9RGF0ZS5ub3coKSxjPXJbaV07b3x8KG89dSksbltzXT1hLHJbc109dTtsZXQgZj1pLGg9MDtmb3IoO2YhPT1zOyloKz1uW2YrK10sZj1mJWU7aWYocz0ocysxKSVlLHM9PT1pJiYoaT0oaSsxKSVlKSx1LW88dClyZXR1cm47Y29uc3Qgdj1jJiZ1LWM7cmV0dXJuIHY/TWF0aC5yb3VuZChoKjFlMy92KTp2b2lkIDB9fWZ1bmN0aW9uIHptKGUsdCl7bGV0IG49MCxyPTFlMy90LHMsaTtjb25zdCBvPSh1LGM9RGF0ZS5ub3coKSk9PntuPWMscz1udWxsLGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxlLmFwcGx5KG51bGwsdSl9O3JldHVyblsoLi4udSk9Pntjb25zdCBjPURhdGUubm93KCksZj1jLW47Zj49cj9vKHUsYyk6KHM9dSxpfHwoaT1zZXRUaW1lb3V0KCgpPT57aT1udWxsLG8ocyl9LHItZikpKX0sKCk9PnMmJm8ocyldfWNvbnN0IHpyPShlLHQsbj0zKT0+e2xldCByPTA7Y29uc3Qgcz1WbSg1MCwyNTApO3JldHVybiB6bShpPT57Y29uc3Qgbz1pLmxvYWRlZCxsPWkubGVuZ3RoQ29tcHV0YWJsZT9pLnRvdGFsOnZvaWQgMCxhPW8tcix1PXMoYSksYz1vPD1sO3I9bztjb25zdCBmPXtsb2FkZWQ6byx0b3RhbDpsLHByb2dyZXNzOmw/by9sOnZvaWQgMCxieXRlczphLHJhdGU6dXx8dm9pZCAwLGVzdGltYXRlZDp1JiZsJiZjPyhsLW8pL3U6dm9pZCAwLGV2ZW50OmksbGVuZ3RoQ29tcHV0YWJsZTpsIT1udWxsLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtlKGYpfSxuKX0sbGw9KGUsdCk9Pntjb25zdCBuPWUhPW51bGw7cmV0dXJuW3I9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6bix0b3RhbDplLGxvYWRlZDpyfSksdFsxXV19LGFsPWU9PiguLi50KT0+dy5hc2FwKCgpPT5lKC4uLnQpKSxxbT1qZS5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChlLHQpPT5uPT4obj1uZXcgVVJMKG4samUub3JpZ2luKSxlLnByb3RvY29sPT09bi5wcm90b2NvbCYmZS5ob3N0PT09bi5ob3N0JiYodHx8ZS5wb3J0PT09bi5wb3J0KSkpKG5ldyBVUkwoamUub3JpZ2luKSxqZS5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoamUubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMCxXbT1qZS5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKGUsdCxuLHIscyxpKXtjb25zdCBvPVtlKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO3cuaXNOdW1iZXIobikmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKG4pLnRvR01UU3RyaW5nKCkpLHcuaXNTdHJpbmcocikmJm8ucHVzaCgicGF0aD0iK3IpLHcuaXNTdHJpbmcocykmJm8ucHVzaCgiZG9tYWluPSIrcyksaT09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoZSl7Y29uc3QgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrZSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoZSl7dGhpcy53cml0ZShlLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEttKGUpe3JldHVybi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoZSl9ZnVuY3Rpb24gSm0oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvP1wvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cLysvLCIiKTplfWZ1bmN0aW9uIHBjKGUsdCxuKXtsZXQgcj0hS20odCk7cmV0dXJuIGUmJihyfHxuPT0hMSk/Sm0oZSx0KTp0fWNvbnN0IGNsPWU9PmUgaW5zdGFuY2VvZiBRZT97Li4uZX06ZTtmdW5jdGlvbiBjbihlLHQpe3Q9dHx8e307Y29uc3Qgbj17fTtmdW5jdGlvbiByKHUsYyxmLGgpe3JldHVybiB3LmlzUGxhaW5PYmplY3QodSkmJncuaXNQbGFpbk9iamVjdChjKT93Lm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmh9LHUsYyk6dy5pc1BsYWluT2JqZWN0KGMpP3cubWVyZ2Uoe30sYyk6dy5pc0FycmF5KGMpP2Muc2xpY2UoKTpjfWZ1bmN0aW9uIHModSxjLGYsaCl7aWYody5pc1VuZGVmaW5lZChjKSl7aWYoIXcuaXNVbmRlZmluZWQodSkpcmV0dXJuIHIodm9pZCAwLHUsZixoKX1lbHNlIHJldHVybiByKHUsYyxmLGgpfWZ1bmN0aW9uIGkodSxjKXtpZighdy5pc1VuZGVmaW5lZChjKSlyZXR1cm4gcih2b2lkIDAsYyl9ZnVuY3Rpb24gbyh1LGMpe2lmKHcuaXNVbmRlZmluZWQoYykpe2lmKCF3LmlzVW5kZWZpbmVkKHUpKXJldHVybiByKHZvaWQgMCx1KX1lbHNlIHJldHVybiByKHZvaWQgMCxjKX1mdW5jdGlvbiBsKHUsYyxmKXtpZihmIGluIHQpcmV0dXJuIHIodSxjKTtpZihmIGluIGUpcmV0dXJuIHIodm9pZCAwLHUpfWNvbnN0IGE9e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6bCxoZWFkZXJzOih1LGMsZik9PnMoY2wodSksY2woYyksZiwhMCl9O3JldHVybiB3LmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxlLHQpKSxmdW5jdGlvbihjKXtjb25zdCBmPWFbY118fHMsaD1mKGVbY10sdFtjXSxjKTt3LmlzVW5kZWZpbmVkKGgpJiZmIT09bHx8KG5bY109aCl9KSxufWNvbnN0IHljPWU9Pntjb25zdCB0PWNuKHt9LGUpO2xldHtkYXRhOm4sd2l0aFhTUkZUb2tlbjpyLHhzcmZIZWFkZXJOYW1lOnMseHNyZkNvb2tpZU5hbWU6aSxoZWFkZXJzOm8sYXV0aDpsfT10O3QuaGVhZGVycz1vPVFlLmZyb20obyksdC51cmw9ZmMocGModC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksbCYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGwudXNlcm5hbWV8fCIiKSsiOiIrKGwucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGwucGFzc3dvcmQpKToiIikpKTtsZXQgYTtpZih3LmlzRm9ybURhdGEobikpe2lmKGplLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8amUuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKChhPW8uZ2V0Q29udGVudFR5cGUoKSkhPT0hMSl7Y29uc3RbdSwuLi5jXT1hP2Euc3BsaXQoIjsiKS5tYXAoZj0+Zi50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXTtvLnNldENvbnRlbnRUeXBlKFt1fHwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsLi4uY10uam9pbigiOyAiKSl9fWlmKGplLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKHImJncuaXNGdW5jdGlvbihyKSYmKHI9cih0KSkscnx8ciE9PSExJiZxbSh0LnVybCkpKXtjb25zdCB1PXMmJmkmJldtLnJlYWQoaSk7dSYmby5zZXQocyx1KX1yZXR1cm4gdH0sR209dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixZbT1HbSYmZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7Y29uc3Qgcz15YyhlKTtsZXQgaT1zLmRhdGE7Y29uc3Qgbz1RZS5mcm9tKHMuaGVhZGVycykubm9ybWFsaXplKCk7bGV0e3Jlc3BvbnNlVHlwZTpsLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6dX09cyxjLGYsaCx2LHA7ZnVuY3Rpb24gYigpe3YmJnYoKSxwJiZwKCkscy5jYW5jZWxUb2tlbiYmcy5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShjKSxzLnNpZ25hbCYmcy5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGMpfWxldCB5PW5ldyBYTUxIdHRwUmVxdWVzdDt5Lm9wZW4ocy5tZXRob2QudG9VcHBlckNhc2UoKSxzLnVybCwhMCkseS50aW1lb3V0PXMudGltZW91dDtmdW5jdGlvbiBTKCl7aWYoIXkpcmV0dXJuO2NvbnN0IEY9UWUuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIHkmJnkuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEQ9e2RhdGE6IWx8fGw9PT0idGV4dCJ8fGw9PT0ianNvbiI/eS5yZXNwb25zZVRleHQ6eS5yZXNwb25zZSxzdGF0dXM6eS5zdGF0dXMsc3RhdHVzVGV4dDp5LnN0YXR1c1RleHQsaGVhZGVyczpGLGNvbmZpZzplLHJlcXVlc3Q6eX07bWMoZnVuY3Rpb24oVyl7bihXKSxiKCl9LGZ1bmN0aW9uKFcpe3IoVyksYigpfSxEKSx5PW51bGx9Im9ubG9hZGVuZCJpbiB5P3kub25sb2FkZW5kPVM6eS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXsheXx8eS5yZWFkeVN0YXRlIT09NHx8eS5zdGF0dXM9PT0wJiYhKHkucmVzcG9uc2VVUkwmJnkucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KFMpfSx5Lm9uYWJvcnQ9ZnVuY3Rpb24oKXt5JiYocihuZXcgWigiUmVxdWVzdCBhYm9ydGVkIixaLkVDT05OQUJPUlRFRCxlLHkpKSx5PW51bGwpfSx5Lm9uZXJyb3I9ZnVuY3Rpb24oKXtyKG5ldyBaKCJOZXR3b3JrIEVycm9yIixaLkVSUl9ORVRXT1JLLGUseSkpLHk9bnVsbH0seS5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1zLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitzLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCI7Y29uc3QgRD1zLnRyYW5zaXRpb25hbHx8ZGM7cy50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1zLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHIobmV3IFooUixELmNsYXJpZnlUaW1lb3V0RXJyb3I/Wi5FVElNRURPVVQ6Wi5FQ09OTkFCT1JURUQsZSx5KSkseT1udWxsfSxpPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIHkmJncuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsRCl7eS5zZXRSZXF1ZXN0SGVhZGVyKEQsUil9KSx3LmlzVW5kZWZpbmVkKHMud2l0aENyZWRlbnRpYWxzKXx8KHkud2l0aENyZWRlbnRpYWxzPSEhcy53aXRoQ3JlZGVudGlhbHMpLGwmJmwhPT0ianNvbiImJih5LnJlc3BvbnNlVHlwZT1zLnJlc3BvbnNlVHlwZSksdSYmKFtoLHBdPXpyKHUsITApLHkuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGgpKSxhJiZ5LnVwbG9hZCYmKFtmLHZdPXpyKGEpLHkudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixmKSx5LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIix2KSksKHMuY2FuY2VsVG9rZW58fHMuc2lnbmFsKSYmKGM9Rj0+e3kmJihyKCFGfHxGLnR5cGU/bmV3IE9uKG51bGwsZSx5KTpGKSx5LmFib3J0KCkseT1udWxsKX0scy5jYW5jZWxUb2tlbiYmcy5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoYykscy5zaWduYWwmJihzLnNpZ25hbC5hYm9ydGVkP2MoKTpzLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsYykpKTtjb25zdCBDPWptKHMudXJsKTtpZihDJiZqZS5wcm90b2NvbHMuaW5kZXhPZihDKT09PS0xKXtyKG5ldyBaKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0MrIjoiLFouRVJSX0JBRF9SRVFVRVNULGUpKTtyZXR1cm59eS5zZW5kKGl8fG51bGwpfSl9LFhtPShlLHQpPT57Y29uc3R7bGVuZ3RoOm59PWU9ZT9lLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxuKXtsZXQgcj1uZXcgQWJvcnRDb250cm9sbGVyLHM7Y29uc3QgaT1mdW5jdGlvbih1KXtpZighcyl7cz0hMCxsKCk7Y29uc3QgYz11IGluc3RhbmNlb2YgRXJyb3I/dTp0aGlzLnJlYXNvbjtyLmFib3J0KGMgaW5zdGFuY2VvZiBaP2M6bmV3IE9uKGMgaW5zdGFuY2VvZiBFcnJvcj9jLm1lc3NhZ2U6YykpfX07bGV0IG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxpKG5ldyBaKGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLFouRVRJTUVET1VUKSl9LHQpO2NvbnN0IGw9KCk9PntlJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxlLmZvckVhY2godT0+e3UudW5zdWJzY3JpYmU/dS51bnN1YnNjcmliZShpKTp1LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixpKX0pLGU9bnVsbCl9O2UuZm9yRWFjaCh1PT51LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixpKSk7Y29uc3R7c2lnbmFsOmF9PXI7cmV0dXJuIGEudW5zdWJzY3JpYmU9KCk9PncuYXNhcChsKSxhfX0sWm09ZnVuY3Rpb24qKGUsdCl7bGV0IG49ZS5ieXRlTGVuZ3RoO2lmKG48dCl7eWllbGQgZTtyZXR1cm59bGV0IHI9MCxzO2Zvcig7cjxuOylzPXIrdCx5aWVsZCBlLnNsaWNlKHIscykscj1zfSxRbT1hc3luYyBmdW5jdGlvbiooZSx0KXtmb3IgYXdhaXQoY29uc3QgbiBvZiBlcChlKSl5aWVsZCpabShuLHQpfSxlcD1hc3luYyBmdW5jdGlvbiooZSl7aWYoZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKmU7cmV0dXJufWNvbnN0IHQ9ZS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtjb25zdHtkb25lOm4sdmFsdWU6cn09YXdhaXQgdC5yZWFkKCk7aWYobilicmVhazt5aWVsZCByfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSx1bD0oZSx0LG4scik9Pntjb25zdCBzPVFtKGUsdCk7bGV0IGk9MCxvLGw9YT0+e298fChvPSEwLHImJnIoYSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKGEpe3RyeXtjb25zdHtkb25lOnUsdmFsdWU6Y309YXdhaXQgcy5uZXh0KCk7aWYodSl7bCgpLGEuY2xvc2UoKTtyZXR1cm59bGV0IGY9Yy5ieXRlTGVuZ3RoO2lmKG4pe2xldCBoPWkrPWY7bihoKX1hLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoYykpfWNhdGNoKHUpe3Rocm93IGwodSksdX19LGNhbmNlbChhKXtyZXR1cm4gbChhKSxzLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfSx2cz10eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXF1ZXN0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVzcG9uc2U9PSJmdW5jdGlvbiIsYmM9dnMmJnR5cGVvZiBSZWFkYWJsZVN0cmVhbT09ImZ1bmN0aW9uIix0cD12cyYmKHR5cGVvZiBUZXh0RW5jb2Rlcj09ImZ1bmN0aW9uIj8oZT0+dD0+ZS5lbmNvZGUodCkpKG5ldyBUZXh0RW5jb2Rlcik6YXN5bmMgZT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKGUpLmFycmF5QnVmZmVyKCkpKSx2Yz0oZSwuLi50KT0+e3RyeXtyZXR1cm4hIWUoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxucD1iYyYmdmMoKCk9PntsZXQgZT0hMTtjb25zdCB0PW5ldyBSZXF1ZXN0KGplLm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIGU9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gZSYmIXR9KSxmbD02NCoxMDI0LHVpPWJjJiZ2YygoKT0+dy5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgiIikuYm9keSkpLHFyPXtzdHJlYW06dWkmJihlPT5lLmJvZHkpfTt2cyYmKGU9PntbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2godD0+eyFxclt0XSYmKHFyW3RdPXcuaXNGdW5jdGlvbihlW3RdKT9uPT5uW3RdKCk6KG4scik9Pnt0aHJvdyBuZXcgWihgUmVzcG9uc2UgdHlwZSAnJHt0fScgaXMgbm90IHN1cHBvcnRlZGAsWi5FUlJfTk9UX1NVUFBPUlQscil9KX0pfSkobmV3IFJlc3BvbnNlKTtjb25zdCBycD1hc3luYyBlPT57aWYoZT09bnVsbClyZXR1cm4gMDtpZih3LmlzQmxvYihlKSlyZXR1cm4gZS5zaXplO2lmKHcuaXNTcGVjQ29tcGxpYW50Rm9ybShlKSlyZXR1cm4oYXdhaXQgbmV3IFJlcXVlc3QoamUub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6ZX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYody5pc0FycmF5QnVmZmVyVmlldyhlKXx8dy5pc0FycmF5QnVmZmVyKGUpKXJldHVybiBlLmJ5dGVMZW5ndGg7aWYody5pc1VSTFNlYXJjaFBhcmFtcyhlKSYmKGU9ZSsiIiksdy5pc1N0cmluZyhlKSlyZXR1cm4oYXdhaXQgdHAoZSkpLmJ5dGVMZW5ndGh9LHNwPWFzeW5jKGUsdCk9Pntjb25zdCBuPXcudG9GaW5pdGVOdW1iZXIoZS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBuPz9ycCh0KX0saXA9dnMmJihhc3luYyBlPT57bGV0e3VybDp0LG1ldGhvZDpuLGRhdGE6cixzaWduYWw6cyxjYW5jZWxUb2tlbjppLHRpbWVvdXQ6byxvbkRvd25sb2FkUHJvZ3Jlc3M6bCxvblVwbG9hZFByb2dyZXNzOmEscmVzcG9uc2VUeXBlOnUsaGVhZGVyczpjLHdpdGhDcmVkZW50aWFsczpmPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOmh9PXljKGUpO3U9dT8odSsiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IHY9WG0oW3MsaSYmaS50b0Fib3J0U2lnbmFsKCldLG8pLHA7Y29uc3QgYj12JiZ2LnVuc3Vic2NyaWJlJiYoKCk9Pnt2LnVuc3Vic2NyaWJlKCl9KTtsZXQgeTt0cnl7aWYoYSYmbnAmJm4hPT0iZ2V0IiYmbiE9PSJoZWFkIiYmKHk9YXdhaXQgc3AoYyxyKSkhPT0wKXtsZXQgRD1uZXcgUmVxdWVzdCh0LHttZXRob2Q6IlBPU1QiLGJvZHk6cixkdXBsZXg6ImhhbGYifSksTjtpZih3LmlzRm9ybURhdGEocikmJihOPUQuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmYy5zZXRDb250ZW50VHlwZShOKSxELmJvZHkpe2NvbnN0W1csWF09bGwoeSx6cihhbChhKSkpO3I9dWwoRC5ib2R5LGZsLFcsWCl9fXcuaXNTdHJpbmcoZil8fChmPWY/ImluY2x1ZGUiOiJvbWl0Iik7Y29uc3QgUz0iY3JlZGVudGlhbHMiaW4gUmVxdWVzdC5wcm90b3R5cGU7cD1uZXcgUmVxdWVzdCh0LHsuLi5oLHNpZ25hbDp2LG1ldGhvZDpuLnRvVXBwZXJDYXNlKCksaGVhZGVyczpjLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6cixkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOlM/Zjp2b2lkIDB9KTtsZXQgQz1hd2FpdCBmZXRjaChwLGgpO2NvbnN0IEY9dWkmJih1PT09InN0cmVhbSJ8fHU9PT0icmVzcG9uc2UiKTtpZih1aSYmKGx8fEYmJmIpKXtjb25zdCBEPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEw9PntEW0xdPUNbTF19KTtjb25zdCBOPXcudG9GaW5pdGVOdW1iZXIoQy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW1csWF09bCYmbGwoTix6cihhbChsKSwhMCkpfHxbXTtDPW5ldyBSZXNwb25zZSh1bChDLmJvZHksZmwsVywoKT0+e1gmJlgoKSxiJiZiKCl9KSxEKX11PXV8fCJ0ZXh0IjtsZXQgUj1hd2FpdCBxclt3LmZpbmRLZXkocXIsdSl8fCJ0ZXh0Il0oQyxlKTtyZXR1cm4hRiYmYiYmYigpLGF3YWl0IG5ldyBQcm9taXNlKChELE4pPT57bWMoRCxOLHtkYXRhOlIsaGVhZGVyczpRZS5mcm9tKEMuaGVhZGVycyksc3RhdHVzOkMuc3RhdHVzLHN0YXR1c1RleHQ6Qy5zdGF0dXNUZXh0LGNvbmZpZzplLHJlcXVlc3Q6cH0pfSl9Y2F0Y2goUyl7dGhyb3cgYiYmYigpLFMmJlMubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KFMubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgWigiTmV0d29yayBFcnJvciIsWi5FUlJfTkVUV09SSyxlLHApLHtjYXVzZTpTLmNhdXNlfHxTfSk6Wi5mcm9tKFMsUyYmUy5jb2RlLGUscCl9fSksZmk9e2h0dHA6X20seGhyOlltLGZldGNoOmlwfTt3LmZvckVhY2goZmksKGUsdCk9PntpZihlKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KTtjb25zdCBkbD1lPT5gLSAke2V9YCxvcD1lPT53LmlzRnVuY3Rpb24oZSl8fGU9PT1udWxsfHxlPT09ITEsX2M9e2dldEFkYXB0ZXI6ZT0+e2U9dy5pc0FycmF5KGUpP2U6W2VdO2NvbnN0e2xlbmd0aDp0fT1lO2xldCBuLHI7Y29uc3Qgcz17fTtmb3IobGV0IGk9MDtpPHQ7aSsrKXtuPWVbaV07bGV0IG87aWYocj1uLCFvcChuKSYmKHI9ZmlbKG89U3RyaW5nKG4pKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgWihgVW5rbm93biBhZGFwdGVyICcke299J2ApO2lmKHIpYnJlYWs7c1tvfHwiIyIraV09cn1pZighcil7Y29uc3QgaT1PYmplY3QuZW50cmllcyhzKS5tYXAoKFtsLGFdKT0+YGFkYXB0ZXIgJHtsfSBgKyhhPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSk7bGV0IG89dD9pLmxlbmd0aD4xP2BzaW5jZSA6CmAraS5tYXAoZGwpLmpvaW4oYApgKToiICIrZGwoaVswXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgWigiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK28sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpmaX07ZnVuY3Rpb24gVXMoZSl7aWYoZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksZS5zaWduYWwmJmUuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IE9uKG51bGwsZSl9ZnVuY3Rpb24gaGwoZSl7cmV0dXJuIFVzKGUpLGUuaGVhZGVycz1RZS5mcm9tKGUuaGVhZGVycyksZS5kYXRhPUhzLmNhbGwoZSxlLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihlLm1ldGhvZCkhPT0tMSYmZS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxfYy5nZXRBZGFwdGVyKGUuYWRhcHRlcnx8Z3IuYWRhcHRlcikoZSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gVXMoZSksci5kYXRhPUhzLmNhbGwoZSxlLnRyYW5zZm9ybVJlc3BvbnNlLHIpLHIuaGVhZGVycz1RZS5mcm9tKHIuaGVhZGVycykscn0sZnVuY3Rpb24ocil7cmV0dXJuIGdjKHIpfHwoVXMoZSksciYmci5yZXNwb25zZSYmKHIucmVzcG9uc2UuZGF0YT1Icy5jYWxsKGUsZS50cmFuc2Zvcm1SZXNwb25zZSxyLnJlc3BvbnNlKSxyLnJlc3BvbnNlLmhlYWRlcnM9UWUuZnJvbShyLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3Qocil9KX1jb25zdCB3Yz0iMS4xMC4wIixfcz17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKGUsdCk9Pntfc1tlXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1lfHwiYSIrKHQ8MT8ibiAiOiIgIikrZX19KTtjb25zdCBnbD17fTtfcy50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxuLHIpe2Z1bmN0aW9uIHMoaSxvKXtyZXR1cm4iW0F4aW9zIHYiK3djKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIraSsiJyIrbysocj8iLiAiK3I6IiIpfXJldHVybihpLG8sbCk9PntpZih0PT09ITEpdGhyb3cgbmV3IFoocyhvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKG4/IiBpbiAiK246IiIpKSxaLkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gbiYmIWdsW29dJiYoZ2xbb109ITAsY29uc29sZS53YXJuKHMobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrbisiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoaSxvLGwpOiEwfX07X3Muc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKG4scik9Pihjb25zb2xlLndhcm4oYCR7cn0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbHAoZSx0LG4pe2lmKHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyBuZXcgWigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsWi5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29uc3Qgcj1PYmplY3Qua2V5cyhlKTtsZXQgcz1yLmxlbmd0aDtmb3IoO3MtLSA+MDspe2NvbnN0IGk9cltzXSxvPXRbaV07aWYobyl7Y29uc3QgbD1lW2ldLGE9bD09PXZvaWQgMHx8byhsLGksZSk7aWYoYSE9PSEwKXRocm93IG5ldyBaKCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK2EsWi5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYobiE9PSEwKXRocm93IG5ldyBaKCJVbmtub3duIG9wdGlvbiAiK2ksWi5FUlJfQkFEX09QVElPTil9fWNvbnN0IEJyPXthc3NlcnRPcHRpb25zOmxwLHZhbGlkYXRvcnM6X3N9LHd0PUJyLnZhbGlkYXRvcnM7bGV0IGFuPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dHx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGlsLHJlc3BvbnNlOm5ldyBpbH19YXN5bmMgcmVxdWVzdCh0LG4pe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdCh0LG4pfWNhdGNoKHIpe2lmKHIgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHM9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocyk6cz1uZXcgRXJyb3I7Y29uc3QgaT1zLnN0YWNrP3Muc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7ci5zdGFjaz9pJiYhU3RyaW5nKHIuc3RhY2spLmVuZHNXaXRoKGkucmVwbGFjZSgvXi4rXG4uK1xuLywiIikpJiYoci5zdGFjays9YApgK2kpOnIuc3RhY2s9aX1jYXRjaHt9fXRocm93IHJ9fV9yZXF1ZXN0KHQsbil7dHlwZW9mIHQ9PSJzdHJpbmciPyhuPW58fHt9LG4udXJsPXQpOm49dHx8e30sbj1jbih0aGlzLmRlZmF1bHRzLG4pO2NvbnN0e3RyYW5zaXRpb25hbDpyLHBhcmFtc1NlcmlhbGl6ZXI6cyxoZWFkZXJzOml9PW47ciE9PXZvaWQgMCYmQnIuYXNzZXJ0T3B0aW9ucyhyLHtzaWxlbnRKU09OUGFyc2luZzp3dC50cmFuc2l0aW9uYWwod3QuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6d3QudHJhbnNpdGlvbmFsKHd0LmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6d3QudHJhbnNpdGlvbmFsKHd0LmJvb2xlYW4pfSwhMSkscyE9bnVsbCYmKHcuaXNGdW5jdGlvbihzKT9uLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpzfTpCci5hc3NlcnRPcHRpb25zKHMse2VuY29kZTp3dC5mdW5jdGlvbixzZXJpYWxpemU6d3QuZnVuY3Rpb259LCEwKSksbi5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/bi5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOm4uYWxsb3dBYnNvbHV0ZVVybHM9ITApLEJyLmFzc2VydE9wdGlvbnMobix7YmFzZVVybDp3dC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46d3Quc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLG4ubWV0aG9kPShuLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPWkmJncubWVyZ2UoaS5jb21tb24saVtuLm1ldGhvZF0pO2kmJncuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxwPT57ZGVsZXRlIGlbcF19KSxuLmhlYWRlcnM9UWUuY29uY2F0KG8saSk7Y29uc3QgbD1bXTtsZXQgYT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oYil7dHlwZW9mIGIucnVuV2hlbj09ImZ1bmN0aW9uIiYmYi5ydW5XaGVuKG4pPT09ITF8fChhPWEmJmIuc3luY2hyb25vdXMsbC51bnNoaWZ0KGIuZnVsZmlsbGVkLGIucmVqZWN0ZWQpKX0pO2NvbnN0IHU9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihiKXt1LnB1c2goYi5mdWxmaWxsZWQsYi5yZWplY3RlZCl9KTtsZXQgYyxmPTAsaDtpZighYSl7Y29uc3QgcD1baGwuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihwLnVuc2hpZnQuYXBwbHkocCxsKSxwLnB1c2guYXBwbHkocCx1KSxoPXAubGVuZ3RoLGM9UHJvbWlzZS5yZXNvbHZlKG4pO2Y8aDspYz1jLnRoZW4ocFtmKytdLHBbZisrXSk7cmV0dXJuIGN9aD1sLmxlbmd0aDtsZXQgdj1uO2ZvcihmPTA7ZjxoOyl7Y29uc3QgcD1sW2YrK10sYj1sW2YrK107dHJ5e3Y9cCh2KX1jYXRjaCh5KXtiLmNhbGwodGhpcyx5KTticmVha319dHJ5e2M9aGwuY2FsbCh0aGlzLHYpfWNhdGNoKHApe3JldHVybiBQcm9taXNlLnJlamVjdChwKX1mb3IoZj0wLGg9dS5sZW5ndGg7ZjxoOyljPWMudGhlbih1W2YrK10sdVtmKytdKTtyZXR1cm4gY31nZXRVcmkodCl7dD1jbih0aGlzLmRlZmF1bHRzLHQpO2NvbnN0IG49cGModC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBmYyhuLHQucGFyYW1zLHQucGFyYW1zU2VyaWFsaXplcil9fTt3LmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKHQpe2FuLnByb3RvdHlwZVt0XT1mdW5jdGlvbihuLHIpe3JldHVybiB0aGlzLnJlcXVlc3QoY24ocnx8e30se21ldGhvZDp0LHVybDpuLGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pO3cuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4ocil7cmV0dXJuIGZ1bmN0aW9uKGksbyxsKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGNuKGx8fHt9LHttZXRob2Q6dCxoZWFkZXJzOnI/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmksZGF0YTpvfSkpfX1hbi5wcm90b3R5cGVbdF09bigpLGFuLnByb3RvdHlwZVt0KyJGb3JtIl09bighMCl9KTtsZXQgYXA9Y2xhc3MgeGN7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBuO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihpKXtuPWl9KTtjb25zdCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocz0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBpPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtpLS0gPjA7KXIuX2xpc3RlbmVyc1tpXShzKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXM9PntsZXQgaTtjb25zdCBvPW5ldyBQcm9taXNlKGw9PntyLnN1YnNjcmliZShsKSxpPWx9KS50aGVuKHMpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoaSl9LG99LHQoZnVuY3Rpb24oaSxvLGwpe3IucmVhc29ufHwoci5yZWFzb249bmV3IE9uKGksbyxsKSxuKHIucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47Y29uc3Qgbj10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZih0KTtuIT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UobiwxKX10b0Fib3J0U2lnbmFsKCl7Y29uc3QgdD1uZXcgQWJvcnRDb250cm9sbGVyLG49cj0+e3QuYWJvcnQocil9O3JldHVybiB0aGlzLnN1YnNjcmliZShuKSx0LnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShuKSx0LnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IHQ7cmV0dXJue3Rva2VuOm5ldyB4YyhmdW5jdGlvbihzKXt0PXN9KSxjYW5jZWw6dH19fTtmdW5jdGlvbiBjcChlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGUuYXBwbHkobnVsbCxuKX19ZnVuY3Rpb24gdXAoZSl7cmV0dXJuIHcuaXNPYmplY3QoZSkmJmUuaXNBeGlvc0Vycm9yPT09ITB9Y29uc3QgZGk9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKGRpKS5mb3JFYWNoKChbZSx0XSk9PntkaVt0XT1lfSk7ZnVuY3Rpb24gU2MoZSl7Y29uc3QgdD1uZXcgYW4oZSksbj1RYShhbi5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gdy5leHRlbmQobixhbi5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLHcuZXh0ZW5kKG4sdCxudWxsLHthbGxPd25LZXlzOiEwfSksbi5jcmVhdGU9ZnVuY3Rpb24ocyl7cmV0dXJuIFNjKGNuKGUscykpfSxufWNvbnN0IHhlPVNjKGdyKTt4ZS5BeGlvcz1hbjt4ZS5DYW5jZWxlZEVycm9yPU9uO3hlLkNhbmNlbFRva2VuPWFwO3hlLmlzQ2FuY2VsPWdjO3hlLlZFUlNJT049d2M7eGUudG9Gb3JtRGF0YT1iczt4ZS5BeGlvc0Vycm9yPVo7eGUuQ2FuY2VsPXhlLkNhbmNlbGVkRXJyb3I7eGUuYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07eGUuc3ByZWFkPWNwO3hlLmlzQXhpb3NFcnJvcj11cDt4ZS5tZXJnZUNvbmZpZz1jbjt4ZS5BeGlvc0hlYWRlcnM9UWU7eGUuZm9ybVRvSlNPTj1lPT5oYyh3LmlzSFRNTEZvcm0oZSk/bmV3IEZvcm1EYXRhKGUpOmUpO3hlLmdldEFkYXB0ZXI9X2MuZ2V0QWRhcHRlcjt4ZS5IdHRwU3RhdHVzQ29kZT1kaTt4ZS5kZWZhdWx0PXhlO2NvbnN0e0F4aW9zOm1wLEF4aW9zRXJyb3I6cHAsQ2FuY2VsZWRFcnJvcjp5cCxpc0NhbmNlbDpicCxDYW5jZWxUb2tlbjp2cCxWRVJTSU9OOl9wLGFsbDp3cCxDYW5jZWw6eHAsaXNBeGlvc0Vycm9yOlNwLHNwcmVhZDpDcCx0b0Zvcm1EYXRhOkVwLEF4aW9zSGVhZGVyczpUcCxIdHRwU3RhdHVzQ29kZTpBcCxmb3JtVG9KU09OOk9wLGdldEFkYXB0ZXI6UnAsbWVyZ2VDb25maWc6SXB9PXhlLGZwPXtuY3Z0SG9zdDoiaHR0cHM6Ly9jbGFzcy5iaWdkYXRhLm5jdnQubmV0LyIsbmN2dEdFVChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQsbik9Pnt4ZSh7bWV0aG9kOiJnZXQiLHVybDp0aGlzLm5jdnRIb3N0K2UsdGltZW91dDo1ZTN9KS50aGVuKHI9Pnt0KHIuZGF0YSl9KS5jYXRjaChyPT57bihyLm1lc3NhZ2UpfSl9KX0sbmN2dFBPU1QoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKG4scik9Pnt4ZSh7bWV0aG9kOiJwb3N0Iix1cmw6dGhpcy5uY3Z0SG9zdCtlLGRhdGE6dCx0aW1lb3V0OjVlMyxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04In19KS50aGVuKHM9PntuKHMuZGF0YSl9KS5jYXRjaChzPT57cihzLm1lc3NhZ2UpfSl9KX0sZmlmUE9TVChlLHQpe2NvbnN0IG49bG9jYWxTdG9yYWdlLmdldEl0ZW0oIkF1dGhvcml6YXRpb24iKSxyPUpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oInVzZXJJbmZvIikpLmRhdGE7cmV0dXJuIG5ldyBQcm9taXNlKChzLGkpPT57eGUoe21ldGhvZDoicG9zdCIsdXJsOmUsZGF0YTp0LHRpbWVvdXQ6NWUzLGhlYWRlcnM6e2xvZ2luTmFtZTpyLmxvZ2luTmFtZSxsYW5ndWFnZToyLEF1dGhvcml6YXRpb246YEJlYXJlciAke259YCxyZWFsTmFtZTplbmNvZGVVUklDb21wb25lbnQoci5yZWFsTmFtZSksc291cmNlOiIxMDAwMyIsdXNlclJvbGU6IjAiLHVzZXJJZDpyLnVzZXJJZCxjbGllbnRUeXBlOiI2Iix1c2VyTm86ci51c2VyTm8sc2Nob29sSWQ6ci5zY2hvb2xJZCwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn19KS50aGVuKG89PntzKG8uZGF0YSl9KS5jYXRjaChvPT57aShvLm1lc3NhZ2UpfSl9KX19LENjPXdhKERnKTtDYy5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kcmVxPWZwO0NjLm1vdW50KCIjYXBwIik7Cg==`; const scriptLptiyuBase64 = `data:text/javascript;base64,KHdpbmRvdy53ZWJwYWNrSnNvbnAgPSB3aW5kb3cud2VicGFja0pzb25wIHx8IFtdKS5wdXNoKFsNCiAgWyJwYWdlc19ydW4tcnVuaW5nIl0sDQogIHsNCiAgICAiMTYyYiI6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAoZSA9IG4oIjI0ZmIiKSghMSkpLnB1c2goWw0KICAgICAgICB0LmksDQogICAgICAgICdAY2hhcnNldCAiVVRGLTgiO1xuLyog6aKc6Imy5Y+Y6YePICovXG4vKiDooYzkuLrnm7jlhbPpopzoibIgKi9cbi8qIOaWh+Wtl+WfuuacrOminOiJsiAqL1xuLyog6IOM5pmv6aKc6ImyICovXG4vKiDovrnmoYbpopzoibIgKi9cbi8qIOWwuuWvuOWPmOmHjyAqL1xuLyog5paH5a2X5bC65a+4ICovXG4vKiDlm77niYflsLrlr7ggKi9cbi8qIEJvcmRlciBSYWRpdXMgKi9cbi8qIOawtOW5s+mXtOi3nSAqL1xuLyog5Z6C55u06Ze06LedICovXG4vKiDpgI/mmI7luqYgKi9cbi8qIOaWh+eroOWcuuaZr+ebuOWFsyAqL1tkYXRhLXYtM2E1ZjhmM2JdIC5hbWFwLWxvZ297b3BhY2l0eTowIWltcG9ydGFudH1bZGF0YS12LTNhNWY4ZjNiXSAuYW1hcC1jb3B5cmlnaHR7b3BhY2l0eTowIWltcG9ydGFudH1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluLWRhdGEtdi0zYTVmOGYzYntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9NTAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19QGtleWZyYW1lcyB6b29tSW4tZGF0YS12LTNhNWY4ZjNie2Zyb217b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKX01MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfX1ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVUb1JpZ2h0LWRhdGEtdi0zYTVmOGYzYnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19QGtleWZyYW1lcyBzbGlkZVRvUmlnaHQtZGF0YS12LTNhNWY4ZjNiezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYnRuX2ljb25bZGF0YS12LTNhNWY4ZjNiXXt3aWR0aDolPzU4PyV9LmNsb2NrX2ljb25bZGF0YS12LTNhNWY4ZjNiXXt3aWR0aDolPzMwPyU7aGVpZ2h0OiU/MzA/JX0ud2dfaWNvbltkYXRhLXYtM2E1ZjhmM2Jdey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoJT8tMj8lKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCglPy0yPyUpfS53Z19pY29uIC5jbG9ja19pY29uW2RhdGEtdi0zYTVmOGYzYl17d2lkdGg6JT8zND8lfS5jbG9ja19pY29uX2NhbGNbZGF0YS12LTNhNWY4ZjNiXXt3aWR0aDolPzY4PyV9LmFuaW1hdGVfX3pvb21JbltkYXRhLXYtM2E1ZjhmM2Jdey13ZWJraXQtYW5pbWF0aW9uOnpvb21Jbi1kYXRhLXYtM2E1ZjhmM2IgMXMgZWFzZSBpbmZpbml0ZSBub3JtYWwgZm9yd2FyZHM7YW5pbWF0aW9uOnpvb21Jbi1kYXRhLXYtM2E1ZjhmM2IgMXMgZWFzZSBpbmZpbml0ZSBub3JtYWwgZm9yd2FyZHN9LnJ1bmluZ1tkYXRhLXYtM2E1ZjhmM2Jde3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxMDB2aH0ucnVuaW5nLS1mcmVlIC5ydW5pbmctaGFuZGxlX19pbmZvW2RhdGEtdi0zYTVmOGYzYl17YmFja2dyb3VuZDpub25lO2JveC1zaGFkb3c6bm9uZX0ucnVuaW5nLW1hcFtkYXRhLXYtM2E1ZjhmM2Jde3dpZHRoOjEwMHZ3O2hlaWdodDoxMDB2aH0ucnVuaW5nLXN0YXRlW2RhdGEtdi0zYTVmOGYzYl17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDtsZWZ0OiU/MjQ/JTtyaWdodDolPzI0PyU7dG9wOiU/OTY/JTtwYWRkaW5nOiU/NDc/JSAwICU/MzI/JTtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNoYWRvdzowIDAgJT8xNj8lIDAgaHNsYSgwLDAlLDU0LjklLC4xKTtib3JkZXItcmFkaXVzOiU/MTA/JTt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1mbG93OnJvdyBub3dyYXA7ZmxleC1mbG93OnJvdyBub3dyYXA7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6RElOU2NocmlmdH0ucnVuaW5nLXN0YXRlX19pdGVtW2RhdGEtdi0zYTVmOGYzYl17LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxO2ZsZXg6MTttYXgtd2lkdGg6JT8yMzA/JTtvdmVyZmxvdzpoaWRkZW59LnJ1bmluZy1zdGF0ZV9fbnVtW2RhdGEtdi0zYTVmOGYzYl17d2lkdGg6MTAwJTt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOiU/NzA/JTtjb2xvcjojMzYzZDRkO292ZXJmbG93OmhpZGRlbjttYXJnaW4tYm90dG9tOiU/MjA/JTtsaW5lLWhlaWdodDolPzUyPyV9LnJ1bmluZy1zdGF0ZV9fbGFiZWxbZGF0YS12LTNhNWY4ZjNiXXtmb250LXNpemU6JT8yND8lO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjY2fS5ydW5pbmctaGFuZGxlW2RhdGEtdi0zYTVmOGYzYl17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2xlZnQ6JT8yMD8lO3JpZ2h0OiU/MjA/JTtib3R0b206JT8yMD8lO2xpbmUtaGVpZ2h0OjFlbTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwOy13ZWJraXQtYm94LXBhY2s6ZW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ucnVuaW5nLWhhbmRsZV9faW5mb1tkYXRhLXYtM2E1ZjhmM2Jde3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMCAlPzE2PyUgMCBoc2xhKDAsMCUsNTQuOSUsLjEpO2JvcmRlci1yYWRpdXM6JT8xMD8lO21hcmdpbi10b3A6JT8xNj8lO3BhZGRpbmc6JT80MD8lICU/Mjg/JTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwOy13ZWJraXQtYm94LXBhY2s6ZW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ucnVuaW5nLWhhbmRsZSAuYm94LWljb25bZGF0YS12LTNhNWY4ZjNiXXttYXJnaW46MCBhdXRvOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt3aWR0aDolPzIwPyU7aGVpZ2h0OiU/MzY/JTtwYWRkaW5nOiU/MjA/JX0ucnVuaW5nLWhhbmRsZSAucnVuaW5nLWhhbmRsZV9faXRlbXNfYm94W2RhdGEtdi0zYTVmOGYzYl17bWF4LWhlaWdodDolPzIwMD8lfS5ydW5pbmctaGFuZGxlIC5ib3gtaWNvbi1tb3JlW2RhdGEtdi0zYTVmOGYzYl17LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0ucnVuaW5nLWhhbmRsZV9faXRlbXNbZGF0YS12LTNhNWY4ZjNiXXtwb3NpdGlvbjpyZWxhdGl2ZX0ucnVuaW5nLWhhbmRsZV9faXRlbVtkYXRhLXYtM2E1ZjhmM2Jde2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWZsb3c6cm93IG5vd3JhcDtmbGV4LWZsb3c6cm93IG5vd3JhcDstd2Via2l0LWJveC1wYWNrOnN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXdlaWdodDo0MDB9LnJ1bmluZy1oYW5kbGVfX2l0ZW0gKyAucnVuaW5nLWhhbmRsZV9faXRlbVtkYXRhLXYtM2E1ZjhmM2Jde21hcmdpbi10b3A6JT80NT8lfS5ydW5pbmctaGFuZGxlX19pdGVtLS1wYXNzW2RhdGEtdi0zYTVmOGYzYl17Y29sb3I6IzE4YzE4M30ucnVuaW5nLWhhbmRsZV9faXRlbS0tdG9bZGF0YS12LTNhNWY4ZjNiXXtjb2xvcjojOTk5fS5ydW5pbmctaGFuZGxlX19pdGVtLWljb25bZGF0YS12LTNhNWY4ZjNiXXttYXJnaW4tcmlnaHQ6JT8xNj8lfS5ydW5pbmctaGFuZGxlX19pdGVtLWxhYmVsW2RhdGEtdi0zYTVmOGYzYl17bWF4LXdpZHRoOiU/NTcwPyU7Zm9udC1zaXplOiU/MjQ/JX0ucnVuaW5nLWhhbmRsZV9faXRlbS1wYXNzW2RhdGEtdi0zYTVmOGYzYl17bWFyZ2luLWxlZnQ6YXV0bztmb250LXNpemU6JT8yMj8lfS5ydW5pbmctaGFuZGxlX19idG5zW2RhdGEtdi0zYTVmOGYzYl17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZmxvdzpyb3cgbm93cmFwO2ZsZXgtZmxvdzpyb3cgbm93cmFwOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OiU/OTI/JTttYXJnaW4tdG9wOiU/NDA/JX0ucnVuaW5nLWhhbmRsZV9fYnRucy1pY29uW2RhdGEtdi0zYTVmOGYzYl17d2lkdGg6JT81OD8lO2hlaWdodDolPzU4PyU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZmxvdzpyb3cgbm93cmFwO2ZsZXgtZmxvdzpyb3cgbm93cmFwOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOiU/MjA/JTtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzM2M2Q0ZDtib3JkZXItcmFkaXVzOjUwJX0ucnVuaW5nLWhhbmRsZV9fYnRuW2RhdGEtdi0zYTVmOGYzYl17bWFyZ2luOjAgYXV0bzt3aWR0aDolPzI5Mj8lO2hlaWdodDolPzkyPyU7bGluZS1oZWlnaHQ6JT85Mj8lO2JvcmRlci1yYWRpdXM6JT80Nj8lO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTolPzMwPyU7Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbn0ucnVuaW5nLWhhbmRsZV9fYnRuLWxhYmVsW2RhdGEtdi0zYTVmOGYzYl17cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6JT85Mj8lO2xpbmUtaGVpZ2h0OiU/OTI/JX0ucnVuaW5nLWhhbmRsZV9fYnRuLWxhYmVsLmFuaS1idG5bZGF0YS12LTNhNWY4ZjNiXTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt0b3A6MDt6LWluZGV4OjEwO2JvcmRlci1yYWRpdXM6JT80Nj8lO2JhY2tncm91bmQ6I2ZmZjtvcGFjaXR5Oi4yOy13ZWJraXQtYW5pbWF0aW9uOnNsaWRlVG9SaWdodC1kYXRhLXYtM2E1ZjhmM2IgMXMgZWFzZS1pbi1vdXQgMSBmb3J3YXJkczthbmltYXRpb246c2xpZGVUb1JpZ2h0LWRhdGEtdi0zYTVmOGYzYiAxcyBlYXNlLWluLW91dCAxIGZvcndhcmRzfS5ydW5pbmctaGFuZGxlX19idG4tLXByaW1hcnlbZGF0YS12LTNhNWY4ZjNiXXtiYWNrZ3JvdW5kOiMxOGMxODM7Y29sb3I6I2ZmZn0ucnVuaW5nLWhhbmRsZV9fYnRuLS1kYXJrW2RhdGEtdi0zYTVmOGYzYl17YmFja2dyb3VuZDojMzYzZDRkO2NvbG9yOiNmZmZ9LnJ1bmluZy1oYW5kbGVfX3RpcHNbZGF0YS12LTNhNWY4ZjNiXXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1mbG93OnJvdyBub3dyYXA7ZmxleC1mbG93OnJvdyBub3dyYXA7LXdlYmtpdC1ib3gtcGFjazpzdGFydDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzolPzI0PyUgJT8yMD8lO2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMCAlPzE2PyUgMCBoc2xhKDAsMCUsNTQuOSUsLjEpO2JvcmRlci1yYWRpdXM6JT8xMD8lO2ZvbnQtc2l6ZTolPzIxPyU7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2NjZ9LnJ1bmluZy1oYW5kbGVfX3RpcHMtdGFnW2RhdGEtdi0zYTVmOGYzYl17bWluLXdpZHRoOiU/OTA/JTtsaW5lLWhlaWdodDolPzM2PyU7Ym9yZGVyOiU/MT8lIHNvbGlkICM5OTk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKTtib3JkZXItcmFkaXVzOiU/Nj8lO21hcmdpbi1yaWdodDolPzc/JTtmb250LXNpemU6JT8xOD8lO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojMzMzfS5ydW5pbmctaGFuZGxlX190aXBzLXR4dFtkYXRhLXYtM2E1ZjhmM2Jde2xpbmUtaGVpZ2h0OiU/MjQ/JX0ucnVuaW5nLWhhbmRsZV9fdGlwcy1pY29uW2RhdGEtdi0zYTVmOGYzYl17cGFkZGluZzolPzEwPyU7Zm9udC1zaXplOiU/MTQ/JTttYXJnaW4tbGVmdDphdXRvfS5ydW5pbmctbWFza1tkYXRhLXYtM2E1ZjhmM2Jde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwO2xlZnQ6MDtyaWdodDowO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQ6IzE4YzE4MztvdmVyZmxvdzpoaWRkZW47Zm9udC1mYW1pbHk6RElOU2NocmlmdH0ucnVuaW5nLW1hc2tfX3R4dFtkYXRhLXYtM2E1ZjhmM2Jde3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCU7d2lkdGg6JT80MDA/JTtoZWlnaHQ6JT80MDA/JTtsaW5lLWhlaWdodDolPzQwMD8lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OiU/LTIwMD8lO21hcmdpbi10b3A6JT8tMjAwPyU7Y29sb3I6I2ZmZjtmb250LXNpemU6JT8yMDA/JTtmb250LXdlaWdodDpib2xkZXI7dGV4dC1hbGlnbjpjZW50ZXI7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfS5ydW5pbmctbW9kYWwtcGFzc19faXRlbXNbZGF0YS12LTNhNWY4ZjNiXXtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLWxlZnQ6JT80MD8lfS5ydW5pbmctbW9kYWwtcGFzc19faXRlbVtkYXRhLXYtM2E1ZjhmM2Jde3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTolPzI2PyU7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi10b3A6JT81Mj8lfS5ydW5pbmctbW9kYWwtcGFzc19faXRlbSAuaWNvbltkYXRhLXYtM2E1ZjhmM2Jde3dpZHRoOiU/NDA/JTtoZWlnaHQ6JT80MD8lfS5ydW5pbmctbW9kYWwtcGFzc19fZGVzW2RhdGEtdi0zYTVmOGYzYl17bWFyZ2luLWxlZnQ6JT80Mj8lfS5ydW5pbmctbWFzay1pbmZvW2RhdGEtdi0zYTVmOGYzYl17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTtsZWZ0OjEwJTt0b3A6MjUlO3JpZ2h0OjEwJTtmb250LXNpemU6JT8yMj8lO2NvbG9yOiNmZmY7cGFkZGluZzolPzIwPyU7Ym9yZGVyLXJhZGl1czolPzIwPyV9LnN1YmNvbG9yW2RhdGEtdi0zYTVmOGYzYl17Y29sb3I6Izk5OTtmb250LXNpemU6JT8yND8lfS5tb2RhbF9ncmVlbltkYXRhLXYtM2E1ZjhmM2Jde2NvbG9yOiMxOGMxODN9JywNCiAgICAgICAgIiIsDQogICAgICBdKSwNCiAgICAgICAgKHQuZXhwb3J0cyA9IGUpOw0KICAgIH0sDQogICAgIjIxZDEiOiBmdW5jdGlvbiAodCwgZSwgbikgew0KICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgbi5kKGUsICJiIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICByZXR1cm4gYTsNCiAgICAgIH0pLA0KICAgICAgICBuLmQoZSwgImMiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgcmV0dXJuIHM7DQogICAgICAgIH0pLA0KICAgICAgICBuLmQoZSwgImEiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgcmV0dXJuIGk7DQogICAgICAgIH0pOw0KICAgICAgdmFyIGkgPSB7IHVNb2RhbDogbigiMDc4YyIpLmRlZmF1bHQgfSwNCiAgICAgICAgYSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICB2YXIgdCA9IHRoaXMsDQogICAgICAgICAgICBlID0gdC4kY3JlYXRlRWxlbWVudCwNCiAgICAgICAgICAgIG4gPSB0Ll9zZWxmLl9jIHx8IGU7DQogICAgICAgICAgcmV0dXJuIG4oDQogICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICBbDQogICAgICAgICAgICAgIG4oDQogICAgICAgICAgICAgICAgInUtbW9kYWwiLA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAibW9kYWwgcnVuLWJlZm9yZS10aXAiLA0KICAgICAgICAgICAgICAgICAgYXR0cnM6IHsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICI1MjBycHgiLA0KICAgICAgICAgICAgICAgICAgICB0aXRsZTogdC5tb2RhbC50aXRsZSB8fCAiIiwNCiAgICAgICAgICAgICAgICAgICAgInNob3ctY2FuY2VsLWJ1dHRvbiI6ICExLA0KICAgICAgICAgICAgICAgICAgICAic2hvdy1jb25maXJtLWJ1dHRvbiI6ICExLA0KICAgICAgICAgICAgICAgICAgICAiY29uZmlybS1zdHlsZSI6IHQuY29uZmlybVN0eWxlLA0KICAgICAgICAgICAgICAgICAgICAiY2FuY2VsLXN0eWxlIjogdC5jYW5jZWxTdHlsZSwNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICBtb2RlbDogew0KICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdC52aXNpYmxlLA0KICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICB0LnZpc2libGUgPSBlOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiAidmlzaWJsZSIsDQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgbigNCiAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiAibW9kYWwtY29udGFpbmVyIHUtbW9kYWwtY29uIiB9LA0KICAgICAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICAgICAgdC5fdCgNCiAgICAgICAgICAgICAgICAgICAgICAgICJkZWZhdWx0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgIHQuX2wodC5jb250ZW50LCBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IGUuaWQsIHN0YXRpY0NsYXNzOiAibW9kYWwtYm94IiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Ll92KHQuX3MoZSkpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgIHQubW9kYWwuYnRucw0KICAgICAgICAgICAgICAgICAgICAgICAgPyBuKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiAibW9kYWwtYnRucyIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Ll9sKHQubW9kYWwuYnRucywgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGUudmFsdWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6ICJtb2RhbC1idG4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAibW9kYWwtYnRuLS0iICsgZS50eXBlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKG4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ3VtZW50c1swXSA9IG4gPSB0LiRoYW5kbGVFdmVudChuKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5oYW5kbGVDbGlja01vZGFsKGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5fdih0Ll9zKGUudmFsdWUpKV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICA6IHQuX2UoKSwNCiAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgMg0KICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgIF0sDQogICAgICAgICAgICAxDQogICAgICAgICAgKTsNCiAgICAgICAgfSwNCiAgICAgICAgcyA9IFtdOw0KICAgIH0sDQogICAgIjJjZWMiOiBmdW5jdGlvbiAodCwgZSwgbikgew0KICAgICAgKGUgPSBuKCIyNGZiIikoITEpKS5wdXNoKFsNCiAgICAgICAgdC5pLA0KICAgICAgICAnQGNoYXJzZXQgIlVURi04Ijtcbi8qIOminOiJsuWPmOmHjyAqL1xuLyog6KGM5Li655u45YWz6aKc6ImyICovXG4vKiDmloflrZfln7rmnKzpopzoibIgKi9cbi8qIOiDjOaZr+minOiJsiAqL1xuLyog6L655qGG6aKc6ImyICovXG4vKiDlsLrlr7jlj5jph48gKi9cbi8qIOaWh+Wtl+WwuuWvuCAqL1xuLyog5Zu+54mH5bC65a+4ICovXG4vKiBCb3JkZXIgUmFkaXVzICovXG4vKiDmsLTlubPpl7Tot50gKi9cbi8qIOWeguebtOmXtOi3nSAqL1xuLyog6YCP5piO5bqmICovXG4vKiDmlofnq6DlnLrmma/nm7jlhbMgKi8uenBbZGF0YS12LTNhNWY4ZjNiXXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3BhZGRpbmc6JT8xMD8lICU/MjA/JTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6JT8xMD8lO2JvdHRvbTolPy03MD8lO2JhY2tncm91bmQ6IzY2Nn0nLA0KICAgICAgICAiIiwNCiAgICAgIF0pLA0KICAgICAgICAodC5leHBvcnRzID0gZSk7DQogICAgfSwNCiAgICAiMzFlNyI6IGZ1bmN0aW9uICh0LCBlKSB7DQogICAgICB0LmV4cG9ydHMgPQ0KICAgICAgICAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEb0FBQUE2Q0FNQUFBRFdaYm9hQUFBQVYxQk1WRVVBQUFBMlBVMDFQRTAyUGswb04xQTFQRXcyUEUwMlBVdzJQVTAxUFUwMlBVMDJQVTAxUGswNU8wczJQVTQwUDBzMlBVMDJQazQyUFUwMlBVMy8vLyt5dEx1ZG9LaW9xN0ZhWUcxRFNWajI5L2pyN082Vm1hRy9nMGdwQUFBQUUzUlNUbE1BOVhraUJtaW5udURPeGxJOUVMa3M3ViszYmJKQkp3QUFBVFJKUkVGVVNNZWxsOXR1Z3pBUVJIZU5zYmtaU0lja0pPMy9mMmVSV3FsQzlRV0c4MzYwQnNtZVdZbGlCK083UmdGdE9tY0dLd2NKOWFqWW9XTWRwTXprRlJIVVR3V3hja2ppcW94b2pTS0RHcHNjMmFKQW14amNLNHBvSHpOckhLTCtieG9jeEVSblVuTjduR0QzdlpYaUJGcjltYmJGS1ZxYitrVmx6UDY0MUpFZFR1TitoNExnWjZ3SGdaZU5vTWl3dmhCRnc2YmVrT0crZkNiYzI2WitaTTFsV1JGbEZMR2FOKytJbzFZR3pnUUdNYVFKSTQ0MDRhVWpUWFRTa0NZYVVkTEVMSWl4bGswZ3JyNDI5VmxVRlRFZVpYZVdCcVRiU0FmUzdjU0JkTDBZa0s2UkFhUTdpTlc4KzBoZk9obVJkZCtJTTVhQzZ1djl6SVJXVUJCb3VQYVl5Z1NDaVErT0szSEZoeVFmelh3aDRHc0lYMzc0eXNVWFBiNWU4cVdXcjlKMGdiKytObHhmVm5JcjBnek1tUlhwR3hCMXdkZzduZGQxQUFBQUFFbEZUa1N1UW1DQyI7DQogICAgfSwNCiAgICAiMzRmZiI6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICB2YXIgaSA9IG4oIjc1MzQiKTsNCiAgICAgIGkuX19lc01vZHVsZSAmJiAoaSA9IGkuZGVmYXVsdCksDQogICAgICAgICJzdHJpbmciID09IHR5cGVvZiBpICYmIChpID0gW1t0LmksIGksICIiXV0pLA0KICAgICAgICBpLmxvY2FscyAmJiAodC5leHBvcnRzID0gaS5sb2NhbHMpOw0KICAgICAgKDAsIG4oIjRmMDYiKS5kZWZhdWx0KSgiY2FjY2EwYWUiLCBpLCAhMCwgew0KICAgICAgICBzb3VyY2VNYXA6ICExLA0KICAgICAgICBzaGFkb3dNb2RlOiAhMSwNCiAgICAgIH0pOw0KICAgIH0sDQogICAgIjQxYjgiOiBmdW5jdGlvbiAodCwgZSwgbikgew0KICAgICAgdmFyIGkgPSBuKCI0NDgyIik7DQogICAgICBpLl9fZXNNb2R1bGUgJiYgKGkgPSBpLmRlZmF1bHQpLA0KICAgICAgICAic3RyaW5nIiA9PSB0eXBlb2YgaSAmJiAoaSA9IFtbdC5pLCBpLCAiIl1dKSwNCiAgICAgICAgaS5sb2NhbHMgJiYgKHQuZXhwb3J0cyA9IGkubG9jYWxzKTsNCiAgICAgICgwLCBuKCI0ZjA2IikuZGVmYXVsdCkoIjBmYzBmNWUwIiwgaSwgITAsIHsNCiAgICAgICAgc291cmNlTWFwOiAhMSwNCiAgICAgICAgc2hhZG93TW9kZTogITEsDQogICAgICB9KTsNCiAgICB9LA0KICAgIDQ0ODI6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAoZSA9IG4oIjI0ZmIiKSghMSkpLnB1c2goWw0KICAgICAgICB0LmksDQogICAgICAgICdAY2hhcnNldCAiVVRGLTgiO1xuLyog6aKc6Imy5Y+Y6YePICovXG4vKiDooYzkuLrnm7jlhbPpopzoibIgKi9cbi8qIOaWh+Wtl+WfuuacrOminOiJsiAqL1xuLyog6IOM5pmv6aKc6ImyICovXG4vKiDovrnmoYbpopzoibIgKi9cbi8qIOWwuuWvuOWPmOmHjyAqL1xuLyog5paH5a2X5bC65a+4ICovXG4vKiDlm77niYflsLrlr7ggKi9cbi8qIEJvcmRlciBSYWRpdXMgKi9cbi8qIOawtOW5s+mXtOi3nSAqL1xuLyog5Z6C55u06Ze06LedICovXG4vKiDpgI/mmI7luqYgKi9cbi8qIOaWh+eroOWcuuaZr+ebuOWFsyAqLy51LW1vZGFsLWNvbltkYXRhLXYtZTk4M2Y5NDhde3dpZHRoOjEwMCV9LnUtbW9kYWwtY29uIC5tb2RhbC1ib3hbZGF0YS12LWU5ODNmOTQ4XTpmaXJzdC1jaGlsZHtwYWRkaW5nLXRvcDolPzQwPyV9JywNCiAgICAgICAgIiIsDQogICAgICBdKSwNCiAgICAgICAgKHQuZXhwb3J0cyA9IGUpOw0KICAgIH0sDQogICAgIjQ3YzQiOiBmdW5jdGlvbiAodCwgZSwgbikgew0KICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgbi5yKGUpOw0KICAgICAgdmFyIGkgPSBuKCJiMjBmIiksDQogICAgICAgIGEgPSBuLm4oaSk7DQogICAgICBmb3IgKHZhciBzIGluIGkpDQogICAgICAgIFsiZGVmYXVsdCJdLmluZGV4T2YocykgPCAwICYmDQogICAgICAgICAgKGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICBuLmQoZSwgdCwgZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICByZXR1cm4gaVt0XTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0pKHMpOw0KICAgICAgZS5kZWZhdWx0ID0gYS5hOw0KICAgIH0sDQogICAgIjViMjEiOiBmdW5jdGlvbiAodCwgZSwgbikgew0KICAgICAgdmFyIGkgPSBuKCIyY2VjIik7DQogICAgICBpLl9fZXNNb2R1bGUgJiYgKGkgPSBpLmRlZmF1bHQpLA0KICAgICAgICAic3RyaW5nIiA9PSB0eXBlb2YgaSAmJiAoaSA9IFtbdC5pLCBpLCAiIl1dKSwNCiAgICAgICAgaS5sb2NhbHMgJiYgKHQuZXhwb3J0cyA9IGkubG9jYWxzKTsNCiAgICAgICgwLCBuKCI0ZjA2IikuZGVmYXVsdCkoIjQyMTMyNzcwIiwgaSwgITAsIHsNCiAgICAgICAgc291cmNlTWFwOiAhMSwNCiAgICAgICAgc2hhZG93TW9kZTogITEsDQogICAgICB9KTsNCiAgICB9LA0KICAgICI1YjM5IjogZnVuY3Rpb24gKHQsIGUsIG4pIHsNCiAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgIG4ucihlKTsNCiAgICAgIHZhciBpID0gbigiNjgyYiIpLA0KICAgICAgICBhID0gbigiNjVkMiIpOw0KICAgICAgZm9yICh2YXIgcyBpbiBhKQ0KICAgICAgICBbImRlZmF1bHQiXS5pbmRleE9mKHMpIDwgMCAmJg0KICAgICAgICAgIChmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgbi5kKGUsIHQsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIGFbdF07DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICB9KShzKTsNCiAgICAgIG4oIjcyZmIiKSwgbigiNjUwYiIpLCBuKCJmODM2Iik7DQogICAgICB2YXIgciA9IG4oImYwYzUiKSwNCiAgICAgICAgbyA9IE9iamVjdChyLmEpKA0KICAgICAgICAgIGEuZGVmYXVsdCwNCiAgICAgICAgICBpLmIsDQogICAgICAgICAgaS5jLA0KICAgICAgICAgICExLA0KICAgICAgICAgIG51bGwsDQogICAgICAgICAgIjNhNWY4ZjNiIiwNCiAgICAgICAgICBudWxsLA0KICAgICAgICAgICExLA0KICAgICAgICAgIGkuYSwNCiAgICAgICAgICB2b2lkIDANCiAgICAgICAgKTsNCiAgICAgIGUuZGVmYXVsdCA9IG8uZXhwb3J0czsNCiAgICB9LA0KICAgICI2NTBiIjogZnVuY3Rpb24gKHQsIGUsIG4pIHsNCiAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgIHZhciBpID0gbigiMzRmZiIpOw0KICAgICAgbi5uKGkpLmE7DQogICAgfSwNCiAgICAiNjVkMiI6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAidXNlIHN0cmljdCI7DQogICAgICBuLnIoZSk7DQogICAgICB2YXIgaSA9IG4oIjc3OTEiKSwNCiAgICAgICAgYSA9IG4ubihpKTsNCiAgICAgIGZvciAodmFyIHMgaW4gaSkNCiAgICAgICAgWyJkZWZhdWx0Il0uaW5kZXhPZihzKSA8IDAgJiYNCiAgICAgICAgICAoZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgIG4uZChlLCB0LCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiBpW3RdOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfSkocyk7DQogICAgICBlLmRlZmF1bHQgPSBhLmE7DQogICAgfSwNCiAgICAiNjgyYiI6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAidXNlIHN0cmljdCI7DQogICAgICBuLmQoZSwgImIiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIHJldHVybiBhOw0KICAgICAgfSksDQogICAgICAgIG4uZChlLCAiYyIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICByZXR1cm4gczsNCiAgICAgICAgfSksDQogICAgICAgIG4uZChlLCAiYSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICByZXR1cm4gaTsNCiAgICAgICAgfSk7DQogICAgICB2YXIgaSA9IHsgdUljb246IG4oImY4NmIiKS5kZWZhdWx0LCB1TW9kYWw6IG4oIjA3OGMiKS5kZWZhdWx0IH0sDQogICAgICAgIGEgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgdmFyIHQgPSB0aGlzLA0KICAgICAgICAgICAgZSA9IHQuJGNyZWF0ZUVsZW1lbnQsDQogICAgICAgICAgICBpID0gdC5fc2VsZi5fYyB8fCBlOw0KICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICBzdGF0aWNDbGFzczogInJ1bmluZyIsDQogICAgICAgICAgICAgIGNsYXNzOiB7DQogICAgICAgICAgICAgICAgInJ1bmluZy0tZnJlZSI6IHQuaXNGcmVlVHlwZSB8fCAhdC5wb2ludE51bSwNCiAgICAgICAgICAgICAgICBpc1ZpZXdFcnJvcjogdC5pc1ZpZXdFcnJvciwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBbDQogICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICJydW5pbmctbWFwIiB9LA0KICAgICAgICAgICAgICAgIFsNCiAgICAgICAgICAgICAgICAgIGkoInYtdW5pLW1hcCIsIHsNCiAgICAgICAgICAgICAgICAgICAgc3RhdGljU3R5bGU6IHsgd2lkdGg6ICI3NTBycHgiLCBoZWlnaHQ6ICIxMDB2aCIgfSwNCiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsNCiAgICAgICAgICAgICAgICAgICAgICBpZDogIm15bWFwIiwNCiAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogdC5zY2FsZSwNCiAgICAgICAgICAgICAgICAgICAgICBsb25naXR1ZGU6IHQubG9uZ2l0dWRlLA0KICAgICAgICAgICAgICAgICAgICAgIGxhdGl0dWRlOiB0LmxhdGl0dWRlLA0KICAgICAgICAgICAgICAgICAgICAgIHBvbHlsaW5lOiB0LnBvbHlsaW5lLA0KICAgICAgICAgICAgICAgICAgICAgIHBvbHlnb25zOiB0LnBvbHlnb25zLA0KICAgICAgICAgICAgICAgICAgICAgIG1hcmtlcnM6IHQucmVhbE1hcmtlcnMsDQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgdC5pc1ZpZXdFcnJvcg0KICAgICAgICAgICAgICAgID8gaSgNCiAgICAgICAgICAgICAgICAgICAgInYtdW5pLWNvdmVyLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiAicnVuaW5nLXN0YXRlICIgfSwNCiAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgIHQuX2wodC5zaG93U3RhdGVzLCBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS1jb3Zlci12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6IGUua2V5LCBzdGF0aWNDbGFzczogInJ1bmluZy1zdGF0ZV9faXRlbSIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktY292ZXItdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiAicnVuaW5nLXN0YXRlX19udW0iIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXRleHQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICIgc3BlY2lhbC1udW0iIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QuX3YodC5fcyhlLnZhbHVlKSldDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS1jb3Zlci12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICJydW5pbmctc3RhdGVfX2xhYmVsIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QuX3YodC5fcyhlLmxhYmVsKSldDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAyICE9IHQudHlwZSAmJiB0LmlzU3RhcnQgJiYgdC5jYXB0dXJlX3R5cGUxDQogICAgICAgICAgICAgICAgICAgICAgICA/IGkoInYtdW5pLWNvdmVyLXZpZXciLCB7IHN0YXRpY0NsYXNzOiAienAiIH0sIFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Ll92KCLov5jpnIDmipPmi40iICsgdC5fcyh0Lm1pc3NfbnVtKSArICLmrKEiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgXSkNCiAgICAgICAgICAgICAgICAgICAgICAgIDogdC5fZSgpLA0KICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAyDQogICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgOiBpKA0KICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICJydW5pbmctc3RhdGUiIH0sDQogICAgICAgICAgICAgICAgICAgIFsNCiAgICAgICAgICAgICAgICAgICAgICB0Ll9sKHQuc2hvd1N0YXRlcywgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiBlLmtleSwgc3RhdGljQ2xhc3M6ICJydW5pbmctc3RhdGVfX2l0ZW0iIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogInJ1bmluZy1zdGF0ZV9fbnVtIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QuX3YodC5fcyhlLnZhbHVlKSldDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogInJ1bmluZy1zdGF0ZV9fbGFiZWwiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5fdih0Ll9zKGUubGFiZWwpKV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAxDQogICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgIDIgIT0gdC50eXBlICYmIHQuaXNTdGFydCAmJiB0LmNhcHR1cmVfdHlwZTENCiAgICAgICAgICAgICAgICAgICAgICAgID8gaSgidi11bmktY292ZXItdmlldyIsIHsgc3RhdGljQ2xhc3M6ICJ6cCIgfSwgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuX3YoIui/mOmcgOaKk+aLjSIgKyB0Ll9zKHQubWlzc19udW0pICsgIuasoSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgOiB0Ll9lKCksDQogICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgIDINCiAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICJydW5pbmctaGFuZGxlIiB9LA0KICAgICAgICAgICAgICAgIFsNCiAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOg0KICAgICAgICAgICAgICAgICAgICAgICAgInJ1bmluZy1oYW5kbGVfX25hdnMgcnVuaW5nLWhhbmRsZV9fbmF2cy1sZWZ0IiwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgIHQuX2wodC5uYXZzLmxlZnQsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWw0KICAgICAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGUua2V5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6ICJydW5pbmctaGFuZGxlX19uYXYiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uIChuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ3VtZW50c1swXSA9IG4gPSB0LiRoYW5kbGVFdmVudChuKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmhhbmRsZUNsaWNrSWNvbihlLmtleSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgidi11bmktY292ZXItaW1hZ2UiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAiY2xvY2tfaWNvbl9jYWxjIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgc3JjOiBlLmljb24gfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgMg0KICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOg0KICAgICAgICAgICAgICAgICAgICAgICAgInJ1bmluZy1oYW5kbGVfX25hdnMgcnVuaW5nLWhhbmRsZV9fbmF2cy1yaWdodCB1LXJlbGEiLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICAgICAgdC5fbCh0Lm5hdnMucmlnaHQsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWw0KICAgICAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGUua2V5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6ICJydW5pbmctaGFuZGxlX19uYXYiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uIChuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ3VtZW50c1swXSA9IG4gPSB0LiRoYW5kbGVFdmVudChuKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmhhbmRsZUNsaWNrSWNvbihlLmtleSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgidi11bmktY292ZXItaW1hZ2UiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAiY2xvY2tfaWNvbl9jYWxjIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgc3JjOiBlLmljb24gfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlpIVUFQQUkiID09PSBlLmtleSAmJiAxID09IHQubWludXRlMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktY292ZXItdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYXYtdGlwIHJ1bmluZy1oYW5kbGVfX25hdi10aXBzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5fdigi6K+35ZCM5q2l5oqT5ouN5qyh5pWwIildDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHQuX2UoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIF07DQogICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgIDINCiAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICB0LnNob3dUaXBzICYmIHQucG9pbnROdW0gPiAwICYmIHQuY2xvY2tUaXBzICYmICF0LmlzRnJlZVR5cGUNCiAgICAgICAgICAgICAgICAgICAgPyBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogInJ1bmluZy1oYW5kbGVfX3RpcHMiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnVuaW5nLWhhbmRsZV9fdGlwcy10YWcgdS1tYXJnaW4tcmlnaHQtNiB1LXRleHQtY2VudGVyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Ll92KHQuX3ModC5jbG9ja1RpcHMudGFnKSldDQogICAgICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICJydW5pbmctaGFuZGxlX190aXBzLXR4dCIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5fdih0Ll9zKHQuY2xvY2tUaXBzLnRpcHMpKV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6ICJydW5pbmctaGFuZGxlX190aXBzLWljb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ3VtZW50c1swXSA9IGUgPSB0LiRoYW5kbGVFdmVudChlKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmhhbmRsZUNsaWNrQ2xvc2UuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpKCJ1LWljb24iLCB7IGF0dHJzOiB7IG5hbWU6ICJjbG9zZSIgfSB9KV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgIDogdC5fZSgpLA0KICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiAicnVuaW5nLWhhbmRsZV9faW5mbyAiIH0sDQogICAgICAgICAgICAgICAgICAgIFsNCiAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXNjcm9sbC12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiAic2Nyb2xsVmlld1JlZiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAicnVuaW5nLWhhbmRsZV9faXRlbXNfYm94IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Nyb2xsLXkiOiAhMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Nyb2xsLXRvcCI6IHQuc2Nyb2xsVG9wLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG93LXNjcm9sbGJhciI6ICEwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBvbjogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbHRvdXBwZXI6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXJndW1lbnRzWzBdID0gZSA9IHQuJGhhbmRsZUV2ZW50KGUpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQuaXNNb3JlQXJyb3cgPSAhMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGx0b2xvd2VyOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ3VtZW50c1swXSA9IGUgPSB0LiRoYW5kbGVFdmVudChlKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0LmlzTW9yZUFycm93ID0gITEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICB0LnJlYWxDbG9ja3MubGVuZ3RoICYmICF0LmlzRnJlZVR5cGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogInJ1bmluZy1oYW5kbGVfX2l0ZW1zIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Ll9sKHQucmVhbENsb2NrcywgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBlLmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogInJ1bmluZy1oYW5kbGVfX2l0ZW0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJydW5pbmctaGFuZGxlX19pdGVtLS1wYXNzIjogZS5wYXNzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJydW5pbmctaGFuZGxlX19pdGVtLS10byI6IGUudG8sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ1bmluZy1oYW5kbGVfX2l0ZW0taWNvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Z19pY29uOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuY2FwdHVyZV90eXBlMiAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xID09IGUudGl0bGUuaW5kZXhPZigi5b6F5YiG6YWNIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgidi11bmktaW1hZ2UiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAiY2xvY2tfaWNvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHNyYzogZS5pY29uIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1LWxpbmUtMSBydW5pbmctaGFuZGxlX19pdGVtLWxhYmVsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Ll92KHQuX3MoZS50aXRsZSkpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ1bmluZy1oYW5kbGVfX2l0ZW0tcGFzcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5fdih0Ll9zKGUucGFzc1R4dCkpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdC5fZSgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgIHQucmVhbENsb2Nrcy5sZW5ndGggPiAzDQogICAgICAgICAgICAgICAgICAgICAgICA/IGkoInYtdW5pLWltYWdlIiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAiYm94LWljb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiB7ICJib3gtaWNvbi1tb3JlIjogdC5pc01vcmVBcnJvdyB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHNyYzogbigiY2ExYSIpIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICA6IHQuX2UoKSwNCiAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogInJ1bmluZy1oYW5kbGVfX2J0bnMiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICAgICAgICAgIHQuc2hvd0ljb25CdG5zDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpKCJ2LXVuaS1pbWFnZSIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ1bmluZy1oYW5kbGVfX2J0bnMtaWNvbiBidG5faWNvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHNyYzogbigiMzFlNyIpIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXJndW1lbnRzWzBdID0gZSA9IHQuJGhhbmRsZUV2ZW50KGUpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5oYW5kbGVCYWNrLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHQuX2UoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdC5fbCh0LmJ0bnMsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZS5rZXksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAicnVuaW5nLWhhbmRsZV9fYnRuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6ICJydW5pbmctaGFuZGxlX19idG4tLSIgKyBlLnR5cGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uIChuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXJndW1lbnRzWzBdID0gbiA9IHQuJGhhbmRsZUV2ZW50KG4pKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5oYW5kbGVDbGlja0J0bihlLmtleSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuaXNSdW5pbmcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAicnVuaW5nLWhhbmRsZV9fYnRuLWxhYmVsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogeyAiYW5pLWJ0biI6IHQuc2hvd0FuaUNvdW50IH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmd1bWVudHNbMF0gPSBlID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuJGhhbmRsZUV2ZW50KGUpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3VjaHN0YXJ0OiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmd1bWVudHNbMF0gPSBlID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuJGhhbmRsZUV2ZW50KGUpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmhhbmRsZVRvdWNoc3RhcnQuYXBwbHkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkIDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoZW5kOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmd1bWVudHNbMF0gPSBlID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuJGhhbmRsZUV2ZW50KGUpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmhhbmRsZVRvdWNoZW5kLmFwcGx5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QuX3YodC5fcyhlLmxhYmVsKSldDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogInJ1bmluZy1oYW5kbGVfX2J0bi1sYWJlbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Ll92KHQuX3MoZS5sYWJlbCkpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgIHQuc2hvd0ljb25CdG5zICYmIHQucG9pbnROdW0gPiAwICYmICF0LmlzRnJlZVR5cGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGkoInYtdW5pLWltYWdlIiwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnVuaW5nLWhhbmRsZV9fYnRucy1pY29uIGJ0bl9pY29uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgc3JjOiBuKCI5NGIyIikgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmd1bWVudHNbMF0gPSBlID0gdC4kaGFuZGxlRXZlbnQoZSkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmhhbmRsZVJlbG9hZENsb2Nrcy5hcHBseSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkIDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0Ll9lKCksDQogICAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgMg0KICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAxDQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgInYtdW5pLWNvdmVyLXZpZXciLA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFsNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJzaG93IiwNCiAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiAidi1zaG93IiwNCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdC5zaG93TWFzaywNCiAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiAic2hvd01hc2siLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAicnVuaW5nLW1hc2siLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgInYtdW5pLWNvdmVyLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6ICJydW5pbmctbWFza19fdHh0IHNwZWNpYWwtbnVtIiwNCiAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBhbmltYXRpb246IHQuYW5pbWF0aW9uIH0sDQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIFt0Ll92KHQuX3ModC5saW1pdE1heCkpXQ0KICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgaSgiUnVuVGlwc01vZGFsIiwgew0KICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAicnVuLWJlZm9yZS10aXAiLA0KICAgICAgICAgICAgICAgIGF0dHJzOiB7IG1vZGFsOiB0Lm1vZGFsIH0sDQogICAgICAgICAgICAgICAgb246IHsNCiAgICAgICAgICAgICAgICAgICJvbi1jbGljayI6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIChhcmd1bWVudHNbMF0gPSBlID0gdC4kaGFuZGxlRXZlbnQoZSkpLA0KICAgICAgICAgICAgICAgICAgICAgIHQuaGFuZGxlQ2xpY2tNb2RhbC5hcHBseSh2b2lkIDAsIGFyZ3VtZW50cyk7DQogICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgbW9kZWw6IHsNCiAgICAgICAgICAgICAgICAgIHZhbHVlOiB0LnNob3dSdW5UaXBzTW9kYWwsDQogICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgdC5zaG93UnVuVGlwc01vZGFsID0gZTsNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiAic2hvd1J1blRpcHNNb2RhbCIsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgInUtbW9kYWwiLA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAibW9kYWwgcnVuaW5nLW1vZGFsLXBhc3MgcnVuLWJlZm9yZS10aXAiLA0KICAgICAgICAgICAgICAgICAgYXR0cnM6IHsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICI1MjBycHgiLA0KICAgICAgICAgICAgICAgICAgICB0aXRsZTogIuaIkOe7qeWQiOagvOagh+WHhiIsDQogICAgICAgICAgICAgICAgICAgIHpvb206ICExLA0KICAgICAgICAgICAgICAgICAgICAic2hvdy1jYW5jZWwtYnV0dG9uIjogITEsDQogICAgICAgICAgICAgICAgICAgICJzaG93LWNvbmZpcm0tYnV0dG9uIjogITEsDQogICAgICAgICAgICAgICAgICAgICJjb25maXJtLXN0eWxlIjogdC5jb25maXJtU3R5bGUsDQogICAgICAgICAgICAgICAgICAgICJjYW5jZWwtc3R5bGUiOiB0LmNhbmNlbFN0eWxlLA0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIG1vZGVsOiB7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0LnNob3dQYXNzU2V0dGluZywNCiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgdC5zaG93UGFzc1NldHRpbmcgPSBlOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiAic2hvd1Bhc3NTZXR0aW5nIiwNCiAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICJtb2RhbC1jb250YWluZXIiIH0sDQogICAgICAgICAgICAgICAgICAgIFsNCiAgICAgICAgICAgICAgICAgICAgICBpKA0KICAgICAgICAgICAgICAgICAgICAgICAgInYtdW5pLXZpZXciLA0KICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogIm1vZGFsLWNvbnRlbnQgc3ViY29sb3IgIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgW3QuX3YoIuWQjOaXtua7oei2s+S7peS4i+adoeS7tuaJjeS8muiuoeS4uuacieaViOaIkOe7qSIpXQ0KICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6ICJydW5pbmctbW9kYWwtcGFzc19faXRlbXMiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICB0Ll9sKHQucGFzc1J1bGVzLCBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBlLmtleSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAicnVuaW5nLW1vZGFsLXBhc3NfX2l0ZW0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSgidi11bmktaW1hZ2UiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiAiaWNvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHNyYzogZS5pY29uIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2LXVuaS12aWV3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogInJ1bmluZy1tb2RhbC1wYXNzX19kZXMiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Ll92KHQuX3MoZS5kZXMpKV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxDQogICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgIGkoDQogICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiAibW9kYWwtYnRucyIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidi11bmktdmlldyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6ICJtb2RhbC1idG4gbW9kYWxfZ3JlZW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ3VtZW50c1swXSA9IGUgPSB0LiRoYW5kbGVFdmVudChlKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC5zaG93UGFzc1NldHRpbmcgPSAhMSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QuX3YoIuaIkeefpemBk+S6hiIpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICAxDQogICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgMQ0KICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgXSwNCiAgICAgICAgICAgIDENCiAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBzID0gW107DQogICAgfSwNCiAgICAiNzJmYiI6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAidXNlIHN0cmljdCI7DQogICAgICB2YXIgaSA9IG4oImI1NTgiKTsNCiAgICAgIG4ubihpKS5hOw0KICAgIH0sDQogICAgNzUzNDogZnVuY3Rpb24gKHQsIGUsIG4pIHsNCiAgICAgIChlID0gbigiMjRmYiIpKCExKSkucHVzaChbDQogICAgICAgIHQuaSwNCiAgICAgICAgJ0BjaGFyc2V0ICJVVEYtOCI7XG4vKiDpopzoibLlj5jph48gKi9cbi8qIOihjOS4uuebuOWFs+minOiJsiAqL1xuLyog5paH5a2X5Z+65pys6aKc6ImyICovXG4vKiDog4zmma/popzoibIgKi9cbi8qIOi+ueahhuminOiJsiAqL1xuLyog5bC65a+45Y+Y6YePICovXG4vKiDmloflrZflsLrlr7ggKi9cbi8qIOWbvueJh+WwuuWvuCAqL1xuLyogQm9yZGVyIFJhZGl1cyAqL1xuLyog5rC05bmz6Ze06LedICovXG4vKiDlnoLnm7Tpl7Tot50gKi9cbi8qIOmAj+aYjuW6piAqL1xuLyog5paH56ug5Zy65pmv55u45YWzICovLnJ1bmdpbmctZml4LW1vZGFsW2RhdGEtdi0zYTVmOGYzYl17Ym9yZGVyLXJhZGl1czolPzE2PyU7Ym94LXNoYWRvdzowIDJweCA0cHggcmdiYSgwLDAsMCwuMSkgLyog5p+U5ZKM6Zi05b2xICovfS5ydW5naW5nLWZpeC1tb2RhbCAuaWNvbltkYXRhLXYtM2E1ZjhmM2Jde3dpZHRoOiU/NDA/JX0ucnVuZ2luZy1maXgtbW9kYWwgLm1vZGFsLWJ0bltkYXRhLXYtM2E1ZjhmM2Jde21hcmdpbi10b3A6JT81Nj8lfS5ydW5naW5nLWZpeC1tb2RhbCAubW9kYWwtYnRuIC51LWFic29bZGF0YS12LTNhNWY4ZjNiXXtsZWZ0OjUwJTt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpfS56cFtkYXRhLXYtM2E1ZjhmM2Jde3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7cGFkZGluZzolPzEwPyUgJT8yMD8lO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czolPzEwPyU7bWluLXdpZHRoOiU/MTYwPyU7Ym90dG9tOiU/LTcwPyU7YmFja2dyb3VuZDojNjY2fS5uYXYtdGlwW2RhdGEtdi0zYTVmOGYzYl17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCglPy0yMzA/JSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoJT8tMjMwPyUpO2JhY2tncm91bmQ6I2ZmZn0nLA0KICAgICAgICAiIiwNCiAgICAgIF0pLA0KICAgICAgICAodC5leHBvcnRzID0gZSk7DQogICAgfSwNCiAgICA3NzkxOiBmdW5jdGlvbiAodCwgZSwgbikgew0KICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgKGZ1bmN0aW9uICh0KSB7DQogICAgICAgIG4oIjdhODIiKTsNCiAgICAgICAgdmFyIGkgPSBuKCI0ZWE0Iik7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLA0KICAgICAgICAgIChlLmRlZmF1bHQgPSB2b2lkIDApLA0KICAgICAgICAgIG4oIjk2Y2YiKSwNCiAgICAgICAgICBuKCI5OWFmIiksDQogICAgICAgICAgbigiZDgxZCIpLA0KICAgICAgICAgIG4oIjQ1ZmMiKSwNCiAgICAgICAgICBuKCJkM2I3IiksDQogICAgICAgICAgbigiN2RiMCIpLA0KICAgICAgICAgIG4oIjRkZTQiKSwNCiAgICAgICAgICBuKCJjYWFkIiksDQogICAgICAgICAgbigiMjUzMiIpLA0KICAgICAgICAgIG4oIjQxNjAiKSwNCiAgICAgICAgICBuKCIxNTliIiksDQogICAgICAgICAgbigiYTllMyIpLA0KICAgICAgICAgIG4oIjRmYWQiKSwNCiAgICAgICAgICBuKCJhYzFmIiksDQogICAgICAgICAgbigiYjY4MCIpLA0KICAgICAgICAgIG4oImM3NDAiKSwNCiAgICAgICAgICBuKCJlMjVlIiksDQogICAgICAgICAgbigiZTljNCIpOw0KICAgICAgICB2YXIgYSA9IGkobigiMzgzNSIpKSwNCiAgICAgICAgICBzID0gaShuKCIxZGExIikpLA0KICAgICAgICAgIHIgPSBpKG4oIjI5MDkiKSksDQogICAgICAgICAgbyA9IGkobigiNTUzMCIpKSwNCiAgICAgICAgICBjID0gaShuKCJkNzczIikpLA0KICAgICAgICAgIHUgPSBuKCIyNmNiIiksDQogICAgICAgICAgbCA9IG4oImVkMDgiKSwNCiAgICAgICAgICBkID0gbigiMDljYiIpLA0KICAgICAgICAgIGYgPSBpKG4oIjVhMGMiKSksDQogICAgICAgICAgcCA9IGkobigiYjA0N2MiKSksDQogICAgICAgICAgaCA9IG4oIjIyY2UiKSwNCiAgICAgICAgICBtID0gbigiZTUxMCIpLA0KICAgICAgICAgIGcgPSBudWxsLA0KICAgICAgICAgIGIgPSBudWxsLA0KICAgICAgICAgIHYgPSBudWxsLA0KICAgICAgICAgIHcgPSBudWxsLA0KICAgICAgICAgIGsgPSBudWxsOw0KICAgICAgICBlLmRlZmF1bHQgPSB7DQogICAgICAgICAgbmFtZTogIlJ1bmluZyIsDQogICAgICAgICAgY29tcG9uZW50czogeyBSdW5UaXBzTW9kYWw6IGMuZGVmYXVsdCB9LA0KICAgICAgICAgIGRhdGE6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgIG9yaWdpbkxvY2F0aW9uSW5kZXg6IDAsDQogICAgICAgICAgICAgIG9yaWdpbkxvY2F0aW9uOiBbDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAwNzg5LCBsYXRpdHVkZTogMjIuODMwMTk1NCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMDc3OSwgbGF0aXR1ZGU6IDIyLjgzMDI5MDAxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAwODI0LCBsYXRpdHVkZTogMjIuODMwMzg0ODYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDA3MzMsIGxhdGl0dWRlOiAyMi44MzA0Nzk3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAwNzI0LCBsYXRpdHVkZTogMjIuODMwNTc3MzIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDA3MTQsIGxhdGl0dWRlOiAyMi44MzA2NzUxMiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMDcwNCwgbGF0aXR1ZGU6IDIyLjgzMDc3MDU4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAwNzc1LCBsYXRpdHVkZTogMjIuODMwODczODcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDA2LCBsYXRpdHVkZTogMjIuODMwOTcxNjggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDAyNDEsIGxhdGl0dWRlOiAyMi44MzEwNTY2MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5OTc3MiwgbGF0aXR1ZGU6IDIyLjgzMTE0MTU3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk5MjIyLCBsYXRpdHVkZTogMjIuODMxMjI0MDIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTg3MjUsIGxhdGl0dWRlOiAyMi44MzEzMDkyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk4MDY2LCBsYXRpdHVkZTogMjIuODMxMzg0MTkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTcyMTgsIGxhdGl0dWRlOiAyMi44MzE0NDM4NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5NjQ3MiwgbGF0aXR1ZGU6IDIyLjgzMTUxMzMxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk1NzA2LCBsYXRpdHVkZTogMjIuODMxNTgwMzggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTQ4MDYsIGxhdGl0dWRlOiAyMi44MzE2MjcxNiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5MzgwMSwgbGF0aXR1ZGU6IDIyLjgzMTY0NjA5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODkyNzY5LCBsYXRpdHVkZTogMjIuODMxNjY0OTggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTE4MiwgbGF0aXR1ZGU6IDIyLjgzMTY4MTMzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODkwOTU2LCBsYXRpdHVkZTogMjIuODMxNjg1MjYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTAwOTIsIGxhdGl0dWRlOiAyMi44MzE2ODkxOCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4OTIwMSwgbGF0aXR1ZGU6IDIyLjgzMTY5MDU2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg4MTc0LCBsYXRpdHVkZTogMjIuODMxNjk2NzggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODczOTEsIGxhdGl0dWRlOiAyMi44MzE2OTU3OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NjQ5OSwgbGF0aXR1ZGU6IDIyLjgzMTY5OTY4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg1NzQxLCBsYXRpdHVkZTogMjIuODMxNzExMjYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODU1NjMsIGxhdGl0dWRlOiAyMi44MzE3NzM3OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NTU3MiwgbGF0aXR1ZGU6IDIyLjgzMTg0NjY2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg1NjA2LCBsYXRpdHVkZTogMjIuODMxOTI5NzUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODU2MTQsIGxhdGl0dWRlOiAyMi44MzIwMDUzNiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NTU5MiwgbGF0aXR1ZGU6IDIyLjgzMjA5MzY3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg1NTcxLCBsYXRpdHVkZTogMjIuODMyMTgyMTMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODU1NzgsIGxhdGl0dWRlOiAyMi44MzIyNjA2MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NTU2NCwgbGF0aXR1ZGU6IDIyLjgzMjMxODkyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg1NTQyLCBsYXRpdHVkZTogMjIuODMyNDA3NzUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODU1NTksIGxhdGl0dWRlOiAyMi44MzI0NTA5OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NjU2NCwgbGF0aXR1ZGU6IDIyLjgzMjQ1NDc5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg3Nzg3LCBsYXRpdHVkZTogMjIuODMyNDU2MzQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODg4MjEsIGxhdGl0dWRlOiAyMi44MzI0NTAwMiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4OTg1MywgbGF0aXR1ZGU6IDIyLjgzMjQ1Mzg2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODkwOTY5LCBsYXRpdHVkZTogMjIuODMyNDQ3NjUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTE5MTksIGxhdGl0dWRlOiAyMi44MzI0NTEzOSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5MzA4OCwgbGF0aXR1ZGU6IDIyLjgzMjQ1Mjg3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk0MDY2LCBsYXRpdHVkZTogMjIuODMyNDU0MTEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTUyMDcsIGxhdGl0dWRlOiAyMi44MzI0NTU1NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5NjI2NywgbGF0aXR1ZGU6IDIyLjgzMjQ1NDM1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk2OTQ2LCBsYXRpdHVkZTogMjIuODMyNDU3NzUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTY3OTksIGxhdGl0dWRlOiAyMi44MzI1MzY0MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5NTk1NCwgbGF0aXR1ZGU6IDIyLjgzMjU1MDY0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk1MTExLCBsYXRpdHVkZTogMjIuODMyNTQ3MDMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTQxMzMsIGxhdGl0dWRlOiAyMi44MzI1NDA3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODkzMTU0LCBsYXRpdHVkZTogMjIuODMyNTQyMDEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTE4NzcsIGxhdGl0dWRlOiAyMi44MzI1MzI3NiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5MTE3LCBsYXRpdHVkZTogMjIuODMyNTMxODYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODk4NjQsIGxhdGl0dWRlOiAyMi44MzI1MzAyMSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4ODc3NywgbGF0aXR1ZGU6IDIyLjgzMjUyODg0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg3OTksIGxhdGl0dWRlOiAyMi44MzI1MjAyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg2Njg0LCBsYXRpdHVkZTogMjIuODMyNTIxMSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NTUxNiwgbGF0aXR1ZGU6IDIyLjgzMjUxNDUzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg0NzU4LCBsYXRpdHVkZTogMjIuODMyNTAwODQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODQ3MDEsIGxhdGl0dWRlOiAyMi44MzI0MDE2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg0Nzk4LCBsYXRpdHVkZTogMjIuODMyMzQzMzMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODQ4MTQsIGxhdGl0dWRlOiAyMi44MzIyNzc0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg0OTc2LCBsYXRpdHVkZTogMjIuODMyMTc2MzIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODUwNzgsIGxhdGl0dWRlOiAyMi44MzIwOTMwMiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NTEwMSwgbGF0aXR1ZGU6IDIyLjgzMjAwMjE5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg1MTIxLCBsYXRpdHVkZTogMjIuODMxOTIxNTggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODUwODYsIGxhdGl0dWRlOiAyMi44MzE4NDYwNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NTA1MywgbGF0aXR1ZGU6IDIyLjgzMTc2MDU4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg0NjYyLCBsYXRpdHVkZTogMjIuODMxNzA0ODggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODM4NTMsIGxhdGl0dWRlOiAyMi44MzE3MDM4NiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4MjgsIGxhdGl0dWRlOiAyMi44MzE3MDI1MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4MTUzMiwgbGF0aXR1ZGU6IDIyLjgzMTY5NTkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODA1MzMsIGxhdGl0dWRlOiAyMi44MzE2OTQ2NCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg3OTM3MiwgbGF0aXR1ZGU6IDIyLjgzMTY5NTY4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODc3ODA3LCBsYXRpdHVkZTogMjIuODMxNjkxMTkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NzY4MDcsIGxhdGl0dWRlOiAyMi44MzE2ODQ4OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg3NTkxOCwgbGF0aXR1ZGU6IDIyLjgzMTY3ODc0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODc0ODM4LCBsYXRpdHVkZTogMjIuODMxNjc3MzcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NzM3MjksIGxhdGl0dWRlOiAyMi44MzE2ODM1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODcyNDg0LCBsYXRpdHVkZTogMjIuODMxNjkxOTcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NzE0MDQsIGxhdGl0dWRlOiAyMi44MzE2OTA2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODcwMjk3LCBsYXRpdHVkZTogMjIuODMxNjg5MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg2OTMwMSwgbGF0aXR1ZGU6IDIyLjgzMTY3NTM5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODY4NDM1LCBsYXRpdHVkZTogMjIuODMxNjY2NzIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4Njc1NzMsIGxhdGl0dWRlOiAyMi44MzE2NTMwNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg2NjQxNSwgbGF0aXR1ZGU6IDIyLjgzMTYzOTAxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODY1NSwgbGF0aXR1ZGU6IDIyLjgzMTYyMjc4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODY0NDI1LCBsYXRpdHVkZTogMjIuODMxNjAxMzIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NjM1MTQsIGxhdGl0dWRlOiAyMi44MzE1NzI1NCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg2MjUyMSwgbGF0aXR1ZGU6IDIyLjgzMTU0ODY5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODYxNTgzLCBsYXRpdHVkZTogMjIuODMxNTI0OTIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NjA0MzEsIGxhdGl0dWRlOiAyMi44MzE0OTMzNiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1OTczMywgbGF0aXR1ZGU6IDIyLjgzMTQ1NzE0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU4NjM0LCBsYXRpdHVkZTogMjIuODMxNDIzMDUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTc3MjcsIGxhdGl0dWRlOiAyMi44MzEzODE2OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjkzMiwgbGF0aXR1ZGU6IDIyLjgzMTMzMDQzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2Mzg0LCBsYXRpdHVkZTogMjIuODMxMjY3MDEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTU5NzMsIGxhdGl0dWRlOiAyMi44MzExOTYzMSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTU4OSwgbGF0aXR1ZGU6IDIyLjgzMTEzMDc1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MTc4LCBsYXRpdHVkZTogMjIuODMxMDY1MjMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTQ4NTMsIGxhdGl0dWRlOiAyMi44MzA5ODQ5MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NDUxMSwgbGF0aXR1ZGU6IDIyLjgzMDg1OTEyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU0NDg2LCBsYXRpdHVkZTogMjIuODMwNzYxNDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTQ0MzQsIGxhdGl0dWRlOiAyMi44MzA2NjE1MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NDUzNCwgbGF0aXR1ZGU6IDIyLjgzMDU3MzA4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU0NTg1LCBsYXRpdHVkZTogMjIuODMwNDg3NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NDY0LCBsYXRpdHVkZTogMjIuODMwMzc5OTEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTQ2OTQsIGxhdGl0dWRlOiAyMi44MzAyODE1MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NDc0OSwgbGF0aXR1ZGU6IDIyLjgzMDE4MzM0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU0ODU3LCBsYXRpdHVkZTogMjIuODMwMDg1MzkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTQ5NjgsIGxhdGl0dWRlOiAyMi44Mjk5Nzc1OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTA0NywgbGF0aXR1ZGU6IDIyLjgyOTg2MTQxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MDc4LCBsYXRpdHVkZTogMjIuODI5NzQ4MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTA3OSwgbGF0aXR1ZGU6IDIyLjgyOTY0MDIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUwNzYsIGxhdGl0dWRlOiAyMi44Mjk1NDk5NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NDk5OCwgbGF0aXR1ZGU6IDIyLjgyOTQzOTc1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU0OTkzLCBsYXRpdHVkZTogMjIuODI5MzU3MzIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUwMTksIGxhdGl0dWRlOiAyMi44MjkyNjI1OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NDk5MiwgbGF0aXR1ZGU6IDIyLjgyOTE2MDUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUwMSwgbGF0aXR1ZGU6IDIyLjgyOTA3MjU3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MDYzLCBsYXRpdHVkZTogMjIuODI4OTcyODkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTQ5ODQsIGxhdGl0dWRlOiAyMi44Mjg4NjMyNyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTAzNywgbGF0aXR1ZGU6IDIyLjgyODc2Mzk3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MDI0LCBsYXRpdHVkZTogMjIuODI4Njc3MzQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUwNDksIGxhdGl0dWRlOiAyMi44Mjg1Nzc0NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTA5OSwgbGF0aXR1ZGU6IDIyLjgyODQ4NTI2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MTAxLCBsYXRpdHVkZTogMjIuODI4MzczMjcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUxMDIsIGxhdGl0dWRlOiAyMi44MjgyNjE1MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTExOSwgbGF0aXR1ZGU6IDIyLjgyODE1MDE4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MTIxLCBsYXRpdHVkZTogMjIuODI4MDM1MTkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUwNjcsIGxhdGl0dWRlOiAyMi44Mjc5Mjc4NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTAzNSwgbGF0aXR1ZGU6IDIyLjgyNzg0MDY2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MTM4LCBsYXRpdHVkZTogMjIuODI3NzQ4ODEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUyMTksIGxhdGl0dWRlOiAyMi44Mjc2MDgxMSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTE2NywgbGF0aXR1ZGU6IDIyLjgyNzQ4ODMyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MTYzLCBsYXRpdHVkZTogMjIuODI3MzkxMjQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUyMTEsIGxhdGl0dWRlOiAyMi44MjczMDQzMiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTIwNSwgbGF0aXR1ZGU6IDIyLjgyNzIwMTUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUyMjcsIGxhdGl0dWRlOiAyMi44MjcxMDY3NiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTI0NywgbGF0aXR1ZGU6IDIyLjgyNzAxOTY0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MjE4LCBsYXRpdHVkZTogMjIuODI2OTEyNzQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTUxODQsIGxhdGl0dWRlOiAyMi44MjY4MjU4NyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTIwNywgbGF0aXR1ZGU6IDIyLjgyNjcyNjgzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1MTI4LCBsYXRpdHVkZTogMjIuODI2NjA1NjMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTYzODgsIGxhdGl0dWRlOiAyMi44MjY3MTU5NiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjI4NCwgbGF0aXR1ZGU6IDIyLjgyNjgxOTgyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2MDQ2LCBsYXRpdHVkZTogMjIuODI2OTI4NjkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTU5OTgsIGxhdGl0dWRlOiAyMi44MjcwMjMwOSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTk4MiwgbGF0aXR1ZGU6IDIyLjgyNzA5NTI3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2MDY5LCBsYXRpdHVkZTogMjIuODI3MTg3NjUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTU5OTIsIGxhdGl0dWRlOiAyMi44MjcyODk5NyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTg2MiwgbGF0aXR1ZGU6IDIyLjgyNzM5MjQzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1Nzg5LCBsYXRpdHVkZTogMjIuODI3NDc3NTggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTU3ODksIGxhdGl0dWRlOiAyMi44Mjc1OTgxNiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTgxOCwgbGF0aXR1ZGU6IDIyLjgyNzcwODk3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1ODU2LCBsYXRpdHVkZTogMjIuODI3NzgyMTUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTU4MzcsIGxhdGl0dWRlOiAyMi44Mjc4ODAyNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NTgxOSwgbGF0aXR1ZGU6IDIyLjgyNzk2MDc4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU1ODUyLCBsYXRpdHVkZTogMjIuODI4MDU0MTEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTU4NjIsIGxhdGl0dWRlOiAyMi44MjgxNTUwNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjA1LCBsYXRpdHVkZTogMjIuODI4Mjc2MDEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTU4NjMsIGxhdGl0dWRlOiAyMi44MjgzODQxNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjA5MywgbGF0aXR1ZGU6IDIyLjgyODUxMDIzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2MjYyLCBsYXRpdHVkZTogMjIuODI4NjMwMjEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTYyNjQsIGxhdGl0dWRlOiAyMi44Mjg3MTIwOCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjI2OCwgbGF0aXR1ZGU6IDIyLjgyODg1NzA0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2MTg2LCBsYXRpdHVkZTogMjIuODI4OTYzNTcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTYyNzMsIGxhdGl0dWRlOiAyMi44MjkwNzAyMyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjE0OSwgbGF0aXR1ZGU6IDIyLjgyOTE3Mzg0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2MTUxLCBsYXRpdHVkZTogMjIuODI5MjkzNjUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTYxNTMsIGxhdGl0dWRlOiAyMi44MjkzNTc4MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjE1NCwgbGF0aXR1ZGU6IDIyLjgyOTQ0MjI3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2MTU3LCBsYXRpdHVkZTogMjIuODI5NTQzMjIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTYxMTYsIGxhdGl0dWRlOiAyMi44Mjk2MzY1NyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjAzMiwgbGF0aXR1ZGU6IDIyLjgyOTcxNDA3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU2MzMyLCBsYXRpdHVkZTogMjIuODI5Nzk1MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg1NjQxOSwgbGF0aXR1ZGU6IDIyLjgyOTg1MjI1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODU3NzQzLCBsYXRpdHVkZTogMjIuODI5ODYxNzcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NTkxMTMsIGxhdGl0dWRlOiAyMi44Mjk4NTg4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODYwMDUsIGxhdGl0dWRlOiAyMi44Mjk4NTY4MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg2MTM2OSwgbGF0aXR1ZGU6IDIyLjgyOTg1NDA1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODYyMzQ5LCBsYXRpdHVkZTogMjIuODI5ODYwMTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NjM0NTYsIGxhdGl0dWRlOiAyMi44Mjk4NTM3MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg2NDg2MiwgbGF0aXR1ZGU6IDIyLjgyOTg1NDg3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODY1NzU1LCBsYXRpdHVkZTogMjIuODI5ODg1MzUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NjY4NiwgbGF0aXR1ZGU6IDIyLjgyOTkwNzMzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODY3MjQ4LCBsYXRpdHVkZTogMjIuODI5OTU1MTkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4Njc0NzQsIGxhdGl0dWRlOiAyMi44MzAwNjQ2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODY3NTI3LCBsYXRpdHVkZTogMjIuODMwMTUwMzIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4Njc0OTMsIGxhdGl0dWRlOiAyMi44MzAyMjgzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODY3NDU5LCBsYXRpdHVkZTogMjIuODMwMjk4MzEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NjkyMjEsIGxhdGl0dWRlOiAyMi44MzAzNTIyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODcwMjQzLCBsYXRpdHVkZTogMjIuODMwMzUwMDUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NzE2MDYsIGxhdGl0dWRlOiAyMi44MzAzNDMwOSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg3MzA5NiwgbGF0aXR1ZGU6IDIyLjgzMDMzOTk1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODc0MDc2LCBsYXRpdHVkZTogMjIuODMwMzM3ODggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4NzU2MTEsIGxhdGl0dWRlOiAyMi44MzAzMzg3MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg3NzM1NSwgbGF0aXR1ZGU6IDIyLjgzMDM0MzE3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODc4OTI3LCBsYXRpdHVkZTogMjIuODMwMzI3NjUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODAxMTgsIGxhdGl0dWRlOiAyMi44MzAzMjkyMSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4MTE3OSwgbGF0aXR1ZGU6IDIyLjgzMDMxODg0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODgyNzExLCBsYXRpdHVkZTogMjIuODMwMzIzNzQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODQwNzIsIGxhdGl0dWRlOiAyMi44MzAzMjA4NyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4NTUxNywgbGF0aXR1ZGU6IDIyLjgzMDMxNzgyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg2OTUzLCBsYXRpdHVkZTogMjIuODMwMjg2MzQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODc3MDQsIGxhdGl0dWRlOiAyMi44MzAyNDQxNyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg4ODE0MSwgbGF0aXR1ZGU6IDIyLjgzMDE1ODI1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg4NDQxLCBsYXRpdHVkZTogMjIuODMwMDQ4NzggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4ODg1MywgbGF0aXR1ZGU6IDIyLjgyOTk0NDI3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODg5NTkzLCBsYXRpdHVkZTogMjIuODMwMDI3MDYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTAzNywgbGF0aXR1ZGU6IDIyLjgzMDA3Nzk1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODkxMjY5LCBsYXRpdHVkZTogMjIuODMwMTA0MzggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTI3MTQsIGxhdGl0dWRlOiAyMi44MzAxMDk0MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5NDAyOSwgbGF0aXR1ZGU6IDIyLjgzMDEwNjY2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk1MjIzLCBsYXRpdHVkZTogMjIuODMwMTIwMzUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE4OTYyMDEsIGxhdGl0dWRlOiAyMi44MzAxMjIzNCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTg5NzczMywgbGF0aXR1ZGU6IDIyLjgzMDEyNzIyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xODk5MzA1LCBsYXRpdHVkZTogMjIuODMwMTI3OTYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDA5MjksIGxhdGl0dWRlOiAyMi44MzAxNDA4NyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMjIwNiwgbGF0aXR1ZGU6IDIyLjgzMDE2NjM3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTA0MTU4LCBsYXRpdHVkZTogMjIuODMwMTc4MzcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDU1OTYsIGxhdGl0dWRlOiAyMi44MzAxNzEzMSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwNzQ2OCwgbGF0aXR1ZGU6IDIyLjgzMDE5MTU2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTA4OTU0LCBsYXRpdHVkZTogMjIuODMwMTk2NDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTAzNTcsIGxhdGl0dWRlOiAyMi44MzAyMDU2NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxMTUwOSwgbGF0aXR1ZGU6IDIyLjgzMDIxOTM4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTEyOTQ1LCBsYXRpdHVkZTogMjIuODMwMjIwMyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxNTE0OCwgbGF0aXR1ZGU6IDIyLjgzMDIzMTcyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTE2NzE1LCBsYXRpdHVkZTogMjIuODMwMjM2NDUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTgzMywgbGF0aXR1ZGU6IDIyLjgzMDI1MzE0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTE5MzQ2LCBsYXRpdHVkZTogMjIuODMwMjU1MDIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MjEwMzksIGxhdGl0dWRlOiAyMi44MzAyNjM0NiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkyMjQ2OSwgbGF0aXR1ZGU6IDIyLjgzMDI0NDQxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTI0MTUyLCBsYXRpdHVkZTogMjIuODMwMjI4ODMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MjUyNzUsIGxhdGl0dWRlOiAyMi44MzAxOTA0NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkyNjIzNywgbGF0aXR1ZGU6IDIyLjgzMDE3MjQzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTI3Nzc4LCBsYXRpdHVkZTogMjIuODMwMTMzMjQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MjkwODEsIGxhdGl0dWRlOiAyMi44MzAxMjY0OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzMDI3NSwgbGF0aXR1ZGU6IDIyLjgzMDA5NjIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MzE1MTYsIGxhdGl0dWRlOiAyMi44MzAwNjg4MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzMzQxNywgbGF0aXR1ZGU6IDIyLjgyOTk2NjEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MzQ1NDksIGxhdGl0dWRlOiAyMi44Mjk5MDkxNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzNTc2NCwgbGF0aXR1ZGU6IDIyLjgyOTkwNjU5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTM3MTgyLCBsYXRpdHVkZTogMjIuODI5OTAzNTkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5Mzg2MjcsIGxhdGl0dWRlOiAyMi44Mjk4OTc4MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzOTk4NSwgbGF0aXR1ZGU6IDIyLjgyOTg5MjIzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQxNDM0LCBsYXRpdHVkZTogMjIuODI5ODkxODkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDMzMjcsIGxhdGl0dWRlOiAyMi44Mjk4NzAwNCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NDU3OCwgbGF0aXR1ZGU6IDIyLjgyOTg3MDUyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ1NDMxLCBsYXRpdHVkZTogMjIuODI5ODY2MjEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDU4ODYsIGxhdGl0dWRlOiAyMi44Mjk4Njc3NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NTg5MiwgbGF0aXR1ZGU6IDIyLjgyOTk2MzIxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ1ODk1LCBsYXRpdHVkZTogMjIuODMwMDU0MjEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDU5MjgsIGxhdGl0dWRlOiAyMi44MzAxNTA4MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NTgzNSwgbGF0aXR1ZGU6IDIyLjgzMDIxNzUyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ1ODg0LCBsYXRpdHVkZTogMjIuODMwMjk3MDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDU4NjgsIGxhdGl0dWRlOiAyMi44MzA0MDMxNiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NTc5OSwgbGF0aXR1ZGU6IDIyLjgzMDQ2ODMzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ1Nzg0LCBsYXRpdHVkZTogMjIuODMwNTg4NTkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDU5MSwgbGF0aXR1ZGU6IDIyLjgzMDY5MzUzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ1OTgxLCBsYXRpdHVkZTogMjIuODMwNzk2ODEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDYwNzEsIGxhdGl0dWRlOiAyMi44MzA4ODAzOSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NjIxLCBsYXRpdHVkZTogMjIuODMwOTUxNTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDY0OTgsIGxhdGl0dWRlOiAyMi44MzA5OTE5MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NzY5MiwgbGF0aXR1ZGU6IDIyLjgzMDk5OTY1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ5MjA3LCBsYXRpdHVkZTogMjIuODMxMDAxNTcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTAzMTYsIGxhdGl0dWRlOiAyMi44MzEwMDQzNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1MTEyNSwgbGF0aXR1ZGU6IDIyLjgzMTAwMDA4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTUyMjg1LCBsYXRpdHVkZTogMjIuODMwOTk1MDcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTMzMzUsIGxhdGl0dWRlOiAyMi44MzA5ODc3MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1NDQzOCwgbGF0aXR1ZGU6IDIyLjgzMDk3NzcxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTU1MjQ5LCBsYXRpdHVkZTogMjIuODMwOTc4NDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTY2MjIsIGxhdGl0dWRlOiAyMi44MzA5NzU1OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1NzgxNiwgbGF0aXR1ZGU6IDIyLjgzMDk0MjU0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTU4NzY2LCBsYXRpdHVkZTogMjIuODMwOTEwMDggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTk5OTYsIGxhdGl0dWRlOiAyMi44MzA4OTk4NyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk2MTEwMywgbGF0aXR1ZGU6IDIyLjgzMDk0NTc3IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTYxMjc1LCBsYXRpdHVkZTogMjIuODMxMDM5NzggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NjEzOTQsIGxhdGl0dWRlOiAyMi44MzExNzEzMyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk2MTQyNCwgbGF0aXR1ZGU6IDIyLjgzMTI1NzE2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTYxNDM5LCBsYXRpdHVkZTogMjIuODMxMzYxMzUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NjE0MTMsIGxhdGl0dWRlOiAyMi44MzE0NDU4MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk2MTQzMywgbGF0aXR1ZGU6IDIyLjgzMTU1OTA5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTYxNDMzLCBsYXRpdHVkZTogMjIuODMxNjgzNjcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NjE0NTcsIGxhdGl0dWRlOiAyMi44MzE4MDM5OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk2MTM0NCwgbGF0aXR1ZGU6IDIyLjgzMTkyNTUzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTYxMjg1LCBsYXRpdHVkZTogMjIuODMyMDQ3OTcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NjA4OTcsIGxhdGl0dWRlOiAyMi44MzIxMzQ0NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk2MDU5MSwgbGF0aXR1ZGU6IDIyLjgzMjA0MTQzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTYwNDEyLCBsYXRpdHVkZTogMjIuODMxOTMwMTUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NjAwNjksIGxhdGl0dWRlOiAyMi44MzE4NjIxNyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1OTcxOSwgbGF0aXR1ZGU6IDIyLjgzMTc4MTM4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTU5MzE3LCBsYXRpdHVkZTogMjIuODMxNzAxMTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTg5NzIsIGxhdGl0dWRlOiAyMi44MzE2MjM4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTU4NzM0LCBsYXRpdHVkZTogMjIuODMxNTM4OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1ODQ0NSwgbGF0aXR1ZGU6IDIyLjgzMTQ1OTcyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTU4MjE1LCBsYXRpdHVkZTogMjIuODMxMzg1OTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTc4NjgsIGxhdGl0dWRlOiAyMi44MzEyOTI0NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1NzQ0MywgbGF0aXR1ZGU6IDIyLjgzMTIwMjI0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTU3MDU2LCBsYXRpdHVkZTogMjIuODMxMTI3NTYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTU4NCwgbGF0aXR1ZGU6IDIyLjgzMTA5NzYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NTQxMDMsIGxhdGl0dWRlOiAyMi44MzExMDEyNyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1MjkyNCwgbGF0aXR1ZGU6IDIyLjgzMTA5NjIzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTUyMDQyLCBsYXRpdHVkZTogMjIuODMxMDk4MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk1MTMxOSwgbGF0aXR1ZGU6IDIyLjgzMTA5NzExIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTUwNDksIGxhdGl0dWRlOiAyMi44MzEwOTYzNiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0OTk1NiwgbGF0aXR1ZGU6IDIyLjgzMTA5NzQ5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ5Mjg4LCBsYXRpdHVkZTogMjIuODMxMDk4OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0ODU2NiwgbGF0aXR1ZGU6IDIyLjgzMTA5NTQxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ4MDA0LCBsYXRpdHVkZTogMjIuODMxMDk0MDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDcyODMsIGxhdGl0dWRlOiAyMi44MzEwOTU2MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0Njc0OCwgbGF0aXR1ZGU6IDIyLjgzMTA5NDIzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ2MjE4LCBsYXRpdHVkZTogMjIuODMxMTE3OTMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDYxNDksIGxhdGl0dWRlOiAyMi44MzExNzU5MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NjIxMSwgbGF0aXR1ZGU6IDIyLjgzMTIxODY4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ2MjIyLCBsYXRpdHVkZTogMjIuODMxMjc0MzUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDYyODUsIGxhdGl0dWRlOiAyMi44MzEzMjI0OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NjI0NSwgbGF0aXR1ZGU6IDIyLjgzMTM5MTM5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ2MjAyLCBsYXRpdHVkZTogMjIuODMxNDQ0ODYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDYwNDgsIGxhdGl0dWRlOiAyMi44MzE0ODU5OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0NTU5NCwgbGF0aXR1ZGU6IDIyLjgzMTUwOTk0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQ0ODkzLCBsYXRpdHVkZTogMjIuODMxNTE5MDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDQyNDQsIGxhdGl0dWRlOiAyMi44MzE1MTAyMyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0MzY1LCBsYXRpdHVkZTogMjIuODMxNTA2MzcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDI2NTMsIGxhdGl0dWRlOiAyMi44MzE1MTEwNCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTk0MTczNiwgbGF0aXR1ZGU6IDIyLjgzMTUxODA5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTQxMTE2LCBsYXRpdHVkZTogMjIuODMxNTI5NjMgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5NDA0NDEsIGxhdGl0dWRlOiAyMi44MzE1NDg5OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzOTgxOSwgbGF0aXR1ZGU6IDIyLjgzMTU2ODI0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTM5MDg4LCBsYXRpdHVkZTogMjIuODMxNjAwNiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzODQxMiwgbGF0aXR1ZGU6IDIyLjgzMTYxMjMxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTM3NiwgbGF0aXR1ZGU6IDIyLjgzMTYxNDAzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTM2NjI2LCBsYXRpdHVkZTogMjIuODMxNjEwOTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MzYwODYsIGxhdGl0dWRlOiAyMi44MzE2MDQzNyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzNTMwNCwgbGF0aXR1ZGU6IDIyLjgzMTU5MzE4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTM0NjMxLCBsYXRpdHVkZTogMjIuODMxNTgxNzYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MzQwOTUsIGxhdGl0dWRlOiAyMi44MzE1NTk4MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzMzU0LCBsYXRpdHVkZTogMjIuODMxNTA5ODUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MzMyMzIsIGxhdGl0dWRlOiAyMi44MzE0NDY4MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzMzA2NCwgbGF0aXR1ZGU6IDIyLjgzMTM2MzUxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTMzMDAzLCBsYXRpdHVkZTogMjIuODMxMjg1NDcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MzMyMDYsIGxhdGl0dWRlOiAyMi44MzEyMTk4MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkzMjc3NiwgbGF0aXR1ZGU6IDIyLjgzMTIwMDY2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTMxNzg0LCBsYXRpdHVkZTogMjIuODMxMTkyNjcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MzA4MiwgbGF0aXR1ZGU6IDIyLjgzMTE4NDY0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTI5Njk2LCBsYXRpdHVkZTogMjIuODMxMTg0NDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5Mjg4MTMsIGxhdGl0dWRlOiAyMi44MzExODM4NCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkyNzgyMywgbGF0aXR1ZGU6IDIyLjgzMTE4MzQyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTI2MDg1LCBsYXRpdHVkZTogMjIuODMxMTc5NTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MjUwNzEsIGxhdGl0dWRlOiAyMi44MzExNjQwOSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkyNDIxNywgbGF0aXR1ZGU6IDIyLjgzMTE1ODM2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTIzMzkxLCBsYXRpdHVkZTogMjIuODMxMTQ3NTYgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MjI2OTgsIGxhdGl0dWRlOiAyMi44MzExNDE1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTIxOTI1LCBsYXRpdHVkZTogMjIuODMxMTM4MTIgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MjA3NzgsIGxhdGl0dWRlOiAyMi44MzExMzU1MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxOTgyLCBsYXRpdHVkZTogMjIuODMxMTI3NTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTg5MzYsIGxhdGl0dWRlOiAyMi44MzExMjE4NiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxODA1NSwgbGF0aXR1ZGU6IDIyLjgzMTExODcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTczODcsIGxhdGl0dWRlOiAyMi44MzExMTUwOSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxNjY2NywgbGF0aXR1ZGU6IDIyLjgzMTEwOTA5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTE1NzMzLCBsYXRpdHVkZTogMjIuODMxMTA2MDQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTUyNzgsIGxhdGl0dWRlOiAyMi44MzExMTIwMiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxNDc0LCBsYXRpdHVkZTogMjIuODMxMDY2ODEgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTQwNTEsIGxhdGl0dWRlOiAyMi44MzEwNjA1MSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxMzI4LCBsYXRpdHVkZTogMjIuODMxMDU2OTcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTI1MzcsIGxhdGl0dWRlOiAyMi44MzEwNTMzNyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxMTgyMSwgbGF0aXR1ZGU6IDIyLjgzMTA0OTcxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTExMjcxLCBsYXRpdHVkZTogMjIuODMxMDQ4MjkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MTA5MTMsIGxhdGl0dWRlOiAyMi44MzEwNDkwNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkxMDExNiwgbGF0aXR1ZGU6IDIyLjgzMTA0Mjk4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTA5NDI5LCBsYXRpdHVkZTogMjIuODMxMDM5MjcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDg3MTQsIGxhdGl0dWRlOiAyMi44MzEwMzMwNCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwODMwMywgbGF0aXR1ZGU6IDIyLjgzMTAyNjE4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTA3NzI2LCBsYXRpdHVkZTogMjIuODMxMDIyMjQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDcxMjMsIGxhdGl0dWRlOiAyMi44MzEwMTU3OCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwNjYyOSwgbGF0aXR1ZGU6IDIyLjgzMTAxMTY4IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTA1OTcsIGxhdGl0dWRlOiAyMi44MzEwMTA0OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwNTQyMSwgbGF0aXR1ZGU6IDIyLjgzMTAxMTY1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTA0NzM0LCBsYXRpdHVkZTogMjIuODMxMDEzMSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwNDI5NSwgbGF0aXR1ZGU6IDIyLjgzMTAxNDAzIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAzNzE5LCBsYXRpdHVkZTogMjIuODMxMDEyNjcgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDMzNjIsIGxhdGl0dWRlOiAyMi44MzEwMTA4NSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMjk3OCwgbGF0aXR1ZGU6IDIyLjgzMTAxMTY2IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAyNTExLCBsYXRpdHVkZTogMjIuODMxMDEyNjQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDIxNTQsIGxhdGl0dWRlOiAyMi44MzEwMTA4MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTY5MiwgbGF0aXR1ZGU6IDIyLjgzMDk5ODk0IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAxNTE1LCBsYXRpdHVkZTogMjIuODMwOTU1NjggfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDEzNzIsIGxhdGl0dWRlOiAyMi44MzA4OTQ1OSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTM1NiwgbGF0aXR1ZGU6IDIyLjgzMDg2NDAyIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAxMjg3LCBsYXRpdHVkZTogMjIuODMwODI4NTQgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDExNDksIGxhdGl0dWRlOiAyMi44MzA3NTc4MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTE5NSwgbGF0aXR1ZGU6IDIyLjgzMDcwNDY5IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAxMTU2LCBsYXRpdHVkZTogMjIuODMwNjY0NDkgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDExNzcsIGxhdGl0dWRlOiAyMi44MzA2MDY3MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTExNiwgbGF0aXR1ZGU6IDIyLjgzMDU1MTg1IH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAxMTYsIGxhdGl0dWRlOiAyMi44MzA1MDQ0MiB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTEwNCwgbGF0aXR1ZGU6IDIyLjgzMDQzNzUxIH0sDQogICAgICAgICAgICAgICAgeyBsb25naXR1ZGU6IDEwOC4xOTAxMTc5LCBsYXRpdHVkZTogMjIuODMwMzgwNSB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTA3LCBsYXRpdHVkZTogMjIuODMwMzExOCB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTE5NiwgbGF0aXR1ZGU6IDIyLjgzMDI2MjUgfSwNCiAgICAgICAgICAgICAgICB7IGxvbmdpdHVkZTogMTA4LjE5MDExOTEsIGxhdGl0dWRlOiAyMi44MzAyMDE0MyB9LA0KICAgICAgICAgICAgICAgIHsgbG9uZ2l0dWRlOiAxMDguMTkwMTI0NywgbGF0aXR1ZGU6IDIyLjgzMDE5NjQ0IH0sDQogICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgIGNvbmZpcm1TdHlsZTogeyBtYXJnaW5SaWdodDogIjQwcnB4IiB9LA0KICAgICAgICAgICAgICBjYW5jZWxTdHlsZTogew0KICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICI0MHJweCIsDQogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAicm90YXRlWigzNjBkZWcpIiwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc2Nyb2xsVG9wOiAwLA0KICAgICAgICAgICAgICBtYXBJY29uOiBuKCJiNzRmIiksDQogICAgICAgICAgICAgIGNoZWNrR3BzTnVtOiAwLA0KICAgICAgICAgICAgICBjaGVja0dwczogITEsDQogICAgICAgICAgICAgIGlzTW9yZUFycm93OiAhMCwNCiAgICAgICAgICAgICAgaXNWaWV3RXJyb3I6ICExLA0KICAgICAgICAgICAgICBvbmx5T25lQXV0bzogITEsDQogICAgICAgICAgICAgIHJ1blRpbWVyOiBudWxsLA0KICAgICAgICAgICAgICBtaXNzX251bTogbnVsbCwNCiAgICAgICAgICAgICAgbWlzc19zaXRlX251bTogbnVsbCwNCiAgICAgICAgICAgICAgaW50ZXJ2YWxUaW1lOiAhMSwNCiAgICAgICAgICAgICAgaXNDaGVja0dyb3VuZDogITEsDQogICAgICAgICAgICAgIGNhcHR1cmVfdGltZTogMCwNCiAgICAgICAgICAgICAgc2NhbGU6IDE2LA0KICAgICAgICAgICAgICBzaG93UGFzc1NldHRpbmc6ICExLA0KICAgICAgICAgICAgICB1c2VkUmVmcmVzaGNvdW50OiAwLA0KICAgICAgICAgICAgICBtYXBDdHg6IG51bGwsDQogICAgICAgICAgICAgIGxpbWl0TWF4OiAzLA0KICAgICAgICAgICAgICBzaG93TWFzazogITEsDQogICAgICAgICAgICAgIGFuaW1hdGlvbjoge30sDQogICAgICAgICAgICAgIGNvdW50RG93blRpbWVyOiBudWxsLA0KICAgICAgICAgICAgICBzaG93VGlwczogITAsDQogICAgICAgICAgICAgIGNsb2NrVGlwc01hcDogew0KICAgICAgICAgICAgICAgIDE6IHsNCiAgICAgICAgICAgICAgICAgIHRhZzogIuiHqueUseaJk+WNoSIsDQogICAgICAgICAgICAgICAgICB0aXBzOiAi5pys6LeR5Yy65Li66Ieq55Sx5omT5Y2h5qih5byP77yM5Y+v6Ieq6KGM5a6J5o6S6aG65bqP57uP6L+H5omA5pyJ5omT5Y2h54K5IiwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIDI6IHsNCiAgICAgICAgICAgICAgICAgIHRhZzogIuWumuWQkeaJk+WNoSIsDQogICAgICAgICAgICAgICAgICB0aXBzOiAi5b2T5YmN5omT5Y2h54K55omT5Y2h5ZCO5YaN5YiG6YWN5LiL5LiA5Liq77yM57uP6L+H5pe257O757uf6Ieq5Yqo5omT5Y2hIiwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBzaG93QW5pQ291bnQ6IDAsDQogICAgICAgICAgICAgIGJ0bk1hcDogew0KICAgICAgICAgICAgICAgIDA6IFt7IGtleTogIlNFVFRJTkciLCBsYWJlbDogIuW8gOWQr+S9jee9riIsIHR5cGU6ICJwcmltYXJ5IiB9XSwNCiAgICAgICAgICAgICAgICAxOiBbeyBrZXk6ICJTVEFSVCIsIGxhYmVsOiAi5byA5aeL5LmQ6LeRIiwgdHlwZTogInByaW1hcnkiIH1dLA0KICAgICAgICAgICAgICAgIDI6IFt7IGtleTogIlBBVVNFIiwgbGFiZWw6ICLplb/mjInmmoLlgZwiLCB0eXBlOiAiZGFyayIgfV0sDQogICAgICAgICAgICAgICAgMzogWw0KICAgICAgICAgICAgICAgICAgeyBrZXk6ICJTVE9QIiwgbGFiZWw6ICLnu5PmnZ/ot5HmraUiLCB0eXBlOiAiZGFyayIgfSwNCiAgICAgICAgICAgICAgICAgIHsga2V5OiAiUkVTVEFSVCIsIGxhYmVsOiAi57un57ut6LeR5q2lIiwgdHlwZTogInByaW1hcnkiIH0sDQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc2hvd1J1blRpcHNNb2RhbDogITEsDQogICAgICAgICAgICAgIHJlYWxSZWZyZXNoQ291bnQ6IG51bGwsDQogICAgICAgICAgICAgIGlzSW5pdDogITEsDQogICAgICAgICAgICAgIGNvbXBhcmVEaXM6IDAsDQogICAgICAgICAgICAgIG1pbnV0ZTM6IDAsDQogICAgICAgICAgICB9Ow0KICAgICAgICAgIH0sDQogICAgICAgICAgd2F0Y2g6IHsNCiAgICAgICAgICAgIGRpc3RhbmNlOiBmdW5jdGlvbiAodCwgZSkgew0KICAgICAgICAgICAgICB0aGlzLmNhcHR1cmVfdHlwZTEgJiYNCiAgICAgICAgICAgICAgICB0IC0gdGhpcy5jb21wYXJlRGlzID49IDEgJiYNCiAgICAgICAgICAgICAgICAoKHRoaXMuY29tcGFyZURpcyA9IHQpLCB0aGlzLmhhbmRsZUNsaWNrSWNvbigiWkhVQVBBSSIpKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgfSwNCiAgICAgICAgICBjb21wdXRlZDogKDAsIG8uZGVmYXVsdCkoDQogICAgICAgICAgICAoMCwgby5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgKDAsIG8uZGVmYXVsdCkoDQogICAgICAgICAgICAgICAge30sDQogICAgICAgICAgICAgICAgKDAsIHUubWFwR2V0dGVycykoIm1hcCIsIFsNCiAgICAgICAgICAgICAgICAgICJjbG9ja3NOdW0iLA0KICAgICAgICAgICAgICAgICAgImNhcHR1cmVfdHlwZSIsDQogICAgICAgICAgICAgICAgICAiY2FwdHVyZV9jb25maWciLA0KICAgICAgICAgICAgICAgICAgIm5vdyIsDQogICAgICAgICAgICAgICAgICAibGF0aXR1ZGUiLA0KICAgICAgICAgICAgICAgICAgImxvbmdpdHVkZSIsDQogICAgICAgICAgICAgICAgICAiaXNJblpvbmUiLA0KICAgICAgICAgICAgICAgICAgInBvaW50IiwNCiAgICAgICAgICAgICAgICAgICJhcmVhQ29kZSIsDQogICAgICAgICAgICAgICAgICAicG9pbnRzIiwNCiAgICAgICAgICAgICAgICAgICJ0aW1lIiwNCiAgICAgICAgICAgICAgICAgICJkaXN0YW5jZSIsDQogICAgICAgICAgICAgICAgICAibG9nTW9kZSIsDQogICAgICAgICAgICAgICAgICAiY2xvY2tzIiwNCiAgICAgICAgICAgICAgICAgICJtYXJrZXJzIiwNCiAgICAgICAgICAgICAgICAgICJidG5TdGF0ZSIsDQogICAgICAgICAgICAgICAgICAiaXNTdGFydCIsDQogICAgICAgICAgICAgICAgICAiaXNSdW5pbmciLA0KICAgICAgICAgICAgICAgICAgInBvbHlsaW5lIiwNCiAgICAgICAgICAgICAgICAgICJwb2x5Z29ucyIsDQogICAgICAgICAgICAgICAgICAicnVuWm9uZUxhdGxuZ3MiLA0KICAgICAgICAgICAgICAgICAgImF2Z1BhY2UiLA0KICAgICAgICAgICAgICAgICAgIm1pbkRpc3RhbmNlIiwNCiAgICAgICAgICAgICAgICAgICJ0eXBlIiwNCiAgICAgICAgICAgICAgICAgICJpc0ZyZWVUeXBlIiwNCiAgICAgICAgICAgICAgICAgICJpc0RYIiwNCiAgICAgICAgICAgICAgICAgICJpc09mZkxpbmUiLA0KICAgICAgICAgICAgICAgICAgInJlZnJlc2hDbG9ja0NvdW50IiwNCiAgICAgICAgICAgICAgICAgICJsb2dNYXhEaXN0YW5jZSIsDQogICAgICAgICAgICAgICAgICAicGFzc1J1bGVzIiwNCiAgICAgICAgICAgICAgICAgICJwb2ludE51bSIsDQogICAgICAgICAgICAgICAgICAiYmVmb3JlUGFzcyIsDQogICAgICAgICAgICAgICAgICAic3RhcnRUaW1lIiwNCiAgICAgICAgICAgICAgICAgICJjb25maWciLA0KICAgICAgICAgICAgICAgICAgImFsbENsb2NrcyIsDQogICAgICAgICAgICAgICAgICAiaXNfY2FwdHVyZV96b25lIiwNCiAgICAgICAgICAgICAgICAgICJpc19saW1pdF9yYW5nZSIsDQogICAgICAgICAgICAgICAgICAicnVuX3pvbmVfbGF0bG5nX2ludmFsaWQiLA0KICAgICAgICAgICAgICAgIF0pDQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICgwLCB1Lm1hcEdldHRlcnMpKCJ1c2VyIiwgWyJ1aWQiLCAiaXNUZWFjaGVyIl0pDQogICAgICAgICAgICApLA0KICAgICAgICAgICAge30sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGNhcHR1cmVfdHlwZTE6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMSA9PSB0aGlzLmlzX2NhcHR1cmVfem9uZSAmJiAxID09IHRoaXMuY2FwdHVyZV90eXBlOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBjYXB0dXJlX3R5cGUyOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEgPT0gdGhpcy5pc19jYXB0dXJlX3pvbmUgJiYgMiA9PSB0aGlzLmNhcHR1cmVfdHlwZTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgbW9kYWw6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXM7DQogICAgICAgICAgICAgICAgaWYgKHRoaXMuY2FwdHVyZV90eXBlMSkgew0KICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWlzc19udW0gJiYgdGhpcy5taXNzX251bSA+IDApDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgICAgICAga2V5OiAwLA0KICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAi6LeR5q2l5o+Q56S6IiwNCiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAi6L+Y6ZyA5oqT5ouNIi5jb25jYXQoDQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1pc3NfbnVtLA0KICAgICAgICAgICAgICAgICAgICAgICAgIuasoe+8jOeOsOWcqOe7k+adn+aIkOe7qeaXoOaViO+8jOehruWumuimgee7k+adn+WQl++8nyINCiAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgIGJ0bnM6IFsNCiAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAiU1RPUCIsIHR5cGU6ICJkZWZhdWx0IiwgdmFsdWU6ICLnu5PmnZ/ot5HmraUiIH0sDQogICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogIlJFU1RBUlQiLCB0eXBlOiAicHJpbWFyeSIsIHZhbHVlOiAi57un57ut6LeR5q2lIiB9LA0KICAgICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICBpZiAodGhpcy5taXNzX3NpdGVfbnVtICYmIHRoaXMubWlzc19zaXRlX251bSA+IDApDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgICAgICAga2V5OiAwLA0KICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAi6LeR5q2l5o+Q56S6IiwNCiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAi6L+Y6ZyA5oqT5ouNIi5jb25jYXQoDQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1pc3Nfc2l0ZV9udW0sDQogICAgICAgICAgICAgICAgICAgICAgICAi5Liq54K577yM546w5Zyo57uT5p2f5oiQ57up5peg5pWI77yM56Gu5a6a6KaB57uT5p2f5ZCX77yfIg0KICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgYnRuczogWw0KICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICJTVE9QIiwgdHlwZTogImRlZmF1bHQiLCB2YWx1ZTogIue7k+adn+i3keatpSIgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHsga2V5OiAiUkVTVEFSVCIsIHR5cGU6ICJwcmltYXJ5IiwgdmFsdWU6ICLnu6fnu63ot5HmraUiIH0sDQogICAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGUgPSBbDQogICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6DQogICAgICAgICAgICAgICAgICAgICAgIXRoaXMuYmVmb3JlUGFzcyAmJg0KICAgICAgICAgICAgICAgICAgICAgICLmnKzmrKHot5HmraXot53nprvov4fnn63vvIzmraTmrKHorrDlvZXlsIbkuI3kvJrkv53lrZgiLA0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBdLmNvbmNhdCgNCiAgICAgICAgICAgICAgICAgICgwLCByLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICB0aGlzLnBhc3NSdWxlcy5tYXAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsDQogICAgICAgICAgICAgICAgICAgICAgby5kZWZhdWx0KSgoMCwgby5kZWZhdWx0KSh7fSwgZSksIHt9LCB7IGNvbnRlbnQ6ICF0LmlzRnJlZVR5cGUgJiYgZS5jb250ZW50IH0pOw0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUuc29tZShmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHQuY29udGVudDsNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgPyB7DQogICAgICAgICAgICAgICAgICAgICAga2V5OiAwLA0KICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAi6LeR5q2l5o+Q56S6IiwNCiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBlLmZpbmQoZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LmNvbnRlbnQ7DQogICAgICAgICAgICAgICAgICAgICAgfSkuY29udGVudCwNCiAgICAgICAgICAgICAgICAgICAgICBidG5zOiBbDQogICAgICAgICAgICAgICAgICAgICAgICB7IGtleTogIlNUT1AiLCB0eXBlOiAiZGVmYXVsdCIsIHZhbHVlOiAi57uT5p2f6LeR5q2lIiB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICJSRVNUQVJUIiwgdHlwZTogInByaW1hcnkiLCB2YWx1ZTogIue7p+e7rei3keatpSIgfSwNCiAgICAgICAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICA6IG51bGw7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIG1hc2tJbmZvOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICAgIHR4dDE6ICLkvY3nva7kv6Hmga86ICINCiAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCh0aGlzLnBvaW50LmxhdGl0dWRlLCAiLCAiKQ0KICAgICAgICAgICAgICAgICAgICAuY29uY2F0KHRoaXMucG9pbnQubG9uZ2l0dWRlKSwNCiAgICAgICAgICAgICAgICAgIHR4dDI6ICLmmK/lkKblnKjljLrln5/lhoU6ICIuY29uY2F0KHRoaXMuaXNJblpvbmUoKSA/ICLmmK8iIDogIuWQpiIpLA0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIG5hdnM6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMsDQogICAgICAgICAgICAgICAgICBlID0gWw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICJsZWZ0IiwNCiAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJYSUFOWElUT05HQlUiLA0KICAgICAgICAgICAgICAgICAgICAgIGljb246ICIvc3RhdGljL2ltYWdlcy9pY29uLXJ1bi10b25nYnUucG5nIiwNCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogIue6v+S4i+WQjOatpSIsDQogICAgICAgICAgICAgICAgICAgICAgY29kZTogWyIxIiwgIjIiXSwNCiAgICAgICAgICAgICAgICAgICAgICBoaWRlOg0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZyZWVUeXBlIHx8ICF0aGlzLmlzT2ZmTGluZSB8fCAhdGhpcy5wb2ludE51bSwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgIGdyb3VwOiAibGVmdCIsDQogICAgICAgICAgICAgICAgICAgICAga2V5OiAiVE9OR0JVIiwNCiAgICAgICAgICAgICAgICAgICAgICBpY29uOiAiL3N0YXRpYy9pbWFnZXMvaWNvbi1ydW4tdG9uZ2J1LnBuZyIsDQogICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICLorrDlvZXkuIrkvKAiLA0KICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFsiMSJdLA0KICAgICAgICAgICAgICAgICAgICAgIGhpZGU6ICEwLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICJsZWZ0IiwNCiAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJ3Z2RrIiwNCiAgICAgICAgICAgICAgICAgICAgICBpY29uOiAiL3N0YXRpYy9pbWFnZXMvaWNvbi1ydW4tdG9uZ2J1LnBuZyIsDQogICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICLml6DmhJ/miZPljaHlkIzmraUiLA0KICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFsiMSJdLA0KICAgICAgICAgICAgICAgICAgICAgIGhpZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5jYXB0dXJlX3R5cGUyIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jYXB0dXJlX3R5cGUyICYmICF0aGlzLmlzU3RhcnQpLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICJsZWZ0IiwNCiAgICAgICAgICAgICAgICAgICAgICBrZXk6ICJQQUlaSEFPIiwNCiAgICAgICAgICAgICAgICAgICAgICBpY29uOiAiL3N0YXRpYy9pbWFnZXMvaWNvbi1ydW4tcGFpemhhby5wbmciLA0KICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAi5ouN54WnIiwNCiAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBbIjEiXSwNCiAgICAgICAgICAgICAgICAgICAgICBoaWRlOiAxZTMgKiB0aGlzLmRpc3RhbmNlIDwgNTAwIHx8IHRoaXMuaXNUZWFjaGVyLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAga2V5OiAiWkhVQVBBSSIsDQogICAgICAgICAgICAgICAgICAgICAgaWNvbjogIi9zdGF0aWMvaW1hZ2VzL3pwLnBuZyIsDQogICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICLmipPmi43lkIzmraUiLA0KICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFsiMSJdLA0KICAgICAgICAgICAgICAgICAgICAgIGhpZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5pc1N0YXJ0IHx8DQogICAgICAgICAgICAgICAgICAgICAgICAxICE9IHRoaXMuaXNfY2FwdHVyZV96b25lIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAxICE9IHRoaXMuY2FwdHVyZV90eXBlLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAga2V5OiAiSEVHRUJJQU9aSFVOIiwNCiAgICAgICAgICAgICAgICAgICAgICBpY29uOiAiL3N0YXRpYy9pbWFnZXMvaWNvbi1ydW4taGVnZWJpYW96aHVuLnBuZyIsDQogICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICLlkIjmoLzmoIflh4YiLA0KICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFsiMSJdLA0KICAgICAgICAgICAgICAgICAgICAgIGhpZGU6IHRoaXMucGFzc1J1bGVzLmxlbmd0aCA8PSAwLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgZ3JvdXA6ICJyaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAga2V5OiAiRElOR1dFSSIsDQogICAgICAgICAgICAgICAgICAgICAgaWNvbjogIi9zdGF0aWMvaW1hZ2VzL2ljb24tcnVuLWRpbmd3ZWkucG5nIiwNCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogIuWumuS9jSIsDQogICAgICAgICAgICAgICAgICAgICAgY29kZTogWyIxIiwgIjIiXSwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIF0uZmlsdGVyKGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAhKG51bGwgIT0gdCAmJiB0LmhpZGUpOw0KICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICAgIGxlZnQ6IGUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgImxlZnQiID09IGUuZ3JvdXAgJiYgZS5jb2RlLmluY2x1ZGVzKCIiLmNvbmNhdCh0LnR5cGUpKQ0KICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICByaWdodDogZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAicmlnaHQiID09IGUuZ3JvdXAgJiYgZS5jb2RlLmluY2x1ZGVzKCIiLmNvbmNhdCh0LnR5cGUpKQ0KICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgYnRuczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJ0bk1hcFt0aGlzLmJ0blN0YXRlXTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc2hvd0ljb25CdG5zOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICIxIiA9PSB0aGlzLmJ0blN0YXRlOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBjbG9ja1RpcHM6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc09mZkxpbmUgJiYgMCAhPSB0aGlzLnBvaW50TnVtDQogICAgICAgICAgICAgICAgICA/IHsNCiAgICAgICAgICAgICAgICAgICAgICB0YWc6ICLnur/kuIvmiZPljaEiLA0KICAgICAgICAgICAgICAgICAgICAgIHRpcHM6ICLor7fliY3lvoDnur/kuIvorr7lpIfmiZPljaHvvIzmiZPljaHlkI7lj6/ngrnlh7vlt6bkvqflkIzmraXmjInpkq7mn6XnnIvmiZPljaHnirbmgIEiLA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICA6IG51bGwgIT09DQogICAgICAgICAgICAgICAgICAgICAgKHQgPQ0KICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gKGUgPSB0aGlzLmNsb2NrVGlwc01hcCkgfHwgdm9pZCAwID09PSBlDQogICAgICAgICAgICAgICAgICAgICAgICAgID8gdm9pZCAwDQogICAgICAgICAgICAgICAgICAgICAgICAgIDogZVt0aGlzLmxvZ01vZGVdKSAmJiB2b2lkIDAgIT09IHQNCiAgICAgICAgICAgICAgICAgID8gdA0KICAgICAgICAgICAgICAgICAgOiBudWxsOw0KICAgICAgICAgICAgICAgIHZhciB0LCBlOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBzaG93U3RhdGU6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgICAgYXZnUGFjZTogdGhpcy5hdmdQYWNlID8gdGhpcy5hdmdQYWNlIDogIjAw4oCyMDDigLMiLA0KICAgICAgICAgICAgICAgICAgdGltZTogdGhpcy50aW1lID8gKDAsIGQuZm9ybWF0VGltZSkodGhpcy50aW1lKSA6ICIwMDowMDowMCIsDQogICAgICAgICAgICAgICAgICBkaXN0YW5jZTogdGhpcy5kaXN0YW5jZQ0KICAgICAgICAgICAgICAgICAgICA/ICgwLCBkLmZvcm1hdERpc3RhbmNlKSh0aGlzLmRpc3RhbmNlKQ0KICAgICAgICAgICAgICAgICAgICA6ICIwMC4wMCIsDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc2hvd1N0YXRlczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpczsNCiAgICAgICAgICAgICAgICByZXR1cm4gWw0KICAgICAgICAgICAgICAgICAgeyBrZXk6ICJhdmdQYWNlIiwgbGFiZWw6ICLlubPlnYfphY3pgJ8iLCB2YWx1ZTogIiIgfSwNCiAgICAgICAgICAgICAgICAgIHsga2V5OiAidGltZSIsIGxhYmVsOiAi55So5pe2IiwgdmFsdWU6ICIiIH0sDQogICAgICAgICAgICAgICAgICB7IGtleTogImRpc3RhbmNlIiwgbGFiZWw6ICLlhazph4zmlbAiLCB2YWx1ZTogIiIgfSwNCiAgICAgICAgICAgICAgICBdLm1hcChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLA0KICAgICAgICAgICAgICAgICAgby5kZWZhdWx0KSgoMCwgby5kZWZhdWx0KSh7fSwgZSksIHt9LCB7IHZhbHVlOiB0LnNob3dTdGF0ZVtlLmtleV0gfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHJlYWxNYXJrZXJzOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLA0KICAgICAgICAgICAgICAgICAgZSA9IFtdOw0KICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICB0aGlzLmlzRFgNCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNob3dDbG9ja3MuZm9yRWFjaChmdW5jdGlvbiAobiwgaSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgbi5kaXMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgMWUzICogdC5kaXN0YW5jZSA+PSBuLmRpcyAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICBlLnB1c2godC5tYXJrZXJzW2ldKTsNCiAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICA6IChlID0gdGhpcy5tYXJrZXJzKSwNCiAgICAgICAgICAgICAgICAgIHRoaXMubG9uZ2l0dWRlICYmDQogICAgICAgICAgICAgICAgICAgIHRoaXMubGF0aXR1ZGUgJiYNCiAgICAgICAgICAgICAgICAgICAgZS5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgICBpZDogOTk5LA0KICAgICAgICAgICAgICAgICAgICAgIGxhdGl0dWRlOiB0aGlzLmxhdGl0dWRlLA0KICAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZTogdGhpcy5sb25naXR1ZGUsDQogICAgICAgICAgICAgICAgICAgICAgaWNvblBhdGg6IHRoaXMubWFwSWNvbiwNCiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjAsDQogICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNiwNCiAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICBlDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgcmVhbENsb2NrczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcywNCiAgICAgICAgICAgICAgICAgIGUgPSBbXTsNCiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0RYKSB7DQogICAgICAgICAgICAgICAgICAiMC4wIiAhPSB0aGlzLmRpc3RhbmNlICYmDQogICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Nsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uIChuLCBpKSB7DQogICAgICAgICAgICAgICAgICAgICAgbi5kaXMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgIDFlMyAqIHQuZGlzdGFuY2UgPj0gbi5kaXMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgIChuLmRrdGltZSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICB0LnNldENsb2Nrc1N0YXRlKHsgaTogaSwgZGt0aW1lOiBEYXRlLm5vdygpIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgZS5wdXNoKG4pKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICB2YXIgbiA9IGUubGVuZ3RoOw0KICAgICAgICAgICAgICAgICAgbiA8IHRoaXMuY2xvY2tzTnVtICYmDQogICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Nsb2Nrcy5sZW5ndGggJiYNCiAgICAgICAgICAgICAgICAgICAgZS5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5zaG93Q2xvY2tzW25dLmRpcw0KICAgICAgICAgICAgICAgICAgICAgICAgPyAi5b6F5YiG6YWN77yI5YaN6LeRIiArDQogICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNob3dDbG9ja3Nbbl0uZGlzIC0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxZTMgKiBOdW1iZXIodGhpcy5kaXN0YW5jZSkpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIuexs+WQjuWIhumFjeaJk+WNoeeCue+8iSINCiAgICAgICAgICAgICAgICAgICAgICAgIDogIuW+heWIhumFjSIsDQogICAgICAgICAgICAgICAgICAgICAgdG86ICEwLA0KICAgICAgICAgICAgICAgICAgICAgIHBhc3NUeHQ6ICIiLA0KICAgICAgICAgICAgICAgICAgICAgIGljb246ICIvc3RhdGljL2ljb24tbG9jYXRpb24ucG5nIiwNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIGUgPSB0aGlzLnNob3dDbG9ja3M7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKSwgZTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc2hvd0Nsb2Nrczogew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLA0KICAgICAgICAgICAgICAgICAgICBlID0gdGhpcy5jbG9ja3MNCiAgICAgICAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsDQogICAgICAgICAgICAgICAgICAgICAgICBvLmRlZmF1bHQpKCgwLCBvLmRlZmF1bHQpKHt9LCBlKSwge30sIHsgdGl0bGU6IHQucG9pbnQubGF0aXR1ZGUgJiYgdC5wb2ludC5sb25naXR1ZGUgPyAiIi5jb25jYXQoZS50aXRsZSwgIu+8iOi3neS9oCIpLmNvbmNhdCgoMCwgZC5mb3JtYXREaXMpKGUuZGlzRnJvbSksICLvvIkiKSA6IGUudGl0bGUsIGljb246ICIiLCBwYXNzVHh0OiBlLnBhc3MgPyAi5bey5omT5Y2hIiA6ICLmnKrmiZPljaEiIH0pOw0KICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQuY2FwdHVyZV90eXBlMg0KICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgwLCBvLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIG8uZGVmYXVsdCkoe30sIGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGUucGFzcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gIi9zdGF0aWMvd2cyLnBuZyINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIvc3RhdGljL3dnMS5wbmciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoMCwgby5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBvLmRlZmF1bHQpKHt9LCBlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBlLnBhc3MNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICIvc3RhdGljL2ljb24tbG9jYXRpb24tcGFzcy5wbmciDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiL3N0YXRpYy9pY29uLWxvY2F0aW9uLnBuZyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgIGUubGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmlzRFggJiYNCiAgICAgICAgICAgICAgICAgICAgICAgIGUubGVuZ3RoIDwgdGhpcy5jbG9ja3NOdW0gJiYNCiAgICAgICAgICAgICAgICAgICAgICAgIChlID0gW10uY29uY2F0KCgwLCByLmRlZmF1bHQpKGUpLCBbDQogICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogIuW+heWIhumFjSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG86ICEwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICIvc3RhdGljL2ljb24tbG9jYXRpb24tdG8ucG5nIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzVHh0OiAiIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIF0pKQ0KICAgICAgICAgICAgICAgICAgICAgIDogKGUgPSBbXSksDQogICAgICAgICAgICAgICAgICAgIGUNCiAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIH0NCiAgICAgICAgICApLA0KICAgICAgICAgIG9uTG9hZDogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgIHZhciBuID0gdGhpczsNCiAgICAgICAgICAgIHJldHVybiAoMCwgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gZSgpIHsNCiAgICAgICAgICAgICAgICB2YXIgaSwgYSwgczsNCiAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgIGZvciAoOzspDQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGUucHJldiA9IGUubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICh0LmxvZygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAi6LeR5q2l6YWN572uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLmNvbmZpZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLmNvbmZpZy5wb2ludF90eXBlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4uaXNPZmZMaW5lDQogICAgICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgIHQubG9nKCLml6DmhJ/phY3nva4iLCBuLmNhcHR1cmVfY29uZmlnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdC5sb2coDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmVfdHlwZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA9PSBuLmNhcHR1cmVfdHlwZSA/ICLml6fnmoTmipPmi43mrKHmlbAiIDogIuaWsOaJk+WNoeasoeaVsCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCAhPT0gT2JqZWN0LmVudHJpZXMobi5jb25maWcpLmxlbmd0aCkNCiAgICAgICAgICAgICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBlLm5leHQgPSA5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoZS5uZXh0ID0gNiksIG4uJGFwaShoLmJlZm9yZVJ1blYyNjApOw0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNjoNCiAgICAgICAgICAgICAgICAgICAgICAgIChpID0gZS5zZW50KSwgKGEgPSBpIHx8IHt9KSwgbi5zZXRNYXBDb25maWcoYSk7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSA5Og0KICAgICAgICAgICAgICAgICAgICAgICAgbi5jYXB0dXJlX3R5cGUxICYmIG4uaGFuZGxlQ2xpY2tJY29uKCJaSFVBUEFJIiwgITEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBuLmlzU3RhcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgocyA9IHVuaS5nZXRTdG9yYWdlU3luYygiaXNTdGFydE51bSIpIHx8IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcysrLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCJpc1N0YXJ0TnVtIiwgcyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLnBhdXNlUnVuKCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuLnNob3dQYXNzTW9kYWwoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG4ubWFwQ3R4ID0gd3guY3JlYXRlTWFwQ29udGV4dCgibXltYXAiKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgIG4uZ2V0cmVmcmVzaENvdW50KCk7DQogICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbmQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUuc3RvcCgpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSwgZSk7DQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICApKCk7DQogICAgICAgICAgfSwNCiAgICAgICAgICBvblNob3c6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhciBlID0gdGhpczsNCiAgICAgICAgICAgIHJldHVybiAoMCwgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gbigpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gKG4pIHsNCiAgICAgICAgICAgICAgICAgIGZvciAoOzspDQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKG4ucHJldiA9IG4ubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cucGx1cyAmJiBwbHVzLmRldmljZS5zZXRXYWtlbG9jayghMCksDQogICAgICAgICAgICAgICAgICAgICAgICAgIGUuaXNJbml0IHx8IChlLmNoZWNrU3RhdHVzKCksIChlLmlzSW5pdCA9ICEwKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgIGUuaXNTdGFydCB8fCAoZS5zZXROb3dUaW1lKCksIGUuc2V0Q2xvY2tzKCkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBlLmlzU3RhcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0LmxvZygiYnRuU3RhdGUiLCBlLmJ0blN0YXRlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgIT0gZS5idG5TdGF0ZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICE9IGUuYnRuU3RhdGUgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAhPSBlLmJ0blN0YXRlICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgIT0gZS5idG5TdGF0ZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS4kdG9hc3QoIuaBouWkjei3keatpSIpLCBlLnNldEJ0blN0YXRlKCIzIikpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZS5zZXRCdG5TdGF0ZSgiMSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBlLnVwZGF0ZU9zcygpOw0KICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbmQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG4uc3RvcCgpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSwgbik7DQogICAgICAgICAgICAgIH0pDQogICAgICAgICAgICApKCk7DQogICAgICAgICAgfSwNCiAgICAgICAgICBvbkhpZGU6IGZ1bmN0aW9uICgpIHt9LA0KICAgICAgICAgIG9uVW5sb2FkOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucnVuVGltZXIpLA0KICAgICAgICAgICAgICB0aGlzLmlzU3RhcnQgJiYNCiAgICAgICAgICAgICAgICB0aGlzLmlzUnVuaW5nICYmDQogICAgICAgICAgICAgICAgdW5pLm5hdmlnYXRlVG8oeyB1cmw6ICIvcGFnZXNfcnVuL3J1bmluZyIgfSk7DQogICAgICAgICAgICB2YXIgdCA9IHd4LmdldFN0b3JhZ2VTeW5jKCJjb3VudFRpbWUiKTsNCiAgICAgICAgICAgIHQgJiYNCiAgICAgICAgICAgICAgd3guc2V0U3RvcmFnZVN5bmMoDQogICAgICAgICAgICAgICAgImNvdW50VGltZSIsDQogICAgICAgICAgICAgICAgIiINCiAgICAgICAgICAgICAgICAgIC5jb25jYXQodC5zcGxpdCgibiIpWzBdLCAibiIpDQogICAgICAgICAgICAgICAgICAuY29uY2F0KHRoaXMucmVhbFJlZnJlc2hDb3VudCAtIHRoaXMudXNlZFJlZnJlc2hjb3VudCB8fCAwKQ0KICAgICAgICAgICAgICApOw0KICAgICAgICAgIH0sDQogICAgICAgICAgbWV0aG9kczogKDAsIG8uZGVmYXVsdCkoDQogICAgICAgICAgICAoMCwgby5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgKDAsIG8uZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgKDAsIG8uZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICB7fSwNCiAgICAgICAgICAgICAgICAgICgwLCB1Lm1hcEFjdGlvbnMpKCJtYXAiLCBbDQogICAgICAgICAgICAgICAgICAgICJ1cGxvYWRGaWxlIiwNCiAgICAgICAgICAgICAgICAgICAgInNldFJlY29yZEltZyIsDQogICAgICAgICAgICAgICAgICAgICJzZXROb3dUaW1lIiwNCiAgICAgICAgICAgICAgICAgICAgInNldENsb2NrcyIsDQogICAgICAgICAgICAgICAgICAgICJzZXRDbG9ja3NTdGF0ZSIsDQogICAgICAgICAgICAgICAgICAgICJzZXRMb2NhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICJzZXRCdG5TdGF0ZSIsDQogICAgICAgICAgICAgICAgICAgICJzZXRSdW5UaW1lc3RhbXAiLA0KICAgICAgICAgICAgICAgICAgICAic2V0VGltZSIsDQogICAgICAgICAgICAgICAgICAgICJzZXRTdG9wIiwNCiAgICAgICAgICAgICAgICAgICAgInNldFR5cGUiLA0KICAgICAgICAgICAgICAgICAgXSkNCiAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICgwLCB1Lm1hcEFjdGlvbnMpKCJ1c2VyIiwgWyJzZXRNYXBDb25maWciXSkNCiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgKDAsIHUubWFwQWN0aW9ucykoImNvbmZpZyIsIFsidXBkYXRlT3NzIl0pDQogICAgICAgICAgICApLA0KICAgICAgICAgICAge30sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIHNjcm9sbFRvQm90dG9tOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzOw0KICAgICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgIHZhciBlID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKTsNCiAgICAgICAgICAgICAgICAgIGUuc2VsZWN0KCIucnVuaW5nLWhhbmRsZV9faXRlbXNfYm94IikuYm91bmRpbmdDbGllbnRSZWN0KCksDQogICAgICAgICAgICAgICAgICAgIGUuc2VsZWN0KCIucnVuaW5nLWhhbmRsZV9faXRlbXMiKS5ib3VuZGluZ0NsaWVudFJlY3QoKSwNCiAgICAgICAgICAgICAgICAgICAgZS5leGVjKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgdmFyIG4gPSBlWzBdLmhlaWdodCwNCiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBlWzFdID8gZVsxXS5oZWlnaHQgOiAwOw0KICAgICAgICAgICAgICAgICAgICAgIGlmIChpID4gbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBpIC0gbjsNCiAgICAgICAgICAgICAgICAgICAgICAgIHQuc2Nyb2xsVG9wID0gYTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICB1cGRhdGVTZXRMb2NhdGlvbjogZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXM7DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgIC8vIOW+queOr+S9jee9ruaVsOe7hOS/oeaBrw0KICAgICAgICAgICAgICAgICAgbGV0IGhhbmtsYXRpdHVkZSA9IGAkew0KICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbkxvY2F0aW9uW3RoaXMub3JpZ2luTG9jYXRpb25JbmRleF0ubGF0aXR1ZGUNCiAgICAgICAgICAgICAgICAgIH1gOw0KICAgICAgICAgICAgICAgICAgbGV0IGhhbmtsb25naXR1ZGUgPSBgJHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5Mb2NhdGlvblt0aGlzLm9yaWdpbkxvY2F0aW9uSW5kZXhdLmxvbmdpdHVkZQ0KICAgICAgICAgICAgICAgICAgfWA7DQogICAgICAgICAgICAgICAgICBlLmxhdGl0dWRlID0gaGFua2xhdGl0dWRlOw0KICAgICAgICAgICAgICAgICAgZS5sb25naXR1ZGUgPSBoYW5rbG9uZ2l0dWRlOw0KICAgICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5Mb2NhdGlvbkluZGV4Kys7DQogICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygi6KaG55uW5L2N572u5L+h5oGv5oiQ5YqfIiwgZSk7DQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIuimhuebluS9jee9ruaXtuWHuumUmToiLCBlcnJvcik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiAoMCwgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgIHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIGkoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBhLCBzLCByLCBjLCB1LCBsLCBmLCBwLCBoLCBtLCBnLCBiLCB2LCB3LCBrLCBfLCB4LCB5Ow0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gKGkpIHsNCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KQ0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoaS5wcmV2ID0gaS5uZXh0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhID0gMSAqIGUubGF0aXR1ZGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMgPSAxICogZS5sb25naXR1ZGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5sb2coZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAociA9IG4pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGMgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodSA9IHd4LmdldFN0b3JhZ2VTeW5jKCJvbGRUaW1lIikpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGwgPSBjIC0gdSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZiA9IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHAgPSAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4ucG9pbnRzLmxlbmd0aCAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGggPSBuLnBvaW50c1tuLnBvaW50cy5sZW5ndGggLSAxXSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwID0gKDAsIGQuY2FsY0Rpc3RhbmNlKShoWzBdLCBoWzFdLCBhLCBzKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibnVtYmVyIiA9PSB0eXBlb2YgKG0gPSBwIC8gKGwgLyAxZTMpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIobS50b0ZpeGVkKDIpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZyA9IHIucG9pbnQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgPSBnLmxhdGl0dWRlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ID0gZy5sb25naXR1ZGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiAhPSBhIHx8IHYgIT0gcykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkubmV4dCA9IDEzOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpLmFicnVwdCgicmV0dXJuIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTM6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh3ID0gITApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbi5ydW5ab25lTGF0bG5ncy5sZW5ndGggJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHcgPSAoMCwgZC5pc0luc2lkZVBvbHlnb24pKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLnJ1blpvbmVMYXRsbmdzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4uaXNfbGltaXRfcmFuZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbi5ydW5fem9uZV9sYXRsbmdfaW52YWxpZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQubG9nKCJpc0luc2lkZVBvbHlnb25DaGVjayIsIHcpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbi5wb2ludHMubGVuZ3RoICYmICEoZiA8PSAxMCAmJiBwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkubmV4dCA9IDI2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoaS5uZXh0ID0gMTkpLCBuLmdldFJlZ2lvbigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE5Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrID0gaS5zZW50KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpeCIgPT0gayB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgZC5jaGVja091dFJlZ2lvbikoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLnNvdXRod2VzdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLm5vcnRoZWFzdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4ID0gbi5pc1J1bmluZyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSA9ICExKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4uaXNGcmVlVHlwZSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHAgPiAxNTAgfHwgIXcpICYmICgoeSA9ICEwKSwgKHggPSAhMSkpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LnNldFN0b3JhZ2VTeW5jKCJvbGRUaW1lIiwgYyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLnNldExvY2F0aW9uKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgby5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgby5kZWZhdWx0KSh7fSwgZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlZWQ6IGYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc091dDogXywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICIiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoYywgIiAiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0KG4uaXNSdW5pbmcgPyBwIDogInMiLCAiXyIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQobCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHgsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXM6IHAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3NlOiB5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyNjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaS5zdG9wKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sIGkpOw0KICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICApKCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHVwZGF0ZVBvaW50c1N0YXRlOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLA0KICAgICAgICAgICAgICAgICAgbiA9DQogICAgICAgICAgICAgICAgICAgIHRoaXMuY2FwdHVyZV90eXBlMiB8fCB0aGlzLmlzT2ZmTGluZQ0KICAgICAgICAgICAgICAgICAgICAgID8gMzANCiAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMubG9nTWF4RGlzdGFuY2UsDQogICAgICAgICAgICAgICAgICBpID0gdGhpcy5jbG9ja3MuZmluZEluZGV4KGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAhdC5wYXNzOw0KICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgdGhpcy5jbG9ja3MuZm9yRWFjaCgNCiAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBhID0gKDAsIHMuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gYShyLCBvKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYywgdSwgbCwgZCwgcDsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcChmdW5jdGlvbiAoYSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGEucHJldiA9IGEubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIucGFzcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEubmV4dCA9IDI3Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHIuZGlzRnJvbSA+IG4pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5uZXh0ID0gMzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5hYnJ1cHQoInJldHVybiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWUuaXNEWCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEubmV4dCA9IDg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoci5kaXMgJiYgMWUzICogZS5kaXN0YW5jZSA+PSByLmRpcykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLm5leHQgPSA3Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEubmV4dCA9IDg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA3Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5hYnJ1cHQoInJldHVybiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWUuaXNPZmZMaW5lIHx8IC0xID09IGkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLm5leHQgPSAxMjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUHJvbWlzZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSAoMCwgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gdChuLCBpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEsIHIsIG87DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKCh0LnByZXYgPSB0Lm5leHQpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmlzQ2hlY2tHcm91bmQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Lm5leHQgPSA3Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUuaXNDaGVja0dyb3VuZCA9ICEwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC5uZXh0ID0gNCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS4kYXBpKGguZ2V0VmVuYVBvaW50SW5mbywgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfdGltZTogcGFyc2VJbnQoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RhcnRUaW1lIC8gMWUzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhID0gdC5zZW50KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAociA9IHNldFRpbWVvdXQoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChyKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5pc0NoZWNrR3JvdW5kID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICExKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzZTMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmxlbmd0aCAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChvID0gZS5jYWxjTmVlZEluZGV4KCkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuID0gYS5maWx0ZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucG9pbnRfaWQgPT0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5wb2ludF9pZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkubGVuZ3RoOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmNsb2Nrcy5mb3JFYWNoKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaSA9ICgwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gaSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5wcmV2ID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLm5leHQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQucG9pbnRfaWQgPT0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuaWQgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPT0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb1sNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc2V0Q2xvY2tzU3RhdGUoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYS5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9ja3NOdW06DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmNsb2Nrc051bSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUluZGV4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeV9kYXRhOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0YW5jZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmRpc3RhbmNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpdHVkZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucG9pbnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sYXRpdHVkZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2l0dWRlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wb2ludA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxvbmdpdHVkZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRfaWQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZTogcGFyc2VJbnQoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZS5ub3coKSAvDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxZTMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaS5zdG9wKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpLmFwcGx5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LnN0b3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYS5uZXh0ID0gMjcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZS5jYXB0dXJlX3R5cGUyIHx8IC0xID09IGkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLm5leHQgPSAyNTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjID0gci5wYXNzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHIuY2xvY2t0aW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBhcnNlSW50KERhdGUubm93KCkgLyAxZTMpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmNsb2NrdGltZSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zZXRDbG9ja3NTdGF0ZSh7IGk6IG8sIGNsb2NrdGltZTogYyB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmlzRFggJiYgKHUgPSByLmRrdGltZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIShEYXRlLm5vdygpIC0gZS5jYXB0dXJlX3RpbWUgPj0gM2UzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5uZXh0ID0gMjM7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5jYXB0dXJlX3RpbWUgPSBEYXRlLm5vdygpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYS5uZXh0ID0gMjApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuaGFuZGxlQ2xpY2tJY29uKCJaSFVBUEFJIiwgITEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDIwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobCA9IGEuc2VudCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSByLmlkKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLmRhdGEgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwuZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQucG9pbnRfaWQgPT0gZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuID0gKDAsIGYuZGVmYXVsdCkoMWUzICogYyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gKDAsIGYuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZXZlbnRfdGltZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIllZWVktTU0tREQgSEg6bW06c3MiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGkuZGlmZihuLCAic2Vjb25kIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5hYnMoYSkgPD0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5jYXB0dXJlX2NvbmZpZy5jYXB0dXJlX2ludGVydmFsLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9ICEwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLnN0YXJ0VGltZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG8gPSAoMCwgZi5kZWZhdWx0KShlLnN0YXJ0VGltZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gaS5pc0FmdGVyKG8pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbCA9ICEwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmlzRFggJiYgdSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSAoMCwgZi5kZWZhdWx0KSh1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwgPSBpLmlzQWZ0ZXIoZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzICYmIHIgJiYgbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkubGVuZ3RoID49IDEgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLnNldENsb2Nrc1N0YXRlKHsgaTogbywgY2xvY2t0aW1lOiBjIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zZXRDbG9ja3NTdGF0ZSh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiByLmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9ja3NOdW06IGUuY2xvY2tzTnVtLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeV9kYXRhOiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2U6IGUuZGlzdGFuY2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aXR1ZGU6IGUucG9pbnQubGF0aXR1ZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2l0dWRlOiBlLnBvaW50LmxvbmdpdHVkZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludF9pZDogci5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lOiBjLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyMzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5uZXh0ID0gMjc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyNToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5sb2coIumAmui/h+adoeS7tuabtOaWsOaJk+WNoeeKtuaAgSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuaW50ZXJ2YWxUaW1lIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGUuaW50ZXJ2YWxUaW1lID0gITApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHAgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHApLCAoZS5pbnRlcnZhbFRpbWUgPSAhMSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCA1ZTMpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc2V0Q2xvY2tzU3RhdGUoew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogci5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2tzTnVtOiBlLmNsb2Nrc051bSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlfZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlOiBlLmRpc3RhbmNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGl0dWRlOiBlLnBvaW50LmxhdGl0dWRlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZTogZS5wb2ludC5sb25naXR1ZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRfaWQ6IHIuaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZTogcGFyc2VJbnQoRGF0ZS5ub3coKSAvIDFlMyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI3Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEuc3RvcCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGEpOw0KICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAodCwgZSkgew0KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQogICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICB9KSgpDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgdXBkYXRlTWF4VGltZTogZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICB0ICYmDQogICAgICAgICAgICAgICAgICB0ID4gKHd4LmdldFN0b3JhZ2VTeW5jKCJtYXhUaW1lIikgfHwgMCkgJiYNCiAgICAgICAgICAgICAgICAgIHd4LnNldFN0b3JhZ2VTeW5jKCJtYXhUaW1lIiwgdCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHJlbmRlcmVycm9yOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhpcy5pc1ZpZXdFcnJvciA9ICEwOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBnZXRyZWZyZXNoQ291bnQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgdCA9ICgwLCBmLmRlZmF1bHQpKCkuZm9ybWF0KCJZWVlZLU1NLUREIiksDQogICAgICAgICAgICAgICAgICBlID0gd3guZ2V0U3RvcmFnZVN5bmMoImNvdW50VGltZSIpLA0KICAgICAgICAgICAgICAgICAgbiA9IGUgPyBlLnNwbGl0KCJuIilbMF0gOiBudWxsLA0KICAgICAgICAgICAgICAgICAgaSA9IHRoaXMucmVmcmVzaENsb2NrQ291bnQ7DQogICAgICAgICAgICAgICAgbg0KICAgICAgICAgICAgICAgICAgPyAoMCwgZi5kZWZhdWx0KSh0KS5kaWZmKCgwLCBmLmRlZmF1bHQpKG4pLCAiZGF5cyIpID4gMA0KICAgICAgICAgICAgICAgICAgICA/ICh3eC5zZXRTdG9yYWdlU3luYygNCiAgICAgICAgICAgICAgICAgICAgICAgICJjb3VudFRpbWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIiIuY29uY2F0KHQsICJuIikuY29uY2F0KGkpDQogICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5yZWFsUmVmcmVzaENvdW50ID0gaSkpDQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMucmVhbFJlZnJlc2hDb3VudCA9IGUuc3BsaXQoIm4iKVsxXSkNCiAgICAgICAgICAgICAgICAgIDogKHd4LnNldFN0b3JhZ2VTeW5jKA0KICAgICAgICAgICAgICAgICAgICAgICJjb3VudFRpbWUiLA0KICAgICAgICAgICAgICAgICAgICAgICIiLmNvbmNhdCh0LCAibiIpLmNvbmNhdChpKQ0KICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAodGhpcy5yZWFsUmVmcmVzaENvdW50ID0gaSkpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBjYWxjTmVlZEluZGV4OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLA0KICAgICAgICAgICAgICAgICAgZSA9IFtdOw0KICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICB0aGlzLmFsbENsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uIChuLCBpKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBhID0gMDsNCiAgICAgICAgICAgICAgICAgICAgdC5hbGxDbG9ja3MuZm9yRWFjaChmdW5jdGlvbiAodCwgZSkgew0KICAgICAgICAgICAgICAgICAgICAgIG4uaWQgPT0gdC5pZCAmJiBlIDw9IGkgJiYgYSsrOw0KICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICBlLnB1c2goYSk7DQogICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIGUNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBzaG93UGFzc01vZGFsOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgIXRoaXMuaXNGcmVlVHlwZSAmJg0KICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzUnVsZXMubGVuZ3RoICYmDQogICAgICAgICAgICAgICAgICAodGhpcy5zaG93UGFzc1NldHRpbmcgPSAhMCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIG1vdmVUb0xvY2F0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzOw0KICAgICAgICAgICAgICAgIHRoaXMubWFwQ3R4Lm1vdmVUb0xvY2F0aW9uKCksDQogICAgICAgICAgICAgICAgICB0aGlzLm1hcEN0eC5nZXRTY2FsZSh7DQogICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgKHQuc2NhbGUgPSBlLnNjYWxlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHQuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdC5zY2FsZSA9IDE2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgZ2V0TG9jYXRpb246IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXM7DQogICAgICAgICAgICAgICAgcmV0dXJuICgwLCBzLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGUucHJldiA9IGUubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmkuZ2V0TG9jYXRpb24oew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpZ2hBY2N1cmFjeTogITAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5nZXRTdG9yYWdlU3luYygib2xkVGltZSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuID0gKDAsIG0ucXFNYXBUcmFuc0dwc01hcCkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUubGF0aXR1ZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUubG9uZ2l0dWRlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApWzBdLnRvRml4ZWQoNiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gKDAsIG0ucXFNYXBUcmFuc0dwc01hcCkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUubGF0aXR1ZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUubG9uZ2l0dWRlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApWzFdLnRvRml4ZWQoNik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC51cGRhdGVTZXRMb2NhdGlvbih7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpdHVkZTogbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZTogaSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbDogZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgbS5vcGVuU2V0dGluZ0xvY2F0aW9uKSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCLojrflj5bkvY3nva7lpLHotKUiLCB0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUuc3RvcCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LCBlKTsNCiAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgKSgpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBoYW5kbGVDbGlja0J0bjogKDAsIHAuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgIHZhciB0ID0gKDAsIHMuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICAgIHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIHQoZSkgew0KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgodC5wcmV2ID0gdC5uZXh0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC50MCA9IGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0Lm5leHQgPQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNFVFRJTkciID09PSB0LnQwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJTVEFSVCIgPT09IHQudDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyA1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIlJFU1RBUlQiID09PSB0LnQwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gOA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDEwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIG0ub3BlblNldHRpbmdMb2NhdGlvbikoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmFicnVwdCgiYnJlYWsiLCAzMSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFJ1blRpbWVzdGFtcCgic3RhcnRUaW1lIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFJ1bigpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuYWJydXB0KCJicmVhayIsIDMxKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFydFJ1bigpLCB0LmFicnVwdCgiYnJlYWsiLCAzMSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDEwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoMSAhPT0gdGhpcy5pc19jYXB0dXJlX3pvbmUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Lm5leHQgPSAyMjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FwdHVyZV90eXBlMikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQubmV4dCA9IDE2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQubmV4dCA9IDE0KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrSWNvbigid2dkayIsICExKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxNDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5uZXh0ID0gMTg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxNjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC5uZXh0ID0gMTgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xpY2tJY29uKCJaSFVBUEFJIiwgITEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWlzc19udW0gfHwgIXRoaXMubW9kYWwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Lm5leHQgPSAyMjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNob3dSdW5UaXBzTW9kYWwgPSAhMCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZVJ1bigpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuYWJydXB0KCJyZXR1cm4iKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyMjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1vZGFsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5uZXh0ID0gMjg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5zaG93UnVuVGlwc01vZGFsID0gITApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGF1c2VSdW4oKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmFicnVwdCgicmV0dXJuIikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjg6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNUZWFjaGVyICYmIHRoaXMuc2V0VHlwZSgxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3BSdW4oKSwgdC5hYnJ1cHQoImJyZWFrIiwgMzEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzMToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LnN0b3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgdCwNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMNCiAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOw0KICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9KSgpLA0KICAgICAgICAgICAgICAgIDUwMA0KICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICBoYW5kbGVUb3VjaHN0YXJ0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzOw0KICAgICAgICAgICAgICAgICh0aGlzLnNob3dBbmlDb3VudCA9IDEpLA0KICAgICAgICAgICAgICAgICAgYiAmJiBjbGVhckludGVydmFsKGIpLA0KICAgICAgICAgICAgICAgICAgKGIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHQuc2hvd0FuaUNvdW50LS0sDQogICAgICAgICAgICAgICAgICAgICAgdC5zaG93QW5pQ291bnQgPD0gMCAmJiB0LnRyaWdnZXJUb3VjaGVuZCgpOw0KICAgICAgICAgICAgICAgICAgfSwgMWUzKSk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIGhhbmRsZVRvdWNoZW5kOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyVG91Y2hlbmQoKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgdHJpZ2dlclRvdWNoZW5kOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhpcy5zaG93QW5pQ291bnQgPD0gMA0KICAgICAgICAgICAgICAgICAgPyAodGhpcy4kdG9hc3QoIuW3suaaguWBnOi3keatpSIpLA0KICAgICAgICAgICAgICAgICAgICB1bmkudmlicmF0ZVNob3J0KCksDQogICAgICAgICAgICAgICAgICAgIHRoaXMucGF1c2VSdW4oKSkNCiAgICAgICAgICAgICAgICAgIDogKHRoaXMuc2hvd0FuaUNvdW50ID0gMCksDQogICAgICAgICAgICAgICAgICBiICYmIGNsZWFySW50ZXJ2YWwoYik7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHN0YXJ0UnVuOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzOw0KICAgICAgICAgICAgICAgIHJldHVybiAoMCwgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgIHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIGUoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBuOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KQ0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoZS5wcmV2ID0gZS5uZXh0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChuID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXQuaXNGcmVlVHlwZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdC5jbG9ja3MubGVuZ3RoICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgIT0gdC5wb2ludE51bSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmlzU3RhcnQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLm5leHQgPSA5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5uZXh0ID0gNTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICJub25lIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIui3keWMuuWIhumFjeeCueWksei0pe+8jOivt+WIh+aNoui3keWMuuaIluWIt+aWsOaJk+WNoeeCuemHjeivlSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmFicnVwdCgicmV0dXJuIikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChlLm5leHQgPSA3KSwgdC5zdGFydENvdW50RG93bigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5uZXh0ID0gMTA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgOToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC5vbmx5T25lQXV0byB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHQub25seU9uZUF1dG8gPSAhMCksIHQuc2V0Q2xvY2tzKCkpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod3guc2V0U3RvcmFnZVN5bmMoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbGRUaW1lIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LnN0YXJ0TGlzdGVuZXIoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0LmlzT2ZmTGluZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUubmV4dCA9IDE1Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5uZXh0ID0gMTUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC4kYXBpKGguZ2V0U3R1ZGVudFZlbmFQb2ludCwgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludF9pbmZvOiBKU09OLnN0cmluZ2lmeSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmFsbENsb2Nrcy5tYXAoZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LmlkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5zdGFydFRpbWVyKCksIHQuc2V0QnRuU3RhdGUoIjIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxNzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZS5zdG9wKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sIGUpOw0KICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICApKCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHBhdXNlUnVuOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhpcy5zZXRCdG5TdGF0ZSgiMyIpLCB0aGlzLmNsZWFyVGltZXIoKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc3RvcFJ1bjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpczsNCiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHMuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICByZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBlKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgbjsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGUucHJldiA9IGUubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LnNldFJ1blRpbWVzdGFtcCgiZW5kVGltZSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5zZXRCdG5TdGF0ZSgiMSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5jbGVhclRpbWVyKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LnN0b3BMaXN0ZW5lcigpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUubmV4dCA9IDYpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5zZXRTdG9wKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKG4gPSBlLnNlbnQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQuY2hlY2tHcHNOdW0gPSAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5yZW1vdmVTdG9yYWdlU3luYygiaXNTdGFydE51bSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHQudG9EZXRhaWwoew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lkOiBuLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0bzogMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21fc291cmNlOiAicnVuaW5nIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHQuc2V0Q2xvY2tzKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTA6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUuc3RvcCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LCBlKTsNCiAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgKSgpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBzdGFydFRpbWVyOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzOw0KICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lcigpLA0KICAgICAgICAgICAgICAgICAgKGcgPSBzZXRJbnRlcnZhbCgNCiAgICAgICAgICAgICAgICAgICAgKDAsIHMuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcChmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKGUucHJldiA9IGUubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5zZXRUaW1lKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCA9PT0gdC5taW51dGUzICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LnN0YXJ0VGltZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA9PSB0LmlzX2NhcHR1cmVfem9uZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA9PSB0LmNhcHR1cmVfdHlwZSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZS5ub3coKSAtIHQuc3RhcnRUaW1lID4gMThlNCAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQubWludXRlMyA9IDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQudXBkYXRlUG9pbnRzU3RhdGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlLnN0b3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9LCBlKTsNCiAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAxZTMNCiAgICAgICAgICAgICAgICAgICkpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBjbGVhclRpbWVyOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdC5sb2coIua4hemZpOaXoOmcgOWQjOatpeeahOWumuaXtuS7u+WKoSIpLA0KICAgICAgICAgICAgICAgICAgZyAmJiBjbGVhckludGVydmFsKGcpLA0KICAgICAgICAgICAgICAgICAgKGcgPSBudWxsKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc3RhcnRDb3VudERvd246IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXM7DQogICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICh0aGlzLmludGVydmFsVGltZSA9ICEwKSwNCiAgICAgICAgICAgICAgICAgIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICAgICAgICAgIHQuc2hvd01hc2sgPSAhMDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB1bmkuY3JlYXRlQW5pbWF0aW9uKHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxZTMsDQogICAgICAgICAgICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbjogImVhc2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk6IDAsDQogICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgYSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGkuc2NhbGUoMCwgMCkuc3RlcCh7IGR1cmF0aW9uOiAwIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAodC5hbmltYXRpb24gPSBpLmV4cG9ydCgpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5zY2FsZSgxLjgsIDIuOCkuc3RlcCh7IGR1cmF0aW9uOiAxZTMgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC5hbmltYXRpb24gPSBpLmV4cG9ydCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAgICBhKCksDQogICAgICAgICAgICAgICAgICAgICAgKDAsIGwucGxheUF1ZGlvKSgNCiAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2RhdGEubHB0aXl1LmNvbS9QdWJsaWMvU3RhdGljL3dwX2Fzc2V0cy9hc3NldHMvYXVkaW8vMzIxLm1wMyINCiAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICh2ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBsLnBsYXlBdWRpbykoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZGF0YS5scHRpeXUuY29tL1B1YmxpYy9TdGF0aWMvd3BfYXNzZXRzL2Fzc2V0cy9hdWRpby9ydW4ubXAzIg0KICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAodyA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh3KSwgKHQuaW50ZXJ2YWxUaW1lID0gITEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxNTAwKSk7DQogICAgICAgICAgICAgICAgICAgICAgfSwgNGUzKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBzID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgIHQubGltaXRNYXgtLSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHQubGltaXRNYXggPD0gMA0KICAgICAgICAgICAgICAgICAgICAgICAgICA/IChzICYmIGNsZWFySW50ZXJ2YWwocyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQuc2hvd01hc2sgPSAhMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQubGltaXRNYXggPSAzKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC5hbmltYXRpb24gPSB7fSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnZpYnJhdGVMb25nKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZSgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEoKTsNCiAgICAgICAgICAgICAgICAgICAgfSwgMTIwMCk7DQogICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIGhhbmRsZUJhY2s6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBnZXRDdXJyZW50UGFnZXMoKS5sZW5ndGggPD0gMQ0KICAgICAgICAgICAgICAgICAgPyB1bmkucmVMYXVuY2goeyB1cmw6ICIvcGFnZXMvcnVuL2luZGV4IiB9KQ0KICAgICAgICAgICAgICAgICAgOiB1bmkubmF2aWdhdGVCYWNrKHsgZGVsdGE6IDEgfSk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIGhhbmRsZVJlbG9hZENsb2NrczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRoaXMuaXNTdGFydCB8fA0KICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQ2xvY2tDb3VudCA8PSAwIHx8DQogICAgICAgICAgICAgICAgICAodGhpcy51c2VkUmVmcmVzaGNvdW50ID49IHRoaXMucmVhbFJlZnJlc2hDb3VudA0KICAgICAgICAgICAgICAgICAgICA/IHRoaXMuJHRvYXN0KCLliLfmlrDmrKHmlbDlt7Lovr7kuIrpmZAiKQ0KICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnNldENsb2Nrcyh0aGlzLnNob3dDbG9ja3MpLA0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlZFJlZnJlc2hjb3VudCsrLA0KICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHRvYXN0KA0KICAgICAgICAgICAgICAgICAgICAgICAgIuaJk+WNoeeCueW3suabtOaWsO+8jOS7iuaXpei/mOWPr+WIt+aWsCIuY29uY2F0KA0KICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWxSZWZyZXNoQ291bnQgLSB0aGlzLnVzZWRSZWZyZXNoY291bnQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICLmrKEiDQogICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgKSkpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBoYW5kbGVDbGlja0Nsb3NlOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhpcy5zaG93VGlwcyA9ICExOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBnZXRSZWdpb246IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXM7DQogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICAgICAgICB2YXIgaSA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBlKCJmaXgiKTsNCiAgICAgICAgICAgICAgICAgIH0sIDFlMyk7DQogICAgICAgICAgICAgICAgICB0Lm1hcEN0eC5nZXRSZWdpb24oew0KICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChpKSwgZSh0KTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgZmFpbDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChpKSwgZShudWxsKTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBzdGFydExpc3RlbmVyOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzOw0KICAgICAgICAgICAgICAgIHVuaS5nZXROZXR3b3JrVHlwZSh7DQogICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICAibm9uZSIgPT09IGUubmV0d29ya1R5cGUgfHwNCiAgICAgICAgICAgICAgICAgICAgICAoY2xlYXJJbnRlcnZhbCh0aGlzLnJ1blRpbWVyKSwNCiAgICAgICAgICAgICAgICAgICAgICAodC5ydW5UaW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHQudXBkYXRlU2V0TG9jYXRpb24oew0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpdHVkZTogIjIyLjU0MzMzMyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZTogIjExMy45NDk5OTkiLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICAgfSwgMmUzKSkpOw0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgIHVuaS5zdGFydExvY2F0aW9uVXBkYXRlKHsgc3VjY2VzczogZnVuY3Rpb24gKCkge30gfSk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHN0b3BMaXN0ZW5lcjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHd4Lm9mZkxvY2F0aW9uQ2hhbmdlKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICB0LmxvZygi5YWz6Zet5L2N572u55uR5ZCsIiwgZSk7DQogICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICB3eC5zdG9wTG9jYXRpb25VcGRhdGUoKTsNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgaGFuZGxlQ2xpY2tNb2RhbDogZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICB2YXIgZSA9IHRoaXM7DQogICAgICAgICAgICAgICAgcmV0dXJuICgwLCBzLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gbigpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIChuKSB7DQogICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKG4ucHJldiA9IG4ubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuLnQwID0gdC5rZXkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG4ubmV4dCA9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTVE9QIiA9PT0gbi50MA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIlJFU1RBUlQiID09PSBuLnQwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyA1DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiA3KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlLnN0b3BSdW4oKSwgbi5hYnJ1cHQoImJyZWFrIiwgOCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZS5zdGFydFJ1bigpLCBuLmFicnVwdCgiYnJlYWsiLCA4KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA3Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuLmFicnVwdCgiYnJlYWsiLCA4KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc2hvd1J1blRpcHNNb2RhbCA9ICExOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDk6DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG4uc3RvcCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LCBuKTsNCiAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgKSgpOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICB0b0RldGFpbDogZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICB0aGlzLnN0b3BMaXN0ZW5lcigpLA0KICAgICAgICAgICAgICAgICAgdW5pLnJlZGlyZWN0VG8oew0KICAgICAgICAgICAgICAgICAgICB1cmw6ICIvcGFnZXNfcnVuL2RldGFpbCIuY29uY2F0KGwucXMuc3RyaW5naWZ5KHQpKSwNCiAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBoYW5kbGVDbGlja0ljb246IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgdmFyIG4gPSBhcmd1bWVudHMsDQogICAgICAgICAgICAgICAgICBpID0gdGhpczsNCiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHMuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICByZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiByKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgbywgYywgdSwgbCwgZCwgcDsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIChyKSB7DQogICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKHIucHJldiA9IHIubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvID0gIShuLmxlbmd0aCA+IDEgJiYgdm9pZCAwICE9PSBuWzFdKSB8fCBuWzFdKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyLnQwID0gZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoci5uZXh0ID0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndnZGsiID09PSByLnQwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyA0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiWkhVQVBBSSIgPT09IHIudDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDEzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiVE9OR0JVIiA9PT0gci50MA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMTcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJYSUFOWElUT05HQlUiID09PSByLnQwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAxOQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIlBBSVpIQU8iID09PSByLnQwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAzMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIkhFR0VCSUFPWkhVTiIgPT09IHIudDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDMyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiRElOR1dFSSIgPT09IHIudDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDM0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiU0hFWkhJIiA9PT0gci50MA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMzYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDM4KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKERhdGUubm93KCkgLSBpLmNhcHR1cmVfdGltZSA+PSAzZTMpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLm5leHQgPSAxMjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkuY2FwdHVyZV90aW1lID0gRGF0ZS5ub3coKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYyA9IGkuY2xvY2tzLmZpbmRJbmRleChmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXQucGFzczsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyLm5leHQgPSA5KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuaGFuZGxlQ2xpY2tJY29uKCJaSFVBUEFJIiwgITEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA5Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1ID0gci5zZW50KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gJiYgaS4kdG9hc3QoIuWQjOatpeaIkOWKnyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5jbG9ja3MuZm9yRWFjaCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdCA9ICgwLCBzLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gdChlLCBuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhLCBzLCByOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKHQucHJldiA9IHQubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLnBhc3MpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQubmV4dCA9IDc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpLmlzRFgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQubmV4dCA9IDY7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5kaXMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWUzICogaS5kaXN0YW5jZSA+PSBlLmRpcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5uZXh0ID0gNTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Lm5leHQgPSA2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA2Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuY2FwdHVyZV90eXBlMiAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEgIT0gYyAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhID0gZS5wYXNzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZS5jbG9ja3RpbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwYXJzZUludChEYXRlLm5vdygpIC8gMWUzKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmlzRFggJiYgKHMgPSBlLmRrdGltZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5jbG9ja3RpbWUgJiYgZS5wYXNzKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLnNldENsb2Nrc1N0YXRlKHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpOiBuLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrdGltZTogYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAociA9IGUuaWQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdS5kYXRhICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUuZGF0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LnBvaW50X2lkID09IHI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZSA9ICgwLCBmLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFlMyAqIGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiA9ICgwLCBmLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZXZlbnRfdGltZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWVlZWS1NTS1ERCBISDptbTpzcyINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IG4uZGlmZihlLCAic2Vjb25kIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gPQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguYWJzKHIpIDw9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5jYXB0dXJlX2NvbmZpZw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhcHR1cmVfaW50ZXJ2YWwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAhMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpLnN0YXJ0VGltZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdSA9ICgwLCBmLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuc3RhcnRUaW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBuLmlzQWZ0ZXIodSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbCA9ICEwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkuaXNEWCAmJiBzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gKDAsIGYuZGVmYXVsdCkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gbi5pc0FmdGVyKGQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG8gJiYgYyAmJiBsOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmxlbmd0aCA+PSAxICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLnNldENsb2Nrc1N0YXRlKHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpOiBuLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrdGltZTogYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuc2V0Q2xvY2tzU3RhdGUoew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBlLmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb2Nrc051bTogaS5jbG9ja3NOdW0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlfZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2U6IGkuZGlzdGFuY2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpdHVkZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5wb2ludC5sYXRpdHVkZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5wb2ludC5sb25naXR1ZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludF9pZDogZS5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWU6IGEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA3Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbmQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LnN0b3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIuYWJydXB0KCJicmVhayIsIDM4KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoMiAhPSBpLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIubmV4dCA9IDE1Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByLmFicnVwdCgicmV0dXJuIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHIuYWJydXB0KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUHJvbWlzZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdCA9ICgwLCBzLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gdChlLCBuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhLCBzOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKHQucHJldiA9IHQubmV4dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYSA9IHBhcnNlSW50KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDFlMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodC5uZXh0ID0gMyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLiRhcGkoaC5nZXRDYXB0dXJlU3RhdHVzLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbWVfaWQ6IGkuYXJlYUNvZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3RpbWU6IGkuc3RhcnRUaW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBwYXJzZUludCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5zdGFydFRpbWUgLyAxZTMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF90aW1lOiBhLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0YW5jZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMC4wIiA9PT0gaS5kaXN0YW5jZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAwLjENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaS5kaXN0YW5jZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzID0gdC5zZW50KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLm1pc3NfbnVtID0gcy5taXNzX251bSB8fCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLm1pc3Nfc2l0ZV9udW0gPQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLm1pc3Nfc2l0ZV9udW0gfHwgMCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKHMpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5jYXB0dXJlX3R5cGUxICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkuJHRvYXN0KCLmipPmi43mrKHmlbDlt7LlkIzmraUiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkubWludXRlMyA9IDIpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbmQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LnN0b3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChlLCBuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE3Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmkubmF2aWdhdGVUbyh7IHVybDogIi9wYWdlc19ydW4vdXBsb2FkIiB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIuYWJydXB0KCJicmVhayIsIDM4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkuaXNTdGFydCAmJiBpLmlzUnVuaW5nKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLm5leHQgPSAyMjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaS4kdG9hc3QoIuivt+WkhOS6jui3keatpeS4rSIpLCByLmFicnVwdCgicmV0dXJuIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsID0gaS5jbG9ja3MuZmluZEluZGV4KGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhdC5wYXNzOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5sb2coIuaJgOacieeCueaJk+WNoeWujCIsIGwpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWkuaXNPZmZMaW5lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci5uZXh0ID0gMjk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyLm5leHQgPSAyNyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLiRhcGkoaC5nZXRWZW5hUG9pbnRJbmZvLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3RpbWU6IHBhcnNlSW50KGkuc3RhcnRUaW1lIC8gMWUzKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyNzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZCA9IHIuc2VudCkubGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChpLiR0b2FzdCgi5ZCM5q2l5oiQ5YqfIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpLmlzQ2hlY2tHcm91bmQgPSAhMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwID0gaS5jYWxjTmVlZEluZGV4KCkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLmZvckVhY2goZnVuY3Rpb24gKHQsIGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IGQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZS5wb2ludF9pZCA9PSB0LnBvaW50X2lkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmxlbmd0aDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmNsb2Nrcy5mb3JFYWNoKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSAoMCwgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgoZS5wcmV2ID0gZS5uZXh0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5wb2ludF9pZCA9PSBhLmlkICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuID09IHBbc10gJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuc2V0Q2xvY2tzU3RhdGUoew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYS5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2tzTnVtOiBpLmNsb2Nrc051bSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVJbmRleDogcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlfZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlOiBpLmRpc3RhbmNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGl0dWRlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS5wb2ludC5sYXRpdHVkZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25naXR1ZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLnBvaW50LmxvbmdpdHVkZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludF9pZDogYS5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lOiBwYXJzZUludCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGUubm93KCkgLyAxZTMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZS5zdG9wKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0LCBuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaS4kdG9hc3QoIuacquafpeivouWIsCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI5Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByLmFicnVwdCgiYnJlYWsiLCAzOCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5jaG9vc2VJbWFnZSh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVR5cGU6IFsiY2FtZXJhIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSAoMCwgcy5kZWZhdWx0KSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIGUobikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcywgciwgbzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKChlLnByZXYgPSBlLm5leHQpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5sb2coIi4uLi4uLj4+Pj4+IiwgbiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLnBhdXNlUnVuKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocyA9ICgwLCBhLmRlZmF1bHQpKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLnRlbXBGaWxlUGF0aHMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHIgPSBzWzBdKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zaG93TG9hZGluZyh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAi5LiK5Lyg5LitLi4uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzazogITAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChrKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChrKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmkuaGlkZUxvYWRpbmcoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDNlMykpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUubmV4dCA9IDgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS51cGxvYWRGaWxlKHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVBhdGg6IHIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogInBpYyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgODoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG8gPSAobyA9IGUuc2VudCkuc3BsaXQoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdWJsaWMvVXBsb2FkL3BpYy8iDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApWzFdKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5oaWRlTG9hZGluZygpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5sb2coInVwbG9hZEZpbGU9PiIsIG8pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUubmV4dCA9IDE1Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLiR0b2FzdCgi5LiK5Lyg5aSx6LSlIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmFicnVwdCgicmV0dXJuIikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE1Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuJHRvYXN0KCLkuIrkvKDmiJDlip8iKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuc2V0UmVjb3JkSW1nKG8pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE3Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbmQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlLnN0b3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIuYWJydXB0KCJicmVhayIsIDM4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkuc2hvd1Bhc3NNb2RhbCgpLCByLmFicnVwdCgiYnJlYWsiLCAzOCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkubW92ZVRvTG9jYXRpb24oKSwgci5hYnJ1cHQoImJyZWFrIiwgMzgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM2Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmkubmF2aWdhdGVUbyh7IHVybDogIi9wYWdlc19ydW4vc2V0dGluZ3MiIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci5hYnJ1cHQoImJyZWFrIiwgMzgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzODoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gci5zdG9wKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sIHIpOw0KICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICApKCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIGNoZWNrU3RhdHVzOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhpcy5pc1J1bmluZyAmJiAhZyAmJiB0aGlzLnBhdXNlUnVuKCk7DQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICB9DQogICAgICAgICAgKSwNCiAgICAgICAgfTsNCiAgICAgIH0pLmNhbGwodGhpcywgbigiNWE1MiIpLmRlZmF1bHQpOw0KICAgIH0sDQogICAgNzk2MzogZnVuY3Rpb24gKHQsIGUsIG4pIHsNCiAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgIHZhciBpID0gbigiNDFiOCIpOw0KICAgICAgbi5uKGkpLmE7DQogICAgfSwNCiAgICAiOTRiMiI6IGZ1bmN0aW9uICh0LCBlKSB7DQogICAgICB0LmV4cG9ydHMgPQ0KICAgICAgICAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEb0FBQUE2Q0FNQUFBRFdaYm9hQUFBQW1WQk1WRVVBQUFBMlBVMDFQRTAyUFUwb04xQTJQVTAzUGt3MlBVMDFQVTAyUFUwMVBFMDJQVTAxUGswMlBrNDVPMHMyUFU0MlBVMDJQRTAxUFV3MFAwczJQazQxUEUwMlBVMy8vLzlPVkdOQ1NGanE2dXpMemRMSXlzNXBibm82UVZIMjl2ZmY0ZU8zdXNDVW1LQ0dpcFM2dk1KU1dHVjhnWXM4UTFQNit2dmo1T2FrcDY1MWVvVmthWFc2dmNLdnNiaWVvcXFPa3B2eTgvUmJZVzdmTEp5YUFBQUFGblJTVGxNQTlubnhCcDRrNE03R2FsSTlJQSs0cXFabUxGKzZIelUvY2dBQUFlWkpSRUZVU01lbGwydDdvakFRaFJuQUlvcDQ2NTRCUzBVVWI5VmVkdi8vajl2czF2Sm9Kc1hRdk44UGs1eWNrQm5QU0pqNHZUZ0tnQ0NLcDM0U2VwYWtzekhoQmhyUFVndmh2RWN3UUwzNUhlRm9nbStaakZxRW9VOW9nZnh2Ti8zUXh4MzZEMmJsTU1CZGdxRkpPU0JZUUFPcDlHR0pMMnJDR3EzdWtHQU5EVys4RGRDQjRNcm5zSTlPOUVOcFVXZXJSb1NPMEZjbXArak05T0lSb1R1ZlR2VmdJbHNYeDdKY0Zlc01KbnIvYjNaZ0VsYmNVSnZFUWFxa2o1Q2Nmdk1WNVE2U1J5VWRRL0RNaXFmTmRybmNicDVZOFFIQldNV0JJTmd3cjg3TmQxWktLK3RTNkNXUUxOL2ZjelRrcW5BcDk1dllKQ2xYZFd1WktLczhuSms1azhjVHd3SzE1RFUwWWkrQ3hyNWFtbndyb0JGNUloQnYvQ2FrVythRkNJVm5PdE5uWVRuekFScWtTL01GcXdvNU5JNThGRko5d1ovWmZjVU5yL3lQU2x1d3RLbGczdGdzSlpLSHMxYnh0VEVnbHBISW1Qa01qUmQra1pHUVFheVpWN2x1Y2JXWFFaVHh6MHExWkYwclNVeVhic2VxYnJPMVA2YzlERkJvdk9vZlgxZDl2OTBWZk5tbXZPcmVESkpUeVZmVU1EQlQwcFFneVdwdXFESklLRzM5bVM0T2gwWHJ6OVNiNHdkY1dxRUpPak54ZUs0Y0hrbUhwOW01SWVqZWhqZzNQKzR0bDMzZGdYdDc2ZDdVMnJmU0xnMjgrOWhnUDZ6OE1nMHJyU01TVWR1STlCZG9BT1VnQ2ZNUWZBQUFBQUJKUlU1RXJrSmdnZz09IjsNCiAgICB9LA0KICAgIGIyMGY6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAidXNlIHN0cmljdCI7DQogICAgICBuKCI3YTgyIiksDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLA0KICAgICAgICAoZS5kZWZhdWx0ID0gdm9pZCAwKTsNCiAgICAgIGUuZGVmYXVsdCA9IHsNCiAgICAgICAgbmFtZTogIlJ1blRpcHNNb2RhbCIsDQogICAgICAgIHByb3BzOiB7DQogICAgICAgICAgdmFsdWU6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogITEgfSwNCiAgICAgICAgICBtb2RhbDogew0KICAgICAgICAgICAgdHlwZTogT2JqZWN0LA0KICAgICAgICAgICAgZGVmYXVsdDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICByZXR1cm4ge307DQogICAgICAgICAgICB9LA0KICAgICAgICAgIH0sDQogICAgICAgIH0sDQogICAgICAgIGRhdGE6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgY29uZmlybVN0eWxlOiB7IG1hcmdpblJpZ2h0OiAiNDBycHgiIH0sDQogICAgICAgICAgICBjYW5jZWxTdHlsZTogeyBtYXJnaW5MZWZ0OiAiNDBycHgiLCB0cmFuc2Zvcm06ICJyb3RhdGVaKDM2MGRlZykiIH0sDQogICAgICAgICAgfTsNCiAgICAgICAgfSwNCiAgICAgICAgY29tcHV0ZWQ6IHsNCiAgICAgICAgICB2aXNpYmxlOiB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAodCkgew0KICAgICAgICAgICAgICB0aGlzLiRlbWl0KCJpbnB1dCIsIHQpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICB9LA0KICAgICAgICAgIHRleHQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhciB0Ow0KICAgICAgICAgICAgcmV0dXJuICgNCiAgICAgICAgICAgICAgKG51bGwgPT09ICh0ID0gdGhpcy5tb2RhbCkgfHwgdm9pZCAwID09PSB0DQogICAgICAgICAgICAgICAgPyB2b2lkIDANCiAgICAgICAgICAgICAgICA6IHQuY29udGVudCkgfHwgIiINCiAgICAgICAgICAgICk7DQogICAgICAgICAgfSwNCiAgICAgICAgICBpc0FycmF5Q29udGVudDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy50ZXh0KTsNCiAgICAgICAgICB9LA0KICAgICAgICAgIGNvbnRlbnQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzQXJyYXlDb250ZW50ID8gdGhpcy50ZXh0IDogW3RoaXMudGV4dF07DQogICAgICAgICAgfSwNCiAgICAgICAgfSwNCiAgICAgICAgbWV0aG9kczogew0KICAgICAgICAgIGhhbmRsZUNsaWNrTW9kYWw6IGZ1bmN0aW9uICh0KSB7DQogICAgICAgICAgICB0aGlzLiRlbWl0KCJvbi1jbGljayIsIHQpOw0KICAgICAgICAgIH0sDQogICAgICAgIH0sDQogICAgICB9Ow0KICAgIH0sDQogICAgYjU1ODogZnVuY3Rpb24gKHQsIGUsIG4pIHsNCiAgICAgIHZhciBpID0gbigiMTYyYiIpOw0KICAgICAgaS5fX2VzTW9kdWxlICYmIChpID0gaS5kZWZhdWx0KSwNCiAgICAgICAgInN0cmluZyIgPT0gdHlwZW9mIGkgJiYgKGkgPSBbW3QuaSwgaSwgIiJdXSksDQogICAgICAgIGkubG9jYWxzICYmICh0LmV4cG9ydHMgPSBpLmxvY2Fscyk7DQogICAgICAoMCwgbigiNGYwNiIpLmRlZmF1bHQpKCI1YWM4MTE4YSIsIGksICEwLCB7DQogICAgICAgIHNvdXJjZU1hcDogITEsDQogICAgICAgIHNoYWRvd01vZGU6ICExLA0KICAgICAgfSk7DQogICAgfSwNCiAgICBiNzRmOiBmdW5jdGlvbiAodCwgZSkgew0KICAgICAgdC5leHBvcnRzID0NCiAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ2dBQUFBMUNBTUFBQUFFYUZrYUFBQUJ1VkJNVkVVQUFBQXN6WEFzekhBdHpHOHR6WEF0ekc4dHpIQXN6SEFyekhFbHkyMHU0WEV6MDNjbXlHb2l5bXNzelhBc3pXOHR6WEFzekhBU25sZ1d4R0FrdTJjdHkzQm05Nk10ekhFdjBITXZ5M0l0em04cXluVmY5YUJqOUtCaTg1OFZ3MTh0ejNCaDg1OFN3MXNLajFGcStLVUxxMVJvOTZRTGtsSVB3RmtNazFNY3lHUko1SW9Qd1ZvbHptMHoxM2NkeVdZYXhHSnErS1lmeTJjVHcxMHV6Rzh2MUhVZ3kyZ3R6SEUyMlh3VXcxMFZ3MTllOFo4dXkyNVc3SlV3MVhVbXoyMGh5MmxTNlpJcjBuRnIrYVkyMkhvV3hXQWN5R1ZWNjVSbTlxTTczSDluOXFSZjhaeEk0NGxZN1pZbXptMXIrYVpVNjVOTDVZMFB3RmxkOEp0RDRZVVh4bUFkeUdVa3ptMFF3VnM3MjM0LzNZRmY4SnhzOTZkbitxY3EwRzFvOXFGcS82b3oxM2dzMG5JNjIzNFR3MTB1MUhRMzJudzEySG9aeDJJWHhtQXcxWFlsejJ3Z3kyZ2p6V3NieUdRbzBHODkzWUFxMFhFZHlXVkY0b2NpekdvUXdWb2V5bWNWeEY4bnoyNWY4cDFKNVlzTndGaEM0WVUvM29KVzdaWlU2NVJTNnBKUDZJOUg0NGxNNW8xQjM0Tm05cUpjOEp0Yjc1bFo3cGhPNTQ1ajlhRmg4NTlRNlpGbytLVlk3WmRMNVl3THZsWUpqbEFKcDFQZzRVcU5BQUFBWVhSU1RsTUFVcUU2blk5dllTQU1BejRjQ0ZCTlJrVGQxck9VV2xvMk1TUVlFdmpxMEphSEx2ejYrdm4yOC9QdzZOL2QyY3k1bnB1V2pJbUhnVzFyUFMwcytQajI4ZkRwNStibTQ5N2IyY25KeDdlM3A2ZWZuWnlJY0dwaVlsdFpRMEEwTVJzTXlHME1jUUFBQXFSSlJFRlVTTWQ5a3ZkZkdqRVl4Z01JQXNkU0hMaXBWcTE3dHRacTk5NTdUeFV0RmhCa2lhSnQxZG82cW9KL2NaUExDKzhkQ1gxK3VseStuMi95SkNINk5OZU4zR3R0YVdtOS83eXVtWlRQMU9PdXc1MmQvWVBWMzM5Mmp5NCttUklBc0kwY2NveHlSOTkvL1B5NzkxUnEvWENkY3Z0Y3g3RE43ZU8xUGtYazZrNFhkTHRNdDdtM3ZiYVZXUC8xVHNKeERIV0p4UHBHTFBaV3ozM3NnaEtnTzFaMUc3RzV1UVdmbHZ0eVI2dFRWMDF3Yk9Icm9JMWdUbWxMZ0M3R3VabVpzOGg5YmxGMTJoS2dvOXkzU3c0VUhnZ2xLTWN3eXMzUEY1WDIxbFVvSWVvb04zdk5EdUQ3b2c1TElEYTdISzBxck14MFFnbkdNV3c1bWprSDRFTmNWYUtMWmtLUEFMek5TMnlWbEFCZEtCUVpBUERxZjNXUlNQSUtnQ3BHZFNMR2RNbGtPQTFnWDdrU0lhWUxoOU85QUQ3QU01SHAwdkVoQUY5SVNxQXVIbDhxSEk4aTB5RzJGTHhBSUhkRkhhektzS0NYRkhJZVN6QmRScWNMTHI0c2dzNGIwaEljVzd6cEpLaVVsd2d5Ym1XU1lPeUQwaElNVy9IYWlTYUtya1FZVnFWY0lBQ1ZDL0dMSlNoR3VUR2lqMjBBUzJoMGdYNGJLY21ueTZVbEdIZW1uUWg1TGF3YVNLWGVFRWxHOVNVWTk0ekk0aHdxMGFYYW5FUWF4eTJkTHR2dklHWFMzcXZSWmFHSUpEYnJLOFN5MlVtclRiYkJScFBiWURDTUlqZEdoMjVUbzFPL081UEx3Rkp2R1FZc04yeXBONmhSY0tkTkh2N0xZallhalcwcWxtdWpuMllMLys5cDRpK25nUThyYTQxcXZJeno4dS9hU2o3WHdGNlFDYmdLUGxkVDNabkxkVmJYOEZFRmtENUNyQVllczVHbk81OC9PY25udTJGb2hta3JxWUl2S2dSalQwZEhEeldDRXFhcmlBdU5ZdERvQWlQdUVRTjdCQ1BzRVZwanNEWHNFVm9YemhFRDV3Z3g0VG5DelV5TSt5dm9pdjd4Q2JnWlBFZThHV253WnZDdTVWRWM0dXNSUWwrUFRmb2VwMzJLeDAzbExyZEg4VTNyM3VNL2RjakVmeFBTMDhNQUFBQUFTVVZPUks1Q1lJST0iOw0KICAgIH0sDQogICAgY2ExYTogZnVuY3Rpb24gKHQsIGUpIHsNCiAgICAgIHQuZXhwb3J0cyA9DQogICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQVNCQU1BQUFDUW1WSjRBQUFBSVZCTVZFVUFBQUN6czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdQOHdDT3dBQUFBQ25SU1RsTUE3VEdoS3VsZUdnd0xrcFcrb0FBQUFEaEpSRUZVQ05kallKL0FBQVJaUVNEU2FxRUNrSFJjSlFRa21hVEFIRVZVamdpWXN4aENRa1Fnc21DVkVDYllCSWhwY0pQWkc0QUVBQ3hiRHZIWURaQmVBQUFBQUVsRlRrU3VRbUNDIjsNCiAgICB9LA0KICAgIGQ3NzM6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAidXNlIHN0cmljdCI7DQogICAgICBuLnIoZSk7DQogICAgICB2YXIgaSA9IG4oIjIxZDEiKSwNCiAgICAgICAgYSA9IG4oIjQ3YzQiKTsNCiAgICAgIGZvciAodmFyIHMgaW4gYSkNCiAgICAgICAgWyJkZWZhdWx0Il0uaW5kZXhPZihzKSA8IDAgJiYNCiAgICAgICAgICAoZnVuY3Rpb24gKHQpIHsNCiAgICAgICAgICAgIG4uZChlLCB0LCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgIHJldHVybiBhW3RdOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfSkocyk7DQogICAgICBuKCI3OTYzIik7DQogICAgICB2YXIgciA9IG4oImYwYzUiKSwNCiAgICAgICAgbyA9IE9iamVjdChyLmEpKA0KICAgICAgICAgIGEuZGVmYXVsdCwNCiAgICAgICAgICBpLmIsDQogICAgICAgICAgaS5jLA0KICAgICAgICAgICExLA0KICAgICAgICAgIG51bGwsDQogICAgICAgICAgImU5ODNmOTQ4IiwNCiAgICAgICAgICBudWxsLA0KICAgICAgICAgICExLA0KICAgICAgICAgIGkuYSwNCiAgICAgICAgICB2b2lkIDANCiAgICAgICAgKTsNCiAgICAgIGUuZGVmYXVsdCA9IG8uZXhwb3J0czsNCiAgICB9LA0KICAgIGY4MzY6IGZ1bmN0aW9uICh0LCBlLCBuKSB7DQogICAgICAidXNlIHN0cmljdCI7DQogICAgICB2YXIgaSA9IG4oIjViMjEiKTsNCiAgICAgIG4ubihpKS5hOw0KICAgIH0sDQogIH0sDQpdKTsNCg==`; if (window.location.href === 'https://class.bigdata.ncvt.net/Student/Course/index.html') { const body = document.body; const footer = body.querySelector('footer'); const app = document.createElement('div'); app.id = 'app'; body.innerHTML = ''; body.appendChild(app); body.appendChild(footer); } if (window.location.href === 'https://class.bigdata.ncvt.net/Student/My/myCourse.html') { const body = document.body; const app = document.createElement('div'); app.id = 'app'; body.innerHTML = ''; body.appendChild(app); } if ( window.location.href === 'https://class.bigdata.ncvt.net/Student/Course/index.html' || window.location.href === 'https://class.bigdata.ncvt.net/Student/My/myCourse.html' ) { const linkCSS = document.createElement('link'); const linkJS = document.createElement('script'); linkCSS.href = CSSBase64; linkCSS.rel = 'stylesheet'; linkCSS.type = 'text/css'; linkJS.src = scriptBase64; linkJS.type = 'module'; document.head.appendChild(linkCSS); document.head.appendChild(linkJS); } //总结提交or查看报名人员功能 const submit_URL = window.location.href; const targetPath = 'https://class.bigdata.ncvt.net/Student/Activity/apply.html'; const currentPath = submit_URL.split('?')[0]; if (currentPath === targetPath) { submit_apply_func(); } function submit_apply_func() { let button_box = mui('.mui-content-padded')[1]; button_box.innerHTML = `