Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

'Cgo8IWRvY3R5cGUgaHRtbD4KPGh0bWwgY2xhc3M9Im5vLWpzIiBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoY..

Decoded Output download

<?  'Cgo8IWRvY3R5cGUgaHRtbD4KPGh0bWwgY2xhc3M9Im5vLWpzIiBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIj4KICA8bGluayByZWw9ImFtcGh0bWwiIGhyZWY9Imh0dHBzOi8veG4tLTEyY2wxZmsxZS54eXovIj4KICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93d3cuZWxhcGh5ZS5jb20vIj4KICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC9maWxlcy9pY29uLXBpa2FjaHUucG5nP2Nyb3A9Y2VudGVyJmhlaWdodD0zMiZ2PTE3MDI3Mjk4OTYmd2lkdGg9MzIiPgogIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5zaG9waWZ5Y2RuLmNvbSIgY3Jvc3NvcmlnaW4+CiAgPHRpdGxlPlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW48L3RpdGxlPgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJMaW5rIHNpdHVzIHNsb3QgZ2Fjb3IgMjAyNCB0ZXJwZXJjYXlhIHBhbGluZyBtYXh3aW4gbXVkYWggZGlkYXBhdCBrYW4gZGFsYW0gcGVybWFpbmFuIHNsb3Qgb25saW5lIHNhYXQgaW5pLCBzZWdlcmEgbWFpbmthbiBkYW4gZGFmdGFya2FuIGRpcmkgYW5kYSBoYW55YSBkaSBzaXR1cyBzbG90IGdhY29yIHBhbGluZyB0ZXJwZXJjYXlhIHNlbHVydWggcGVybWFpbmFuIGdhbWUgc2xvdCB0ZXJiYWlrIj4KICA8bWV0YSBwcm9wZXJ0eT0ib2c6c2l0ZV9uYW1lIiBjb250ZW50PSJTbG90IEdhY29yIDIwMjQiPgogIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLyI+CiAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIj4KICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0icHJvZHVjdCI+CiAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJMaW5rIHNpdHVzIHNsb3QgZ2Fjb3IgMjAyNCB0ZXJwZXJjYXlhIHBhbGluZyBtYXh3aW4gbXVkYWggZGlkYXBhdCBrYW4gZGFsYW0gcGVybWFpbmFuIHNsb3Qgb25saW5lIHNhYXQgaW5pLCBzZWdlcmEgbWFpbmthbiBkYW4gZGFmdGFya2FuIGRpcmkgYW5kYSBoYW55YSBkaSBzaXR1cyBzbG90IGdhY29yIHBhbGluZyB0ZXJwZXJjYXlhIHNlbHVydWggcGVybWFpbmFuIGdhbWUgc2xvdCB0ZXJiYWlrIj4KICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Ii8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQiPgogIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpzZWN1cmVfdXJsIiBjb250ZW50PSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0Ij4KICA8bWV0YSBuYW1lPSJnb29nbGUtc2l0ZS12ZXJpZmljYXRpb24iIGNvbnRlbnQ9IkZnSTBubFNoVTF3ckZhZUd0a2hkUDlCTW1adURiejJ3YXhRRnBEUzloTEEiIC8+CiAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSI3MTMiPgogIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjcxMyI+CiAgPG1ldGEgcHJvcGVydHk9Im9nOnByaWNlOmFtb3VudCIgY29udGVudD0iMS4wMDAsMDAiPgogIDxtZXRhIHByb3BlcnR5PSJvZzpwcmljZTpjdXJyZW5jeSIgY29udGVudD0iSURSIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ikxpbmsgc2l0dXMgc2xvdCBnYWNvciAyMDI0IHRlcnBlcmNheWEgcGFsaW5nIG1heHdpbiBtdWRhaCBkaWRhcGF0IGthbiBkYWxhbSBwZXJtYWluYW4gc2xvdCBvbmxpbmUgc2FhdCBpbmksIHNlZ2VyYSBtYWlua2FuIGRhbiBkYWZ0YXJrYW4gZGlyaSBhbmRhIGhhbnlhIGRpIHNpdHVzIHNsb3QgZ2Fjb3IgcGFsaW5nIHRlcnBlcmNheWEgc2VsdXJ1aCBwZXJtYWluYW4gZ2FtZSBzbG90IHRlcmJhaWsiPgogIDxzY3JpcHQgc3JjPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29uc3RhbnRzLmpzP3Y9NTgyNTE1NDQ3NTA4Mzg2ODU3NzE3MDI3Mjk1NzkiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9wdWJzdWIuanM/dj0xNTgzNTc3NzM1Mjc3NjM5OTk1MTE3MDI3Mjk1ODAiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9nbG9iYWwuanM/dj0xMTMzNjc1MTU3NzQ3MjI1OTkzMDE3MDI3Mjk1NzkiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9hbmltYXRpb25zLmpzP3Y9ODg2OTM2NjQ4NzEzMzExMzYxMTE3MDI3Mjk1NzgiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdD53aW5kb3cucGVyZm9ybWFuY2UgJiYgd2luZG93LnBlcmZvcm1hbmNlLm1hcmsgJiYgd2luZG93LnBlcmZvcm1hbmNlLm1hcmsoJ3Nob3BpZnkuY29udGVudF9mb3JfaGVhZGVyLnN0YXJ0Jyk7PC9zY3JpcHQ+CiAgPG1ldGEgaWQ9InNob3BpZnktZGlnaXRhbC13YWxsZXQiIG5hbWU9InNob3BpZnktZGlnaXRhbC13YWxsZXQiIGNvbnRlbnQ9Ii82MjEwODM2OTA1MS9kaWdpdGFsX3dhbGxldHMvZGlhbG9nIj4KICA8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vanNvbitvZW1iZWQiIGhyZWY9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLy5vZW1iZWQiPgogIDxzY3JpcHQgYXN5bmM9ImFzeW5jIiBzcmM9Ii9jaGVja291dHMvaW50ZXJuYWwvcHJlbG9hZHMuanM/cGVybWFuZW50LWRvbWFpbj05YjlkMmYubXlzaG9waWZ5LmNvbSZsb2NhbGU9ZW4tSUQiPjwvc2NyaXB0PgogIDxzY3JpcHQgaWQ9InNob3BpZnktZmVhdHVyZXMiIHR5cGU9ImFwcGxpY2F0aW9uL2pzb24iPnsiYWNjZXNzVG9rZW4iOiJmYWM4MmQxNjg0M2ZmYzNmNTMxOTg0ZDE1YTU0ODc2ZCIsImJldGFzIjpbInJpY2gtbWVkaWEtc3RvcmVmcm9udC1hbmFseXRpY3MiXSwiZG9tYWluIjoiOWI5ZDJmLm15c2hvcGlmeS5jb20iLCJwcmVkaWN0aXZlU2VhcmNoIjp0cnVlLCJzaG9wSWQiOjYyMTA4MzY5MDUxLCJzbWFydF9wYXltZW50X2J1dHRvbnNfdXJsIjoiaHR0cHM6XC9cLzliOWQyZi5teXNob3BpZnkuY29tXC9jZG5cL3Nob3BpZnljbG91ZFwvcGF5bWVudC1zaGVldFwvYXNzZXRzXC9sYXRlc3RcL3NwYi5lbi5qcyIsImR5bmFtaWNfY2hlY2tvdXRfY2FydF91cmwiOiJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL2Nkblwvc2hvcGlmeWNsb3VkXC9wYXltZW50LXNoZWV0XC9hc3NldHNcL2xhdGVzdFwvZHluYW1pYy1jaGVja291dC1jYXJ0LmVuLmpzIiwibG9jYWxlIjoiZW4iLCJvcHRpbXVzRW5hYmxlZCI6dHJ1ZSwib3B0aW11c0hpZGRlbiI6ZmFsc2UsImJldHRlckR5bmFtaWNDaGVja291dFJlY29tbWVuZGF0aW9uVmFyaWFudCI6ImNvbnRyb2wiLCJzaG9wUHJvbWlzZVBEUFYzRW5hYmxlZCI6dHJ1ZX08L3NjcmlwdD4KICA8c2NyaXB0PnZhciBTaG9waWZ5ID0gU2hvcGlmeSB8fCB7fTsKICAgIFNob3BpZnkuc2hvcCA9ICI5YjlkMmYubXlzaG9waWZ5LmNvbSI7CiAgICBTaG9waWZ5LmxvY2FsZSA9ICJlbiI7CiAgICBTaG9waWZ5LmN1cnJlbmN5ID0geyAiYWN0aXZlIjogIklEUiIsICJyYXRlIjogIjEuMCIgfTsKICAgIFNob3BpZnkuY291bnRyeSA9ICJJRCI7CiAgICBTaG9waWZ5LnRoZW1lID0geyAibmFtZSI6ICJSZWZyZXNoIiwgImlkIjogMTMyOTI5MDkzNzg3LCAidGhlbWVfc3RvcmVfaWQiOiAxNTY3LCAicm9sZSI6ICJtYWluIiB9OwogICAgU2hvcGlmeS50aGVtZS5oYW5kbGUgPSAibnVsbCI7CiAgICBTaG9waWZ5LnRoZW1lLnN0eWxlID0geyAiaWQiOiBudWxsLCAiaGFuZGxlIjogbnVsbCB9OwogICAgU2hvcGlmeS5jZG5Ib3N0ID0gIjliOWQyZi5teXNob3BpZnkuY29tL2NkbiI7CiAgICBTaG9waWZ5LnJvdXRlcyA9IFNob3BpZnkucm91dGVzIHx8IHt9OwogICAgU2hvcGlmeS5yb3V0ZXMucm9vdCA9ICIvIjs8L3NjcmlwdD4KICA8c2NyaXB0IHR5cGU9Im1vZHVsZSI+IWZ1bmN0aW9uIChvKSB7IChvLlNob3BpZnkgPSBvLlNob3BpZnkgfHwge30pLm1vZHVsZXMgPSAhMCB9KHdpbmRvdyk7PC9zY3JpcHQ+CiAgPHNjcmlwdD4hZnVuY3Rpb24gKG8pIHsgZnVuY3Rpb24gbigpIHsgdmFyIG8gPSBbXTsgZnVuY3Rpb24gbigpIHsgby5wdXNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShhcmd1bWVudHMpKSB9IHJldHVybiBuLnEgPSBvLCBuIH0gdmFyIHQgPSBvLlNob3BpZnkgPSBvLlNob3BpZnkgfHwge307IHQubG9hZEZlYXR1cmVzID0gbigpLCB0LmF1dG9sb2FkRmVhdHVyZXMgPSBuKCkgfSh3aW5kb3cpOzwvc2NyaXB0PgogIDxzY3JpcHQKICAgIGlkPSJfX3N0Ij52YXIgX19zdCA9IHsgImEiOiA2MjEwODM2OTA1MSwgIm9mZnNldCI6IDMyNDAwLCAicmVxaWQiOiAiZTJmZDI1ZTMtZDhkNi00M2FmLWIwOGItNGY1MjAwOWJmZWJmIiwgInBhZ2V1cmwiOiAiOWI5ZDJmLm15c2hvcGlmeS5jb21cL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiwgInUiOiAiNzEwMWVkZjBmNGM4IiwgInAiOiAicHJvZHVjdCIsICJydHlwIjogInByb2R1Y3QiLCAicmlkIjogNzgxNDEzMzYxMjY5OSB9Ozwvc2NyaXB0PgogIDxzY3JpcHQ+d2luZG93LlNob3BpZnlQYXlwYWxWNFZpc2liaWxpdHlUcmFja2luZyA9IHRydWU7PC9zY3JpcHQ+CiAgPHNjcmlwdD4hZnVuY3Rpb24gKG8pIHsgby5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24gKCkgeyB3aW5kb3cuU2hvcGlmeSA9IHdpbmRvdy5TaG9waWZ5IHx8IHt9LCB3aW5kb3cuU2hvcGlmeS5yZWNhcHRjaGFWMyA9IHdpbmRvdy5TaG9waWZ5LnJlY2FwdGNoYVYzIHx8IHsgc2l0ZUtleTogIjZMY0NSMmNVQUFBQUFOUzFHcHFfbURJSjJwUXVKcGhzU1FhVUV1YzkiIH07IHZhciB0ID0gWydmb3JtW2FjdGlvbio9Ii9jb250YWN0Il0gaW5wdXRbbmFtZT0iZm9ybV90eXBlIl1bdmFsdWU9ImNvbnRhY3QiXScsICdmb3JtW2FjdGlvbio9Ii9jb21tZW50cyJdIGlucHV0W25hbWU9ImZvcm1fdHlwZSJdW3ZhbHVlPSJuZXdfY29tbWVudCJdJywgJ2Zvcm1bYWN0aW9uKj0iL2FjY291bnQiXSBpbnB1dFtuYW1lPSJmb3JtX3R5cGUiXVt2YWx1ZT0iY3VzdG9tZXJfbG9naW4iXScsICdmb3JtW2FjdGlvbio9Ii9hY2NvdW50Il0gaW5wdXRbbmFtZT0iZm9ybV90eXBlIl1bdmFsdWU9InJlY292ZXJfY3VzdG9tZXJfcGFzc3dvcmQiXScsICdmb3JtW2FjdGlvbio9Ii9hY2NvdW50Il0gaW5wdXRbbmFtZT0iZm9ybV90eXBlIl1bdmFsdWU9ImNyZWF0ZV9jdXN0b21lciJdJywgJ2Zvcm1bYWN0aW9uKj0iL2NvbnRhY3QiXSBpbnB1dFtuYW1lPSJmb3JtX3R5cGUiXVt2YWx1ZT0iY3VzdG9tZXIiXSddLmpvaW4oIiwiKTsgZnVuY3Rpb24gbihlKSB7IGUgPSBlLnRhcmdldDsgbnVsbCA9PSBlIHx8IG51bGwgIT0gKGUgPSBmdW5jdGlvbiBlKHQsIG4pIHsgaWYgKG51bGwgPT0gdC5wYXJlbnRFbGVtZW50KSByZXR1cm4gbnVsbDsgaWYgKCJGT1JNIiAhPSB0LnBhcmVudEVsZW1lbnQudGFnTmFtZSkgcmV0dXJuIGUodC5wYXJlbnRFbGVtZW50LCBuKTsgZm9yICh2YXIgbyA9IHQucGFyZW50RWxlbWVudC5hY3Rpb24sIHIgPSAwOyByIDwgbi5sZW5ndGg7IHIrKylpZiAoLTEgIT09IG8uaW5kZXhPZihuW3JdKSkgcmV0dXJuIHQucGFyZW50RWxlbWVudDsgcmV0dXJuIG51bGwgfShlLCBbIi9jb250YWN0IiwgIi9jb21tZW50cyIsICIvYWNjb3VudCJdKSkgJiYgbnVsbCAhPSBlLnF1ZXJ5U2VsZWN0b3IodCkgJiYgKChlID0gby5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkuc2V0QXR0cmlidXRlKCJzcmMiLCAiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vc2hvcGlmeWNsb3VkL3N0b3JlZnJvbnQtcmVjYXB0Y2hhLXYzL3YwLjYvaW5kZXguanMiKSwgby5ib2R5LmFwcGVuZENoaWxkKGUpLCBvLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIiwgbiwgITApLCBvLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIG4sICEwKSwgby5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG4sICEwKSkgfSBvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbiwgITApLCBvLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIG4sICEwKSwgby5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIG4sICEwKSB9KSB9KGRvY3VtZW50KTs8L3NjcmlwdD4KICA8c2NyaXB0IGludGVncml0eT0ic2hhMjU2LWg0ZHZva1d2R2N2UlNxaUc3Vm5HcW9vbnhGMGszTmVvSFBMU01qVUdJejQ9IiBkYXRhLXNvdXJjZS1hdHRyaWJ1dGlvbj0ic2hvcGlmeS5sb2FkZmVhdHVyZXMiCiAgICBkZWZlcj0iZGVmZXIiCiAgICBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3BpZnljbG91ZC9zaG9waWZ5L2Fzc2V0cy9zdG9yZWZyb250L2xvYWRfZmVhdHVyZS04Nzg3NmZhMjQ1YWYxOWNiZDE0YWE4ODZlZDU5YzZhYThhMjdjNDVkMjRkY2Q3YTgxY2YyZDIzMjM1MDYyMzNlLmpzIgogICAgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBkYXRhLXNvdXJjZS1hdHRyaWJ1dGlvbj0ic2hvcGlmeS5keW5hbWljX2NoZWNrb3V0LmR5bmFtaWMuaW5pdCI+dmFyIFNob3BpZnkgPSBTaG9waWZ5IHx8IHt9OyBTaG9waWZ5LlBheW1lbnRCdXR0b24gPSBTaG9waWZ5LlBheW1lbnRCdXR0b24gfHwgeyBpc1N0b3JlZnJvbnRQb3J0YWJsZVdhbGxldHM6ICEwLCBpbml0OiBmdW5jdGlvbiAoKSB7IHdpbmRvdy5TaG9waWZ5LlBheW1lbnRCdXR0b24uaW5pdCA9IGZ1bmN0aW9uICgpIHsgfTsgdmFyIHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsgdC5zcmMgPSAiaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcGlmeWNsb3VkL3BvcnRhYmxlLXdhbGxldHMvbGF0ZXN0L3BvcnRhYmxlLXdhbGxldHMuZW4uanMiLCB0LnR5cGUgPSAibW9kdWxlIiwgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0KSB9IH07CiAgPC9zY3JpcHQ+CiAgPHNjcmlwdD4KICAgIHdpbmRvdy5fX3Nob3BpZnlfcG9ydGFibGVfd2FsbGV0c19vbmVycm9yX18gPSBmdW5jdGlvbiAoc2NyaXB0KSB7CiAgICAgIGlmIChzY3JpcHQgJiYgc2NyaXB0LnNyYykgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgcG9ydGFibGUgd2FsbGV0cyBzY3JpcHQgJHtzY3JpcHQuc3JjfWApOwogICAgICB2YXIgc2tlbGV0b25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZHluYW1pYy1jaGVja291dCA+IC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19za2VsZXRvbicpOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNrZWxldG9ucy5sZW5ndGg7IGkrKykgc2tlbGV0b25zW2ldLnJlbW92ZSgpOwogICAgfQogIDwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9Im1vZHVsZSIKICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcGlmeWNsb3VkL3BvcnRhYmxlLXdhbGxldHMvbGF0ZXN0L3BvcnRhYmxlLXdhbGxldHMuZW4uanMiCiAgICBvbkVycm9yPSJfX3Nob3BpZnlfcG9ydGFibGVfd2FsbGV0c19vbmVycm9yX18odGhpcykiPjwvc2NyaXB0PgogIDxzY3JpcHQgbm9tb2R1bGU+CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgX19zaG9waWZ5X3BvcnRhYmxlX3dhbGxldHNfb25lcnJvcl9fKTsKICA8L3NjcmlwdD4KCiAgPHNjcmlwdCBpZD0ic2VjdGlvbnMtc2NyaXB0IiBkYXRhLXNlY3Rpb25zPSJoZWFkZXIiIGRlZmVyPSJkZWZlciIKICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvY29tcGlsZWRfYXNzZXRzL3NjcmlwdHMuanM/OSI+PC9zY3JpcHQ+CiAgPHN0eWxlIGlkPSJzaG9waWZ5LWR5bmFtaWMtY2hlY2tvdXQiPgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi0taGlkZGVuIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gewogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCB0cmFuc3BhcmVudDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBmb250LXNpemU6IDFlbTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluLW91dDsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uW2Rpc2FibGVkXSB7CiAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24tLXVuYnJhbmRlZCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTkwYzY7CiAgICAgIHBhZGRpbmc6IDFlbSAyZW07CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi0tdW5icmFuZGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzZmOTk7CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX21vcmUtb3B0aW9ucyB7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IDAgbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgIG1hcmdpbi10b3A6IDFlbTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fbW9yZS1vcHRpb25zOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19tb3JlLW9wdGlvbnNbZGlzYWJsZWRdIHsKICAgICAgb3BhY2l0eTogMC42OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24tLWJyYW5kZWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBtaW4taGVpZ2h0OiA0NHB4OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi0tYnJhbmRlZCAuc2hvcGlmeS1jbGVhbnNsYXRlIHsKICAgICAgZmxleDogMSAhaW1wb3J0YW50OwogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uLmJ1dHRvbi5sb2FkaW5nIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi5idXR0b24ubG9hZGluZz4ubG9hZGluZy1vdmVybGF5X19zcGlubmVyIHsKICAgICAgdG9wOiA1MCU7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24uYnV0dG9uLmxvYWRpbmc+LmxvYWRpbmctb3ZlcmxheV9fc3Bpbm5lciAuc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogICAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICB9CgogICAgLmJ1dHRvbi5sb2FkaW5nPi5sb2FkaW5nLW92ZXJsYXlfX3NwaW5uZXIgLnBhdGggewogICAgICBzdHJva2U6IHdoaXRlOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gLmxvYWRpbmctb3ZlcmxheV9fc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAxLjhyZW07CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uIC5zcGlubmVyIHsKICAgICAgYW5pbWF0aW9uOiBzaG9waWZ5LXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgQGtleWZyYW1lcyBzaG9waWZ5LXJvdGF0b3IgewogICAgICAwJSB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgIH0KCiAgICAgIDEwMCUgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uIC5wYXRoIHsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMjgwOwogICAgICBzdHJva2UtZGFzaG9mZnNldDogMDsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOwogICAgICBzdHJva2U6IHJnYigxOCwgMTgsIDE4KTsKICAgICAgYW5pbWF0aW9uOiBzaG9waWZ5LWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgIH0KCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7CiAgICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gLnBhdGggewogICAgICAgIHN0cm9rZTogQ2FudmFzVGV4dDsKICAgICAgfQogICAgfQoKICAgIEBrZXlmcmFtZXMgc2hvcGlmeS1kYXNoIHsKICAgICAgMCUgewogICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyODA7CiAgICAgIH0KCiAgICAgIDUwJSB7CiAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDc1OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7CiAgICAgIH0KCiAgICAgIDEwMCUgewogICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyODA7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDUwZGVnKTsKICAgICAgfQogICAgfQoKICAgIEBrZXlmcmFtZXMgd2FsbGV0c0xvYWRpbmdTa2VsZXRvbiB7CiAgICAgIDUwJSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgNzUlIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIDEwMCUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fc2tlbGV0b24gewogICAgICBhbmltYXRpb246IHdhbGxldHNMb2FkaW5nU2tlbGV0b24gNHMgZWFzZSBpbmZpbml0ZTsKICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNjhzOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIyLCAyMjIsIDIyMik7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CiAgPC9zdHlsZT4KICA8c2NyaXB0PndpbmRvdy5wZXJmb3JtYW5jZSAmJiB3aW5kb3cucGVyZm9ybWFuY2UubWFyayAmJiB3aW5kb3cucGVyZm9ybWFuY2UubWFyaygnc2hvcGlmeS5jb250ZW50X2Zvcl9oZWFkZXIuZW5kJyk7PC9zY3JpcHQ+CgoKICA8c3R5bGUgZGF0YS1zaG9waWZ5PgogICAgQGZvbnQtZmFjZSB7CiAgICAgIGZvbnQtZmFtaWx5OiBRdWVzdHJpYWw7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgZm9udC1kaXNwbGF5OiBzd2FwOwogICAgICBzcmM6IHVybCgiaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vZm9udHMvcXVlc3RyaWFsL3F1ZXN0cmlhbF9uNC4wYmE2ZDJiNjA5NDk1NGJhYjIzNzMyYzc1ZDNlY2I0YzQ3YTU4NjljLndvZmYyP2gxPU9XSTVaREptTG1GalkyOTFiblF1YlhsemFHOXdhV1o1TG1OdmJRJmhtYWM9MWM4NzdkY2EwMTc2ZTI0ZmI2OTNjOTZhMDBlZmZlN2RjODZiODQ4MDc4MjVmYzM2YzE1ZDMxYTU4NTVjMTk4YSIpIGZvcm1hdCgid29mZjIiKSwKICAgICAgICB1cmwoImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL2ZvbnRzL3F1ZXN0cmlhbC9xdWVzdHJpYWxfbjQuNWFiY2UxMGQ4ODQ2YmI5MzI2Yzk3NDFlYWZmZWQ5NjY3Yzg0NzY5Mi53b2ZmP2gxPU9XSTVaREptTG1GalkyOTFiblF1YlhsemFHOXdhV1o1TG1OdmJRJmhtYWM9ZWNmZGQxYTBkNzBiMjA0YjA2MjA0MWUyNmMwZjEyZmE1YWZjYzY2ZDlmNDhlMTc5Y2ZhNTkyZDJlZWQ1NzkyNCIpIGZvcm1hdCgid29mZiIpOwogICAgfQoKCgoKICAgIEBmb250LWZhY2UgewogICAgICBmb250LWZhbWlseTogQXJjaGl2bzsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgICBmb250LWRpc3BsYXk6IHN3YXA7CiAgICAgIHNyYzogdXJsKCJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9mb250cy9hcmNoaXZvL2FyY2hpdm9fbjcuNmYzNjNhYjMwYjEyZWEwMGQ1ZTYyNDNlZDBlOTc3YTExMzkzYTNhZC53b2ZmMj9oMT1PV0k1WkRKbUxtRmpZMjkxYm5RdWJYbHphRzl3YVdaNUxtTnZiUSZobWFjPTcxZDhkOGQ3YjdmNDgxZDk4NjFlMDFkMzVkYTMwMzYxMGM4NGI2YjdiYmQ0ZGQxY2Y3ODlmM2JhYTgzODk0ODEiKSBmb3JtYXQoIndvZmYyIiksCiAgICAgICAgdXJsKCJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9mb250cy9hcmNoaXZvL2FyY2hpdm9fbjcuODQ2YjQwYTU3MzViYmQxNDlhZDQ0YjA4M2ExOWMzZTVkODhkOGZhYi53b2ZmP2gxPU9XSTVaREptTG1GalkyOTFiblF1YlhsemFHOXdhV1o1TG1OdmJRJmhtYWM9MjFiYTUzMjc0OWExOTMwODgxNTFjMThmMTUxOWY2MWM3NGI0MTU0YmVkNjYxODBiY2I5MDkxMjI2MDliMjM0YiIpIGZvcm1hdCgid29mZiIpOwogICAgfQoKCgogICAgOnJvb3QsCiAgICAuY29sb3ItYmFja2dyb3VuZC0xIHsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAyMzksIDI0MCwgMjQ1OwoKICAgICAgLS1ncmFkaWVudC1iYWNrZ3JvdW5kOiAjZmZmOwoKCgoKICAgICAgLS1jb2xvci1mb3JlZ3JvdW5kOiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDE2MSwgMTY2LCAxOTY7CiAgICAgIC0tY29sb3Itc2hhZG93OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbjogNzEsIDExMiwgMjE5OwogICAgICAtLWNvbG9yLWJ1dHRvbi10ZXh0OiAyMzksIDI0MCwgMjQ1OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b246IDIzOSwgMjQwLCAyNDU7CiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5LWJ1dHRvbi10ZXh0OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWxpbms6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYmFkZ2UtZm9yZWdyb3VuZDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1iYWRnZS1iYWNrZ3JvdW5kOiAyMzksIDI0MCwgMjQ1OwogICAgICAtLWNvbG9yLWJhZGdlLWJvcmRlcjogMTQsIDI3LCA3NzsKICAgICAgLS1wYXltZW50LXRlcm1zLWJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgMjQwIDI0NSk7CiAgICB9CgoKICAgIC5jb2xvci1iYWNrZ3JvdW5kLTIgewogICAgICAtLWNvbG9yLWJhY2tncm91bmQ6IDI1NSwgMjU1LCAyNTU7CgogICAgICAtLWdyYWRpZW50LWJhY2tncm91bmQ6ICNmZmZmZmY7CgoKCgogICAgICAtLWNvbG9yLWZvcmVncm91bmQ6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYmFja2dyb3VuZC1jb250cmFzdDogMTkxLCAxOTEsIDE5MTsKICAgICAgLS1jb2xvci1zaGFkb3c6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYnV0dG9uOiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbi10ZXh0OiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b246IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5LWJ1dHRvbi10ZXh0OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWxpbms6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYmFkZ2UtZm9yZWdyb3VuZDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1iYWRnZS1iYWNrZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWJvcmRlcjogMTQsIDI3LCA3NzsKICAgICAgLS1wYXltZW50LXRlcm1zLWJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSk7CiAgICB9CgoKICAgIC5jb2xvci1pbnZlcnNlIHsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAxNCwgMjcsIDc3OwoKICAgICAgLS1ncmFkaWVudC1iYWNrZ3JvdW5kOiAjZWYyMmZmOwoKCgoKICAgICAgLS1jb2xvci1mb3JlZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDE4LCAzNSwgOTk7CiAgICAgIC0tY29sb3Itc2hhZG93OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbjogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1idXR0b24tdGV4dDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1zZWNvbmRhcnktYnV0dG9uOiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b24tdGV4dDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1saW5rOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWZvcmVncm91bmQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3ItYmFkZ2UtYmFja2dyb3VuZDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1iYWRnZS1ib3JkZXI6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tcGF5bWVudC10ZXJtcy1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQgMjcgNzcpOwogICAgfQoKCiAgICAuY29sb3ItYWNjZW50LTEgewogICAgICAtLWNvbG9yLWJhY2tncm91bmQ6IDcxLCAxMTIsIDIxOTsKCiAgICAgIC0tZ3JhZGllbnQtYmFja2dyb3VuZDogIzQ3NzBkYjsKCgoKCiAgICAgIC0tY29sb3ItZm9yZWdyb3VuZDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRyYXN0OiAyNywgNTcsIDEzNjsKICAgICAgLS1jb2xvci1zaGFkb3c6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYnV0dG9uOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJ1dHRvbi10ZXh0OiA3MSwgMTEyLCAyMTk7CiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5LWJ1dHRvbjogNzEsIDExMiwgMjE5OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b24tdGV4dDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1saW5rOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWZvcmVncm91bmQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3ItYmFkZ2UtYmFja2dyb3VuZDogNzEsIDExMiwgMjE5OwogICAgICAtLWNvbG9yLWJhZGdlLWJvcmRlcjogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1wYXltZW50LXRlcm1zLWJhY2tncm91bmQtY29sb3I6IHJnYig3MSAxMTIgMjE5KTsKICAgIH0KCgogICAgLmNvbG9yLWFjY2VudC0yIHsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAyMjcsIDM2LCAyOwoKICAgICAgLS1ncmFkaWVudC1iYWNrZ3JvdW5kOiAjZTMyNDAyOwoKCgoKICAgICAgLS1jb2xvci1mb3JlZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDEwMSwgMTYsIDE7CiAgICAgIC0tY29sb3Itc2hhZG93OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbjogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1idXR0b24tdGV4dDogMjI3LCAzNiwgMjsKICAgICAgLS1jb2xvci1zZWNvbmRhcnktYnV0dG9uOiAyMjcsIDM2LCAyOwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b24tdGV4dDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1saW5rOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWZvcmVncm91bmQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3ItYmFkZ2UtYmFja2dyb3VuZDogMjI3LCAzNiwgMjsKICAgICAgLS1jb2xvci1iYWRnZS1ib3JkZXI6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tcGF5bWVudC10ZXJtcy1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI3IDM2IDIpOwogICAgfQoKCiAgICBib2R5LAogICAgLmNvbG9yLWJhY2tncm91bmQtMSwKICAgIC5jb2xvci1iYWNrZ3JvdW5kLTIsCiAgICAuY29sb3ItaW52ZXJzZSwKICAgIC5jb2xvci1hY2NlbnQtMSwKICAgIC5jb2xvci1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWNvbG9yLWZvcmVncm91bmQpLCAwLjc1KTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLWNvbG9yLWJhY2tncm91bmQpKTsKICAgIH0KCiAgICA6cm9vdCB7CiAgICAgIC0tZm9udC1ib2R5LWZhbWlseTogUXVlc3RyaWFsLCBzYW5zLXNlcmlmOwogICAgICAtLWZvbnQtYm9keS1zdHlsZTogbm9ybWFsOwogICAgICAtLWZvbnQtYm9keS13ZWlnaHQ6IDQwMDsKICAgICAgLS1mb250LWJvZHktd2VpZ2h0LWJvbGQ6IDcwMDsKCiAgICAgIC0tZm9udC1oZWFkaW5nLWZhbWlseTogQXJjaGl2bywgc2VyaWY7CiAgICAgIC0tZm9udC1oZWFkaW5nLXN0eWxlOiBub3JtYWw7CiAgICAgIC0tZm9udC1oZWFkaW5nLXdlaWdodDogNzAwOwoKICAgICAgLS1mb250LWJvZHktc2NhbGU6IDEuMDU7CiAgICAgIC0tZm9udC1oZWFkaW5nLXNjYWxlOiAxLjA0NzYxOTA0NzYxOTA0Nzc7CgogICAgICAtLW1lZGlhLXBhZGRpbmc6IHB4OwogICAgICAtLW1lZGlhLWJvcmRlci1vcGFjaXR5OiAwLjE7CiAgICAgIC0tbWVkaWEtYm9yZGVyLXdpZHRoOiAwcHg7CiAgICAgIC0tbWVkaWEtcmFkaXVzOiAyMHB4OwogICAgICAtLW1lZGlhLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tbWVkaWEtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwcHg7CiAgICAgIC0tbWVkaWEtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLW1lZGlhLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwogICAgICAtLW1lZGlhLXNoYWRvdy12aXNpYmxlOiAwOwoKICAgICAgLS1wYWdlLXdpZHRoOiAxMjByZW07CiAgICAgIC0tcGFnZS13aWR0aC1tYXJnaW46IDByZW07CgogICAgICAtLXByb2R1Y3QtY2FyZC1pbWFnZS1wYWRkaW5nOiAxLjZyZW07CiAgICAgIC0tcHJvZHVjdC1jYXJkLWNvcm5lci1yYWRpdXM6IDEuOHJlbTsKICAgICAgLS1wcm9kdWN0LWNhcmQtdGV4dC1hbGlnbm1lbnQ6IGxlZnQ7CiAgICAgIC0tcHJvZHVjdC1jYXJkLWJvcmRlci13aWR0aDogMC4xcmVtOwogICAgICAtLXByb2R1Y3QtY2FyZC1ib3JkZXItb3BhY2l0eTogMS4wOwogICAgICAtLXByb2R1Y3QtY2FyZC1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLXByb2R1Y3QtY2FyZC1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1wcm9kdWN0LWNhcmQtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwLjByZW07CiAgICAgIC0tcHJvZHVjdC1jYXJkLXNoYWRvdy12ZXJ0aWNhbC1vZmZzZXQ6IDAuNHJlbTsKICAgICAgLS1wcm9kdWN0LWNhcmQtc2hhZG93LWJsdXItcmFkaXVzOiAwLjVyZW07CgogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1pbWFnZS1wYWRkaW5nOiAxLjZyZW07CiAgICAgIC0tY29sbGVjdGlvbi1jYXJkLWNvcm5lci1yYWRpdXM6IDEuOHJlbTsKICAgICAgLS1jb2xsZWN0aW9uLWNhcmQtdGV4dC1hbGlnbm1lbnQ6IGxlZnQ7CiAgICAgIC0tY29sbGVjdGlvbi1jYXJkLWJvcmRlci13aWR0aDogMC4xcmVtOwogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1ib3JkZXItb3BhY2l0eTogMS4wOwogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1jb2xsZWN0aW9uLWNhcmQtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwLjByZW07CiAgICAgIC0tY29sbGVjdGlvbi1jYXJkLXNoYWRvdy12ZXJ0aWNhbC1vZmZzZXQ6IDAuNHJlbTsKICAgICAgLS1jb2xsZWN0aW9uLWNhcmQtc2hhZG93LWJsdXItcmFkaXVzOiAwLjVyZW07CgogICAgICAtLWJsb2ctY2FyZC1pbWFnZS1wYWRkaW5nOiAxLjZyZW07CiAgICAgIC0tYmxvZy1jYXJkLWNvcm5lci1yYWRpdXM6IDEuOHJlbTsKICAgICAgLS1ibG9nLWNhcmQtdGV4dC1hbGlnbm1lbnQ6IGxlZnQ7CiAgICAgIC0tYmxvZy1jYXJkLWJvcmRlci13aWR0aDogMC4xcmVtOwogICAgICAtLWJsb2ctY2FyZC1ib3JkZXItb3BhY2l0eTogMS4wOwogICAgICAtLWJsb2ctY2FyZC1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLWJsb2ctY2FyZC1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1ibG9nLWNhcmQtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwLjByZW07CiAgICAgIC0tYmxvZy1jYXJkLXNoYWRvdy12ZXJ0aWNhbC1vZmZzZXQ6IDAuNHJlbTsKICAgICAgLS1ibG9nLWNhcmQtc2hhZG93LWJsdXItcmFkaXVzOiAwLjVyZW07CgogICAgICAtLWJhZGdlLWNvcm5lci1yYWRpdXM6IDAuMHJlbTsKCiAgICAgIC0tcG9wdXAtYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgIC0tcG9wdXAtYm9yZGVyLW9wYWNpdHk6IDAuMTsKICAgICAgLS1wb3B1cC1jb3JuZXItcmFkaXVzOiAxOHB4OwogICAgICAtLXBvcHVwLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tcG9wdXAtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwcHg7CiAgICAgIC0tcG9wdXAtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLXBvcHVwLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwoKICAgICAgLS1kcmF3ZXItYm9yZGVyLXdpZHRoOiAwcHg7CiAgICAgIC0tZHJhd2VyLWJvcmRlci1vcGFjaXR5OiAwLjE7CiAgICAgIC0tZHJhd2VyLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tZHJhd2VyLXNoYWRvdy1ob3Jpem9udGFsLW9mZnNldDogMHB4OwogICAgICAtLWRyYXdlci1zaGFkb3ctdmVydGljYWwtb2Zmc2V0OiA0cHg7CiAgICAgIC0tZHJhd2VyLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwoKICAgICAgLS1zcGFjaW5nLXNlY3Rpb25zLWRlc2t0b3A6IDBweDsKICAgICAgLS1zcGFjaW5nLXNlY3Rpb25zLW1vYmlsZTogMHB4OwoKICAgICAgLS1ncmlkLWRlc2t0b3AtdmVydGljYWwtc3BhY2luZzogMjhweDsKICAgICAgLS1ncmlkLWRlc2t0b3AtaG9yaXpvbnRhbC1zcGFjaW5nOiAyOHB4OwogICAgICAtLWdyaWQtbW9iaWxlLXZlcnRpY2FsLXNwYWNpbmc6IDE0cHg7CiAgICAgIC0tZ3JpZC1tb2JpbGUtaG9yaXpvbnRhbC1zcGFjaW5nOiAxNHB4OwoKICAgICAgLS10ZXh0LWJveGVzLWJvcmRlci1vcGFjaXR5OiAwLjE7CiAgICAgIC0tdGV4dC1ib3hlcy1ib3JkZXItd2lkdGg6IDBweDsKICAgICAgLS10ZXh0LWJveGVzLXJhZGl1czogMjBweDsKICAgICAgLS10ZXh0LWJveGVzLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tdGV4dC1ib3hlcy1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS10ZXh0LWJveGVzLXNoYWRvdy1ob3Jpem9udGFsLW9mZnNldDogMHB4OwogICAgICAtLXRleHQtYm94ZXMtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLXRleHQtYm94ZXMtc2hhZG93LWJsdXItcmFkaXVzOiA1cHg7CgogICAgICAtLWJ1dHRvbnMtcmFkaXVzOiA0MHB4OwogICAgICAtLWJ1dHRvbnMtcmFkaXVzLW91dHNldDogNDFweDsKICAgICAgLS1idXR0b25zLWJvcmRlci13aWR0aDogMXB4OwogICAgICAtLWJ1dHRvbnMtYm9yZGVyLW9wYWNpdHk6IDEuMDsKICAgICAgLS1idXR0b25zLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tYnV0dG9ucy1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1idXR0b25zLXNoYWRvdy1ob3Jpem9udGFsLW9mZnNldDogMHB4OwogICAgICAtLWJ1dHRvbnMtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLWJ1dHRvbnMtc2hhZG93LWJsdXItcmFkaXVzOiA1cHg7CiAgICAgIC0tYnV0dG9ucy1ib3JkZXItb2Zmc2V0OiAwLjNweDsKCiAgICAgIC0taW5wdXRzLXJhZGl1czogMjZweDsKICAgICAgLS1pbnB1dHMtYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgIC0taW5wdXRzLWJvcmRlci1vcGFjaXR5OiAwLjU1OwogICAgICAtLWlucHV0cy1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLWlucHV0cy1zaGFkb3ctaG9yaXpvbnRhbC1vZmZzZXQ6IDBweDsKICAgICAgLS1pbnB1dHMtbWFyZ2luLW9mZnNldDogMHB4OwogICAgICAtLWlucHV0cy1zaGFkb3ctdmVydGljYWwtb2Zmc2V0OiA0cHg7CiAgICAgIC0taW5wdXRzLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwogICAgICAtLWlucHV0cy1yYWRpdXMtb3V0c2V0OiAyN3B4OwoKICAgICAgLS12YXJpYW50LXBpbGxzLXJhZGl1czogNDBweDsKICAgICAgLS12YXJpYW50LXBpbGxzLWJvcmRlci13aWR0aDogMXB4OwogICAgICAtLXZhcmlhbnQtcGlsbHMtYm9yZGVyLW9wYWNpdHk6IDAuNTU7CiAgICAgIC0tdmFyaWFudC1waWxscy1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLXZhcmlhbnQtcGlsbHMtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwcHg7CiAgICAgIC0tdmFyaWFudC1waWxscy1zaGFkb3ctdmVydGljYWwtb2Zmc2V0OiA0cHg7CiAgICAgIC0tdmFyaWFudC1waWxscy1zaGFkb3ctYmx1ci1yYWRpdXM6IDVweDsKICAgIH0KCiAgICAqLAogICAgKjo6YmVmb3JlLAogICAgKjo6YWZ0ZXIgewogICAgICBib3gtc2l6aW5nOiBpbmhlcml0OwogICAgfQoKICAgIGh0bWwgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IGNhbGModmFyKC0tZm9udC1ib2R5LXNjYWxlKSAqIDYyLjUlKTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQoKICAgIGJvZHkgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byAxZnIgYXV0bzsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlOwogICAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgICBtYXJnaW46IDA7CiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wNnJlbTsKICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMSArIDAuOCAvIHZhcigtLWZvbnQtYm9keS1zY2FsZSkpOwogICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5LWZhbWlseSk7CiAgICAgIGZvbnQtc3R5bGU6IHZhcigtLWZvbnQtYm9keS1zdHlsZSk7CiAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LWJvZHktd2VpZ2h0KTsKICAgIH0KCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkgewogICAgICBib2R5IHsKICAgICAgICBmb250LXNpemU6IDEuNnJlbTsKICAgICAgfQogICAgfQogIDwvc3R5bGU+CgogIDxsaW5rIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9iYXNlLmNzcz92PTEyNzg2NzAwMzUxMTYzNzY2MTI5MTcwMjcyOTU3OCIKICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgPGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iZm9udCIKICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL2ZvbnRzL3F1ZXN0cmlhbC9xdWVzdHJpYWxfbjQuMGJhNmQyYjYwOTQ5NTRiYWIyMzczMmM3NWQzZWNiNGM0N2E1ODY5Yy53b2ZmMj9oMT1PV0k1WkRKbUxtRmpZMjkxYm5RdWJYbHphRzl3YVdaNUxtTnZiUSZobWFjPTFjODc3ZGNhMDE3NmUyNGZiNjkzYzk2YTAwZWZmZTdkYzg2Yjg0ODA3ODI1ZmMzNmMxNWQzMWE1ODU1YzE5OGEiCiAgICB0eXBlPSJmb250L3dvZmYyIiBjcm9zc29yaWdpbj4KICA8bGluayByZWw9InByZWxvYWQiIGFzPSJmb250IgogICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vZm9udHMvYXJjaGl2by9hcmNoaXZvX243LjZmMzYzYWIzMGIxMmVhMDBkNWU2MjQzZWQwZTk3N2ExMTM5M2EzYWQud29mZjI/aDE9T1dJNVpESm1MbUZqWTI5MWJuUXViWGx6YUc5d2FXWjVMbU52YlEmaG1hYz03MWQ4ZDhkN2I3ZjQ4MWQ5ODYxZTAxZDM1ZGEzMDM2MTBjODRiNmI3YmJkNGRkMWNmNzg5ZjNiYWE4Mzg5NDgxIgogICAgdHlwZT0iZm9udC93b2ZmMiIgY3Jvc3NvcmlnaW4+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1wcmVkaWN0aXZlLXNlYXJjaC5jc3M/dj0xMTg5MjMzMzc0ODgxMzQ5MTM1NjE3MDI3Mjk1NzkiCiAgICBtZWRpYT0icHJpbnQiIG9ubG9hZD0idGhpcy5tZWRpYT0nYWxsJyI+CiAgPHNjcmlwdD4KICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoJ25vLWpzJywgJ2pzJyk7CiAgICBpZiAoU2hvcGlmeS5kZXNpZ25Nb2RlKSB7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzaG9waWZ5LWRlc2lnbi1tb2RlJyk7CiAgICB9CiAgPC9zY3JpcHQ+CiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tb25vcmFpbC1lZGdlLnNob3BpZnlzdmMuY29tIiByZWw9ImRucy1wcmVmZXRjaCI+CiAgPHNjcmlwdD4oZnVuY3Rpb24gKCkgeyBpZiAoInNlbmRCZWFjb24iIGluIG5hdmlnYXRvciAmJiAicGVyZm9ybWFuY2UiIGluIHdpbmRvdykgeyB2YXIgc2Vzc2lvbl90b2tlbiA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaCgvX3Nob3BpZnlfcz0oW147XSopLyk7IGZ1bmN0aW9uIGhhbmRsZV9hYmFuZG9ubWVudF9ldmVudChlKSB7IHZhciBlbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllcygpLmZpbHRlcihmdW5jdGlvbiAoZW50cnkpIHsgcmV0dXJuIC9tb25vcmFpbC1lZGdlLnNob3BpZnlzdmMuY29tLy50ZXN0KGVudHJ5Lm5hbWUpOyB9KTsgaWYgKCF3aW5kb3cuYWJhbmRvbm1lbnRfdHJhY2tlZCAmJiBlbnRyaWVzLmxlbmd0aCA9PT0gMCkgeyB3aW5kb3cuYWJhbmRvbm1lbnRfdHJhY2tlZCA9IHRydWU7IHZhciBjdXJyZW50TXMgPSBEYXRlLm5vdygpOyB2YXIgbmF2aWdhdGlvbl9zdGFydCA9IHBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQ7IHZhciBwYXlsb2FkID0geyBzaG9wX2lkOiA2MjEwODM2OTA1MSwgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZiwgbmF2aWdhdGlvbl9zdGFydCwgZHVyYXRpb246IGN1cnJlbnRNcyAtIG5hdmlnYXRpb25fc3RhcnQsIHNlc3Npb25fdG9rZW46IHNlc3Npb25fdG9rZW4gJiYgc2Vzc2lvbl90b2tlbi5sZW5ndGggPT09IDIgPyBzZXNzaW9uX3Rva2VuWzFdIDogIiIsIHBhZ2VfdHlwZTogInByb2R1Y3QiIH07IHdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbigiaHR0cHM6Ly9tb25vcmFpbC1lZGdlLnNob3BpZnlzdmMuY29tL3YxL3Byb2R1Y2UiLCBKU09OLnN0cmluZ2lmeSh7IHNjaGVtYV9pZDogIm9ubGluZV9zdG9yZV9idXllcl9zaXRlX2FiYW5kb25tZW50LzEuMSIsIHBheWxvYWQ6IHBheWxvYWQsIG1ldGFkYXRhOiB7IGV2ZW50X2NyZWF0ZWRfYXRfbXM6IGN1cnJlbnRNcywgZXZlbnRfc2VudF9hdF9tczogY3VycmVudE1zIH0gfSkpOyB9IH0gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgaGFuZGxlX2FiYW5kb25tZW50X2V2ZW50KTsgfSB9KCkpOzwvc2NyaXB0PgogIDxzY3JpcHQKICAgIGlkPSJ3ZWItcGl4ZWxzLW1hbmFnZXItc2V0dXAiPihmdW5jdGlvbiBlKGUsIG4sIGEsIHQsIG8sIHIsIGkpIHsgdmFyIHMgPSBudWxsICE9PSBlLCBsID0gKCJmdW5jdGlvbiIgPT0gdHlwZW9mIEJpZ0ludCAmJiBCaWdJbnQudG9TdHJpbmcoKS5pbmRleE9mKCJbbmF0aXZlIGNvZGVdIikgPyAibW9kZXJuIiA6ICJsZWdhY3kiKS5zdWJzdHJpbmcoMCwgMSksIGMgPSB0LnN1YnN0cmluZygwLCAxKTsgaWYgKHMpIHsgd2luZG93LlNob3BpZnkgPSB3aW5kb3cuU2hvcGlmeSB8fCB7fTsgdmFyIGQgPSB3aW5kb3cuU2hvcGlmeTsgZC5hbmFseXRpY3MgPSBkLmFuYWx5dGljcyB8fCB7fTsgdmFyIHUgPSBkLmFuYWx5dGljczsgdS5yZXBsYXlRdWV1ZSA9IFtdLCB1LnB1Ymxpc2ggPSBmdW5jdGlvbiAoZSwgbiwgYSkgeyB1LnJlcGxheVF1ZXVlLnB1c2goW2UsIG4sIGFdKSB9OyB0cnkgeyBzZWxmLnBlcmZvcm1hbmNlLm1hcmsoIndwbTpzdGFydCIpIH0gY2F0Y2ggKGUpIHsgfSB9IHZhciBwLCBmLCB5LCBoLCB2LCBtLCB3LCBnLCBiLCBfID0gW2EsICIvd3BtIiwgIi8iLCBjLCByLCBsLCAiLmpzIl0uam9pbigiIik7IGYgPSAocCA9IHsgc3JjOiBfLCBhc3luYzogITAsIG9ubG9hZDogZnVuY3Rpb24gKCkgeyBpZiAoZSkgeyB2YXIgYSA9IHdpbmRvdy53ZWJQaXhlbHNNYW5hZ2VyLmluaXQoZSk7IG51bGwgPT0gbiB8fCBuKGEpOyB2YXIgdCA9IHdpbmRvdy5TaG9waWZ5LmFuYWx5dGljczsgdC5yZXBsYXlRdWV1ZS5mb3JFYWNoKChmdW5jdGlvbiAoZSkgeyB2YXIgbiA9IGVbMF0sIHQgPSBlWzFdLCBvID0gZVsyXTsgYS5wdWJsaXNoQ3VzdG9tRXZlbnQobiwgdCwgbykgfSkpLCB0LnJlcGxheVF1ZXVlID0gW10sIHQucHVibGlzaCA9IGEucHVibGlzaEN1c3RvbUV2ZW50LCB0LnZpc2l0b3IgPSBhLnZpc2l0b3IgfSB9LCBvbmVycm9yOiBmdW5jdGlvbiAoKSB7IHZhciBuID0gKG51bGwgPT0gZSA/IHZvaWQgMCA6IGUuc3RvcmVmcm9udEJhc2VVcmwpID8gZS5zdG9yZWZyb250QmFzZVVybC5yZXBsYWNlKC9cLyQvLCAiIikgOiBzZWxmLmxvY2F0aW9uLm9yaWdpbiwgYSA9ICIiLmNvbmNhdChuLCAiLy53ZWxsLWtub3duL3Nob3BpZnkvbW9ub3JhaWwvdW5zdGFibGUvcHJvZHVjZV9iYXRjaCIpLCB0ID0gSlNPTi5zdHJpbmdpZnkoeyBtZXRhZGF0YTogeyBldmVudF9zZW50X2F0X21zOiAobmV3IERhdGUpLmdldFRpbWUoKSB9LCBldmVudHM6IFt7IHNjaGVtYV9pZDogIndlYl9waXhlbHNfbWFuYWdlcl9sb2FkLzIuMCIsIHBheWxvYWQ6IHsgdmVyc2lvbjogbyB8fCAibGF0ZXN0IiwgcGFnZV91cmw6IHNlbGYubG9jYXRpb24uaHJlZiwgc3RhdHVzOiAiZmFpbGVkIiwgZXJyb3JfbXNnOiAiIi5jb25jYXQoXywgIiBoYXMgZmFpbGVkIHRvIGxvYWQiKSB9LCBtZXRhZGF0YTogeyBldmVudF9jcmVhdGVkX2F0X21zOiAobmV3IERhdGUpLmdldFRpbWUoKSB9IH1dIH0pOyB0cnkgeyBpZiAoc2VsZi5uYXZpZ2F0b3Iuc2VuZEJlYWNvbi5iaW5kKHNlbGYubmF2aWdhdG9yKShhLCB0KSkgcmV0dXJuICEwIH0gY2F0Y2ggKGUpIHsgfSB2YXIgciA9IG5ldyBYTUxIdHRwUmVxdWVzdDsgdHJ5IHsgcmV0dXJuIHIub3BlbigiUE9TVCIsIGEsICEwKSwgci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpLCByLnNlbmQodCksICEwIH0gY2F0Y2ggKGUpIHsgY29uc29sZSAmJiBjb25zb2xlLndhcm4gJiYgY29uc29sZS53YXJuKCJbV2ViIFBpeGVscyBNYW5hZ2VyXSBHb3QgYW4gdW5oYW5kbGVkIGVycm9yIHdoaWxlIGxvZ2dpbmcgYSBsb2FkIGVycm9yLiIpIH0gcmV0dXJuICExIH0gfSkuc3JjLCB5ID0gcC5hc3luYywgaCA9IHZvaWQgMCA9PT0geSB8fCB5LCB2ID0gcC5vbmxvYWQsIG0gPSBwLm9uZXJyb3IsIHcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSwgZyA9IGRvY3VtZW50LmhlYWQsIGIgPSBkb2N1bWVudC5ib2R5LCB3LmFzeW5jID0gaCwgdy5zcmMgPSBmLCB2ICYmIHcuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHYpLCBtICYmIHcuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBtKSwgZyA/IGcuYXBwZW5kQ2hpbGQodykgOiBiID8gYi5hcHBlbmRDaGlsZCh3KSA6IGNvbnNvbGUuZXJyb3IoIkRpZCBub3QgZmluZCBhIGhlYWQgb3IgYm9keSBlbGVtZW50IHRvIGFwcGVuZCB0aGUgc2NyaXB0IikgfSkoeyBzaG9wSWQ6IDYyMTA4MzY5MDUxLCBzdG9yZWZyb250QmFzZVVybDogImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20iLCBjZG5CYXNlVXJsOiAiaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4iLCBzdXJmYWNlOiAic3RvcmVmcm9udC1yZW5kZXJlciIsIGVuYWJsZWRCZXRhRmxhZ3M6IFsid2ViX3BpeGVsc19hc3luY19waXhlbF9yZWZhY3RvciIsICJ3ZWJfcGl4ZWxzX21hbmFnZXJfcGVyZm9ybWFuY2VfaW1wcm92ZW1lbnQiXSwgd2ViUGl4ZWxzQ29uZmlnTGlzdDogW3sgImlkIjogInNob3BpZnktYXBwLXBpeGVsIiwgImNvbmZpZ3VyYXRpb24iOiAie30iLCAiZXZlbnRQYXlsb2FkVmVyc2lvbiI6ICJ2MSIsICJydW50aW1lQ29udGV4dCI6ICJTVFJJQ1QiLCAic2NyaXB0VmVyc2lvbiI6ICIwNTcwIiwgImFwaUNsaWVudElkIjogInNob3BpZnktcGl4ZWwiLCAidHlwZSI6ICJBUFAiIH0sIHsgImlkIjogInNob3BpZnktY3VzdG9tLXBpeGVsIiwgImV2ZW50UGF5bG9hZFZlcnNpb24iOiAidjEiLCAicnVudGltZUNvbnRleHQiOiAiTEFYIiwgInNjcmlwdFZlcnNpb24iOiAiMDU3MCIsICJhcGlDbGllbnRJZCI6ICJzaG9waWZ5LXBpeGVsIiwgInR5cGUiOiAiQ1VTVE9NIiB9XSwgaW5pdERhdGE6IHsgImNhcnQiOiBudWxsLCAiY2hlY2tvdXQiOiBudWxsLCAiY3VzdG9tZXIiOiBudWxsLCAicHJvZHVjdFZhcmlhbnRzIjogW3sgImlkIjogIjQzOTEwMTE5MzI1ODUxIiwgImltYWdlIjogeyAic3JjIjogIlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbVwvY2RuXC9zaG9wXC9maWxlc1wvc2xvdGdhY29ybmloLmpwZz92PTE3MDI3MjkyODQiIH0sICJwcmljZSI6IHsgImFtb3VudCI6IDAuMCwgImN1cnJlbmN5Q29kZSI6ICJJRFIiIH0sICJwcm9kdWN0IjogeyAiaWQiOiAiNzgxNDEzMzYxMjY5OSIsICJ0aXRsZSI6ICJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIiwgInVudHJhbnNsYXRlZFRpdGxlIjogIlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iLCAidXJsIjogIlwvcHJvZHVjdHNcL2xpbmstc2xvdC1tYXh3aW4tdGVycGVyY2F5YS15YW5nLWxhZ2ktZ2Fjb3IiLCAidmVuZG9yIjogIlNsb3QgR2Fjb3IgMjAyNCIsICJ0eXBlIjogIiIgfSwgInNrdSI6ICIiLCAidGl0bGUiOiAiRGVmYXVsdCBUaXRsZSIsICJ1bnRyYW5zbGF0ZWRUaXRsZSI6ICJEZWZhdWx0IFRpdGxlIiB9XSB9LCB9LCBmdW5jdGlvbiBwYWdlRXZlbnRzKHdlYlBpeGVsc01hbmFnZXJBUEkpIHsgd2ViUGl4ZWxzTWFuYWdlckFQSS5wdWJsaXNoKCJwYWdlX3ZpZXdlZCIpOyB3ZWJQaXhlbHNNYW5hZ2VyQVBJLnB1Ymxpc2goInByb2R1Y3Rfdmlld2VkIiwgeyAicHJvZHVjdFZhcmlhbnQiOiB7ICJpZCI6ICI0MzkxMDExOTMyNTg1MSIsICJpbWFnZSI6IHsgInNyYyI6ICJcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL2Nkblwvc2hvcFwvZmlsZXNcL3Nsb3RnYWNvcm5paC5qcGc/dj0xNzAyNzI5Mjg0IiB9LCAicHJpY2UiOiB7ICJhbW91bnQiOiAwLjAsICJjdXJyZW5jeUNvZGUiOiAiSURSIiB9LCAicHJvZHVjdCI6IHsgImlkIjogIjc4MTQxMzM2MTI2OTkiLCAidGl0bGUiOiAiU2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbiIsICJ1bnRyYW5zbGF0ZWRUaXRsZSI6ICJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIiwgInVybCI6ICJcL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiwgInZlbmRvciI6ICJTbG90IEdhY29yIDIwMjQiLCAidHlwZSI6ICIiIH0sICJza3UiOiAiIiwgInRpdGxlIjogIkRlZmF1bHQgVGl0bGUiLCAidW50cmFuc2xhdGVkVGl0bGUiOiAiRGVmYXVsdCBUaXRsZSIgfSB9KTsgfSwgImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuIiwgImJyb3dzZXIiLCAiMC4wLjQxMSIsICIzOGNlY2I4Ync4MzE2NWZiNHA2ZjcxNTI1M205Y2M1NjA5NSIsIFsid2ViX3BpeGVsc19hc3luY19waXhlbF9yZWZhY3RvciIsICJ3ZWJfcGl4ZWxzX21hbmFnZXJfcGVyZm9ybWFuY2VfaW1wcm92ZW1lbnQiXSk7PC9zY3JpcHQ+CiAgPHNjcmlwdD53aW5kb3cuU2hvcGlmeUFuYWx5dGljcyA9IHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzIHx8IHt9OwogICAgd2luZG93LlNob3BpZnlBbmFseXRpY3MubWV0YSA9IHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLm1ldGEgfHwge307CiAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5tZXRhLmN1cnJlbmN5ID0gJ0lEUic7CiAgICB2YXIgbWV0YSA9IHsgInByb2R1Y3QiOiB7ICJpZCI6IDc4MTQxMzM2MTI2OTksICJnaWQiOiAiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0XC83ODE0MTMzNjEyNjk5IiwgInZlbmRvciI6ICJTbG90IEdhY29yIDIwMjQiLCAidHlwZSI6ICIiLCAidmFyaWFudHMiOiBbeyAiaWQiOiA0MzkxMDExOTMyNTg1MSwgInByaWNlIjogMCwgIm5hbWUiOiAiU2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbiIsICJwdWJsaWNfdGl0bGUiOiBudWxsLCAic2t1IjogIiIgfV0gfSwgInBhZ2UiOiB7ICJwYWdlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlSWQiOiA3ODE0MTMzNjEyNjk5IH0gfTsKICAgIGZvciAodmFyIGF0dHIgaW4gbWV0YSkgewogICAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5tZXRhW2F0dHJdID0gbWV0YVthdHRyXTsKICAgIH08L3NjcmlwdD4KICA8c2NyaXB0PndpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLm1lcmNoYW50R29vZ2xlQW5hbHl0aWNzID0gZnVuY3Rpb24gKCkgewoKICAgIH07CiAgPC9zY3JpcHQ+CiAgPHNjcmlwdCBjbGFzcz0iYW5hbHl0aWNzIj4oZnVuY3Rpb24gKCkgewogICAgICB2YXIgY3VzdG9tRG9jdW1lbnRXcml0ZSA9IGZ1bmN0aW9uIChjb250ZW50KSB7CiAgICAgICAgdmFyIGpxdWVyeSA9IG51bGw7CgogICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICBqcXVlcnkgPSB3aW5kb3cualF1ZXJ5OwogICAgICAgIH0gZWxzZSBpZiAod2luZG93LkNoZWNrb3V0ICYmIHdpbmRvdy5DaGVja291dC4kKSB7CiAgICAgICAgICBqcXVlcnkgPSB3aW5kb3cuQ2hlY2tvdXQuJDsKICAgICAgICB9CgogICAgICAgIGlmIChqcXVlcnkpIHsKICAgICAgICAgIGpxdWVyeSgnYm9keScpLmFwcGVuZChjb250ZW50KTsKICAgICAgICB9CiAgICAgIH07CgogICAgICB2YXIgaGFzTG9nZ2VkQ29udmVyc2lvbiA9IGZ1bmN0aW9uICh0b2tlbikgewogICAgICAgIGlmICh0b2tlbikgewogICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCdsb2dnZWRDb252ZXJzaW9uPScgKyB0b2tlbikgIT09IC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHZhciBzZXRDb29raWVJZkNvbnZlcnNpb24gPSBmdW5jdGlvbiAodG9rZW4pIHsKICAgICAgICBpZiAodG9rZW4pIHsKICAgICAgICAgIHZhciB0d29Nb250aHNGcm9tTm93ID0gbmV3IERhdGUoRGF0ZS5ub3coKSk7CiAgICAgICAgICB0d29Nb250aHNGcm9tTm93LnNldE1vbnRoKHR3b01vbnRoc0Zyb21Ob3cuZ2V0TW9udGgoKSArIDIpOwoKICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICdsb2dnZWRDb252ZXJzaW9uPScgKyB0b2tlbiArICc7IGV4cGlyZXM9JyArIHR3b01vbnRoc0Zyb21Ob3c7CiAgICAgICAgfQogICAgICB9CgogICAgICB2YXIgdHJla2tpZSA9IHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLmxpYiA9IHdpbmRvdy50cmVra2llID0gd2luZG93LnRyZWtraWUgfHwgW107CiAgICAgIGlmICh0cmVra2llLmludGVncmF0aW9ucykgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0cmVra2llLm1ldGhvZHMgPSBbCiAgICAgICAgJ2lkZW50aWZ5JywKICAgICAgICAncGFnZScsCiAgICAgICAgJ3JlYWR5JywKICAgICAgICAndHJhY2snLAogICAgICAgICd0cmFja0Zvcm0nLAogICAgICAgICd0cmFja0xpbmsnCiAgICAgIF07CiAgICAgIHRyZWtraWUuZmFjdG9yeSA9IGZ1bmN0aW9uIChtZXRob2QpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpOwogICAgICAgICAgYXJncy51bnNoaWZ0KG1ldGhvZCk7CiAgICAgICAgICB0cmVra2llLnB1c2goYXJncyk7CiAgICAgICAgICByZXR1cm4gdHJla2tpZTsKICAgICAgICB9OwogICAgICB9OwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyZWtraWUubWV0aG9kcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBrZXkgPSB0cmVra2llLm1ldGhvZHNbaV07CiAgICAgICAgdHJla2tpZVtrZXldID0gdHJla2tpZS5mYWN0b3J5KGtleSk7CiAgICAgIH0KICAgICAgdHJla2tpZS5sb2FkID0gZnVuY3Rpb24gKGNvbmZpZykgewogICAgICAgIHRyZWtraWUuY29uZmlnID0gY29uZmlnIHx8IHt9OwogICAgICAgIHRyZWtraWUuY29uZmlnLmluaXRpYWxEb2N1bWVudENvb2tpZSA9IGRvY3VtZW50LmNvb2tpZTsKICAgICAgICB2YXIgZmlyc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgdmFyIHNjcmlwdEZhbGxiYWNrID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAgIHZhciBNb25vcmFpbCA9IHsKICAgICAgICAgICAgICBwcm9kdWNlOiBmdW5jdGlvbiBwcm9kdWNlKG1vbm9yYWlsRG9tYWluLCBzY2hlbWFJZCwgcGF5bG9hZCkgewogICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRNcyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gewogICAgICAgICAgICAgICAgICBzY2hlbWFfaWQ6IHNjaGVtYUlkLAogICAgICAgICAgICAgICAgICBwYXlsb2FkOiBwYXlsb2FkLAogICAgICAgICAgICAgICAgICBtZXRhZGF0YTogewogICAgICAgICAgICAgICAgICAgIGV2ZW50X2NyZWF0ZWRfYXRfbXM6IGN1cnJlbnRNcywKICAgICAgICAgICAgICAgICAgICBldmVudF9zZW50X2F0X21zOiBjdXJyZW50TXMKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIHJldHVybiBNb25vcmFpbC5zZW5kUmVxdWVzdCgiaHR0cHM6Ly8iICsgbW9ub3JhaWxEb21haW4gKyAiL3YxL3Byb2R1Y2UiLCBKU09OLnN0cmluZ2lmeShldmVudCkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2VuZFJlcXVlc3Q6IGZ1bmN0aW9uIHNlbmRSZXF1ZXN0KGVuZHBvaW50VXJsLCBwYXlsb2FkKSB7CiAgICAgICAgICAgICAgICAvLyBUcnkgdGhlIHNlbmRCZWFjb24gQVBJCiAgICAgICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5uYXZpZ2F0b3IgJiYgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygd2luZG93LkJsb2IgPT09ICdmdW5jdGlvbicgJiYgIU1vbm9yYWlsLmlzSW9zMTIoKSkgewogICAgICAgICAgICAgICAgICB2YXIgYmxvYkRhdGEgPSBuZXcgd2luZG93LkJsb2IoW3BheWxvYWRdLCB7CiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQvcGxhaW4nCiAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihlbmRwb2ludFVybCwgYmxvYkRhdGEpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgIH0gLy8gc2VuZEJlYWNvbiB3YXMgbm90IHN1Y2Nlc3NmdWwKCiAgICAgICAgICAgICAgICB9IC8vIFhIUiBiZWFjb24KCiAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CgogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgeGhyLm9wZW4oJ1BPU1QnLCBlbmRwb2ludFVybCk7CiAgICAgICAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpOwogICAgICAgICAgICAgICAgICB4aHIuc2VuZChwYXlsb2FkKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgaXNJb3MxMjogZnVuY3Rpb24gaXNJb3MxMigpIHsKICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5sYXN0SW5kZXhPZignaVBob25lOyBDUFUgaVBob25lIE9TIDEyXycpICE9PSAtMSB8fCB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5sYXN0SW5kZXhPZignaVBhZDsgQ1BVIE9TIDEyXycpICE9PSAtMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIE1vbm9yYWlsLnByb2R1Y2UoJ21vbm9yYWlsLWVkZ2Uuc2hvcGlmeXN2Yy5jb20nLAogICAgICAgICAgICAgICd0cmVra2llX3N0b3JlZnJvbnRfbG9hZF9lcnJvcnMvMS4xJywKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzaG9wX2lkOiA2MjEwODM2OTA1MSwKICAgICAgICAgICAgICAgIHRoZW1lX2lkOiAxMzI5MjkwOTM3ODcsCiAgICAgICAgICAgICAgICBhcHBfbmFtZTogInN0b3JlZnJvbnQiLAogICAgICAgICAgICAgICAgY29udGV4dF91cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLAogICAgICAgICAgICAgICAgc291cmNlX3VybDogImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3MvdHJla2tpZS5zdG9yZWZyb250LjdhNDIyNWNhZjkzNzlmZTQyMTAzZTQ5MjA1MzIyMGE3MTk1ZGYxYWUubWluLmpzIgogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgIH07CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay5hc3luYyA9IHRydWU7CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay5zcmMgPSAnaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vcy90cmVra2llLnN0b3JlZnJvbnQuN2E0MjI1Y2FmOTM3OWZlNDIxMDNlNDkyMDUzMjIwYTcxOTVkZjFhZS5taW4uanMnOwogICAgICAgICAgZmlyc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc2NyaXB0RmFsbGJhY2ssIGZpcnN0KTsKICAgICAgICB9OwogICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7CiAgICAgICAgc2NyaXB0LnNyYyA9ICdodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zL3RyZWtraWUuc3RvcmVmcm9udC43YTQyMjVjYWY5Mzc5ZmU0MjEwM2U0OTIwNTMyMjBhNzE5NWRmMWFlLm1pbi5qcyc7CiAgICAgICAgZmlyc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc2NyaXB0LCBmaXJzdCk7CiAgICAgIH07CiAgICAgIHRyZWtraWUubG9hZCgKICAgICAgICB7ICJUcmVra2llIjogeyAiYXBwTmFtZSI6ICJzdG9yZWZyb250IiwgImRldmVsb3BtZW50IjogZmFsc2UsICJkZWZhdWx0QXR0cmlidXRlcyI6IHsgInNob3BJZCI6IDYyMTA4MzY5MDUxLCAiaXNNZXJjaGFudFJlcXVlc3QiOiBudWxsLCAidGhlbWVJZCI6IDEzMjkyOTA5Mzc4NywgInRoZW1lQ2l0eUhhc2giOiAiMTAzNzcxOTY3ODk4NDA4MDM1MSIsICJjb250ZW50TGFuZ3VhZ2UiOiAiZW4iLCAiY3VycmVuY3kiOiAiSURSIiB9LCAiaXNTZXJ2ZXJTaWRlQ29va2llV3JpdGluZ0VuYWJsZWQiOiB0cnVlLCAibW9ub3JhaWxSZWdpb24iOiAic2hvcF9kb21haW4iIH0sICJTZXNzaW9uIEF0dHJpYnV0aW9uIjoge30sICJTMlMiOiB7ICJmYWNlYm9va0NhcGlFbmFibGVkIjogZmFsc2UsICJzb3VyY2UiOiAidHJla2tpZS1zdG9yZWZyb250LXJlbmRlcmVyIiB9IH0KICAgICAgKTsKCiAgICAgIHZhciBsb2FkZWQgPSBmYWxzZTsKICAgICAgdHJla2tpZS5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGxvYWRlZCkgcmV0dXJuOwogICAgICAgIGxvYWRlZCA9IHRydWU7CgogICAgICAgIHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLmxpYiA9IHdpbmRvdy50cmVra2llOwoKCiAgICAgICAgdmFyIG9yaWdpbmFsRG9jdW1lbnRXcml0ZSA9IGRvY3VtZW50LndyaXRlOwogICAgICAgIGRvY3VtZW50LndyaXRlID0gY3VzdG9tRG9jdW1lbnRXcml0ZTsKICAgICAgICB0cnkgeyB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5tZXJjaGFudEdvb2dsZUFuYWx5dGljcy5jYWxsKHRoaXMpOyB9IGNhdGNoIChlcnJvcikgeyB9OwogICAgICAgIGRvY3VtZW50LndyaXRlID0gb3JpZ2luYWxEb2N1bWVudFdyaXRlOwoKICAgICAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5saWIucGFnZShudWxsLCB7ICJwYWdlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlSWQiOiA3ODE0MTMzNjEyNjk5IH0pOwoKICAgICAgICB2YXIgbWF0Y2ggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL2NoZWNrb3V0c1wvKC4rKVwvKHRoYW5rX3lvdXxwb3N0X3B1cmNoYXNlKS8pCiAgICAgICAgdmFyIHRva2VuID0gbWF0Y2ggPyBtYXRjaFsxXSA6IHVuZGVmaW5lZDsKICAgICAgICBpZiAoIWhhc0xvZ2dlZENvbnZlcnNpb24odG9rZW4pKSB7CiAgICAgICAgICBzZXRDb29raWVJZkNvbnZlcnNpb24odG9rZW4pOwogICAgICAgICAgd2luZG93LlNob3BpZnlBbmFseXRpY3MubGliLnRyYWNrKCJWaWV3ZWQgUHJvZHVjdCIsIHsgImN1cnJlbmN5IjogIklEUiIsICJ2YXJpYW50SWQiOiA0MzkxMDExOTMyNTg1MSwgInByb2R1Y3RJZCI6IDc4MTQxMzM2MTI2OTksICJwcm9kdWN0R2lkIjogImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFwvNzgxNDEzMzYxMjY5OSIsICJuYW1lIjogIlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iLCAicHJpY2UiOiAiMC4wMCIsICJza3UiOiAiIiwgImJyYW5kIjogIlNsb3QgR2Fjb3IgMjAyNCIsICJ2YXJpYW50IjogbnVsbCwgImNhdGVnb3J5IjogIiIsICJub25JbnRlcmFjdGlvbiI6IHRydWUgfSk7CiAgICAgICAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5saWIudHJhY2soIm1vbm9yYWlsOlwvXC90cmVra2llX3N0b3JlZnJvbnRfdmlld2VkX3Byb2R1Y3RcLzEuMSIsIHsgImN1cnJlbmN5IjogIklEUiIsICJ2YXJpYW50SWQiOiA0MzkxMDExOTMyNTg1MSwgInByb2R1Y3RJZCI6IDc4MTQxMzM2MTI2OTksICJwcm9kdWN0R2lkIjogImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFwvNzgxNDEzMzYxMjY5OSIsICJuYW1lIjogIlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iLCAicHJpY2UiOiAiMC4wMCIsICJza3UiOiAiIiwgImJyYW5kIjogIlNsb3QgR2Fjb3IgMjAyNCIsICJ2YXJpYW50IjogbnVsbCwgImNhdGVnb3J5IjogIiIsICJub25JbnRlcmFjdGlvbiI6IHRydWUsICJyZWZlcmVyIjogImh0dHBzOlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbVwvcHJvZHVjdHNcL2xpbmstc2xvdC1tYXh3aW4tdGVycGVyY2F5YS15YW5nLWxhZ2ktZ2Fjb3IiIH0pOwogICAgICAgIH0KICAgICAgfSk7CgoKICAgICAgdmFyIGV2ZW50c0xpc3RlbmVyU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgIGV2ZW50c0xpc3RlbmVyU2NyaXB0LmFzeW5jID0gdHJ1ZTsKICAgICAgZXZlbnRzTGlzdGVuZXJTY3JpcHQuc3JjID0gImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3BpZnljbG91ZC9zaG9waWZ5L2Fzc2V0cy9zaG9wX2V2ZW50c19saXN0ZW5lci1hN2M2M2RiYTY1Y2NkZGM0ODRmNzc1NDFkYzhjYTQzN2U2MGUxZTllMjk3ZmUxYzNmYWViZjY1MjNhMGVkZTliLmpzIjsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChldmVudHNMaXN0ZW5lclNjcmlwdCk7CgogICAgfSkoKTs8L3NjcmlwdD4KICA8c2NyaXB0IGNsYXNzPSJib29tZXJhbmciPgogICAgKGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHdpbmRvdy5CT09NUiAmJiAod2luZG93LkJPT01SLnZlcnNpb24gfHwgd2luZG93LkJPT01SLnNuaXBwZXRFeGVjdXRlZCkpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgd2luZG93LkJPT01SID0gd2luZG93LkJPT01SIHx8IHt9OwogICAgICB3aW5kb3cuQk9PTVIuc25pcHBldFN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgIHdpbmRvdy5CT09NUi5zbmlwcGV0RXhlY3V0ZWQgPSB0cnVlOwogICAgICB3aW5kb3cuQk9PTVIuc25pcHBldFZlcnNpb24gPSAxMjsKICAgICAgd2luZG93LkJPT01SLmFwcGxpY2F0aW9uID0gInN0b3JlZnJvbnQtcmVuZGVyZXIiOwogICAgICB3aW5kb3cuQk9PTVIudGhlbWVOYW1lID0gIlJlZnJlc2giOwogICAgICB3aW5kb3cuQk9PTVIudGhlbWVWZXJzaW9uID0gIjEyLjAuMCI7CiAgICAgIHdpbmRvdy5CT09NUi5zaG9wSWQgPSA2MjEwODM2OTA1MTsKICAgICAgd2luZG93LkJPT01SLnRoZW1lSWQgPSAxMzI5MjkwOTM3ODc7CiAgICAgIHdpbmRvdy5CT09NUi5yZW5kZXJSZWdpb24gPSAiZ2NwLXVzLWNlbnRyYWwxIjsKICAgICAgd2luZG93LkJPT01SLnVybCA9CiAgICAgICAgImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3BpZnljbG91ZC9ib29tZXJhbmcvc2hvcGlmeS1ib29tZXJhbmctMS4wLjAubWluLmpzIjsKICAgICAgdmFyIHdoZXJlID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgIHZhciBwYXJlbnROb2RlID0gd2hlcmUucGFyZW50Tm9kZTsKICAgICAgdmFyIHByb21vdGVkID0gZmFsc2U7CiAgICAgIHZhciBMT0FERVJfVElNRU9VVCA9IDMwMDA7CiAgICAgIGZ1bmN0aW9uIHByb21vdGUoKSB7CiAgICAgICAgaWYgKHByb21vdGVkKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICBzY3JpcHQuaWQgPSAiYm9vbXItc2NyLWFzIjsKICAgICAgICBzY3JpcHQuc3JjID0gd2luZG93LkJPT01SLnVybDsKICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlOwogICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICAgICBwcm9tb3RlZCA9IHRydWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaWZyYW1lTG9hZGVyKHdhc0ZhbGxiYWNrKSB7CiAgICAgICAgcHJvbW90ZWQgPSB0cnVlOwogICAgICAgIHZhciBkb20sIGJvb3RzdHJhcCwgaWZyYW1lLCBpZnJhbWVTdHlsZTsKICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQ7CiAgICAgICAgdmFyIHdpbiA9IHdpbmRvdzsKICAgICAgICB3aW5kb3cuQk9PTVIuc25pcHBldE1ldGhvZCA9IHdhc0ZhbGxiYWNrID8gImlmIiA6ICJpIjsKICAgICAgICBib290c3RyYXAgPSBmdW5jdGlvbiAocGFyZW50LCBzY3JpcHRJZCkgewogICAgICAgICAgdmFyIHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICAgIHNjcmlwdC5pZCA9IHNjcmlwdElkIHx8ICJib29tci1pZi1hcyI7CiAgICAgICAgICBzY3JpcHQuc3JjID0gd2luZG93LkJPT01SLnVybDsKICAgICAgICAgIEJPT01SX2xzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgcGFyZW50ID0gcGFyZW50IHx8IGRvYy5ib2R5OwogICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAgICAgfTsKICAgICAgICBpZiAoIXdpbmRvdy5hZGRFdmVudExpc3RlbmVyICYmIHdpbmRvdy5hdHRhY2hFdmVudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9NU0lFIFs2N10uLykpIHsKICAgICAgICAgIHdpbmRvdy5CT09NUi5zbmlwcGV0TWV0aG9kID0gInMiOwogICAgICAgICAgYm9vdHN0cmFwKHBhcmVudE5vZGUsICJib29tci1hc3luYyIpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJRlJBTUUiKTsKICAgICAgICBpZnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKICAgICAgICBpZnJhbWUudGl0bGUgPSAiIjsKICAgICAgICBpZnJhbWUucm9sZSA9ICJwcmVzZW50YXRpb24iOwogICAgICAgIGlmcmFtZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpZnJhbWVTdHlsZSA9IChpZnJhbWUuZnJhbWVFbGVtZW50IHx8IGlmcmFtZSkuc3R5bGU7CiAgICAgICAgaWZyYW1lU3R5bGUud2lkdGggPSAwOwogICAgICAgIGlmcmFtZVN0eWxlLmhlaWdodCA9IDA7CiAgICAgICAgaWZyYW1lU3R5bGUuYm9yZGVyID0gMDsKICAgICAgICBpZnJhbWVTdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKICAgICAgICB0cnkgewogICAgICAgICAgd2luID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CiAgICAgICAgICBkb2MgPSB3aW4uZG9jdW1lbnQub3BlbigpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGRvbSA9IGRvY3VtZW50LmRvbWFpbjsKICAgICAgICAgIGlmcmFtZS5zcmMgPSAiamF2YXNjcmlwdDp2YXIgZD1kb2N1bWVudC5vcGVuKCk7ZC5kb21haW49JyIgKyBkb20gKyAiJzt2b2lkKDApOyI7CiAgICAgICAgICB3aW4gPSBpZnJhbWUuY29udGVudFdpbmRvdzsKICAgICAgICAgIGRvYyA9IHdpbi5kb2N1bWVudC5vcGVuKCk7CiAgICAgICAgfQogICAgICAgIGlmIChkb20pIHsKICAgICAgICAgIGRvYy5fYm9vbXJsID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmRvbWFpbiA9IGRvbTsKICAgICAgICAgICAgYm9vdHN0cmFwKCk7CiAgICAgICAgICB9OwogICAgICAgICAgZG9jLndyaXRlKCI8Ym9keSBvbmxvYWQ9J2RvY3VtZW50Ll9ib29tcmwoKTsnPiIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB3aW4uX2Jvb21ybCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgYm9vdHN0cmFwKCk7CiAgICAgICAgICB9OwogICAgICAgICAgaWYgKHdpbi5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgd2luLl9ib29tcmwsIGZhbHNlKTsKICAgICAgICAgIH0gZWxzZSBpZiAod2luLmF0dGFjaEV2ZW50KSB7CiAgICAgICAgICAgIHdpbi5hdHRhY2hFdmVudCgib25sb2FkIiwgd2luLl9ib29tcmwpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBkb2MuY2xvc2UoKTsKICAgICAgfQogICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsKICAgICAgaWYgKGxpbmsucmVsTGlzdCAmJgogICAgICAgIHR5cGVvZiBsaW5rLnJlbExpc3Quc3VwcG9ydHMgPT09ICJmdW5jdGlvbiIgJiYKICAgICAgICBsaW5rLnJlbExpc3Quc3VwcG9ydHMoInByZWxvYWQiKSAmJgogICAgICAgICgiYXMiIGluIGxpbmspKSB7CiAgICAgICAgd2luZG93LkJPT01SLnNuaXBwZXRNZXRob2QgPSAicCI7CiAgICAgICAgbGluay5ocmVmID0gd2luZG93LkJPT01SLnVybDsKICAgICAgICBsaW5rLnJlbCA9ICJwcmVsb2FkIjsKICAgICAgICBsaW5rLmFzID0gInNjcmlwdCI7CiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcHJvbW90ZSk7CiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmcmFtZUxvYWRlcih0cnVlKTsKICAgICAgICB9KTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmICghcHJvbW90ZWQpIHsKICAgICAgICAgICAgaWZyYW1lTG9hZGVyKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0sIExPQURFUl9USU1FT1VUKTsKICAgICAgICBCT09NUl9sc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgICBwYXJlbnROb2RlLmFwcGVuZENoaWxkKGxpbmspOwogICAgICB9IGVsc2UgewogICAgICAgIGlmcmFtZUxvYWRlcihmYWxzZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYm9vbWVyYW5nU2F2ZUxvYWRUaW1lKGUpIHsKICAgICAgICB3aW5kb3cuQk9PTVJfb25sb2FkID0gKGUgJiYgZS50aW1lU3RhbXApIHx8IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICB9CiAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYm9vbWVyYW5nU2F2ZUxvYWRUaW1lLCBmYWxzZSk7CiAgICAgIH0gZWxzZSBpZiAod2luZG93LmF0dGFjaEV2ZW50KSB7CiAgICAgICAgd2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLCBib29tZXJhbmdTYXZlTG9hZFRpbWUpOwogICAgICB9CiAgICAgIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigib25Cb29tZXJhbmdMb2FkZWQiLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgZS5kZXRhaWwuQk9PTVIuaW5pdCh7CiAgICAgICAgICAgIFJlc291cmNlVGltaW5nOiB7CiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgICB0cmFja2VkUmVzb3VyY2VUeXBlczogWyJzY3JpcHQiLCAiaW1nIiwgImNzcyJdCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9KTsKICAgICAgICAgIGUuZGV0YWlsLkJPT01SLnRfZW5kID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuYXR0YWNoRXZlbnQpIHsKICAgICAgICBkb2N1bWVudC5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICBpZiAoIWUpIGUgPSBldmVudDsKICAgICAgICAgIGlmIChlLnByb3BlcnR5TmFtZSA9PT0gIm9uQm9vbWVyYW5nTG9hZGVkIikgewogICAgICAgICAgICBlLmRldGFpbC5CT09NUi5pbml0KHsKICAgICAgICAgICAgICBSZXNvdXJjZVRpbWluZzogewogICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgICAgIHRyYWNrZWRSZXNvdXJjZVR5cGVzOiBbInNjcmlwdCIsICJpbWciLCAiY3NzIl0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgZS5kZXRhaWwuQk9PTVIudF9lbmQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfSkoKTs8L3NjcmlwdD4KPC9oZWFkPgoKPGJvZHkgY2xhc3M9ImdyYWRpZW50Ij4KICA8YSBjbGFzcz0ic2tpcC10by1jb250ZW50LWxpbmsgYnV0dG9uIHZpc3VhbGx5LWhpZGRlbiIgaHJlZj0iI01haW5Db250ZW50Ij4KICAgIFNraXAgdG8gY29udGVudAogIDwvYT4KCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3F1YW50aXR5LXBvcG92ZXIuY3NzP3Y9MTUzMDc1NjY1MjEzNzQwMzM5NjIxNzAyNzI5NTgwIgogICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICA8bGluayBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcmQuY3NzP3Y9NDcyNjA4NjA2ODQwNzMxMDU5MjE3MDI3Mjk1NzgiCiAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NhcnQuanM/dj01NjkzMzg4ODI3Mzk3NTY3MTQzMTcwMjcyOTU3OCIKICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9xdWFudGl0eS1wb3BvdmVyLmpzP3Y9MTk0NTU3MTMyMzAwMTcwMDA4NjE3MDI3Mjk1ODAiCiAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PgoKICA8c3R5bGU+CiAgICAuZHJhd2VyIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQogIDwvc3R5bGU+CgogIDxjYXJ0LWRyYXdlciBjbGFzcz0iZHJhd2VyIGlzLWVtcHR5Ij4KICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXIiIGNsYXNzPSJjYXJ0LWRyYXdlciI+CiAgICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXItT3ZlcmxheSIgY2xhc3M9ImNhcnQtZHJhd2VyX19vdmVybGF5Ij48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19pbm5lciBncmFkaWVudCBjb2xvci1iYWNrZ3JvdW5kLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1tb2RhbD0idHJ1ZSIgYXJpYS1sYWJlbD0iWW91ciBjYXJ0IgogICAgICAgIHRhYmluZGV4PSItMSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19pbm5lci1lbXB0eSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWRyYXdlcl9fd2FybmluZ3MgY2VudGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1kcmF3ZXJfX2VtcHR5LWNvbnRlbnQiPgogICAgICAgICAgICAgIDxoMiBjbGFzcz0iY2FydF9fZW1wdHktdGV4dCI+WW91ciBjYXJ0IGlzIGVtcHR5PC9oMj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkcmF3ZXJfX2Nsb3NlIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9InRoaXMuY2xvc2VzdCgnY2FydC1kcmF3ZXInKS5jbG9zZSgpIgogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iQ2xvc2UiPgogICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTggMTciPgogICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgIGQ9Ik0uODY1IDE1Ljk3OGEuNS41IDAgMDAuNzA3LjcwN2w3LjQzMy03LjQzMSA3LjU3OSA3LjI4MmEuNTAxLjUwMSAwIDAwLjg0Ni0uMzcuNS41IDAgMDAtLjE1My0uMzUxTDkuNzEyIDguNTQ2bDcuNDE3LTcuNDE2YS41LjUgMCAxMC0uNzA3LS43MDhMOC45OTEgNy44NTMgMS40MTMuNTczYS41LjUgMCAxMC0uNjkzLjcybDcuNTYzIDcuMjY4LTcuNDE4IDcuNDE3eiIKICAgICAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9jb2xsZWN0aW9ucy9hbGwiIGNsYXNzPSJidXR0b24iPgogICAgICAgICAgICAgICAgQ29udGludWUgc2hvcHBpbmcKICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19oZWFkZXIiPgogICAgICAgICAgPGgyIGNsYXNzPSJkcmF3ZXJfX2hlYWRpbmciPllvdXIgY2FydDwvaDI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkcmF3ZXJfX2Nsb3NlIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9InRoaXMuY2xvc2VzdCgnY2FydC1kcmF3ZXInKS5jbG9zZSgpIiBhcmlhLWxhYmVsPSJDbG9zZSI+CiAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1jbG9zZSIKICAgICAgICAgICAgICBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTggMTciPgogICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICBkPSJNLjg2NSAxNS45NzhhLjUuNSAwIDAwLjcwNy43MDdsNy40MzMtNy40MzEgNy41NzkgNy4yODJhLjUwMS41MDEgMCAwMC44NDYtLjM3LjUuNSAwIDAwLS4xNTMtLjM1MUw5LjcxMiA4LjU0Nmw3LjQxNy03LjQxNmEuNS41IDAgMTAtLjcwNy0uNzA4TDguOTkxIDcuODUzIDEuNDEzLjU3M2EuNS41IDAgMTAtLjY5My43Mmw3LjU2MyA3LjI2OC03LjQxOCA3LjQxN3oiCiAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8L3N2Zz4KCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8Y2FydC1kcmF3ZXItaXRlbXMgY2xhc3M9IiBpcy1lbXB0eSI+CiAgICAgICAgICA8Zm9ybSBhY3Rpb249Ii9jYXJ0IiBpZD0iQ2FydERyYXdlci1Gb3JtIiBjbGFzcz0iY2FydF9fY29udGVudHMgY2FydC1kcmF3ZXJfX2Zvcm0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXItQ2FydEl0ZW1zIiBjbGFzcz0iZHJhd2VyX19jb250ZW50cyBqcy1jb250ZW50cyI+CiAgICAgICAgICAgICAgPHAgaWQ9IkNhcnREcmF3ZXItTGl2ZVJlZ2lvblRleHQiIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iIHJvbGU9InN0YXR1cyI+PC9wPgogICAgICAgICAgICAgIDxwIGlkPSJDYXJ0RHJhd2VyLUxpbmVJdGVtU3RhdHVzIiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0ic3RhdHVzIj4KICAgICAgICAgICAgICAgIExvYWRpbmcuLi4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJDYXJ0RHJhd2VyLUNhcnRFcnJvcnMiIHJvbGU9ImFsZXJ0Ij48L2Rpdj4KICAgICAgICAgIDwvZm9ybT4KICAgICAgICA8L2NhcnQtZHJhd2VyLWl0ZW1zPgogICAgICAgIDxkaXYgY2xhc3M9ImRyYXdlcl9fZm9vdGVyIj48IS0tIFN0YXJ0IGJsb2NrcyAtLT4KICAgICAgICAgIDwhLS0gU3VidG90YWxzIC0tPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtZHJhd2VyX19mb290ZXIiPgogICAgICAgICAgICA8ZGl2PjwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG90YWxzIiByb2xlPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idG90YWxzX190b3RhbCI+RXN0aW1hdGVkIHRvdGFsPC9oMj4KICAgICAgICAgICAgICA8cCBjbGFzcz0idG90YWxzX190b3RhbC12YWx1ZSI+UnAgMS4wMDAsMDAgSURSPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz0idGF4LW5vdGUgY2FwdGlvbi1sYXJnZSBydGUiPlRheGVzLCBkaXNjb3VudHMgYW5kIHNoaXBwaW5nIGNhbGN1bGF0ZWQgYXQgY2hlY2tvdXQKICAgICAgICAgICAgPC9zbWFsbD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDwhLS0gQ1RBcyAtLT4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0X19jdGFzIj4KICAgICAgICAgICAgPG5vc2NyaXB0PgogICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iY2FydF9fdXBkYXRlLWJ1dHRvbiBidXR0b24gYnV0dG9uLS1zZWNvbmRhcnkiIGZvcm09IkNhcnREcmF3ZXItRm9ybSI+CiAgICAgICAgICAgICAgICBVcGRhdGUKICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9ub3NjcmlwdD4KCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0iQ2FydERyYXdlci1DaGVja291dCIgY2xhc3M9ImNhcnRfX2NoZWNrb3V0LWJ1dHRvbiBidXR0b24iIG5hbWU9ImNoZWNrb3V0IgogICAgICAgICAgICAgIGZvcm09IkNhcnREcmF3ZXItRm9ybSIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgQ2hlY2sgb3V0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9jYXJ0LWRyYXdlcj4KCiAgPHNjcmlwdD4KICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIGZ1bmN0aW9uIGlzSUUoKSB7CiAgICAgICAgY29uc3QgdWEgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDsKICAgICAgICBjb25zdCBtc2llID0gdWEuaW5kZXhPZignTVNJRSAnKTsKICAgICAgICBjb25zdCB0cmlkZW50ID0gdWEuaW5kZXhPZignVHJpZGVudC8nKTsKCiAgICAgICAgcmV0dXJuIG1zaWUgPiAwIHx8IHRyaWRlbnQgPiAwOwogICAgICB9CgogICAgICBpZiAoIWlzSUUoKSkgcmV0dXJuOwogICAgICBjb25zdCBjYXJ0U3VibWl0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICBjYXJ0U3VibWl0SW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2NoZWNrb3V0Jyk7CiAgICAgIGNhcnRTdWJtaXRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjYXJ0JykuYXBwZW5kQ2hpbGQoY2FydFN1Ym1pdElucHV0KTsKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NoZWNrb3V0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2FydCcpLnN1Ym1pdCgpOwogICAgICB9KTsKICAgIH0pOwogIDwvc2NyaXB0PgogIDwhLS0gQkVHSU4gc2VjdGlvbnM6IGhlYWRlci1ncm91cCAtLT4KICA8ZGl2IGlkPSJzaG9waWZ5LXNlY3Rpb24tc2VjdGlvbnMtLTE2MjYyMTIyOTYzMDk5X19oZWFkZXIiCiAgICBjbGFzcz0ic2hvcGlmeS1zZWN0aW9uIHNob3BpZnktc2VjdGlvbi1ncm91cC1oZWFkZXItZ3JvdXAgc2VjdGlvbi1oZWFkZXIiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxpc3QtbWVudS5jc3M/dj0xNTE5Njg1MTYxMTk2Nzg3Mjg5OTE3MDI3Mjk1NzgiCiAgICAgIG1lZGlhPSJwcmludCIgb25sb2FkPSJ0aGlzLm1lZGlhPSdhbGwnIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1zZWFyY2guY3NzP3Y9MTY1MTY0NzEwOTkwNzY1NDMyODUxNzAyNzI5NTc5IgogICAgICBtZWRpYT0icHJpbnQiIG9ubG9hZD0idGhpcy5tZWRpYT0nYWxsJyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbWVudS1kcmF3ZXIuY3NzP3Y9MzEzMzE0MjkwNzkwMjI2MzAyNzE3MDI3Mjk1NzkiCiAgICAgIG1lZGlhPSJwcmludCIgb25sb2FkPSJ0aGlzLm1lZGlhPSdhbGwnIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1jYXJ0LW5vdGlmaWNhdGlvbi5jc3M/dj01NDExNjM2MTg1Mzc5MjkzODIyMTcwMjcyOTU3OCIKICAgICAgbWVkaWE9InByaW50IiBvbmxvYWQ9InRoaXMubWVkaWE9J2FsbCciPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcnQtaXRlbXMuY3NzP3Y9MTQ1MzQwNzQ2MzcxMzg1MTUxNzcxNzAyNzI5NTc4IgogICAgICBtZWRpYT0icHJpbnQiIG9ubG9hZD0idGhpcy5tZWRpYT0nYWxsJyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtcHJpY2UuY3NzP3Y9NzAxNzI3NDUwMTczNjAxMzkxMDE3MDI3Mjk1NzkiCiAgICAgIG1lZGlhPSJwcmludCIgb25sb2FkPSJ0aGlzLm1lZGlhPSdhbGwnIj4KICAgIDxsaW5rCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtY2FydC1kcmF3ZXIuY3NzP3Y9MTEzNzYxMDAwNTg1MDcwMjc1MTE3MDI3Mjk1NzgiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8bGluayBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcnQuY3NzP3Y9MTgxMjkxMzM3OTY3MjM4NTcxODMxNzAyNzI5NTc4IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC10b3RhbHMuY3NzP3Y9MTU5MDY2NTIwMzM4NjY2MzE1MjE3MDI3Mjk1NzkiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8bGluayBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXByaWNlLmNzcz92PTcwMTcyNzQ1MDE3MzYwMTM5MTAxNzAyNzI5NTc5IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1kaXNjb3VudHMuY3NzP3Y9MTUyNzYwNDgyNDQzMzA3NDg5MjcxNzAyNzI5NTc4IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPG5vc2NyaXB0PgogICAgICA8bGluawogICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbGlzdC1tZW51LmNzcz92PTE1MTk2ODUxNjExOTY3ODcyODk5MTcwMjcyOTU3OCIKICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPC9ub3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgPGxpbmsKICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXNlYXJjaC5jc3M/dj0xNjUxNjQ3MTA5OTA3NjU0MzI4NTE3MDI3Mjk1NzkiCiAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8bm9zY3JpcHQ+CiAgICAgIDxsaW5rCiAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1tZW51LWRyYXdlci5jc3M/dj0zMTMzMTQyOTA3OTAyMjYzMDI3MTcwMjcyOTU3OSIKICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPC9ub3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgPGxpbmsKICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcnQtbm90aWZpY2F0aW9uLmNzcz92PTU0MTE2MzYxODUzNzkyOTM4MjIxNzAyNzI5NTc4IgogICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8L25vc2NyaXB0PgogICAgPG5vc2NyaXB0PgogICAgICA8bGluawogICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtY2FydC1pdGVtcy5jc3M/dj0xNDUzNDA3NDYzNzEzODUxNTE3NzE3MDI3Mjk1NzgiCiAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDwvbm9zY3JpcHQ+CgogICAgPHN0eWxlPgogICAgICBoZWFkZXItZHJhd2VyIHsKICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4ycmVtOwogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTBweCkgewogICAgICAgIGhlYWRlci1kcmF3ZXIgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZW51LWRyYXdlci1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5saXN0LW1lbnUgewogICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5saXN0LW1lbnUtLWlubGluZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICBzdW1tYXJ5Lmxpc3QtbWVudV9faXRlbSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMi43cmVtOwogICAgICB9CgogICAgICAubGlzdC1tZW51X19pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMSArIDAuMyAvIHZhcigtLWZvbnQtYm9keS1zY2FsZSkpOwogICAgICB9CgogICAgICAubGlzdC1tZW51X19pdGVtLS1saW5rIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07CiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMSArIDAuOCAvIHZhcigtLWZvbnQtYm9keS1zY2FsZSkpOwogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkgewogICAgICAgIC5saXN0LW1lbnVfX2l0ZW0tLWxpbmsgewogICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsKICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHN0eWxlIGRhdGEtc2hvcGlmeT4KICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTBweCAzcmVtIDEwcHggM3JlbTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIC8qIFRoaXMgaXMgZm9yIGZpeGluZyBhIFNhZmFyaSB6LWluZGV4IGlzc3VlLiBQUiAjMjE0NyAqLwogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkwcHgpIHsKICAgICAgICAuaGVhZGVyIHsKICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9kZXRhaWxzLWRpc2Nsb3N1cmUuanM/dj0xMzY1MzExNjI2NjIzNTU1NjUwMTcwMjcyOTU3OSIKICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvZGV0YWlscy1tb2RhbC5qcz92PTI1NTgxNjczNTMyNzUxNTA4NDUxNzAyNzI5NTc5IgogICAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jYXJ0LW5vdGlmaWNhdGlvbi5qcz92PTEzMzUwODI5MzE2Nzg5Njk2NjQ5MTcwMjcyOTU3OCIKICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvc2VhcmNoLWZvcm0uanM/dj0xMzMxMjk1NDkyNTIxMjA2NjY1NDE3MDI3Mjk1ODAiCiAgICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NhcnQtZHJhd2VyLmpzP3Y9MTA1MDc3MDg3OTE0Njg2Mzk4NTExNzAyNzI5NTc4IgogICAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iaGlkZGVuIj4KICAgICAgPHN5bWJvbCBpZD0iaWNvbi1zZWFyY2giIHZpZXdib3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICBkPSJNMTEuMDMgMTEuNjhBNS43ODQgNS43ODQgMCAxMTIuODUgMy41YTUuNzg0IDUuNzg0IDAgMDE4LjE4IDguMTh6bS4yNiAxLjEyYTYuNzggNi43OCAwIDExLjcyLS43bDUuNCA1LjRhLjUuNSAwIDExLS43MS43bC01LjQxLTUuNHoiCiAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgICAgIDwvc3ltYm9sPgoKICAgICAgPHN5bWJvbCBpZD0iaWNvbi1yZXNldCIgY2xhc3M9Imljb24gaWNvbi1jbG9zZSIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDE4IDE4IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPGNpcmNsZSByPSI4LjUiIGN5PSI5IiBjeD0iOSIgc3Ryb2tlLW9wYWNpdHk9IjAuMiIgLz4KICAgICAgICA8cGF0aCBkPSJNNi44Mjk3MiA2LjgyOTE1TDEuMTcxOTMgMS4xNzA5NyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSA1KSIgLz4KICAgICAgICA8cGF0aCBkPSJNMS4yMjg5NiA2Ljg4NTAyTDYuNzcyODggMS4xMTUyMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSA1KSIgLz4KICAgICAgPC9zeW1ib2w+CgogICAgICA8c3ltYm9sIGlkPSJpY29uLWNsb3NlIiBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTggMTciPgogICAgICAgIDxwYXRoCiAgICAgICAgICBkPSJNLjg2NSAxNS45NzhhLjUuNSAwIDAwLjcwNy43MDdsNy40MzMtNy40MzEgNy41NzkgNy4yODJhLjUwMS41MDEgMCAwMC44NDYtLjM3LjUuNSAwIDAwLS4xNTMtLjM1MUw5LjcxMiA4LjU0Nmw3LjQxNy03LjQxNmEuNS41IDAgMTAtLjcwNy0uNzA4TDguOTkxIDcuODUzIDEuNDEzLjU3M2EuNS41IDAgMTAtLjY5My43Mmw3LjU2MyA3LjI2OC03LjQxOCA3LjQxN3oiCiAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICA8L3N5bWJvbD4KICAgIDwvc3ZnPgogICAgPGRpdiBjbGFzcz0iaGVhZGVyLXdyYXBwZXIgY29sb3ItaW52ZXJzZSBncmFkaWVudCI+CiAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciBoZWFkZXItLXRvcC1jZW50ZXIgaGVhZGVyLS1tb2JpbGUtY2VudGVyIHBhZ2Utd2lkdGgiPgoKICAgICAgICA8ZGV0YWlscy1tb2RhbCBjbGFzcz0iaGVhZGVyX19zZWFyY2giPgogICAgICAgICAgPGRldGFpbHM+CiAgICAgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJoZWFkZXJfX2ljb24gaGVhZGVyX19pY29uLS1zZWFyY2ggaGVhZGVyX19pY29uLS1zdW1tYXJ5IGxpbmsgZm9jdXMtaW5zZXQgbW9kYWxfX3RvZ2dsZSIKICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciIGFyaWEtbGFiZWw9IlNlYXJjaCI+CiAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJtb2RhbF9fdG9nZ2xlLW9wZW4gaWNvbiBpY29uLXNlYXJjaCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Im1vZGFsX190b2dnbGUtY2xvc2UgaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj0iI2ljb24tY2xvc2UiPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1tb2RhbCBtb2RhbF9fY29udGVudCBncmFkaWVudCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsPSJTZWFyY2giPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1tb2RhbF9fY29udGVudCBzZWFyY2gtbW9kYWxfX2NvbnRlbnQtYm90dG9tIiB0YWJpbmRleD0iLTEiPjxwcmVkaWN0aXZlLXNlYXJjaAogICAgICAgICAgICAgICAgICBjbGFzcz0ic2VhcmNoLW1vZGFsX19mb3JtIiBkYXRhLWxvYWRpbmctdGV4dD0iTG9hZGluZy4uLiI+CiAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iL3NlYXJjaCIgbWV0aG9kPSJnZXQiIHJvbGU9InNlYXJjaCIgY2xhc3M9InNlYXJjaCBzZWFyY2gtbW9kYWxfX2Zvcm0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0ic2VhcmNoX19pbnB1dCBmaWVsZF9faW5wdXQiIGlkPSJTZWFyY2gtSW4tTW9kYWwtMSIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxIiB2YWx1ZT0iIgogICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIiByb2xlPSJjb21ib2JveCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtb3ducz0icHJlZGljdGl2ZS1zZWFyY2gtcmVzdWx0cyIKICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz0icHJlZGljdGl2ZS1zZWFyY2gtcmVzdWx0cyIgYXJpYS1oYXNwb3B1cD0ibGlzdGJveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZpZWxkX19sYWJlbCIgZm9yPSJTZWFyY2gtSW4tTW9kYWwtMSI+U2VhcmNoPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdGlvbnNbcHJlZml4XSIgdmFsdWU9Imxhc3QiPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJyZXNldCIgY2xhc3M9InJlc2V0X19idXR0b24gZmllbGRfX2J1dHRvbiBoaWRkZW4iIGFyaWEtbGFiZWw9IkNsZWFyIHNlYXJjaCB0ZXJtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjaWNvbi1yZXNldCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJzZWFyY2hfX2J1dHRvbiBmaWVsZF9fYnV0dG9uIiBhcmlhLWxhYmVsPSJTZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIGljb24tc2VhcmNoIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPSIjaWNvbi1zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZWRpY3RpdmUtc2VhcmNoIHByZWRpY3RpdmUtc2VhcmNoLS1oZWFkZXIiIHRhYmluZGV4PSItMSIgZGF0YS1wcmVkaWN0aXZlLXNlYXJjaD4KCiAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDI3Mjk1NzkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJlZGljdGl2ZS1zZWFyY2hfX2xvYWRpbmctc3RhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0ic3Bpbm5lciIgdmlld0JveD0iMCAwIDY2IDY2IgogICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJlZGljdGl2ZS1zZWFyY2gtc3RhdHVzIHZpc3VhbGx5LWhpZGRlbiIgcm9sZT0ic3RhdHVzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8L3ByZWRpY3RpdmUtc2VhcmNoPjxidXR0b24gdHlwZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2VhcmNoLW1vZGFsX19jbG9zZS1idXR0b24gbW9kYWxfX2Nsb3NlLWJ1dHRvbiBsaW5rIGxpbmstLXRleHQgZm9jdXMtaW5zZXQiIGFyaWEtbGFiZWw9IkNsb3NlIj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPSIjaWNvbi1jbG9zZSI+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgIDwvZGV0YWlscy1tb2RhbD4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5lbGFwaHllLmNvbS8iIGNsYXNzPSJoZWFkZXJfX2hlYWRpbmctbGluayBsaW5rIGxpbmstLXRleHQgZm9jdXMtaW5zZXQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyX19oZWFkaW5nLWxvZ28td3JhcHBlciI+CgogICAgICAgICAgICA8aW1nIHNyYz0iLy9pbWcucGlrYWNodS5waWNzL3Nsb3R0Z2Fjb3IucG5nP3Y9MTcwMjcyOTcwMSZhbXA7d2lkdGg9NjAwIgogICAgICAgICAgICAgIGFsdD0iU2xvdCBHYWNvciAyMDI0IgogICAgICAgICAgICAgIHNyY3NldD0iLy9pbWcucGlrYWNodS5waWNzL3Nsb3R0Z2Fjb3IucG5nP3Y9MTcwMjcyOTcwMSZhbXA7d2lkdGg9MzAwIDMwMHcsIC8vaW1nLnBpa2FjaHUucGljcy9zbG90dGdhY29yLnBuZz92PTE3MDI3Mjk3MDEmYW1wO3dpZHRoPTQ1MCA0NTB3LCAvL2ltZy5waWthY2h1LnBpY3Mvc2xvdHRnYWNvci5wbmc/dj0xNzAyNzI5NzAxJmFtcDt3aWR0aD02MDAgNjAwdyIKICAgICAgICAgICAgICB3aWR0aD0iMzAwIiBoZWlnaHQ9IjU4LjMwMDc4MTI1IiBsb2FkaW5nPSJlYWdlciIgY2xhc3M9ImhlYWRlcl9faGVhZGluZy1sb2dvIG1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgc2l6ZXM9IihtYXgtd2lkdGg6IDYwMHB4KSA1MHZ3LCAzMDBweCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2E+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyX19pY29ucyBoZWFkZXJfX2ljb25zLS1sb2NhbGl6YXRpb24gaGVhZGVyLWxvY2FsaXphdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNrdG9wLWxvY2FsaXphdGlvbi13cmFwcGVyIj4KICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICA8ZGV0YWlscy1tb2RhbCBjbGFzcz0iaGVhZGVyX19zZWFyY2giPgogICAgICAgICAgICA8ZGV0YWlscz4KICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0iaGVhZGVyX19pY29uIGhlYWRlcl9faWNvbi0tc2VhcmNoIGhlYWRlcl9faWNvbi0tc3VtbWFyeSBsaW5rIGZvY3VzLWluc2V0IG1vZGFsX190b2dnbGUiCiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciIGFyaWEtbGFiZWw9IlNlYXJjaCI+CiAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibW9kYWxfX3RvZ2dsZS1vcGVuIGljb24gaWNvbi1zZWFyY2giIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJtb2RhbF9fdG9nZ2xlLWNsb3NlIGljb24gaWNvbi1jbG9zZSIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj0iI2ljb24tY2xvc2UiPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLW1vZGFsIG1vZGFsX19jb250ZW50IGdyYWRpZW50IiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9InRydWUiIGFyaWEtbGFiZWw9IlNlYXJjaCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1vdmVybGF5Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1tb2RhbF9fY29udGVudCBzZWFyY2gtbW9kYWxfX2NvbnRlbnQtYm90dG9tIiB0YWJpbmRleD0iLTEiPjxwcmVkaWN0aXZlLXNlYXJjaAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzZWFyY2gtbW9kYWxfX2Zvcm0iIGRhdGEtbG9hZGluZy10ZXh0PSJMb2FkaW5nLi4uIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249Ii9zZWFyY2giIG1ldGhvZD0iZ2V0IiByb2xlPSJzZWFyY2giIGNsYXNzPSJzZWFyY2ggc2VhcmNoLW1vZGFsX19mb3JtIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJzZWFyY2hfX2lucHV0IGZpZWxkX19pbnB1dCIgaWQ9IlNlYXJjaC1Jbi1Nb2RhbCIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxIiB2YWx1ZT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2giIHJvbGU9ImNvbWJvYm94IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLW93bnM9InByZWRpY3RpdmUtc2VhcmNoLXJlc3VsdHMiIGFyaWEtY29udHJvbHM9InByZWRpY3RpdmUtc2VhcmNoLXJlc3VsdHMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0ibGlzdGJveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jb21wbGV0ZT0ib2ZmIgogICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWVsZF9fbGFiZWwiIGZvcj0iU2VhcmNoLUluLU1vZGFsIj5TZWFyY2g8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHRpb25zW3ByZWZpeF0iIHZhbHVlPSJsYXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJyZXNldCIgY2xhc3M9InJlc2V0X19idXR0b24gZmllbGRfX2J1dHRvbiBoaWRkZW4iIGFyaWEtbGFiZWw9IkNsZWFyIHNlYXJjaCB0ZXJtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIGljb24tY2xvc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2ljb24tcmVzZXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2VhcmNoX19idXR0b24gZmllbGRfX2J1dHRvbiIgYXJpYS1sYWJlbD0iU2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIGljb24tc2VhcmNoIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmVkaWN0aXZlLXNlYXJjaCBwcmVkaWN0aXZlLXNlYXJjaC0taGVhZGVyIiB0YWJpbmRleD0iLTEiIGRhdGEtcHJlZGljdGl2ZS1zZWFyY2g+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMjcyOTU3OSIKICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJlZGljdGl2ZS1zZWFyY2hfX2xvYWRpbmctc3RhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJzcGlubmVyIiB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmVkaWN0aXZlLXNlYXJjaC1zdGF0dXMgdmlzdWFsbHktaGlkZGVuIiByb2xlPSJzdGF0dXMiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICA8L3ByZWRpY3RpdmUtc2VhcmNoPjxidXR0b24gdHlwZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzZWFyY2gtbW9kYWxfX2Nsb3NlLWJ1dHRvbiBtb2RhbF9fY2xvc2UtYnV0dG9uIGxpbmsgbGluay0tdGV4dCBmb2N1cy1pbnNldCIKICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJDbG9zZSI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLWNsb3NlIj4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgPC9kZXRhaWxzLW1vZGFsPgoKICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLyIgY2xhc3M9ImhlYWRlcl9faWNvbiBoZWFkZXJfX2ljb24tLWNhcnQgbGluayBmb2N1cy1pbnNldCIgaWQ9ImNhcnQtaWNvbi1idWJibGUiPjxzdmcKICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLWNhcnQtZW1wdHkiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDQwIDQwIiBmaWxsPSJub25lIj4KICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgZD0ibTE1Ljc1IDExLjhoLTMuMTZsLS43NyAxMS42YTUgNSAwIDAgMCA0Ljk5IDUuMzRoNy4zOGE1IDUgMCAwIDAgNC45OS01LjMzbC0uNzgtMTEuNjF6bTAgMWgtMi4yMmwtLjcxIDEwLjY3YTQgNCAwIDAgMCAzLjk5IDQuMjdoNy4zOGE0IDQgMCAwIDAgNC00LjI3bC0uNzItMTAuNjdoLTIuMjJ2LjYzYTQuNzUgNC43NSAwIDEgMSAtOS41IDB6bTguNSAwaC03LjV2LjYzYTMuNzUgMy43NSAwIDEgMCA3LjUgMHoiCiAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPkNhcnQ8L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgICA8L2hlYWRlcj4KICAgIDwvZGl2PgoKICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgewogICAgIkBjb250ZXh0IjogImh0dHA6Ly9zY2hlbWEub3JnIiwKICAgICJAdHlwZSI6ICJPcmdhbml6YXRpb24iLAogICAgIm5hbWUiOiAiU2xvdCBHYWNvciAyMDI0IiwKICAgIAogICAgICAibG9nbyI6ICJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL2Nkblwvc2hvcFwvZmlsZXNcL1NMT1RHQUNPUlIucG5nP3Y9MTcwMjcyOTcwMVx1MDAyNndpZHRoPTUwMCIsCiAgICAKICAgICJzYW1lQXMiOiBbCiAgICAgICIiLAogICAgICAiIiwKICAgICAgIiIsCiAgICAgICIiLAogICAgICAiIiwKICAgICAgIiIsCiAgICAgICIiLAogICAgICAiIiwKICAgICAgIiIKICAgIF0sCiAgICAidXJsIjogImh0dHBzOlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbSIKICB9Cjwvc2NyaXB0PgogIDwvZGl2PgogIDwhLS0gRU5EIHNlY3Rpb25zOiBoZWFkZXItZ3JvdXAgLS0+CgogIDxtYWluIGlkPSJNYWluQ29udGVudCIgY2xhc3M9ImNvbnRlbnQtZm9yLWxheW91dCBmb2N1cy1ub25lIiByb2xlPSJtYWluIiB0YWJpbmRleD0iLTEiPgogICAgPHNlY3Rpb24gaWQ9InNob3BpZnktc2VjdGlvbi10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIGNsYXNzPSJzaG9waWZ5LXNlY3Rpb24gc2VjdGlvbiI+CiAgICAgIDxzZWN0aW9uIGlkPSJNYWluUHJvZHVjdC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iCiAgICAgICAgY2xhc3M9InNlY3Rpb24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluLXBhZGRpbmcgZ3JhZGllbnQgY29sb3ItYmFja2dyb3VuZC0xIgogICAgICAgIGRhdGEtc2VjdGlvbj0idGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICA8bGluawogICAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3NlY3Rpb24tbWFpbi1wcm9kdWN0LmNzcz92PTE0MTA1OTQ2Nzk3MTQwMTY3NjYwMTcwMjcyOTU4MCIKICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICAgICAgPGxpbmsKICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtYWNjb3JkaW9uLmNzcz92PTE4MDk2NDIwNDMxODg3NDg2MzgxMTcwMjcyOTU3OCIKICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICAgICAgPGxpbmsKICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtcHJpY2UuY3NzP3Y9NzAxNzI3NDUwMTczNjAxMzkxMDE3MDI3Mjk1NzkiCiAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgICAgIDxsaW5rCiAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXNsaWRlci5jc3M/dj0xNDI1MDMxMzU0OTYyMjk1ODk2ODE3MDI3Mjk1NzkiCiAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgICAgIDxsaW5rCiAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXJhdGluZy5jc3M/dj0xNTc3NzE4NTQ1OTIxMzcxMzc4NDE3MDI3Mjk1NzkiCiAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgICAgIDxsaW5rCiAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWRlZmVycmVkLW1lZGlhLmNzcz92PTE0MDk2MDgyNDYyMjAzMjk3NDcxNzAyNzI5NTc4IgogICAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgICAgICA8c3R5bGUgZGF0YS1zaG9waWZ5PgogICAgICAgICAgLnNlY3Rpb24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluLXBhZGRpbmcgewogICAgICAgICAgICBwYWRkaW5nLXRvcDogNDVweDsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDQ1cHg7CiAgICAgICAgICB9CgogICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAgICAgLnNlY3Rpb24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluLXBhZGRpbmcgewogICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA2MHB4OwogICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3Byb2R1Y3QtaW5mby5qcz92PTgxODczNTIzMDIwNTA4ODE1MjAxNzAyNzI5NTgwIgogICAgICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3Byb2R1Y3QtZm9ybS5qcz92PTEzMzA4MTc1ODcwODM3NzY3OTE4MTcwMjcyOTU4MCIKICAgICAgICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Utd2lkdGgiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icHJvZHVjdCBwcm9kdWN0LS1zbWFsbCBwcm9kdWN0LS1sZWZ0IHByb2R1Y3QtLXRodW1ibmFpbF9zbGlkZXIgcHJvZHVjdC0tbW9iaWxlLWhpZGUgZ3JpZCBncmlkLS0xLWNvbCBncmlkLS0yLWNvbC10YWJsZXQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkX19pdGVtIHByb2R1Y3RfX21lZGlhLXdyYXBwZXIiPgoKICAgICAgICAgICAgICA8bWVkaWEtZ2FsbGVyeSBpZD0iTWVkaWFHYWxsZXJ5LXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIgcm9sZT0icmVnaW9uIgogICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3RfX2NvbHVtbi1zdGlja3kiIGFyaWEtbGFiZWw9IkdhbGxlcnkgVmlld2VyIiBkYXRhLWRlc2t0b3AtbGF5b3V0PSJ0aHVtYm5haWxfc2xpZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkdhbGxlcnlTdGF0dXMtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIiByb2xlPSJzdGF0dXMiPjwvZGl2PgogICAgICAgICAgICAgICAgPHNsaWRlci1jb21wb25lbnQgaWQ9IkdhbGxlcnlWaWV3ZXItdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0ic2xpZGVyLW1vYmlsZS1ndXR0ZXIiPjxhCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InNraXAtdG8tY29udGVudC1saW5rIGJ1dHRvbiB2aXN1YWxseS1oaWRkZW4gcXVpY2stYWRkLWhpZGRlbiIKICAgICAgICAgICAgICAgICAgICBocmVmPSIjUHJvZHVjdEluZm8tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICBTa2lwIHRvIHByb2R1Y3QgaW5mb3JtYXRpb24KICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICA8dWwgaWQ9IlNsaWRlci1HYWxsZXJ5LXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdF9fbWVkaWEtbGlzdCBjb250YWlucy1tZWRpYSBncmlkIGdyaWQtLXBlZWsgbGlzdC11bnN0eWxlZCBzbGlkZXIgc2xpZGVyLS1tb2JpbGUiCiAgICAgICAgICAgICAgICAgICAgcm9sZT0ibGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGlkPSJTbGlkZS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4tMjg1OTA5NDA0MjIyOTkiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdF9fbWVkaWEtaXRlbSBncmlkX19pdGVtIHNsaWRlcl9fc2xpZGUgaXMtYWN0aXZlIHNjcm9sbC10cmlnZ2VyIGFuaW1hdGUtLWZhZGUtaW4iCiAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1lZGlhLWlkPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4tMjg1OTA5NDA0MjIyOTkiPgoKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtbWVkaWEtY29udGFpbmVyIG1lZGlhLXR5cGUtaW1hZ2UgbWVkaWEtZml0LWNvbnRhaW4gZ2xvYmFsLW1lZGlhLXNldHRpbmdzIGdyYWRpZW50IGNvbnN0cmFpbi1oZWlnaHQiCiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvOiAxLjA7IC0tcHJldmlldy1yYXRpbzogMS4wOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxub3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0X19tZWRpYSBtZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTk0NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3NldD0iLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MjQ2IDI0NncsIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTQ5MyA0OTN3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD02MDAgNjAwdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9NzEzIDcxM3csIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTgyMyA4MjN3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD05OTAgOTkwdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTEwMCAxMTAwdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTIwNiAxMjA2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTM0NiAxMzQ2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTQyNiAxNDI2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTY0NiAxNjQ2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTk0NiAxOTQ2dyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjE5NDYiIGhlaWdodD0iMTk0NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDEyMDBweCkgNDk1cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKDQ1LjB2dyAtIDEwcmVtKSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTEuNXJlbSkgLyAyKSwgY2FsYygxMDB2dyAvIDEgLSA0cmVtKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbm9zY3JpcHQ+CgogICAgICAgICAgICAgICAgICAgICAgICA8bW9kYWwtb3BlbmVyIGNsYXNzPSJwcm9kdWN0X19tb2RhbC1vcGVuZXIgcHJvZHVjdF9fbW9kYWwtb3BlbmVyLS1pbWFnZSBuby1qcy1oaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbD0iI1Byb2R1Y3RNb2RhbC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0X19tZWRpYS1pY29uIG1vdGlvbi1yZWR1Y2UgcXVpY2stYWRkLWhpZGRlbiBwcm9kdWN0X19tZWRpYS1pY29uLS1saWdodGJveCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLXBsdXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDE5IDE5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNNC42NjcyNCA3LjkzOTc4QzQuNjY2NTUgNy42NjM2NCA0Ljg4OTg0IDcuNDM5MjIgNS4xNjU5OCA3LjQzODUzTDEwLjY5OTYgNy40MjQ2NEMxMC45NzU4IDcuNDIzOTUgMTEuMjAwMiA3LjY0NzI0IDExLjIwMDkgNy45MjMzOUMxMS4yMDE2IDguMTk5NTMgMTAuOTc4MyA4LjQyMzk1IDEwLjcwMjEgOC40MjQ2NEw1LjE2ODQ5IDguNDM4NTJDNC44OTIzNSA4LjQzOTIyIDQuNjY3OTMgOC4yMTU5MiA0LjY2NzI0IDcuOTM5NzhaIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTcuOTI1NzYgNC42NjQ2M0M4LjIwMTkgNC42NjM5NCA4LjQyNjMyIDQuODg3MjMgOC40MjcwMiA1LjE2MzM3TDguNDQwOSAxMC42OTdDOC40NDE1OSAxMC45NzMyIDguMjE4MyAxMS4xOTc2IDcuOTQyMTUgMTEuMTk4M0M3LjY2NjAxIDExLjE5OSA3LjQ0MTU5IDEwLjk3NTcgNy40NDA5IDEwLjY5OTVMNy40MjcwMiA1LjE2NTg4QzcuNDI2MzMgNC44ODk3NCA3LjY0OTYyIDQuNjY1MzIgNy45MjU3NiA0LjY2NDYzWiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0xMi44MzI0IDMuMDMwMTFDMTAuMTI1NSAwLjMyMzI5NiA1LjczNjkzIDAuMzIzMjk2IDMuMDMwMTEgMy4wMzAxMUMwLjMyMzI5NiA1LjczNjkzIDAuMzIzMjk2IDEwLjEyNTYgMy4wMzAxMSAxMi44MzI0QzUuNzM2OTMgMTUuNTM5MiAxMC4xMjU1IDE1LjUzOTIgMTIuODMyNCAxMi44MzI0QzE1LjUzOTIgMTAuMTI1NiAxNS41MzkyIDUuNzM2OTMgMTIuODMyNCAzLjAzMDExWk0yLjMyMzAxIDIuMzIzMDFDNS40MjAzNSAtMC43NzQzMzYgMTAuNDQyMSAtMC43NzQzMzYgMTMuNTM5NSAyLjMyMzAxQzE2LjYxMDEgNS4zOTM2MSAxNi42MzY2IDEwLjM1NTYgMTMuNjE5IDEzLjQ1ODhMMTguMjQ3MyAxOC4wODcxQzE4LjQ0MjYgMTguMjgyNCAxOC40NDI2IDE4LjU5OSAxOC4yNDczIDE4Ljc5NDNDMTguMDUyMSAxOC45ODk1IDE3LjczNTUgMTguOTg5NSAxNy41NDAyIDE4Ljc5NDNMMTIuODc3OCAxNC4xMzE4QzkuNzYzODMgMTYuNjIyMyA1LjIwODM5IDE2LjQyNDkgMi4zMjMwMSAxMy41Mzk1Qy0wLjc3NDMzNSAxMC40NDIxIC0wLjc3NDMzNSA1LjQyMDM1IDIuMzIzMDEgMi4zMjMwMVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAyNzI5NTc5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9InNwaW5uZXIiIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fbWVkaWEgbWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xOTQ2IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0yNDYgMjQ2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9NDkzIDQ5M3csIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTYwMCA2MDB3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD03MTMgNzEzdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9ODIzIDgyM3csIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTk5MCA5OTB3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xMTAwIDExMDB3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xMjA2IDEyMDZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xMzQ2IDEzNDZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xNDI2IDE0MjZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xNjQ2IDE2NDZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xOTQ2IDE5NDZ3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTk0NiIgaGVpZ2h0PSIxOTQ2IiBjbGFzcz0iaW1hZ2UtbWFnbmlmeS1saWdodGJveCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDEyMDBweCkgNDk1cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKDQ1LjB2dyAtIDEwcmVtKSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTEuNXJlbSkgLyAyKSwgY2FsYygxMDB2dyAvIDEgLSA0cmVtKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHJvZHVjdF9fbWVkaWEtdG9nZ2xlIHF1aWNrLWFkZC1oaWRkZW4gcHJvZHVjdF9fbWVkaWEtem9vbS1saWdodGJveCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIiBkYXRhLW1lZGlhLWlkPSIyODU5MDk0MDQyMjI5OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlbiBtZWRpYSAxIGluIG1vZGFsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW9kYWwtb3BlbmVyPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlci1idXR0b25zIG5vLWpzLWhpZGRlbiBxdWljay1hZGQtaGlkZGVuIHNtYWxsLWhpZGUiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2xpZGVyLWJ1dHRvbiBzbGlkZXItYnV0dG9uLS1wcmV2IiBuYW1lPSJwcmV2aW91cyIKICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IlNsaWRlIGxlZnQiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1jYXJldCIgdmlld0JveD0iMCAwIDEwIDYiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNOS4zNTQuNjQ2YS41LjUgMCAwMC0uNzA4IDBMNSA0LjI5MyAxLjM1NC42NDZhLjUuNSAwIDAwLS43MDguNzA4bDQgNGEuNS41IDAgMDAuNzA4IDBsNC00YS41LjUgMCAwMDAtLjcwOHoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZXItY291bnRlciBjYXB0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbGlkZXItY291bnRlci0tY3VycmVudCI+MTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4gLyA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5vZjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbGlkZXItY291bnRlci0tdG90YWwiPjE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzbGlkZXItYnV0dG9uIHNsaWRlci1idXR0b24tLW5leHQiIG5hbWU9Im5leHQiCiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJTbGlkZSByaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWNhcmV0IiB2aWV3Qm94PSIwIDAgMTAgNiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik05LjM1NC42NDZhLjUuNSAwIDAwLS43MDggMEw1IDQuMjkzIDEuMzU0LjY0NmEuNS41IDAgMDAtLjcwOC43MDhsNCA0YS41LjUgMCAwMC43MDggMGw0LTRhLjUuNSAwIDAwMC0uNzA4eiIKICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvc2xpZGVyLWNvbXBvbmVudD4KICAgICAgICAgICAgICA8L21lZGlhLWdhbGxlcnk+CgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9faW5mby13cmFwcGVyIGdyaWRfX2l0ZW0gc2Nyb2xsLXRyaWdnZXIgYW5pbWF0ZS0tc2xpZGUtaW4iPgogICAgICAgICAgICAgIDxwcm9kdWN0LWluZm8gaWQ9IlByb2R1Y3RJbmZvLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIKICAgICAgICAgICAgICAgIGRhdGEtc2VjdGlvbj0idGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgZGF0YS11cmw9Ii9wcm9kdWN0cy9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIgogICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3RfX2luZm8tY29udGFpbmVyIHByb2R1Y3RfX2NvbHVtbi1zdGlja3kiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InByb2R1Y3RfX3RleHQgaW5saW5lLXJpY2h0ZXh0Ij5MSU5LIFNMT1QgTUFYV0lOPC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fdGl0bGUiPgogICAgICAgICAgICAgICAgICA8aDE+U2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbjwvaDE+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiBjbGFzcz0icHJvZHVjdF9fdGl0bGUiPgogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iaDEiPgogICAgICAgICAgICAgICAgICAgICAgU2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbgogICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm8tanMtaGlkZGVuIiBpZD0icHJpY2UtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiByb2xlPSJzdGF0dXMiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSIKICAgIHByaWNlIHByaWNlLS1sYXJnZSBwcmljZS0tc29sZC1vdXQgcHJpY2UtLXNob3ctYmFkZ2UiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlJlZ3VsYXIKICAgICAgICAgICAgICAgICAgICAgICAgICBwcmljZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgUnAgMS4wMDAsMDAKICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlJlZ3VsYXIgcHJpY2U8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvcz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlNhbGUgcHJpY2U8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgUnAgMS4wMDAsMDAKICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5Vbml0IHByaWNlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48c3BhbiBjbGFzcz0iYmFkZ2UgcHJpY2VfX2JhZGdlLXNhbGUgY29sb3ItYWNjZW50LTEiPgogICAgICAgICAgICAgICAgICAgICAgU2FsZQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlIHByaWNlX19iYWRnZS1zb2xkLW91dCBjb2xvci1iYWNrZ3JvdW5kLTEiPgogICAgICAgICAgICAgICAgICAgICAgU2xvdCBNYXh3aW4gQnJlCiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fdGF4IGNhcHRpb24gcnRlIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJwcm9kdWN0LWZvcm0taW5zdGFsbG1lbnQtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgICAgIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9Imluc3RhbGxtZW50IGNhcHRpb24tbGFyZ2UiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0i4pyTIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0iNDM5MTAxMTkzMjU4NTEiPgoKICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iNzgxNDEzMzYxMjY5OSIgLz4KICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8bm9zY3JpcHQgY2xhc3M9InByb2R1Y3QtZm9ybV9fbm9zY3JpcHQtd3JhcHBlci10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWZvcm1fX2lucHV0IGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtX19sYWJlbCIgZm9yPSJWYXJpYW50cy10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPlByb2R1Y3QgdmFyaWFudHM8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImlkIiBpZD0iVmFyaWFudHMtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0ic2VsZWN0X19zZWxlY3QiCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09InByb2R1Y3QtZm9ybS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgZGlzYWJsZWQgdmFsdWU9IjQzOTEwMTE5MzI1ODUxIj5EZWZhdWx0IFRpdGxlIC0gUnAgMS4wMDAsMDAgLSBTb2xkIG91dAogICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1jYXJldCIgdmlld0JveD0iMCAwIDEwIDYiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNOS4zNTQuNjQ2YS41LjUgMCAwMC0uNzA4IDBMNSA0LjI5MyAxLjM1NC42NDZhLjUuNSAwIDAwLS43MDguNzA4bDQgNGEuNS41IDAgMDAuNzA4IDBsNC00YS41LjUgMCAwMDAtLjcwOHoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L25vc2NyaXB0PgoKICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlF1YW50aXR5LUZvcm0tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC1mb3JtX19pbnB1dCBwcm9kdWN0LWZvcm1fX3F1YW50aXR5Ij4KCgoKICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJxdWFudGl0eV9fbGFiZWwgZm9ybV9fbGFiZWwiIGZvcj0iUXVhbnRpdHktdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICBRdWFudGl0eQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdWFudGl0eV9fcnVsZXMtY2FydCBuby1qcy1oaWRkZW4gaGlkZGVuIj4KCiAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDI3Mjk1NzkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0ic3Bpbm5lciIgdmlld0JveD0iMCAwIDY2IDY2IgogICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+KDxzcGFuIGNsYXNzPSJxdWFudGl0eS1jYXJ0Ij4wPC9zcGFuPiBpbiBjYXJ0KTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlLXBlci1pdGVtX19jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgIDxxdWFudGl0eS1pbnB1dCBjbGFzcz0icXVhbnRpdHkiIGRhdGEtdXJsPSIvcHJvZHVjdHMvbGluay1zbG90LW1heHdpbi10ZXJwZXJjYXlhLXlhbmctbGFnaS1nYWNvciIKICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc2VjdGlvbj0idGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InF1YW50aXR5X19idXR0b24gbm8tanMtaGlkZGVuIiBuYW1lPSJtaW51cyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+RGVjcmVhc2UgcXVhbnRpdHkgZm9yIExJTksgTUFYV0lOOiBMaW5rIFNsb3QgTWF4d2luIFRlcnBlcmNheWEgWWFuZwogICAgICAgICAgICAgICAgICAgICAgICAgIExhZ2kgR2Fjb3IgTWFsYW0gSW5pIDIwMjQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLW1pbnVzIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNLjUgMUMuNS43LjcuNSAxIC41aDhhLjUuNSAwIDExMCAxSDFBLjUuNSAwIDAxLjUgMXoiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJxdWFudGl0eV9faW5wdXQiIHR5cGU9Im51bWJlciIgbmFtZT0icXVhbnRpdHkiCiAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJRdWFudGl0eS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIGRhdGEtY2FydC1xdWFudGl0eT0iMCIgZGF0YS1taW49IjEiIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgICAgICAgc3RlcD0iMSIgdmFsdWU9IjEiIGZvcm09InByb2R1Y3QtZm9ybS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIC8+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxdWFudGl0eV9fYnV0dG9uIG5vLWpzLWhpZGRlbiIgbmFtZT0icGx1cyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+SW5jcmVhc2UgcXVhbnRpdHkgZm9yIExJTksgTUFYV0lOOiBMaW5rIFNsb3QgTWF4d2luIFRlcnBlcmNheWEgWWFuZwogICAgICAgICAgICAgICAgICAgICAgICAgIExhZ2kgR2Fjb3IgTWFsYW0gSW5pIDIwMjQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLXBsdXMiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxMCAxMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMSA0LjUxYS41LjUgMCAwMDAgMWgzLjVsLjAxIDMuNWEuNS41IDAgMDAxLS4wMVY1LjVsMy41LS4wMWEuNS41IDAgMDAtLjAxLTFINS41TDUuNDkuOTlhLjUuNSAwIDAwLTEgLjAxdjMuNWwtMy41LjAxSDF6IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9xdWFudGl0eS1pbnB1dD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1YW50aXR5X19ydWxlcyBjYXB0aW9uIG5vLWpzLWhpZGRlbiIgaWQ9IlF1YW50aXR5LVJ1bGVzLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiI+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2Pjxwcm9kdWN0LWZvcm0gY2xhc3M9InByb2R1Y3QtZm9ybSIgZGF0YS1oaWRlLWVycm9ycz0iZmFsc2UiCiAgICAgICAgICAgICAgICAgICAgZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZm9ybV9fZXJyb3ItbWVzc2FnZS13cmFwcGVyIiByb2xlPSJhbGVydCIgaGlkZGVuPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1lcnJvciIgdmlld0JveD0iMCAwIDEzIDEzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi41IiBjeT0iNi41MDA0OSIgcj0iNS41IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iNS41IiBmaWxsPSIjRUIwMDFCIiBzdHJva2U9IiNFQjAwMUIiIHN0cm9rZS13aWR0aD0iMC43IiAvPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik01Ljg3NDEzIDMuNTI4MzJMNS45NzQzOSA3LjU3MjE2SDcuMDI3MTNMNy4xMjczOSAzLjUyODMySDUuODc0MTNaTTYuNTAwNzYgOS42NjA5MUM2Ljg4MDkxIDkuNjYwOTEgNy4xODE2OSA5LjM3MjY3IDcuMTgxNjkgOS4wMDUwNEM3LjE4MTY5IDguNjM3NDIgNi44ODA5MSA4LjM0OTE3IDYuNTAwNzYgOC4zNDkxN0M2LjEyMDYxIDguMzQ5MTcgNS44MTk4MiA4LjYzNzQyIDUuODE5ODIgOS4wMDUwNEM1LjgxOTgyIDkuMzcyNjcgNi4xMjA2MSA5LjY2MDkxIDYuNTAwNzYgOS42NjA5MVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0id2hpdGUiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTUuODc0MTMgMy4xNzgzMkg1LjUxNTM1TDUuNTI0MjQgMy41MzdMNS42MjQ1IDcuNTgwODNMNS42MzI5NiA3LjkyMjE2SDUuOTc0MzlINy4wMjcxM0g3LjM2ODU2TDcuMzc3MDIgNy41ODA4M0w3LjQ3NzI4IDMuNTM3TDcuNDg2MTcgMy4xNzgzMkg3LjEyNzM5SDUuODc0MTNaTTYuNTAwNzYgMTAuMDEwOUM3LjA2MTIxIDEwLjAxMDkgNy41MzE3IDkuNTc4NzIgNy41MzE3IDkuMDA1MDRDNy41MzE3IDguNDMxMzcgNy4wNjEyMSA3Ljk5OTE4IDYuNTAwNzYgNy45OTkxOEM1Ljk0MDMxIDcuOTk5MTggNS40Njk4MiA4LjQzMTM3IDUuNDY5ODIgOS4wMDUwNEM1LjQ2OTgyIDkuNTc4NzIgNS45NDAzMSAxMC4wMTA5IDYuNTAwNzYgMTAuMDEwOVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0id2hpdGUiIHN0cm9rZT0iI0VCMDAxQiIgc3Ryb2tlLXdpZHRoPSIwLjciPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1mb3JtX19lcnJvci1tZXNzYWdlIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InByb2R1Y3QtZm9ybS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iCiAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIgogICAgICAgICAgICAgICAgICAgICAgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSI0MzkxMDExOTMyNTg1MSIKICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWZvcm1fX2J1dHRvbnMiPjxidXR0b24gaWQ9IlByb2R1Y3RTdWJtaXRCdXR0b24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LWZvcm1fX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tc2Vjb25kYXJ5IiBkaXNhYmxlZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TTE9UIEdBQ09SIE1BWFdJTgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMjcyOTU3OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJzcGlubmVyIiB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBkYXRhLXNob3BpZnk9InBheW1lbnQtYnV0dG9uIiBjbGFzcz0ic2hvcGlmeS1wYXltZW50LWJ1dHRvbiI+PGR5bmFtaWMtY2hlY2tvdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldC1jb25maWdzPSJbXSIgYWNjZXNzLXRva2VuPSJmYWM4MmQxNjg0M2ZmYzNmNTMxOTg0ZDE1YTU0ODc2ZCIgYnV5ZXItY291bnRyeT0iSUQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXllci1sb2NhbGU9ImVuIiBidXllci1jdXJyZW5jeT0iSURSIiBzaG9wLWlkPSI2MjEwODM2OTA1MSIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fc2tlbGV0b24iIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQgYXJpYS1oaWRkZW49InRydWUiPiZuYnNwOzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHluYW1pYy1jaGVja291dD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI3ODE0MTMzNjEyNjk5IiAvPgogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgPC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgIDxsaW5rCiAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1waWNrdXAtYXZhaWxhYmlsaXR5LmNzcz92PTM0NjQ1MjIyOTU5ODY0NzgwOTYxNzAyNzI5NTc5IgogICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICAgICAgICAgICAgICAgIDxwaWNrdXAtYXZhaWxhYmlsaXR5IGNsYXNzPSJwcm9kdWN0X19waWNrdXAtYXZhaWxhYmlsaXRpZXMgbm8tanMtaGlkZGVuIHF1aWNrLWFkZC1oaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1yb290LXVybD0iLyIgZGF0YS12YXJpYW50LWlkPSI0MzkxMDExOTMyNTg1MSIgZGF0YS1oYXMtb25seS1kZWZhdWx0LXZhcmlhbnQ9InRydWUiCiAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXBhZ2UtY29sb3Itc2NoZW1lPSJncmFkaWVudCBjb2xvci1iYWNrZ3JvdW5kLTEiPgogICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICAgIDxwaWNrdXAtYXZhaWxhYmlsaXR5LXByZXZpZXcgY2xhc3M9InBpY2t1cC1hdmFpbGFiaWxpdHktcHJldmlldyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLXVuYXZhaWxhYmxlIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAgMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNERTM2MTgiIHN0cm9rZT0iI2ZmZiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0xMy45NCAzLjk0TDEwIDcuODc4bC0zLjk0LTMuOTRBMS40OTkgMS40OTkgMCAxMDMuOTQgNi4wNkw3Ljg4IDEwbC0zLjk0IDMuOTRhMS40OTkgMS40OTkgMCAxMDIuMTIgMi4xMkwxMCAxMi4xMmwzLjk0IDMuOTRhMS40OTcgMS40OTcgMCAwMDIuMTIgMCAxLjQ5OSAxLjQ5OSAwIDAwMC0yLjEyTDEyLjEyMiAxMGwzLjk0LTMuOTRhMS40OTkgMS40OTkgMCAxMC0yLjEyMS0yLjEyeiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrdXAtYXZhaWxhYmlsaXR5LWluZm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjYXB0aW9uLWxhcmdlIj5Db3VsZG4mIzM5O3QgbG9hZCBwaWNrdXAgYXZhaWxhYmlsaXR5PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBpY2t1cC1hdmFpbGFiaWxpdHktYnV0dG9uIGxpbmsgbGluay0tdGV4dCB1bmRlcmxpbmVkLWxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmcmVzaAogICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvcGlja3VwLWF2YWlsYWJpbGl0eS1wcmV2aWV3PgogICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICAgIDwvcGlja3VwLWF2YWlsYWJpbGl0eT4KCiAgICAgICAgICAgICAgICAgIDxzY3JpcHQKICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9waWNrdXAtYXZhaWxhYmlsaXR5LmpzP3Y9NjYxMzg5NTgxMjE5NjgwNzYzMzE3MDI3Mjk1NzkiCiAgICAgICAgICAgICAgICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fZGVzY3JpcHRpb24gcnRlIHF1aWNrLWFkZC1oaWRkZW4iPgogICAgICAgICAgICAgICAgICA8cD48YSBocmVmPSJodHRwczovL3huLS0xMmNhcWMwa2RtM2lmLnhuLS0xMmNsMWZrMWUuYXJ0LyIgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1jZS1ocmVmPSJodHRwczovL3huLS0xMmNhcWMwa2RtM2lmLnhuLS0xMmNsMWZrMWUuYXJ0LyI+PGltZyBoZWlnaHQ9IjE1NSIgd2lkdGg9IjMxMCIKICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJkYWZ0YXItc2VrYXJhbmciCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA2MjEvMDgzNi85MDUxL2ZpbGVzL2RhdGFyLXNla2FyYW5nXzQ4MHg0ODAuZ2lmP3Y9MTcwMjcyODgyOSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tY2Utc3JjPSJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDYyMS8wODM2LzkwNTEvZmlsZXMvZGF0YXItc2VrYXJhbmdfNDgweDQ4MC5naWY/dj0xNzAyNzI4ODI5IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1jZS1mcmFnbWVudD0iMSI+PC9hPjwvcD4KICAgICAgICAgICAgICAgICAgPHA+TGluayBzaXR1cyBzbG90IGdhY29yIDIwMjQgdGVycGVyY2F5YSBwYWxpbmcgbWF4d2luIG11ZGFoIGRpZGFwYXQga2FuIGRhbGFtIHBlcm1haW5hbiBzbG90IG9ubGluZSBzYWF0IGluaSwgc2VnZXJhIG1haW5rYW4gZGFuIGRhZnRhcmthbiBkaXJpIGFuZGEgaGFueWEgZGkgc2l0dXMgc2xvdCBnYWNvciBwYWxpbmcgdGVycGVyY2F5YSBzZWx1cnVoIHBlcm1haW5hbiBnYW1lIHNsb3QgdGVyYmFpazwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9zaGFyZS5qcz92PTEzMDI0NTQwNDQ3OTY0NDMwMTkxNzAyNzI5NTgwIgogICAgICAgICAgICAgICAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PgoKICAgICAgICAgICAgICAgIDxzaGFyZS1idXR0b24gaWQ9IlNoYXJlLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIgY2xhc3M9InNoYXJlLWJ1dHRvbiBxdWljay1hZGQtaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2hhcmUtYnV0dG9uX19idXR0b24gaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDEzIDEyIiBjbGFzcz0iaWNvbiBpY29uLXNoYXJlIiBmaWxsPSJub25lIgogICAgICAgICAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgICBkPSJNMS42MjUgOC4xMjVWMTAuMjkxN0MxLjYyNSAxMC41NzkgMS43MzkxNCAxMC44NTQ1IDEuOTQyMyAxMS4wNTc3QzIuMTQ1NDcgMTEuMjYwOSAyLjQyMTAyIDExLjM3NSAyLjcwODMzIDExLjM3NUgxMC4yOTE3QzEwLjU3OSAxMS4zNzUgMTAuODU0NSAxMS4yNjA5IDExLjA1NzcgMTEuMDU3N0MxMS4yNjA5IDEwLjg1NDUgMTEuMzc1IDEwLjU3OSAxMS4zNzUgMTAuMjkxN1Y4LjEyNSIKICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgLz4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICBkPSJNNi4xNDc3NSAxLjI3MTM3QzYuMzQzMDEgMS4wNzYxIDYuNjU5NTkgMS4wNzYxIDYuODU0ODUgMS4yNzEzN0w5LjU2MzE5IDMuOTc5N0M5Ljc1ODQ1IDQuMTc0OTYgOS43NTg0NSA0LjQ5MTU0IDkuNTYzMTkgNC42ODY4QzkuMzY3OTMgNC44ODIwNyA5LjA1MTM1IDQuODgyMDcgOC44NTYwOSA0LjY4NjhMNi41MDEzIDIuMzMyMDNMNC4xNDY1MiA0LjY4NjhDMy45NTEyNiA0Ljg4MjA3IDMuNjM0NjggNC44ODIwNyAzLjQzOTQyIDQuNjg2OEMzLjI0NDE1IDQuNDkxNTQgMy4yNDQxNSA0LjE3NDk2IDMuNDM5NDIgMy45Nzk3TDYuMTQ3NzUgMS4yNzEzN1oiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICBkPSJNNi41IDEuMTI1QzYuNzc2MTQgMS4xMjUgNyAxLjM0ODg2IDcgMS42MjVWOC4xMjVDNyA4LjQwMTE0IDYuNzc2MTQgOC42MjUgNi41IDguNjI1QzYuMjIzODYgOC42MjUgNiA4LjQwMTE0IDYgOC4xMjVWMS42MjVDNiAxLjM0ODg2IDYuMjIzODYgMS4xMjUgNi41IDEuMTI1WiIKICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIiAvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICBTaGFyZQogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGRldGFpbHMgaWQ9IkRldGFpbHMtc2hhcmUtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0ic2hhcmUtYnV0dG9uX19idXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMyAxMiIgY2xhc3M9Imljb24gaWNvbi1zaGFyZSIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTEuNjI1IDguMTI1VjEwLjI5MTdDMS42MjUgMTAuNTc5IDEuNzM5MTQgMTAuODU0NSAxLjk0MjMgMTEuMDU3N0MyLjE0NTQ3IDExLjI2MDkgMi40MjEwMiAxMS4zNzUgMi43MDgzMyAxMS4zNzVIMTAuMjkxN0MxMC41NzkgMTEuMzc1IDEwLjg1NDUgMTEuMjYwOSAxMS4wNTc3IDExLjA1NzdDMTEuMjYwOSAxMC44NTQ1IDExLjM3NSAxMC41NzkgMTEuMzc1IDEwLjI5MTdWOC4xMjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTYuMTQ3NzUgMS4yNzEzN0M2LjM0MzAxIDEuMDc2MSA2LjY1OTU5IDEuMDc2MSA2Ljg1NDg1IDEuMjcxMzdMOS41NjMxOSAzLjk3OTdDOS43NTg0NSA0LjE3NDk2IDkuNzU4NDUgNC40OTE1NCA5LjU2MzE5IDQuNjg2OEM5LjM2NzkzIDQuODgyMDcgOS4wNTEzNSA0Ljg4MjA3IDguODU2MDkgNC42ODY4TDYuNTAxMyAyLjMzMjAzTDQuMTQ2NTIgNC42ODY4QzMuOTUxMjYgNC44ODIwNyAzLjYzNDY4IDQuODgyMDcgMy40Mzk0MiA0LjY4NjhDMy4yNDQxNSA0LjQ5MTU0IDMuMjQ0MTUgNC4xNzQ5NiAzLjQzOTQyIDMuOTc5N0w2LjE0Nzc1IDEuMjcxMzdaIgogICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTYuNSAxLjEyNUM2Ljc3NjE0IDEuMTI1IDcgMS4zNDg4NiA3IDEuNjI1VjguMTI1QzcgOC40MDExNCA2Ljc3NjE0IDguNjI1IDYuNSA4LjYyNUM2LjIyMzg2IDguNjI1IDYgOC40MDExNCA2IDguMTI1VjEuNjI1QzYgMS4zNDg4NiA2LjIyMzg2IDEuMTI1IDYuNSAxLjEyNVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIiAvPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgU2hhcmUKICAgICAgICAgICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtYnV0dG9uX19mYWxsYmFjayBtb3Rpb24tcmVkdWNlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9IlNoYXJlTWVzc2FnZS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIGNsYXNzPSJzaGFyZS1idXR0b25fX21lc3NhZ2UgaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9InN0YXR1cyI+IDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZF9faW5wdXQiIGlkPSJTaGFyZVVybC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLyIKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iTGluayIgb25jbGljaz0idGhpcy5zZWxlY3QoKTsiIHJlYWRvbmx5PgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZpZWxkX19sYWJlbCIgZm9yPSJTaGFyZVVybC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPkxpbms8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJzaGFyZS1idXR0b25fX2Nsb3NlIGhpZGRlbiBuby1qcy1oaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24gaWNvbi1jbG9zZSIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDE4IDE3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTS44NjUgMTUuOTc4YS41LjUgMCAwMC43MDcuNzA3bDcuNDMzLTcuNDMxIDcuNTc5IDcuMjgyYS41MDEuNTAxIDAgMDAuODQ2LS4zNy41LjUgMCAwMC0uMTUzLS4zNTFMOS43MTIgOC41NDZsNy40MTctNy40MTZhLjUuNSAwIDEwLS43MDctLjcwOEw4Ljk5MSA3Ljg1MyAxLjQxMy41NzNhLjUuNSAwIDEwLS42OTMuNzJsNy41NjMgNy4yNjgtNy40MTggNy40MTd6IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5DbG9zZSBzaGFyZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2hhcmUtYnV0dG9uX19jb3B5IG5vLWpzLWhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gaWNvbi1jbGlwYm9hcmQiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiB2aWV3Qm94PSIwIDAgMTEgMTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTIgMWExIDEgMCAwMTEtMWg3YTEgMSAwIDAxMSAxdjlhMSAxIDAgMDEtMSAxVjFIMnpNMSAyYTEgMSAwIDAwLTEgMXY5YTEgMSAwIDAwMSAxaDdhMSAxIDAgMDAxLTFWM2ExIDEgMCAwMC0xLTFIMXptMCAxMFYzaDd2OUgxeiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5Db3B5IGxpbms8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgPC9zaGFyZS1idXR0b24+CgogICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2xpbmstc2xvdC1tYXh3aW4tdGVycGVyY2F5YS15YW5nLWxhZ2ktZ2Fjb3IiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJsaW5rIHByb2R1Y3RfX3ZpZXctZGV0YWlscyBhbmltYXRlLWFycm93Ij4KICAgICAgICAgICAgICAgICAgVmlldyBmdWxsIGRldGFpbHMKICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTAiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWFycm93IgogICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICBkPSJNOC41MzcuODA4YS41LjUgMCAwMS44MTctLjE2Mmw0IDRhLjUuNSAwIDAxMCAuNzA4bC00IDRhLjUuNSAwIDExLS43MDgtLjcwOEwxMS43OTMgNS41SDFhLjUuNSAwIDAxMC0xaDEwLjc5M0w4LjY0NiAxLjM1NGEuNS41IDAgMDEtLjEwOS0uNTQ2eiIKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICA8L3Byb2R1Y3QtaW5mbz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCgoKICAgICAgICAgIDxwcm9kdWN0LW1vZGFsIGlkPSJQcm9kdWN0TW9kYWwtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0icHJvZHVjdC1tZWRpYS1tb2RhbCBtZWRpYS1tb2RhbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEtbW9kYWxfX2RpYWxvZyBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQiIHJvbGU9ImRpYWxvZyIKICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJNZWRpYSBnYWxsZXJ5IiBhcmlhLW1vZGFsPSJ0cnVlIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgIDxidXR0b24gaWQ9Ik1vZGFsQ2xvc2UtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiB0eXBlPSJidXR0b24iIGNsYXNzPSJwcm9kdWN0LW1lZGlhLW1vZGFsX190b2dnbGUiCiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJDbG9zZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJpY29uIGljb24tY2xvc2UiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxOCAxNyI+CiAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgZD0iTS44NjUgMTUuOTc4YS41LjUgMCAwMC43MDcuNzA3bDcuNDMzLTcuNDMxIDcuNTc5IDcuMjgyYS41MDEuNTAxIDAgMDAuODQ2LS4zNy41LjUgMCAwMC0uMTUzLS4zNTFMOS43MTIgOC41NDZsNy40MTctNy40MTZhLjUuNSAwIDEwLS43MDctLjcwOEw4Ljk5MSA3Ljg1MyAxLjQxMy41NzNhLjUuNSAwIDEwLS42OTMuNzJsNy41NjMgNy4yNjgtNy40MTggNy40MTd6IgogICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICA8L3N2Zz4KCiAgICAgICAgICAgICAgPC9idXR0b24+CgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEtbW9kYWxfX2NvbnRlbnQgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IiByb2xlPSJkb2N1bWVudCIKICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9Ik1lZGlhIGdhbGxlcnkiIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9Imdsb2JhbC1tZWRpYS1zZXR0aW5ncyBnbG9iYWwtbWVkaWEtc2V0dGluZ3MtLW5vLXNoYWRvdyIKICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JndpZHRoPTU1MCA1NTB3LC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQgNzEzdyIKICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDc1MHB4KSBjYWxjKDEwMHZ3IC0gMjJyZW0pLCAxMTAwcHgiCiAgICAgICAgICAgICAgICAgIHNyYz0iLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZ3aWR0aD0xNDQ1IgogICAgICAgICAgICAgICAgICBhbHQ9IlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIxMTAwIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjExMDAiIGRhdGEtbWVkaWEtaWQ9IjI4NTkwOTQwNDIyMjk5Ij4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3Byb2R1Y3QtbW9kYWw+CgoKCiAgICAgICAgICA8c2NyaXB0CiAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3Byb2R1Y3QtbW9kYWwuanM/dj0xMTY2MTYxMzQ0NTQ1MDg5NDk0NjE3MDI3Mjk1ODAiCiAgICAgICAgICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgICAgICAgICA8c2NyaXB0CiAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL21lZGlhLWdhbGxlcnkuanM/dj05NjY2MTkwODU4MTIyOTk5NTA5MTcwMjcyOTU3OSIKICAgICAgICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gaXNJRSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHVhID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7CiAgICAgICAgICAgICAgICBjb25zdCBtc2llID0gdWEuaW5kZXhPZignTVNJRSAnKTsKICAgICAgICAgICAgICAgIGNvbnN0IHRyaWRlbnQgPSB1YS5pbmRleE9mKCdUcmlkZW50LycpOwoKICAgICAgICAgICAgICAgIHJldHVybiBtc2llID4gMCB8fCB0cmlkZW50ID4gMDsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIGlmICghaXNJRSgpKSByZXR1cm47CiAgICAgICAgICAgICAgY29uc3QgaGlkZGVuSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcHJvZHVjdC1mb3JtLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiBpbnB1dFtuYW1lPSJpZCJdJyk7CiAgICAgICAgICAgICAgY29uc3Qgbm9TY3JpcHRJbnB1dFdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICBjb25zdCB2YXJpYW50U3dpdGNoZXIgPQogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmFyaWFudC1yYWRpb3NbZGF0YS1zZWN0aW9uPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iXScpIHx8CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2YXJpYW50LXNlbGVjdHNbZGF0YS1zZWN0aW9uPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iXScpOwogICAgICAgICAgICAgIG5vU2NyaXB0SW5wdXRXcmFwcGVyLmlubmVySFRNTCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICAgICAnLnByb2R1Y3QtZm9ybV9fbm9zY3JpcHQtd3JhcHBlci10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4nCiAgICAgICAgICAgICAgKS50ZXh0Q29udGVudDsKICAgICAgICAgICAgICB2YXJpYW50U3dpdGNoZXIub3V0ZXJIVE1MID0gbm9TY3JpcHRJbnB1dFdyYXBwZXIub3V0ZXJIVE1MOwoKICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjVmFyaWFudHMtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluJykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICBoaWRkZW5JbnB1dC52YWx1ZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgewogICAgICAiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5vcmcvIiwKICAgICAgIkB0eXBlIjogIlByb2R1Y3QiLAogICAgICAibmFtZSI6ICJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIiwKICAgICAgInVybCI6ICJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiwKICAgICAgImltYWdlIjogWwogICAgICAgICAgImh0dHBzOlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbVwvY2RuXC9zaG9wXC9maWxlc1wvc2xvdGdhY29ybmloLmpwZz92PTE3MDI3MjkyODRcdTAwMjZ3aWR0aD0xOTIwIgogICAgICAgIF0sCiAgICAgICJkZXNjcmlwdGlvbiI6ICJcbkxpbmsgc2l0dXMgc2xvdCBnYWNvciAyMDI0IHRlcnBlcmNheWEgcGFsaW5nIG1heHdpbiBtdWRhaCBkaWRhcGF0IGthbiBkYWxhbSBwZXJtYWluYW4gc2xvdCBvbmxpbmUgc2FhdCBpbmksIHNlZ2VyYSBtYWlua2FuIGRhbiBkYWZ0YXJrYW4gZGlyaSBhbmRhIGhhbnlhIGRpIHNpdHVzIHNsb3QgZ2Fjb3IgcGFsaW5nIHRlcnBlcmNheWEgc2VsdXJ1aCBwZXJtYWluYW4gZ2FtZSBzbG90IHRlcmJhaWsiLAogICAgICAKICAgICAgImJyYW5kIjogewogICAgICAgICJAdHlwZSI6ICJCcmFuZCIsCiAgICAgICAgIm5hbWUiOiAiU2xvdCBHYWNvciAyMDI0IgogICAgICB9LAogICAgICAib2ZmZXJzIjogW3sKICAgICAgICAgICAgIkB0eXBlIiA6ICJPZmZlciIsImF2YWlsYWJpbGl0eSIgOiAiaHR0cDovL3NjaGVtYS5vcmcvT3V0T2ZTdG9jayIsCiAgICAgICAgICAgICJwcmljZSIgOiAwLjAsCiAgICAgICAgICAgICJwcmljZUN1cnJlbmN5IiA6ICJJRFIiLAogICAgICAgICAgICAidXJsIiA6ICJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yP3ZhcmlhbnQ9NDM5MTAxMTkzMjU4NTEiCiAgICAgICAgICB9Cl0KICAgIH0KICA8L3NjcmlwdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgoKCiAgICA8L3NlY3Rpb24+CiAgPC9tYWluPgoKICA8IS0tIEJFR0lOIHNlY3Rpb25zOiBmb290ZXItZ3JvdXAgLS0+CiAgPHNlY3Rpb24gaWQ9InNob3BpZnktc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX25ld3NsZXR0ZXIiCiAgICBjbGFzcz0ic2hvcGlmeS1zZWN0aW9uIHNob3BpZnktc2VjdGlvbi1ncm91cC1mb290ZXItZ3JvdXAgc2VjdGlvbiI+CiAgICA8bGluawogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LW5ld3NsZXR0ZXIuY3NzP3Y9NDcyNzI1MzI4MDIwMDQ4NTI2MTcwMjcyOTU3OSIKICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9uZXdzbGV0dGVyLXNlY3Rpb24uY3NzP3Y9NjI0MTA0NzA3MTc2NTU4NTM2MjE3MDI3Mjk1NzkiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8c3R5bGUgZGF0YS1zaG9waWZ5PgogICAgICAuc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX25ld3NsZXR0ZXItcGFkZGluZyB7CiAgICAgICAgcGFkZGluZy10b3A6IDIxcHg7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAuc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX25ld3NsZXR0ZXItcGFkZGluZyB7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMjhweDsKICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0ibmV3c2xldHRlciBjZW50ZXIgIj4KICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJuZXdzbGV0dGVyX193cmFwcGVyIGNvbG9yLWludmVyc2UgZ3JhZGllbnQgY29udGVudC1jb250YWluZXIgaXNvbGF0ZSBjb250ZW50LWNvbnRhaW5lci0tZnVsbC13aWR0aCBzZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fbmV3c2xldHRlci1wYWRkaW5nIj4KICAgICAgICA8aDIgY2xhc3M9ImlubGluZS1yaWNodGV4dCBoMSBzY3JvbGwtdHJpZ2dlciBhbmltYXRlLS1zbGlkZS1pbiIgZGF0YS1jYXNjYWRlIHN0eWxlPSItLWFuaW1hdGlvbi1vcmRlcjogMTsiPgogICAgICAgICAgU0xPVCBNQVhXSU4gWUFORyBMQUdJIEdBQ09SIE5JSCBCUkVF8J+kmQogICAgICAgIDwvaDI+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKICA8L3NlY3Rpb24+CiAgPGRpdiBpZD0ic2hvcGlmeS1zZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fZm9vdGVyIiBjbGFzcz0ic2hvcGlmeS1zZWN0aW9uIHNob3BpZnktc2VjdGlvbi1ncm91cC1mb290ZXItZ3JvdXAiPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3NlY3Rpb24tZm9vdGVyLmNzcz92PTEyNTE2MDI5ODcyNjAzMjE1NDYzMTcwMjcyOTU4MCIKICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDxsaW5rCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbmV3c2xldHRlci5jc3M/dj00NzI3MjUzMjgwMjAwNDg1MjYxNzAyNzI5NTc5IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1saXN0LW1lbnUuY3NzP3Y9MTUxOTY4NTE2MTE5Njc4NzI4OTkxNzAyNzI5NTc4IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1saXN0LXBheW1lbnQuY3NzP3Y9NjkyNTM5NjE0MTA3NzE4Mzg1MDE3MDI3Mjk1NzkiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8bGluawogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxpc3Qtc29jaWFsLmNzcz92PTM1NzkyOTc2MDEyOTgxOTM0OTkxNzAyNzI5NTc5IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPHN0eWxlIGRhdGEtc2hvcGlmeT4KICAgICAgLmZvb3RlciB7CiAgICAgICAgbWFyZ2luLXRvcDogMHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX2Zvb3Rlci1wYWRkaW5nIHsKICAgICAgICBwYWRkaW5nLXRvcDogMzNweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDVweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDBweDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fZm9vdGVyLXBhZGRpbmcgewogICAgICAgICAgcGFkZGluZy10b3A6IDQ0cHg7CiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsKICAgICAgICB9CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8Zm9vdGVyIGNsYXNzPSJmb290ZXIgY29sb3ItaW52ZXJzZSBncmFkaWVudCBzZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fZm9vdGVyLXBhZGRpbmciPgogICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX2NvbnRlbnQtdG9wIHBhZ2Utd2lkdGgiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1ibG9jay0tbmV3c2xldHRlciBzY3JvbGwtdHJpZ2dlciBhbmltYXRlLS1zbGlkZS1pbiIgZGF0YS1jYXNjYWRlPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19jb250ZW50LWJvdHRvbSBzY3JvbGwtdHJpZ2dlciBhbmltYXRlLS1zbGlkZS1pbiIgZGF0YS1jYXNjYWRlPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29udGVudC1ib3R0b20td3JhcHBlciBwYWdlLXdpZHRoIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29sdW1uIGZvb3Rlcl9fbG9jYWxpemF0aW9uIGlzb2xhdGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19jb2x1bW4gZm9vdGVyX19jb2x1bW4tLWluZm8iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX3BheW1lbnQiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlBheW1lbnQgbWV0aG9kczwvc3Bhbj4KICAgICAgICAgICAgICA8dWwgY2xhc3M9Imxpc3QgbGlzdC1wYXltZW50IiByb2xlPSJsaXN0Ij48L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29udGVudC1ib3R0b20td3JhcHBlciBwYWdlLXdpZHRoIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29weXJpZ2h0IGNhcHRpb24iPgogICAgICAgICAgICA8c21hbGwgY2xhc3M9ImNvcHlyaWdodF9fY29udGVudCI+SGFrIENpcHRhICZjb3B5OyAyMDI0IOKAoiA8L3N0cm9uZz48L2E+PC9zbWFsbD4KICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJjb3B5cmlnaHRfX2NvbnRlbnQiPjxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3d3dy5lbGFwaHllLmNvbS8iPjxzdHJvbmc+UG93ZXIgYnkgU2VvIFBpa2FjaHUgfCAxOCs8L2E+PC9zbWFsbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZm9vdGVyPgoKCiAgPC9kaXY+CiAgPCEtLSBFTkQgc2VjdGlvbnM6IGZvb3Rlci1ncm91cCAtLT4KCiAgPHVsIGhpZGRlbj4KICAgIDxsaSBpZD0iYTExeS1yZWZyZXNoLXBhZ2UtbWVzc2FnZSI+Q2hvb3NpbmcgYSBzZWxlY3Rpb24gcmVzdWx0cyBpbiBhIGZ1bGwgcGFnZSByZWZyZXNoLjwvbGk+CiAgICA8bGkgaWQ9ImExMXktbmV3LXdpbmRvdy1tZXNzYWdlIj5PcGVucyBpbiBhIG5ldyB3aW5kb3cuPC9saT4KICA8L3VsPgoKICA8c2NyaXB0PgogICAgd2luZG93LnNob3BVcmwgPSAnaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbSc7CiAgICB3aW5kb3cucm91dGVzID0gewogICAgICBjYXJ0X2FkZF91cmw6ICcvY2FydC9hZGQnLAogICAgICBjYXJ0X2NoYW5nZV91cmw6ICcvY2FydC9jaGFuZ2UnLAogICAgICBjYXJ0X3VwZGF0ZV91cmw6ICcvY2FydC91cGRhdGUnLAogICAgICBjYXJ0X3VybDogJy9jYXJ0JywKICAgICAgcHJlZGljdGl2ZV9zZWFyY2hfdXJsOiAnL3NlYXJjaC9zdWdnZXN0JywKICAgIH07CgogICAgd2luZG93LmNhcnRTdHJpbmdzID0gewogICAgICBlcnJvcjogYFRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSB1cGRhdGluZyB5b3VyIGNhcnQuIFBsZWFzZSB0cnkgYWdhaW4uYCwKICAgICAgcXVhbnRpdHlFcnJvcjogYFlvdSBjYW4gb25seSBhZGQgW3F1YW50aXR5XSBvZiB0aGlzIGl0ZW0gdG8geW91ciBjYXJ0LmAsCiAgICB9OwoKICAgIHdpbmRvdy52YXJpYW50U3RyaW5ncyA9IHsKICAgICAgYWRkVG9DYXJ0OiBgQWRkIHRvIGNhcnRgLAogICAgICBzb2xkT3V0OiBgU29sZCBvdXRgLAogICAgICB1bmF2YWlsYWJsZTogYFVuYXZhaWxhYmxlYCwKICAgICAgdW5hdmFpbGFibGVfd2l0aF9vcHRpb246IGBbdmFsdWVdIC0gVW5hdmFpbGFibGVgLAogICAgfTsKCiAgICB3aW5kb3cucXVpY2tPcmRlckxpc3RTdHJpbmdzID0gewogICAgICBpdGVtc0FkZGVkOiBgW3F1YW50aXR5XSBpdGVtcyBhZGRlZGAsCiAgICAgIGl0ZW1BZGRlZDogYFtxdWFudGl0eV0gaXRlbSBhZGRlZGAsCiAgICAgIGl0ZW1zUmVtb3ZlZDogYFtxdWFudGl0eV0gaXRlbXMgcmVtb3ZlZGAsCiAgICAgIGl0ZW1SZW1vdmVkOiBgW3F1YW50aXR5XSBpdGVtIHJlbW92ZWRgLAogICAgICB2aWV3Q2FydDogYFZpZXcgY2FydGAsCiAgICAgIGVhY2g6IGBbbW9uZXldL2VhYCwKICAgIH07CgogICAgd2luZG93LmFjY2Vzc2liaWxpdHlTdHJpbmdzID0gewogICAgICBpbWFnZUF2YWlsYWJsZTogYEltYWdlIFtpbmRleF0gaXMgbm93IGF2YWlsYWJsZSBpbiBnYWxsZXJ5IHZpZXdgLAogICAgICBzaGFyZVN1Y2Nlc3M6IGBMaW5rIGNvcGllZCB0byBjbGlwYm9hcmRgLAogICAgICBwYXVzZVNsaWRlc2hvdzogYFBhdXNlIHNsaWRlc2hvd2AsCiAgICAgIHBsYXlTbGlkZXNob3c6IGBQbGF5IHNsaWRlc2hvd2AsCiAgICAgIHJlY2lwaWVudEZvcm1FeHBhbmRlZDogYEdpZnQgY2FyZCByZWNpcGllbnQgZm9ybSBleHBhbmRlZGAsCiAgICAgIHJlY2lwaWVudEZvcm1Db2xsYXBzZWQ6IGBHaWZ0IGNhcmQgcmVjaXBpZW50IGZvcm0gY29sbGFwc2VkYCwKICAgIH07CiAgPC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9wcmVkaWN0aXZlLXNlYXJjaC5qcz92PTE2MjI3MzI0NjA2NTM5MjQxMjE0MTcwMjcyOTU3OSIKICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CjwvYm9keT4KCjwvaHRtbD4='; ?>

Did this file decode correctly?

Original Code

'Cgo8IWRvY3R5cGUgaHRtbD4KPGh0bWwgY2xhc3M9Im5vLWpzIiBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIj4KICA8bGluayByZWw9ImFtcGh0bWwiIGhyZWY9Imh0dHBzOi8veG4tLTEyY2wxZmsxZS54eXovIj4KICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93d3cuZWxhcGh5ZS5jb20vIj4KICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC9maWxlcy9pY29uLXBpa2FjaHUucG5nP2Nyb3A9Y2VudGVyJmhlaWdodD0zMiZ2PTE3MDI3Mjk4OTYmd2lkdGg9MzIiPgogIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5zaG9waWZ5Y2RuLmNvbSIgY3Jvc3NvcmlnaW4+CiAgPHRpdGxlPlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW48L3RpdGxlPgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJMaW5rIHNpdHVzIHNsb3QgZ2Fjb3IgMjAyNCB0ZXJwZXJjYXlhIHBhbGluZyBtYXh3aW4gbXVkYWggZGlkYXBhdCBrYW4gZGFsYW0gcGVybWFpbmFuIHNsb3Qgb25saW5lIHNhYXQgaW5pLCBzZWdlcmEgbWFpbmthbiBkYW4gZGFmdGFya2FuIGRpcmkgYW5kYSBoYW55YSBkaSBzaXR1cyBzbG90IGdhY29yIHBhbGluZyB0ZXJwZXJjYXlhIHNlbHVydWggcGVybWFpbmFuIGdhbWUgc2xvdCB0ZXJiYWlrIj4KICA8bWV0YSBwcm9wZXJ0eT0ib2c6c2l0ZV9uYW1lIiBjb250ZW50PSJTbG90IEdhY29yIDIwMjQiPgogIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLyI+CiAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIj4KICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0icHJvZHVjdCI+CiAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJMaW5rIHNpdHVzIHNsb3QgZ2Fjb3IgMjAyNCB0ZXJwZXJjYXlhIHBhbGluZyBtYXh3aW4gbXVkYWggZGlkYXBhdCBrYW4gZGFsYW0gcGVybWFpbmFuIHNsb3Qgb25saW5lIHNhYXQgaW5pLCBzZWdlcmEgbWFpbmthbiBkYW4gZGFmdGFya2FuIGRpcmkgYW5kYSBoYW55YSBkaSBzaXR1cyBzbG90IGdhY29yIHBhbGluZyB0ZXJwZXJjYXlhIHNlbHVydWggcGVybWFpbmFuIGdhbWUgc2xvdCB0ZXJiYWlrIj4KICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Ii8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQiPgogIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpzZWN1cmVfdXJsIiBjb250ZW50PSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0Ij4KICA8bWV0YSBuYW1lPSJnb29nbGUtc2l0ZS12ZXJpZmljYXRpb24iIGNvbnRlbnQ9IkZnSTBubFNoVTF3ckZhZUd0a2hkUDlCTW1adURiejJ3YXhRRnBEUzloTEEiIC8+CiAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSI3MTMiPgogIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjcxMyI+CiAgPG1ldGEgcHJvcGVydHk9Im9nOnByaWNlOmFtb3VudCIgY29udGVudD0iMS4wMDAsMDAiPgogIDxtZXRhIHByb3BlcnR5PSJvZzpwcmljZTpjdXJyZW5jeSIgY29udGVudD0iSURSIj4KICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iPgogIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ikxpbmsgc2l0dXMgc2xvdCBnYWNvciAyMDI0IHRlcnBlcmNheWEgcGFsaW5nIG1heHdpbiBtdWRhaCBkaWRhcGF0IGthbiBkYWxhbSBwZXJtYWluYW4gc2xvdCBvbmxpbmUgc2FhdCBpbmksIHNlZ2VyYSBtYWlua2FuIGRhbiBkYWZ0YXJrYW4gZGlyaSBhbmRhIGhhbnlhIGRpIHNpdHVzIHNsb3QgZ2Fjb3IgcGFsaW5nIHRlcnBlcmNheWEgc2VsdXJ1aCBwZXJtYWluYW4gZ2FtZSBzbG90IHRlcmJhaWsiPgogIDxzY3JpcHQgc3JjPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29uc3RhbnRzLmpzP3Y9NTgyNTE1NDQ3NTA4Mzg2ODU3NzE3MDI3Mjk1NzkiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9wdWJzdWIuanM/dj0xNTgzNTc3NzM1Mjc3NjM5OTk1MTE3MDI3Mjk1ODAiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9nbG9iYWwuanM/dj0xMTMzNjc1MTU3NzQ3MjI1OTkzMDE3MDI3Mjk1NzkiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9hbmltYXRpb25zLmpzP3Y9ODg2OTM2NjQ4NzEzMzExMzYxMTE3MDI3Mjk1NzgiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdD53aW5kb3cucGVyZm9ybWFuY2UgJiYgd2luZG93LnBlcmZvcm1hbmNlLm1hcmsgJiYgd2luZG93LnBlcmZvcm1hbmNlLm1hcmsoJ3Nob3BpZnkuY29udGVudF9mb3JfaGVhZGVyLnN0YXJ0Jyk7PC9zY3JpcHQ+CiAgPG1ldGEgaWQ9InNob3BpZnktZGlnaXRhbC13YWxsZXQiIG5hbWU9InNob3BpZnktZGlnaXRhbC13YWxsZXQiIGNvbnRlbnQ9Ii82MjEwODM2OTA1MS9kaWdpdGFsX3dhbGxldHMvZGlhbG9nIj4KICA8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vanNvbitvZW1iZWQiIGhyZWY9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLy5vZW1iZWQiPgogIDxzY3JpcHQgYXN5bmM9ImFzeW5jIiBzcmM9Ii9jaGVja291dHMvaW50ZXJuYWwvcHJlbG9hZHMuanM/cGVybWFuZW50LWRvbWFpbj05YjlkMmYubXlzaG9waWZ5LmNvbSZsb2NhbGU9ZW4tSUQiPjwvc2NyaXB0PgogIDxzY3JpcHQgaWQ9InNob3BpZnktZmVhdHVyZXMiIHR5cGU9ImFwcGxpY2F0aW9uL2pzb24iPnsiYWNjZXNzVG9rZW4iOiJmYWM4MmQxNjg0M2ZmYzNmNTMxOTg0ZDE1YTU0ODc2ZCIsImJldGFzIjpbInJpY2gtbWVkaWEtc3RvcmVmcm9udC1hbmFseXRpY3MiXSwiZG9tYWluIjoiOWI5ZDJmLm15c2hvcGlmeS5jb20iLCJwcmVkaWN0aXZlU2VhcmNoIjp0cnVlLCJzaG9wSWQiOjYyMTA4MzY5MDUxLCJzbWFydF9wYXltZW50X2J1dHRvbnNfdXJsIjoiaHR0cHM6XC9cLzliOWQyZi5teXNob3BpZnkuY29tXC9jZG5cL3Nob3BpZnljbG91ZFwvcGF5bWVudC1zaGVldFwvYXNzZXRzXC9sYXRlc3RcL3NwYi5lbi5qcyIsImR5bmFtaWNfY2hlY2tvdXRfY2FydF91cmwiOiJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL2Nkblwvc2hvcGlmeWNsb3VkXC9wYXltZW50LXNoZWV0XC9hc3NldHNcL2xhdGVzdFwvZHluYW1pYy1jaGVja291dC1jYXJ0LmVuLmpzIiwibG9jYWxlIjoiZW4iLCJvcHRpbXVzRW5hYmxlZCI6dHJ1ZSwib3B0aW11c0hpZGRlbiI6ZmFsc2UsImJldHRlckR5bmFtaWNDaGVja291dFJlY29tbWVuZGF0aW9uVmFyaWFudCI6ImNvbnRyb2wiLCJzaG9wUHJvbWlzZVBEUFYzRW5hYmxlZCI6dHJ1ZX08L3NjcmlwdD4KICA8c2NyaXB0PnZhciBTaG9waWZ5ID0gU2hvcGlmeSB8fCB7fTsKICAgIFNob3BpZnkuc2hvcCA9ICI5YjlkMmYubXlzaG9waWZ5LmNvbSI7CiAgICBTaG9waWZ5LmxvY2FsZSA9ICJlbiI7CiAgICBTaG9waWZ5LmN1cnJlbmN5ID0geyAiYWN0aXZlIjogIklEUiIsICJyYXRlIjogIjEuMCIgfTsKICAgIFNob3BpZnkuY291bnRyeSA9ICJJRCI7CiAgICBTaG9waWZ5LnRoZW1lID0geyAibmFtZSI6ICJSZWZyZXNoIiwgImlkIjogMTMyOTI5MDkzNzg3LCAidGhlbWVfc3RvcmVfaWQiOiAxNTY3LCAicm9sZSI6ICJtYWluIiB9OwogICAgU2hvcGlmeS50aGVtZS5oYW5kbGUgPSAibnVsbCI7CiAgICBTaG9waWZ5LnRoZW1lLnN0eWxlID0geyAiaWQiOiBudWxsLCAiaGFuZGxlIjogbnVsbCB9OwogICAgU2hvcGlmeS5jZG5Ib3N0ID0gIjliOWQyZi5teXNob3BpZnkuY29tL2NkbiI7CiAgICBTaG9waWZ5LnJvdXRlcyA9IFNob3BpZnkucm91dGVzIHx8IHt9OwogICAgU2hvcGlmeS5yb3V0ZXMucm9vdCA9ICIvIjs8L3NjcmlwdD4KICA8c2NyaXB0IHR5cGU9Im1vZHVsZSI+IWZ1bmN0aW9uIChvKSB7IChvLlNob3BpZnkgPSBvLlNob3BpZnkgfHwge30pLm1vZHVsZXMgPSAhMCB9KHdpbmRvdyk7PC9zY3JpcHQ+CiAgPHNjcmlwdD4hZnVuY3Rpb24gKG8pIHsgZnVuY3Rpb24gbigpIHsgdmFyIG8gPSBbXTsgZnVuY3Rpb24gbigpIHsgby5wdXNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShhcmd1bWVudHMpKSB9IHJldHVybiBuLnEgPSBvLCBuIH0gdmFyIHQgPSBvLlNob3BpZnkgPSBvLlNob3BpZnkgfHwge307IHQubG9hZEZlYXR1cmVzID0gbigpLCB0LmF1dG9sb2FkRmVhdHVyZXMgPSBuKCkgfSh3aW5kb3cpOzwvc2NyaXB0PgogIDxzY3JpcHQKICAgIGlkPSJfX3N0Ij52YXIgX19zdCA9IHsgImEiOiA2MjEwODM2OTA1MSwgIm9mZnNldCI6IDMyNDAwLCAicmVxaWQiOiAiZTJmZDI1ZTMtZDhkNi00M2FmLWIwOGItNGY1MjAwOWJmZWJmIiwgInBhZ2V1cmwiOiAiOWI5ZDJmLm15c2hvcGlmeS5jb21cL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiwgInUiOiAiNzEwMWVkZjBmNGM4IiwgInAiOiAicHJvZHVjdCIsICJydHlwIjogInByb2R1Y3QiLCAicmlkIjogNzgxNDEzMzYxMjY5OSB9Ozwvc2NyaXB0PgogIDxzY3JpcHQ+d2luZG93LlNob3BpZnlQYXlwYWxWNFZpc2liaWxpdHlUcmFja2luZyA9IHRydWU7PC9zY3JpcHQ+CiAgPHNjcmlwdD4hZnVuY3Rpb24gKG8pIHsgby5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24gKCkgeyB3aW5kb3cuU2hvcGlmeSA9IHdpbmRvdy5TaG9waWZ5IHx8IHt9LCB3aW5kb3cuU2hvcGlmeS5yZWNhcHRjaGFWMyA9IHdpbmRvdy5TaG9waWZ5LnJlY2FwdGNoYVYzIHx8IHsgc2l0ZUtleTogIjZMY0NSMmNVQUFBQUFOUzFHcHFfbURJSjJwUXVKcGhzU1FhVUV1YzkiIH07IHZhciB0ID0gWydmb3JtW2FjdGlvbio9Ii9jb250YWN0Il0gaW5wdXRbbmFtZT0iZm9ybV90eXBlIl1bdmFsdWU9ImNvbnRhY3QiXScsICdmb3JtW2FjdGlvbio9Ii9jb21tZW50cyJdIGlucHV0W25hbWU9ImZvcm1fdHlwZSJdW3ZhbHVlPSJuZXdfY29tbWVudCJdJywgJ2Zvcm1bYWN0aW9uKj0iL2FjY291bnQiXSBpbnB1dFtuYW1lPSJmb3JtX3R5cGUiXVt2YWx1ZT0iY3VzdG9tZXJfbG9naW4iXScsICdmb3JtW2FjdGlvbio9Ii9hY2NvdW50Il0gaW5wdXRbbmFtZT0iZm9ybV90eXBlIl1bdmFsdWU9InJlY292ZXJfY3VzdG9tZXJfcGFzc3dvcmQiXScsICdmb3JtW2FjdGlvbio9Ii9hY2NvdW50Il0gaW5wdXRbbmFtZT0iZm9ybV90eXBlIl1bdmFsdWU9ImNyZWF0ZV9jdXN0b21lciJdJywgJ2Zvcm1bYWN0aW9uKj0iL2NvbnRhY3QiXSBpbnB1dFtuYW1lPSJmb3JtX3R5cGUiXVt2YWx1ZT0iY3VzdG9tZXIiXSddLmpvaW4oIiwiKTsgZnVuY3Rpb24gbihlKSB7IGUgPSBlLnRhcmdldDsgbnVsbCA9PSBlIHx8IG51bGwgIT0gKGUgPSBmdW5jdGlvbiBlKHQsIG4pIHsgaWYgKG51bGwgPT0gdC5wYXJlbnRFbGVtZW50KSByZXR1cm4gbnVsbDsgaWYgKCJGT1JNIiAhPSB0LnBhcmVudEVsZW1lbnQudGFnTmFtZSkgcmV0dXJuIGUodC5wYXJlbnRFbGVtZW50LCBuKTsgZm9yICh2YXIgbyA9IHQucGFyZW50RWxlbWVudC5hY3Rpb24sIHIgPSAwOyByIDwgbi5sZW5ndGg7IHIrKylpZiAoLTEgIT09IG8uaW5kZXhPZihuW3JdKSkgcmV0dXJuIHQucGFyZW50RWxlbWVudDsgcmV0dXJuIG51bGwgfShlLCBbIi9jb250YWN0IiwgIi9jb21tZW50cyIsICIvYWNjb3VudCJdKSkgJiYgbnVsbCAhPSBlLnF1ZXJ5U2VsZWN0b3IodCkgJiYgKChlID0gby5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkuc2V0QXR0cmlidXRlKCJzcmMiLCAiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vc2hvcGlmeWNsb3VkL3N0b3JlZnJvbnQtcmVjYXB0Y2hhLXYzL3YwLjYvaW5kZXguanMiKSwgby5ib2R5LmFwcGVuZENoaWxkKGUpLCBvLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIiwgbiwgITApLCBvLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIG4sICEwKSwgby5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsIG4sICEwKSkgfSBvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbiwgITApLCBvLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIG4sICEwKSwgby5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIG4sICEwKSB9KSB9KGRvY3VtZW50KTs8L3NjcmlwdD4KICA8c2NyaXB0IGludGVncml0eT0ic2hhMjU2LWg0ZHZva1d2R2N2UlNxaUc3Vm5HcW9vbnhGMGszTmVvSFBMU01qVUdJejQ9IiBkYXRhLXNvdXJjZS1hdHRyaWJ1dGlvbj0ic2hvcGlmeS5sb2FkZmVhdHVyZXMiCiAgICBkZWZlcj0iZGVmZXIiCiAgICBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3BpZnljbG91ZC9zaG9waWZ5L2Fzc2V0cy9zdG9yZWZyb250L2xvYWRfZmVhdHVyZS04Nzg3NmZhMjQ1YWYxOWNiZDE0YWE4ODZlZDU5YzZhYThhMjdjNDVkMjRkY2Q3YTgxY2YyZDIzMjM1MDYyMzNlLmpzIgogICAgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBkYXRhLXNvdXJjZS1hdHRyaWJ1dGlvbj0ic2hvcGlmeS5keW5hbWljX2NoZWNrb3V0LmR5bmFtaWMuaW5pdCI+dmFyIFNob3BpZnkgPSBTaG9waWZ5IHx8IHt9OyBTaG9waWZ5LlBheW1lbnRCdXR0b24gPSBTaG9waWZ5LlBheW1lbnRCdXR0b24gfHwgeyBpc1N0b3JlZnJvbnRQb3J0YWJsZVdhbGxldHM6ICEwLCBpbml0OiBmdW5jdGlvbiAoKSB7IHdpbmRvdy5TaG9waWZ5LlBheW1lbnRCdXR0b24uaW5pdCA9IGZ1bmN0aW9uICgpIHsgfTsgdmFyIHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsgdC5zcmMgPSAiaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcGlmeWNsb3VkL3BvcnRhYmxlLXdhbGxldHMvbGF0ZXN0L3BvcnRhYmxlLXdhbGxldHMuZW4uanMiLCB0LnR5cGUgPSAibW9kdWxlIiwgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0KSB9IH07CiAgPC9zY3JpcHQ+CiAgPHNjcmlwdD4KICAgIHdpbmRvdy5fX3Nob3BpZnlfcG9ydGFibGVfd2FsbGV0c19vbmVycm9yX18gPSBmdW5jdGlvbiAoc2NyaXB0KSB7CiAgICAgIGlmIChzY3JpcHQgJiYgc2NyaXB0LnNyYykgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgcG9ydGFibGUgd2FsbGV0cyBzY3JpcHQgJHtzY3JpcHQuc3JjfWApOwogICAgICB2YXIgc2tlbGV0b25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZHluYW1pYy1jaGVja291dCA+IC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19za2VsZXRvbicpOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNrZWxldG9ucy5sZW5ndGg7IGkrKykgc2tlbGV0b25zW2ldLnJlbW92ZSgpOwogICAgfQogIDwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9Im1vZHVsZSIKICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcGlmeWNsb3VkL3BvcnRhYmxlLXdhbGxldHMvbGF0ZXN0L3BvcnRhYmxlLXdhbGxldHMuZW4uanMiCiAgICBvbkVycm9yPSJfX3Nob3BpZnlfcG9ydGFibGVfd2FsbGV0c19vbmVycm9yX18odGhpcykiPjwvc2NyaXB0PgogIDxzY3JpcHQgbm9tb2R1bGU+CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgX19zaG9waWZ5X3BvcnRhYmxlX3dhbGxldHNfb25lcnJvcl9fKTsKICA8L3NjcmlwdD4KCiAgPHNjcmlwdCBpZD0ic2VjdGlvbnMtc2NyaXB0IiBkYXRhLXNlY3Rpb25zPSJoZWFkZXIiIGRlZmVyPSJkZWZlciIKICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvY29tcGlsZWRfYXNzZXRzL3NjcmlwdHMuanM/OSI+PC9zY3JpcHQ+CiAgPHN0eWxlIGlkPSJzaG9waWZ5LWR5bmFtaWMtY2hlY2tvdXQiPgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi0taGlkZGVuIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gewogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCB0cmFuc3BhcmVudDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBmb250LXNpemU6IDFlbTsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluLW91dDsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uW2Rpc2FibGVkXSB7CiAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24tLXVuYnJhbmRlZCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTkwYzY7CiAgICAgIHBhZGRpbmc6IDFlbSAyZW07CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi0tdW5icmFuZGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzZmOTk7CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX21vcmUtb3B0aW9ucyB7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IDAgbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgIG1hcmdpbi10b3A6IDFlbTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fbW9yZS1vcHRpb25zOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19tb3JlLW9wdGlvbnNbZGlzYWJsZWRdIHsKICAgICAgb3BhY2l0eTogMC42OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24tLWJyYW5kZWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBtaW4taGVpZ2h0OiA0NHB4OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi0tYnJhbmRlZCAuc2hvcGlmeS1jbGVhbnNsYXRlIHsKICAgICAgZmxleDogMSAhaW1wb3J0YW50OwogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uLmJ1dHRvbi5sb2FkaW5nIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgLnNob3BpZnktcGF5bWVudC1idXR0b25fX2J1dHRvbi5idXR0b24ubG9hZGluZz4ubG9hZGluZy1vdmVybGF5X19zcGlubmVyIHsKICAgICAgdG9wOiA1MCU7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24uYnV0dG9uLmxvYWRpbmc+LmxvYWRpbmctb3ZlcmxheV9fc3Bpbm5lciAuc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogICAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICB9CgogICAgLmJ1dHRvbi5sb2FkaW5nPi5sb2FkaW5nLW92ZXJsYXlfX3NwaW5uZXIgLnBhdGggewogICAgICBzdHJva2U6IHdoaXRlOwogICAgfQoKICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gLmxvYWRpbmctb3ZlcmxheV9fc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAxLjhyZW07CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uIC5zcGlubmVyIHsKICAgICAgYW5pbWF0aW9uOiBzaG9waWZ5LXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgQGtleWZyYW1lcyBzaG9waWZ5LXJvdGF0b3IgewogICAgICAwJSB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgIH0KCiAgICAgIDEwMCUgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fYnV0dG9uIC5wYXRoIHsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMjgwOwogICAgICBzdHJva2UtZGFzaG9mZnNldDogMDsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOwogICAgICBzdHJva2U6IHJnYigxOCwgMTgsIDE4KTsKICAgICAgYW5pbWF0aW9uOiBzaG9waWZ5LWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgIH0KCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7CiAgICAgIC5zaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gLnBhdGggewogICAgICAgIHN0cm9rZTogQ2FudmFzVGV4dDsKICAgICAgfQogICAgfQoKICAgIEBrZXlmcmFtZXMgc2hvcGlmeS1kYXNoIHsKICAgICAgMCUgewogICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyODA7CiAgICAgIH0KCiAgICAgIDUwJSB7CiAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDc1OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7CiAgICAgIH0KCiAgICAgIDEwMCUgewogICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyODA7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDUwZGVnKTsKICAgICAgfQogICAgfQoKICAgIEBrZXlmcmFtZXMgd2FsbGV0c0xvYWRpbmdTa2VsZXRvbiB7CiAgICAgIDUwJSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgNzUlIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIDEwMCUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIH0KCiAgICAuc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fc2tlbGV0b24gewogICAgICBhbmltYXRpb246IHdhbGxldHNMb2FkaW5nU2tlbGV0b24gNHMgZWFzZSBpbmZpbml0ZTsKICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNjhzOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIyLCAyMjIsIDIyMik7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CiAgPC9zdHlsZT4KICA8c2NyaXB0PndpbmRvdy5wZXJmb3JtYW5jZSAmJiB3aW5kb3cucGVyZm9ybWFuY2UubWFyayAmJiB3aW5kb3cucGVyZm9ybWFuY2UubWFyaygnc2hvcGlmeS5jb250ZW50X2Zvcl9oZWFkZXIuZW5kJyk7PC9zY3JpcHQ+CgoKICA8c3R5bGUgZGF0YS1zaG9waWZ5PgogICAgQGZvbnQtZmFjZSB7CiAgICAgIGZvbnQtZmFtaWx5OiBRdWVzdHJpYWw7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgZm9udC1kaXNwbGF5OiBzd2FwOwogICAgICBzcmM6IHVybCgiaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vZm9udHMvcXVlc3RyaWFsL3F1ZXN0cmlhbF9uNC4wYmE2ZDJiNjA5NDk1NGJhYjIzNzMyYzc1ZDNlY2I0YzQ3YTU4NjljLndvZmYyP2gxPU9XSTVaREptTG1GalkyOTFiblF1YlhsemFHOXdhV1o1TG1OdmJRJmhtYWM9MWM4NzdkY2EwMTc2ZTI0ZmI2OTNjOTZhMDBlZmZlN2RjODZiODQ4MDc4MjVmYzM2YzE1ZDMxYTU4NTVjMTk4YSIpIGZvcm1hdCgid29mZjIiKSwKICAgICAgICB1cmwoImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL2ZvbnRzL3F1ZXN0cmlhbC9xdWVzdHJpYWxfbjQuNWFiY2UxMGQ4ODQ2YmI5MzI2Yzk3NDFlYWZmZWQ5NjY3Yzg0NzY5Mi53b2ZmP2gxPU9XSTVaREptTG1GalkyOTFiblF1YlhsemFHOXdhV1o1TG1OdmJRJmhtYWM9ZWNmZGQxYTBkNzBiMjA0YjA2MjA0MWUyNmMwZjEyZmE1YWZjYzY2ZDlmNDhlMTc5Y2ZhNTkyZDJlZWQ1NzkyNCIpIGZvcm1hdCgid29mZiIpOwogICAgfQoKCgoKICAgIEBmb250LWZhY2UgewogICAgICBmb250LWZhbWlseTogQXJjaGl2bzsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgICBmb250LWRpc3BsYXk6IHN3YXA7CiAgICAgIHNyYzogdXJsKCJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9mb250cy9hcmNoaXZvL2FyY2hpdm9fbjcuNmYzNjNhYjMwYjEyZWEwMGQ1ZTYyNDNlZDBlOTc3YTExMzkzYTNhZC53b2ZmMj9oMT1PV0k1WkRKbUxtRmpZMjkxYm5RdWJYbHphRzl3YVdaNUxtTnZiUSZobWFjPTcxZDhkOGQ3YjdmNDgxZDk4NjFlMDFkMzVkYTMwMzYxMGM4NGI2YjdiYmQ0ZGQxY2Y3ODlmM2JhYTgzODk0ODEiKSBmb3JtYXQoIndvZmYyIiksCiAgICAgICAgdXJsKCJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9mb250cy9hcmNoaXZvL2FyY2hpdm9fbjcuODQ2YjQwYTU3MzViYmQxNDlhZDQ0YjA4M2ExOWMzZTVkODhkOGZhYi53b2ZmP2gxPU9XSTVaREptTG1GalkyOTFiblF1YlhsemFHOXdhV1o1TG1OdmJRJmhtYWM9MjFiYTUzMjc0OWExOTMwODgxNTFjMThmMTUxOWY2MWM3NGI0MTU0YmVkNjYxODBiY2I5MDkxMjI2MDliMjM0YiIpIGZvcm1hdCgid29mZiIpOwogICAgfQoKCgogICAgOnJvb3QsCiAgICAuY29sb3ItYmFja2dyb3VuZC0xIHsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAyMzksIDI0MCwgMjQ1OwoKICAgICAgLS1ncmFkaWVudC1iYWNrZ3JvdW5kOiAjZmZmOwoKCgoKICAgICAgLS1jb2xvci1mb3JlZ3JvdW5kOiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDE2MSwgMTY2LCAxOTY7CiAgICAgIC0tY29sb3Itc2hhZG93OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbjogNzEsIDExMiwgMjE5OwogICAgICAtLWNvbG9yLWJ1dHRvbi10ZXh0OiAyMzksIDI0MCwgMjQ1OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b246IDIzOSwgMjQwLCAyNDU7CiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5LWJ1dHRvbi10ZXh0OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWxpbms6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYmFkZ2UtZm9yZWdyb3VuZDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1iYWRnZS1iYWNrZ3JvdW5kOiAyMzksIDI0MCwgMjQ1OwogICAgICAtLWNvbG9yLWJhZGdlLWJvcmRlcjogMTQsIDI3LCA3NzsKICAgICAgLS1wYXltZW50LXRlcm1zLWJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgMjQwIDI0NSk7CiAgICB9CgoKICAgIC5jb2xvci1iYWNrZ3JvdW5kLTIgewogICAgICAtLWNvbG9yLWJhY2tncm91bmQ6IDI1NSwgMjU1LCAyNTU7CgogICAgICAtLWdyYWRpZW50LWJhY2tncm91bmQ6ICNmZmZmZmY7CgoKCgogICAgICAtLWNvbG9yLWZvcmVncm91bmQ6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYmFja2dyb3VuZC1jb250cmFzdDogMTkxLCAxOTEsIDE5MTsKICAgICAgLS1jb2xvci1zaGFkb3c6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYnV0dG9uOiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbi10ZXh0OiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b246IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5LWJ1dHRvbi10ZXh0OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWxpbms6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYmFkZ2UtZm9yZWdyb3VuZDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1iYWRnZS1iYWNrZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWJvcmRlcjogMTQsIDI3LCA3NzsKICAgICAgLS1wYXltZW50LXRlcm1zLWJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSk7CiAgICB9CgoKICAgIC5jb2xvci1pbnZlcnNlIHsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAxNCwgMjcsIDc3OwoKICAgICAgLS1ncmFkaWVudC1iYWNrZ3JvdW5kOiAjZWYyMmZmOwoKCgoKICAgICAgLS1jb2xvci1mb3JlZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDE4LCAzNSwgOTk7CiAgICAgIC0tY29sb3Itc2hhZG93OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbjogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1idXR0b24tdGV4dDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1zZWNvbmRhcnktYnV0dG9uOiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b24tdGV4dDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1saW5rOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWZvcmVncm91bmQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3ItYmFkZ2UtYmFja2dyb3VuZDogMTQsIDI3LCA3NzsKICAgICAgLS1jb2xvci1iYWRnZS1ib3JkZXI6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tcGF5bWVudC10ZXJtcy1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQgMjcgNzcpOwogICAgfQoKCiAgICAuY29sb3ItYWNjZW50LTEgewogICAgICAtLWNvbG9yLWJhY2tncm91bmQ6IDcxLCAxMTIsIDIxOTsKCiAgICAgIC0tZ3JhZGllbnQtYmFja2dyb3VuZDogIzQ3NzBkYjsKCgoKCiAgICAgIC0tY29sb3ItZm9yZWdyb3VuZDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRyYXN0OiAyNywgNTcsIDEzNjsKICAgICAgLS1jb2xvci1zaGFkb3c6IDE0LCAyNywgNzc7CiAgICAgIC0tY29sb3ItYnV0dG9uOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJ1dHRvbi10ZXh0OiA3MSwgMTEyLCAyMTk7CiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5LWJ1dHRvbjogNzEsIDExMiwgMjE5OwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b24tdGV4dDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1saW5rOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWZvcmVncm91bmQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3ItYmFkZ2UtYmFja2dyb3VuZDogNzEsIDExMiwgMjE5OwogICAgICAtLWNvbG9yLWJhZGdlLWJvcmRlcjogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1wYXltZW50LXRlcm1zLWJhY2tncm91bmQtY29sb3I6IHJnYig3MSAxMTIgMjE5KTsKICAgIH0KCgogICAgLmNvbG9yLWFjY2VudC0yIHsKICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAyMjcsIDM2LCAyOwoKICAgICAgLS1ncmFkaWVudC1iYWNrZ3JvdW5kOiAjZTMyNDAyOwoKCgoKICAgICAgLS1jb2xvci1mb3JlZ3JvdW5kOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDEwMSwgMTYsIDE7CiAgICAgIC0tY29sb3Itc2hhZG93OiAxNCwgMjcsIDc3OwogICAgICAtLWNvbG9yLWJ1dHRvbjogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1idXR0b24tdGV4dDogMjI3LCAzNiwgMjsKICAgICAgLS1jb2xvci1zZWNvbmRhcnktYnV0dG9uOiAyMjcsIDM2LCAyOwogICAgICAtLWNvbG9yLXNlY29uZGFyeS1idXR0b24tdGV4dDogMjU1LCAyNTUsIDI1NTsKICAgICAgLS1jb2xvci1saW5rOiAyNTUsIDI1NSwgMjU1OwogICAgICAtLWNvbG9yLWJhZGdlLWZvcmVncm91bmQ6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tY29sb3ItYmFkZ2UtYmFja2dyb3VuZDogMjI3LCAzNiwgMjsKICAgICAgLS1jb2xvci1iYWRnZS1ib3JkZXI6IDI1NSwgMjU1LCAyNTU7CiAgICAgIC0tcGF5bWVudC10ZXJtcy1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI3IDM2IDIpOwogICAgfQoKCiAgICBib2R5LAogICAgLmNvbG9yLWJhY2tncm91bmQtMSwKICAgIC5jb2xvci1iYWNrZ3JvdW5kLTIsCiAgICAuY29sb3ItaW52ZXJzZSwKICAgIC5jb2xvci1hY2NlbnQtMSwKICAgIC5jb2xvci1hY2NlbnQtMiB7CiAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWNvbG9yLWZvcmVncm91bmQpLCAwLjc1KTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLWNvbG9yLWJhY2tncm91bmQpKTsKICAgIH0KCiAgICA6cm9vdCB7CiAgICAgIC0tZm9udC1ib2R5LWZhbWlseTogUXVlc3RyaWFsLCBzYW5zLXNlcmlmOwogICAgICAtLWZvbnQtYm9keS1zdHlsZTogbm9ybWFsOwogICAgICAtLWZvbnQtYm9keS13ZWlnaHQ6IDQwMDsKICAgICAgLS1mb250LWJvZHktd2VpZ2h0LWJvbGQ6IDcwMDsKCiAgICAgIC0tZm9udC1oZWFkaW5nLWZhbWlseTogQXJjaGl2bywgc2VyaWY7CiAgICAgIC0tZm9udC1oZWFkaW5nLXN0eWxlOiBub3JtYWw7CiAgICAgIC0tZm9udC1oZWFkaW5nLXdlaWdodDogNzAwOwoKICAgICAgLS1mb250LWJvZHktc2NhbGU6IDEuMDU7CiAgICAgIC0tZm9udC1oZWFkaW5nLXNjYWxlOiAxLjA0NzYxOTA0NzYxOTA0Nzc7CgogICAgICAtLW1lZGlhLXBhZGRpbmc6IHB4OwogICAgICAtLW1lZGlhLWJvcmRlci1vcGFjaXR5OiAwLjE7CiAgICAgIC0tbWVkaWEtYm9yZGVyLXdpZHRoOiAwcHg7CiAgICAgIC0tbWVkaWEtcmFkaXVzOiAyMHB4OwogICAgICAtLW1lZGlhLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tbWVkaWEtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwcHg7CiAgICAgIC0tbWVkaWEtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLW1lZGlhLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwogICAgICAtLW1lZGlhLXNoYWRvdy12aXNpYmxlOiAwOwoKICAgICAgLS1wYWdlLXdpZHRoOiAxMjByZW07CiAgICAgIC0tcGFnZS13aWR0aC1tYXJnaW46IDByZW07CgogICAgICAtLXByb2R1Y3QtY2FyZC1pbWFnZS1wYWRkaW5nOiAxLjZyZW07CiAgICAgIC0tcHJvZHVjdC1jYXJkLWNvcm5lci1yYWRpdXM6IDEuOHJlbTsKICAgICAgLS1wcm9kdWN0LWNhcmQtdGV4dC1hbGlnbm1lbnQ6IGxlZnQ7CiAgICAgIC0tcHJvZHVjdC1jYXJkLWJvcmRlci13aWR0aDogMC4xcmVtOwogICAgICAtLXByb2R1Y3QtY2FyZC1ib3JkZXItb3BhY2l0eTogMS4wOwogICAgICAtLXByb2R1Y3QtY2FyZC1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLXByb2R1Y3QtY2FyZC1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1wcm9kdWN0LWNhcmQtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwLjByZW07CiAgICAgIC0tcHJvZHVjdC1jYXJkLXNoYWRvdy12ZXJ0aWNhbC1vZmZzZXQ6IDAuNHJlbTsKICAgICAgLS1wcm9kdWN0LWNhcmQtc2hhZG93LWJsdXItcmFkaXVzOiAwLjVyZW07CgogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1pbWFnZS1wYWRkaW5nOiAxLjZyZW07CiAgICAgIC0tY29sbGVjdGlvbi1jYXJkLWNvcm5lci1yYWRpdXM6IDEuOHJlbTsKICAgICAgLS1jb2xsZWN0aW9uLWNhcmQtdGV4dC1hbGlnbm1lbnQ6IGxlZnQ7CiAgICAgIC0tY29sbGVjdGlvbi1jYXJkLWJvcmRlci13aWR0aDogMC4xcmVtOwogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1ib3JkZXItb3BhY2l0eTogMS4wOwogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLWNvbGxlY3Rpb24tY2FyZC1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1jb2xsZWN0aW9uLWNhcmQtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwLjByZW07CiAgICAgIC0tY29sbGVjdGlvbi1jYXJkLXNoYWRvdy12ZXJ0aWNhbC1vZmZzZXQ6IDAuNHJlbTsKICAgICAgLS1jb2xsZWN0aW9uLWNhcmQtc2hhZG93LWJsdXItcmFkaXVzOiAwLjVyZW07CgogICAgICAtLWJsb2ctY2FyZC1pbWFnZS1wYWRkaW5nOiAxLjZyZW07CiAgICAgIC0tYmxvZy1jYXJkLWNvcm5lci1yYWRpdXM6IDEuOHJlbTsKICAgICAgLS1ibG9nLWNhcmQtdGV4dC1hbGlnbm1lbnQ6IGxlZnQ7CiAgICAgIC0tYmxvZy1jYXJkLWJvcmRlci13aWR0aDogMC4xcmVtOwogICAgICAtLWJsb2ctY2FyZC1ib3JkZXItb3BhY2l0eTogMS4wOwogICAgICAtLWJsb2ctY2FyZC1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLWJsb2ctY2FyZC1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1ibG9nLWNhcmQtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwLjByZW07CiAgICAgIC0tYmxvZy1jYXJkLXNoYWRvdy12ZXJ0aWNhbC1vZmZzZXQ6IDAuNHJlbTsKICAgICAgLS1ibG9nLWNhcmQtc2hhZG93LWJsdXItcmFkaXVzOiAwLjVyZW07CgogICAgICAtLWJhZGdlLWNvcm5lci1yYWRpdXM6IDAuMHJlbTsKCiAgICAgIC0tcG9wdXAtYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgIC0tcG9wdXAtYm9yZGVyLW9wYWNpdHk6IDAuMTsKICAgICAgLS1wb3B1cC1jb3JuZXItcmFkaXVzOiAxOHB4OwogICAgICAtLXBvcHVwLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tcG9wdXAtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwcHg7CiAgICAgIC0tcG9wdXAtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLXBvcHVwLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwoKICAgICAgLS1kcmF3ZXItYm9yZGVyLXdpZHRoOiAwcHg7CiAgICAgIC0tZHJhd2VyLWJvcmRlci1vcGFjaXR5OiAwLjE7CiAgICAgIC0tZHJhd2VyLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tZHJhd2VyLXNoYWRvdy1ob3Jpem9udGFsLW9mZnNldDogMHB4OwogICAgICAtLWRyYXdlci1zaGFkb3ctdmVydGljYWwtb2Zmc2V0OiA0cHg7CiAgICAgIC0tZHJhd2VyLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwoKICAgICAgLS1zcGFjaW5nLXNlY3Rpb25zLWRlc2t0b3A6IDBweDsKICAgICAgLS1zcGFjaW5nLXNlY3Rpb25zLW1vYmlsZTogMHB4OwoKICAgICAgLS1ncmlkLWRlc2t0b3AtdmVydGljYWwtc3BhY2luZzogMjhweDsKICAgICAgLS1ncmlkLWRlc2t0b3AtaG9yaXpvbnRhbC1zcGFjaW5nOiAyOHB4OwogICAgICAtLWdyaWQtbW9iaWxlLXZlcnRpY2FsLXNwYWNpbmc6IDE0cHg7CiAgICAgIC0tZ3JpZC1tb2JpbGUtaG9yaXpvbnRhbC1zcGFjaW5nOiAxNHB4OwoKICAgICAgLS10ZXh0LWJveGVzLWJvcmRlci1vcGFjaXR5OiAwLjE7CiAgICAgIC0tdGV4dC1ib3hlcy1ib3JkZXItd2lkdGg6IDBweDsKICAgICAgLS10ZXh0LWJveGVzLXJhZGl1czogMjBweDsKICAgICAgLS10ZXh0LWJveGVzLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tdGV4dC1ib3hlcy1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS10ZXh0LWJveGVzLXNoYWRvdy1ob3Jpem9udGFsLW9mZnNldDogMHB4OwogICAgICAtLXRleHQtYm94ZXMtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLXRleHQtYm94ZXMtc2hhZG93LWJsdXItcmFkaXVzOiA1cHg7CgogICAgICAtLWJ1dHRvbnMtcmFkaXVzOiA0MHB4OwogICAgICAtLWJ1dHRvbnMtcmFkaXVzLW91dHNldDogNDFweDsKICAgICAgLS1idXR0b25zLWJvcmRlci13aWR0aDogMXB4OwogICAgICAtLWJ1dHRvbnMtYm9yZGVyLW9wYWNpdHk6IDEuMDsKICAgICAgLS1idXR0b25zLXNoYWRvdy1vcGFjaXR5OiAwLjA7CiAgICAgIC0tYnV0dG9ucy1zaGFkb3ctdmlzaWJsZTogMDsKICAgICAgLS1idXR0b25zLXNoYWRvdy1ob3Jpem9udGFsLW9mZnNldDogMHB4OwogICAgICAtLWJ1dHRvbnMtc2hhZG93LXZlcnRpY2FsLW9mZnNldDogNHB4OwogICAgICAtLWJ1dHRvbnMtc2hhZG93LWJsdXItcmFkaXVzOiA1cHg7CiAgICAgIC0tYnV0dG9ucy1ib3JkZXItb2Zmc2V0OiAwLjNweDsKCiAgICAgIC0taW5wdXRzLXJhZGl1czogMjZweDsKICAgICAgLS1pbnB1dHMtYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgIC0taW5wdXRzLWJvcmRlci1vcGFjaXR5OiAwLjU1OwogICAgICAtLWlucHV0cy1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLWlucHV0cy1zaGFkb3ctaG9yaXpvbnRhbC1vZmZzZXQ6IDBweDsKICAgICAgLS1pbnB1dHMtbWFyZ2luLW9mZnNldDogMHB4OwogICAgICAtLWlucHV0cy1zaGFkb3ctdmVydGljYWwtb2Zmc2V0OiA0cHg7CiAgICAgIC0taW5wdXRzLXNoYWRvdy1ibHVyLXJhZGl1czogNXB4OwogICAgICAtLWlucHV0cy1yYWRpdXMtb3V0c2V0OiAyN3B4OwoKICAgICAgLS12YXJpYW50LXBpbGxzLXJhZGl1czogNDBweDsKICAgICAgLS12YXJpYW50LXBpbGxzLWJvcmRlci13aWR0aDogMXB4OwogICAgICAtLXZhcmlhbnQtcGlsbHMtYm9yZGVyLW9wYWNpdHk6IDAuNTU7CiAgICAgIC0tdmFyaWFudC1waWxscy1zaGFkb3ctb3BhY2l0eTogMC4wOwogICAgICAtLXZhcmlhbnQtcGlsbHMtc2hhZG93LWhvcml6b250YWwtb2Zmc2V0OiAwcHg7CiAgICAgIC0tdmFyaWFudC1waWxscy1zaGFkb3ctdmVydGljYWwtb2Zmc2V0OiA0cHg7CiAgICAgIC0tdmFyaWFudC1waWxscy1zaGFkb3ctYmx1ci1yYWRpdXM6IDVweDsKICAgIH0KCiAgICAqLAogICAgKjo6YmVmb3JlLAogICAgKjo6YWZ0ZXIgewogICAgICBib3gtc2l6aW5nOiBpbmhlcml0OwogICAgfQoKICAgIGh0bWwgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBmb250LXNpemU6IGNhbGModmFyKC0tZm9udC1ib2R5LXNjYWxlKSAqIDYyLjUlKTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQoKICAgIGJvZHkgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byAxZnIgYXV0bzsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlOwogICAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgICBtYXJnaW46IDA7CiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wNnJlbTsKICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMSArIDAuOCAvIHZhcigtLWZvbnQtYm9keS1zY2FsZSkpOwogICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5LWZhbWlseSk7CiAgICAgIGZvbnQtc3R5bGU6IHZhcigtLWZvbnQtYm9keS1zdHlsZSk7CiAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LWJvZHktd2VpZ2h0KTsKICAgIH0KCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkgewogICAgICBib2R5IHsKICAgICAgICBmb250LXNpemU6IDEuNnJlbTsKICAgICAgfQogICAgfQogIDwvc3R5bGU+CgogIDxsaW5rIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9iYXNlLmNzcz92PTEyNzg2NzAwMzUxMTYzNzY2MTI5MTcwMjcyOTU3OCIKICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgPGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iZm9udCIKICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL2ZvbnRzL3F1ZXN0cmlhbC9xdWVzdHJpYWxfbjQuMGJhNmQyYjYwOTQ5NTRiYWIyMzczMmM3NWQzZWNiNGM0N2E1ODY5Yy53b2ZmMj9oMT1PV0k1WkRKbUxtRmpZMjkxYm5RdWJYbHphRzl3YVdaNUxtTnZiUSZobWFjPTFjODc3ZGNhMDE3NmUyNGZiNjkzYzk2YTAwZWZmZTdkYzg2Yjg0ODA3ODI1ZmMzNmMxNWQzMWE1ODU1YzE5OGEiCiAgICB0eXBlPSJmb250L3dvZmYyIiBjcm9zc29yaWdpbj4KICA8bGluayByZWw9InByZWxvYWQiIGFzPSJmb250IgogICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vZm9udHMvYXJjaGl2by9hcmNoaXZvX243LjZmMzYzYWIzMGIxMmVhMDBkNWU2MjQzZWQwZTk3N2ExMTM5M2EzYWQud29mZjI/aDE9T1dJNVpESm1MbUZqWTI5MWJuUXViWGx6YUc5d2FXWjVMbU52YlEmaG1hYz03MWQ4ZDhkN2I3ZjQ4MWQ5ODYxZTAxZDM1ZGEzMDM2MTBjODRiNmI3YmJkNGRkMWNmNzg5ZjNiYWE4Mzg5NDgxIgogICAgdHlwZT0iZm9udC93b2ZmMiIgY3Jvc3NvcmlnaW4+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1wcmVkaWN0aXZlLXNlYXJjaC5jc3M/dj0xMTg5MjMzMzc0ODgxMzQ5MTM1NjE3MDI3Mjk1NzkiCiAgICBtZWRpYT0icHJpbnQiIG9ubG9hZD0idGhpcy5tZWRpYT0nYWxsJyI+CiAgPHNjcmlwdD4KICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoJ25vLWpzJywgJ2pzJyk7CiAgICBpZiAoU2hvcGlmeS5kZXNpZ25Nb2RlKSB7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzaG9waWZ5LWRlc2lnbi1tb2RlJyk7CiAgICB9CiAgPC9zY3JpcHQ+CiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tb25vcmFpbC1lZGdlLnNob3BpZnlzdmMuY29tIiByZWw9ImRucy1wcmVmZXRjaCI+CiAgPHNjcmlwdD4oZnVuY3Rpb24gKCkgeyBpZiAoInNlbmRCZWFjb24iIGluIG5hdmlnYXRvciAmJiAicGVyZm9ybWFuY2UiIGluIHdpbmRvdykgeyB2YXIgc2Vzc2lvbl90b2tlbiA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaCgvX3Nob3BpZnlfcz0oW147XSopLyk7IGZ1bmN0aW9uIGhhbmRsZV9hYmFuZG9ubWVudF9ldmVudChlKSB7IHZhciBlbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllcygpLmZpbHRlcihmdW5jdGlvbiAoZW50cnkpIHsgcmV0dXJuIC9tb25vcmFpbC1lZGdlLnNob3BpZnlzdmMuY29tLy50ZXN0KGVudHJ5Lm5hbWUpOyB9KTsgaWYgKCF3aW5kb3cuYWJhbmRvbm1lbnRfdHJhY2tlZCAmJiBlbnRyaWVzLmxlbmd0aCA9PT0gMCkgeyB3aW5kb3cuYWJhbmRvbm1lbnRfdHJhY2tlZCA9IHRydWU7IHZhciBjdXJyZW50TXMgPSBEYXRlLm5vdygpOyB2YXIgbmF2aWdhdGlvbl9zdGFydCA9IHBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQ7IHZhciBwYXlsb2FkID0geyBzaG9wX2lkOiA2MjEwODM2OTA1MSwgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZiwgbmF2aWdhdGlvbl9zdGFydCwgZHVyYXRpb246IGN1cnJlbnRNcyAtIG5hdmlnYXRpb25fc3RhcnQsIHNlc3Npb25fdG9rZW46IHNlc3Npb25fdG9rZW4gJiYgc2Vzc2lvbl90b2tlbi5sZW5ndGggPT09IDIgPyBzZXNzaW9uX3Rva2VuWzFdIDogIiIsIHBhZ2VfdHlwZTogInByb2R1Y3QiIH07IHdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbigiaHR0cHM6Ly9tb25vcmFpbC1lZGdlLnNob3BpZnlzdmMuY29tL3YxL3Byb2R1Y2UiLCBKU09OLnN0cmluZ2lmeSh7IHNjaGVtYV9pZDogIm9ubGluZV9zdG9yZV9idXllcl9zaXRlX2FiYW5kb25tZW50LzEuMSIsIHBheWxvYWQ6IHBheWxvYWQsIG1ldGFkYXRhOiB7IGV2ZW50X2NyZWF0ZWRfYXRfbXM6IGN1cnJlbnRNcywgZXZlbnRfc2VudF9hdF9tczogY3VycmVudE1zIH0gfSkpOyB9IH0gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgaGFuZGxlX2FiYW5kb25tZW50X2V2ZW50KTsgfSB9KCkpOzwvc2NyaXB0PgogIDxzY3JpcHQKICAgIGlkPSJ3ZWItcGl4ZWxzLW1hbmFnZXItc2V0dXAiPihmdW5jdGlvbiBlKGUsIG4sIGEsIHQsIG8sIHIsIGkpIHsgdmFyIHMgPSBudWxsICE9PSBlLCBsID0gKCJmdW5jdGlvbiIgPT0gdHlwZW9mIEJpZ0ludCAmJiBCaWdJbnQudG9TdHJpbmcoKS5pbmRleE9mKCJbbmF0aXZlIGNvZGVdIikgPyAibW9kZXJuIiA6ICJsZWdhY3kiKS5zdWJzdHJpbmcoMCwgMSksIGMgPSB0LnN1YnN0cmluZygwLCAxKTsgaWYgKHMpIHsgd2luZG93LlNob3BpZnkgPSB3aW5kb3cuU2hvcGlmeSB8fCB7fTsgdmFyIGQgPSB3aW5kb3cuU2hvcGlmeTsgZC5hbmFseXRpY3MgPSBkLmFuYWx5dGljcyB8fCB7fTsgdmFyIHUgPSBkLmFuYWx5dGljczsgdS5yZXBsYXlRdWV1ZSA9IFtdLCB1LnB1Ymxpc2ggPSBmdW5jdGlvbiAoZSwgbiwgYSkgeyB1LnJlcGxheVF1ZXVlLnB1c2goW2UsIG4sIGFdKSB9OyB0cnkgeyBzZWxmLnBlcmZvcm1hbmNlLm1hcmsoIndwbTpzdGFydCIpIH0gY2F0Y2ggKGUpIHsgfSB9IHZhciBwLCBmLCB5LCBoLCB2LCBtLCB3LCBnLCBiLCBfID0gW2EsICIvd3BtIiwgIi8iLCBjLCByLCBsLCAiLmpzIl0uam9pbigiIik7IGYgPSAocCA9IHsgc3JjOiBfLCBhc3luYzogITAsIG9ubG9hZDogZnVuY3Rpb24gKCkgeyBpZiAoZSkgeyB2YXIgYSA9IHdpbmRvdy53ZWJQaXhlbHNNYW5hZ2VyLmluaXQoZSk7IG51bGwgPT0gbiB8fCBuKGEpOyB2YXIgdCA9IHdpbmRvdy5TaG9waWZ5LmFuYWx5dGljczsgdC5yZXBsYXlRdWV1ZS5mb3JFYWNoKChmdW5jdGlvbiAoZSkgeyB2YXIgbiA9IGVbMF0sIHQgPSBlWzFdLCBvID0gZVsyXTsgYS5wdWJsaXNoQ3VzdG9tRXZlbnQobiwgdCwgbykgfSkpLCB0LnJlcGxheVF1ZXVlID0gW10sIHQucHVibGlzaCA9IGEucHVibGlzaEN1c3RvbUV2ZW50LCB0LnZpc2l0b3IgPSBhLnZpc2l0b3IgfSB9LCBvbmVycm9yOiBmdW5jdGlvbiAoKSB7IHZhciBuID0gKG51bGwgPT0gZSA/IHZvaWQgMCA6IGUuc3RvcmVmcm9udEJhc2VVcmwpID8gZS5zdG9yZWZyb250QmFzZVVybC5yZXBsYWNlKC9cLyQvLCAiIikgOiBzZWxmLmxvY2F0aW9uLm9yaWdpbiwgYSA9ICIiLmNvbmNhdChuLCAiLy53ZWxsLWtub3duL3Nob3BpZnkvbW9ub3JhaWwvdW5zdGFibGUvcHJvZHVjZV9iYXRjaCIpLCB0ID0gSlNPTi5zdHJpbmdpZnkoeyBtZXRhZGF0YTogeyBldmVudF9zZW50X2F0X21zOiAobmV3IERhdGUpLmdldFRpbWUoKSB9LCBldmVudHM6IFt7IHNjaGVtYV9pZDogIndlYl9waXhlbHNfbWFuYWdlcl9sb2FkLzIuMCIsIHBheWxvYWQ6IHsgdmVyc2lvbjogbyB8fCAibGF0ZXN0IiwgcGFnZV91cmw6IHNlbGYubG9jYXRpb24uaHJlZiwgc3RhdHVzOiAiZmFpbGVkIiwgZXJyb3JfbXNnOiAiIi5jb25jYXQoXywgIiBoYXMgZmFpbGVkIHRvIGxvYWQiKSB9LCBtZXRhZGF0YTogeyBldmVudF9jcmVhdGVkX2F0X21zOiAobmV3IERhdGUpLmdldFRpbWUoKSB9IH1dIH0pOyB0cnkgeyBpZiAoc2VsZi5uYXZpZ2F0b3Iuc2VuZEJlYWNvbi5iaW5kKHNlbGYubmF2aWdhdG9yKShhLCB0KSkgcmV0dXJuICEwIH0gY2F0Y2ggKGUpIHsgfSB2YXIgciA9IG5ldyBYTUxIdHRwUmVxdWVzdDsgdHJ5IHsgcmV0dXJuIHIub3BlbigiUE9TVCIsIGEsICEwKSwgci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpLCByLnNlbmQodCksICEwIH0gY2F0Y2ggKGUpIHsgY29uc29sZSAmJiBjb25zb2xlLndhcm4gJiYgY29uc29sZS53YXJuKCJbV2ViIFBpeGVscyBNYW5hZ2VyXSBHb3QgYW4gdW5oYW5kbGVkIGVycm9yIHdoaWxlIGxvZ2dpbmcgYSBsb2FkIGVycm9yLiIpIH0gcmV0dXJuICExIH0gfSkuc3JjLCB5ID0gcC5hc3luYywgaCA9IHZvaWQgMCA9PT0geSB8fCB5LCB2ID0gcC5vbmxvYWQsIG0gPSBwLm9uZXJyb3IsIHcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSwgZyA9IGRvY3VtZW50LmhlYWQsIGIgPSBkb2N1bWVudC5ib2R5LCB3LmFzeW5jID0gaCwgdy5zcmMgPSBmLCB2ICYmIHcuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHYpLCBtICYmIHcuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBtKSwgZyA/IGcuYXBwZW5kQ2hpbGQodykgOiBiID8gYi5hcHBlbmRDaGlsZCh3KSA6IGNvbnNvbGUuZXJyb3IoIkRpZCBub3QgZmluZCBhIGhlYWQgb3IgYm9keSBlbGVtZW50IHRvIGFwcGVuZCB0aGUgc2NyaXB0IikgfSkoeyBzaG9wSWQ6IDYyMTA4MzY5MDUxLCBzdG9yZWZyb250QmFzZVVybDogImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20iLCBjZG5CYXNlVXJsOiAiaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4iLCBzdXJmYWNlOiAic3RvcmVmcm9udC1yZW5kZXJlciIsIGVuYWJsZWRCZXRhRmxhZ3M6IFsid2ViX3BpeGVsc19hc3luY19waXhlbF9yZWZhY3RvciIsICJ3ZWJfcGl4ZWxzX21hbmFnZXJfcGVyZm9ybWFuY2VfaW1wcm92ZW1lbnQiXSwgd2ViUGl4ZWxzQ29uZmlnTGlzdDogW3sgImlkIjogInNob3BpZnktYXBwLXBpeGVsIiwgImNvbmZpZ3VyYXRpb24iOiAie30iLCAiZXZlbnRQYXlsb2FkVmVyc2lvbiI6ICJ2MSIsICJydW50aW1lQ29udGV4dCI6ICJTVFJJQ1QiLCAic2NyaXB0VmVyc2lvbiI6ICIwNTcwIiwgImFwaUNsaWVudElkIjogInNob3BpZnktcGl4ZWwiLCAidHlwZSI6ICJBUFAiIH0sIHsgImlkIjogInNob3BpZnktY3VzdG9tLXBpeGVsIiwgImV2ZW50UGF5bG9hZFZlcnNpb24iOiAidjEiLCAicnVudGltZUNvbnRleHQiOiAiTEFYIiwgInNjcmlwdFZlcnNpb24iOiAiMDU3MCIsICJhcGlDbGllbnRJZCI6ICJzaG9waWZ5LXBpeGVsIiwgInR5cGUiOiAiQ1VTVE9NIiB9XSwgaW5pdERhdGE6IHsgImNhcnQiOiBudWxsLCAiY2hlY2tvdXQiOiBudWxsLCAiY3VzdG9tZXIiOiBudWxsLCAicHJvZHVjdFZhcmlhbnRzIjogW3sgImlkIjogIjQzOTEwMTE5MzI1ODUxIiwgImltYWdlIjogeyAic3JjIjogIlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbVwvY2RuXC9zaG9wXC9maWxlc1wvc2xvdGdhY29ybmloLmpwZz92PTE3MDI3MjkyODQiIH0sICJwcmljZSI6IHsgImFtb3VudCI6IDAuMCwgImN1cnJlbmN5Q29kZSI6ICJJRFIiIH0sICJwcm9kdWN0IjogeyAiaWQiOiAiNzgxNDEzMzYxMjY5OSIsICJ0aXRsZSI6ICJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIiwgInVudHJhbnNsYXRlZFRpdGxlIjogIlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iLCAidXJsIjogIlwvcHJvZHVjdHNcL2xpbmstc2xvdC1tYXh3aW4tdGVycGVyY2F5YS15YW5nLWxhZ2ktZ2Fjb3IiLCAidmVuZG9yIjogIlNsb3QgR2Fjb3IgMjAyNCIsICJ0eXBlIjogIiIgfSwgInNrdSI6ICIiLCAidGl0bGUiOiAiRGVmYXVsdCBUaXRsZSIsICJ1bnRyYW5zbGF0ZWRUaXRsZSI6ICJEZWZhdWx0IFRpdGxlIiB9XSB9LCB9LCBmdW5jdGlvbiBwYWdlRXZlbnRzKHdlYlBpeGVsc01hbmFnZXJBUEkpIHsgd2ViUGl4ZWxzTWFuYWdlckFQSS5wdWJsaXNoKCJwYWdlX3ZpZXdlZCIpOyB3ZWJQaXhlbHNNYW5hZ2VyQVBJLnB1Ymxpc2goInByb2R1Y3Rfdmlld2VkIiwgeyAicHJvZHVjdFZhcmlhbnQiOiB7ICJpZCI6ICI0MzkxMDExOTMyNTg1MSIsICJpbWFnZSI6IHsgInNyYyI6ICJcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL2Nkblwvc2hvcFwvZmlsZXNcL3Nsb3RnYWNvcm5paC5qcGc/dj0xNzAyNzI5Mjg0IiB9LCAicHJpY2UiOiB7ICJhbW91bnQiOiAwLjAsICJjdXJyZW5jeUNvZGUiOiAiSURSIiB9LCAicHJvZHVjdCI6IHsgImlkIjogIjc4MTQxMzM2MTI2OTkiLCAidGl0bGUiOiAiU2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbiIsICJ1bnRyYW5zbGF0ZWRUaXRsZSI6ICJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIiwgInVybCI6ICJcL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiwgInZlbmRvciI6ICJTbG90IEdhY29yIDIwMjQiLCAidHlwZSI6ICIiIH0sICJza3UiOiAiIiwgInRpdGxlIjogIkRlZmF1bHQgVGl0bGUiLCAidW50cmFuc2xhdGVkVGl0bGUiOiAiRGVmYXVsdCBUaXRsZSIgfSB9KTsgfSwgImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuIiwgImJyb3dzZXIiLCAiMC4wLjQxMSIsICIzOGNlY2I4Ync4MzE2NWZiNHA2ZjcxNTI1M205Y2M1NjA5NSIsIFsid2ViX3BpeGVsc19hc3luY19waXhlbF9yZWZhY3RvciIsICJ3ZWJfcGl4ZWxzX21hbmFnZXJfcGVyZm9ybWFuY2VfaW1wcm92ZW1lbnQiXSk7PC9zY3JpcHQ+CiAgPHNjcmlwdD53aW5kb3cuU2hvcGlmeUFuYWx5dGljcyA9IHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzIHx8IHt9OwogICAgd2luZG93LlNob3BpZnlBbmFseXRpY3MubWV0YSA9IHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLm1ldGEgfHwge307CiAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5tZXRhLmN1cnJlbmN5ID0gJ0lEUic7CiAgICB2YXIgbWV0YSA9IHsgInByb2R1Y3QiOiB7ICJpZCI6IDc4MTQxMzM2MTI2OTksICJnaWQiOiAiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0XC83ODE0MTMzNjEyNjk5IiwgInZlbmRvciI6ICJTbG90IEdhY29yIDIwMjQiLCAidHlwZSI6ICIiLCAidmFyaWFudHMiOiBbeyAiaWQiOiA0MzkxMDExOTMyNTg1MSwgInByaWNlIjogMCwgIm5hbWUiOiAiU2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbiIsICJwdWJsaWNfdGl0bGUiOiBudWxsLCAic2t1IjogIiIgfV0gfSwgInBhZ2UiOiB7ICJwYWdlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlSWQiOiA3ODE0MTMzNjEyNjk5IH0gfTsKICAgIGZvciAodmFyIGF0dHIgaW4gbWV0YSkgewogICAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5tZXRhW2F0dHJdID0gbWV0YVthdHRyXTsKICAgIH08L3NjcmlwdD4KICA8c2NyaXB0PndpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLm1lcmNoYW50R29vZ2xlQW5hbHl0aWNzID0gZnVuY3Rpb24gKCkgewoKICAgIH07CiAgPC9zY3JpcHQ+CiAgPHNjcmlwdCBjbGFzcz0iYW5hbHl0aWNzIj4oZnVuY3Rpb24gKCkgewogICAgICB2YXIgY3VzdG9tRG9jdW1lbnRXcml0ZSA9IGZ1bmN0aW9uIChjb250ZW50KSB7CiAgICAgICAgdmFyIGpxdWVyeSA9IG51bGw7CgogICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICBqcXVlcnkgPSB3aW5kb3cualF1ZXJ5OwogICAgICAgIH0gZWxzZSBpZiAod2luZG93LkNoZWNrb3V0ICYmIHdpbmRvdy5DaGVja291dC4kKSB7CiAgICAgICAgICBqcXVlcnkgPSB3aW5kb3cuQ2hlY2tvdXQuJDsKICAgICAgICB9CgogICAgICAgIGlmIChqcXVlcnkpIHsKICAgICAgICAgIGpxdWVyeSgnYm9keScpLmFwcGVuZChjb250ZW50KTsKICAgICAgICB9CiAgICAgIH07CgogICAgICB2YXIgaGFzTG9nZ2VkQ29udmVyc2lvbiA9IGZ1bmN0aW9uICh0b2tlbikgewogICAgICAgIGlmICh0b2tlbikgewogICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCdsb2dnZWRDb252ZXJzaW9uPScgKyB0b2tlbikgIT09IC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHZhciBzZXRDb29raWVJZkNvbnZlcnNpb24gPSBmdW5jdGlvbiAodG9rZW4pIHsKICAgICAgICBpZiAodG9rZW4pIHsKICAgICAgICAgIHZhciB0d29Nb250aHNGcm9tTm93ID0gbmV3IERhdGUoRGF0ZS5ub3coKSk7CiAgICAgICAgICB0d29Nb250aHNGcm9tTm93LnNldE1vbnRoKHR3b01vbnRoc0Zyb21Ob3cuZ2V0TW9udGgoKSArIDIpOwoKICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICdsb2dnZWRDb252ZXJzaW9uPScgKyB0b2tlbiArICc7IGV4cGlyZXM9JyArIHR3b01vbnRoc0Zyb21Ob3c7CiAgICAgICAgfQogICAgICB9CgogICAgICB2YXIgdHJla2tpZSA9IHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLmxpYiA9IHdpbmRvdy50cmVra2llID0gd2luZG93LnRyZWtraWUgfHwgW107CiAgICAgIGlmICh0cmVra2llLmludGVncmF0aW9ucykgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0cmVra2llLm1ldGhvZHMgPSBbCiAgICAgICAgJ2lkZW50aWZ5JywKICAgICAgICAncGFnZScsCiAgICAgICAgJ3JlYWR5JywKICAgICAgICAndHJhY2snLAogICAgICAgICd0cmFja0Zvcm0nLAogICAgICAgICd0cmFja0xpbmsnCiAgICAgIF07CiAgICAgIHRyZWtraWUuZmFjdG9yeSA9IGZ1bmN0aW9uIChtZXRob2QpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpOwogICAgICAgICAgYXJncy51bnNoaWZ0KG1ldGhvZCk7CiAgICAgICAgICB0cmVra2llLnB1c2goYXJncyk7CiAgICAgICAgICByZXR1cm4gdHJla2tpZTsKICAgICAgICB9OwogICAgICB9OwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyZWtraWUubWV0aG9kcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBrZXkgPSB0cmVra2llLm1ldGhvZHNbaV07CiAgICAgICAgdHJla2tpZVtrZXldID0gdHJla2tpZS5mYWN0b3J5KGtleSk7CiAgICAgIH0KICAgICAgdHJla2tpZS5sb2FkID0gZnVuY3Rpb24gKGNvbmZpZykgewogICAgICAgIHRyZWtraWUuY29uZmlnID0gY29uZmlnIHx8IHt9OwogICAgICAgIHRyZWtraWUuY29uZmlnLmluaXRpYWxEb2N1bWVudENvb2tpZSA9IGRvY3VtZW50LmNvb2tpZTsKICAgICAgICB2YXIgZmlyc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgdmFyIHNjcmlwdEZhbGxiYWNrID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay5vbmVycm9yID0gZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAgIHZhciBNb25vcmFpbCA9IHsKICAgICAgICAgICAgICBwcm9kdWNlOiBmdW5jdGlvbiBwcm9kdWNlKG1vbm9yYWlsRG9tYWluLCBzY2hlbWFJZCwgcGF5bG9hZCkgewogICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRNcyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gewogICAgICAgICAgICAgICAgICBzY2hlbWFfaWQ6IHNjaGVtYUlkLAogICAgICAgICAgICAgICAgICBwYXlsb2FkOiBwYXlsb2FkLAogICAgICAgICAgICAgICAgICBtZXRhZGF0YTogewogICAgICAgICAgICAgICAgICAgIGV2ZW50X2NyZWF0ZWRfYXRfbXM6IGN1cnJlbnRNcywKICAgICAgICAgICAgICAgICAgICBldmVudF9zZW50X2F0X21zOiBjdXJyZW50TXMKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIHJldHVybiBNb25vcmFpbC5zZW5kUmVxdWVzdCgiaHR0cHM6Ly8iICsgbW9ub3JhaWxEb21haW4gKyAiL3YxL3Byb2R1Y2UiLCBKU09OLnN0cmluZ2lmeShldmVudCkpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgc2VuZFJlcXVlc3Q6IGZ1bmN0aW9uIHNlbmRSZXF1ZXN0KGVuZHBvaW50VXJsLCBwYXlsb2FkKSB7CiAgICAgICAgICAgICAgICAvLyBUcnkgdGhlIHNlbmRCZWFjb24gQVBJCiAgICAgICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5uYXZpZ2F0b3IgJiYgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygd2luZG93LkJsb2IgPT09ICdmdW5jdGlvbicgJiYgIU1vbm9yYWlsLmlzSW9zMTIoKSkgewogICAgICAgICAgICAgICAgICB2YXIgYmxvYkRhdGEgPSBuZXcgd2luZG93LkJsb2IoW3BheWxvYWRdLCB7CiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQvcGxhaW4nCiAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihlbmRwb2ludFVybCwgYmxvYkRhdGEpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgIH0gLy8gc2VuZEJlYWNvbiB3YXMgbm90IHN1Y2Nlc3NmdWwKCiAgICAgICAgICAgICAgICB9IC8vIFhIUiBiZWFjb24KCiAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CgogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgeGhyLm9wZW4oJ1BPU1QnLCBlbmRwb2ludFVybCk7CiAgICAgICAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpOwogICAgICAgICAgICAgICAgICB4aHIuc2VuZChwYXlsb2FkKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgaXNJb3MxMjogZnVuY3Rpb24gaXNJb3MxMigpIHsKICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5sYXN0SW5kZXhPZignaVBob25lOyBDUFUgaVBob25lIE9TIDEyXycpICE9PSAtMSB8fCB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5sYXN0SW5kZXhPZignaVBhZDsgQ1BVIE9TIDEyXycpICE9PSAtMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIE1vbm9yYWlsLnByb2R1Y2UoJ21vbm9yYWlsLWVkZ2Uuc2hvcGlmeXN2Yy5jb20nLAogICAgICAgICAgICAgICd0cmVra2llX3N0b3JlZnJvbnRfbG9hZF9lcnJvcnMvMS4xJywKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzaG9wX2lkOiA2MjEwODM2OTA1MSwKICAgICAgICAgICAgICAgIHRoZW1lX2lkOiAxMzI5MjkwOTM3ODcsCiAgICAgICAgICAgICAgICBhcHBfbmFtZTogInN0b3JlZnJvbnQiLAogICAgICAgICAgICAgICAgY29udGV4dF91cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLAogICAgICAgICAgICAgICAgc291cmNlX3VybDogImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3MvdHJla2tpZS5zdG9yZWZyb250LjdhNDIyNWNhZjkzNzlmZTQyMTAzZTQ5MjA1MzIyMGE3MTk1ZGYxYWUubWluLmpzIgogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgIH07CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay5hc3luYyA9IHRydWU7CiAgICAgICAgICBzY3JpcHRGYWxsYmFjay5zcmMgPSAnaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vcy90cmVra2llLnN0b3JlZnJvbnQuN2E0MjI1Y2FmOTM3OWZlNDIxMDNlNDkyMDUzMjIwYTcxOTVkZjFhZS5taW4uanMnOwogICAgICAgICAgZmlyc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc2NyaXB0RmFsbGJhY2ssIGZpcnN0KTsKICAgICAgICB9OwogICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7CiAgICAgICAgc2NyaXB0LnNyYyA9ICdodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zL3RyZWtraWUuc3RvcmVmcm9udC43YTQyMjVjYWY5Mzc5ZmU0MjEwM2U0OTIwNTMyMjBhNzE5NWRmMWFlLm1pbi5qcyc7CiAgICAgICAgZmlyc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc2NyaXB0LCBmaXJzdCk7CiAgICAgIH07CiAgICAgIHRyZWtraWUubG9hZCgKICAgICAgICB7ICJUcmVra2llIjogeyAiYXBwTmFtZSI6ICJzdG9yZWZyb250IiwgImRldmVsb3BtZW50IjogZmFsc2UsICJkZWZhdWx0QXR0cmlidXRlcyI6IHsgInNob3BJZCI6IDYyMTA4MzY5MDUxLCAiaXNNZXJjaGFudFJlcXVlc3QiOiBudWxsLCAidGhlbWVJZCI6IDEzMjkyOTA5Mzc4NywgInRoZW1lQ2l0eUhhc2giOiAiMTAzNzcxOTY3ODk4NDA4MDM1MSIsICJjb250ZW50TGFuZ3VhZ2UiOiAiZW4iLCAiY3VycmVuY3kiOiAiSURSIiB9LCAiaXNTZXJ2ZXJTaWRlQ29va2llV3JpdGluZ0VuYWJsZWQiOiB0cnVlLCAibW9ub3JhaWxSZWdpb24iOiAic2hvcF9kb21haW4iIH0sICJTZXNzaW9uIEF0dHJpYnV0aW9uIjoge30sICJTMlMiOiB7ICJmYWNlYm9va0NhcGlFbmFibGVkIjogZmFsc2UsICJzb3VyY2UiOiAidHJla2tpZS1zdG9yZWZyb250LXJlbmRlcmVyIiB9IH0KICAgICAgKTsKCiAgICAgIHZhciBsb2FkZWQgPSBmYWxzZTsKICAgICAgdHJla2tpZS5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGxvYWRlZCkgcmV0dXJuOwogICAgICAgIGxvYWRlZCA9IHRydWU7CgogICAgICAgIHdpbmRvdy5TaG9waWZ5QW5hbHl0aWNzLmxpYiA9IHdpbmRvdy50cmVra2llOwoKCiAgICAgICAgdmFyIG9yaWdpbmFsRG9jdW1lbnRXcml0ZSA9IGRvY3VtZW50LndyaXRlOwogICAgICAgIGRvY3VtZW50LndyaXRlID0gY3VzdG9tRG9jdW1lbnRXcml0ZTsKICAgICAgICB0cnkgeyB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5tZXJjaGFudEdvb2dsZUFuYWx5dGljcy5jYWxsKHRoaXMpOyB9IGNhdGNoIChlcnJvcikgeyB9OwogICAgICAgIGRvY3VtZW50LndyaXRlID0gb3JpZ2luYWxEb2N1bWVudFdyaXRlOwoKICAgICAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5saWIucGFnZShudWxsLCB7ICJwYWdlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlVHlwZSI6ICJwcm9kdWN0IiwgInJlc291cmNlSWQiOiA3ODE0MTMzNjEyNjk5IH0pOwoKICAgICAgICB2YXIgbWF0Y2ggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL2NoZWNrb3V0c1wvKC4rKVwvKHRoYW5rX3lvdXxwb3N0X3B1cmNoYXNlKS8pCiAgICAgICAgdmFyIHRva2VuID0gbWF0Y2ggPyBtYXRjaFsxXSA6IHVuZGVmaW5lZDsKICAgICAgICBpZiAoIWhhc0xvZ2dlZENvbnZlcnNpb24odG9rZW4pKSB7CiAgICAgICAgICBzZXRDb29raWVJZkNvbnZlcnNpb24odG9rZW4pOwogICAgICAgICAgd2luZG93LlNob3BpZnlBbmFseXRpY3MubGliLnRyYWNrKCJWaWV3ZWQgUHJvZHVjdCIsIHsgImN1cnJlbmN5IjogIklEUiIsICJ2YXJpYW50SWQiOiA0MzkxMDExOTMyNTg1MSwgInByb2R1Y3RJZCI6IDc4MTQxMzM2MTI2OTksICJwcm9kdWN0R2lkIjogImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFwvNzgxNDEzMzYxMjY5OSIsICJuYW1lIjogIlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iLCAicHJpY2UiOiAiMC4wMCIsICJza3UiOiAiIiwgImJyYW5kIjogIlNsb3QgR2Fjb3IgMjAyNCIsICJ2YXJpYW50IjogbnVsbCwgImNhdGVnb3J5IjogIiIsICJub25JbnRlcmFjdGlvbiI6IHRydWUgfSk7CiAgICAgICAgICB3aW5kb3cuU2hvcGlmeUFuYWx5dGljcy5saWIudHJhY2soIm1vbm9yYWlsOlwvXC90cmVra2llX3N0b3JlZnJvbnRfdmlld2VkX3Byb2R1Y3RcLzEuMSIsIHsgImN1cnJlbmN5IjogIklEUiIsICJ2YXJpYW50SWQiOiA0MzkxMDExOTMyNTg1MSwgInByb2R1Y3RJZCI6IDc4MTQxMzM2MTI2OTksICJwcm9kdWN0R2lkIjogImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFwvNzgxNDEzMzYxMjY5OSIsICJuYW1lIjogIlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iLCAicHJpY2UiOiAiMC4wMCIsICJza3UiOiAiIiwgImJyYW5kIjogIlNsb3QgR2Fjb3IgMjAyNCIsICJ2YXJpYW50IjogbnVsbCwgImNhdGVnb3J5IjogIiIsICJub25JbnRlcmFjdGlvbiI6IHRydWUsICJyZWZlcmVyIjogImh0dHBzOlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbVwvcHJvZHVjdHNcL2xpbmstc2xvdC1tYXh3aW4tdGVycGVyY2F5YS15YW5nLWxhZ2ktZ2Fjb3IiIH0pOwogICAgICAgIH0KICAgICAgfSk7CgoKICAgICAgdmFyIGV2ZW50c0xpc3RlbmVyU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgIGV2ZW50c0xpc3RlbmVyU2NyaXB0LmFzeW5jID0gdHJ1ZTsKICAgICAgZXZlbnRzTGlzdGVuZXJTY3JpcHQuc3JjID0gImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3BpZnljbG91ZC9zaG9waWZ5L2Fzc2V0cy9zaG9wX2V2ZW50c19saXN0ZW5lci1hN2M2M2RiYTY1Y2NkZGM0ODRmNzc1NDFkYzhjYTQzN2U2MGUxZTllMjk3ZmUxYzNmYWViZjY1MjNhMGVkZTliLmpzIjsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChldmVudHNMaXN0ZW5lclNjcmlwdCk7CgogICAgfSkoKTs8L3NjcmlwdD4KICA8c2NyaXB0IGNsYXNzPSJib29tZXJhbmciPgogICAgKGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHdpbmRvdy5CT09NUiAmJiAod2luZG93LkJPT01SLnZlcnNpb24gfHwgd2luZG93LkJPT01SLnNuaXBwZXRFeGVjdXRlZCkpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgd2luZG93LkJPT01SID0gd2luZG93LkJPT01SIHx8IHt9OwogICAgICB3aW5kb3cuQk9PTVIuc25pcHBldFN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgIHdpbmRvdy5CT09NUi5zbmlwcGV0RXhlY3V0ZWQgPSB0cnVlOwogICAgICB3aW5kb3cuQk9PTVIuc25pcHBldFZlcnNpb24gPSAxMjsKICAgICAgd2luZG93LkJPT01SLmFwcGxpY2F0aW9uID0gInN0b3JlZnJvbnQtcmVuZGVyZXIiOwogICAgICB3aW5kb3cuQk9PTVIudGhlbWVOYW1lID0gIlJlZnJlc2giOwogICAgICB3aW5kb3cuQk9PTVIudGhlbWVWZXJzaW9uID0gIjEyLjAuMCI7CiAgICAgIHdpbmRvdy5CT09NUi5zaG9wSWQgPSA2MjEwODM2OTA1MTsKICAgICAgd2luZG93LkJPT01SLnRoZW1lSWQgPSAxMzI5MjkwOTM3ODc7CiAgICAgIHdpbmRvdy5CT09NUi5yZW5kZXJSZWdpb24gPSAiZ2NwLXVzLWNlbnRyYWwxIjsKICAgICAgd2luZG93LkJPT01SLnVybCA9CiAgICAgICAgImh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3BpZnljbG91ZC9ib29tZXJhbmcvc2hvcGlmeS1ib29tZXJhbmctMS4wLjAubWluLmpzIjsKICAgICAgdmFyIHdoZXJlID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgIHZhciBwYXJlbnROb2RlID0gd2hlcmUucGFyZW50Tm9kZTsKICAgICAgdmFyIHByb21vdGVkID0gZmFsc2U7CiAgICAgIHZhciBMT0FERVJfVElNRU9VVCA9IDMwMDA7CiAgICAgIGZ1bmN0aW9uIHByb21vdGUoKSB7CiAgICAgICAgaWYgKHByb21vdGVkKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICBzY3JpcHQuaWQgPSAiYm9vbXItc2NyLWFzIjsKICAgICAgICBzY3JpcHQuc3JjID0gd2luZG93LkJPT01SLnVybDsKICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlOwogICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICAgICBwcm9tb3RlZCA9IHRydWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaWZyYW1lTG9hZGVyKHdhc0ZhbGxiYWNrKSB7CiAgICAgICAgcHJvbW90ZWQgPSB0cnVlOwogICAgICAgIHZhciBkb20sIGJvb3RzdHJhcCwgaWZyYW1lLCBpZnJhbWVTdHlsZTsKICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQ7CiAgICAgICAgdmFyIHdpbiA9IHdpbmRvdzsKICAgICAgICB3aW5kb3cuQk9PTVIuc25pcHBldE1ldGhvZCA9IHdhc0ZhbGxiYWNrID8gImlmIiA6ICJpIjsKICAgICAgICBib290c3RyYXAgPSBmdW5jdGlvbiAocGFyZW50LCBzY3JpcHRJZCkgewogICAgICAgICAgdmFyIHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICAgIHNjcmlwdC5pZCA9IHNjcmlwdElkIHx8ICJib29tci1pZi1hcyI7CiAgICAgICAgICBzY3JpcHQuc3JjID0gd2luZG93LkJPT01SLnVybDsKICAgICAgICAgIEJPT01SX2xzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgcGFyZW50ID0gcGFyZW50IHx8IGRvYy5ib2R5OwogICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAgICAgfTsKICAgICAgICBpZiAoIXdpbmRvdy5hZGRFdmVudExpc3RlbmVyICYmIHdpbmRvdy5hdHRhY2hFdmVudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9NU0lFIFs2N10uLykpIHsKICAgICAgICAgIHdpbmRvdy5CT09NUi5zbmlwcGV0TWV0aG9kID0gInMiOwogICAgICAgICAgYm9vdHN0cmFwKHBhcmVudE5vZGUsICJib29tci1hc3luYyIpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJRlJBTUUiKTsKICAgICAgICBpZnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKICAgICAgICBpZnJhbWUudGl0bGUgPSAiIjsKICAgICAgICBpZnJhbWUucm9sZSA9ICJwcmVzZW50YXRpb24iOwogICAgICAgIGlmcmFtZS5sb2FkaW5nID0gImVhZ2VyIjsKICAgICAgICBpZnJhbWVTdHlsZSA9IChpZnJhbWUuZnJhbWVFbGVtZW50IHx8IGlmcmFtZSkuc3R5bGU7CiAgICAgICAgaWZyYW1lU3R5bGUud2lkdGggPSAwOwogICAgICAgIGlmcmFtZVN0eWxlLmhlaWdodCA9IDA7CiAgICAgICAgaWZyYW1lU3R5bGUuYm9yZGVyID0gMDsKICAgICAgICBpZnJhbWVTdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKICAgICAgICB0cnkgewogICAgICAgICAgd2luID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CiAgICAgICAgICBkb2MgPSB3aW4uZG9jdW1lbnQub3BlbigpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGRvbSA9IGRvY3VtZW50LmRvbWFpbjsKICAgICAgICAgIGlmcmFtZS5zcmMgPSAiamF2YXNjcmlwdDp2YXIgZD1kb2N1bWVudC5vcGVuKCk7ZC5kb21haW49JyIgKyBkb20gKyAiJzt2b2lkKDApOyI7CiAgICAgICAgICB3aW4gPSBpZnJhbWUuY29udGVudFdpbmRvdzsKICAgICAgICAgIGRvYyA9IHdpbi5kb2N1bWVudC5vcGVuKCk7CiAgICAgICAgfQogICAgICAgIGlmIChkb20pIHsKICAgICAgICAgIGRvYy5fYm9vbXJsID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmRvbWFpbiA9IGRvbTsKICAgICAgICAgICAgYm9vdHN0cmFwKCk7CiAgICAgICAgICB9OwogICAgICAgICAgZG9jLndyaXRlKCI8Ym9keSBvbmxvYWQ9J2RvY3VtZW50Ll9ib29tcmwoKTsnPiIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB3aW4uX2Jvb21ybCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgYm9vdHN0cmFwKCk7CiAgICAgICAgICB9OwogICAgICAgICAgaWYgKHdpbi5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgd2luLl9ib29tcmwsIGZhbHNlKTsKICAgICAgICAgIH0gZWxzZSBpZiAod2luLmF0dGFjaEV2ZW50KSB7CiAgICAgICAgICAgIHdpbi5hdHRhY2hFdmVudCgib25sb2FkIiwgd2luLl9ib29tcmwpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBkb2MuY2xvc2UoKTsKICAgICAgfQogICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsKICAgICAgaWYgKGxpbmsucmVsTGlzdCAmJgogICAgICAgIHR5cGVvZiBsaW5rLnJlbExpc3Quc3VwcG9ydHMgPT09ICJmdW5jdGlvbiIgJiYKICAgICAgICBsaW5rLnJlbExpc3Quc3VwcG9ydHMoInByZWxvYWQiKSAmJgogICAgICAgICgiYXMiIGluIGxpbmspKSB7CiAgICAgICAgd2luZG93LkJPT01SLnNuaXBwZXRNZXRob2QgPSAicCI7CiAgICAgICAgbGluay5ocmVmID0gd2luZG93LkJPT01SLnVybDsKICAgICAgICBsaW5rLnJlbCA9ICJwcmVsb2FkIjsKICAgICAgICBsaW5rLmFzID0gInNjcmlwdCI7CiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcHJvbW90ZSk7CiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmcmFtZUxvYWRlcih0cnVlKTsKICAgICAgICB9KTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmICghcHJvbW90ZWQpIHsKICAgICAgICAgICAgaWZyYW1lTG9hZGVyKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0sIExPQURFUl9USU1FT1VUKTsKICAgICAgICBCT09NUl9sc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgICBwYXJlbnROb2RlLmFwcGVuZENoaWxkKGxpbmspOwogICAgICB9IGVsc2UgewogICAgICAgIGlmcmFtZUxvYWRlcihmYWxzZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYm9vbWVyYW5nU2F2ZUxvYWRUaW1lKGUpIHsKICAgICAgICB3aW5kb3cuQk9PTVJfb25sb2FkID0gKGUgJiYgZS50aW1lU3RhbXApIHx8IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICB9CiAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYm9vbWVyYW5nU2F2ZUxvYWRUaW1lLCBmYWxzZSk7CiAgICAgIH0gZWxzZSBpZiAod2luZG93LmF0dGFjaEV2ZW50KSB7CiAgICAgICAgd2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLCBib29tZXJhbmdTYXZlTG9hZFRpbWUpOwogICAgICB9CiAgICAgIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigib25Cb29tZXJhbmdMb2FkZWQiLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgZS5kZXRhaWwuQk9PTVIuaW5pdCh7CiAgICAgICAgICAgIFJlc291cmNlVGltaW5nOiB7CiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgICB0cmFja2VkUmVzb3VyY2VUeXBlczogWyJzY3JpcHQiLCAiaW1nIiwgImNzcyJdCiAgICAgICAgICAgIH0sCiAgICAgICAgICB9KTsKICAgICAgICAgIGUuZGV0YWlsLkJPT01SLnRfZW5kID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuYXR0YWNoRXZlbnQpIHsKICAgICAgICBkb2N1bWVudC5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICBpZiAoIWUpIGUgPSBldmVudDsKICAgICAgICAgIGlmIChlLnByb3BlcnR5TmFtZSA9PT0gIm9uQm9vbWVyYW5nTG9hZGVkIikgewogICAgICAgICAgICBlLmRldGFpbC5CT09NUi5pbml0KHsKICAgICAgICAgICAgICBSZXNvdXJjZVRpbWluZzogewogICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgICAgIHRyYWNrZWRSZXNvdXJjZVR5cGVzOiBbInNjcmlwdCIsICJpbWciLCAiY3NzIl0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgZS5kZXRhaWwuQk9PTVIudF9lbmQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfSkoKTs8L3NjcmlwdD4KPC9oZWFkPgoKPGJvZHkgY2xhc3M9ImdyYWRpZW50Ij4KICA8YSBjbGFzcz0ic2tpcC10by1jb250ZW50LWxpbmsgYnV0dG9uIHZpc3VhbGx5LWhpZGRlbiIgaHJlZj0iI01haW5Db250ZW50Ij4KICAgIFNraXAgdG8gY29udGVudAogIDwvYT4KCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3F1YW50aXR5LXBvcG92ZXIuY3NzP3Y9MTUzMDc1NjY1MjEzNzQwMzM5NjIxNzAyNzI5NTgwIgogICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICA8bGluayBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcmQuY3NzP3Y9NDcyNjA4NjA2ODQwNzMxMDU5MjE3MDI3Mjk1NzgiCiAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NhcnQuanM/dj01NjkzMzg4ODI3Mzk3NTY3MTQzMTcwMjcyOTU3OCIKICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9xdWFudGl0eS1wb3BvdmVyLmpzP3Y9MTk0NTU3MTMyMzAwMTcwMDA4NjE3MDI3Mjk1ODAiCiAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PgoKICA8c3R5bGU+CiAgICAuZHJhd2VyIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQogIDwvc3R5bGU+CgogIDxjYXJ0LWRyYXdlciBjbGFzcz0iZHJhd2VyIGlzLWVtcHR5Ij4KICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXIiIGNsYXNzPSJjYXJ0LWRyYXdlciI+CiAgICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXItT3ZlcmxheSIgY2xhc3M9ImNhcnQtZHJhd2VyX19vdmVybGF5Ij48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19pbm5lciBncmFkaWVudCBjb2xvci1iYWNrZ3JvdW5kLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1tb2RhbD0idHJ1ZSIgYXJpYS1sYWJlbD0iWW91ciBjYXJ0IgogICAgICAgIHRhYmluZGV4PSItMSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19pbm5lci1lbXB0eSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWRyYXdlcl9fd2FybmluZ3MgY2VudGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1kcmF3ZXJfX2VtcHR5LWNvbnRlbnQiPgogICAgICAgICAgICAgIDxoMiBjbGFzcz0iY2FydF9fZW1wdHktdGV4dCI+WW91ciBjYXJ0IGlzIGVtcHR5PC9oMj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkcmF3ZXJfX2Nsb3NlIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9InRoaXMuY2xvc2VzdCgnY2FydC1kcmF3ZXInKS5jbG9zZSgpIgogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iQ2xvc2UiPgogICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIgogICAgICAgICAgICAgICAgICBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTggMTciPgogICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgIGQ9Ik0uODY1IDE1Ljk3OGEuNS41IDAgMDAuNzA3LjcwN2w3LjQzMy03LjQzMSA3LjU3OSA3LjI4MmEuNTAxLjUwMSAwIDAwLjg0Ni0uMzcuNS41IDAgMDAtLjE1My0uMzUxTDkuNzEyIDguNTQ2bDcuNDE3LTcuNDE2YS41LjUgMCAxMC0uNzA3LS43MDhMOC45OTEgNy44NTMgMS40MTMuNTczYS41LjUgMCAxMC0uNjkzLjcybDcuNTYzIDcuMjY4LTcuNDE4IDcuNDE3eiIKICAgICAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxhIGhyZWY9Ii9jb2xsZWN0aW9ucy9hbGwiIGNsYXNzPSJidXR0b24iPgogICAgICAgICAgICAgICAgQ29udGludWUgc2hvcHBpbmcKICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19oZWFkZXIiPgogICAgICAgICAgPGgyIGNsYXNzPSJkcmF3ZXJfX2hlYWRpbmciPllvdXIgY2FydDwvaDI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkcmF3ZXJfX2Nsb3NlIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9InRoaXMuY2xvc2VzdCgnY2FydC1kcmF3ZXInKS5jbG9zZSgpIiBhcmlhLWxhYmVsPSJDbG9zZSI+CiAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1jbG9zZSIKICAgICAgICAgICAgICBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTggMTciPgogICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICBkPSJNLjg2NSAxNS45NzhhLjUuNSAwIDAwLjcwNy43MDdsNy40MzMtNy40MzEgNy41NzkgNy4yODJhLjUwMS41MDEgMCAwMC44NDYtLjM3LjUuNSAwIDAwLS4xNTMtLjM1MUw5LjcxMiA4LjU0Nmw3LjQxNy03LjQxNmEuNS41IDAgMTAtLjcwNy0uNzA4TDguOTkxIDcuODUzIDEuNDEzLjU3M2EuNS41IDAgMTAtLjY5My43Mmw3LjU2MyA3LjI2OC03LjQxOCA3LjQxN3oiCiAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8L3N2Zz4KCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8Y2FydC1kcmF3ZXItaXRlbXMgY2xhc3M9IiBpcy1lbXB0eSI+CiAgICAgICAgICA8Zm9ybSBhY3Rpb249Ii9jYXJ0IiBpZD0iQ2FydERyYXdlci1Gb3JtIiBjbGFzcz0iY2FydF9fY29udGVudHMgY2FydC1kcmF3ZXJfX2Zvcm0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXItQ2FydEl0ZW1zIiBjbGFzcz0iZHJhd2VyX19jb250ZW50cyBqcy1jb250ZW50cyI+CiAgICAgICAgICAgICAgPHAgaWQ9IkNhcnREcmF3ZXItTGl2ZVJlZ2lvblRleHQiIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iIHJvbGU9InN0YXR1cyI+PC9wPgogICAgICAgICAgICAgIDxwIGlkPSJDYXJ0RHJhd2VyLUxpbmVJdGVtU3RhdHVzIiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0ic3RhdHVzIj4KICAgICAgICAgICAgICAgIExvYWRpbmcuLi4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJDYXJ0RHJhd2VyLUNhcnRFcnJvcnMiIHJvbGU9ImFsZXJ0Ij48L2Rpdj4KICAgICAgICAgIDwvZm9ybT4KICAgICAgICA8L2NhcnQtZHJhd2VyLWl0ZW1zPgogICAgICAgIDxkaXYgY2xhc3M9ImRyYXdlcl9fZm9vdGVyIj48IS0tIFN0YXJ0IGJsb2NrcyAtLT4KICAgICAgICAgIDwhLS0gU3VidG90YWxzIC0tPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtZHJhd2VyX19mb290ZXIiPgogICAgICAgICAgICA8ZGl2PjwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG90YWxzIiByb2xlPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idG90YWxzX190b3RhbCI+RXN0aW1hdGVkIHRvdGFsPC9oMj4KICAgICAgICAgICAgICA8cCBjbGFzcz0idG90YWxzX190b3RhbC12YWx1ZSI+UnAgMS4wMDAsMDAgSURSPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz0idGF4LW5vdGUgY2FwdGlvbi1sYXJnZSBydGUiPlRheGVzLCBkaXNjb3VudHMgYW5kIHNoaXBwaW5nIGNhbGN1bGF0ZWQgYXQgY2hlY2tvdXQKICAgICAgICAgICAgPC9zbWFsbD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDwhLS0gQ1RBcyAtLT4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0X19jdGFzIj4KICAgICAgICAgICAgPG5vc2NyaXB0PgogICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iY2FydF9fdXBkYXRlLWJ1dHRvbiBidXR0b24gYnV0dG9uLS1zZWNvbmRhcnkiIGZvcm09IkNhcnREcmF3ZXItRm9ybSI+CiAgICAgICAgICAgICAgICBVcGRhdGUKICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9ub3NjcmlwdD4KCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0iQ2FydERyYXdlci1DaGVja291dCIgY2xhc3M9ImNhcnRfX2NoZWNrb3V0LWJ1dHRvbiBidXR0b24iIG5hbWU9ImNoZWNrb3V0IgogICAgICAgICAgICAgIGZvcm09IkNhcnREcmF3ZXItRm9ybSIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgQ2hlY2sgb3V0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9jYXJ0LWRyYXdlcj4KCiAgPHNjcmlwdD4KICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIGZ1bmN0aW9uIGlzSUUoKSB7CiAgICAgICAgY29uc3QgdWEgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDsKICAgICAgICBjb25zdCBtc2llID0gdWEuaW5kZXhPZignTVNJRSAnKTsKICAgICAgICBjb25zdCB0cmlkZW50ID0gdWEuaW5kZXhPZignVHJpZGVudC8nKTsKCiAgICAgICAgcmV0dXJuIG1zaWUgPiAwIHx8IHRyaWRlbnQgPiAwOwogICAgICB9CgogICAgICBpZiAoIWlzSUUoKSkgcmV0dXJuOwogICAgICBjb25zdCBjYXJ0U3VibWl0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICBjYXJ0U3VibWl0SW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2NoZWNrb3V0Jyk7CiAgICAgIGNhcnRTdWJtaXRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjYXJ0JykuYXBwZW5kQ2hpbGQoY2FydFN1Ym1pdElucHV0KTsKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NoZWNrb3V0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2FydCcpLnN1Ym1pdCgpOwogICAgICB9KTsKICAgIH0pOwogIDwvc2NyaXB0PgogIDwhLS0gQkVHSU4gc2VjdGlvbnM6IGhlYWRlci1ncm91cCAtLT4KICA8ZGl2IGlkPSJzaG9waWZ5LXNlY3Rpb24tc2VjdGlvbnMtLTE2MjYyMTIyOTYzMDk5X19oZWFkZXIiCiAgICBjbGFzcz0ic2hvcGlmeS1zZWN0aW9uIHNob3BpZnktc2VjdGlvbi1ncm91cC1oZWFkZXItZ3JvdXAgc2VjdGlvbi1oZWFkZXIiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxpc3QtbWVudS5jc3M/dj0xNTE5Njg1MTYxMTk2Nzg3Mjg5OTE3MDI3Mjk1NzgiCiAgICAgIG1lZGlhPSJwcmludCIgb25sb2FkPSJ0aGlzLm1lZGlhPSdhbGwnIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1zZWFyY2guY3NzP3Y9MTY1MTY0NzEwOTkwNzY1NDMyODUxNzAyNzI5NTc5IgogICAgICBtZWRpYT0icHJpbnQiIG9ubG9hZD0idGhpcy5tZWRpYT0nYWxsJyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbWVudS1kcmF3ZXIuY3NzP3Y9MzEzMzE0MjkwNzkwMjI2MzAyNzE3MDI3Mjk1NzkiCiAgICAgIG1lZGlhPSJwcmludCIgb25sb2FkPSJ0aGlzLm1lZGlhPSdhbGwnIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1jYXJ0LW5vdGlmaWNhdGlvbi5jc3M/dj01NDExNjM2MTg1Mzc5MjkzODIyMTcwMjcyOTU3OCIKICAgICAgbWVkaWE9InByaW50IiBvbmxvYWQ9InRoaXMubWVkaWE9J2FsbCciPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcnQtaXRlbXMuY3NzP3Y9MTQ1MzQwNzQ2MzcxMzg1MTUxNzcxNzAyNzI5NTc4IgogICAgICBtZWRpYT0icHJpbnQiIG9ubG9hZD0idGhpcy5tZWRpYT0nYWxsJyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtcHJpY2UuY3NzP3Y9NzAxNzI3NDUwMTczNjAxMzkxMDE3MDI3Mjk1NzkiCiAgICAgIG1lZGlhPSJwcmludCIgb25sb2FkPSJ0aGlzLm1lZGlhPSdhbGwnIj4KICAgIDxsaW5rCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtY2FydC1kcmF3ZXIuY3NzP3Y9MTEzNzYxMDAwNTg1MDcwMjc1MTE3MDI3Mjk1NzgiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8bGluayBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcnQuY3NzP3Y9MTgxMjkxMzM3OTY3MjM4NTcxODMxNzAyNzI5NTc4IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC10b3RhbHMuY3NzP3Y9MTU5MDY2NTIwMzM4NjY2MzE1MjE3MDI3Mjk1NzkiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8bGluayBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXByaWNlLmNzcz92PTcwMTcyNzQ1MDE3MzYwMTM5MTAxNzAyNzI5NTc5IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1kaXNjb3VudHMuY3NzP3Y9MTUyNzYwNDgyNDQzMzA3NDg5MjcxNzAyNzI5NTc4IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPG5vc2NyaXB0PgogICAgICA8bGluawogICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbGlzdC1tZW51LmNzcz92PTE1MTk2ODUxNjExOTY3ODcyODk5MTcwMjcyOTU3OCIKICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPC9ub3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgPGxpbmsKICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXNlYXJjaC5jc3M/dj0xNjUxNjQ3MTA5OTA3NjU0MzI4NTE3MDI3Mjk1NzkiCiAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8bm9zY3JpcHQ+CiAgICAgIDxsaW5rCiAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1tZW51LWRyYXdlci5jc3M/dj0zMTMzMTQyOTA3OTAyMjYzMDI3MTcwMjcyOTU3OSIKICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPC9ub3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgPGxpbmsKICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWNhcnQtbm90aWZpY2F0aW9uLmNzcz92PTU0MTE2MzYxODUzNzkyOTM4MjIxNzAyNzI5NTc4IgogICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8L25vc2NyaXB0PgogICAgPG5vc2NyaXB0PgogICAgICA8bGluawogICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtY2FydC1pdGVtcy5jc3M/dj0xNDUzNDA3NDYzNzEzODUxNTE3NzE3MDI3Mjk1NzgiCiAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDwvbm9zY3JpcHQ+CgogICAgPHN0eWxlPgogICAgICBoZWFkZXItZHJhd2VyIHsKICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4ycmVtOwogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTBweCkgewogICAgICAgIGhlYWRlci1kcmF3ZXIgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZW51LWRyYXdlci1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC5saXN0LW1lbnUgewogICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5saXN0LW1lbnUtLWlubGluZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICBzdW1tYXJ5Lmxpc3QtbWVudV9faXRlbSB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMi43cmVtOwogICAgICB9CgogICAgICAubGlzdC1tZW51X19pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMSArIDAuMyAvIHZhcigtLWZvbnQtYm9keS1zY2FsZSkpOwogICAgICB9CgogICAgICAubGlzdC1tZW51X19pdGVtLS1saW5rIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07CiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoMSArIDAuOCAvIHZhcigtLWZvbnQtYm9keS1zY2FsZSkpOwogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkgewogICAgICAgIC5saXN0LW1lbnVfX2l0ZW0tLWxpbmsgewogICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsKICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHN0eWxlIGRhdGEtc2hvcGlmeT4KICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTBweCAzcmVtIDEwcHggM3JlbTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIC8qIFRoaXMgaXMgZm9yIGZpeGluZyBhIFNhZmFyaSB6LWluZGV4IGlzc3VlLiBQUiAjMjE0NyAqLwogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkwcHgpIHsKICAgICAgICAuaGVhZGVyIHsKICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9kZXRhaWxzLWRpc2Nsb3N1cmUuanM/dj0xMzY1MzExNjI2NjIzNTU1NjUwMTcwMjcyOTU3OSIKICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvZGV0YWlscy1tb2RhbC5qcz92PTI1NTgxNjczNTMyNzUxNTA4NDUxNzAyNzI5NTc5IgogICAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jYXJ0LW5vdGlmaWNhdGlvbi5qcz92PTEzMzUwODI5MzE2Nzg5Njk2NjQ5MTcwMjcyOTU3OCIKICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvc2VhcmNoLWZvcm0uanM/dj0xMzMxMjk1NDkyNTIxMjA2NjY1NDE3MDI3Mjk1ODAiCiAgICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NhcnQtZHJhd2VyLmpzP3Y9MTA1MDc3MDg3OTE0Njg2Mzk4NTExNzAyNzI5NTc4IgogICAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iaGlkZGVuIj4KICAgICAgPHN5bWJvbCBpZD0iaWNvbi1zZWFyY2giIHZpZXdib3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICBkPSJNMTEuMDMgMTEuNjhBNS43ODQgNS43ODQgMCAxMTIuODUgMy41YTUuNzg0IDUuNzg0IDAgMDE4LjE4IDguMTh6bS4yNiAxLjEyYTYuNzggNi43OCAwIDExLjcyLS43bDUuNCA1LjRhLjUuNSAwIDExLS43MS43bC01LjQxLTUuNHoiCiAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgICAgIDwvc3ltYm9sPgoKICAgICAgPHN5bWJvbCBpZD0iaWNvbi1yZXNldCIgY2xhc3M9Imljb24gaWNvbi1jbG9zZSIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDE4IDE4IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPGNpcmNsZSByPSI4LjUiIGN5PSI5IiBjeD0iOSIgc3Ryb2tlLW9wYWNpdHk9IjAuMiIgLz4KICAgICAgICA8cGF0aCBkPSJNNi44Mjk3MiA2LjgyOTE1TDEuMTcxOTMgMS4xNzA5NyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSA1KSIgLz4KICAgICAgICA8cGF0aCBkPSJNMS4yMjg5NiA2Ljg4NTAyTDYuNzcyODggMS4xMTUyMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSA1KSIgLz4KICAgICAgPC9zeW1ib2w+CgogICAgICA8c3ltYm9sIGlkPSJpY29uLWNsb3NlIiBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTggMTciPgogICAgICAgIDxwYXRoCiAgICAgICAgICBkPSJNLjg2NSAxNS45NzhhLjUuNSAwIDAwLjcwNy43MDdsNy40MzMtNy40MzEgNy41NzkgNy4yODJhLjUwMS41MDEgMCAwMC44NDYtLjM3LjUuNSAwIDAwLS4xNTMtLjM1MUw5LjcxMiA4LjU0Nmw3LjQxNy03LjQxNmEuNS41IDAgMTAtLjcwNy0uNzA4TDguOTkxIDcuODUzIDEuNDEzLjU3M2EuNS41IDAgMTAtLjY5My43Mmw3LjU2MyA3LjI2OC03LjQxOCA3LjQxN3oiCiAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICA8L3N5bWJvbD4KICAgIDwvc3ZnPgogICAgPGRpdiBjbGFzcz0iaGVhZGVyLXdyYXBwZXIgY29sb3ItaW52ZXJzZSBncmFkaWVudCI+CiAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciBoZWFkZXItLXRvcC1jZW50ZXIgaGVhZGVyLS1tb2JpbGUtY2VudGVyIHBhZ2Utd2lkdGgiPgoKICAgICAgICA8ZGV0YWlscy1tb2RhbCBjbGFzcz0iaGVhZGVyX19zZWFyY2giPgogICAgICAgICAgPGRldGFpbHM+CiAgICAgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJoZWFkZXJfX2ljb24gaGVhZGVyX19pY29uLS1zZWFyY2ggaGVhZGVyX19pY29uLS1zdW1tYXJ5IGxpbmsgZm9jdXMtaW5zZXQgbW9kYWxfX3RvZ2dsZSIKICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciIGFyaWEtbGFiZWw9IlNlYXJjaCI+CiAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJtb2RhbF9fdG9nZ2xlLW9wZW4gaWNvbiBpY29uLXNlYXJjaCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Im1vZGFsX190b2dnbGUtY2xvc2UgaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj0iI2ljb24tY2xvc2UiPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1tb2RhbCBtb2RhbF9fY29udGVudCBncmFkaWVudCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsPSJTZWFyY2giPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1tb2RhbF9fY29udGVudCBzZWFyY2gtbW9kYWxfX2NvbnRlbnQtYm90dG9tIiB0YWJpbmRleD0iLTEiPjxwcmVkaWN0aXZlLXNlYXJjaAogICAgICAgICAgICAgICAgICBjbGFzcz0ic2VhcmNoLW1vZGFsX19mb3JtIiBkYXRhLWxvYWRpbmctdGV4dD0iTG9hZGluZy4uLiI+CiAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iL3NlYXJjaCIgbWV0aG9kPSJnZXQiIHJvbGU9InNlYXJjaCIgY2xhc3M9InNlYXJjaCBzZWFyY2gtbW9kYWxfX2Zvcm0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0ic2VhcmNoX19pbnB1dCBmaWVsZF9faW5wdXQiIGlkPSJTZWFyY2gtSW4tTW9kYWwtMSIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxIiB2YWx1ZT0iIgogICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIiByb2xlPSJjb21ib2JveCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtb3ducz0icHJlZGljdGl2ZS1zZWFyY2gtcmVzdWx0cyIKICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz0icHJlZGljdGl2ZS1zZWFyY2gtcmVzdWx0cyIgYXJpYS1oYXNwb3B1cD0ibGlzdGJveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZpZWxkX19sYWJlbCIgZm9yPSJTZWFyY2gtSW4tTW9kYWwtMSI+U2VhcmNoPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdGlvbnNbcHJlZml4XSIgdmFsdWU9Imxhc3QiPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJyZXNldCIgY2xhc3M9InJlc2V0X19idXR0b24gZmllbGRfX2J1dHRvbiBoaWRkZW4iIGFyaWEtbGFiZWw9IkNsZWFyIHNlYXJjaCB0ZXJtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjaWNvbi1yZXNldCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJzZWFyY2hfX2J1dHRvbiBmaWVsZF9fYnV0dG9uIiBhcmlhLWxhYmVsPSJTZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIGljb24tc2VhcmNoIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPSIjaWNvbi1zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZWRpY3RpdmUtc2VhcmNoIHByZWRpY3RpdmUtc2VhcmNoLS1oZWFkZXIiIHRhYmluZGV4PSItMSIgZGF0YS1wcmVkaWN0aXZlLXNlYXJjaD4KCiAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDI3Mjk1NzkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJlZGljdGl2ZS1zZWFyY2hfX2xvYWRpbmctc3RhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0ic3Bpbm5lciIgdmlld0JveD0iMCAwIDY2IDY2IgogICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJlZGljdGl2ZS1zZWFyY2gtc3RhdHVzIHZpc3VhbGx5LWhpZGRlbiIgcm9sZT0ic3RhdHVzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8L3ByZWRpY3RpdmUtc2VhcmNoPjxidXR0b24gdHlwZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2VhcmNoLW1vZGFsX19jbG9zZS1idXR0b24gbW9kYWxfX2Nsb3NlLWJ1dHRvbiBsaW5rIGxpbmstLXRleHQgZm9jdXMtaW5zZXQiIGFyaWEtbGFiZWw9IkNsb3NlIj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPSIjaWNvbi1jbG9zZSI+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgIDwvZGV0YWlscy1tb2RhbD4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5lbGFwaHllLmNvbS8iIGNsYXNzPSJoZWFkZXJfX2hlYWRpbmctbGluayBsaW5rIGxpbmstLXRleHQgZm9jdXMtaW5zZXQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyX19oZWFkaW5nLWxvZ28td3JhcHBlciI+CgogICAgICAgICAgICA8aW1nIHNyYz0iLy9pbWcucGlrYWNodS5waWNzL3Nsb3R0Z2Fjb3IucG5nP3Y9MTcwMjcyOTcwMSZhbXA7d2lkdGg9NjAwIgogICAgICAgICAgICAgIGFsdD0iU2xvdCBHYWNvciAyMDI0IgogICAgICAgICAgICAgIHNyY3NldD0iLy9pbWcucGlrYWNodS5waWNzL3Nsb3R0Z2Fjb3IucG5nP3Y9MTcwMjcyOTcwMSZhbXA7d2lkdGg9MzAwIDMwMHcsIC8vaW1nLnBpa2FjaHUucGljcy9zbG90dGdhY29yLnBuZz92PTE3MDI3Mjk3MDEmYW1wO3dpZHRoPTQ1MCA0NTB3LCAvL2ltZy5waWthY2h1LnBpY3Mvc2xvdHRnYWNvci5wbmc/dj0xNzAyNzI5NzAxJmFtcDt3aWR0aD02MDAgNjAwdyIKICAgICAgICAgICAgICB3aWR0aD0iMzAwIiBoZWlnaHQ9IjU4LjMwMDc4MTI1IiBsb2FkaW5nPSJlYWdlciIgY2xhc3M9ImhlYWRlcl9faGVhZGluZy1sb2dvIG1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgc2l6ZXM9IihtYXgtd2lkdGg6IDYwMHB4KSA1MHZ3LCAzMDBweCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2E+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyX19pY29ucyBoZWFkZXJfX2ljb25zLS1sb2NhbGl6YXRpb24gaGVhZGVyLWxvY2FsaXphdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNrdG9wLWxvY2FsaXphdGlvbi13cmFwcGVyIj4KICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICA8ZGV0YWlscy1tb2RhbCBjbGFzcz0iaGVhZGVyX19zZWFyY2giPgogICAgICAgICAgICA8ZGV0YWlscz4KICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0iaGVhZGVyX19pY29uIGhlYWRlcl9faWNvbi0tc2VhcmNoIGhlYWRlcl9faWNvbi0tc3VtbWFyeSBsaW5rIGZvY3VzLWluc2V0IG1vZGFsX190b2dnbGUiCiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciIGFyaWEtbGFiZWw9IlNlYXJjaCI+CiAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibW9kYWxfX3RvZ2dsZS1vcGVuIGljb24gaWNvbi1zZWFyY2giIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJtb2RhbF9fdG9nZ2xlLWNsb3NlIGljb24gaWNvbi1jbG9zZSIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj0iI2ljb24tY2xvc2UiPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLW1vZGFsIG1vZGFsX19jb250ZW50IGdyYWRpZW50IiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9InRydWUiIGFyaWEtbGFiZWw9IlNlYXJjaCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1vdmVybGF5Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1tb2RhbF9fY29udGVudCBzZWFyY2gtbW9kYWxfX2NvbnRlbnQtYm90dG9tIiB0YWJpbmRleD0iLTEiPjxwcmVkaWN0aXZlLXNlYXJjaAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzZWFyY2gtbW9kYWxfX2Zvcm0iIGRhdGEtbG9hZGluZy10ZXh0PSJMb2FkaW5nLi4uIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249Ii9zZWFyY2giIG1ldGhvZD0iZ2V0IiByb2xlPSJzZWFyY2giIGNsYXNzPSJzZWFyY2ggc2VhcmNoLW1vZGFsX19mb3JtIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJzZWFyY2hfX2lucHV0IGZpZWxkX19pbnB1dCIgaWQ9IlNlYXJjaC1Jbi1Nb2RhbCIgdHlwZT0ic2VhcmNoIiBuYW1lPSJxIiB2YWx1ZT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2giIHJvbGU9ImNvbWJvYm94IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLW93bnM9InByZWRpY3RpdmUtc2VhcmNoLXJlc3VsdHMiIGFyaWEtY29udHJvbHM9InByZWRpY3RpdmUtc2VhcmNoLXJlc3VsdHMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0ibGlzdGJveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jb21wbGV0ZT0ib2ZmIgogICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmaWVsZF9fbGFiZWwiIGZvcj0iU2VhcmNoLUluLU1vZGFsIj5TZWFyY2g8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHRpb25zW3ByZWZpeF0iIHZhbHVlPSJsYXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJyZXNldCIgY2xhc3M9InJlc2V0X19idXR0b24gZmllbGRfX2J1dHRvbiBoaWRkZW4iIGFyaWEtbGFiZWw9IkNsZWFyIHNlYXJjaCB0ZXJtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIGljb24tY2xvc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2ljb24tcmVzZXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2VhcmNoX19idXR0b24gZmllbGRfX2J1dHRvbiIgYXJpYS1sYWJlbD0iU2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIGljb24tc2VhcmNoIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmVkaWN0aXZlLXNlYXJjaCBwcmVkaWN0aXZlLXNlYXJjaC0taGVhZGVyIiB0YWJpbmRleD0iLTEiIGRhdGEtcHJlZGljdGl2ZS1zZWFyY2g+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMjcyOTU3OSIKICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJlZGljdGl2ZS1zZWFyY2hfX2xvYWRpbmctc3RhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJzcGlubmVyIiB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmVkaWN0aXZlLXNlYXJjaC1zdGF0dXMgdmlzdWFsbHktaGlkZGVuIiByb2xlPSJzdGF0dXMiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICA8L3ByZWRpY3RpdmUtc2VhcmNoPjxidXR0b24gdHlwZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzZWFyY2gtbW9kYWxfX2Nsb3NlLWJ1dHRvbiBtb2RhbF9fY2xvc2UtYnV0dG9uIGxpbmsgbGluay0tdGV4dCBmb2N1cy1pbnNldCIKICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJDbG9zZSI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWNsb3NlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9IiNpY29uLWNsb3NlIj4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgPC9kZXRhaWxzLW1vZGFsPgoKICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLyIgY2xhc3M9ImhlYWRlcl9faWNvbiBoZWFkZXJfX2ljb24tLWNhcnQgbGluayBmb2N1cy1pbnNldCIgaWQ9ImNhcnQtaWNvbi1idWJibGUiPjxzdmcKICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLWNhcnQtZW1wdHkiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgICAgICAgICAgdmlld0JveD0iMCAwIDQwIDQwIiBmaWxsPSJub25lIj4KICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgZD0ibTE1Ljc1IDExLjhoLTMuMTZsLS43NyAxMS42YTUgNSAwIDAgMCA0Ljk5IDUuMzRoNy4zOGE1IDUgMCAwIDAgNC45OS01LjMzbC0uNzgtMTEuNjF6bTAgMWgtMi4yMmwtLjcxIDEwLjY3YTQgNCAwIDAgMCAzLjk5IDQuMjdoNy4zOGE0IDQgMCAwIDAgNC00LjI3bC0uNzItMTAuNjdoLTIuMjJ2LjYzYTQuNzUgNC43NSAwIDEgMSAtOS41IDB6bTguNSAwaC03LjV2LjYzYTMuNzUgMy43NSAwIDEgMCA3LjUgMHoiCiAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPkNhcnQ8L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgICA8L2hlYWRlcj4KICAgIDwvZGl2PgoKICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgewogICAgIkBjb250ZXh0IjogImh0dHA6Ly9zY2hlbWEub3JnIiwKICAgICJAdHlwZSI6ICJPcmdhbml6YXRpb24iLAogICAgIm5hbWUiOiAiU2xvdCBHYWNvciAyMDI0IiwKICAgIAogICAgICAibG9nbyI6ICJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL2Nkblwvc2hvcFwvZmlsZXNcL1NMT1RHQUNPUlIucG5nP3Y9MTcwMjcyOTcwMVx1MDAyNndpZHRoPTUwMCIsCiAgICAKICAgICJzYW1lQXMiOiBbCiAgICAgICIiLAogICAgICAiIiwKICAgICAgIiIsCiAgICAgICIiLAogICAgICAiIiwKICAgICAgIiIsCiAgICAgICIiLAogICAgICAiIiwKICAgICAgIiIKICAgIF0sCiAgICAidXJsIjogImh0dHBzOlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbSIKICB9Cjwvc2NyaXB0PgogIDwvZGl2PgogIDwhLS0gRU5EIHNlY3Rpb25zOiBoZWFkZXItZ3JvdXAgLS0+CgogIDxtYWluIGlkPSJNYWluQ29udGVudCIgY2xhc3M9ImNvbnRlbnQtZm9yLWxheW91dCBmb2N1cy1ub25lIiByb2xlPSJtYWluIiB0YWJpbmRleD0iLTEiPgogICAgPHNlY3Rpb24gaWQ9InNob3BpZnktc2VjdGlvbi10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIGNsYXNzPSJzaG9waWZ5LXNlY3Rpb24gc2VjdGlvbiI+CiAgICAgIDxzZWN0aW9uIGlkPSJNYWluUHJvZHVjdC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iCiAgICAgICAgY2xhc3M9InNlY3Rpb24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluLXBhZGRpbmcgZ3JhZGllbnQgY29sb3ItYmFja2dyb3VuZC0xIgogICAgICAgIGRhdGEtc2VjdGlvbj0idGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICA8bGluawogICAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3NlY3Rpb24tbWFpbi1wcm9kdWN0LmNzcz92PTE0MTA1OTQ2Nzk3MTQwMTY3NjYwMTcwMjcyOTU4MCIKICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICAgICAgPGxpbmsKICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtYWNjb3JkaW9uLmNzcz92PTE4MDk2NDIwNDMxODg3NDg2MzgxMTcwMjcyOTU3OCIKICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICAgICAgPGxpbmsKICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtcHJpY2UuY3NzP3Y9NzAxNzI3NDUwMTczNjAxMzkxMDE3MDI3Mjk1NzkiCiAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgICAgIDxsaW5rCiAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXNsaWRlci5jc3M/dj0xNDI1MDMxMzU0OTYyMjk1ODk2ODE3MDI3Mjk1NzkiCiAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgICAgIDxsaW5rCiAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LXJhdGluZy5jc3M/dj0xNTc3NzE4NTQ1OTIxMzcxMzc4NDE3MDI3Mjk1NzkiCiAgICAgICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgICAgIDxsaW5rCiAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWRlZmVycmVkLW1lZGlhLmNzcz92PTE0MDk2MDgyNDYyMjAzMjk3NDcxNzAyNzI5NTc4IgogICAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgICAgICA8c3R5bGUgZGF0YS1zaG9waWZ5PgogICAgICAgICAgLnNlY3Rpb24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluLXBhZGRpbmcgewogICAgICAgICAgICBwYWRkaW5nLXRvcDogNDVweDsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDQ1cHg7CiAgICAgICAgICB9CgogICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAgICAgLnNlY3Rpb24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluLXBhZGRpbmcgewogICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA2MHB4OwogICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3Byb2R1Y3QtaW5mby5qcz92PTgxODczNTIzMDIwNTA4ODE1MjAxNzAyNzI5NTgwIgogICAgICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3Byb2R1Y3QtZm9ybS5qcz92PTEzMzA4MTc1ODcwODM3NzY3OTE4MTcwMjcyOTU4MCIKICAgICAgICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Utd2lkdGgiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0icHJvZHVjdCBwcm9kdWN0LS1zbWFsbCBwcm9kdWN0LS1sZWZ0IHByb2R1Y3QtLXRodW1ibmFpbF9zbGlkZXIgcHJvZHVjdC0tbW9iaWxlLWhpZGUgZ3JpZCBncmlkLS0xLWNvbCBncmlkLS0yLWNvbC10YWJsZXQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkX19pdGVtIHByb2R1Y3RfX21lZGlhLXdyYXBwZXIiPgoKICAgICAgICAgICAgICA8bWVkaWEtZ2FsbGVyeSBpZD0iTWVkaWFHYWxsZXJ5LXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIgcm9sZT0icmVnaW9uIgogICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3RfX2NvbHVtbi1zdGlja3kiIGFyaWEtbGFiZWw9IkdhbGxlcnkgVmlld2VyIiBkYXRhLWRlc2t0b3AtbGF5b3V0PSJ0aHVtYm5haWxfc2xpZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkdhbGxlcnlTdGF0dXMtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIiByb2xlPSJzdGF0dXMiPjwvZGl2PgogICAgICAgICAgICAgICAgPHNsaWRlci1jb21wb25lbnQgaWQ9IkdhbGxlcnlWaWV3ZXItdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0ic2xpZGVyLW1vYmlsZS1ndXR0ZXIiPjxhCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InNraXAtdG8tY29udGVudC1saW5rIGJ1dHRvbiB2aXN1YWxseS1oaWRkZW4gcXVpY2stYWRkLWhpZGRlbiIKICAgICAgICAgICAgICAgICAgICBocmVmPSIjUHJvZHVjdEluZm8tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICBTa2lwIHRvIHByb2R1Y3QgaW5mb3JtYXRpb24KICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICA8dWwgaWQ9IlNsaWRlci1HYWxsZXJ5LXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdF9fbWVkaWEtbGlzdCBjb250YWlucy1tZWRpYSBncmlkIGdyaWQtLXBlZWsgbGlzdC11bnN0eWxlZCBzbGlkZXIgc2xpZGVyLS1tb2JpbGUiCiAgICAgICAgICAgICAgICAgICAgcm9sZT0ibGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGlkPSJTbGlkZS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4tMjg1OTA5NDA0MjIyOTkiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdF9fbWVkaWEtaXRlbSBncmlkX19pdGVtIHNsaWRlcl9fc2xpZGUgaXMtYWN0aXZlIHNjcm9sbC10cmlnZ2VyIGFuaW1hdGUtLWZhZGUtaW4iCiAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1lZGlhLWlkPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4tMjg1OTA5NDA0MjIyOTkiPgoKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtbWVkaWEtY29udGFpbmVyIG1lZGlhLXR5cGUtaW1hZ2UgbWVkaWEtZml0LWNvbnRhaW4gZ2xvYmFsLW1lZGlhLXNldHRpbmdzIGdyYWRpZW50IGNvbnN0cmFpbi1oZWlnaHQiCiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvOiAxLjA7IC0tcHJldmlldy1yYXRpbzogMS4wOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxub3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0X19tZWRpYSBtZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTk0NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3NldD0iLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MjQ2IDI0NncsIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTQ5MyA0OTN3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD02MDAgNjAwdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9NzEzIDcxM3csIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTgyMyA4MjN3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD05OTAgOTkwdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTEwMCAxMTAwdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTIwNiAxMjA2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTM0NiAxMzQ2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTQyNiAxNDI2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTY0NiAxNjQ2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9MTk0NiAxOTQ2dyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjE5NDYiIGhlaWdodD0iMTk0NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDEyMDBweCkgNDk1cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKDQ1LjB2dyAtIDEwcmVtKSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTEuNXJlbSkgLyAyKSwgY2FsYygxMDB2dyAvIDEgLSA0cmVtKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbm9zY3JpcHQ+CgogICAgICAgICAgICAgICAgICAgICAgICA8bW9kYWwtb3BlbmVyIGNsYXNzPSJwcm9kdWN0X19tb2RhbC1vcGVuZXIgcHJvZHVjdF9fbW9kYWwtb3BlbmVyLS1pbWFnZSBuby1qcy1oaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbD0iI1Byb2R1Y3RNb2RhbC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0X19tZWRpYS1pY29uIG1vdGlvbi1yZWR1Y2UgcXVpY2stYWRkLWhpZGRlbiBwcm9kdWN0X19tZWRpYS1pY29uLS1saWdodGJveCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLXBsdXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDE5IDE5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNNC42NjcyNCA3LjkzOTc4QzQuNjY2NTUgNy42NjM2NCA0Ljg4OTg0IDcuNDM5MjIgNS4xNjU5OCA3LjQzODUzTDEwLjY5OTYgNy40MjQ2NEMxMC45NzU4IDcuNDIzOTUgMTEuMjAwMiA3LjY0NzI0IDExLjIwMDkgNy45MjMzOUMxMS4yMDE2IDguMTk5NTMgMTAuOTc4MyA4LjQyMzk1IDEwLjcwMjEgOC40MjQ2NEw1LjE2ODQ5IDguNDM4NTJDNC44OTIzNSA4LjQzOTIyIDQuNjY3OTMgOC4yMTU5MiA0LjY2NzI0IDcuOTM5NzhaIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTcuOTI1NzYgNC42NjQ2M0M4LjIwMTkgNC42NjM5NCA4LjQyNjMyIDQuODg3MjMgOC40MjcwMiA1LjE2MzM3TDguNDQwOSAxMC42OTdDOC40NDE1OSAxMC45NzMyIDguMjE4MyAxMS4xOTc2IDcuOTQyMTUgMTEuMTk4M0M3LjY2NjAxIDExLjE5OSA3LjQ0MTU5IDEwLjk3NTcgNy40NDA5IDEwLjY5OTVMNy40MjcwMiA1LjE2NTg4QzcuNDI2MzMgNC44ODk3NCA3LjY0OTYyIDQuNjY1MzIgNy45MjU3NiA0LjY2NDYzWiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0xMi44MzI0IDMuMDMwMTFDMTAuMTI1NSAwLjMyMzI5NiA1LjczNjkzIDAuMzIzMjk2IDMuMDMwMTEgMy4wMzAxMUMwLjMyMzI5NiA1LjczNjkzIDAuMzIzMjk2IDEwLjEyNTYgMy4wMzAxMSAxMi44MzI0QzUuNzM2OTMgMTUuNTM5MiAxMC4xMjU1IDE1LjUzOTIgMTIuODMyNCAxMi44MzI0QzE1LjUzOTIgMTAuMTI1NiAxNS41MzkyIDUuNzM2OTMgMTIuODMyNCAzLjAzMDExWk0yLjMyMzAxIDIuMzIzMDFDNS40MjAzNSAtMC43NzQzMzYgMTAuNDQyMSAtMC43NzQzMzYgMTMuNTM5NSAyLjMyMzAxQzE2LjYxMDEgNS4zOTM2MSAxNi42MzY2IDEwLjM1NTYgMTMuNjE5IDEzLjQ1ODhMMTguMjQ3MyAxOC4wODcxQzE4LjQ0MjYgMTguMjgyNCAxOC40NDI2IDE4LjU5OSAxOC4yNDczIDE4Ljc5NDNDMTguMDUyMSAxOC45ODk1IDE3LjczNTUgMTguOTg5NSAxNy41NDAyIDE4Ljc5NDNMMTIuODc3OCAxNC4xMzE4QzkuNzYzODMgMTYuNjIyMyA1LjIwODM5IDE2LjQyNDkgMi4zMjMwMSAxMy41Mzk1Qy0wLjc3NDMzNSAxMC40NDIxIC0wLjc3NDMzNSA1LjQyMDM1IDIuMzIzMDEgMi4zMjMwMVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAyNzI5NTc5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9InNwaW5uZXIiIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fbWVkaWEgbWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xOTQ2IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0yNDYgMjQ2dywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9NDkzIDQ5M3csIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTYwMCA2MDB3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD03MTMgNzEzdywgLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZhbXA7d2lkdGg9ODIzIDgyM3csIC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQmYW1wO3dpZHRoPTk5MCA5OTB3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xMTAwIDExMDB3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xMjA2IDEyMDZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xMzQ2IDEzNDZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xNDI2IDE0MjZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xNjQ2IDE2NDZ3LCAvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JmFtcDt3aWR0aD0xOTQ2IDE5NDZ3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTk0NiIgaGVpZ2h0PSIxOTQ2IiBjbGFzcz0iaW1hZ2UtbWFnbmlmeS1saWdodGJveCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDEyMDBweCkgNDk1cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKDQ1LjB2dyAtIDEwcmVtKSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTEuNXJlbSkgLyAyKSwgY2FsYygxMDB2dyAvIDEgLSA0cmVtKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHJvZHVjdF9fbWVkaWEtdG9nZ2xlIHF1aWNrLWFkZC1oaWRkZW4gcHJvZHVjdF9fbWVkaWEtem9vbS1saWdodGJveCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIiBkYXRhLW1lZGlhLWlkPSIyODU5MDk0MDQyMjI5OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlbiBtZWRpYSAxIGluIG1vZGFsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW9kYWwtb3BlbmVyPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsaWRlci1idXR0b25zIG5vLWpzLWhpZGRlbiBxdWljay1hZGQtaGlkZGVuIHNtYWxsLWhpZGUiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2xpZGVyLWJ1dHRvbiBzbGlkZXItYnV0dG9uLS1wcmV2IiBuYW1lPSJwcmV2aW91cyIKICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IlNsaWRlIGxlZnQiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1jYXJldCIgdmlld0JveD0iMCAwIDEwIDYiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNOS4zNTQuNjQ2YS41LjUgMCAwMC0uNzA4IDBMNSA0LjI5MyAxLjM1NC42NDZhLjUuNSAwIDAwLS43MDguNzA4bDQgNGEuNS41IDAgMDAuNzA4IDBsNC00YS41LjUgMCAwMDAtLjcwOHoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZXItY291bnRlciBjYXB0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbGlkZXItY291bnRlci0tY3VycmVudCI+MTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4gLyA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5vZjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbGlkZXItY291bnRlci0tdG90YWwiPjE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzbGlkZXItYnV0dG9uIHNsaWRlci1idXR0b24tLW5leHQiIG5hbWU9Im5leHQiCiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJTbGlkZSByaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWNhcmV0IiB2aWV3Qm94PSIwIDAgMTAgNiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik05LjM1NC42NDZhLjUuNSAwIDAwLS43MDggMEw1IDQuMjkzIDEuMzU0LjY0NmEuNS41IDAgMDAtLjcwOC43MDhsNCA0YS41LjUgMCAwMC43MDggMGw0LTRhLjUuNSAwIDAwMC0uNzA4eiIKICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvc2xpZGVyLWNvbXBvbmVudD4KICAgICAgICAgICAgICA8L21lZGlhLWdhbGxlcnk+CgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9faW5mby13cmFwcGVyIGdyaWRfX2l0ZW0gc2Nyb2xsLXRyaWdnZXIgYW5pbWF0ZS0tc2xpZGUtaW4iPgogICAgICAgICAgICAgIDxwcm9kdWN0LWluZm8gaWQ9IlByb2R1Y3RJbmZvLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIKICAgICAgICAgICAgICAgIGRhdGEtc2VjdGlvbj0idGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgZGF0YS11cmw9Ii9wcm9kdWN0cy9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIgogICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3RfX2luZm8tY29udGFpbmVyIHByb2R1Y3RfX2NvbHVtbi1zdGlja3kiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InByb2R1Y3RfX3RleHQgaW5saW5lLXJpY2h0ZXh0Ij5MSU5LIFNMT1QgTUFYV0lOPC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fdGl0bGUiPgogICAgICAgICAgICAgICAgICA8aDE+U2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbjwvaDE+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiBjbGFzcz0icHJvZHVjdF9fdGl0bGUiPgogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iaDEiPgogICAgICAgICAgICAgICAgICAgICAgU2l0dXMgU2xvdCBHYWNvciAyMDI0IFRlcnBlcmNheWEg8J+kqiBDb2JhaW4gRGFmdGFyIERhcGF0IFNsb3QgT25saW5lIE1heHdpbgogICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm8tanMtaGlkZGVuIiBpZD0icHJpY2UtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiByb2xlPSJzdGF0dXMiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSIKICAgIHByaWNlIHByaWNlLS1sYXJnZSBwcmljZS0tc29sZC1vdXQgcHJpY2UtLXNob3ctYmFkZ2UiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlJlZ3VsYXIKICAgICAgICAgICAgICAgICAgICAgICAgICBwcmljZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgUnAgMS4wMDAsMDAKICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlJlZ3VsYXIgcHJpY2U8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvcz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlNhbGUgcHJpY2U8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgUnAgMS4wMDAsMDAKICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5Vbml0IHByaWNlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48c3BhbiBjbGFzcz0iYmFkZ2UgcHJpY2VfX2JhZGdlLXNhbGUgY29sb3ItYWNjZW50LTEiPgogICAgICAgICAgICAgICAgICAgICAgU2FsZQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlIHByaWNlX19iYWRnZS1zb2xkLW91dCBjb2xvci1iYWNrZ3JvdW5kLTEiPgogICAgICAgICAgICAgICAgICAgICAgU2xvdCBNYXh3aW4gQnJlCiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fdGF4IGNhcHRpb24gcnRlIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJwcm9kdWN0LWZvcm0taW5zdGFsbG1lbnQtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgICAgIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9Imluc3RhbGxtZW50IGNhcHRpb24tbGFyZ2UiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0i4pyTIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0iNDM5MTAxMTkzMjU4NTEiPgoKICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iNzgxNDEzMzYxMjY5OSIgLz4KICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8bm9zY3JpcHQgY2xhc3M9InByb2R1Y3QtZm9ybV9fbm9zY3JpcHQtd3JhcHBlci10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWZvcm1fX2lucHV0IGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtX19sYWJlbCIgZm9yPSJWYXJpYW50cy10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPlByb2R1Y3QgdmFyaWFudHM8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImlkIiBpZD0iVmFyaWFudHMtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0ic2VsZWN0X19zZWxlY3QiCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09InByb2R1Y3QtZm9ybS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgZGlzYWJsZWQgdmFsdWU9IjQzOTEwMTE5MzI1ODUxIj5EZWZhdWx0IFRpdGxlIC0gUnAgMS4wMDAsMDAgLSBTb2xkIG91dAogICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1jYXJldCIgdmlld0JveD0iMCAwIDEwIDYiPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNOS4zNTQuNjQ2YS41LjUgMCAwMC0uNzA4IDBMNSA0LjI5MyAxLjM1NC42NDZhLjUuNSAwIDAwLS43MDguNzA4bDQgNGEuNS41IDAgMDAuNzA4IDBsNC00YS41LjUgMCAwMDAtLjcwOHoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L25vc2NyaXB0PgoKICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlF1YW50aXR5LUZvcm0tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC1mb3JtX19pbnB1dCBwcm9kdWN0LWZvcm1fX3F1YW50aXR5Ij4KCgoKICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJxdWFudGl0eV9fbGFiZWwgZm9ybV9fbGFiZWwiIGZvcj0iUXVhbnRpdHktdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICBRdWFudGl0eQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdWFudGl0eV9fcnVsZXMtY2FydCBuby1qcy1oaWRkZW4gaGlkZGVuIj4KCiAgICAgICAgICAgICAgICAgICAgICA8bGluawogICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDI3Mjk1NzkiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0ic3Bpbm5lciIgdmlld0JveD0iMCAwIDY2IDY2IgogICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+KDxzcGFuIGNsYXNzPSJxdWFudGl0eS1jYXJ0Ij4wPC9zcGFuPiBpbiBjYXJ0KTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlLXBlci1pdGVtX19jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgIDxxdWFudGl0eS1pbnB1dCBjbGFzcz0icXVhbnRpdHkiIGRhdGEtdXJsPSIvcHJvZHVjdHMvbGluay1zbG90LW1heHdpbi10ZXJwZXJjYXlhLXlhbmctbGFnaS1nYWNvciIKICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc2VjdGlvbj0idGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InF1YW50aXR5X19idXR0b24gbm8tanMtaGlkZGVuIiBuYW1lPSJtaW51cyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+RGVjcmVhc2UgcXVhbnRpdHkgZm9yIExJTksgTUFYV0lOOiBMaW5rIFNsb3QgTWF4d2luIFRlcnBlcmNheWEgWWFuZwogICAgICAgICAgICAgICAgICAgICAgICAgIExhZ2kgR2Fjb3IgTWFsYW0gSW5pIDIwMjQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLW1pbnVzIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNLjUgMUMuNS43LjcuNSAxIC41aDhhLjUuNSAwIDExMCAxSDFBLjUuNSAwIDAxLjUgMXoiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJxdWFudGl0eV9faW5wdXQiIHR5cGU9Im51bWJlciIgbmFtZT0icXVhbnRpdHkiCiAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJRdWFudGl0eS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIGRhdGEtY2FydC1xdWFudGl0eT0iMCIgZGF0YS1taW49IjEiIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgICAgICAgc3RlcD0iMSIgdmFsdWU9IjEiIGZvcm09InByb2R1Y3QtZm9ybS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIC8+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxdWFudGl0eV9fYnV0dG9uIG5vLWpzLWhpZGRlbiIgbmFtZT0icGx1cyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+SW5jcmVhc2UgcXVhbnRpdHkgZm9yIExJTksgTUFYV0lOOiBMaW5rIFNsb3QgTWF4d2luIFRlcnBlcmNheWEgWWFuZwogICAgICAgICAgICAgICAgICAgICAgICAgIExhZ2kgR2Fjb3IgTWFsYW0gSW5pIDIwMjQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLXBsdXMiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxMCAxMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMSA0LjUxYS41LjUgMCAwMDAgMWgzLjVsLjAxIDMuNWEuNS41IDAgMDAxLS4wMVY1LjVsMy41LS4wMWEuNS41IDAgMDAtLjAxLTFINS41TDUuNDkuOTlhLjUuNSAwIDAwLTEgLjAxdjMuNWwtMy41LjAxSDF6IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9xdWFudGl0eS1pbnB1dD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1YW50aXR5X19ydWxlcyBjYXB0aW9uIG5vLWpzLWhpZGRlbiIgaWQ9IlF1YW50aXR5LVJ1bGVzLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiI+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2Pjxwcm9kdWN0LWZvcm0gY2xhc3M9InByb2R1Y3QtZm9ybSIgZGF0YS1oaWRlLWVycm9ycz0iZmFsc2UiCiAgICAgICAgICAgICAgICAgICAgZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZm9ybV9fZXJyb3ItbWVzc2FnZS13cmFwcGVyIiByb2xlPSJhbGVydCIgaGlkZGVuPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1lcnJvciIgdmlld0JveD0iMCAwIDEzIDEzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi41IiBjeT0iNi41MDA0OSIgcj0iNS41IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iNS41IiBmaWxsPSIjRUIwMDFCIiBzdHJva2U9IiNFQjAwMUIiIHN0cm9rZS13aWR0aD0iMC43IiAvPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik01Ljg3NDEzIDMuNTI4MzJMNS45NzQzOSA3LjU3MjE2SDcuMDI3MTNMNy4xMjczOSAzLjUyODMySDUuODc0MTNaTTYuNTAwNzYgOS42NjA5MUM2Ljg4MDkxIDkuNjYwOTEgNy4xODE2OSA5LjM3MjY3IDcuMTgxNjkgOS4wMDUwNEM3LjE4MTY5IDguNjM3NDIgNi44ODA5MSA4LjM0OTE3IDYuNTAwNzYgOC4zNDkxN0M2LjEyMDYxIDguMzQ5MTcgNS44MTk4MiA4LjYzNzQyIDUuODE5ODIgOS4wMDUwNEM1LjgxOTgyIDkuMzcyNjcgNi4xMjA2MSA5LjY2MDkxIDYuNTAwNzYgOS42NjA5MVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0id2hpdGUiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTUuODc0MTMgMy4xNzgzMkg1LjUxNTM1TDUuNTI0MjQgMy41MzdMNS42MjQ1IDcuNTgwODNMNS42MzI5NiA3LjkyMjE2SDUuOTc0MzlINy4wMjcxM0g3LjM2ODU2TDcuMzc3MDIgNy41ODA4M0w3LjQ3NzI4IDMuNTM3TDcuNDg2MTcgMy4xNzgzMkg3LjEyNzM5SDUuODc0MTNaTTYuNTAwNzYgMTAuMDEwOUM3LjA2MTIxIDEwLjAxMDkgNy41MzE3IDkuNTc4NzIgNy41MzE3IDkuMDA1MDRDNy41MzE3IDguNDMxMzcgNy4wNjEyMSA3Ljk5OTE4IDYuNTAwNzYgNy45OTkxOEM1Ljk0MDMxIDcuOTk5MTggNS40Njk4MiA4LjQzMTM3IDUuNDY5ODIgOS4wMDUwNEM1LjQ2OTgyIDkuNTc4NzIgNS45NDAzMSAxMC4wMTA5IDYuNTAwNzYgMTAuMDEwOVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0id2hpdGUiIHN0cm9rZT0iI0VCMDAxQiIgc3Ryb2tlLXdpZHRoPSIwLjciPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1mb3JtX19lcnJvci1tZXNzYWdlIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InByb2R1Y3QtZm9ybS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iCiAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIgogICAgICAgICAgICAgICAgICAgICAgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSI0MzkxMDExOTMyNTg1MSIKICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWZvcm1fX2J1dHRvbnMiPjxidXR0b24gaWQ9IlByb2R1Y3RTdWJtaXRCdXR0b24tdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIgogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LWZvcm1fX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tc2Vjb25kYXJ5IiBkaXNhYmxlZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TTE9UIEdBQ09SIE1BWFdJTgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMjcyOTU3OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJzcGlubmVyIiB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBkYXRhLXNob3BpZnk9InBheW1lbnQtYnV0dG9uIiBjbGFzcz0ic2hvcGlmeS1wYXltZW50LWJ1dHRvbiI+PGR5bmFtaWMtY2hlY2tvdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldC1jb25maWdzPSJbXSIgYWNjZXNzLXRva2VuPSJmYWM4MmQxNjg0M2ZmYzNmNTMxOTg0ZDE1YTU0ODc2ZCIgYnV5ZXItY291bnRyeT0iSUQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXllci1sb2NhbGU9ImVuIiBidXllci1jdXJyZW5jeT0iSURSIiBzaG9wLWlkPSI2MjEwODM2OTA1MSIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9waWZ5LXBheW1lbnQtYnV0dG9uX19idXR0b24gc2hvcGlmeS1wYXltZW50LWJ1dHRvbl9fc2tlbGV0b24iIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQgYXJpYS1oaWRkZW49InRydWUiPiZuYnNwOzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHluYW1pYy1jaGVja291dD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI3ODE0MTMzNjEyNjk5IiAvPgogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgPC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgIDxsaW5rCiAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1waWNrdXAtYXZhaWxhYmlsaXR5LmNzcz92PTM0NjQ1MjIyOTU5ODY0NzgwOTYxNzAyNzI5NTc5IgogICAgICAgICAgICAgICAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICAgICAgICAgICAgICAgIDxwaWNrdXAtYXZhaWxhYmlsaXR5IGNsYXNzPSJwcm9kdWN0X19waWNrdXAtYXZhaWxhYmlsaXRpZXMgbm8tanMtaGlkZGVuIHF1aWNrLWFkZC1oaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1yb290LXVybD0iLyIgZGF0YS12YXJpYW50LWlkPSI0MzkxMDExOTMyNTg1MSIgZGF0YS1oYXMtb25seS1kZWZhdWx0LXZhcmlhbnQ9InRydWUiCiAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXBhZ2UtY29sb3Itc2NoZW1lPSJncmFkaWVudCBjb2xvci1iYWNrZ3JvdW5kLTEiPgogICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICAgIDxwaWNrdXAtYXZhaWxhYmlsaXR5LXByZXZpZXcgY2xhc3M9InBpY2t1cC1hdmFpbGFiaWxpdHktcHJldmlldyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiBpY29uLXVuYXZhaWxhYmxlIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAgMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNERTM2MTgiIHN0cm9rZT0iI2ZmZiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0xMy45NCAzLjk0TDEwIDcuODc4bC0zLjk0LTMuOTRBMS40OTkgMS40OTkgMCAxMDMuOTQgNi4wNkw3Ljg4IDEwbC0zLjk0IDMuOTRhMS40OTkgMS40OTkgMCAxMDIuMTIgMi4xMkwxMCAxMi4xMmwzLjk0IDMuOTRhMS40OTcgMS40OTcgMCAwMDIuMTIgMCAxLjQ5OSAxLjQ5OSAwIDAwMC0yLjEyTDEyLjEyMiAxMGwzLjk0LTMuOTRhMS40OTkgMS40OTkgMCAxMC0yLjEyMS0yLjEyeiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrdXAtYXZhaWxhYmlsaXR5LWluZm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjYXB0aW9uLWxhcmdlIj5Db3VsZG4mIzM5O3QgbG9hZCBwaWNrdXAgYXZhaWxhYmlsaXR5PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBpY2t1cC1hdmFpbGFiaWxpdHktYnV0dG9uIGxpbmsgbGluay0tdGV4dCB1bmRlcmxpbmVkLWxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmcmVzaAogICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvcGlja3VwLWF2YWlsYWJpbGl0eS1wcmV2aWV3PgogICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICAgIDwvcGlja3VwLWF2YWlsYWJpbGl0eT4KCiAgICAgICAgICAgICAgICAgIDxzY3JpcHQKICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9waWNrdXAtYXZhaWxhYmlsaXR5LmpzP3Y9NjYxMzg5NTgxMjE5NjgwNzYzMzE3MDI3Mjk1NzkiCiAgICAgICAgICAgICAgICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdF9fZGVzY3JpcHRpb24gcnRlIHF1aWNrLWFkZC1oaWRkZW4iPgogICAgICAgICAgICAgICAgICA8cD48YSBocmVmPSJodHRwczovL3huLS0xMmNhcWMwa2RtM2lmLnhuLS0xMmNsMWZrMWUuYXJ0LyIgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1jZS1ocmVmPSJodHRwczovL3huLS0xMmNhcWMwa2RtM2lmLnhuLS0xMmNsMWZrMWUuYXJ0LyI+PGltZyBoZWlnaHQ9IjE1NSIgd2lkdGg9IjMxMCIKICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJkYWZ0YXItc2VrYXJhbmciCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA2MjEvMDgzNi85MDUxL2ZpbGVzL2RhdGFyLXNla2FyYW5nXzQ4MHg0ODAuZ2lmP3Y9MTcwMjcyODgyOSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tY2Utc3JjPSJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDYyMS8wODM2LzkwNTEvZmlsZXMvZGF0YXItc2VrYXJhbmdfNDgweDQ4MC5naWY/dj0xNzAyNzI4ODI5IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1jZS1mcmFnbWVudD0iMSI+PC9hPjwvcD4KICAgICAgICAgICAgICAgICAgPHA+TGluayBzaXR1cyBzbG90IGdhY29yIDIwMjQgdGVycGVyY2F5YSBwYWxpbmcgbWF4d2luIG11ZGFoIGRpZGFwYXQga2FuIGRhbGFtIHBlcm1haW5hbiBzbG90IG9ubGluZSBzYWF0IGluaSwgc2VnZXJhIG1haW5rYW4gZGFuIGRhZnRhcmthbiBkaXJpIGFuZGEgaGFueWEgZGkgc2l0dXMgc2xvdCBnYWNvciBwYWxpbmcgdGVycGVyY2F5YSBzZWx1cnVoIHBlcm1haW5hbiBnYW1lIHNsb3QgdGVyYmFpazwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9zaGFyZS5qcz92PTEzMDI0NTQwNDQ3OTY0NDMwMTkxNzAyNzI5NTgwIgogICAgICAgICAgICAgICAgICBkZWZlcj0iZGVmZXIiPjwvc2NyaXB0PgoKICAgICAgICAgICAgICAgIDxzaGFyZS1idXR0b24gaWQ9IlNoYXJlLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiIgY2xhc3M9InNoYXJlLWJ1dHRvbiBxdWljay1hZGQtaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2hhcmUtYnV0dG9uX19idXR0b24gaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDEzIDEyIiBjbGFzcz0iaWNvbiBpY29uLXNoYXJlIiBmaWxsPSJub25lIgogICAgICAgICAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgICBkPSJNMS42MjUgOC4xMjVWMTAuMjkxN0MxLjYyNSAxMC41NzkgMS43MzkxNCAxMC44NTQ1IDEuOTQyMyAxMS4wNTc3QzIuMTQ1NDcgMTEuMjYwOSAyLjQyMTAyIDExLjM3NSAyLjcwODMzIDExLjM3NUgxMC4yOTE3QzEwLjU3OSAxMS4zNzUgMTAuODU0NSAxMS4yNjA5IDExLjA1NzcgMTEuMDU3N0MxMS4yNjA5IDEwLjg1NDUgMTEuMzc1IDEwLjU3OSAxMS4zNzUgMTAuMjkxN1Y4LjEyNSIKICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgLz4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICBkPSJNNi4xNDc3NSAxLjI3MTM3QzYuMzQzMDEgMS4wNzYxIDYuNjU5NTkgMS4wNzYxIDYuODU0ODUgMS4yNzEzN0w5LjU2MzE5IDMuOTc5N0M5Ljc1ODQ1IDQuMTc0OTYgOS43NTg0NSA0LjQ5MTU0IDkuNTYzMTkgNC42ODY4QzkuMzY3OTMgNC44ODIwNyA5LjA1MTM1IDQuODgyMDcgOC44NTYwOSA0LjY4NjhMNi41MDEzIDIuMzMyMDNMNC4xNDY1MiA0LjY4NjhDMy45NTEyNiA0Ljg4MjA3IDMuNjM0NjggNC44ODIwNyAzLjQzOTQyIDQuNjg2OEMzLjI0NDE1IDQuNDkxNTQgMy4yNDQxNSA0LjE3NDk2IDMuNDM5NDIgMy45Nzk3TDYuMTQ3NzUgMS4yNzEzN1oiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICBkPSJNNi41IDEuMTI1QzYuNzc2MTQgMS4xMjUgNyAxLjM0ODg2IDcgMS42MjVWOC4xMjVDNyA4LjQwMTE0IDYuNzc2MTQgOC42MjUgNi41IDguNjI1QzYuMjIzODYgOC42MjUgNiA4LjQwMTE0IDYgOC4xMjVWMS42MjVDNiAxLjM0ODg2IDYuMjIzODYgMS4xMjUgNi41IDEuMTI1WiIKICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIiAvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgICAgICBTaGFyZQogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGRldGFpbHMgaWQ9IkRldGFpbHMtc2hhcmUtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIj4KICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0ic2hhcmUtYnV0dG9uX19idXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMyAxMiIgY2xhc3M9Imljb24gaWNvbi1zaGFyZSIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTEuNjI1IDguMTI1VjEwLjI5MTdDMS42MjUgMTAuNTc5IDEuNzM5MTQgMTAuODU0NSAxLjk0MjMgMTEuMDU3N0MyLjE0NTQ3IDExLjI2MDkgMi40MjEwMiAxMS4zNzUgMi43MDgzMyAxMS4zNzVIMTAuMjkxN0MxMC41NzkgMTEuMzc1IDEwLjg1NDUgMTEuMjYwOSAxMS4wNTc3IDExLjA1NzdDMTEuMjYwOSAxMC44NTQ1IDExLjM3NSAxMC41NzkgMTEuMzc1IDEwLjI5MTdWOC4xMjUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTYuMTQ3NzUgMS4yNzEzN0M2LjM0MzAxIDEuMDc2MSA2LjY1OTU5IDEuMDc2MSA2Ljg1NDg1IDEuMjcxMzdMOS41NjMxOSAzLjk3OTdDOS43NTg0NSA0LjE3NDk2IDkuNzU4NDUgNC40OTE1NCA5LjU2MzE5IDQuNjg2OEM5LjM2NzkzIDQuODgyMDcgOS4wNTEzNSA0Ljg4MjA3IDguODU2MDkgNC42ODY4TDYuNTAxMyAyLjMzMjAzTDQuMTQ2NTIgNC42ODY4QzMuOTUxMjYgNC44ODIwNyAzLjYzNDY4IDQuODgyMDcgMy40Mzk0MiA0LjY4NjhDMy4yNDQxNSA0LjQ5MTU0IDMuMjQ0MTUgNC4xNzQ5NiAzLjQzOTQyIDMuOTc5N0w2LjE0Nzc1IDEuMjcxMzdaIgogICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTYuNSAxLjEyNUM2Ljc3NjE0IDEuMTI1IDcgMS4zNDg4NiA3IDEuNjI1VjguMTI1QzcgOC40MDExNCA2Ljc3NjE0IDguNjI1IDYuNSA4LjYyNUM2LjIyMzg2IDguNjI1IDYgOC40MDExNCA2IDguMTI1VjEuNjI1QzYgMS4zNDg4NiA2LjIyMzg2IDEuMTI1IDYuNSAxLjEyNVoiCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIiAvPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgU2hhcmUKICAgICAgICAgICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtYnV0dG9uX19mYWxsYmFjayBtb3Rpb24tcmVkdWNlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9IlNoYXJlTWVzc2FnZS10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iIGNsYXNzPSJzaGFyZS1idXR0b25fX21lc3NhZ2UgaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9InN0YXR1cyI+IDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZF9faW5wdXQiIGlkPSJTaGFyZVVybC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9Imh0dHBzOi8vd3d3LmVsYXBoeWUuY29tLyIKICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iTGluayIgb25jbGljaz0idGhpcy5zZWxlY3QoKTsiIHJlYWRvbmx5PgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZpZWxkX19sYWJlbCIgZm9yPSJTaGFyZVVybC10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iPkxpbms8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJzaGFyZS1idXR0b25fX2Nsb3NlIGhpZGRlbiBuby1qcy1oaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24gaWNvbi1jbG9zZSIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDE4IDE3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTS44NjUgMTUuOTc4YS41LjUgMCAwMC43MDcuNzA3bDcuNDMzLTcuNDMxIDcuNTc5IDcuMjgyYS41MDEuNTAxIDAgMDAuODQ2LS4zNy41LjUgMCAwMC0uMTUzLS4zNTFMOS43MTIgOC41NDZsNy40MTctNy40MTZhLjUuNSAwIDEwLS43MDctLjcwOEw4Ljk5MSA3Ljg1MyAxLjQxMy41NzNhLjUuNSAwIDEwLS42OTMuNzJsNy41NjMgNy4yNjgtNy40MTggNy40MTd6IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5DbG9zZSBzaGFyZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2hhcmUtYnV0dG9uX19jb3B5IG5vLWpzLWhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gaWNvbi1jbGlwYm9hcmQiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIKICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiB2aWV3Qm94PSIwIDAgMTEgMTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZD0iTTIgMWExIDEgMCAwMTEtMWg3YTEgMSAwIDAxMSAxdjlhMSAxIDAgMDEtMSAxVjFIMnpNMSAyYTEgMSAwIDAwLTEgMXY5YTEgMSAwIDAwMSAxaDdhMSAxIDAgMDAxLTFWM2ExIDEgMCAwMC0xLTFIMXptMCAxMFYzaDd2OUgxeiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5Db3B5IGxpbms8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgPC9zaGFyZS1idXR0b24+CgogICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2xpbmstc2xvdC1tYXh3aW4tdGVycGVyY2F5YS15YW5nLWxhZ2ktZ2Fjb3IiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJsaW5rIHByb2R1Y3RfX3ZpZXctZGV0YWlscyBhbmltYXRlLWFycm93Ij4KICAgICAgICAgICAgICAgICAgVmlldyBmdWxsIGRldGFpbHMKICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTAiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWFycm93IgogICAgICAgICAgICAgICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICAgICAgICAgICAgICAgICBkPSJNOC41MzcuODA4YS41LjUgMCAwMS44MTctLjE2Mmw0IDRhLjUuNSAwIDAxMCAuNzA4bC00IDRhLjUuNSAwIDExLS43MDgtLjcwOEwxMS43OTMgNS41SDFhLjUuNSAwIDAxMC0xaDEwLjc5M0w4LjY0NiAxLjM1NGEuNS41IDAgMDEtLjEwOS0uNTQ2eiIKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgoKICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICA8L3Byb2R1Y3QtaW5mbz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCgoKICAgICAgICAgIDxwcm9kdWN0LW1vZGFsIGlkPSJQcm9kdWN0TW9kYWwtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiBjbGFzcz0icHJvZHVjdC1tZWRpYS1tb2RhbCBtZWRpYS1tb2RhbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEtbW9kYWxfX2RpYWxvZyBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQiIHJvbGU9ImRpYWxvZyIKICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJNZWRpYSBnYWxsZXJ5IiBhcmlhLW1vZGFsPSJ0cnVlIiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICAgIDxidXR0b24gaWQ9Ik1vZGFsQ2xvc2UtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluIiB0eXBlPSJidXR0b24iIGNsYXNzPSJwcm9kdWN0LW1lZGlhLW1vZGFsX190b2dnbGUiCiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJDbG9zZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJpY29uIGljb24tY2xvc2UiCiAgICAgICAgICAgICAgICAgIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxOCAxNyI+CiAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgZD0iTS44NjUgMTUuOTc4YS41LjUgMCAwMC43MDcuNzA3bDcuNDMzLTcuNDMxIDcuNTc5IDcuMjgyYS41MDEuNTAxIDAgMDAuODQ2LS4zNy41LjUgMCAwMC0uMTUzLS4zNTFMOS43MTIgOC41NDZsNy40MTctNy40MTZhLjUuNSAwIDEwLS43MDctLjcwOEw4Ljk5MSA3Ljg1MyAxLjQxMy41NzNhLjUuNSAwIDEwLS42OTMuNzJsNy41NjMgNy4yNjgtNy40MTggNy40MTd6IgogICAgICAgICAgICAgICAgICAgIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICA8L3N2Zz4KCiAgICAgICAgICAgICAgPC9idXR0b24+CgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEtbW9kYWxfX2NvbnRlbnQgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IiByb2xlPSJkb2N1bWVudCIKICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9Ik1lZGlhIGdhbGxlcnkiIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9Imdsb2JhbC1tZWRpYS1zZXR0aW5ncyBnbG9iYWwtbWVkaWEtc2V0dGluZ3MtLW5vLXNoYWRvdyIKICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIvL2lpbGkuaW8vSlloOUlGcC5qcGc/dj0xNzAyNzI5Mjg0JndpZHRoPTU1MCA1NTB3LC8vaWlsaS5pby9KWWg5SUZwLmpwZz92PTE3MDI3MjkyODQgNzEzdyIKICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDc1MHB4KSBjYWxjKDEwMHZ3IC0gMjJyZW0pLCAxMTAwcHgiCiAgICAgICAgICAgICAgICAgIHNyYz0iLy9paWxpLmlvL0pZaDlJRnAuanBnP3Y9MTcwMjcyOTI4NCZ3aWR0aD0xNDQ1IgogICAgICAgICAgICAgICAgICBhbHQ9IlNpdHVzIFNsb3QgR2Fjb3IgMjAyNCBUZXJwZXJjYXlhIPCfpKogQ29iYWluIERhZnRhciBEYXBhdCBTbG90IE9ubGluZSBNYXh3aW4iIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIxMTAwIgogICAgICAgICAgICAgICAgICBoZWlnaHQ9IjExMDAiIGRhdGEtbWVkaWEtaWQ9IjI4NTkwOTQwNDIyMjk5Ij4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3Byb2R1Y3QtbW9kYWw+CgoKCiAgICAgICAgICA8c2NyaXB0CiAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3Byb2R1Y3QtbW9kYWwuanM/dj0xMTY2MTYxMzQ0NTQ1MDg5NDk0NjE3MDI3Mjk1ODAiCiAgICAgICAgICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CiAgICAgICAgICA8c2NyaXB0CiAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL21lZGlhLWdhbGxlcnkuanM/dj05NjY2MTkwODU4MTIyOTk5NTA5MTcwMjcyOTU3OSIKICAgICAgICAgICAgZGVmZXI9ImRlZmVyIj48L3NjcmlwdD4KICAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gaXNJRSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHVhID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7CiAgICAgICAgICAgICAgICBjb25zdCBtc2llID0gdWEuaW5kZXhPZignTVNJRSAnKTsKICAgICAgICAgICAgICAgIGNvbnN0IHRyaWRlbnQgPSB1YS5pbmRleE9mKCdUcmlkZW50LycpOwoKICAgICAgICAgICAgICAgIHJldHVybiBtc2llID4gMCB8fCB0cmlkZW50ID4gMDsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIGlmICghaXNJRSgpKSByZXR1cm47CiAgICAgICAgICAgICAgY29uc3QgaGlkZGVuSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcHJvZHVjdC1mb3JtLXRlbXBsYXRlLS0xNjI2MjEyMjYzNTQxOV9fbWFpbiBpbnB1dFtuYW1lPSJpZCJdJyk7CiAgICAgICAgICAgICAgY29uc3Qgbm9TY3JpcHRJbnB1dFdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICBjb25zdCB2YXJpYW50U3dpdGNoZXIgPQogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmFyaWFudC1yYWRpb3NbZGF0YS1zZWN0aW9uPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iXScpIHx8CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2YXJpYW50LXNlbGVjdHNbZGF0YS1zZWN0aW9uPSJ0ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4iXScpOwogICAgICAgICAgICAgIG5vU2NyaXB0SW5wdXRXcmFwcGVyLmlubmVySFRNTCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICAgICAnLnByb2R1Y3QtZm9ybV9fbm9zY3JpcHQtd3JhcHBlci10ZW1wbGF0ZS0tMTYyNjIxMjI2MzU0MTlfX21haW4nCiAgICAgICAgICAgICAgKS50ZXh0Q29udGVudDsKICAgICAgICAgICAgICB2YXJpYW50U3dpdGNoZXIub3V0ZXJIVE1MID0gbm9TY3JpcHRJbnB1dFdyYXBwZXIub3V0ZXJIVE1MOwoKICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjVmFyaWFudHMtdGVtcGxhdGUtLTE2MjYyMTIyNjM1NDE5X19tYWluJykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICBoaWRkZW5JbnB1dC52YWx1ZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgewogICAgICAiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5vcmcvIiwKICAgICAgIkB0eXBlIjogIlByb2R1Y3QiLAogICAgICAibmFtZSI6ICJTaXR1cyBTbG90IEdhY29yIDIwMjQgVGVycGVyY2F5YSDwn6SqIENvYmFpbiBEYWZ0YXIgRGFwYXQgU2xvdCBPbmxpbmUgTWF4d2luIiwKICAgICAgInVybCI6ICJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yIiwKICAgICAgImltYWdlIjogWwogICAgICAgICAgImh0dHBzOlwvXC85YjlkMmYubXlzaG9waWZ5LmNvbVwvY2RuXC9zaG9wXC9maWxlc1wvc2xvdGdhY29ybmloLmpwZz92PTE3MDI3MjkyODRcdTAwMjZ3aWR0aD0xOTIwIgogICAgICAgIF0sCiAgICAgICJkZXNjcmlwdGlvbiI6ICJcbkxpbmsgc2l0dXMgc2xvdCBnYWNvciAyMDI0IHRlcnBlcmNheWEgcGFsaW5nIG1heHdpbiBtdWRhaCBkaWRhcGF0IGthbiBkYWxhbSBwZXJtYWluYW4gc2xvdCBvbmxpbmUgc2FhdCBpbmksIHNlZ2VyYSBtYWlua2FuIGRhbiBkYWZ0YXJrYW4gZGlyaSBhbmRhIGhhbnlhIGRpIHNpdHVzIHNsb3QgZ2Fjb3IgcGFsaW5nIHRlcnBlcmNheWEgc2VsdXJ1aCBwZXJtYWluYW4gZ2FtZSBzbG90IHRlcmJhaWsiLAogICAgICAKICAgICAgImJyYW5kIjogewogICAgICAgICJAdHlwZSI6ICJCcmFuZCIsCiAgICAgICAgIm5hbWUiOiAiU2xvdCBHYWNvciAyMDI0IgogICAgICB9LAogICAgICAib2ZmZXJzIjogW3sKICAgICAgICAgICAgIkB0eXBlIiA6ICJPZmZlciIsImF2YWlsYWJpbGl0eSIgOiAiaHR0cDovL3NjaGVtYS5vcmcvT3V0T2ZTdG9jayIsCiAgICAgICAgICAgICJwcmljZSIgOiAwLjAsCiAgICAgICAgICAgICJwcmljZUN1cnJlbmN5IiA6ICJJRFIiLAogICAgICAgICAgICAidXJsIiA6ICJodHRwczpcL1wvOWI5ZDJmLm15c2hvcGlmeS5jb21cL3Byb2R1Y3RzXC9saW5rLXNsb3QtbWF4d2luLXRlcnBlcmNheWEteWFuZy1sYWdpLWdhY29yP3ZhcmlhbnQ9NDM5MTAxMTkzMjU4NTEiCiAgICAgICAgICB9Cl0KICAgIH0KICA8L3NjcmlwdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgoKCiAgICA8L3NlY3Rpb24+CiAgPC9tYWluPgoKICA8IS0tIEJFR0lOIHNlY3Rpb25zOiBmb290ZXItZ3JvdXAgLS0+CiAgPHNlY3Rpb24gaWQ9InNob3BpZnktc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX25ld3NsZXR0ZXIiCiAgICBjbGFzcz0ic2hvcGlmeS1zZWN0aW9uIHNob3BpZnktc2VjdGlvbi1ncm91cC1mb290ZXItZ3JvdXAgc2VjdGlvbiI+CiAgICA8bGluawogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LW5ld3NsZXR0ZXIuY3NzP3Y9NDcyNzI1MzI4MDIwMDQ4NTI2MTcwMjcyOTU3OSIKICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9uZXdzbGV0dGVyLXNlY3Rpb24uY3NzP3Y9NjI0MTA0NzA3MTc2NTU4NTM2MjE3MDI3Mjk1NzkiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8c3R5bGUgZGF0YS1zaG9waWZ5PgogICAgICAuc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX25ld3NsZXR0ZXItcGFkZGluZyB7CiAgICAgICAgcGFkZGluZy10b3A6IDIxcHg7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAuc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX25ld3NsZXR0ZXItcGFkZGluZyB7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMjhweDsKICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0ibmV3c2xldHRlciBjZW50ZXIgIj4KICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJuZXdzbGV0dGVyX193cmFwcGVyIGNvbG9yLWludmVyc2UgZ3JhZGllbnQgY29udGVudC1jb250YWluZXIgaXNvbGF0ZSBjb250ZW50LWNvbnRhaW5lci0tZnVsbC13aWR0aCBzZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fbmV3c2xldHRlci1wYWRkaW5nIj4KICAgICAgICA8aDIgY2xhc3M9ImlubGluZS1yaWNodGV4dCBoMSBzY3JvbGwtdHJpZ2dlciBhbmltYXRlLS1zbGlkZS1pbiIgZGF0YS1jYXNjYWRlIHN0eWxlPSItLWFuaW1hdGlvbi1vcmRlcjogMTsiPgogICAgICAgICAgU0xPVCBNQVhXSU4gWUFORyBMQUdJIEdBQ09SIE5JSCBCUkVF8J+kmQogICAgICAgIDwvaDI+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKICA8L3NlY3Rpb24+CiAgPGRpdiBpZD0ic2hvcGlmeS1zZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fZm9vdGVyIiBjbGFzcz0ic2hvcGlmeS1zZWN0aW9uIHNob3BpZnktc2VjdGlvbi1ncm91cC1mb290ZXItZ3JvdXAiPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL3NlY3Rpb24tZm9vdGVyLmNzcz92PTEyNTE2MDI5ODcyNjAzMjE1NDYzMTcwMjcyOTU4MCIKICAgICAgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KICAgIDxsaW5rCiAgICAgIGhyZWY9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbmV3c2xldHRlci5jc3M/dj00NzI3MjUzMjgwMjAwNDg1MjYxNzAyNzI5NTc5IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1saXN0LW1lbnUuY3NzP3Y9MTUxOTY4NTE2MTE5Njc4NzI4OTkxNzAyNzI5NTc4IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPGxpbmsKICAgICAgaHJlZj0iaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbS9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1saXN0LXBheW1lbnQuY3NzP3Y9NjkyNTM5NjE0MTA3NzE4Mzg1MDE3MDI3Mjk1NzkiCiAgICAgIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CiAgICA8bGluawogICAgICBocmVmPSJodHRwczovLzliOWQyZi5teXNob3BpZnkuY29tL2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxpc3Qtc29jaWFsLmNzcz92PTM1NzkyOTc2MDEyOTgxOTM0OTkxNzAyNzI5NTc5IgogICAgICByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgogICAgPHN0eWxlIGRhdGEtc2hvcGlmeT4KICAgICAgLmZvb3RlciB7CiAgICAgICAgbWFyZ2luLXRvcDogMHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1zZWN0aW9ucy0tMTYyNjIxMjI5MzAzMzFfX2Zvb3Rlci1wYWRkaW5nIHsKICAgICAgICBwYWRkaW5nLXRvcDogMzNweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDVweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzUwcHgpIHsKICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDBweDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fZm9vdGVyLXBhZGRpbmcgewogICAgICAgICAgcGFkZGluZy10b3A6IDQ0cHg7CiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsKICAgICAgICB9CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8Zm9vdGVyIGNsYXNzPSJmb290ZXIgY29sb3ItaW52ZXJzZSBncmFkaWVudCBzZWN0aW9uLXNlY3Rpb25zLS0xNjI2MjEyMjkzMDMzMV9fZm9vdGVyLXBhZGRpbmciPgogICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX2NvbnRlbnQtdG9wIHBhZ2Utd2lkdGgiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1ibG9jay0tbmV3c2xldHRlciBzY3JvbGwtdHJpZ2dlciBhbmltYXRlLS1zbGlkZS1pbiIgZGF0YS1jYXNjYWRlPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19jb250ZW50LWJvdHRvbSBzY3JvbGwtdHJpZ2dlciBhbmltYXRlLS1zbGlkZS1pbiIgZGF0YS1jYXNjYWRlPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29udGVudC1ib3R0b20td3JhcHBlciBwYWdlLXdpZHRoIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29sdW1uIGZvb3Rlcl9fbG9jYWxpemF0aW9uIGlzb2xhdGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19jb2x1bW4gZm9vdGVyX19jb2x1bW4tLWluZm8iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX3BheW1lbnQiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlBheW1lbnQgbWV0aG9kczwvc3Bhbj4KICAgICAgICAgICAgICA8dWwgY2xhc3M9Imxpc3QgbGlzdC1wYXltZW50IiByb2xlPSJsaXN0Ij48L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29udGVudC1ib3R0b20td3JhcHBlciBwYWdlLXdpZHRoIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29weXJpZ2h0IGNhcHRpb24iPgogICAgICAgICAgICA8c21hbGwgY2xhc3M9ImNvcHlyaWdodF9fY29udGVudCI+SGFrIENpcHRhICZjb3B5OyAyMDI0IOKAoiA8L3N0cm9uZz48L2E+PC9zbWFsbD4KICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJjb3B5cmlnaHRfX2NvbnRlbnQiPjxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3d3dy5lbGFwaHllLmNvbS8iPjxzdHJvbmc+UG93ZXIgYnkgU2VvIFBpa2FjaHUgfCAxOCs8L2E+PC9zbWFsbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZm9vdGVyPgoKCiAgPC9kaXY+CiAgPCEtLSBFTkQgc2VjdGlvbnM6IGZvb3Rlci1ncm91cCAtLT4KCiAgPHVsIGhpZGRlbj4KICAgIDxsaSBpZD0iYTExeS1yZWZyZXNoLXBhZ2UtbWVzc2FnZSI+Q2hvb3NpbmcgYSBzZWxlY3Rpb24gcmVzdWx0cyBpbiBhIGZ1bGwgcGFnZSByZWZyZXNoLjwvbGk+CiAgICA8bGkgaWQ9ImExMXktbmV3LXdpbmRvdy1tZXNzYWdlIj5PcGVucyBpbiBhIG5ldyB3aW5kb3cuPC9saT4KICA8L3VsPgoKICA8c2NyaXB0PgogICAgd2luZG93LnNob3BVcmwgPSAnaHR0cHM6Ly85YjlkMmYubXlzaG9waWZ5LmNvbSc7CiAgICB3aW5kb3cucm91dGVzID0gewogICAgICBjYXJ0X2FkZF91cmw6ICcvY2FydC9hZGQnLAogICAgICBjYXJ0X2NoYW5nZV91cmw6ICcvY2FydC9jaGFuZ2UnLAogICAgICBjYXJ0X3VwZGF0ZV91cmw6ICcvY2FydC91cGRhdGUnLAogICAgICBjYXJ0X3VybDogJy9jYXJ0JywKICAgICAgcHJlZGljdGl2ZV9zZWFyY2hfdXJsOiAnL3NlYXJjaC9zdWdnZXN0JywKICAgIH07CgogICAgd2luZG93LmNhcnRTdHJpbmdzID0gewogICAgICBlcnJvcjogYFRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSB1cGRhdGluZyB5b3VyIGNhcnQuIFBsZWFzZSB0cnkgYWdhaW4uYCwKICAgICAgcXVhbnRpdHlFcnJvcjogYFlvdSBjYW4gb25seSBhZGQgW3F1YW50aXR5XSBvZiB0aGlzIGl0ZW0gdG8geW91ciBjYXJ0LmAsCiAgICB9OwoKICAgIHdpbmRvdy52YXJpYW50U3RyaW5ncyA9IHsKICAgICAgYWRkVG9DYXJ0OiBgQWRkIHRvIGNhcnRgLAogICAgICBzb2xkT3V0OiBgU29sZCBvdXRgLAogICAgICB1bmF2YWlsYWJsZTogYFVuYXZhaWxhYmxlYCwKICAgICAgdW5hdmFpbGFibGVfd2l0aF9vcHRpb246IGBbdmFsdWVdIC0gVW5hdmFpbGFibGVgLAogICAgfTsKCiAgICB3aW5kb3cucXVpY2tPcmRlckxpc3RTdHJpbmdzID0gewogICAgICBpdGVtc0FkZGVkOiBgW3F1YW50aXR5XSBpdGVtcyBhZGRlZGAsCiAgICAgIGl0ZW1BZGRlZDogYFtxdWFudGl0eV0gaXRlbSBhZGRlZGAsCiAgICAgIGl0ZW1zUmVtb3ZlZDogYFtxdWFudGl0eV0gaXRlbXMgcmVtb3ZlZGAsCiAgICAgIGl0ZW1SZW1vdmVkOiBgW3F1YW50aXR5XSBpdGVtIHJlbW92ZWRgLAogICAgICB2aWV3Q2FydDogYFZpZXcgY2FydGAsCiAgICAgIGVhY2g6IGBbbW9uZXldL2VhYCwKICAgIH07CgogICAgd2luZG93LmFjY2Vzc2liaWxpdHlTdHJpbmdzID0gewogICAgICBpbWFnZUF2YWlsYWJsZTogYEltYWdlIFtpbmRleF0gaXMgbm93IGF2YWlsYWJsZSBpbiBnYWxsZXJ5IHZpZXdgLAogICAgICBzaGFyZVN1Y2Nlc3M6IGBMaW5rIGNvcGllZCB0byBjbGlwYm9hcmRgLAogICAgICBwYXVzZVNsaWRlc2hvdzogYFBhdXNlIHNsaWRlc2hvd2AsCiAgICAgIHBsYXlTbGlkZXNob3c6IGBQbGF5IHNsaWRlc2hvd2AsCiAgICAgIHJlY2lwaWVudEZvcm1FeHBhbmRlZDogYEdpZnQgY2FyZCByZWNpcGllbnQgZm9ybSBleHBhbmRlZGAsCiAgICAgIHJlY2lwaWVudEZvcm1Db2xsYXBzZWQ6IGBHaWZ0IGNhcmQgcmVjaXBpZW50IGZvcm0gY29sbGFwc2VkYCwKICAgIH07CiAgPC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vOWI5ZDJmLm15c2hvcGlmeS5jb20vY2RuL3Nob3AvdC8zL2Fzc2V0cy9wcmVkaWN0aXZlLXNlYXJjaC5qcz92PTE2MjI3MzI0NjA2NTM5MjQxMjE0MTcwMjcyOTU3OSIKICAgIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+CjwvYm9keT4KCjwvaHRtbD4=';

Function Calls

None

Variables

None

Stats

MD5 c32c5e5e134307e0180e473d15660434
Eval Count 0
Decode Time 14104 ms