JSBGaWxlICAgOiBwZW50b21pbm8ucGwKJSBBdXRob3JzOiBNdXRzdW5vcmkgQmFuYmFyYSAoYmFuYmFyYUBrb2JlLXUuYWMuanApCiUgICAgICAgICAgTmFveXVraSBUYW11cmEgKHRhbXVyYUBrb2JlLXUuYWMuanApCiUgVXBkYXRlZDogMTQgRmVicnVhcnkgMjAwOAolIFB1cnBvc2U6IFBlbnRvbWlubyBQdXp6bGUKJSAgICAgICAgICAocG9zZWQgYnkgSGVucnkgRS4gRHVkZW55LCAxOTA3IGFuZCBTb2xvbW9uIFcuIEdvbG9tYiwgMTk1MykKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgQ291bnQgQWxsIFNvbHV0aW9ucwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpjb3VudF9hbGwoTikgOi0KICAgICAgICBmaW5kYWxsKEIsIHNvbHZlX3BlbnRvbWlubyhOLCBCKSwgTCksCiAgICAgICAgbGVuZ3RoKEwsIEMpLAogICAgICAgIHdyaXRlKEMpLCB3cml0ZSgnIHNvbHV0aW9ucycpLCBubC4KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgTWFpbgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwptYWluIDotCgl3cml0ZSgnUGVudG9taW5vIFB1enpsZSAnKSwgbmwsCgl3cml0ZSgnICAgIFBsZWFzZSBzZWxlY3QgYSBib2FyZCBzaXplLicpLCBubCwKCXdyaXRlKCcgICAgMyA6IDMgKiAyMCcpLCBubCwKCXdyaXRlKCcgICAgNCA6IDQgKiAxNScpLCBubCwKCXdyaXRlKCcgICAgNSA6IDUgKiAxMicpLCBubCwKCXdyaXRlKCcgICAgNiA6IDYgKiAxMCcpLCBubCwKCXdyaXRlKCcgICAgOCA6IDggKiA4ICh3aXRoIDQgYmxhbmtzIGluIHRoZSBjZW50ZXIpJyksIG5sLAoJd3JpdGUoJ1BsZWFzZSBzZWxlY3QgYSBib2FyZCBzaXplIGluICgzLi44KS4nKSwgbmwsCgl3cml0ZSgnTnVtYmVyID0gJyksIAoJY3VycmVudF9vdXRwdXQoT3V0KSwKCWZsdXNoX291dHB1dChPdXQpLAoJcmVhZChYKSwKCXJlYWRfeW4oJ0FsbCBzb2x1dGlvbnMgKHkvbik/ICcsIEFsbCksCglyZWFkX3luKCdPdXRwdXQgKHkvbik/ICcsIE91dHB1dCksCglzdGF0aXN0aWNzKHJ1bnRpbWUsIF8pLAoJc29sdmVfcGVudChYLCBhbGwoQWxsKSwgb3V0cHV0KE91dHB1dCkpLAoJc3RhdGlzdGljcyhydW50aW1lLCBbXyxUXSksCgl3cml0ZSgnQ1BVIHRpbWUgPSAnKSwgd3JpdGUoVCksIHdyaXRlKCcgbXNlYycpLCBubC4KCnJlYWRfeW4oTWVzc2FnZSwgWU4pIDotCgl3cml0ZShNZXNzYWdlKSwKCWZsdXNoX291dHB1dCwKCXJlYWQoWCksCgkoWCA9PSAneScgLT4gWU4gPSB5ZXM7IFlOID0gbm8pLgoKc29sdmVfcGVudChYLCBhbGwoQWxsKSwgb3V0cHV0KE91dHB1dCkpIDotCglzb2x2ZV9wZW50b21pbm8oWCwgQm9hcmQpLAoJKE91dHB1dCA9PSB5ZXMgLT4gc2hvd19yZXN1bHQoQm9hcmQpLG5sOyB0cnVlKSwKCUFsbCA9PSBubywKCSEuCnNvbHZlX3BlbnQoXywgXywgXykuCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgyqO/9KTOpdql86XIpd+lzqTyx9vD1qS5pOsKICBzb2x2ZV9wZW50b21pbm8oWCwgQikKICAgIFggOiCl3KG8pcmkzr3Eyf0oudSkzr/0KQogICAgQiA6IKXcobylyaTOub3CpMLOCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCnNvbHZlX3BlbnRvbWlubyhYLCBCb2FyZCkgOi0KCXBlbnRfYm9hcmQoWCwgWSwgQm9hcmQpLAoJQ29sIGlzIFkrMiwgCglzZXRfeF9wZW50b21pbm8oWCwgWSwgQ29sLCBCb2FyZCwgWjAsIFopLAoJc29sdmVfcGVudChYLCBZLCBDb2wsIEJvYXJkKSwKCXJlbW92ZV9zeW1tZXRyeShaMCwgWikuCgpyZW1vdmVfc3ltbWV0cnkoWjAsIFopIDotCglub252YXIoWjApLCBub252YXIoWiksIAoJISwKCVowIEA9PCBaLgpyZW1vdmVfc3ltbWV0cnkoXywgXykuCgpzb2x2ZV9wZW50KFgsIFksIENvbCwgQm9hcmQpIDotCglnZXRfc2VhcmNoX2xpc3QoTGlzdCwgMSwgMSwgWCwgWSwgQ29sLCBCb2FyZCksCglQdHMgPSBbJ0YnLCdJJywnTCcsJ04nLCdQJywnVCcsJ1UnLCdWJywnVycsJ1knLCdaJ10sCglzb2x2ZV9wZW50MChQdHMsIExpc3QsIENvbCwgQm9hcmQpLgoKc29sdmVfcGVudDAoW10sIF8sIF8sIF8pIDotICEuCnNvbHZlX3BlbnQwKFB0cywgWyhOLCBFKXxMc10sIENvbCwgQm9hcmQpIDotCgl2YXIoRSksCgkhLAoJbm90X29uZV9zcGFjZShOLCBDb2wsIEJvYXJkKSwKCXBlbnRfc2VsZWN0KFAsIFB0cywgUHRzMSksCglwbGFjZV9wZW50KFAsIE4sIENvbCwgQm9hcmQpLAoJc29sdmVfcGVudDAoUHRzMSwgTHMsIENvbCwgQm9hcmQpLgpzb2x2ZV9wZW50MChQdHMsIFtffExzXSwgQ29sLCBCb2FyZCkgOi0KCXNvbHZlX3BlbnQwKFB0cywgTHMsIENvbCwgQm9hcmQpLgoKbm90X29uZV9zcGFjZShOLCBDb2wsIEIpIDotCgkoCgkgICAgTjEgaXMgTisxLCBhcmcoTjEsIEIsIFgxKSwgdmFyKFgxKQoJOwoJICAgIE4yIGlzIE4rQ29sLCBhcmcoTjIsIEIsIFgyKSwgdmFyKFgyKQoJKSwKCSEuCgpnZXRfc2VhcmNoX2xpc3QoW10sIEksIEosIFgsIFksIF8sIF8pIDotCglKID06PSBZKzEsIEkgPTo9IFgtMSwgCgkhLgpnZXRfc2VhcmNoX2xpc3QoTCwgSSwgSiwgWCwgWSwgQ29sLCBCKSA6LQoJSSA9Oj0gMCwgSiA9PCBYLAoJISwKCWdldF9zZWFyY2hfbGlzdChMLCBKLCAxLCBYLCBZLCBDb2wsIEIpLgpnZXRfc2VhcmNoX2xpc3QoTCwgSSwgSiwgWCwgWSwgQ29sLCBCKSA6LQoJSSA9Oj0gMCwgSiA+IFgsCgkhLAoJSjEgaXMgSi1YKzEsCglnZXRfc2VhcmNoX2xpc3QoTCwgWCwgSjEsIFgsIFksIENvbCwgQikuCmdldF9zZWFyY2hfbGlzdChMLCBJLCBKLCBYLCBZLCBDb2wsIEIpIDotCglKID06PSBZKzEsCgkhLAoJSjEgaXMgSSsyK1ktWCwKCWdldF9zZWFyY2hfbGlzdChMLCBYLCBKMSwgWCwgWSwgQ29sLCBCKS4KZ2V0X3NlYXJjaF9saXN0KFsoTixaKXxMc10sIEksIEosIFgsIFksIENvbCwgQikgOi0KCU4gaXMgQ29sKkkrSisxLAoJYXJnKE4sIEIsIFopLAogICAgICAgIHZhcihaKSwKICAgICAgICAhLAogICAgICAgIEkxIGlzIEktMSwKICAgICAgICBKMSBpcyBKKzEsCglnZXRfc2VhcmNoX2xpc3QoTHMsIEkxLCBKMSwgWCwgWSwgQ29sLCBCKS4KZ2V0X3NlYXJjaF9saXN0KEwsIEksIEosIFgsIFksIENvbCwgQikgOi0KICAgICAgICBJMSBpcyBJLTEsCiAgICAgICAgSjEgaXMgSisxLAoJZ2V0X3NlYXJjaF9saXN0KEwsIEkxLCBKMSwgWCwgWSwgQ29sLCBCKS4KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICBSZW1vdmUgU3ltbWV0cnkgYnkgdXNpbmcgWC1wZW50b21pbm8KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8Kc2V0X3hfcGVudG9taW5vKFgsIF8sIF8sIEJvYXJkLCBaMCwgWikgOi0KCVggPTo9IDMsICEsCgkoCgkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDEsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCAzLCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDMsIDIyLCBCb2FyZCwgWikKCTsKICAgIAkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDIsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCA0LCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDQsIDIyLCBCb2FyZCwgWikKCTsKICAgIAkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDMsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCA1LCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDUsIDIyLCBCb2FyZCwgWikKCTsKICAgIAkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDQsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCA2LCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDYsIDIyLCBCb2FyZCwgWikKCTsKICAgIAkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDUsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCA3LCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDcsIDIyLCBCb2FyZCwgWikKCTsKICAgIAkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDYsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCA4LCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDgsIDIyLCBCb2FyZCwgWikKCTsKICAgIAkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDcsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCA5LCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDksIDIyLCBCb2FyZCwgWikKCTsKICAgIAkgICAgcGxhY2VfcGVudCgnWCcsIDIsIDgsIDIyLCBCb2FyZCksCgkgICAgbG9va191cF9ib2FyZCgxLCAxMCwgMjIsIEJvYXJkLCBaMCksCgkgICAgbG9va191cF9ib2FyZCgzLCAxMCwgMjIsIEJvYXJkLCBaKQoJOwogICAgCSAgICBwbGFjZV9wZW50KCdYJywgMiwgOSwgMjIsIEJvYXJkKSwKCSAgICBsb29rX3VwX2JvYXJkKDEsIDExLCAyMiwgQm9hcmQsIFowKSwKCSAgICBsb29rX3VwX2JvYXJkKDMsIDExLCAyMiwgQm9hcmQsIFopCgkpLgoJCnNldF94X3BlbnRvbWlubyhYLCBfLCBfLCBCb2FyZCwgWjAsIFopIDotCglYID06PSA4LCAhLAoJKAoJICAgIHBsYWNlX3BlbnQoJ1gnLCAzLCAxLCAxMCwgQm9hcmQpCgk7CiAgICAJICAgIHBsYWNlX3BlbnQoJ1gnLCA0LCAxLCAxMCwgQm9hcmQpCgk7CiAgICAJICAgIHBsYWNlX3BlbnQoJ1gnLCAzLCAyLCAxMCwgQm9hcmQpLAoJICAgIGxvb2tfdXBfYm9hcmQoMiwgNCwgMTAsIEJvYXJkLCBaMCksCgkgICAgbG9va191cF9ib2FyZCg0LCAyLCAxMCwgQm9hcmQsIFopCgkpLgpzZXRfeF9wZW50b21pbm8oWCwgWSwgQ29sLCBCb2FyZCwgWjAsIFopIDotCgk0ID08IFgsIFggPTwgNiwgISwKCU0gaXMgKFgtMSkvLzIsCglOIGlzIChZLTEpLy8yLAoJZm9yKEowLCAxLCBOKSwKCSAgIGZvcihJMCwgMSwgTSksCgkgICAgSSBpcyBJMCsxLAoJICAgIEogaXMgSjAsCgkgICAgcGxhY2VfcGVudCgnWCcsIEksIEosIENvbCwgQm9hcmQpLAoJICAgICgKCQlYID06PSA1LCBJID06PSAzIC0+CgkJbG9va191cF9ib2FyZCgxLCBKLCBDb2wsIEJvYXJkLCBaMCksCgkJbG9va191cF9ib2FyZCg1LCBKLCBDb2wsIEJvYXJkLCBaKQoJICAgIDsKCQl0cnVlCgkgICAgKSwKCSAgICAoCgkJWCA9Oj0gNCwgSSA9Oj0gMiwgSiA9Oj0gNyAtPgoJCWxvb2tfdXBfYm9hcmQoMSwgNywgQ29sLCBCb2FyZCwgWjApLAoJCWxvb2tfdXBfYm9hcmQoMSwgOSwgQ29sLCBCb2FyZCwgWikKCSAgICA7CgkJdHJ1ZQoJICAgICkuCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgpdyhvKXJpM4oSaGiSinArsqspPLK1qS5CiAgbG9va191cF9ib2FyZChJLCBKLCBDb2wsIEIsIFgpCiAgICBJICA6ILnUyNa55gogICAgSiAgOiDO88jWueYKICAgIENvbDogzvOkzr/0KzIoKzKkz8rJpM6kv6ThyazN1ykKICAgIEIgIDogpdyhvKXJpM65vcKkws4KICAgIFggIDogpd6luQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAKbG9va191cF9ib2FyZChJLCBKLCBDb2wsIEIsIFgpIDotCglQIGlzIENvbCpJK0orMSwKCWFyZyhQLCBCLCBYKS4KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICCl3KG8pcmkzrruwK4KICBwZW50X2JvYXJkKEksIEosIEIpCiAgICBJIDogpdyhvKXJpM69xMn9KLnUpM6/9CkKICAgIEogOiCl3KG8pcmkzrKjyf0ozvOkzr/0KQogICAgQiA6IKXcobylyaTOub3CpMLOCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCnBlbnRfYm9hcmQoSSwgSiwgQm9hcmQpIDotIDMgPTwgSSwgSSA9PCA2LCAhLAoJSiBpcyA2MC8vSSwKCW1ha2VfYm9hcmQoSSwgSiwgQm9hcmQpLgoKcGVudF9ib2FyZChJLCBJLCBCb2FyZCkgOi0gSSA9PSA4LCAhLAoJbWFrZV9ib2FyZCg4LCA4LCBCb2FyZCksCglsb29rX3VwX2JvYXJkKDQsIDQsIDEwLCBCb2FyZCwgJyAnKSwKCWxvb2tfdXBfYm9hcmQoNCwgNSwgMTAsIEJvYXJkLCAnICcpLAoJbG9va191cF9ib2FyZCg1LCA0LCAxMCwgQm9hcmQsICcgJyksCglsb29rX3VwX2JvYXJkKDUsIDUsIDEwLCBCb2FyZCwgJyAnKS4KCm1ha2VfYm9hcmQoSSwgSiwgQm9hcmQpIDotCglNIGlzIEkrMiwgTiBpcyBKKzIsCglUb3RhbCBpcyBNKk4sCglmdW5jdG9yKEJvYXJkLCBiLCBUb3RhbCksIAoJZnJhbWUoMSwgMSwgTSwgTiwgQm9hcmQpLgoKZnJhbWUoXywgSiwgXywgTiwgXykgOi0gSiA+IE4sICEuCmZyYW1lKEksIEosIE0sIE4sIEJvYXJkKSA6LSBJID4gTSwgISwKCUoxIGlzIEorMSwKCWZyYW1lKDEsIEoxLCBNLCBOLCBCb2FyZCkuCmZyYW1lKEksIEosIE0sIE4sIEJvYXJkKSA6LSAKCShJID06PSAxIDsgSSA9Oj0gTSA7IEogPTo9IDEgOyBKID06PSBOKSwKCSAhLAoJIEwgaXMgKEktMSkqTitKLAoJIGFyZyhMLCBCb2FyZCwgJyonKSwKCSBJMSBpcyBJKzEsCgkgSjEgaXMgSiwKCSBmcmFtZShJMSwgSjEsIE0sIE4sIEJvYXJkKS4KZnJhbWUoSSwgSiwgTSwgTiwgQm9hcmQpIDotIAoJSTEgaXMgSSsxLAoJSjEgaXMgSiwKCWZyYW1lKEkxLCBKMSwgTSwgTiwgQm9hcmQpLgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogIKXcobylyaTOyb28qAogIHNob3dfcmVzdWx0KEIpCiAgICBCIDogpdyhvKXJpM65vcKkws4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8Kc2hvd19yZXN1bHQoQikgOi0KCWJvYXJkX3NpemUoQiwgSCwgVyksCglDb2wgaXMgVysyLCAKCWZvcihJLCAxLCBIKSwKCW5sLAoJICAgZm9yKEosIDEsIFcpLAoJICAgbG9va191cF9ib2FyZChJLCBKLCBDb2wsIEIsIFApLAoJICAgd3JpdGVfcGVudChQKSwKICAgICAgICBmYWlsLgpzaG93X3Jlc3VsdChfKSA6LSBubC4KCndyaXRlX3BlbnQoUCkgOi0gdmFyKFApLCAhLCB3cml0ZSgnXyAnKS4Kd3JpdGVfcGVudChQKSA6LSB3cml0ZShQKSwgd3JpdGUoJyAnKS4KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICCl3KG8pcmkzqW1paSlugogIGJvYXJkX3NpemUoQiwgSCwgVykKICAgIEIgOiCl3KG8pcmkzrm9wqTCzgogICAgSCA6IKXcobylyaTOvcTJ/QogICAgVyA6IKXcobylyaTOsqPJ/QoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpib2FyZF9zaXplKEIsIEgsIFcpIDotIAoJYm9hcmRfd2lkdGgoQiwgVyksCglib2FyZF9oZWlnaHQoVywgSCkuCgpib2FyZF93aWR0aChCLCBXKSA6LSAKCWNvdW50X2ZsYW1lKEIsIDEsIFcpLgoKY291bnRfZmxhbWUoQiwgTiwgVykgOi0gCglhcmcoTiwgQiwgUCksIFAgPT0gJyonLAoJISwKCU4xIGlzIE4rMSwKCWNvdW50X2ZsYW1lKEIsIE4xLCBXKS4KY291bnRfZmxhbWUoXywgTiwgVykgOi0KCVcgaXMgTi00LgoKYm9hcmRfaGVpZ2h0KFcsIEgpIDotCgkxMCA9PCBXLCBXID08IDIwLAoJISwKCUggaXMgNjAvL1cuCmJvYXJkX2hlaWdodCg4LCA4KS4KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICCl2qXzpcil36XOpPKjsaTEx9vD1qS5pOsKICBwbGFjZV9wZW50KFAsIEksIEosIENvbCwgQikKICAgIFAgIDogpdql86XIpd+lzqTOvO/O4My+CiAgICBJICA6ILnUyNa55gogICAgSiAgOiDO88jWueYKICAgIENvbDogzvOkzr/0KzIoKzKkz8rJpM6kv6ThyazN1ykKICAgIEIgIDogpdyhvKXJpM65vcKkws4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8JCnBsYWNlX3BlbnQoUCwgSSwgSiwgQ29sLCBCKSA6LQoJQyBpcyBDb2wqSStKKzEsCgkhLAoJcGxhY2VfcGVudChQLCBDLCBDb2wsIEIpLgoKJSBQZW50bWlubyA9ICdYJwolIE51bWJlciA9IDEKJSAgIEQKJSBDIEUgRwolICAgRgpwbGFjZV9wZW50KCdYJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1gnKSwKCUQgaXMgQy1Db2wrMSwKCWFyZyhELCBCb2FyZCwgJ1gnKSwJCglFIGlzIEMrMSwKCWFyZyhFLCBCb2FyZCwgJ1gnKSwKCUYgaXMgRStDb2wsCglhcmcoRiwgQm9hcmQsICdYJyksCglHIGlzIEUrMSwKCWFyZyhHLCBCb2FyZCwgJ1gnKS4KJSBQZW50bWlubyA9ICdGJwolIE51bWJlciA9IDEKJSAgIEQgRgolIEMgRSAKJSAgIEcKcGxhY2VfcGVudCgnRicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdGJyksCglEIGlzIEMtQ29sKzEsCglhcmcoRCwgQm9hcmQsICdGJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdGJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ0YnKSwKCUcgaXMgRStDb2wsCglhcmcoRywgQm9hcmQsICdGJykuCiUgUGVudG1pbm8gPSAnRicKJSBOdW1iZXIgPSAyCiUgICBECiUgQyBFIEYKJSAgICAgRwpwbGFjZV9wZW50KCdGJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ0YnKSwKCUQgaXMgQy1Db2wrMSwKCWFyZyhELCBCb2FyZCwgJ0YnKSwJCglFIGlzIEMrMSwKCWFyZyhFLCBCb2FyZCwgJ0YnKSwKCUYgaXMgRSsxLAoJYXJnKEYsIEJvYXJkLCAnRicpLAoJRyBpcyBGK0NvbCwKCWFyZyhHLCBCb2FyZCwgJ0YnKS4KJSBQZW50bWlubyA9ICdGJwolIE51bWJlciA9IDMKJSAgIEMKJSAgIEUgRwolIEQgRiAKcGxhY2VfcGVudCgnRicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdGJyksCglEIGlzIEMrKDIqQ29sKS0xLAoJYXJnKEQsIEJvYXJkLCAnRicpLAkKCUUgaXMgQytDb2wsCglhcmcoRSwgQm9hcmQsICdGJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ0YnKSwKCUcgaXMgRSsxLAoJYXJnKEcsIEJvYXJkLCAnRicpLgolIFBlbnRtaW5vID0gJ0YnCiUgTnVtYmVyID0gNAolIEMKJSBEIEUgRwolICAgRgpwbGFjZV9wZW50KCdGJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ0YnKSwKCUQgaXMgQytDb2wsCglhcmcoRCwgQm9hcmQsICdGJyksCQoJRSBpcyBEKzEsCglhcmcoRSwgQm9hcmQsICdGJyksCglGIGlzIEUrQ29sLAoJYXJnKEYsIEJvYXJkLCAnRicpLAoJRyBpcyBFKzEsCglhcmcoRywgQm9hcmQsICdGJykuCiUgUGVudG1pbm8gPSAnRicKJSBOdW1iZXIgPSA1CiUgQyBECiUgICBFIEcKJSAgIEYKcGxhY2VfcGVudCgnRicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdGJyksCglEIGlzIEMrMSwKCWFyZyhELCBCb2FyZCwgJ0YnKSwJCglFIGlzIEQrQ29sLAoJYXJnKEUsIEJvYXJkLCAnRicpLAoJRiBpcyBFK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ0YnKSwKCUcgaXMgRSsxLAoJYXJnKEcsIEJvYXJkLCAnRicpLgolIFBlbnRtaW5vID0gJ0YnCiUgTnVtYmVyID0gNgolICAgICBFCiUgQyBEIEcKJSAgIEYKcGxhY2VfcGVudCgnRicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdGJyksCglEIGlzIEMrMSwKCWFyZyhELCBCb2FyZCwgJ0YnKSwJCglFIGlzIEMtQ29sKzIsCglhcmcoRSwgQm9hcmQsICdGJyksCglGIGlzIEQrQ29sLAoJYXJnKEYsIEJvYXJkLCAnRicpLAoJRyBpcyBEKzEsCglhcmcoRywgQm9hcmQsICdGJykuCiUgUGVudG1pbm8gPSAnRicKJSBOdW1iZXIgPSA3CiUgICBECiUgQyBFCiUgICBGIEcKcGxhY2VfcGVudCgnRicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdGJyksCglEIGlzIEMtQ29sKzEsCglhcmcoRCwgQm9hcmQsICdGJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdGJyksCglGIGlzIEUrQ29sLAoJYXJnKEYsIEJvYXJkLCAnRicpLAoJRyBpcyBGKzEsCglhcmcoRywgQm9hcmQsICdGJykuCiUgUGVudG1pbm8gPSAnRicKJSBOdW1iZXIgPSA4CiUgICBECiUgQyBGIEcKJSBFCnBsYWNlX3BlbnQoJ0YnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnRicpLAoJRCBpcyBDLUNvbCsxLAoJYXJnKEQsIEJvYXJkLCAnRicpLAkKCUUgaXMgQytDb2wsCglhcmcoRSwgQm9hcmQsICdGJyksCglGIGlzIEMrMSwKCWFyZyhGLCBCb2FyZCwgJ0YnKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnRicpLgolIFBlbnRtaW5vID0gJ0knCiUgTnVtYmVyID0gMQolIEMKJSBECiUgRQolIEYKJSBHCnBsYWNlX3BlbnQoJ0knLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnSScpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ0knKSwJCglFIGlzIEQrQ29sLAoJYXJnKEUsIEJvYXJkLCAnSScpLAoJRiBpcyBFK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ0knKSwKCUcgaXMgRitDb2wsCglhcmcoRywgQm9hcmQsICdJJykuCiUgUGVudG1pbm8gPSAnSScKJSBOdW1iZXIgPSAyCiUgQyBEIEUgRiBHCnBsYWNlX3BlbnQoJ0knLCBDLCBfLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ0knKSwKCUQgaXMgQysxLAoJYXJnKEQsIEJvYXJkLCAnSScpLAkKCUUgaXMgRCsxLAoJYXJnKEUsIEJvYXJkLCAnSScpLAoJRiBpcyBFKzEsCglhcmcoRiwgQm9hcmQsICdJJyksCglHIGlzIEYrMSwKCWFyZyhHLCBCb2FyZCwgJ0knKS4KJSBQZW50bWlubyA9ICdMJwolIE51bWJlciA9IDEKJSBDIAolIEQKJSBFIAolIEYgRyAKcGxhY2VfcGVudCgnTCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdMJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnTCcpLAkKCUUgaXMgRCtDb2wsCglhcmcoRSwgQm9hcmQsICdMJyksCglGIGlzIEUrQ29sLAoJYXJnKEYsIEJvYXJkLCAnTCcpLAoJRyBpcyBGKzEsCglhcmcoRywgQm9hcmQsICdMJykuCiUgUGVudG1pbm8gPSAnTCcKJSBOdW1iZXIgPSAyCiUgQyBFIEYgRwolIEQKcGxhY2VfcGVudCgnTCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdMJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnTCcpLAkKCUUgaXMgQysxLAoJYXJnKEUsIEJvYXJkLCAnTCcpLAoJRiBpcyBFKzEsCglhcmcoRiwgQm9hcmQsICdMJyksCglHIGlzIEYrMSwKCWFyZyhHLCBCb2FyZCwgJ0wnKS4KJSBQZW50bWlubyA9ICdMJwolIE51bWJlciA9IDMKJSBDIEQKJSAgIEUKJSAgIEYKJSAgIEcKcGxhY2VfcGVudCgnTCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdMJyksCglEIGlzIEMrMSwKCWFyZyhELCBCb2FyZCwgJ0wnKSwJCglFIGlzIEQrQ29sLAoJYXJnKEUsIEJvYXJkLCAnTCcpLAoJRiBpcyBFK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ0wnKSwKCUcgaXMgRitDb2wsCglhcmcoRywgQm9hcmQsICdMJykuCiUgUGVudG1pbm8gPSAnTCcKJSBOdW1iZXIgPSA0CiUgICAgICAgRgolIEMgRCBFIEcKcGxhY2VfcGVudCgnTCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdMJyksCglEIGlzIEMrMSwKCWFyZyhELCBCb2FyZCwgJ0wnKSwJCglFIGlzIEQrMSwKCWFyZyhFLCBCb2FyZCwgJ0wnKSwKCUYgaXMgRS1Db2wrMSwKCWFyZyhGLCBCb2FyZCwgJ0wnKSwKCUcgaXMgRSsxLAoJYXJnKEcsIEJvYXJkLCAnTCcpLgolIFBlbnRtaW5vID0gJ0wnCiUgTnVtYmVyID0gNQolICAgQwolICAgRAolICAgRiAgCiUgRSBHCnBsYWNlX3BlbnQoJ0wnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnTCcpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ0wnKSwJCglFIGlzIEQrKDIqQ29sKS0xLAoJYXJnKEUsIEJvYXJkLCAnTCcpLAoJRiBpcyBEK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ0wnKSwKCUcgaXMgRSsxLAoJYXJnKEcsIEJvYXJkLCAnTCcpLgolIFBlbnRtaW5vID0gJ0wnCiUgTnVtYmVyID0gNgolIEMKJSBEIEUgRiBHCnBsYWNlX3BlbnQoJ0wnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnTCcpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ0wnKSwJCglFIGlzIEQrMSwKCWFyZyhFLCBCb2FyZCwgJ0wnKSwKCUYgaXMgRSsxLAoJYXJnKEYsIEJvYXJkLCAnTCcpLAoJRyBpcyBGKzEsCglhcmcoRywgQm9hcmQsICdMJykuCiUgUGVudG1pbm8gPSAnTCcKJSBOdW1iZXIgPSA3CiUgQyBFCiUgRAolIEYgCiUgRwpwbGFjZV9wZW50KCdMJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ0wnKSwKCUQgaXMgQytDb2wsCglhcmcoRCwgQm9hcmQsICdMJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdMJyksCglGIGlzIEQrQ29sLAoJYXJnKEYsIEJvYXJkLCAnTCcpLAoJRyBpcyBGK0NvbCwKCWFyZyhHLCBCb2FyZCwgJ0wnKS4KJSBQZW50bWlubyA9ICdMJwolIE51bWJlciA9IDgKJSBDIEQgRSBGCiUgICAgICAgRwpwbGFjZV9wZW50KCdMJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ0wnKSwKCUQgaXMgQysxLAoJYXJnKEQsIEJvYXJkLCAnTCcpLAkKCUUgaXMgRCsxLAoJYXJnKEUsIEJvYXJkLCAnTCcpLAoJRiBpcyBFKzEsCglhcmcoRiwgQm9hcmQsICdMJyksCglHIGlzIEYrQ29sLAoJYXJnKEcsIEJvYXJkLCAnTCcpLgolIFBlbnRtaW5vID0gJ04nCiUgTnVtYmVyID0gMQolIEMKJSBECiUgRSBGCiUgICBHCnBsYWNlX3BlbnQoJ04nLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnTicpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ04nKSwJCglFIGlzIEQrQ29sLAoJYXJnKEUsIEJvYXJkLCAnTicpLAoJRiBpcyBFKzEsCglhcmcoRiwgQm9hcmQsICdOJyksCglHIGlzIEYrQ29sLAoJYXJnKEcsIEJvYXJkLCAnTicpLgolIFBlbnRtaW5vID0gJ04nCiUgTnVtYmVyID0gMgolICAgRCBGIEcKJSBDIEUKcGxhY2VfcGVudCgnTicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdOJyksCglEIGlzIEMtQ29sKzEsCglhcmcoRCwgQm9hcmQsICdOJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdOJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ04nKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnTicpLgolIFBlbnRtaW5vID0gJ04nCiUgTnVtYmVyID0gMwolIEMKJSBEIEUKJSAgIEYKJSAgIEcKcGxhY2VfcGVudCgnTicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdOJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnTicpLAkKCUUgaXMgRCsxLAoJYXJnKEUsIEJvYXJkLCAnTicpLAoJRiBpcyBFK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ04nKSwKCUcgaXMgRitDb2wsCglhcmcoRywgQm9hcmQsICdOJykuCiUgUGVudG1pbm8gPSAnTicKJSBOdW1iZXIgPSA0CiUgICAgICBFIEcKJSAgQyBEIEYKcGxhY2VfcGVudCgnTicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdOJyksCglEIGlzIEMrMSwKCWFyZyhELCBCb2FyZCwgJ04nKSwJCglFIGlzIEMtQ29sKzIsCglhcmcoRSwgQm9hcmQsICdOJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ04nKSwKCUcgaXMgRSsxLAoJYXJnKEcsIEJvYXJkLCAnTicpLgolIFBlbnRtaW5vID0gJ04nCiUgTnVtYmVyID0gNQolICAgQwolICAgRQolIEQgRwolIEYKcGxhY2VfcGVudCgnTicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdOJyksCglEIGlzIEMrKDIqQ29sKS0xLAoJYXJnKEQsIEJvYXJkLCAnTicpLAkKCUUgaXMgQytDb2wsCglhcmcoRSwgQm9hcmQsICdOJyksCglGIGlzIEQrQ29sLAoJYXJnKEYsIEJvYXJkLCAnTicpLAoJRyBpcyBEKzEsCglhcmcoRywgQm9hcmQsICdOJykuCiUgUGVudG1pbm8gPSAnTicKJSBOdW1iZXIgPSA2CiUgQyBECiUgICBFIEYgRwpwbGFjZV9wZW50KCdOJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ04nKSwKCUQgaXMgQysxLAoJYXJnKEQsIEJvYXJkLCAnTicpLAkKCUUgaXMgRCtDb2wsCglhcmcoRSwgQm9hcmQsICdOJyksCglGIGlzIEUrMSwKCWFyZyhGLCBCb2FyZCwgJ04nKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnTicpLgolIFBlbnRtaW5vID0gJ04nCiUgTnVtYmVyID0gNwolICAgRAolIEMgRgolIEUKJSBHCnBsYWNlX3BlbnQoJ04nLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnTicpLAoJRCBpcyBDLUNvbCsxLAoJYXJnKEQsIEJvYXJkLCAnTicpLAkKCUUgaXMgQytDb2wsCglhcmcoRSwgQm9hcmQsICdOJyksCglGIGlzIEMrMSwKCWFyZyhGLCBCb2FyZCwgJ04nKSwKCUcgaXMgRStDb2wsCglhcmcoRywgQm9hcmQsICdOJykuCiUgUGVudG1pbm8gPSAnTicKJSBOdW1iZXIgPSA4CiUgQyBEIEUgCiUgICAgIEYgRwpwbGFjZV9wZW50KCdOJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ04nKSwKCUQgaXMgQysxLAoJYXJnKEQsIEJvYXJkLCAnTicpLAkKCUUgaXMgRCsxLAoJYXJnKEUsIEJvYXJkLCAnTicpLAoJRiBpcyBFK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ04nKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnTicpLgolIFBlbnRtaW5vID0gJ1AnCiUgTnVtYmVyID0gMQolIEMgRQolIEQgRwolIEYKcGxhY2VfcGVudCgnUCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdQJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnUCcpLAkKCUUgaXMgQysxLAoJYXJnKEUsIEJvYXJkLCAnUCcpLAoJRiBpcyBEK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ1AnKSwKCUcgaXMgRCsxLAoJYXJnKEcsIEJvYXJkLCAnUCcpLgolIFBlbnRtaW5vID0gJ1AnCiUgTnVtYmVyID0gMgolIEMgRCBGCiUgICBFIEcKcGxhY2VfcGVudCgnUCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdQJyksCglEIGlzIEMrMSwKCWFyZyhELCBCb2FyZCwgJ1AnKSwJCglFIGlzIEQrQ29sLAoJYXJnKEUsIEJvYXJkLCAnUCcpLAoJRiBpcyBEKzEsCglhcmcoRiwgQm9hcmQsICdQJyksCglHIGlzIEUrMSwKCWFyZyhHLCBCb2FyZCwgJ1AnKS4KJSBQZW50bWlubyA9ICdQJwolIE51bWJlciA9IDMKJSAgIEQKJSBDIEYKJSBFIEcKcGxhY2VfcGVudCgnUCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdQJyksCglEIGlzIEMtKENvbC0xKSwKCWFyZyhELCBCb2FyZCwgJ1AnKSwJCglFIGlzIEMrQ29sLAoJYXJnKEUsIEJvYXJkLCAnUCcpLAoJRiBpcyBDKzEsCglhcmcoRiwgQm9hcmQsICdQJyksCglHIGlzIEUrMSwKCWFyZyhHLCBCb2FyZCwgJ1AnKS4KJSBQZW50bWlubyA9ICdQJwolIE51bWJlciA9IDQKJSBDIEUKJSBEIEYgRwpwbGFjZV9wZW50KCdQJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1AnKSwKCUQgaXMgQytDb2wsCglhcmcoRCwgQm9hcmQsICdQJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdQJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ1AnKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnUCcpLgolIFBlbnRtaW5vID0gJ1AnCiUgTnVtYmVyID0gNQolIEMgRQolIEQgRgolICAgRwpwbGFjZV9wZW50KCdQJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1AnKSwKCUQgaXMgQytDb2wsCglhcmcoRCwgQm9hcmQsICdQJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdQJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ1AnKSwKCUcgaXMgRitDb2wsCglhcmcoRywgQm9hcmQsICdQJykuCiUgUGVudG1pbm8gPSAnUCcKJSBOdW1iZXIgPSA2CiUgICBEIEYKJSBDIEUgRwpwbGFjZV9wZW50KCdQJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1AnKSwKCUQgaXMgQy0oQ29sLTEpLAoJYXJnKEQsIEJvYXJkLCAnUCcpLAkKCUUgaXMgQysxLAoJYXJnKEUsIEJvYXJkLCAnUCcpLAoJRiBpcyBEKzEsCglhcmcoRiwgQm9hcmQsICdQJyksCglHIGlzIEUrMSwKCWFyZyhHLCBCb2FyZCwgJ1AnKS4KJSBQZW50bWlubyA9ICdQJwolIE51bWJlciA9IDcKJSBDIAolIEQgRgolIEUgRwpwbGFjZV9wZW50KCdQJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1AnKSwKCUQgaXMgQytDb2wsCglhcmcoRCwgQm9hcmQsICdQJyksCQoJRSBpcyBEK0NvbCwKCWFyZyhFLCBCb2FyZCwgJ1AnKSwKCUYgaXMgRCsxLAoJYXJnKEYsIEJvYXJkLCAnUCcpLAoJRyBpcyBFKzEsCglhcmcoRywgQm9hcmQsICdQJykuCiUgUGVudG1pbm8gPSAnUCcKJSBOdW1iZXIgPSA4CiUgQyBFIEcKJSBEIEYKcGxhY2VfcGVudCgnUCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdQJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnUCcpLAkKCUUgaXMgQysxLAoJYXJnKEUsIEJvYXJkLCAnUCcpLAoJRiBpcyBEKzEsCglhcmcoRiwgQm9hcmQsICdQJyksCglHIGlzIEUrMSwKCWFyZyhHLCBCb2FyZCwgJ1AnKS4KJSBQZW50bWlubyA9ICdUJwolIE51bWJlciA9IDEKJSBDIEQgRgolICAgRQolICAgRwpwbGFjZV9wZW50KCdUJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1QnKSwKCUQgaXMgQysxLAoJYXJnKEQsIEJvYXJkLCAnVCcpLAkKCUUgaXMgRCtDb2wsCglhcmcoRSwgQm9hcmQsICdUJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ1QnKSwKCUcgaXMgRStDb2wsCglhcmcoRywgQm9hcmQsICdUJykuCiUgUGVudG1pbm8gPSAnVCcKJSBOdW1iZXIgPSAyCiUgICAgIEUKJSBDIEQgRgolICAgICBHCnBsYWNlX3BlbnQoJ1QnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVCcpLAoJRCBpcyBDKzEsCglhcmcoRCwgQm9hcmQsICdUJyksCQoJRSBpcyBDLShDb2wtMiksCglhcmcoRSwgQm9hcmQsICdUJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ1QnKSwKCUcgaXMgRitDb2wsCglhcmcoRywgQm9hcmQsICdUJykuCiUgUGVudG1pbm8gPSAnVCcKJSBOdW1iZXIgPSAzCiUgICBDCiUgICBFCiUgRCBGIEcKcGxhY2VfcGVudCgnVCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdUJyksCglEIGlzIEMrKENvbCoyKS0xLAoJYXJnKEQsIEJvYXJkLCAnVCcpLAkKCUUgaXMgQytDb2wsCglhcmcoRSwgQm9hcmQsICdUJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ1QnKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnVCcpLgolIFBlbnRtaW5vID0gJ1QnCiUgTnVtYmVyID0gNAolIEMKJSBEIEYgRwolIEUKcGxhY2VfcGVudCgnVCcsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdUJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnVCcpLAkKCUUgaXMgRCtDb2wsCglhcmcoRSwgQm9hcmQsICdUJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ1QnKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnVCcpLgolIFBlbnRtaW5vID0gJ1UnCiUgTnVtYmVyID0gMQolIEMgICBGCiUgRCBFIEcKcGxhY2VfcGVudCgnVScsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdVJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnVScpLAkKCUUgaXMgRCsxLAoJYXJnKEUsIEJvYXJkLCAnVScpLAoJRiBpcyBDKzIsCglhcmcoRiwgQm9hcmQsICdVJyksCglHIGlzIEUrMSwKCWFyZyhHLCBCb2FyZCwgJ1UnKS4KJSBQZW50bWlubyA9ICdVJwolIE51bWJlciA9IDIKJSBDIEUKJSBECiUgRiBHCnBsYWNlX3BlbnQoJ1UnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVScpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ1UnKSwJCglFIGlzIEMrMSwKCWFyZyhFLCBCb2FyZCwgJ1UnKSwKCUYgaXMgRCtDb2wsCglhcmcoRiwgQm9hcmQsICdVJyksCglHIGlzIEYrMSwKCWFyZyhHLCBCb2FyZCwgJ1UnKS4KJSBQZW50bWlubyA9ICdVJwolIE51bWJlciA9IDMKJSBDIEUgRgolIEQgICBHCnBsYWNlX3BlbnQoJ1UnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVScpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ1UnKSwJCglFIGlzIEMrMSwKCWFyZyhFLCBCb2FyZCwgJ1UnKSwKCUYgaXMgRSsxLAoJYXJnKEYsIEJvYXJkLCAnVScpLAoJRyBpcyBEKzIsCglhcmcoRywgQm9hcmQsICdVJykuCiUgUGVudG1pbm8gPSAnVScKJSBOdW1iZXIgPSA0CiUgQyBECiUgICBGCiUgRSBHCnBsYWNlX3BlbnQoJ1UnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVScpLAoJRCBpcyBDKzEsCglhcmcoRCwgQm9hcmQsICdVJyksCQoJRSBpcyBDKygyKkNvbCksCglhcmcoRSwgQm9hcmQsICdVJyksCglGIGlzIEQrQ29sLAoJYXJnKEYsIEJvYXJkLCAnVScpLAoJRyBpcyBFKzEsCglhcmcoRywgQm9hcmQsICdVJykuCiUgUGVudG1pbm8gPSAnVicKJSBOdW1iZXIgPSAxCiUgQyAKJSBECiUgRSBGIEcKcGxhY2VfcGVudCgnVicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdWJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnVicpLAkKCUUgaXMgRCtDb2wsCglhcmcoRSwgQm9hcmQsICdWJyksCglGIGlzIEUrMSwKCWFyZyhGLCBCb2FyZCwgJ1YnKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnVicpLgolIFBlbnRtaW5vID0gJ1YnCiUgTnVtYmVyID0gMgolIEMgRSBHCiUgRAolIEYKcGxhY2VfcGVudCgnVicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdWJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnVicpLAkKCUUgaXMgQysxLAoJYXJnKEUsIEJvYXJkLCAnVicpLAoJRiBpcyBEK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ1YnKSwKCUcgaXMgRSsxLAoJYXJnKEcsIEJvYXJkLCAnVicpLgolIFBlbnRtaW5vID0gJ1YnCiUgTnVtYmVyID0gMwolIEMgRCBFCiUgICAgIEYKJSAgICAgRwpwbGFjZV9wZW50KCdWJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1YnKSwKCUQgaXMgQysxLAoJYXJnKEQsIEJvYXJkLCAnVicpLAkKCUUgaXMgRCsxLAoJYXJnKEUsIEJvYXJkLCAnVicpLAoJRiBpcyBFK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ1YnKSwKCUcgaXMgRitDb2wsCglhcmcoRywgQm9hcmQsICdWJykuCiUgUGVudG1pbm8gPSAnVicKJSBOdW1iZXIgPSA0CiUgICAgIEQKJSAgICAgRgolIEMgRSBHCnBsYWNlX3BlbnQoJ1YnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVicpLAoJRCBpcyBDLSgyKkNvbCkrMiwKCUQgPiAwLCAgICUlJSAgYXJnLzMgpM7C6LDssPq/9KSsyemkzr/0pMukyqTppMqkpKS/pOHJrM3XCglhcmcoRCwgQm9hcmQsICdWJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdWJyksCglGIGlzIEQrQ29sLAoJYXJnKEYsIEJvYXJkLCAnVicpLAoJRyBpcyBFKzEsCglhcmcoRywgQm9hcmQsICdWJykuCiUgUGVudG1pbm8gPSAnVycKJSBOdW1iZXIgPSAxCiUgQwolIEQgRQolICAgRiBHCnBsYWNlX3BlbnQoJ1cnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVycpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ1cnKSwJCglFIGlzIEQrMSwKCWFyZyhFLCBCb2FyZCwgJ1cnKSwKCUYgaXMgRStDb2wsCglhcmcoRiwgQm9hcmQsICdXJyksCglHIGlzIEYrMSwKCWFyZyhHLCBCb2FyZCwgJ1cnKS4KJSBQZW50bWlubyA9ICdXJwolIE51bWJlciA9IDIKJSAgIEQgRwolIEMgRgolIEUKcGxhY2VfcGVudCgnVycsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdXJyksCglEIGlzIEMtKENvbC0xKSwKCWFyZyhELCBCb2FyZCwgJ1cnKSwJCglFIGlzIEMrQ29sLAoJYXJnKEUsIEJvYXJkLCAnVycpLAoJRiBpcyBDKzEsCglhcmcoRiwgQm9hcmQsICdXJyksCglHIGlzIEQrMSwKCWFyZyhHLCBCb2FyZCwgJ1cnKS4KJSBQZW50bWlubyA9ICdXJwolIE51bWJlciA9IDMKJSBDIEQKJSAgIEUgRgolICAgICBHCnBsYWNlX3BlbnQoJ1cnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVycpLAoJRCBpcyBDKzEsCglhcmcoRCwgQm9hcmQsICdXJyksCQoJRSBpcyBEK0NvbCwKCWFyZyhFLCBCb2FyZCwgJ1cnKSwKCUYgaXMgRSsxLAoJYXJnKEYsIEJvYXJkLCAnVycpLAoJRyBpcyBGK0NvbCwKCWFyZyhHLCBCb2FyZCwgJ1cnKS4KJSBQZW50bWlubyA9ICdXJwolIE51bWJlciA9IDQKJSAgICAgRQolICAgRCBHCiUgQyBGCnBsYWNlX3BlbnQoJ1cnLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnVycpLAoJRCBpcyBDLShDb2wtMSksCglhcmcoRCwgQm9hcmQsICdXJyksCQoJRSBpcyBELShDb2wtMSksCglhcmcoRSwgQm9hcmQsICdXJyksCglGIGlzIEMrMSwKCWFyZyhGLCBCb2FyZCwgJ1cnKSwKCUcgaXMgRCsxLAoJYXJnKEcsIEJvYXJkLCAnVycpLgolIFBlbnRtaW5vID0gJ1knCiUgTnVtYmVyID0gMQolICAgICBFCiUgQyBEIEYgRwpwbGFjZV9wZW50KCdZJywgQywgQ29sLCBCb2FyZCkgOi0KCWFyZyhDLCBCb2FyZCwgJ1knKSwKCUQgaXMgQysxLAoJYXJnKEQsIEJvYXJkLCAnWScpLAkKCUUgaXMgQy0oQ29sLTIpLAoJYXJnKEUsIEJvYXJkLCAnWScpLAoJRiBpcyBEKzEsCglhcmcoRiwgQm9hcmQsICdZJyksCglHIGlzIEYrMSwKCWFyZyhHLCBCb2FyZCwgJ1knKS4KJSBQZW50bWlubyA9ICdZJwolIE51bWJlciA9IDIKJSBDCiUgRAolIEUgRwolIEYKcGxhY2VfcGVudCgnWScsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdZJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnWScpLAkKCUUgaXMgRCtDb2wsCglhcmcoRSwgQm9hcmQsICdZJyksCglGIGlzIEUrQ29sLAoJYXJnKEYsIEJvYXJkLCAnWScpLAoJRyBpcyBFKzEsCglhcmcoRywgQm9hcmQsICdZJykuCiUgUGVudG1pbm8gPSAnWScKJSBOdW1iZXIgPSAzCiUgQyBEIEYgRyAKJSAgIEUgCnBsYWNlX3BlbnQoJ1knLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnWScpLAoJRCBpcyBDKzEsCglhcmcoRCwgQm9hcmQsICdZJyksCQoJRSBpcyBEK0NvbCwKCWFyZyhFLCBCb2FyZCwgJ1knKSwKCUYgaXMgRCsxLAoJYXJnKEYsIEJvYXJkLCAnWScpLAoJRyBpcyBGKzEsCglhcmcoRywgQm9hcmQsICdZJykuCiUgUGVudG1pbm8gPSAnWScKJSBOdW1iZXIgPSA0CiUgICBECiUgQyBFCiUgICBGCiUgICBHCnBsYWNlX3BlbnQoJ1knLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnWScpLAoJRCBpcyBDLShDb2wtMSksCglhcmcoRCwgQm9hcmQsICdZJyksCQoJRSBpcyBDKzEsCglhcmcoRSwgQm9hcmQsICdZJyksCglGIGlzIEUrQ29sLAoJYXJnKEYsIEJvYXJkLCAnWScpLAoJRyBpcyBGK0NvbCwKCWFyZyhHLCBCb2FyZCwgJ1knKS4KJSBQZW50bWlubyA9ICdZJwolIE51bWJlciA9IDUKJSBDCiUgRCBGCiUgRQolIEcKcGxhY2VfcGVudCgnWScsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdZJyksCglEIGlzIEMrQ29sLAoJYXJnKEQsIEJvYXJkLCAnWScpLAkKCUUgaXMgRCtDb2wsCglhcmcoRSwgQm9hcmQsICdZJyksCglGIGlzIEQrMSwKCWFyZyhGLCBCb2FyZCwgJ1knKSwKCUcgaXMgRStDb2wsCglhcmcoRywgQm9hcmQsICdZJykuCiUgUGVudG1pbm8gPSAnWScKJSBOdW1iZXIgPSA2CiUgQyBEIEUgRwolICAgICBGCnBsYWNlX3BlbnQoJ1knLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnWScpLAoJRCBpcyBDKzEsCglhcmcoRCwgQm9hcmQsICdZJyksCQoJRSBpcyBEKzEsCglhcmcoRSwgQm9hcmQsICdZJyksCglGIGlzIEUrQ29sLAoJYXJnKEYsIEJvYXJkLCAnWScpLAoJRyBpcyBFKzEsCglhcmcoRywgQm9hcmQsICdZJykuCiUgUGVudG1pbm8gPSAnWScKJSBOdW1iZXIgPSA3CiUgICBDCiUgICBFCiUgRCBGCiUgICBHCnBsYWNlX3BlbnQoJ1knLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnWScpLAoJRCBpcyBDKygyKkNvbCktMSwKCWFyZyhELCBCb2FyZCwgJ1knKSwJCglFIGlzIEMrQ29sLAoJYXJnKEUsIEJvYXJkLCAnWScpLAoJRiBpcyBEKzEsCglhcmcoRiwgQm9hcmQsICdZJyksCglHIGlzIEYrQ29sLAoJYXJnKEcsIEJvYXJkLCAnWScpLgolIFBlbnRtaW5vID0gJ1knCiUgTnVtYmVyID0gOAolICAgRAolIEMgRSBGIEcKcGxhY2VfcGVudCgnWScsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdZJyksCglEIGlzIEMtKENvbC0xKSwKCWFyZyhELCBCb2FyZCwgJ1knKSwJCglFIGlzIEMrMSwKCWFyZyhFLCBCb2FyZCwgJ1knKSwKCUYgaXMgRSsxLAoJYXJnKEYsIEJvYXJkLCAnWScpLAoJRyBpcyBGKzEsCglhcmcoRywgQm9hcmQsICdZJykuCiUgUGVudG1pbm8gPSAnWicKJSBOdW1iZXIgPSAxCiUgQyBECiUgICBFCiUgICBGIEcKcGxhY2VfcGVudCgnWicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdaJyksCglEIGlzIEMrMSwKCWFyZyhELCBCb2FyZCwgJ1onKSwJCglFIGlzIEQrQ29sLAoJYXJnKEUsIEJvYXJkLCAnWicpLAoJRiBpcyBFK0NvbCwKCWFyZyhGLCBCb2FyZCwgJ1onKSwKCUcgaXMgRisxLAoJYXJnKEcsIEJvYXJkLCAnWicpLgolIFBlbnRtaW5vID0gJ1onCiUgTnVtYmVyID0gMgolICAgICBGCiUgQyBFIEcKJSBECnBsYWNlX3BlbnQoJ1onLCBDLCBDb2wsIEJvYXJkKSA6LQoJYXJnKEMsIEJvYXJkLCAnWicpLAoJRCBpcyBDK0NvbCwKCWFyZyhELCBCb2FyZCwgJ1onKSwJCglFIGlzIEMrMSwKCWFyZyhFLCBCb2FyZCwgJ1onKSwKCUYgaXMgQy0oQ29sLTIpLAoJYXJnKEYsIEJvYXJkLCAnWicpLAoJRyBpcyBFKzEsCglhcmcoRywgQm9hcmQsICdaJykuCiUgUGVudG1pbm8gPSAnWicKJSBOdW1iZXIgPSAzCiUgICBDIEYKJSAgIEUKJSBEIEcKcGxhY2VfcGVudCgnWicsIEMsIENvbCwgQm9hcmQpIDotCglhcmcoQywgQm9hcmQsICdaJyksCglEIGlzIEMrKDIqQ29sKS0xLAoJYXJnKEQsIEJvYXJkLCAnWicpLAkKCUUgaXMgQytDb2wsCglhcmcoRSwgQm9hcmQsICdaJyksCglGIGlzIEMrMSwKCWFyZyhGLCBCb2FyZCwgJ1onKSwKCUcgaXMgRCsxLAoJYXJnKEcsIEJvYXJkLCAnWicpLgolIFBlbnRtaW5vID0gJ1onCiUgTnVtYmVyID0gNAolIEMKJSBEIEUgRgolICAgICBHCnBsYWNlX3BlbnQoJ1onLCBDLCBDb2wsIEJvYXJkKSA6LSAKCWFyZyhDLCBCb2FyZCwgJ1onKSwKCUQgaXMgQytDb2wsCglhcmcoRCwgQm9hcmQsICdaJyksCQoJRSBpcyBEKzEsCglhcmcoRSwgQm9hcmQsICdaJyksCglGIGlzIEUrMSwKCWFyZyhGLCBCb2FyZCwgJ1onKSwKCUcgaXMgRitDb2wsCglhcmcoRywgQm9hcmQsICdaJykuCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJVXRpbGl0aWVzCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmZvcihNLCBNLCBOKSA6LSBNID08IE4uCmZvcihJLCBNLCBOKSA6LSBNID08IE4sIE0xIGlzIE0gKyAxLCBmb3IoSSwgTTEsIE4pLgoKcGVudF9zZWxlY3QoWCwgW1h8WHNdLCBYcykuCnBlbnRfc2VsZWN0KFgsIFtZfFlzXSwgW1l8WnNdKSA6LSBwZW50X3NlbGVjdChYLCBZcywgWnMpLgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCUZvciBhcHBsZXQKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBlbnRvbWlub19hcHBsZXQoWCwgQikgOi0KCXNvbHZlX3BlbnRvbWlubyhYLCBCMCksCglyZW1vdmVfYXN0ZXJpc2soQjAsIEIpLgoKcmVtb3ZlX2FzdGVyaXNrKEIwLCBCKSA6LQoJQjAgPS4uIFtffEFzXSwKCXJtX2FzdGVyKEFzLCBCKS4KCnJtX2FzdGVyKFtdLCBbXSkgOi0gIS4Kcm1fYXN0ZXIoW0F8QXNdLCBQcykgOi0gQSA9PSAnKicsICEsCglybV9hc3RlcihBcyxQcykuCnJtX2FzdGVyKFtBfEFzXSwgW0F8UHNdKSA6LSAKCXJtX2FzdGVyKEFzLFBzKS4KCQoJCg==