///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> Minneapolis Content
///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> YTo2OntzOjEzOiJjb250ZW50U3RhdHVzIjthOjE6e3M6Njoic3RhdHVzIjtiOjE7fXM6NzoiY29udGVudCI7czowOiIiO3M6MTM6ImNvbnRlbnRMZW5ndGgiO2k6MDtzOjExOiJtZXRhQ29udGVudCI7TjtzOjk6IkNhY2hlZGF0YSI7YTowOnt9czo3OiJDb250ZXh0IjthOjc6e3M6MTQ6IkFkSW5kZXhTZWN0aW9uIjtzOjQ6Im5ld3MiO3M6NzoiU2VjdGlvbiI7czo0OiJuZXdzIjtzOjE2OiJPQVNRdWVyeUNhdGVnb3J5IjtzOjQ6Ik5ld3MiO3M6MTk6Ik9BU1F1ZXJ5U3ViY2F0ZWdvcnkiO3M6NjoiU2VhcmNoIjtzOjEwOiJwYWdlUGFyYW1zIjtzOjMxOiIKICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgIjtzOjc6Ik9yaWdVcmwiO3M6NDg6Ii8yMDEyLTExLTE0L2FydHMvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzLyI7czozOiJVcmwiO3M6ODg6Ii9hZHMvZmxhdEFkcy9jbGlja3RvcC9jbGlja3RvcC8vL29yaWdVcmw6LzIwMTItMTEtMTQvYXJ0cy9ob3ctdGhlLWdyaW5jaC1zdG9sZS1jaHJpc3RtYXMiO319

Top

news

Stories

 
///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> YTo3OntzOjEzOiJjb250ZW50U3RhdHVzIjthOjE6e3M6Njoic3RhdHVzIjtiOjE7fXM6NzoiY29udGVudCI7czo0MTgzOToiPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgIHZhciBNVk5fUFVCID0gTVZOX1BVQiB8fCB7J2FjdGlvbic6J2FydGljbGUnLCAndXJsJzonaHR0cDovL3d3dy5jaXR5cGFnZXMuY29tLzIwMTItMTEtMTQvYXJ0cy9ob3ctdGhlLWdyaW5jaC1zdG9sZS1jaHJpc3RtYXMvJ307DQogICAgdmFyIE1WTl9TSE9XX1dFTENPTUUgPSBNVk5fU0hPV19XRUxDT01FIHx8IHRydWU7DQogICAgaWYoIXdpbmRvdy5SZWNhcHRjaGEpew0KICAgICAgICAkLmdldFNjcmlwdCgnaHR0cDovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkvanMvcmVjYXB0Y2hhX2FqYXguanMnKTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPGRpdiBjbGFzcz0nY29udGVudHZpZXcnPg0KIDxkaXYgY2xhc3M9J3NoYXJlcyc+DQogPHVsIGNsYXNzPSJTaGFyZV9CdXR0b25zIj48bGkgY2xhc3M9IkZhY2Vib29rX0xpa2UiPjxkaXYgaWQ9ImZiLXJvb3QiPjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vPCFbQ0RBVEFbCihmdW5jdGlvbihkLCBzLCBpZCkgew0KICB2YXIganMsIGZqcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07DQogIGlmIChkLmdldEVsZW1lbnRCeUlkKGlkKSkgcmV0dXJuOw0KICBqcyA9IGQuY3JlYXRlRWxlbWVudChzKTsganMuaWQgPSBpZDsNCiAganMuc3JjID0gIi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvYWxsLmpzI3hmYm1sPTEmYXBwSWQ9MjA3OTEwNjc1ODkxNjA0IjsNCiAgZmpzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpOw0KICAgIH0oZG9jdW1lbnQsICdzY3JpcHQnLCAnZmFjZWJvb2stanNzZGsnKSk7Ci8vXV0+Cjwvc2NyaXB0Pgo8ZGl2IGNsYXNzPSJmYi1saWtlIiBkYXRhLXNlbmQ9InRydWUiIGRhdGEtaHJlZj0iaHR0cCUzQSUyRiUyRnd3dy5jaXR5cGFnZXMuY29tJTJGMjAxMi0xMS0xNCUyRmFydHMlMkZob3ctdGhlLWdyaW5jaC1zdG9sZS1jaHJpc3RtYXMlMkYiIGRhdGEtbGF5b3V0PSJidXR0b25fY291bnQiIGRhdGEtd2lkdGg9IjE1MCIgZGF0YS1zaG93LWZhY2VzPSJ0cnVlIj48L2Rpdj48L2xpPgo8bGkgY2xhc3M9IlR3aXR0ZXIiPjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vc2hhcmUiIGNsYXNzPSJ0d2l0dGVyLXNoYXJlLWJ1dHRvbiIgZGF0YS10ZXh0PSJIb3cgdGhlIEdyaW5jaCBTdG9sZSBDaHJpc3RtYXMiIGRhdGEtdXJsPSJodHRwOi8vd3d3LmNpdHlwYWdlcy5jb20vMjAxMi0xMS0xNC9hcnRzL2hvdy10aGUtZ3JpbmNoLXN0b2xlLWNocmlzdG1hcy8iIGRhdGEtdmlhPSJjaXR5cGFnZXMiPjwvYT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwohZnVuY3Rpb24oZCxzLGlkKXt2YXIganMsZmpzPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07aWYoIWQuZ2V0RWxlbWVudEJ5SWQoaWQpKXtqcz1kLmNyZWF0ZUVsZW1lbnQocyk7anMuaWQ9aWQ7anMuc3JjPSIvL3BsYXRmb3JtLnR3aXR0ZXIuY29tL3dpZGdldHMuanMiO2Zqcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqcyxmanMpO319KGRvY3VtZW50LCJzY3JpcHQiLCJ0d2l0dGVyLXdqcyIpOwovL11dPgo8L3NjcmlwdD48L2xpPgo8bGkgY2xhc3M9IlN0dW1ibGVfVXBvbiI+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwooZnVuY3Rpb24oKSB7dmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IGxpLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsgbGkuYXN5bmMgPSB0cnVlOw0KICAgIGxpLnNyYyA9ICgnaHR0cHM6JyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/ICdodHRwczonIDogJ2h0dHA6JykgKyAnLy9wbGF0Zm9ybS5zdHVtYmxldXBvbi5jb20vMS93aWRnZXRzLmpzJzsNCiAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsaSwgcyk7DQogIH0pKCk7Ci8vXV0+Cjwvc2NyaXB0Pgo8c3U6YmFkZ2UgbGF5b3V0PSIxIj48L3N1OmJhZGdlPjwvbGk+CjxsaSBjbGFzcz0iUG9ja2V0Ij48YSBkYXRhLXBvY2tldC1sYWJlbD0icG9ja2V0IiBkYXRhLXNhdmUtdXJsPSJodHRwJTNBJTJGJTJGd3d3LmNpdHlwYWdlcy5jb20lMkYyMDEyLTExLTE0JTJGYXJ0cyUyRmhvdy10aGUtZ3JpbmNoLXN0b2xlLWNocmlzdG1hcyUyRiIgZGF0YS1wb2NrZXQtY291bnQ9Imhvcml6b250YWwiIGNsYXNzPSJwb2NrZXQtYnRuIiBkYXRhLWxhbmc9ImVuIj48L2E+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4hZnVuY3Rpb24oZCxpKXtpZighZC5nZXRFbGVtZW50QnlJZChpKSl7dmFyIGo9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtqLmlkPWk7ai5zcmM9Imh0dHBzOi8vd2lkZ2V0cy5nZXRwb2NrZXQuY29tL3YxL2ovYnRuLmpzP3Y9MSI7dmFyIHc9ZC5nZXRFbGVtZW50QnlJZChpKTtkLmJvZHkuYXBwZW5kQ2hpbGQoaik7fX0oZG9jdW1lbnQsInBvY2tldC1idG4tanMiKTs8L3NjcmlwdD48L2xpPgo8bGkgY2xhc3M9Ikdvb2dsZVBsdXMiPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKKGZ1bmN0aW9uKCkgew0KICAgIHZhciBwbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyBwby50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHBvLmFzeW5jID0gdHJ1ZTsNCiAgICBwby5zcmMgPSAnaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGx1c29uZS5qcyc7DQogICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocG8sIHMpOw0KICB9KSgpOwovL11dPgo8L3NjcmlwdD4KPGc6cGx1c29uZSBzaXplPSJtZWRpdW0iIGhyZWY9Imh0dHA6Ly93d3cuY2l0eXBhZ2VzLmNvbS8yMDEyLTExLTE0L2FydHMvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzLyI+PC9nOnBsdXNvbmU+PC9saT48L3VsPjxkaXYgY2xhc3M9IkNsZWFySXQiPjwvZGl2PiA8L2Rpdj4NCiA8ZGl2IGNsYXNzPSdjb250ZW50X2hlYWQnPg0KICA8aDEgY2xhc3M9J2hlYWRsaW5lJz48aT5Ib3cgdGhlIEdyaW5jaCBTdG9sZSBDaHJpc3RtYXM8L2k+PC9oMT4NCiAgPGgzPkNoaWxkcmVuJ3MgVGhlYXRyZSBDb21wYW55IHNob3cgd2FybXMgZXZlbiB0aGUgc21hbGxlc3Qgb2YgaGVhcnRzPC9oMz4NCiAgPGRpdiBjbGFzcz0nYnlsaW5lJz4NCiAgICA8c3BhbiBjbGFzcz0ndGV4dHNpemUnIHRpdGxlPSdDbGljayB0byByZXNpemUgdGV4dCc+PGEgY2xhc3M9J3NtJyBocmVmPSdqYXZhc2NyaXB0OjsnIGlkPSd0ZXh0X3NpemVfc20nPkE8L2E+ICA8YSBjbGFzcz0nbWVkJyBocmVmPSdqYXZhc2NyaXB0OjsnIGlkPSd0ZXh0X3NpemVfbWVkJz5BPC9hPiAgPGEgY2xhc3M9J2xnJyBocmVmPSdqYXZhc2NyaXB0OjsnIGlkPSd0ZXh0X3NpemVfbGcnPkE8L2E+PC9zcGFuPiANCiAgICA8c3BhbiBjbGFzcz0iY29tbWVudGxpbmsiPg0KICAgICAgICA8YSBocmVmPSIjbGl2ZWZ5cmUiPkNvbW1lbnRzPC9hPg0KICAgICAgICAgICAgKDxzcGFuIGNsYXNzPSJsaXZlZnlyZS1jb21tZW50Y291bnQiIGRhdGEtbGZ2My1jb3VudGVyPSJ0cnVlIj4wPC9zcGFuPikNCiAgICA8L3NwYW4+DQogIEJ5IDxhIGhyZWY9Ii9hdXRob3JzL2VkLWh1eWNrIiBDbGFzcz0iYXV0aG9yIj5FZCBIdXljazwvYT4gPHNwYW4gY2xhc3M9J3B1YmRhdGUnPldlZG5lc2RheSwgTm92IDE0IDIwMTI8L3NwYW4+DQogIDwvZGl2Pg0KIDwvZGl2Pg0KPCEtLWdvb2dsZW9uOiBhbGwtLT4NCiAgICAgICAgICAgIDxtZXRhIG5hbWU9IndlYnRpdGxlIiBjb250ZW50PSJIb3cgdGhlIEdyaW5jaCBTdG9sZSBDaHJpc3RtYXMgLSBDaGlsZHJlbiYjMDM5O3MgVGhlYXRyZSBDb21wYW55IHNob3cgd2FybXMgZXZlbiB0aGUgc21hbGxlc3Qgb2YgaGVhcnRzIj4KICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9IndlYmRlc2NyaXB0aW9uIiBjb250ZW50PSJIb3cgdGhlIEdyaW5jaCBTdG9sZSBDaHJpc3RtYXNDaGlsZHJlbiYjMDM5O3MgVGhlYXRyZSBDb21wYW55MjQwMCBUaGlyZCBBdmUuIFMuLCBNaW5uZWFwb2xpczYxMi44NzQuMDQwMDsgdGhyb3VnaCBEZWMuIDMwCgpUaGUgU2t5bGVzcyBDaXR5RHJlYW1sYW5kIEFydHM2NzcgSGFtbGluZSBBdmUuLCBTdC4gUGF1bDY1MS42NDUuNTUwNjsgdGhyb3VnaCBOb3YuIDE4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iRWQgSHV5Y2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJhdXRob3JVUkwiIGNvbnRlbnQ9Ii9hdXRob3JzL2VkLWh1eWNrIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0idGh1bWJuYWlsIiBjb250ZW50PSJodHRwOi8vbWVkaWEuY2l0eXBhZ2VzLmNvbS84MzQwODYwLjk5LmpwZyI+CiAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0aHVtYnNyYyIgY29udGVudD0iY2UwNC84MzQwODYwLnQuanBnIj4KICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9ImhlYWRsaW5lIiBjb250ZW50PSJIb3cgdGhlIEdyaW5jaCBTdG9sZSBDaHJpc3RtYXMiPgogICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0ic3ViaGVhZGxpbmUiIGNvbnRlbnQ9IkNoaWxkcmVuJiMwMzk7cyBUaGVhdHJlIENvbXBhbnkgc2hvdyB3YXJtcyBldmVuIHRoZSBzbWFsbGVzdCBvZiBoZWFydHMiPgogICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0iZGF0ZSIgY29udGVudD0iMjAxMi0xMS0xMyAxMzo1NTo1MiI+CiAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJjb21tZW50cyIgY29udGVudD0iMCI+CiAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJzZWN0aW9uIiBjb250ZW50PSJBcnRzIj4KICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9ImNhdGVnb3J5IiBjb250ZW50PSJUaGVhdGVyIj4KICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9Im9iamlkIiBjb250ZW50PSIyNjQzMzM4Ij4KICAgIA0KIDxkaXYgY2xhc3M9J2NvbnRlbnRfYm9keSBzbSc+DQoKPHA+SXQncyBoYXJkIHRvIGdldCBpbnRvIHRoZSBDaHJpc3RtYXMgc3Bpcml0IG9uIGEgc3VubnkgZWFybHktTm92ZW1iZXIgYWZ0ZXJub29uIHdoZW4gdGhlIHRlbXBlcmF0dXJlIGlzIHRpcHBpbmcgcGFzdCA2MCBkZWdyZWVzLCBidXQgdGhlIGZvbGtzIGF0IENoaWxkcmVuJ3MgVGhlYXRyZSBDb21wYW55IGNlcnRhaW5seSB3ZXJlIHVwIHRvIHRoZSB0YXNrIHdpdGggPGk+PGEgdGl0bGU9IkhvdyB0aGUgR3JpbmNoIFN0b2xlIENocmlzdG1hcyIgaHJlZj0iL3JlbGF0ZWQvdG8vSG93K3RoZStHcmluY2grU3RvbGUrQ2hyaXN0bWFzLyIgZGF0YS1vbW5pLXRyYWNrPSJJbmZvcm0tPkNsaWNrfGtleXdvcmRbSG93K3RoZStHcmluY2grU3RvbGUrQ2hyaXN0bWFzXSIgPkhvdyB0aGUgR3JpbmNoIFN0b2xlIENocmlzdG1hczwvYT4uPC9pPiBJdCdzIGEgbGFyZ2VseSBkZWxpZ2h0ZnVsIHNob3csIHBvd2VyZWQgYnkgYSBjbGV2ZXIgc2NyaXB0LCBicmlnaHQgc29uZ3MsIGFuZCBhIHRlcnJpZmljIHBlcmZvcm1hbmNlIGJ5IFJlZWQgU2lnbXVuZCBhcyB0aGUgb3JuZXJ5LCBncmVlbi1mdXJyZWQgY3JlYXR1cmUgd2hvc2UgaGVhcnQgZ3Jvd3MgdGhyZWUgc2l6ZXMgYXQgYSBwYXJ0aWN1bGFybHkgbW9tZW50b3VzIENocmlzdG1hcy48L3A+CjxkaXYgY2xhc3M9J2NvbnRlbnRfaW5zZXJ0IGNoaXNlbF91Jz4NCiA8ZGl2IGNsYXNzPSdpbnNlcnRfcGhvdG8nPg0KICA8YSBocmVmPSIvcGhvdG9HYWxsZXJ5L2luZGV4LzI2NDMzMzgvMCI+PGltZyBzcmM9Imh0dHA6Ly9tZWRpYS5jaXR5cGFnZXMuY29tL2hvdy10aGUtZ3JpbmNoLXN0b2xlLWNocmlzdG1hcy44MzQwODYwLjQwLmpwZyIgY2xhc3M9ImZyYW1lZCIgYWx0PSIiIC8+PC9hPg0KICA8ZGl2IGNsYXNzPSdjcmVkJz48L2Rpdj4NCiAgPGRpdiBjbGFzcz0nY2FwJz48L2Rpdj4NCiA8L2Rpdj4NCg0KDQoNCg0KDQoNCiAgICANCiAgIA0KDQoNCg0KDQoNCiA8ZGl2IGNsYXNzPSdkZXRfcmVsJz4NCiAgPGgyPkRldGFpbHM8L2gyPg0KICA8ZGl2IGNsYXNzPSdkZWV0cyc+PHAgYWxpZ249ImNlbnRlciI+SG93IHRoZSBHcmluY2ggU3RvbGUgQ2hyaXN0bWFzPC9iciA+Q2hpbGRyZW4ncyBUaGVhdHJlIENvbXBhbnk8L2JyID4yNDAwIFRoaXJkIEF2ZS4gUy4sIE1pbm5lYXBvbGlzPC9iciA+NjEyLjg3NC4wNDAwOyB0aHJvdWdoIERlYy4gMzA8L3A+Cgo8cCBhbGlnbj0iY2VudGVyIj5UaGUgU2t5bGVzcyBDaXR5PC9iciA+RHJlYW1sYW5kIEFydHM8L2JyID42NzcgSGFtbGluZSBBdmUuLCBTdC4gUGF1bDwvYnIgPjY1MS42NDUuNTUwNjsgdGhyb3VnaCBOb3YuIDE4PC9wPjwvZGl2Pg0KPCEtLSBSZWNlbnRSZWxhdGVkIHdpZGdldCBoZXJlIC0tPgogICAgPGgyPlJlbGF0ZWQgQ29udGVudDwvaDI+CiAgPGRpdiBjbGFzcz0nZGVldHMgcmVsYXRlZCc+CiAgIDx1bD4KICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5jaXR5cGFnZXMuY29tLzIwMTMtMDMtMTMvbW92aWVzL3RoZS1pbmNyZWRpYmxlLWJ1cnQtd29uZGVyc3RvbmUtaXNuLXQtc28td29uZGVyZnVsLyI+PGk+VGhlIEluY3JlZGlibGUgQnVydCBXb25kZXJzdG9uZTwvaT4gaXNuJ3Qgc28gd29uZGVyZnVsPC9hPjxkaXYgY2xhc3M9J2RhdGUnPk1hcmNoIDEzLCAyMDEzPC9kaXY+PC9saT48bGkgPjxhIGhyZWY9Imh0dHA6Ly93d3cuY2l0eXBhZ2VzLmNvbS8yMDEzLTAyLTE5L2FydHMvdGhlLXNldmVuLWJyaW5ncy1ncmVlay10cmFnZWR5LXRvLXRoZS1ob29kLyI+PGk+VGhlIFNldmVuPC9pPiBicmluZ3MgR3JlZWsgdHJhZ2VkeSB0byB0aGUgaG9vZDwvYT48ZGl2IGNsYXNzPSdkYXRlJz5GZWJydWFyeSAxOSwgMjAxMzwvZGl2PjwvbGk+PGxpID48YSBocmVmPSJodHRwOi8vd3d3LmNpdHlwYWdlcy5jb20vMjAxMi0xMi0xOS9jYWxlbmRhci9rZW5ueS1rYW5lLyI+S2VubnkgS2FuZTwvYT48ZGl2IGNsYXNzPSdkYXRlJz5EZWNlbWJlciAxOSwgMjAxMjwvZGl2PjwvbGk+PGxpID48YSBocmVmPSJodHRwOi8vYmxvZ3MuY2l0eXBhZ2VzLmNvbS9kcmVzc2luZ3Jvb20vMjAxMC8wNy9ibGFjdWxhX2Jsb29kci5waHAiPkJsYWN1bGEsIEJsb29kcmF5bmUsIFVuZGVyd29ybGQgMzogVGVuIHZhbXBpcmUgbW92aWVzIChhbG1vc3Q/KSB3b3JzZSB0aGFuIFR3aWxpZ2h0IEVjbGlwc2U8L2E+PGRpdiBjbGFzcz0nZGF0ZSc+SnVseSAxLCAyMDEwPC9kaXY+PC9saT48bGkgY2xhc3M9Imxhc3QiPjxhIGhyZWY9Imh0dHA6Ly93d3cuY2l0eXBhZ2VzLmNvbS8yMDExLTAyLTAyL2FydHMvYmFiZS1hdC1jaGlsZHJlbi1zLXRoZWF0cmUtY29tcGFueS8iPjxpPkJhYmU8L2k+IGF0IENoaWxkcmVuJ3MgVGhlYXRyZSBDb21wYW55PC9hPjxkaXYgY2xhc3M9J2RhdGUnPkZlYnJ1YXJ5IDIsIDIwMTE8L2Rpdj48L2xpPiAgIDwvdWw+CiAgPC9kaXY+CiAgCiAgICA8aDI+TW9yZSBBYm91dDwvaDI+CiAgPGRpdiBjbGFzcz0nZGVldHMgbW9yZWFib3V0Jz4KICAgPHVsPgogICAgPGxpPjxhIGhyZWY9Ii9yZWxhdGVkL3RvL1JlZWQrU2lnbXVuZC8iIGRhdGEtb21uaS10cmFjaz0iSW5mb3JtLSZndDtDbGlja3xrZXl3b3JkW1JlZWQrU2lnbXVuZF0iPlJlZWQgU2lnbXVuZDwvYT48L2xpPjxsaT48YSBocmVmPSIvcmVsYXRlZC90by9LaW9tYXJzK01vcmFkaS8iIGRhdGEtb21uaS10cmFjaz0iSW5mb3JtLSZndDtDbGlja3xrZXl3b3JkW0tpb21hcnMrTW9yYWRpXSI+S2lvbWFycyBNb3JhZGk8L2E+PC9saT48bGk+PGEgaHJlZj0iL3JlbGF0ZWQvdG8vSG93K3RoZStHcmluY2grU3RvbGUrQ2hyaXN0bWFzLyIgZGF0YS1vbW5pLXRyYWNrPSJJbmZvcm0tJmd0O0NsaWNrfGtleXdvcmRbSG93K3RoZStHcmluY2grU3RvbGUrQ2hyaXN0bWFzXSI+SG93IHRoZSBHcmluY2ggU3RvbGUgQ2hyaXN0bWFzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9yZWxhdGVkL3RvL0RyLitTZXVzcy8iIGRhdGEtb21uaS10cmFjaz0iSW5mb3JtLSZndDtDbGlja3xrZXl3b3JkW0RyLitTZXVzc10iPkRyLiBTZXVzczwvYT48L2xpPjxsaT48YSBocmVmPSIvcmVsYXRlZC90by9DaHVjaytKb25lcy8iIGRhdGEtb21uaS10cmFjaz0iSW5mb3JtLSZndDtDbGlja3xrZXl3b3JkW0NodWNrK0pvbmVzXSI+Q2h1Y2sgSm9uZXM8L2E+PC9saT4gICA8L3VsPgogIDwvZGl2PgogIDwhLS0gL1JlY2VudFJlbGF0ZWQgd2lkZ2V0IGhlcmUgLS0+ICA8IS0tIE5ld3NsZXR0ZXIgU2lnbnVwIC0tPg0KICA8bXZuOmFydGljbGUtc2lnbnVwIHNlY3Rpb249ImFydHMiIHR5cGU9ImVtYWlsIiBzaXplPSJzbWFsbCI+PC9tdm46YXJ0aWNsZS1zaWdudXA+DQogPC9kaXY+DQo8L2Rpdj4NCjxwPllvdSBsaWtlbHkga25vdyB0aGUgc2NvcmUgaGVyZTogR3J1bXB5IG9sZCBHcmluY2ggbGl2ZXMgb3V0c2lkZSBvZiBXaG92aWxsZTsgY2FuJ3Qgc3RhbmQgdGhlIENocmlzdG1hcyBjZWxlYnJhdGlvbnM7IGdvZXMgb2ZmIHRvIHN0ZWFsIGFsbCB0aGUgcHJlc2VudHMsIGZvb2QsIGFuZCB0cmltbWluZ3M7IGlzIGNvbnZpbmNlZCBvZiBoaXMgd3Jvbmdkb2luZyB3aGVuIGhlIGhlYXJzIHRoZSBXaG9zIHN0aWxsIGNlbGVicmF0aW5nIHRoZSBqb3kgb2YgdGhlIHNlYXNvbi4gPGEgdGl0bGU9IkRyLiBTZXVzcyIgaHJlZj0iL3JlbGF0ZWQvdG8vRHIuK1NldXNzLyIgZGF0YS1vbW5pLXRyYWNrPSJJbmZvcm0tPkNsaWNrfGtleXdvcmRbRHIuK1NldXNzXSIgPkRyLiBTZXVzczwvYT4ncyBzaW1wbGUgdGFsZSBoYXMgZGVsaWdodGVkIHJlYWRlcnMgc2luY2UgdGhlIDE5NTBzLCBhbmQgPGEgdGl0bGU9IkNodWNrIEpvbmVzIiBocmVmPSIvcmVsYXRlZC90by9DaHVjaytKb25lcy8iIGRhdGEtb21uaS10cmFjaz0iSW5mb3JtLT5DbGlja3xrZXl3b3JkW0NodWNrK0pvbmVzXSIgPkNodWNrIEpvbmVzPC9hPidzIGFuaW1hdGVkIHNwZWNpYWwgaGFzIHBsYWNlZCBpdHMgaG9sZCBvbiB2aWV3ZXJzIGZvciBuZWFybHkgNTAgeWVhcnMuIFRoaXMgbXVzaWNhbCBzdGFnZSBhZGFwdGF0aW9uIGhhcyBzZWVuIHByZXZpb3VzIHNvbGQtb3V0IHJ1bnMgYXQgQ1RDIGFuZCBsaW1pdGVkIGhvbGlkYXkgcnVucyBvbiBCcm9hZHdheSAobGV0IHVzIG5ldmVyIHNwZWFrIG9mIHRoZSAyMDAwIGZpbG0gc3RhcnJpbmcgPGEgdGl0bGU9IkppbSBDYXJyZXkiIGhyZWY9Ii9yZWxhdGVkL3RvL0ppbStDYXJyZXkvIiBkYXRhLW9tbmktdHJhY2s9IkluZm9ybS0+Q2xpY2t8a2V5d29yZFtKaW0rQ2FycmV5XSIgPkppbSBDYXJyZXk8L2E+IGFnYWluKS48L3A+CjxwPkxpa2UgYSBEYXlHbG8gPGk+Q2hyaXN0bWFzIENhcm9sPC9pPiwgdGhlIDxpPkdyaW5jaDwvaT4gaXMgYWJvdXQgZGlnZ2luZyBpbnRvIHRoZSBoZWFydCBvZiB0aGUgaG9saWRheSBzZWFzb24gYW5kIHRyYW5zZm9ybWluZyBpdHMgbWFpbiBjaGFyYWN0ZXIgZnJvbSBhIGdydW1weSwgbG9uZWx5IG9sZCBtYW4gaW50byBzb21lb25lIHdobyBpcyBhIHBhcnQgb2YgdGhlIGNvbW11bml0eS4gPGEgdGl0bGU9IlJlZWQgU2lnbXVuZCIgaHJlZj0iL3JlbGF0ZWQvdG8vUmVlZCtTaWdtdW5kLyIgZGF0YS1vbW5pLXRyYWNrPSJJbmZvcm0tPkNsaWNrfGtleXdvcmRbUmVlZCtTaWdtdW5kXSIgPlNpZ211bmQ8L2E+IHRha2VzIHVzIGFsb25nIHRoZSBHcmluY2gncyBqb3VybmV5LCBkZWxpZ2h0aW5nIGluIGV2ZXJ5IGJhZCB0aGluZyB0aGUgZ3JlZW4gZ3V5IGRvZXMsIHdoaWxlIGdpdmluZyB1cyBzbWFsbCB0YXN0ZXMgYWxvbmcgdGhlIHdheSBvZiB0aGUgaGVhcnRicmVhayB0aGF0IGxpZXMgYXQgdGhlIGNlbnRlciBvZiBoaXMgYmVpbmcuIFRoYXQncyBpbXBvcnRhbnQgJm1kYXNoOyBhIHRyYW5zZm9ybWF0aW9uIG91dCBvZiB0aGUgYmx1ZSBpcyBqdXN0IGEgcGxvdCBjb250cml2YW5jZSwgbm90IHNvbWV0aGluZyBlYXJuZWQgJm1kYXNoOyBhbmQgU2lnbXVuZCBwbGF5cyBpdCBmb3IgYWxsIGl0IGlzIHdvcnRoLjwvcD4KPHA+VGhlIHJlc3Qgb2YgdGhlIGNvbXBhbnksIGZyb20gbGl0dGxlc3QgV2hvIHRvIHRoZSBkdWFsIE1heGVzICg8YSB0aXRsZT0iSC4gQWRhbSBIYXJyaXMiIGhyZWY9Ii9yZWxhdGVkL3RvL0guK0FkYW0rSGFycmlzLyIgZGF0YS1vbW5pLXRyYWNrPSJJbmZvcm0tPkNsaWNrfGtleXdvcmRbSC4rQWRhbStIYXJyaXNdIiA+SC4gQWRhbSBIYXJyaXM8L2E+IGFzIHRoZSBvbGRlciBuYXJyYXRvciBhbmQgPGEgdGl0bGU9IkJyYW5kb24gQnJvb2tzIiBocmVmPSIvcmVsYXRlZC90by9CcmFuZG9uK0Jyb29rcy8iIGRhdGEtb21uaS10cmFjaz0iSW5mb3JtLT5DbGlja3xrZXl3b3JkW0JyYW5kb24rQnJvb2tzXSIgPkJyYW5kb24gQnJvb2tzPC9hPiBhcyB0aGUgeW91bmcgcHVwIHdobyBhY2NvbXBhbmllcyB0aGUgR3JpbmNoIG9uIGhpcyBkYXN0YXJkbHkgYWR2ZW50dXJlKSwga2VlcCB1cCB0aGUgZ29vZCBjaGVlci4gVGhlIHNob3cgYWxzbyBsb29rcyBzdHVubmluZywgYnVveWVkIGJ5IHN0cmlraW5nIGNvc3R1bWVzIGZyb20gPGEgdGl0bGU9IkRhdmlkIEtheSBNaWNrZWxzZW4iIGhyZWY9Ii9yZWxhdGVkL3RvL0RhdmlkK0theStNaWNrZWxzZW4vIiBkYXRhLW9tbmktdHJhY2s9IkluZm9ybS0+Q2xpY2t8a2V5d29yZFtEYXZpZCtLYXkrTWlja2Vsc2VuXSIgPkRhdmlkIEtheSBNaWNrZWxzZW48L2E+IGFuZCBhIHBlcmZlY3RseSBTZXVzc2lhbiBzZXQgYnkgPGEgdGl0bGU9IlRvbSBCdXRzY2giIGhyZWY9Ii9yZWxhdGVkL3RvL1RvbStCdXRzY2gvIiBkYXRhLW9tbmktdHJhY2s9IkluZm9ybS0+Q2xpY2t8a2V5d29yZFtUb20rQnV0c2NoXSIgPlRvbSBCdXRzY2g8L2E+LjwvcD4KPHA+V2hlbiB5b3UgdHJhbnNmZXIgYSBzaG9ydGlzaCBwaWN0dXJlIGJvb2sgaW50byBhIGZ1bGwtbGVuZ3RoIG11c2ljYWwsIHRoaW5ncyBuZWVkIHRvIGJlIGFkZGVkLiBXaGlsZSBtb3N0IG9mIHRoZSBwbG90IGFkZGl0aW9ucyBkb24ndCBkZXRyYWN0IGZyb20gdGhlIHN0b3J5LCBJJ2xsIGFkbWl0IHRvIGhhdmluZyBhIGJpdCBvZiBhICJDb21lIG9uLCBsZXQncyBzdGVhbCBzb21lIHByZXNlbnRzISIgZmVlbGluZyBhYm91dCBtaWR3YXkgdGhyb3VnaCB0aGUgNzUtbWludXRlIHNob3cuIFRoZSByZXN0bGVzc25lc3MgZGlkbid0IGxhc3QgbG9uZywgZXNwZWNpYWxseSB3aGVuIGNvbWluZyBmYWNlIHRvIGZhY2UgKHdlbGwsIGZhY2UgdG8gaGFpcnkgbWlkc2VjdGlvbikgd2l0aCB0aGUgR3JpbmNoIGR1cmluZyB0aGUgcm9iYmVyeSBzY2VuZS4gVGhhdCBjZXJ0YWlubHkgd2lsbCBzaGFrZSBhbnkgZGFyay10aGVhdGVyIGNvYndlYnMuPC9wPgo8aDI+PGI+VGhlIFNreWxlc3MgQ2l0eTwvYj48L2gyPgo8cD5JcmFuaWFuIGRpcmVjdG9yIDxhIHRpdGxlPSJLaW9tYXJzIE1vcmFkaSIgaHJlZj0iL3JlbGF0ZWQvdG8vS2lvbWFycytNb3JhZGkvIiBkYXRhLW9tbmktdHJhY2s9IkluZm9ybS0+Q2xpY2t8a2V5d29yZFtLaW9tYXJzK01vcmFkaV0iID5LaW9tYXJzIE1vcmFkaTwvYT4gbWFrZXMgaGlzIFVuaXRlZCBTdGF0ZXMgZGVidXQgd2l0aCA8aT5UaGUgU2t5bGVzcyBDaXR5LDwvaT4gcGxheWluZyB0aHJvdWdoIHRoaXMgd2VlayBhdCBEcmVhbWxhbmQgQXJ0cyBpbiBTdC4gUGF1bC4gSXQncyBhIHNwYXJlLCBoZWFydGJyZWFraW5nIHRhbGUgb2YgZm91ciB3b21lbiB0cnlpbmcgdG8gZXNjYXBlIHZhcmlvdXMgZm9ybXMgb2Ygb3BwcmVzc2lvbiBpbiB0aGUgTWlkZGxlIEVhc3QsIGJ1dCBmaW5kaW5nIG1haW5seSBwYWluIGFuZCBkZWF0aCBvbiB0aGVpciBqb3VybmV5IHRvIEV1cm9wZS48L3A+CjxwPlRhb3VzIEtoYXplbSBhbmQgPGEgdGl0bGU9IkVsaXphIFJhc2hlZWQiIGhyZWY9Ii9yZWxhdGVkL3RvL0VsaXphK1Jhc2hlZWQvIiBkYXRhLW9tbmktdHJhY2s9IkluZm9ybS0+Q2xpY2t8a2V5d29yZFtFbGl6YStSYXNoZWVkXSIgPkVsaXphIFJhc2hlZWQ8L2E+Jm5ic3A7IHBsYXkgTmFzcmluIGFuZCBBbG1hLCB3aG8gYXJlIHdhaXRpbmcgaW4gYW4gYWJhbmRvbmVkIFBhcmlzaWFuIHN1YndheSBzdGF0aW9uIGZvciB0aGUgcGFzc3BvcnRzIHRoYXQgd2lsbCBsZWFkIHRoZW0gb3V0IG9mIHRoZSBkYXJrLCBkYW5rIGxpbWJvLiBUaGUgc3RvcnkgaXMgdG9sZCBlbGxpcHRpY2FsbHksIHdpdGggZGV0YWlscyBiZWluZyByZXBlYXRlZCBhZ2FpbiBhbmQgYWdhaW4sIGFuZCB0aGUgd2hvbGUgdGFsZSBzbG93bHkgdW5mb2xkaW5nLiBUd28gb3RoZXIgcGVyZm9ybWVycywgTmF6Z29sIE5hZGVyaWFuIGFuZCA8YSB0aXRsZT0iRmF0ZW1laCBOYWdoYXZpIiBocmVmPSIvcmVsYXRlZC90by9GYXRlbWVoK05hZ2hhdmkvIiBkYXRhLW9tbmktdHJhY2s9IkluZm9ybS0+Q2xpY2t8a2V5d29yZFtGYXRlbWVoK05hZ2hhdmldIiA+RmF0ZW1laCBOYWdoYXZpPC9hPiwgYXJlIHJlcHJlc2VudGVkIG9ubHkgb24gdmlkZW8uIFdlIGxlYXJuIHdoeSBmYWlybHkgcXVpY2tseS4gVGhleSBhcmUgdGhlIG90aGVyIHR3byB3aG8gc3RhcnRlZCB0aGUgam91cm5leSBidXQgZGllZCBiZWZvcmUgdGhleSBldmVuIHJlYWNoZWQgUGFyaXMuPC9wPgo8cD5Nb3JhZGkgKHdobyB3cm90ZSB0aGUgc2NyaXB0IHdpdGggUG91cnlhIEF6YXJiYXlqYW5pKSBwcmVzZW50cyBhIHN0YXJrIHJlYWxpdHksIHdoaWNoIHRha2VzIHBsYWNlIG9uIGEgYmFyZWx5IGxpdCBzdGFnZSB3aXRoIG9ubHkgYSBoYW5kZnVsIG9mIHBvc3Nlc3Npb25zIGZvciBlYWNoIGNoYXJhY3Rlci4gTGlrZSB0aGVpciBob3BlcywgdGhlaXIgbGl2ZXMgaGF2ZSBiZWVuIGVhdGVuIGF3YXkgdW50aWwgdGhlIGJhcmVzdCBnbGltbWVyIHJlbWFpbnMgJm1kYXNoOyBsaWtlIHRoZSBjaWdhcmV0dGUgbGlnaHRlciB0aGF0IGlzIHRoZSBvbmx5IGlsbHVtaW5hdGlvbiBhdCBwbGF5J3MgZW5kLjwvcD4gPC9kaXY+DQoNCg0KPCEtLWdvb2dsZW9mZjogYWxsLS0+DQoNCjxkaXYgY2xhc3M9J2JvdHRvbWxpbmtzJz4NCg0KICAgICAgICAgICAgPGgyPlJlbGF0ZWQgQ29udGVudDwvaDI+DQogICAgICAgIDxkaXYgY2xhc3M9Ik9VVEJSQUlOIiBkYXRhLXNyYz0iaHR0cDovL3d3dy5jaXR5cGFnZXMuY29tLzIwMTItMTEtMTQvYXJ0cy9ob3ctdGhlLWdyaW5jaC1zdG9sZS1jaHJpc3RtYXMvIiBkYXRhLXdpZGdldC1pZD0iQVJfMiIgZGF0YS1vYi10ZW1wbGF0ZT0ibWluIj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGZWF0dXJlZEFkSW5kZXhBZCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSdjaGlzZWxfdSBBSWZlYXR1cmVkJz4NCiAgQ2hlY2sgb3V0IHRoaXMgd2VlaydzIGZlYXR1cmVkIGFkIGZvciBTZXJ2aWNlczwhLS0gbGluayB0byBhcHByb3ByaWF0ZSBhZCBpbmRleCBjYXRlZ29yeSAtLT4NCiAgPGRpdiBjbGFzcz0naW5uZXInPg0KICAgIDxkaXY+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0nL2FkSW5kZXgvLTgwNzgzLyc+PGltZyBjbGFzcz0nZnJhbWVkJyBzcmM9J2h0dHA6Ly9tZWRpYS5jaXR5cGFnZXMuY29tLzg4NTY0NTYuMTMuanBnJy8+PC9hPjwhLS0gbGluayB0byBhZCBpbmRleCBhZCwgaW1nIGRlZiAxMywgYWR2ZXJ0aXNlciBsb2dvIC0tPg0KICAgICAgICAgICAgPGg0PjxhIGhyZWY9Jy9hZEluZGV4Ly04MDc4My8nPk1jTmFsbHkgU21pdGggQ29sbGVnZSBvZiBNdXNpYzwvYT48L2g0PjwhLS0gbGluayB0byBhZCBpbmRleCBhZCAtLT4NCiAgICAgIDxoNT4NCiAgICAgICAgPGEgaHJlZj0nL2FkSW5kZXgvLTgwNzgzLzE5MzgyOTAvJz5WaWV3IEFkPC9hPjwhLS0gbGluayB0byBhZCBpbmRleCBhZCAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0nIycgdmFsdWU9IjE5MzgyOTAiIGNsYXNzPSJ0cmFjayIgbmFtZT0idmlld3NpdGUiPlZpZXcgV2Vic2l0ZTwvYT48IS0tIGlmIGFwcGxpY2FibGUsIGxpbmsgdG8gZXh0ZXJuYWwgd2Vic2l0ZSAtLT4NCiAgICAgICAgICAgICAgPC9oNT4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQogIDxhIGNsYXNzPSdtb3JlJyBocmVmPSIvYWRJbmRleC8iPk1vcmUgQWRzID4+PC9hPjwhLS0gbGluayB0byBhZCBpbmRleCAtLT4NCjwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8IS0tIE5ld3NsZXR0ZXIgU2lnbnVwIC0tPg0KICAgICAgICA8bXZuOmFydGljbGUtc2lnbnVwIHNlY3Rpb249ImFydHMiIHR5cGU9ImVtYWlsIiBzaXplPSJsYXJnZSI+PC9tdm46YXJ0aWNsZS1zaWdudXA+DQogICAgDQoNCg0KPCEtLSBOT0dTQSAtLT4NCjxkaXYgY2xhc3M9J2FydGljbGVsaW5rcycgaWQ9J2FydGljbGVsaW5rcyc+DQogICAgPHRhYmxlPg0KICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQ+PGEgaHJlZj0nL2ZlZWRiYWNrL3NlbmRUb0ZyaWVuZC8/b2JqaWQ9MjY0MzMzOCc+PGltZyBzcmM9J2h0dHA6Ly9hc3NldHMuY2l0eXBhZ2VzLmNvbS9pbWcvY2xlYXI1LnBuZycgaWQ9J2ltZ19lbWFpbF90b19mcmllbmQnIC8+PGRpdj5FbWFpbDxici8+dG8gRnJpZW5kPC9kaXY+PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPScvZmVlZGJhY2svRW1haWxBbkVtcGxveWVlLz9kZXBhcnRtZW50PWxldHRlcnMnPjxpbWcgc3JjPSdodHRwOi8vYXNzZXRzLmNpdHlwYWdlcy5jb20vaW1nL2NsZWFyNS5wbmcnIGlkPSdpbWdfd3JpdGUnIC8+PGRpdj5Xcml0ZSB0bzxici8+RWRpdG9yPC9kaXY+PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPScvY29udGVudC9wcmludFZlcnNpb24vMjY0MzMzOCcgcmVsPSdub2ZvbGxvdyc+PGltZyBzcmM9J2h0dHA6Ly9hc3NldHMuY2l0eXBhZ2VzLmNvbS9pbWcvY2xlYXI1LnBuZycgaWQ9J2ltZ19wcmludCcgLz48ZGl2PlByaW50PGJyLz5BcnRpY2xlPC9kaXY+PC9hPjwvdGQ+ICAgICAgICA8L3RyPg0KICAgIDwvdGFibGU+DQo8L2Rpdj4NCg0KIDwhLS0gL05PR1NBIC0tPjwhLS0gQmVTb2NpYWwgd2lkZ2V0IGhlcmUgLS0+DQo8IS0tIGFydGljbGVsaW5rcyBlbGVtZW50IGhlcmUgLS0+DQo8IS0tIHJlZGRpdCBidXR0b24gLS0+DQogICAgPGRpdiBjbGFzcz0icmVkZGl0LWNvbnRhaW5lciI+DQogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5yZWRkaXRfbmV3d2luZG93PScxJzwvc2NyaXB0Pg0KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vd3d3LnJlZGRpdC5jb20vc3RhdGljL2J1dHRvbi9idXR0b24xLmpzIj48L3NjcmlwdD4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSd0cmlwbGViYXInPiZuYnNwOzwvZGl2Pg0KPGEgbmFtZT0iQ29tbWVudHMiPjwvYT48YSBuYW1lPSJjb21tZW50cyI+PC9hPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3pvci5saXZlZnlyZS5jb20vd2pzL3YzLjAvamF2YXNjcmlwdHMvbGl2ZWZ5cmUuanMiPjwvc2NyaXB0Pgo8ZGl2IGNsYXNzPSJsZkJveCB2MyI+CiAgICA8c3BhbiBjbGFzcz0ibGlua3MiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubXl2b2ljZW5hdGlvbi5jb20iPjxpbWcgc3JjPSJAQXNzZXRTZXJ2ZXJQcmVmaXhAL2ltZy9sb2dvLW12bi0xMDAucG5nIiBhbHQ9Ik15IFZvaWNlIE5hdGlvbiIvPjwvYT4KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm15dm9pY2VuYXRpb24uY29tL2Fib3V0L2hlbHAvIj48aW1nIGNsYXNzPSJsZkhlbHAiIHNyYz0iQEFzc2V0U2VydmVyUHJlZml4QC9pbWcvY2xlYXI1LnBuZyIgYWx0PSJIZWxwIiB0aXRsZT0iSGVscCIvPjwvYT4KICAgIDwvc3Bhbj4KICAgIDxkaXYgaWQ9ImxpdmVmeXJlIj48c2NyaXB0PgogIChmdW5jdGlvbigpIHsKICAgIAogICB2YXIgYT10aGlzO3ZhciBiLGMsZCxlLGY7ZnVuY3Rpb24gZygpe3JldHVybiBhLm5hdmlnYXRvcj9hLm5hdmlnYXRvci51c2VyQWdlbnQ6bnVsbH1mPWU9ZD1jPWI9ITE7dmFyIGg7aWYoaD1nKCkpe3ZhciBpPWEubmF2aWdhdG9yO2I9MD09aC5pbmRleE9mKCJPcGVyYSIpO2M9IWImJi0xIT1oLmluZGV4T2YoIk1TSUUiKTtlPShkPSFiJiYtMSE9aC5pbmRleE9mKCJXZWJLaXQiKSkmJi0xIT1oLmluZGV4T2YoIk1vYmlsZSIpO2Y9IWImJiFkJiYiR2Vja28iPT1pLnByb2R1Y3R9dmFyIGo9YyxrPWYsbD1kLG09ZTt2YXIgbjtpZihiJiZhLm9wZXJhKXt2YXIgbz1hLm9wZXJhLnZlcnNpb247ImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKX1lbHNlIGs/bj0vcnZcOihbXlwpO10rKShcKXw7KS86aj9uPS9NU0lFXHMrKFteXCk7XSspKFwpfDspLzpsJiYobj0vV2ViS2l0XC8oXFMrKS8pLG4mJm4uZXhlYyhnKCkpO3ZhciBwPWRvY3VtZW50LHE9cC5jcmVhdGVFbGVtZW50KCJsaW5rIik7cS5yZWw9InN0eWxlc2hlZXQiO3EudHlwZT0idGV4dC9jc3MiO3EuaHJlZj0iaHR0cDovL3d3dy5saXZlZnlyZS5jb20vd2pzL3YzLjAvY3NzL2xpdmVmeXJlXyIrKG0/Im1vYmlsZSI6ImVtYmVkIikrIi5jc3MiO3EubWVkaWE9ImFsbCI7cC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHEpO3ZhciByPSJoZWFkZXIgaGdyb3VwIGZvb3RlciBhcnRpY2xlIHNlY3Rpb24gYXNpZGUgbmF2IGZpZ3VyZSBmaWdjYXB0aW9uIGVtYmVkIGF1ZGlvIHZpZGVvIGNhbnZhcyBkZXRhaWxzIHN1bW1hcnkgdGltZSBtYXJrIi5zcGxpdCgiICIpLHM9cC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdDtmb3IodD0wOyB0PHIubGVuZ3RoOyB0Kyspe3MuYXBwZW5kQ2hpbGQocC5jcmVhdGVFbGVtZW50KHJbdF0pKX07CiAgIH0pKCk7ICAgIAo8L3NjcmlwdD4KPGRpdiBjbGFzcz0iZnlyZSBmeXJlLXdpZHRoLWxhcmdlIj4KICA8ZGl2IGNsYXNzPSJmeXJlLXdpZGdldCI+CiAgICA8ZGl2IGNsYXNzPSJmeXJlLXN0cmVhbS1zdGF0cyI+CiAgICAgIDxkaXYgY2xhc3M9ImZ5cmUtY29tbWVudC1jb3VudCI+CiAgICAgICAgPHNwYW4+MCBjb21tZW50czwvc3Bhbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJmeXJlLWRpdmlkZXIiPjwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZnlyZS1oZWxwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmeXJlLWJveC13cmFwcGVyIj4KICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9saXZlZnlyZS5jb20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZnlyZS1sb2dvLWRyb3AiPiZuYnNwPC9zcGFuPgogICAgICAgICAgPGltZyBjbGFzcz0iZnlyZS1sb2dvLWhlbHAiIHNyYz0iaHR0cDovL3d3dy5saXZlZnlyZS5jb20vd2pzL3YzLjAvaW1hZ2VzL2xmLWxvZ28ucG5nIiBhbHQ9IkxpdmVmeXJlIiAvPjwvYT4KICAgICAgICAgIAogICAgICAgICAgPHVsIGNsYXNzPSJmeXJlLWJveC1saXN0Ij4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9saXZlZnlyZS5jb20iIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iR2V0IExpdmVmeXJlIj5HZXQKICAgICAgICAgICAgTGl2ZWZ5cmU8L2E+PC9saT4KCiAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vc3VwcG9ydC5saXZlZnlyZS5jb20iIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0KICAgICAgICAgICAgIkZBUSI+RkFRPC9hPjwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImZ5cmUtYXV0aCI+CiAgICAgIDxkaXYgY2xhc3M9ImZ5cmUtbG9naW4tYmFyIj48YSByZWw9Im5vZm9sbG93IiBocmVmPSIjIiBjbGFzcz0iZnlyZS11c2VyLWxvZ2dlZG91dCI+U2lnbiBpbjwvYT48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImZ5cmUtZWRpdG9yIj4KICAgICAgPGRpdiBjbGFzcz0iZnlyZS1lZGl0b3ItY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmeXJlLWVkaXRvci1lZGl0YWJsZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7Ij48L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZnlyZS1lZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLXRvb2xiYXIgZ29vZy10b29sYmFyLWhvcml6b250YWwiIHN0eWxlPQogICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IiByb2xlPSJ0b29sYmFyIiBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9IiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLWxlZnQgZnlyZS1mb3JtYXQtYnV0dG9uIiB0aXRsZT0iIgogICAgICAgICAgICByb2xlPSJidXR0b24iIHN0eWxlPSItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyIgaWQ9IjowIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBmeXJlLWJ1dHRvbi1sZWZ0LW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLWxlZnQtaW5uZXItYm94IiBzdHlsZT0KICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZnlyZS1idXR0b24tbGVmdCBmeXJlLW1lbnRpb24tYnV0dG9uIiB0aXRsZT0iIgogICAgICAgICAgICByb2xlPSJidXR0b24iIHN0eWxlPSItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyIgaWQ9IjoxIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBmeXJlLWJ1dHRvbi1sZWZ0LW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLWxlZnQtaW5uZXItYm94IiBzdHlsZT0KICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZnlyZS1idXR0b24tbGVmdCBmeXJlLWZvbGxvdy1idXR0b24iIHRpdGxlPSIiCiAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIgc3R5bGU9Ii13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IiBpZD0iOjIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLWxlZnQtb3V0ZXItYm94IiBzdHlsZT0KICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZnlyZS1idXR0b24tbGVmdC1pbm5lci1ib3giIHN0eWxlPQogICAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgKyBGb2xsb3cKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9CiAgICAgICAgICAgICJnb29nLWlubGluZS1ibG9jayBmeXJlLWJ1dHRvbi1yaWdodCBmeXJlLXBvc3QtYnV0dG9uIGZ5cmUtcG9zdC1idXR0b24tZW5hYmxlZCIKICAgICAgICAgICAgdGl0bGU9IiIgcm9sZT0iYnV0dG9uIiBzdHlsZT0iLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiIGlkPSI6MyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZnlyZS1idXR0b24tcmlnaHQtb3V0ZXItYm94IiBzdHlsZT0KICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZnlyZS1idXR0b24tcmlnaHQtaW5uZXItYm94IiBzdHlsZT0KICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgIFBvc3QgY29tbWVudAogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0KICAgICAgICAgICAgImdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLXJpZ2h0IGZ5cmUtcG9zdC10byBmeXJlLXBvc3QtdG8tZmFjZWJvb2siCiAgICAgICAgICAgIHRpdGxlPSIiIHJvbGU9ImJ1dHRvbiIgc3R5bGU9Ii13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IiBpZD0iOjQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLXJpZ2h0LW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLXJpZ2h0LWlubmVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9CiAgICAgICAgICAgICJnb29nLWlubGluZS1ibG9jayBmeXJlLWJ1dHRvbi1yaWdodCBmeXJlLXBvc3QtdG8gZnlyZS1wb3N0LXRvLXR3aXR0ZXIiCiAgICAgICAgICAgIHRpdGxlPSIiIHJvbGU9ImJ1dHRvbiIgc3R5bGU9Ii13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IiBpZD0iOjUiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLXJpZ2h0LW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGZ5cmUtYnV0dG9uLXJpZ2h0LWlubmVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9CiAgICAgICAgICAgICJnb29nLWlubGluZS1ibG9jayBmeXJlLWJ1dHRvbi1yaWdodCBmeXJlLXBvc3QtdG8gZnlyZS1wb3N0LXRvLWxpbmtlZGluIgogICAgICAgICAgICB0aXRsZT0iIiByb2xlPSJidXR0b24iIHN0eWxlPSItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyIgaWQ9Ijo3Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBmeXJlLWJ1dHRvbi1yaWdodC1vdXRlci1ib3giIHN0eWxlPQogICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBmeXJlLWJ1dHRvbi1yaWdodC1pbm5lci1ib3giIHN0eWxlPQogICAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLXRvb2xiYXItc2VwYXJhdG9yIGdvb2ctaW5saW5lLWJsb2NrIiBzdHlsZT0KICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IiByb2xlPSJzZXBhcmF0b3IiIGlkPSI6NiI+CiAgICAgICAgICAgICAgJm5ic3A7CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZnlyZS1mb3JtYXQtdG9vbGJhciIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy10b29sYmFyIGdvb2ctdG9vbGJhci1ob3Jpem9udGFsIiBzdHlsZT0KICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IiByb2xlPSJ0b29sYmFyIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGdvb2ctdG9vbGJhci1idXR0b24iIHRpdGxlPSJCb2xkIgogICAgICAgICAgICAgIGFyaWEtcHJlc3NlZD0idHJ1ZSIgcm9sZT0iYnV0dG9uIiBzdHlsZT0iLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiIGlkPQogICAgICAgICAgICAgICIrYm9sZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLWlubmVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHItaWNvbiB0ci1ib2xkIiBzdHlsZT0iLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uIiB0aXRsZT0iSXRhbGljIgogICAgICAgICAgICAgIGFyaWEtcHJlc3NlZD0idHJ1ZSIgcm9sZT0iYnV0dG9uIiBzdHlsZT0iLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiIGlkPQogICAgICAgICAgICAgICIraXRhbGljIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGdvb2ctdG9vbGJhci1idXR0b24tb3V0ZXItYm94IiBzdHlsZT0KICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGdvb2ctdG9vbGJhci1idXR0b24taW5uZXItYm94IiBzdHlsZT0KICAgICAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ci1pY29uIHRyLWl0YWxpYyIgc3R5bGU9Ii13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZ29vZy10b29sYmFyLWJ1dHRvbiIgdGl0bGU9IlVuZGVybGluZSIKICAgICAgICAgICAgICBhcmlhLXByZXNzZWQ9InRydWUiIHJvbGU9ImJ1dHRvbiIgc3R5bGU9Ii13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IiBpZD0KICAgICAgICAgICAgICAiK3VuZGVybGluZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLWlubmVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHItaWNvbiB0ci11bmRlcmxpbmUiIHN0eWxlPSItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdvb2ctaW5saW5lLWJsb2NrIGdvb2ctdG9vbGJhci1idXR0b24iIHRpdGxlPQogICAgICAgICAgICAgICJBZGQgb3IgcmVtb3ZlIGxpbmsiIGFyaWEtcHJlc3NlZD0idHJ1ZSIgcm9sZT0iYnV0dG9uIiBzdHlsZT0KICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiIGlkPSIrbGluayI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLWlubmVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHItbGluayIgc3R5bGU9Ii13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICAgIExpbmsKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZ29vZy10b29sYmFyLWJ1dHRvbiIgdGl0bGU9Ik51bWJlcmVkIGxpc3QiCiAgICAgICAgICAgICAgYXJpYS1wcmVzc2VkPSJ0cnVlIiByb2xlPSJidXR0b24iIHN0eWxlPSItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyIgaWQ9CiAgICAgICAgICAgICAgIitpbnNlcnRPcmRlcmVkTGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLWlubmVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHItaWNvbiB0ci1pbnNlcnRPcmRlcmVkTGlzdCIgc3R5bGU9CiAgICAgICAgICAgICAgICAgICAgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ29vZy1pbmxpbmUtYmxvY2sgZ29vZy10b29sYmFyLWJ1dHRvbiIgdGl0bGU9IkJ1bGxldCBsaXN0IgogICAgICAgICAgICAgIGFyaWEtcHJlc3NlZD0idHJ1ZSIgcm9sZT0iYnV0dG9uIiBzdHlsZT0iLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiIGlkPQogICAgICAgICAgICAgICIraW5zZXJ0VW5vcmRlcmVkTGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLW91dGVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnb29nLWlubGluZS1ibG9jayBnb29nLXRvb2xiYXItYnV0dG9uLWlubmVyLWJveCIgc3R5bGU9CiAgICAgICAgICAgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHItaWNvbiB0ci1pbnNlcnRVbm9yZGVyZWRMaXN0IiBzdHlsZT0KICAgICAgICAgICAgICAgICAgICAiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsiPjwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImZ5cmUtY29tbWVudC1zdHJlYW0iIHN0eWxlPSIiPgogICAgICA8ZGl2IGNsYXNzPSJmeXJlLXN0cmVhbS1zb3J0Ij4KICAgICAgICBTb3J0OiA8YSBjbGFzcz0iZnlyZS1zdHJlYW0tc29ydC1uZXdlc3QiPk5ld2VzdDwvYT4gfCA8YSBjbGFzcz0KICAgICAgICAiZnlyZS1zdHJlYW0tc29ydC1vbGRlc3QiPk9sZGVzdDwvYT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJmeXJlLXN0cmVhbS1jb250ZW50Ij4gICAgICAKICAgICAgICAKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjwvZGl2PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICBNVk4ub25SZWFkeShmdW5jdGlvbigkKXsKICAgICAgICAgICAgdmFyIExGX0NvbXBvbmVudCA9IGZ1bmN0aW9uKGNvbnRyb2xsZXIpewogICAgICAgICAgICAgICAgdmFyIG1lID0gdGhpczsKICAgICAgICAgICAgICAgIG1lLk1WTiA9IGNvbnRyb2xsZXI7CiAgICAgICAgICAgICAgICBtZS52ZXJzaW9uID0gJ0xpdmVGeXJlIGZvciBNVk4gMi4wJzsKICAgICAgICAgICAgICAgIG1lLmF1dG9Jbml0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgTEZfQ29tcG9uZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgIGNvb2tpZU5hbWU6ICdsaXZlZnlyZV90b2tlbicsCiAgICAgICAgICAgICAgICBhbm9uTmFtZTogJ01WTlthbm9uXScsCiAgICAgICAgICAgICAgICBhbm9uOiBudWxsLAogICAgICAgICAgICAgICAgbG9naW46IGZ1bmN0aW9uKG5ld1Rva2VuKXsKICAgICAgICAgICAgICAgICAgICB2YXIgbWUgPSB0aGlzOwogICAgICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IG5ld1Rva2VufHxWVk0uZ2V0Q29va2llKG1lLmNvb2tpZU5hbWUpfHxmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZih0b2tlbil7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ5cmUuY29udi5sb2dpbih0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZS5jbGVhbih0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfWNhdGNoKGUpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVlZNLmRlbENvb2tpZShtZS5jb29raWVOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFuZXdUb2tlbil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUubG9naW4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICBNVk4ucXVldWUoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1lLk1WTi51c2VyfHxWVk0uZ2V0Q29va2llKG1lLmFub25OYW1lKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlZNLmRlYnVnLnAoJ1JlcXVlc3RpbmcgTmV3IFRva2VuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUuTVZOLnNzby5nZXRMZlRva2VuKGZ1bmN0aW9uKG9iail7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9iaiAmJiBvYmouc3RhdHVzID09ICdzdWNjZXNzJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVk0uc2V0Q29va2llKG1lLmNvb2tpZU5hbWUsIG9iai50b2tlbi50b2tlbiwgZmFsc2UsICIvIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZS5sb2dpbihvYmoudG9rZW4udG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBiaW5kczogZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICB2YXIgbWUgPSB0aGlzOwogICAgICAgICAgICAgICAgICAgIGlmKCFtZS5hdXRoKXsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF1dGggPSBuZXcgZnlyZS5jb252LlJlbW90ZUF1dGhEZWxlZ2F0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICBhdXRoLmxvZ2luID0gZnVuY3Rpb24oaGFuZGxlQXMpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTVZOLnF1ZXVlKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIW1lLk1WTi51c2VyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUuTVZOLm9tbmkuYWN0aW9uU3JjID0gJ2xmJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUuTVZOLm9tbmkuYWN0aW9uKG1lLk1WTi5vbW5pLmJ1aWxkQWN0aW9uKCdsb2dpbicsIHtzaWQ6IG1lLmdldFNJRCgpfSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVk4ucXVldWUoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1WTi5MRi5sb2dpbigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUFzLmZhaWx1cmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBhdXRoLmxvZ291dCA9IGZ1bmN0aW9uKGhhbmRsZUFzKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1WTi5xdWV1ZShmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1lLk1WTi51c2VyfHxWVk0uZ2V0Q29va2llKG1lLmFub25OYW1lKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZWTS5kZWxDb29raWUobWUuY29va2llTmFtZSwgJy8nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlZNLmRlbENvb2tpZShtZS5hbm9uTmFtZSwgJy8nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUuTVZOLm9tbmkuYWN0aW9uKCdsb2dvdXQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUFzLnN1Y2Nlc3MoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBhdXRoLnZpZXdQcm9maWxlID0gZnVuY3Rpb24oaGFuZGxlQXMsIGF1dGhvcil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighYXV0aG9yLmlkLm1hdGNoKC9eYW5vbl8vKSAmJiBhdXRob3IucHJvZmlsZVVybCAhPSAiIil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gYXV0aG9yLnByb2ZpbGVVcmw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXMuc3VjY2VzcygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUuY2xlYW4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBhdXRoLmVkaXRQcm9maWxlID0gZnVuY3Rpb24oaGFuZGxlQXMsIGF1dGhvcil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhdXRob3IuaWQubWF0Y2goL15hbm9uXy8pKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZS5jbGVhbigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUFzLmZhaWx1cmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vd3d3Lm15dm9pY2VuYXRpb24uY29tL3Byb2ZpbGUvc2V0dGluZ3MvIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBcy5zdWNjZXNzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbWUuYXV0aCA9IGF1dGg7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiBtZS5hdXRoOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGNsZWFuOiBmdW5jdGlvbihjYWxsZWRBZnRlckxvZ2luLCBhdHRlbXB0KXsKICAgICAgICAgICAgICAgICAgICB2YXIgbWUgPSB0aGlzOwogICAgICAgICAgICAgICAgICAgIE1WTi5xdWV1ZShmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBBTk9OCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNhbGxlZEFmdGVyTG9naW4gfHwgbWUuYW5vbiA9PSBudWxsKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZ5cmUuY29udi51c2VyICYmIGZ5cmUuY29udi51c2VyLmlkKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZS5hbm9uID0gKGZ5cmUuY29udi51c2VyLmlkLm1hdGNoKC9eYW5vbl8vKSkgPyB0cnVlIDogZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihjYWxsZWRBZnRlckxvZ2luKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0ID0gKGF0dGVtcHQpID8gYXR0ZW1wdCArIDEgOiAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGF0dGVtcHQgPiA1KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlZNLmRlYnVnLnAoJ0xGIExvZ2luIEZhaWxlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVk0uZGVsQ29va2llKG1lLmNvb2tpZU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVk0uZGVidWcucCgnTEYgTG9naW4gQ2hlY2sgQXR0ZW1wdDogJythdHRlbXB0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXttZS5jbGVhbih0cnVlLCBhdHRlbXB0KX0sIDEwMDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAvLyBBTk9OIENsZWFuIFVwCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1lLmFub24gPT0gdHJ1ZSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdsaSA+IGFbdGl0bGU9IkVkaXQgUHJvZmlsZSJdJywgJy5meXJlLWJveC1saXN0JykucGFyZW50KCdsaScpLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgQWNjb3VudCBCdXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFNVk4udXNlciAmJiAhVlZNLmdldENvb2tpZShNVk4uTEYuYW5vbk5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJGVsID0gJCgnZGl2LmZ5cmUtbG9naW4tYmFyJywgJyNsaXZlZnlyZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGVsLmxlbmd0aCAmJiAkZWwuY2hpbGRyZW4oKS5sZW5ndGggPT0gMSAmJiAhJCgnLmZ5cmUtdXNlci1sb2dnZWRpbicsICRlbCkubGVuZ3RoKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZWwuYXBwZW5kKCc8c3BhbiBjbGFzcz0iY3JlYXRlLW12bi1hY2NvdW50Ij4gb3IgPHNwYW4gY2xhc3M9ImxmcmVnIj5DcmVhdGUgQWNjb3VudDwvc3Bhbj48L3NwYW4+Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVhY2ggQ29tbWVudC9SZXBseQogICAgICAgICAgICAgICAgICAgICAgICAkKCcuZnlyZS1jb21tZW50LXdyYXBwZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJGVsID0gJCgnLmZ5cmUtY29tbWVudC11c2VyW2RhdGEtYXV0aG9yLWlkXj0iYW5vbl8iXScsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGVsLmxlbmd0aCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29tbWVudCBBdmF0YXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdhJywgJGVsKS5yZXBsYWNlV2l0aCgkKCdhIGltZycsICRlbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ3RpdGxlJywgJ0Fub255bW91cyBVc2VyJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbW1lbnQgQXV0aG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVsID0gJGVsLnBhcmVudCgpLmZpbmQoJ2hlYWRlciBhJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVsLnJlcGxhY2VXaXRoKCQoJzxzcGFuLz4nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2Fub25fdXNlcm5hbWUnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dCgkZWwudGV4dCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXR0cigndGl0bGUnLCAnQW5vbnltb3VzIFVzZXInKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb21tZW50IE1lbnRpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdhLmZ5cmUtbWVudGlvbltyZXNvdXJjZV49ImFjY3Q6YW5vbl8iXScsIHRoaXMpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlcGxhY2VXaXRoKCQoJzxzcGFuLz4nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2Fub25fdXNlcm5hbWUnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dCgnQCcgKyAkKCdzcGFuW3Byb3BlcnR5PSJuYW1lIl0nLCB0aGlzKS50ZXh0KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCd0aXRsZScsICdBbm9ueW1vdXMgVXNlcicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29tbWVudCBMaWtlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmZ5cmUtYXZhdGFyJywgdGhpcykuZmlsdGVyKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgkKCdpbWdbc3JjKj0iL2Fub24vIl0nLCB0aGlzKS5sZW5ndGgpID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2EnLCB0aGlzKS5yZXBsYWNlV2l0aCgkKCdhIGltZycsIHRoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCd0aXRsZScsICdBbm9ueW1vdXMgVXNlcicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maWx0ZXIoJ1tjbGFzcyo9ImZ5cmUtY29tbWVudC1hdXRob3ItdGFnLSJdJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsYXNzZXMgPSB0aGlzLmNsYXNzTmFtZS5zcGxpdCgnICcpLCB0YWdzLCBpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcyA9ICQodGhpcyksICRuYW1lID0gJHRoaXMuZmluZCgnLmZ5cmUtY29tbWVudC11c2VybmFtZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbmFtZS5uZXh0KCkuaXMoJy5meXJlLW1vZGVyYXRvcicpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lLm5leHQoKS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgY2xhc3Nlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2xhc3Nlc1tpXS5pbmRleE9mKCdmeXJlLWNvbW1lbnQtYXV0aG9yLXRhZy0nKSA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gY2xhc3Nlc1tpXS5zcGxpdCgnLScpLnBvcCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ2hhcy1tdm4tYmFkZ2UnKS5yZW1vdmVDbGFzcyhjbGFzc2VzW2ldKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWUuYWZ0ZXIoJzxpIGNsYXNzPSJtdm4tYmFkZ2UgJyt0YWcrJyI+Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZ2V0U0lEOiBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgIHZhciBzcmNfZGVzYyA9ICcnOwogICAgICAgICAgICAgICAgICAgIGlmKHdpbmRvdy5PQVNfcXVlcnlfY2F0ZWdvcnl8fGZhbHNlKXsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKE9BU19xdWVyeV9jYXRlZ29yeS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzLywnJykpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYXJ0cyc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX2Rlc2MgPSAxMDMzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmlsbSc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtb3ZpZXMnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19kZXNjID0gMTAzNDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ211c2ljJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfZGVzYyA9IDEwMzU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICduZXdzJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfZGVzYyA9IDEwMzY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXN0YXVyYW50cyc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkaW5pbmcnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZm9vZCc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX2Rlc2MgPSAxMDM3OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Jlc3RvZic6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX2Rlc2MgPSAxMDM4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzh8NTN8JytzcmNfZGVzYzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKCiAgICAgICAgICAgIE1WTi5sb2FkKHsKICAgICAgICAgICAgICAgICdMRic6ewogICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogTEZfQ29tcG9uZW50LAogICAgICAgICAgICAgICAgICAgIHBhcmFtczoge30KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBwYWdlX3RpdGxlID0gJChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpKS5maW5kKCdtZXRhW3Byb3BlcnR5PSJvZzp0aXRsZSJdLCBtZXRhW25hbWU9IndlYnRpdGxlIl0nKS5hdHRyKCdjb250ZW50Jyk7CiAgICAgICAgICAgIGlmICghcGFnZV90aXRsZSkgewogICAgICAgICAgICAgICAgcGFnZV90aXRsZSA9ICQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RpdGxlJykpLnRleHQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aW5kb3cuY29udiA9IGZ5cmUuY29udi5sb2FkKHsKICAgICAgICAgICAgICAgIG5ldHdvcms6ICdteXZvaWNlbmF0aW9uLmZ5cmUuY28nLAogICAgICAgICAgICAgICAgYXV0aERlbGVnYXRlOiBNVk4uTEYuYmluZHMoKSwKICAgICAgICAgICAgICAgIHN0cmluZ3M6IHsKICAgICAgICAgICAgICAgICAgICBzaGFyZURlZmF1bHRUZXh0OiBwYWdlX3RpdGxlID8gIkNoZWNrIG91dCAlcydzIHBvc3Qgb24gXCIiICsgcGFnZV90aXRsZSArICJcIiEiIDogIkNoZWNrIG91dCAlcydzIHBvc3QhIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCBbewogICAgICAgICAgICAgICAgJ2FydGljbGVJZCc6ICdMMk52Ym5SbGJuUXZkbWxsZHk4eU5qUXpNek00JywKICAgICAgICAgICAgICAgICdjaGVja3N1bSc6ICdmMDc0NTM0N2JjYzM2NzkyYWQ3NDZiZGRkOWNjNjk4OScsCiAgICAgICAgICAgICAgICAnY29sbGVjdGlvbk1ldGEnOiAnZXlKMGVYQWlPaUpxZDNRaUxDSmhiR2NpT2lKSVV6STFOaUo5LmV5SjBhWFJzWlNJNklqeHBQa2h2ZHlCMGFHVWdSM0pwYm1Ob0lGTjBiMnhsSUVOb2NtbHpkRzFoY3p4Y0wyay1JaXdpZFhKc0lqb2lhSFIwY0RwY0wxd3ZkM2QzTG1OcGRIbHdZV2RsY3k1amIyMWNMekl3TVRJdE1URXRNVFJjTDJGeWRITmNMMmh2ZHkxMGFHVXRaM0pwYm1Ob0xYTjBiMnhsTFdOb2NtbHpkRzFoYzF3dklpd2lkR0ZuY3lJNkltMXBiaXhoY25ScFkyeGxMRzVsZDNNc2JXbHVYMkZ5ZEdsamJHVXNiV2x1WDI1bGQzTXNZWEowYVdOc1pWOXVaWGR6TEcxcGJsOWhjblJwWTJ4bFgyNWxkM01pTENKamFHVmphM04xYlNJNkltWXdOelExTXpRM1ltTmpNelkzT1RKaFpEYzBObUprWkdRNVkyTTJPVGc1SWl3aVlYSjBhV05zWlVsa0lqb2lUREpPZG1KdVVteGlibEYyWkcxc2JHUjVPSGxPYWxGNlRYcE5OQ0o5Lnoyd29MMEVJOWV5WVR6dVVMeUpBVzU2R1hvQ0xuZWdfS20tZ3ZtbjZMbFEnLAogICAgICAgICAgICAgICAgJ2VsJzogJ2xpdmVmeXJlJywKICAgICAgICAgICAgICAgICdzaXRlSWQnOiAnMzA0NTMyJywKICAgICAgICAgICAgICAgICdhdXRoUGFnZVJlbG9hZCc6IHRydWUKICAgICAgICAgICAgfV0sIGZ1bmN0aW9uKHdpZGdldCl7CiAgICAgICAgICAgICAgICBNVk4uTEYubG9naW4oKTsKICAgICAgICAgICAgICAgIHdpZGdldC5vbignaW5pdGlhbFJlbmRlckNvbXBsZXRlJywgTVZOLkxGLmNsZWFuKTsKICAgICAgICAgICAgICAgIHdpZGdldC5vbignY29tbWVudFBvc3RlZCcsIE1WTi5MRi5jbGVhbik7CiAgICAgICAgICAgICAgICB3aWRnZXQub24oJ2NvbW1lbnRGbGFnZ2VkJywgTVZOLkxGLmNsZWFuKTsKICAgICAgICAgICAgICAgIHdpZGdldC5vbignY29tbWVudExpa2VkJywgTVZOLkxGLmNsZWFuKTsKICAgICAgICAgICAgICAgIHdpZGdldC5vbignY29tbWVudFNoYXJlZCcsIE1WTi5MRi5jbGVhbik7CiAgICAgICAgICAgICAgICB3aWRnZXQub24oJ2NvbW1lbnRDb3VudFVwZGF0ZWQnLCBmdW5jdGlvbihkYXRhKXsKICAgICAgICAgICAgICAgICAgICBNVk4uTEYuY2xlYW4oKTsKICAgICAgICAgICAgICAgICAgICBNVk4ucXVldWUoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnW2RhdGEtbGZ2My1jb3VudGVyXScpLnRleHQoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgTVZOLkxGLmNoYW5nZSA9IGZ1bmN0aW9uKGNvbnYpewogICAgICAgICAgICAgICAgICAgIE1WTi5xdWV1ZShmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXQuY2hhbmdlQ29sbGVjdGlvbihjb252KTsKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgTVZOLnF1ZXVlKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgLy8gUmVnaXN0ZXIgQnV0dG9uCiAgICAgICAgICAgICAgICAgICAgJCgnLmxmcmVnJywgJyNsaXZlZnlyZScpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIU1WTi51c2VyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVk4ub21uaS5hY3Rpb25TcmMgPSAnbGYnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTVZOLm9tbmkuYWN0aW9uKE1WTi5vbW5pLmJ1aWxkQWN0aW9uKCdqb2luJywge3NpZDogTVZOLkxGLmdldFNJRCgpfSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVk4uTEYubG9naW4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIC8vIGhhY2sgb3VyIGhvdmVyY2FyZHMgb250byB0aGUgbGl2ZWZ5cmUgdXNlciBpbWdzL2xpbmtzCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlX2xpdmVfZ2F0ZSA9IGZ1bmN0aW9uKCRlbCwgc2VsLCBldiwgY2IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRlbC5kZWxlZ2F0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVsLmRlbGVnYXRlKHNlbCwgZXYsIGNiKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWwubGl2ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVsLmZpbmQoc2VsKS5saXZlKGV2LCBjYik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIGRlX2xpdmVfZ2F0ZSgkKCcjbGl2ZWZ5cmUnKSwgJy5meXJlLWNvbW1lbnQtd3JhcHBlcicsICdtb3VzZWVudGVyJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eSgnbXZuLWhvdmVyY2FyZC1lbicpKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHVzZXIgPSAkdGhpcy5maW5kKCcuZnlyZS1jb21tZW50LXVzZXInKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpZCAgID0gJHVzZXIuZGF0YSgnYXV0aG9yLWlkJyk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVpZCB8fCB1aWQuaW5kZXhPZignYW5vbl8nKSA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuYXR0cignbXZuLWhvdmVyY2FyZC1lbicsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJHVzZXIuYWRkKCR0aGlzLmZpbmQoJy5meXJlLWNvbW1lbnQtdXNlcm5hbWVbaHJlZl0nKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLW9tbmktdXNlcicsIHVpZC5zcGxpdCgnQCcpLnNsaWNlKDAsMSkuam9pbigpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRhdGEoJ29tbmktdXNlcm5hbWUnLCAkdXNlci5kYXRhKCdmcm9tJykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGF0YSgnb21uaS11c2VycGhvdG8nLCAkdXNlci5maW5kKCdpbWcnKS5hdHRyKCdzcmMnKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hdHRyKCdtdm4taG92ZXJjYXJkLWVuJywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBOb3RpZmljYXRpb24gV2luZG93CiAgICAgICAgICAgICAgICAgICAgdmFyIHNldE5vdGlmeVBvc2l0aW9uID0gZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmZ5cmUtbm90aWZpZXItY29udGFpbmVyJykuY3NzKCdyaWdodCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgkKCdib2R5Jykud2lkdGgoKSAtICQoJyNsaXZlZnlyZScpLm9mZnNldCgpLmxlZnQgLSBwYXJzZUludCgkKHRoaXMpLmNzcygnd2lkdGgnKS5yZXBsYWNlKCdweCcsICcnKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzZXROb3RpZnlQb3NpdGlvbigpOwogICAgICAgICAgICAgICAgICAgICQod2luZG93KS5iaW5kKCdyZXNpemUgc2Nyb2xsJywgc2V0Tm90aWZ5UG9zaXRpb24pOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KICAgIDxkaXYgaWQ9InBvd2VyZWRfYnlfbGl2ZWZ5cmVfbmV3Ij48YSBocmVmPSJodHRwOi8vbGl2ZWZ5cmUuY29tIiB0YXJnZXQ9Il9ibGFuayI+UG93ZXJlZCBieSBMaXZlZnlyZTwvYT48L2Rpdj4KPC9kaXY+DQo8ZGl2IGNsYXNzPSd0cmlwbGViYXInPiZuYnNwOzwvZGl2Pg0KDQo8IS0tIFJlY2VudEFydGljbGVzV2lkZ2V0IC0tPg0KICAgIDwhLS0gL1JlY2VudEFlcnRpY2xlc1dpZGdldCAtLT4NCg0KDQo8L2Rpdj4NCjxmb3JtIGlkPSJUcmFja2VyRm9ybSI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib2JqaWQiIHZhbHVlPSIyNjQzMzM4IiAvPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InR5cGUiIHZhbHVlPSJzdG9yeSIgLz4NCiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZW5kVG9GcmllbmQiIHZhbHVlPSIwIiAvPg0KPC9mb3JtPg0KDQo8ZGl2IGNsYXNzPSJPVVRCUkFJTiIgZGF0YS1zcmM9Imh0dHA6Ly93d3cuY2l0eXBhZ2VzLmNvbS8yMDEyLTExLTE0L2FydHMvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzLyIgZGF0YS13aWRnZXQtaWQ9IkZUX04yIiBkYXRhLW9iLXRlbXBsYXRlPSJtaW4iPjwvZGl2Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSJhc3luYyIgc3JjPSJodHRwOi8vd2lkZ2V0cy5vdXRicmFpbi5jb20vb3V0YnJhaW4uanMiPjwvc2NyaXB0PiI7czoxMzoiY29udGVudExlbmd0aCI7aTo0MTgzOTtzOjExOiJtZXRhQ29udGVudCI7YToxNjp7czoxMzoib2c6aW1hZ2VfbGFzdCI7YToxOntpOjA7czo0NDoiaHR0cDovL3d3dy5jaXR5cGFnZXMuY29tL2ltZy9jaXR5bG9nby1sZy5wbmciO31zOjg6ImtleXdvcmRzIjtzOjE6IiwiO3M6Nzoib2c6dHlwZSI7czo3OiJhcnRpY2xlIjtzOjg6Im9nOmltYWdlIjthOjE6e2k6MDtzOjM5OiJodHRwOi8vbWVkaWEubmV3dGltZXMuY29tLzgzNDA4NjAuMC5qcGciO31zOjExOiJvYXNTaXRlUGFnZSI7czo1OiIvYXJ0cyI7czoxNDoiYWRJbmRleFNlY3Rpb24iO3M6NDoiYXJ0cyI7czo3OiJwdWJkYXRlIjtzOjE5OiIyMDEyLTExLTEzIDEzOjU1OjUyIjtzOjEzOiJjYW5vbmljYWxMaW5rIjtzOjUzOiIvMjAxMi0xMS0xNC9hcnRzL2hvdy10aGUtZ3JpbmNoLXN0b2xlLWNocmlzdG1hcy9mdWxsLyI7czo2OiJvZzp1cmwiO3M6NzI6Imh0dHA6Ly93d3cuY2l0eXBhZ2VzLmNvbS8yMDEyLTExLTE0L2FydHMvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzLyI7czo4OiJ3ZWJUaXRsZSI7czo3MzoiSG93IHRoZSBHcmluY2ggU3RvbGUgQ2hyaXN0bWFzIC0gUGFnZSAxIC0gQXJ0cyAtIEBDSVRZTkFNRUAgLSBAUEFQRVJOQU1FQCI7czo4OiJvZzp0aXRsZSI7czozMDoiSG93IHRoZSBHcmluY2ggU3RvbGUgQ2hyaXN0bWFzIjtzOjczOiJIb3cgdGhlIEdyaW5jaCBTdG9sZSBDaHJpc3RtYXMgLSBQYWdlIDEgLSBBcnRzIC0gQENJVFlOQU1FQCAtIEBQQVBFUk5BTUVAIjtzOjQ6InRydWUiO3M6NjoibWVkaXVtIjtzOjQ6Im5ld3MiO3M6MTE6IndlYlN1YlRpdGxlIjtzOjQ6IkFydHMiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjIxOToiSXQncyBoYXJkIHRvIGdldCBpbnRvIHRoZSBDaHJpc3RtYXMgc3Bpcml0IG9uIGEgc3VubnkgZWFybHktTm92ZW1iZXIgYWZ0ZXJub29uIHdoZW4gdGhlIHRlbXBlcmF0dXJlIGlzIHRpcHBpbmcgcGFzdCA2MCBkZWdyZWVzLCBidXQgdGhlIGZvbGtzIGF0IENoaWxkcmVuJ3MgVGhlYXRyZSBDb21wYW55IGNlcnRhaW5seSB3ZXJlIHVwIHRvIHRoZSB0YXNrIHdpdGggSG93IHRoZSBHcmluIjtzOjE0OiJvZzpkZXNjcmlwdGlvbiI7czoyMTk6Ikl0J3MgaGFyZCB0byBnZXQgaW50byB0aGUgQ2hyaXN0bWFzIHNwaXJpdCBvbiBhIHN1bm55IGVhcmx5LU5vdmVtYmVyIGFmdGVybm9vbiB3aGVuIHRoZSB0ZW1wZXJhdHVyZSBpcyB0aXBwaW5nIHBhc3QgNjAgZGVncmVlcywgYnV0IHRoZSBmb2xrcyBhdCBDaGlsZHJlbidzIFRoZWF0cmUgQ29tcGFueSBjZXJ0YWlubHkgd2VyZSB1cCB0byB0aGUgdGFzayB3aXRoIEhvdyB0aGUgR3JpbiI7fXM6OToiQ2FjaGVkYXRhIjthOjA6e31zOjc6IkNvbnRleHQiO2E6MTE6e3M6MTQ6IkFkSW5kZXhTZWN0aW9uIjtzOjQ6ImFydHMiO3M6NzoiU2VjdGlvbiI7czo0OiJhcnRzIjtzOjE2OiJPQVNRdWVyeUNhdGVnb3J5IjtzOjQ6IkFydHMiO3M6MTk6Ik9BU1F1ZXJ5U3ViY2F0ZWdvcnkiO3M6ODoiQXJ0aWNsZXMiO3M6MTA6InBhZ2VQYXJhbXMiO3M6MzE6IgogICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAiO3M6NzoiT3JpZ1VybCI7czo0ODoiLzIwMTItMTEtMTQvYXJ0cy9ob3ctdGhlLWdyaW5jaC1zdG9sZS1jaHJpc3RtYXMvIjtzOjM6IlVybCI7czoxMDE6Ii9jb250ZW50L3ZpZXcvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzLy9vcmlnVXJsOi8yMDEyLTExLTE0L2FydHMvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzIjtzOjEzOiJDb21tZW50c09iaklkIjtzOjc6IjI2NDMzMzgiO3M6MTA6IlN1YnNlY3Rpb24iO3M6MDoiIjtzOjE0OiJPQVNRdWVyeUF1dGhvciI7czo4OiJFZF9IdXljayI7czo5OiJJc3N1ZURhdGUiO3M6MTA6IjIwMTItMTEtMTQiO31zOjE4OiJQb3N0UHJvY2Vzc01lc3NhZ2UiO086MjQ6IlZWTV9NZXNzYWdlUXVldWVfTWVzc2FnZSI6Mjp7czo4OiIAKgBfdHlwZSI7czo3OiJBZEluZGV4IjtzOjExOiIAKgBfcGF5bG9hZCI7YToxOntpOjA7YToyOntzOjI6ImlkIjtzOjc6IjE5MzgyOTAiO3M6NDoidHlwZSI7czoxMToidG93ZXJfdmlld3MiO319fX0
///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> YTo2OntzOjEzOiJjb250ZW50U3RhdHVzIjthOjE6e3M6Njoic3RhdHVzIjtiOjE7fXM6NzoiY29udGVudCI7czoxNzA6IjwhLS0gTk9HU0EgLS0+CjxkaXYgY2xhc3M9IkFkcyIgaWQ9Ik1pZGRsZSI+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgPCEtLQogICAgICAgIE9BU19BRCgnTWlkZGxlJyk7CiAgICAgICAgLy8tLT4KICAgIDwvc2NyaXB0Pgo8L2Rpdj4KPCEtLSAvTk9HU0EgLS0+IjtzOjEzOiJjb250ZW50TGVuZ3RoIjtpOjE3MDtzOjExOiJtZXRhQ29udGVudCI7YToxOntzOjEzOiJvZzppbWFnZV9sYXN0IjthOjE6e2k6MDtzOjQ0OiJodHRwOi8vd3d3LmNpdHlwYWdlcy5jb20vaW1nL2NpdHlsb2dvLWxnLnBuZyI7fX1zOjk6IkNhY2hlZGF0YSI7YTowOnt9czo3OiJDb250ZXh0IjthOjc6e3M6MTQ6IkFkSW5kZXhTZWN0aW9uIjtzOjU6Im11c2ljIjtzOjExOiJhbHBoYUxldHRlciI7czoxOiJJIjtzOjc6IlNlY3Rpb24iO3M6NToibXVzaWMiO3M6MTY6Ik9BU1F1ZXJ5Q2F0ZWdvcnkiO3M6NToiTXVzaWMiO3M6MTk6Ik9BU1F1ZXJ5U3ViY2F0ZWdvcnkiO3M6NjoiU2VhcmNoIjtzOjc6Ik9yaWdVcmwiO3M6MzQ6Ii9kaXJlY3RvcnkvdGhlYXRlcnMvYWxwaGFMZXR0ZXI6SS8iO3M6MzoiVXJsIjtzOjczOiIvc2VydmljZXMvZ2V0RWxlbWVudC9BZHMvWVRveE9udHpPamc2SW5CdmMybDBhVzl1SWp0ek9qWTZJazFwWkdSc1pTSTdmUT09Ijt9fQ
///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> YTo2OntzOjEzOiJjb250ZW50U3RhdHVzIjthOjE6e3M6Njoic3RhdHVzIjtiOjE7fXM6NzoiY29udGVudCI7czo1NzE6IjxkaXYgY2xhc3M9ImZhY2Vib29rX3JlY29tbWVuZGVkIj4KICAgIDxkaXYgY2xhc3M9ImZhY2Vib29rX3JlY29tbWVuZGVkX2hlYWRlciI+CiAgICAgICAgPGgyPkNpdHlwYWdlcyBvbiBGYWNlYm9vazwvaDI+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InRvcF9zdG9yaWVzIHJlY29tbWVuZGVkX3N0b3JpZXMiPgogICAgICAgIDxpZnJhbWUgc3JjPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9wbHVnaW5zL2FjdGl2aXR5LnBocD9zaXRlPWNpdHlwYWdlcy5jb20sYmxvZ3MuY2l0eXBhZ2VzLmNvbSZhbXA7d2lkdGg9MzY4JmFtcDtoZWlnaHQ9MzAwJmFtcDtoZWFkZXI9ZmFsc2UmYW1wO2NvbG9yc2NoZW1lPWxpZ2h0JmFtcDtmb250PWFyaWFsJmFtcDtib3JkZXJfY29sb3I9JTIzZmZmZmZmJmFtcDtyZWNvbW1lbmRhdGlvbnM9ZmFsc2UiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MzY4cHg7IGhlaWdodDozMDBweDsiIGFsbG93VHJhbnNwYXJlbmN5PSJ0cnVlIj48L2lmcmFtZT4KICAgIDwvZGl2Pgo8L2Rpdj4iO3M6MTM6ImNvbnRlbnRMZW5ndGgiO2k6NTcxO3M6MTE6Im1ldGFDb250ZW50IjthOjE6e3M6MTM6Im9nOmltYWdlX2xhc3QiO2E6MTp7aTowO3M6NDQ6Imh0dHA6Ly93d3cuY2l0eXBhZ2VzLmNvbS9pbWcvY2l0eWxvZ28tbGcucG5nIjt9fXM6OToiQ2FjaGVkYXRhIjthOjA6e31zOjc6IkNvbnRleHQiO2E6MTE6e3M6MTQ6IkFkSW5kZXhTZWN0aW9uIjtzOjQ6Im5ld3MiO3M6NzoiU2VjdGlvbiI7czo0OiJuZXdzIjtzOjE2OiJPQVNRdWVyeUNhdGVnb3J5IjtzOjQ6Ik5ld3MiO3M6MTk6Ik9BU1F1ZXJ5U3ViY2F0ZWdvcnkiO3M6NjoiU2VhcmNoIjtzOjEwOiJwYWdlUGFyYW1zIjtzOjMxOiIKICAgICAgICAgIAogICAgICAgICAgCiAgICAgICAgIjtzOjc6Ik9yaWdVcmwiO3M6NDg6Ii8yMDEyLTExLTE0L2FydHMvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzLyI7czozOiJVcmwiO3M6Mjk6Ii9zZXJ2aWNlcy9mYWNlYm9va1JlY29tbWVuZGVkIjtzOjEzOiJDb21tZW50c09iaklkIjtzOjY6IjQ5MjU5OCI7czoxMDoiU3Vic2VjdGlvbiI7czo3OiJGZWF0dXJlIjtzOjE0OiJPQVNRdWVyeUF1dGhvciI7czoxMjoiTWF0dF9TbnlkZXJzIjtzOjk6Iklzc3VlRGF0ZSI7czoxMDoiMjAwOC0wNi0yNSI7fX0
///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> YTo2OntzOjEzOiJjb250ZW50U3RhdHVzIjthOjE6e3M6Njoic3RhdHVzIjtiOjE7fXM6NzoiY29udGVudCI7czo0MzE6IjxkaXYgY2xhc3M9J2NoaXNlbF91IHJfYm94IHNwZWNpYWxyZXBvcnRzJz4NCiAgIDxkaXYgY2xhc3M9J2dyYXknPg0KICAgIDxoMj5TcGVjaWFsIFJlcG9ydHM8L2gyPg0KICAgIDxkaXYgY2xhc3M9J2NoaXNlbF9kIHdoaXRlJz4NCiAgICAgPHVsPg0KPGxpPjxhIGhyZWY9Ii9zcGVjaWFsUmVwb3J0cy9taWNoZWxlLWJhY2htYW5uLWEtaGlzdG9yeS1vZi1jcmF6eS1ob21vcGhvYmlhLWFuZC1saWVzLTI4MjM3ODAvIj5NaWNoZWxlIEJhY2htYW5uOiBBIGhpc3Rvcnkgb2YgY3JhenksIGhvbW9waG9iaWEsIGFuZCBsaWVzPC9hPjwvbGk+ICAgICAgPGxpIGNsYXNzPSdtb3JlJz48YSBocmVmPScvc3BlY2lhbFJlcG9ydHMnPk1vcmUgU3BlY2lhbCBSZXBvcnRzID4+PC9hPjwvbGk+DQogICAgIDwvdWw+DQogICAgPC9kaXY+DQogICA8L2Rpdj4NCiAgPC9kaXY+IjtzOjEzOiJjb250ZW50TGVuZ3RoIjtpOjQzMTtzOjExOiJtZXRhQ29udGVudCI7YToxOntzOjEzOiJvZzppbWFnZV9sYXN0IjthOjE6e2k6MDtzOjQ0OiJodHRwOi8vd3d3LmNpdHlwYWdlcy5jb20vaW1nL2NpdHlsb2dvLWxnLnBuZyI7fX1zOjk6IkNhY2hlZGF0YSI7YToxOntpOjA7czo3OiIyODIzNzgwIjt9czo3OiJDb250ZXh0IjthOjE3OntzOjE0OiJBZEluZGV4U2VjdGlvbiI7czo0OiJuZXdzIjtzOjc6IlNlY3Rpb24iO3M6NDoibmV3cyI7czoxNjoiT0FTUXVlcnlDYXRlZ29yeSI7czo0OiJOZXdzIjtzOjE5OiJPQVNRdWVyeVN1YmNhdGVnb3J5IjtzOjY6IlNlYXJjaCI7czoxMDoicGFnZVBhcmFtcyI7czozMToiCiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICI7czo3OiJPcmlnVXJsIjtzOjQxOiIvMjAwOS0xMi0xNi9jYWxlbmRhci9tYXNvbi1qZW5uaW5ncy9mdWxsLyI7czozOiJVcmwiO3M6MzY6Ii9zcGVjaWFsUmVwb3J0cy9TcGVjaWFsUmVwb3J0c1dpZGdldCI7czoxMzoiQ29tbWVudHNPYmpJZCI7czo2OiI0OTI1OTgiO3M6MTA6IlN1YnNlY3Rpb24iO3M6NzoiRmVhdHVyZSI7czoxNDoiT0FTUXVlcnlBdXRob3IiO3M6MTI6Ik1hdHRfU255ZGVycyI7czo5OiJJc3N1ZURhdGUiO3M6MTA6IjIwMDgtMDYtMjUiO3M6MTA6ImJlc3RPZlllYXIiO3M6NDoiMjAxMyI7czoxNToiZmVhdHVyZWRTdG9yaWVzIjthOjE1OntpOjA7czo3OiIyODI4MTkwIjtpOjE7czo3OiIyODIzMDYzIjtpOjI7czo3OiIyODE2ODAyIjtpOjM7czo3OiIyODEwMDY1IjtpOjQ7czo3OiIyODAzMjYwIjtpOjU7czo3OiIyODAzMjU4IjtpOjY7czo3OiIyNzk2MzQ2IjtpOjc7czo3OiIyNzg5MDQ5IjtpOjg7czo3OiIyNzgxNTYyIjtpOjk7czo3OiIyNzc0MDYyIjtpOjEwO3M6NzoiMjc2NzQ0MCI7aToxMTtzOjc6IjI3Njc0MzgiO2k6MTI7czo3OiIyNzYxMTAwIjtpOjEzO3M6NzoiMjc1MzY3MSI7aToxNDtzOjc6IjI3NTM2NjQiO31zOjEyOiJjYXRlZ29yeU5hbWUiO3M6NzoiVGhlYXRlciI7czo0OiJwYWdlIjtzOjQ6IjEwMDciO3M6Nzoic2VjdGlvbiI7czo0OiIzNzQzIjtzOjg6ImNhdGVnb3J5IjtzOjQ6IjQyNDMiO319
///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> YTo2OntzOjEzOiJjb250ZW50U3RhdHVzIjthOjE6e3M6Njoic3RhdHVzIjtiOjE7fXM6NzoiY29udGVudCI7czowOiIiO3M6MTM6ImNvbnRlbnRMZW5ndGgiO2k6MDtzOjExOiJtZXRhQ29udGVudCI7YToxOntzOjEzOiJvZzppbWFnZV9sYXN0IjthOjE6e2k6MDtzOjQ0OiJodHRwOi8vd3d3LmNpdHlwYWdlcy5jb20vaW1nL2NpdHlsb2dvLWxnLnBuZyI7fX1zOjk6IkNhY2hlZGF0YSI7YTowOnt9czo3OiJDb250ZXh0IjthOjE3OntzOjE0OiJBZEluZGV4U2VjdGlvbiI7czo0OiJuZXdzIjtzOjc6IlNlY3Rpb24iO3M6NDoibmV3cyI7czoxNjoiT0FTUXVlcnlDYXRlZ29yeSI7czo0OiJOZXdzIjtzOjE5OiJPQVNRdWVyeVN1YmNhdGVnb3J5IjtzOjY6IlNlYXJjaCI7czoxMDoicGFnZVBhcmFtcyI7czozMToiCiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICI7czo3OiJPcmlnVXJsIjtzOjQ4OiIvMjAxMi0xMS0xNC9hcnRzL2hvdy10aGUtZ3JpbmNoLXN0b2xlLWNocmlzdG1hcy8iO3M6MzoiVXJsIjtzOjE1OiIvc2VvL3BhcnRuZXJCb3giO3M6MTM6IkNvbW1lbnRzT2JqSWQiO3M6NjoiNDkyNTk4IjtzOjEwOiJTdWJzZWN0aW9uIjtzOjc6IkZlYXR1cmUiO3M6MTQ6Ik9BU1F1ZXJ5QXV0aG9yIjtzOjEyOiJNYXR0X1NueWRlcnMiO3M6OToiSXNzdWVEYXRlIjtzOjEwOiIyMDA4LTA2LTI1IjtzOjEwOiJiZXN0T2ZZZWFyIjtzOjQ6IjIwMTMiO3M6MTU6ImZlYXR1cmVkU3RvcmllcyI7YToxNTp7aTowO3M6NzoiMjgyODE5MCI7aToxO3M6NzoiMjgyMzA2MyI7aToyO3M6NzoiMjgxNjgwMiI7aTozO3M6NzoiMjgxMDA2NSI7aTo0O3M6NzoiMjgwMzI2MCI7aTo1O3M6NzoiMjgwMzI1OCI7aTo2O3M6NzoiMjc5NjM0NiI7aTo3O3M6NzoiMjc4OTA0OSI7aTo4O3M6NzoiMjc4MTU2MiI7aTo5O3M6NzoiMjc3NDA2MiI7aToxMDtzOjc6IjI3Njc0NDAiO2k6MTE7czo3OiIyNzY3NDM4IjtpOjEyO3M6NzoiMjc2MTEwMCI7aToxMztzOjc6IjI3NTM2NzEiO2k6MTQ7czo3OiIyNzUzNjY0Ijt9czoxMjoiY2F0ZWdvcnlOYW1lIjtzOjc6IlRoZWF0ZXIiO3M6NDoicGFnZSI7czo0OiIxMDA3IjtzOjc6InNlY3Rpb24iO3M6NDoiMzc0MyI7czo4OiJjYXRlZ29yeSI7czo0OiI0MjQzIjt9fQ
///////////////////////////////////////////////// // AUTOGENERATED AT SVN EXPORT TIME // DO NOT EDIT ///////////////////////////////////////////////// ?> YTo2OntzOjEzOiJjb250ZW50U3RhdHVzIjthOjE6e3M6Njoic3RhdHVzIjtiOjE7fXM6NzoiY29udGVudCI7czowOiIiO3M6MTM6ImNvbnRlbnRMZW5ndGgiO2k6MDtzOjExOiJtZXRhQ29udGVudCI7TjtzOjk6IkNhY2hlZGF0YSI7YTowOnt9czo3OiJDb250ZXh0IjthOjExOntzOjE0OiJBZEluZGV4U2VjdGlvbiI7czo0OiJuZXdzIjtzOjc6IlNlY3Rpb24iO3M6NDoibmV3cyI7czoxNjoiT0FTUXVlcnlDYXRlZ29yeSI7czo0OiJOZXdzIjtzOjE5OiJPQVNRdWVyeVN1YmNhdGVnb3J5IjtzOjY6IlNlYXJjaCI7czoxMDoicGFnZVBhcmFtcyI7czozMToiCiAgICAgICAgICAKICAgICAgICAgIAogICAgICAgICI7czo3OiJPcmlnVXJsIjtzOjQ4OiIvMjAxMi0xMS0xNC9hcnRzL2hvdy10aGUtZ3JpbmNoLXN0b2xlLWNocmlzdG1hcy8iO3M6MzoiVXJsIjtzOjk0OiIvYWRzL2ZsYXRBZHMvY2xpY2tib3R0b20vY2xpY2tib3R0b20vLy9vcmlnVXJsOi8yMDEyLTExLTE0L2FydHMvaG93LXRoZS1ncmluY2gtc3RvbGUtY2hyaXN0bWFzIjtzOjEzOiJDb21tZW50c09iaklkIjtzOjY6IjQ5MjU5OCI7czoxMDoiU3Vic2VjdGlvbiI7czowOiIiO3M6MTQ6Ik9BU1F1ZXJ5QXV0aG9yIjtzOjEyOiJNYXR0X1NueWRlcnMiO3M6OToiSXNzdWVEYXRlIjtzOjEwOiIyMDA4LTA2LTI1Ijt9fQ
©2013 City Pages, LLC, All rights reserved.
Browse Voice Nation
  • Voice Places Minneapolis / St. Paul

    Voice Places

    Find everything you're looking for in your city

  • Happy Hour App

    Happy Hour App

    Find the best happy hour deals in your city

  • Daily Deals

    Daily Deals

    Get today's exclusive deals at savings of anywhere from 50-90%

  • Best Of

    Best Of...

    Check out the hottest list of places and things to do around your city