ZGlmZiAtLWdpdCBhL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL2hwY19oaXN0b3JpY2FsLmNzcyBiL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL2hwY19oaXN0b3JpY2FsLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTJlOTg2Ci0tLSAvZGV2L251bGwKKysrIGIvcGxhbmV0c3RhY2svY29yZS9zdGF0aWMvaHBjX2hpc3RvcmljYWwuY3NzCkBAIC0wLDAgKzEsODEyIEBACisucm93IHsKKyAgbWFyZ2luLXJpZ2h0OiAtMTVweDsKKyAgbWFyZ2luLWxlZnQ6IC0xNXB4OworfQorCisucm93OmJlZm9yZSwKKy5yb3c6YWZ0ZXIgeworICBkaXNwbGF5OiB0YWJsZTsKKyAgY29udGVudDogIiAiOworfQorCisucm93OmFmdGVyIHsKKyAgY2xlYXI6IGJvdGg7Cit9CisKKy5yb3c6YmVmb3JlLAorLnJvdzphZnRlciB7CisgIGRpc3BsYXk6IHRhYmxlOworICBjb250ZW50OiAiICI7Cit9CisKKy5yb3c6YWZ0ZXIgeworICBjbGVhcjogYm90aDsKK30KKworLmNvbC14cy0xLAorLmNvbC1zbS0xLAorLmNvbC1tZC0xLAorLmNvbC1sZy0xLAorLmNvbC14cy0yLAorLmNvbC1zbS0yLAorLmNvbC1tZC0yLAorLmNvbC1sZy0yLAorLmNvbC14cy0zLAorLmNvbC1zbS0zLAorLmNvbC1tZC0zLAorLmNvbC1sZy0zLAorLmNvbC14cy00LAorLmNvbC1zbS00LAorLmNvbC1tZC00LAorLmNvbC1sZy00LAorLmNvbC14cy01LAorLmNvbC1zbS01LAorLmNvbC1tZC01LAorLmNvbC1sZy01LAorLmNvbC14cy02LAorLmNvbC1zbS02LAorLmNvbC1tZC02LAorLmNvbC1sZy02LAorLmNvbC14cy03LAorLmNvbC1zbS03LAorLmNvbC1tZC03LAorLmNvbC1sZy03LAorLmNvbC14cy04LAorLmNvbC1zbS04LAorLmNvbC1tZC04LAorLmNvbC1sZy04LAorLmNvbC14cy05LAorLmNvbC1zbS05LAorLmNvbC1tZC05LAorLmNvbC1sZy05LAorLmNvbC14cy0xMCwKKy5jb2wtc20tMTAsCisuY29sLW1kLTEwLAorLmNvbC1sZy0xMCwKKy5jb2wteHMtMTEsCisuY29sLXNtLTExLAorLmNvbC1tZC0xMSwKKy5jb2wtbGctMTEsCisuY29sLXhzLTEyLAorLmNvbC1zbS0xMiwKKy5jb2wtbWQtMTIsCisuY29sLWxnLTEyIHsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICBtaW4taGVpZ2h0OiAxcHg7CisgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CisgIHBhZGRpbmctbGVmdDogMTVweDsKK30KKworLmNvbC14cy0xLAorLmNvbC14cy0yLAorLmNvbC14cy0zLAorLmNvbC14cy00LAorLmNvbC14cy01LAorLmNvbC14cy02LAorLmNvbC14cy03LAorLmNvbC14cy04LAorLmNvbC14cy05LAorLmNvbC14cy0xMCwKKy5jb2wteHMtMTEgeworICBmbG9hdDogbGVmdDsKK30KKworLmNvbC14cy0xMiB7CisgIHdpZHRoOiAxMDAlOworfQorCisuY29sLXhzLTExIHsKKyAgd2lkdGg6IDkxLjY2NjY2NjY2NjY2NjY2JTsKK30KKworLmNvbC14cy0xMCB7CisgIHdpZHRoOiA4My4zMzMzMzMzMzMzMzMzNCU7Cit9CisKKy5jb2wteHMtOSB7CisgIHdpZHRoOiA3NSU7Cit9CisKKy5jb2wteHMtOCB7CisgIHdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NiU7Cit9CisKKy5jb2wteHMtNyB7CisgIHdpZHRoOiA1OC4zMzMzMzMzMzMzMzMzMzYlOworfQorCisuY29sLXhzLTYgeworICB3aWR0aDogNTAlOworfQorCisuY29sLXhzLTUgeworICB3aWR0aDogNDEuNjY2NjY2NjY2NjY2NjclOworfQorCisuY29sLXhzLTQgeworICB3aWR0aDogMzMuMzMzMzMzMzMzMzMzMzMlOworfQorCisuY29sLXhzLTMgeworICB3aWR0aDogMjUlOworfQorCisuY29sLXhzLTIgeworICB3aWR0aDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKK30KKworLmNvbC14cy0xIHsKKyAgd2lkdGg6IDguMzMzMzMzMzMzMzMzMzMyJTsKK30KKworLmNvbC14cy1wdWxsLTEyIHsKKyAgcmlnaHQ6IDEwMCU7Cit9CisKKy5jb2wteHMtcHVsbC0xMSB7CisgIHJpZ2h0OiA5MS42NjY2NjY2NjY2NjY2NiU7Cit9CisKKy5jb2wteHMtcHVsbC0xMCB7CisgIHJpZ2h0OiA4My4zMzMzMzMzMzMzMzMzNCU7Cit9CisKKy5jb2wteHMtcHVsbC05IHsKKyAgcmlnaHQ6IDc1JTsKK30KKworLmNvbC14cy1wdWxsLTggeworICByaWdodDogNjYuNjY2NjY2NjY2NjY2NjYlOworfQorCisuY29sLXhzLXB1bGwtNyB7CisgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzMzMzMzYlOworfQorCisuY29sLXhzLXB1bGwtNiB7CisgIHJpZ2h0OiA1MCU7Cit9CisKKy5jb2wteHMtcHVsbC01IHsKKyAgcmlnaHQ6IDQxLjY2NjY2NjY2NjY2NjY3JTsKK30KKworLmNvbC14cy1wdWxsLTQgeworICByaWdodDogMzMuMzMzMzMzMzMzMzMzMzMlOworfQorCisuY29sLXhzLXB1bGwtMyB7CisgIHJpZ2h0OiAyNSU7Cit9CisKKy5jb2wteHMtcHVsbC0yIHsKKyAgcmlnaHQ6IDE2LjY2NjY2NjY2NjY2NjY2NCU7Cit9CisKKy5jb2wteHMtcHVsbC0xIHsKKyAgcmlnaHQ6IDguMzMzMzMzMzMzMzMzMzMyJTsKK30KKworLmNvbC14cy1wdWxsLTAgeworICByaWdodDogMDsKK30KKworLmNvbC14cy1wdXNoLTEyIHsKKyAgbGVmdDogMTAwJTsKK30KKworLmNvbC14cy1wdXNoLTExIHsKKyAgbGVmdDogOTEuNjY2NjY2NjY2NjY2NjYlOworfQorCisuY29sLXhzLXB1c2gtMTAgeworICBsZWZ0OiA4My4zMzMzMzMzMzMzMzMzNCU7Cit9CisKKy5jb2wteHMtcHVzaC05IHsKKyAgbGVmdDogNzUlOworfQorCisuY29sLXhzLXB1c2gtOCB7CisgIGxlZnQ6IDY2LjY2NjY2NjY2NjY2NjY2JTsKK30KKworLmNvbC14cy1wdXNoLTcgeworICBsZWZ0OiA1OC4zMzMzMzMzMzMzMzMzMzYlOworfQorCisuY29sLXhzLXB1c2gtNiB7CisgIGxlZnQ6IDUwJTsKK30KKworLmNvbC14cy1wdXNoLTUgeworICBsZWZ0OiA0MS42NjY2NjY2NjY2NjY2NyU7Cit9CisKKy5jb2wteHMtcHVzaC00IHsKKyAgbGVmdDogMzMuMzMzMzMzMzMzMzMzMzMlOworfQorCisuY29sLXhzLXB1c2gtMyB7CisgIGxlZnQ6IDI1JTsKK30KKworLmNvbC14cy1wdXNoLTIgeworICBsZWZ0OiAxNi42NjY2NjY2NjY2NjY2NjQlOworfQorCisuY29sLXhzLXB1c2gtMSB7CisgIGxlZnQ6IDguMzMzMzMzMzMzMzMzMzMyJTsKK30KKworLmNvbC14cy1wdXNoLTAgeworICBsZWZ0OiAwOworfQorCisuY29sLXhzLW9mZnNldC0xMiB7CisgIG1hcmdpbi1sZWZ0OiAxMDAlOworfQorCisuY29sLXhzLW9mZnNldC0xMSB7CisgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY2NjY2NiU7Cit9CisKKy5jb2wteHMtb2Zmc2V0LTEwIHsKKyAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMzMzM0JTsKK30KKworLmNvbC14cy1vZmZzZXQtOSB7CisgIG1hcmdpbi1sZWZ0OiA3NSU7Cit9CisKKy5jb2wteHMtb2Zmc2V0LTggeworICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NjY2NjYlOworfQorCisuY29sLXhzLW9mZnNldC03IHsKKyAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiU7Cit9CisKKy5jb2wteHMtb2Zmc2V0LTYgeworICBtYXJnaW4tbGVmdDogNTAlOworfQorCisuY29sLXhzLW9mZnNldC01IHsKKyAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjY2NjY3JTsKK30KKworLmNvbC14cy1vZmZzZXQtNCB7CisgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzMzMzMyU7Cit9CisKKy5jb2wteHMtb2Zmc2V0LTMgeworICBtYXJnaW4tbGVmdDogMjUlOworfQorCisuY29sLXhzLW9mZnNldC0yIHsKKyAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjY2NjY2NCU7Cit9CisKKy5jb2wteHMtb2Zmc2V0LTEgeworICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlOworfQorCisuY29sLXhzLW9mZnNldC0wIHsKKyAgbWFyZ2luLWxlZnQ6IDA7Cit9CisKK0BtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeworICAuY29udGFpbmVyIHsKKyAgICB3aWR0aDogNzUwcHg7CisgIH0KKyAgLmNvbC1zbS0xLAorICAuY29sLXNtLTIsCisgIC5jb2wtc20tMywKKyAgLmNvbC1zbS00LAorICAuY29sLXNtLTUsCisgIC5jb2wtc20tNiwKKyAgLmNvbC1zbS03LAorICAuY29sLXNtLTgsCisgIC5jb2wtc20tOSwKKyAgLmNvbC1zbS0xMCwKKyAgLmNvbC1zbS0xMSB7CisgICAgZmxvYXQ6IGxlZnQ7CisgIH0KKyAgLmNvbC1zbS0xMiB7CisgICAgd2lkdGg6IDEwMCU7CisgIH0KKyAgLmNvbC1zbS0xMSB7CisgICAgd2lkdGg6IDkxLjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLXNtLTEwIHsKKyAgICB3aWR0aDogODMuMzMzMzMzMzMzMzMzMzQlOworICB9CisgIC5jb2wtc20tOSB7CisgICAgd2lkdGg6IDc1JTsKKyAgfQorICAuY29sLXNtLTggeworICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1zbS03IHsKKyAgICB3aWR0aDogNTguMzMzMzMzMzMzMzMzMzM2JTsKKyAgfQorICAuY29sLXNtLTYgeworICAgIHdpZHRoOiA1MCU7CisgIH0KKyAgLmNvbC1zbS01IHsKKyAgICB3aWR0aDogNDEuNjY2NjY2NjY2NjY2NjclOworICB9CisgIC5jb2wtc20tNCB7CisgICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMzMzMzJTsKKyAgfQorICAuY29sLXNtLTMgeworICAgIHdpZHRoOiAyNSU7CisgIH0KKyAgLmNvbC1zbS0yIHsKKyAgICB3aWR0aDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKKyAgfQorICAuY29sLXNtLTEgeworICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMzMzMzMiU7CisgIH0KKyAgLmNvbC1zbS1wdWxsLTEyIHsKKyAgICByaWdodDogMTAwJTsKKyAgfQorICAuY29sLXNtLXB1bGwtMTEgeworICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1zbS1wdWxsLTEwIHsKKyAgICByaWdodDogODMuMzMzMzMzMzMzMzMzMzQlOworICB9CisgIC5jb2wtc20tcHVsbC05IHsKKyAgICByaWdodDogNzUlOworICB9CisgIC5jb2wtc20tcHVsbC04IHsKKyAgICByaWdodDogNjYuNjY2NjY2NjY2NjY2NjYlOworICB9CisgIC5jb2wtc20tcHVsbC03IHsKKyAgICByaWdodDogNTguMzMzMzMzMzMzMzMzMzM2JTsKKyAgfQorICAuY29sLXNtLXB1bGwtNiB7CisgICAgcmlnaHQ6IDUwJTsKKyAgfQorICAuY29sLXNtLXB1bGwtNSB7CisgICAgcmlnaHQ6IDQxLjY2NjY2NjY2NjY2NjY3JTsKKyAgfQorICAuY29sLXNtLXB1bGwtNCB7CisgICAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMzMzMzJTsKKyAgfQorICAuY29sLXNtLXB1bGwtMyB7CisgICAgcmlnaHQ6IDI1JTsKKyAgfQorICAuY29sLXNtLXB1bGwtMiB7CisgICAgcmlnaHQ6IDE2LjY2NjY2NjY2NjY2NjY2NCU7CisgIH0KKyAgLmNvbC1zbS1wdWxsLTEgeworICAgIHJpZ2h0OiA4LjMzMzMzMzMzMzMzMzMzMiU7CisgIH0KKyAgLmNvbC1zbS1wdWxsLTAgeworICAgIHJpZ2h0OiAwOworICB9CisgIC5jb2wtc20tcHVzaC0xMiB7CisgICAgbGVmdDogMTAwJTsKKyAgfQorICAuY29sLXNtLXB1c2gtMTEgeworICAgIGxlZnQ6IDkxLjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLXNtLXB1c2gtMTAgeworICAgIGxlZnQ6IDgzLjMzMzMzMzMzMzMzMzM0JTsKKyAgfQorICAuY29sLXNtLXB1c2gtOSB7CisgICAgbGVmdDogNzUlOworICB9CisgIC5jb2wtc20tcHVzaC04IHsKKyAgICBsZWZ0OiA2Ni42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1zbS1wdXNoLTcgeworICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiU7CisgIH0KKyAgLmNvbC1zbS1wdXNoLTYgeworICAgIGxlZnQ6IDUwJTsKKyAgfQorICAuY29sLXNtLXB1c2gtNSB7CisgICAgbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclOworICB9CisgIC5jb2wtc20tcHVzaC00IHsKKyAgICBsZWZ0OiAzMy4zMzMzMzMzMzMzMzMzMyU7CisgIH0KKyAgLmNvbC1zbS1wdXNoLTMgeworICAgIGxlZnQ6IDI1JTsKKyAgfQorICAuY29sLXNtLXB1c2gtMiB7CisgICAgbGVmdDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKKyAgfQorICAuY29sLXNtLXB1c2gtMSB7CisgICAgbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlOworICB9CisgIC5jb2wtc20tcHVzaC0wIHsKKyAgICBsZWZ0OiAwOworICB9CisgIC5jb2wtc20tb2Zmc2V0LTEyIHsKKyAgICBtYXJnaW4tbGVmdDogMTAwJTsKKyAgfQorICAuY29sLXNtLW9mZnNldC0xMSB7CisgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLXNtLW9mZnNldC0xMCB7CisgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMzMzM0JTsKKyAgfQorICAuY29sLXNtLW9mZnNldC05IHsKKyAgICBtYXJnaW4tbGVmdDogNzUlOworICB9CisgIC5jb2wtc20tb2Zmc2V0LTggeworICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1zbS1vZmZzZXQtNyB7CisgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiU7CisgIH0KKyAgLmNvbC1zbS1vZmZzZXQtNiB7CisgICAgbWFyZ2luLWxlZnQ6IDUwJTsKKyAgfQorICAuY29sLXNtLW9mZnNldC01IHsKKyAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclOworICB9CisgIC5jb2wtc20tb2Zmc2V0LTQgeworICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzMzMzMyU7CisgIH0KKyAgLmNvbC1zbS1vZmZzZXQtMyB7CisgICAgbWFyZ2luLWxlZnQ6IDI1JTsKKyAgfQorICAuY29sLXNtLW9mZnNldC0yIHsKKyAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKKyAgfQorICAuY29sLXNtLW9mZnNldC0xIHsKKyAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlOworICB9CisgIC5jb2wtc20tb2Zmc2V0LTAgeworICAgIG1hcmdpbi1sZWZ0OiAwOworICB9Cit9CisKK0BtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgeworICAuY29udGFpbmVyIHsKKyAgICB3aWR0aDogOTcwcHg7CisgIH0KKyAgLmNvbC1tZC0xLAorICAuY29sLW1kLTIsCisgIC5jb2wtbWQtMywKKyAgLmNvbC1tZC00LAorICAuY29sLW1kLTUsCisgIC5jb2wtbWQtNiwKKyAgLmNvbC1tZC03LAorICAuY29sLW1kLTgsCisgIC5jb2wtbWQtOSwKKyAgLmNvbC1tZC0xMCwKKyAgLmNvbC1tZC0xMSB7CisgICAgZmxvYXQ6IGxlZnQ7CisgIH0KKyAgLmNvbC1tZC0xMiB7CisgICAgd2lkdGg6IDEwMCU7CisgIH0KKyAgLmNvbC1tZC0xMSB7CisgICAgd2lkdGg6IDkxLjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLW1kLTEwIHsKKyAgICB3aWR0aDogODMuMzMzMzMzMzMzMzMzMzQlOworICB9CisgIC5jb2wtbWQtOSB7CisgICAgd2lkdGg6IDc1JTsKKyAgfQorICAuY29sLW1kLTggeworICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1tZC03IHsKKyAgICB3aWR0aDogNTguMzMzMzMzMzMzMzMzMzM2JTsKKyAgfQorICAuY29sLW1kLTYgeworICAgIHdpZHRoOiA1MCU7CisgIH0KKyAgLmNvbC1tZC01IHsKKyAgICB3aWR0aDogNDEuNjY2NjY2NjY2NjY2NjclOworICB9CisgIC5jb2wtbWQtNCB7CisgICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMzMzMzJTsKKyAgfQorICAuY29sLW1kLTMgeworICAgIHdpZHRoOiAyNSU7CisgIH0KKyAgLmNvbC1tZC0yIHsKKyAgICB3aWR0aDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKKyAgfQorICAuY29sLW1kLTEgeworICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMzMzMzMiU7CisgIH0KKyAgLmNvbC1tZC1wdWxsLTEyIHsKKyAgICByaWdodDogMTAwJTsKKyAgfQorICAuY29sLW1kLXB1bGwtMTEgeworICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1tZC1wdWxsLTEwIHsKKyAgICByaWdodDogODMuMzMzMzMzMzMzMzMzMzQlOworICB9CisgIC5jb2wtbWQtcHVsbC05IHsKKyAgICByaWdodDogNzUlOworICB9CisgIC5jb2wtbWQtcHVsbC04IHsKKyAgICByaWdodDogNjYuNjY2NjY2NjY2NjY2NjYlOworICB9CisgIC5jb2wtbWQtcHVsbC03IHsKKyAgICByaWdodDogNTguMzMzMzMzMzMzMzMzMzM2JTsKKyAgfQorICAuY29sLW1kLXB1bGwtNiB7CisgICAgcmlnaHQ6IDUwJTsKKyAgfQorICAuY29sLW1kLXB1bGwtNSB7CisgICAgcmlnaHQ6IDQxLjY2NjY2NjY2NjY2NjY3JTsKKyAgfQorICAuY29sLW1kLXB1bGwtNCB7CisgICAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMzMzMzJTsKKyAgfQorICAuY29sLW1kLXB1bGwtMyB7CisgICAgcmlnaHQ6IDI1JTsKKyAgfQorICAuY29sLW1kLXB1bGwtMiB7CisgICAgcmlnaHQ6IDE2LjY2NjY2NjY2NjY2NjY2NCU7CisgIH0KKyAgLmNvbC1tZC1wdWxsLTEgeworICAgIHJpZ2h0OiA4LjMzMzMzMzMzMzMzMzMzMiU7CisgIH0KKyAgLmNvbC1tZC1wdWxsLTAgeworICAgIHJpZ2h0OiAwOworICB9CisgIC5jb2wtbWQtcHVzaC0xMiB7CisgICAgbGVmdDogMTAwJTsKKyAgfQorICAuY29sLW1kLXB1c2gtMTEgeworICAgIGxlZnQ6IDkxLjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLW1kLXB1c2gtMTAgeworICAgIGxlZnQ6IDgzLjMzMzMzMzMzMzMzMzM0JTsKKyAgfQorICAuY29sLW1kLXB1c2gtOSB7CisgICAgbGVmdDogNzUlOworICB9CisgIC5jb2wtbWQtcHVzaC04IHsKKyAgICBsZWZ0OiA2Ni42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1tZC1wdXNoLTcgeworICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiU7CisgIH0KKyAgLmNvbC1tZC1wdXNoLTYgeworICAgIGxlZnQ6IDUwJTsKKyAgfQorICAuY29sLW1kLXB1c2gtNSB7CisgICAgbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclOworICB9CisgIC5jb2wtbWQtcHVzaC00IHsKKyAgICBsZWZ0OiAzMy4zMzMzMzMzMzMzMzMzMyU7CisgIH0KKyAgLmNvbC1tZC1wdXNoLTMgeworICAgIGxlZnQ6IDI1JTsKKyAgfQorICAuY29sLW1kLXB1c2gtMiB7CisgICAgbGVmdDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKKyAgfQorICAuY29sLW1kLXB1c2gtMSB7CisgICAgbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlOworICB9CisgIC5jb2wtbWQtcHVzaC0wIHsKKyAgICBsZWZ0OiAwOworICB9CisgIC5jb2wtbWQtb2Zmc2V0LTEyIHsKKyAgICBtYXJnaW4tbGVmdDogMTAwJTsKKyAgfQorICAuY29sLW1kLW9mZnNldC0xMSB7CisgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLW1kLW9mZnNldC0xMCB7CisgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMzMzM0JTsKKyAgfQorICAuY29sLW1kLW9mZnNldC05IHsKKyAgICBtYXJnaW4tbGVmdDogNzUlOworICB9CisgIC5jb2wtbWQtb2Zmc2V0LTggeworICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1tZC1vZmZzZXQtNyB7CisgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiU7CisgIH0KKyAgLmNvbC1tZC1vZmZzZXQtNiB7CisgICAgbWFyZ2luLWxlZnQ6IDUwJTsKKyAgfQorICAuY29sLW1kLW9mZnNldC01IHsKKyAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclOworICB9CisgIC5jb2wtbWQtb2Zmc2V0LTQgeworICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzMzMzMyU7CisgIH0KKyAgLmNvbC1tZC1vZmZzZXQtMyB7CisgICAgbWFyZ2luLWxlZnQ6IDI1JTsKKyAgfQorICAuY29sLW1kLW9mZnNldC0yIHsKKyAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKKyAgfQorICAuY29sLW1kLW9mZnNldC0xIHsKKyAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlOworICB9CisgIC5jb2wtbWQtb2Zmc2V0LTAgeworICAgIG1hcmdpbi1sZWZ0OiAwOworICB9Cit9CisKK0BtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsKKyAgLmNvbnRhaW5lciB7CisgICAgd2lkdGg6IDExNzBweDsKKyAgfQorICAuY29sLWxnLTEsCisgIC5jb2wtbGctMiwKKyAgLmNvbC1sZy0zLAorICAuY29sLWxnLTQsCisgIC5jb2wtbGctNSwKKyAgLmNvbC1sZy02LAorICAuY29sLWxnLTcsCisgIC5jb2wtbGctOCwKKyAgLmNvbC1sZy05LAorICAuY29sLWxnLTEwLAorICAuY29sLWxnLTExIHsKKyAgICBmbG9hdDogbGVmdDsKKyAgfQorICAuY29sLWxnLTEyIHsKKyAgICB3aWR0aDogMTAwJTsKKyAgfQorICAuY29sLWxnLTExIHsKKyAgICB3aWR0aDogOTEuNjY2NjY2NjY2NjY2NjYlOworICB9CisgIC5jb2wtbGctMTAgeworICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzMzMzNCU7CisgIH0KKyAgLmNvbC1sZy05IHsKKyAgICB3aWR0aDogNzUlOworICB9CisgIC5jb2wtbGctOCB7CisgICAgd2lkdGg6IDY2LjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLWxnLTcgeworICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzMzMzMzYlOworICB9CisgIC5jb2wtbGctNiB7CisgICAgd2lkdGg6IDUwJTsKKyAgfQorICAuY29sLWxnLTUgeworICAgIHdpZHRoOiA0MS42NjY2NjY2NjY2NjY2NyU7CisgIH0KKyAgLmNvbC1sZy00IHsKKyAgICB3aWR0aDogMzMuMzMzMzMzMzMzMzMzMzMlOworICB9CisgIC5jb2wtbGctMyB7CisgICAgd2lkdGg6IDI1JTsKKyAgfQorICAuY29sLWxnLTIgeworICAgIHdpZHRoOiAxNi42NjY2NjY2NjY2NjY2NjQlOworICB9CisgIC5jb2wtbGctMSB7CisgICAgd2lkdGg6IDguMzMzMzMzMzMzMzMzMzMyJTsKKyAgfQorICAuY29sLWxnLXB1bGwtMTIgeworICAgIHJpZ2h0OiAxMDAlOworICB9CisgIC5jb2wtbGctcHVsbC0xMSB7CisgICAgcmlnaHQ6IDkxLjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLWxnLXB1bGwtMTAgeworICAgIHJpZ2h0OiA4My4zMzMzMzMzMzMzMzMzNCU7CisgIH0KKyAgLmNvbC1sZy1wdWxsLTkgeworICAgIHJpZ2h0OiA3NSU7CisgIH0KKyAgLmNvbC1sZy1wdWxsLTggeworICAgIHJpZ2h0OiA2Ni42NjY2NjY2NjY2NjY2NiU7CisgIH0KKyAgLmNvbC1sZy1wdWxsLTcgeworICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzMzMzMzYlOworICB9CisgIC5jb2wtbGctcHVsbC02IHsKKyAgICByaWdodDogNTAlOworICB9CisgIC5jb2wtbGctcHVsbC01IHsKKyAgICByaWdodDogNDEuNjY2NjY2NjY2NjY2NjclOworICB9CisgIC5jb2wtbGctcHVsbC00IHsKKyAgICByaWdodDogMzMuMzMzMzMzMzMzMzMzMzMlOworICB9CisgIC5jb2wtbGctcHVsbC0zIHsKKyAgICByaWdodDogMjUlOworICB9CisgIC5jb2wtbGctcHVsbC0yIHsKKyAgICByaWdodDogMTYuNjY2NjY2NjY2NjY2NjY0JTsKKyAgfQorICAuY29sLWxnLXB1bGwtMSB7CisgICAgcmlnaHQ6IDguMzMzMzMzMzMzMzMzMzMyJTsKKyAgfQorICAuY29sLWxnLXB1bGwtMCB7CisgICAgcmlnaHQ6IDA7CisgIH0KKyAgLmNvbC1sZy1wdXNoLTEyIHsKKyAgICBsZWZ0OiAxMDAlOworICB9CisgIC5jb2wtbGctcHVzaC0xMSB7CisgICAgbGVmdDogOTEuNjY2NjY2NjY2NjY2NjYlOworICB9CisgIC5jb2wtbGctcHVzaC0xMCB7CisgICAgbGVmdDogODMuMzMzMzMzMzMzMzMzMzQlOworICB9CisgIC5jb2wtbGctcHVzaC05IHsKKyAgICBsZWZ0OiA3NSU7CisgIH0KKyAgLmNvbC1sZy1wdXNoLTggeworICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLWxnLXB1c2gtNyB7CisgICAgbGVmdDogNTguMzMzMzMzMzMzMzMzMzM2JTsKKyAgfQorICAuY29sLWxnLXB1c2gtNiB7CisgICAgbGVmdDogNTAlOworICB9CisgIC5jb2wtbGctcHVzaC01IHsKKyAgICBsZWZ0OiA0MS42NjY2NjY2NjY2NjY2NyU7CisgIH0KKyAgLmNvbC1sZy1wdXNoLTQgeworICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMzMzMzJTsKKyAgfQorICAuY29sLWxnLXB1c2gtMyB7CisgICAgbGVmdDogMjUlOworICB9CisgIC5jb2wtbGctcHVzaC0yIHsKKyAgICBsZWZ0OiAxNi42NjY2NjY2NjY2NjY2NjQlOworICB9CisgIC5jb2wtbGctcHVzaC0xIHsKKyAgICBsZWZ0OiA4LjMzMzMzMzMzMzMzMzMzMiU7CisgIH0KKyAgLmNvbC1sZy1wdXNoLTAgeworICAgIGxlZnQ6IDA7CisgIH0KKyAgLmNvbC1sZy1vZmZzZXQtMTIgeworICAgIG1hcmdpbi1sZWZ0OiAxMDAlOworICB9CisgIC5jb2wtbGctb2Zmc2V0LTExIHsKKyAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NjY2NjYlOworICB9CisgIC5jb2wtbGctb2Zmc2V0LTEwIHsKKyAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMzMzMzQlOworICB9CisgIC5jb2wtbGctb2Zmc2V0LTkgeworICAgIG1hcmdpbi1sZWZ0OiA3NSU7CisgIH0KKyAgLmNvbC1sZy1vZmZzZXQtOCB7CisgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjY2NjY2JTsKKyAgfQorICAuY29sLWxnLW9mZnNldC03IHsKKyAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMzMzMzM2JTsKKyAgfQorICAuY29sLWxnLW9mZnNldC02IHsKKyAgICBtYXJnaW4tbGVmdDogNTAlOworICB9CisgIC5jb2wtbGctb2Zmc2V0LTUgeworICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY2NjY2NyU7CisgIH0KKyAgLmNvbC1sZy1vZmZzZXQtNCB7CisgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMzMzMzJTsKKyAgfQorICAuY29sLWxnLW9mZnNldC0zIHsKKyAgICBtYXJnaW4tbGVmdDogMjUlOworICB9CisgIC5jb2wtbGctb2Zmc2V0LTIgeworICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY2NjY2NjQlOworICB9CisgIC5jb2wtbGctb2Zmc2V0LTEgeworICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMzMzMzMiU7CisgIH0KKyAgLmNvbC1sZy1vZmZzZXQtMCB7CisgICAgbWFyZ2luLWxlZnQ6IDA7CisgIH0KK30KZGlmZiAtLWdpdCBhL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL3BhZ2VfYW5hbHl0aWNzLmpzIGIvcGxhbmV0c3RhY2svY29yZS9zdGF0aWMvcGFnZV9hbmFseXRpY3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE3YjQwMwotLS0gL2Rldi9udWxsCisrKyBiL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL3BhZ2VfYW5hbHl0aWNzLmpzCkBAIC0wLDAgKzEsODMgQEAKK2Z1bmN0aW9uIGdldE9iamVjdFF1ZXJ5KCkgeworICAgIHZhciBzZWxlY3RlZE5vZGVUeHQgPSAkKCcuY3VycmVudE9yaWdpbmFsTm9kZScpLnRleHQoKTsKKyAgICBzZWxlY3RlZE5vZGVUeHQgPSBzZWxlY3RlZE5vZGVUeHQudHJpbSgpOworICAgIHNlbGVjdGVkTm9kZVR4dCA9IHNlbGVjdGVkTm9kZVR4dC5zcGxpdCgnICcpLmpvaW4oJycpOy8vc2VsZWN0ZWROb2RlVHh0LnJlcGxhY2UoIiAiLCAiIikKKyAgICB2YXIgcGFyZW50Tm9kZVR4dCA9ICQoJy5zZWxlY3RlZE1haW5OYXYnKS50ZXh0KCk7CisgICAgcGFyZW50Tm9kZVR4dCA9IHBhcmVudE5vZGVUeHQucmVwbGFjZSgiL1xuIiwiIik7CisgICAgcGFyZW50Tm9kZVR4dCA9IHBhcmVudE5vZGVUeHQucmVwbGFjZSgiuyIsIiIpOworICAgIHBhcmVudE5vZGVUeHQgPSBwYXJlbnROb2RlVHh0LnRyaW0oKTsKKyAgICBpZiAocGFyZW50Tm9kZVR4dC5sZW5ndGggPiAwICYmIHBhcmVudE5vZGVUeHQuY2hhckF0KHBhcmVudE5vZGVUeHQubGVuZ3RoLTEpPT0ncycpIHsKKyAgICAgICAgICAgIHBhcmVudE5vZGVUeHQgPSBwYXJlbnROb2RlVHh0LnN1YnN0cmluZygwLCBwYXJlbnROb2RlVHh0Lmxlbmd0aC0xKTsKKyAgICB9CisKKyAgICBpZiAocGFyZW50Tm9kZVR4dCA9PSAiU2xpY2UiKSB7CisgICAgICAgIHJldHVybiAiJnNsaWNlPSIgKyBzZWxlY3RlZE5vZGVUeHQ7CisgICAgfSBlbHNlIGlmIChwYXJlbnROb2RlVHh0ID09ICJTaXRlIikgeworICAgICAgICByZXR1cm4gIiZzaXRlPSIgKyBzZWxlY3RlZE5vZGVUeHQ7CisgICAgfSBlbHNlIGlmIChwYXJlbnROb2RlVHh0ID09ICJOb2RlIikgeworICAgICAgICByZXR1cm4gIiZub2RlPSIgKyBzZWxlY3RlZE5vZGVUeHQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KK30KKworCitmdW5jdGlvbiBzZXRQYWdlU3RhdEludChsYWJlbE5hbWUsIHZhbHVlTmFtZSwgbGVnZW5kLCB1bml0cywgdmFsdWUpIHsKKyAgICAkKCcuJytsYWJlbE5hbWUpLnRleHQobGVnZW5kKS5zaG93KCk7CisgICAgJCgnLicrdmFsdWVOYW1lKS50ZXh0KE1hdGgucm91bmQodmFsdWUpK3VuaXRzKS5zaG93KCk7Cit9CisKK2Z1bmN0aW9uIHNldFBhZ2VTdGF0RmxvYXQobGFiZWxOYW1lLCB2YWx1ZU5hbWUsIGxlZ2VuZCwgdW5pdHMsIHZhbHVlLCBkcCkgeworICAgICQoJy4nK2xhYmVsTmFtZSkudGV4dChsZWdlbmQpLnNob3coKTsKKyAgICAkKCcuJyt2YWx1ZU5hbWUpLnRleHQoTnVtYmVyKHZhbHVlKS50b0ZpeGVkKGRwKSt1bml0cykuc2hvdygpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBub2RlIGNvdW50IGFuZCBhdmVyYWdlIGNwdSB1dGlsaXphdGlvbgorCitmdW5jdGlvbiB1cGRhdGVQYWdlQW5hbHl0aWNzRGF0YShzdW1tYXJ5RGF0YSkgeworICAgIHdpbmRvdy5wYWdlQW5hbHl0aWNzRGF0YSA9IHN1bW1hcnlEYXRhOworICAgIGxhc3RSb3cgPSBzdW1tYXJ5RGF0YS5yb3dzLmxlbmd0aC0xOworICAgIHNldFBhZ2VTdGF0SW50KCJub2Rlc0xhYmVsIiwgIm5vZGVzVmFsdWUiLCAiTm9kZSBDb3VudCIsICIiLCBzdW1tYXJ5RGF0YS5yb3dzW2xhc3RSb3ddWyJjb3VudF9ob3N0bmFtZSJdKTsKKyAgICBzZXRQYWdlU3RhdEludCgiY3B1TGFiZWwiLCAiY3B1VmFsdWUiLCAiQXZnIExvYWQiLCAiJSIsIHN1bW1hcnlEYXRhLnJvd3NbbGFzdFJvd11bImF2Z19jcHUiXSk7Cit9CisKK2Z1bmN0aW9uIHVwZGF0ZVBhZ2VBbmFseXRpY3MoKSB7CisgICAgJC5hamF4KHsKKyAgICB1cmwgOiAnL2FuYWx5dGljcy9iaWdxdWVyeS8/YXZnPSVjcHUmY291bnQ9JWhvc3RuYW1lJyArIGdldE9iamVjdFF1ZXJ5KCksCisgICAgZGF0YVR5cGUgOiAnanNvbicsCisgICAgdHlwZSA6ICdHRVQnLAorICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKG5ld0RhdGEpCisgICAgeworICAgICAgICB1cGRhdGVQYWdlQW5hbHl0aWNzRGF0YShuZXdEYXRhKTsKKyAgICB9Cit9KTsKKyAgICBzZXRUaW1lb3V0KHVwZGF0ZVBhZ2VBbmFseXRpY3MsIDMwMDAwKTsKK30KKworc2V0VGltZW91dCh1cGRhdGVQYWdlQW5hbHl0aWNzLCA1MDAwKTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gYmFuZHdpZHRoCisKK2Z1bmN0aW9uIHVwZGF0ZVBhZ2VCYW5kd2lkdGhEYXRhKHN1bW1hcnlEYXRhKSB7CisgICAgd2luZG93LnBhZ2VCYW5kRGF0YSA9IHN1bW1hcnlEYXRhOworICAgIGxhc3RSb3cgPSBzdW1tYXJ5RGF0YS5yb3dzLmxlbmd0aC0xOworICAgIHNldFBhZ2VTdGF0RmxvYXQoImJhbmR3aWR0aExhYmVsIiwgImJhbmR3aWR0aFZhbHVlIiwgIkJhbmR3aWR0aCIsICJHYnBzIiwgc3VtbWFyeURhdGEucm93c1tsYXN0Um93XVsic3VtX2NvbXB1dGVkX2J5dGVzX3NlbnRfZGl2X2VsYXBzZWQiXSo4LjAvMTAyNC8xMDI0LzEwMjQsMik7Cit9CisKK2Z1bmN0aW9uIHVwZGF0ZVBhZ2VCYW5kd2lkdGgoKSB7CisgICAgJC5hamF4KHsKKyAgICB1cmwgOiAnL2FuYWx5dGljcy9iaWdxdWVyeS8/Y29tcHV0ZWQ9JWJ5dGVzX3NlbnQvJWVsYXBzZWQnICsgZ2V0T2JqZWN0UXVlcnkoKSwKKyAgICBkYXRhVHlwZSA6ICdqc29uJywKKyAgICB0eXBlIDogJ0dFVCcsCisgICAgc3VjY2VzczogZnVuY3Rpb24obmV3RGF0YSkKKyAgICB7CisgICAgICAgIHVwZGF0ZVBhZ2VCYW5kd2lkdGhEYXRhKG5ld0RhdGEpOworICAgIH0KK30pOworICAgIHNldFRpbWVvdXQodXBkYXRlUGFnZUJhbmR3aWR0aCwgMzAwMDApOworfQorCitzZXRUaW1lb3V0KHVwZGF0ZVBhZ2VCYW5kd2lkdGgsIDUwMDApOworCmRpZmYgLS1naXQgYS9wbGFuZXRzdGFjay9jb3JlL3N0YXRpYy9wbGFuZXRzdGFjay5jc3MgYi9wbGFuZXRzdGFjay9jb3JlL3N0YXRpYy9wbGFuZXRzdGFjay5jc3MKaW5kZXggZDU5YWRiNy4uNzZiYzIzYiAxMDA2NDQKLS0tIGEvcGxhbmV0c3RhY2svY29yZS9zdGF0aWMvcGxhbmV0c3RhY2suY3NzCisrKyBiL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL3BsYW5ldHN0YWNrLmNzcwpAQCAtMSwzICsxLDY0IEBACisuYWxpZ25DZW50ZXIgeworICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OworICAgIGFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKK30KK3RhYmxlLmRhdGFUYWJsZSB0ci5vZGQgeworYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsKK30KK3RhYmxlLmRhdGFUYWJsZSB0ci5vZGQgdGQuc29ydGluZ18xIHsKK2JhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7Cit9Cit0YWJsZS5kYXRhVGFibGUgdHIuZXZlbiB0ZC5zb3J0aW5nXzEgeworYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsKK30KK3RhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aCBkaXYuRGF0YVRhYmxlc19zb3J0X3dyYXBwZXIgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorLmRhc2hib2FyZC1ocGMtc2xpdmVyIC51aS13aWRnZXQtaGVhZGVyLCAuZGFzaGJvYXJkLWhwYy1zbGl2ZXIgLnVpLWRpYWxvZy10aXRsZSwgLmRhc2hib2FyZC1ocGMtc2xpdmVyIC51aS1kaWFsb2ctdGl0bGViYXJ7Cit9CisudWktd2lkZ2V0LW92ZXJsYXkgeworICAgIGJhY2tncm91bmQ6IGJsYWNrICFpbXBvcnRhbnQ7Cit9CisudWktY29ybmVyLWFsbCB7Citib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHggIWltcG9ydGFudDsKK2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDsKK30KKworI3N1aXQtY2VudGVyIHsKKyAgbWluLXdpZHRoOiA5NzdweCAhaW1wb3J0YW50OworfQorI21pbkRhc2hib2FyZCB7CisgIG1pbi13aWR0aDo2MjVweDsKKyAgZGlzcGxheTppbmxpbmU7CisgIGZsb2F0OiByaWdodDsKK30KKy51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eworYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OworYm9yZGVyLXRvcDogMHB4ICFpbXBvcnRhbnQ7Citib3JkZXItbGVmdDogMHB4ICFpbXBvcnRhbnQ7Citib3JkZXItcmlnaHQ6IDBweCAhaW1wb3J0YW50OworfQorLnVpLXdpZGdldC1oZWFkZXIgeworYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OworYm9yZGVyLXRvcDogMHB4ICFpbXBvcnRhbnQ7Citib3JkZXItbGVmdDogMHB4ICFpbXBvcnRhbnQ7Citib3JkZXItcmlnaHQ6IDBweCAhaW1wb3J0YW50OworfQorI3N1aXRfZm9ybV90YWJzIHsKK2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQjVEMUVBOworYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OworYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7Citib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMTgxLCAyMDksIDIzNCk7Citjb2xvcjojMTA1RTlFOworfQorI3RhYnMgeworZm9udC1zaXplOiAxMnB4OworYm9yZGVyOiAwcHg7Cit9CisudWktc3RhdGUtZGVmYXVsdCBhLCAudWktc3RhdGUtZGVmYXVsdCBhOmxpbmssIC51aS1zdGF0ZS1kZWZhdWx0IGE6dmlzaXRlZCB7Citjb2xvcjogIzEwNUU5RSA7Cit9CisKIC5yZXF1aXJlZDphZnRlciB7Y29sb3I6IHJlZCAhIGltcG9ydGFudDsgZm9udC1zaXplOiAxOHB4IH0KICMuYnRuLXN1Y2Nlc3Mge2NvbG9yOmJsYWNrfQogI3N1aXQtY2VudGVyIHsKQEAgLTI1LDYgKzg2LDcgQEAKIC8qRm9yIGluY3JlYXNpbmcgdGhlIGhlYWRlciBoZWlnaHQqLwogLmhlYWRlciB7CiBoZWlnaHQ6IDkwcHg7CittaW4td2lkdGg6IDEzMjFweDsKIH0KIAogLypGb3IgY2hhbmdpbmcgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIGxlZnQgc2lkZSBuYXZpZ2F0aW9uIGxpc3QgaXRlbXMqLwpAQCAtNDg4LDEyICs1NTAsMTUgQEAKICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwOyovCiB9CiAKLS5pY29uLWhvbWUgLC5pY29uLWRlcGxveW1lbnQgLC5pY29uLXNpdGUgLC5pY29uLXNsaWNlICwuaWNvbi11c2VyLCAuaWNvbi1yZXNlcnZhdGlvbnsKKy5pY29uLWhvbWUgLC5pY29uLWRlcGxveW1lbnQgLC5pY29uLXNpdGUgLC5pY29uLXNsaWNlICwuaWNvbi11c2VyLCAuaWNvbi1yZXNlcnZhdGlvbiwgLmljb24tYXBwewogYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7CiB3aWR0aDoyMnB4OwogaGVpZ2h0OjIycHg7CQogfQogCisuaWNvbi1hcHAgeworYmFja2dyb3VuZC1pbWFnZTogdXJsKCJvcGVuY2xvdWRBcHAucG5nIik7Cit9CiAuaWNvbi1ob21lIHsKIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiSG9tZS5wbmciKTsKIH0KZGlmZiAtLWdpdCBhL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL3BsYW5ldHN0YWNrX2dyYXBocy5qcyBiL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL3BsYW5ldHN0YWNrX2dyYXBocy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTYyYzRiCi0tLSAvZGV2L251bGwKKysrIGIvcGxhbmV0c3RhY2svY29yZS9zdGF0aWMvcGxhbmV0c3RhY2tfZ3JhcGhzLmpzCkBAIC0wLDAgKzEsMTM5IEBACitnb29nbGUubG9hZCgndmlzdWFsaXphdGlvbicsICcxJywgeydwYWNrYWdlcycgOiBbJ2NvbnRyb2xzJywndGFibGUnLCdjb3JlY2hhcnQnLCdnZW9jaGFydCddfSk7CisKK2Z1bmN0aW9uIHJlbmRlckNoYXJ0SnNvbihqc29uZGF0YSwgeUZpZWxkLCB4RmllbGQsIGxlZ2VuZCkgeworICAgICQoJyNncmFwaCcpLmVtcHR5KCk7CisgICAgJCgnI2NoYXJ0c01vZGFsJykubW9kYWwoJ3Nob3cnKTsKKyAgICAkKCcubW9kYWwtYm9keScpLnNjcm9sbFRvcCgwKTsKKworICAgIHZhciBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOworICAgIGRhdGEuYWRkQ29sdW1uKCJudW1iZXIiLCAiRGF0ZSIpOworICAgIGRhdGEuYWRkQ29sdW1uKCJudW1iZXIiLCAiTm9kZUNvdW50Iik7CisKKyAgICB2YXIgYXJyID0gW107CisgICAganNvbmRhdGEucm93cy5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgYXJyLnB1c2goWyArZFt5RmllbGRdLCArZFt4RmllbGRdIF0pOworICAgIH0pOworCisgICAgY29uc29sZS5sb2coYXJyKTsKKworICAgIGRhdGEuYWRkUm93cyhhcnIpOworCisgICAgdmFyIGxpbmVDaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5DaGFydFdyYXBwZXIoeworICAgICAgICAgICdjaGFydFR5cGUnOiAnTGluZUNoYXJ0JywKKyAgICAgICAgICAnY29udGFpbmVySWQnOiAnZ3JhcGgnLAorICAgICAgICAgICdvcHRpb25zJzogeworICAgICAgICAgICAgJ3dpZHRoJzogNTIwLAorICAgICAgICAgICAgJ2hlaWdodCc6IDMwMCwKKyAgICAgICAgICAgICd0aXRsZSc6ICdOZXR3b3JrLXdpZGUgdXNhZ2UnLAorCQkJJ3BhZ2VzJzogdHJ1ZSwKKwkJCSdudW1Sb3dzJzogOQorICAgICAgICAgIH0sCisgICAgICAgICAgJ3ZpZXcnOiB7J2NvbHVtbnMnOiBbMCwgMV19CisgICAgICAgIH0pOworICAgICAgICBsaW5lQ2hhcnQuc2V0RGF0YVRhYmxlKGRhdGEpOworICAgICAgICBsaW5lQ2hhcnQuZHJhdygpOworfQorCitmdW5jdGlvbiByZW5kZXJDaGFydChvcmlnUXVlcnksIHlDb2x1bW4sIHhDb2x1bW4pIHsKKyAgICAkKCcjZ3JhcGgnKS5lbXB0eSgpOworICAgICQoJyNjaGFydHNNb2RhbCcpLm1vZGFsKCdzaG93Jyk7CisgICAgJCgnLm1vZGFsLWJvZHknKS5zY3JvbGxUb3AoMCkKKworICAgIHZhciBxdWVyeVN0cmluZyA9IGVuY29kZVVSSUNvbXBvbmVudChvcmlnUXVlcnkpOworICAgIHZhciBzZXJ2ZXJQYXJ0ID0gImh0dHA6Ly9jbG91ZC1zY3J1dGlueS5hcHBzcG90LmNvbS9jb21tYW5kP2FjdGlvbj1zZW5kX3F1ZXJ5JmZvcmNlPUNvbHVtbkNoYXJ0JnE9IjsKKyAgICB2YXIgZGF0YVNvdXJjZVVybCA9IHNlcnZlclBhcnQgKyBxdWVyeVN0cmluZzsKKworICAgIC8vdmFyIGRhdGFTb3VyY2VVcmwgPSAiaHR0cDovL25vZGUzNi5wcmluY2V0b24udmljY2kub3JnOjgwMDAvYW5hbHl0aWNzL2JpZ3F1ZXJ5Lz9hdmc9JTI1Y3B1JmNvdW50PSUyNWhvc3RuYW1lJmZvcm1hdD1yYXciOworCisgICAgdmFyIHF1ZXJ5ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLlF1ZXJ5KGRhdGFTb3VyY2VVcmwpCisgICAgcXVlcnkgJiYgcXVlcnkuYWJvcnQoKTsKKyAgICBjb25zb2xlLmxvZygicXVlcnkuc2VuZCIpCisgICAgcXVlcnkuc2VuZChmdW5jdGlvbihyZXNwb25zZSkge2hhbmRsZVJlc3BvbnNlX3BzZyhyZXNwb25zZSwgeUNvbHVtbiwgeENvbHVtbik7fSk7CisgICAgY29uc29sZS5sb2coInF1ZXJ5LnNlbnQiKQorfQorCisvLyBOT1RFOiBhcHBlbmRlZCBfcHNnIHRvIHNob3dMaW5lKCkgYW5kIGhhbmRsZVJlc3BvbnNlKCkgdG8gcHJldmVudCBjb25mbGljdAorLy8gICAgICAgd2l0aCBTYXBhbidzIGFuYWx5dGljcyBwYWdlLgorCitmdW5jdGlvbiBzaG93TGluZV9wc2coZHQpIHsKKyAgICBjb25zb2xlLmxvZygic2hvd2xpbmUiKQorICAgIHZhciBsaW5lQ2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ2hhcnRXcmFwcGVyKHsKKyAgICAgICAgICAnY2hhcnRUeXBlJzogJ0xpbmVDaGFydCcsCisgICAgICAgICAgJ2NvbnRhaW5lcklkJzogJ2dyYXBoJywKKyAgICAgICAgICAnb3B0aW9ucyc6IHsKKyAgICAgICAgICAgICd3aWR0aCc6IDUyMCwKKyAgICAgICAgICAgICdoZWlnaHQnOiAzMDAsCisgICAgICAgICAgICAndGl0bGUnOiAnTmV0d29yay13aWRlIHVzYWdlJywKKwkJCSdwYWdlcyc6IHRydWUsCisJCQknbnVtUm93cyc6IDkKKyAgICAgICAgICB9LAorICAgICAgICAgICd2aWV3Jzogeydjb2x1bW5zJzogWzAsIDFdfQorICAgICAgICB9KTsKKyAgICAgICAgbGluZUNoYXJ0LnNldERhdGFUYWJsZShkdCk7CisgICAgICAgIGxpbmVDaGFydC5kcmF3KCk7Cit9CisKK2Z1bmN0aW9uIGhhbmRsZVJlc3BvbnNlX3BzZyhyZXNwb25zZSwgeUNvbHVtbiwgeENvbHVtbikgeworICAgIGNvbnNvbGUubG9nKCJoYW5kbGVSZXNwb25zZSIpCisKKyAgICB2YXIgc3VwcG9ydGVkQ2xhc3NlcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgJ1RhYmxlJzpnb29nbGUudmlzdWFsaXphdGlvbi5UYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgJ0xpbmVDaGFydCc6Z29vZ2xlLnZpc3VhbGl6YXRpb24uTGluZUNoYXJ0LAorICAgICAgICAgICAgICAgICAgICAnU2NhdHRlckNoYXJ0Jzpnb29nbGUudmlzdWFsaXphdGlvbi5TY2F0dGVyQ2hhcnQsCisgICAgICAgICAgICAgICAgICAgICdDb2x1bW5DaGFydCc6Z29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQsCisgICAgICAgICAgICAgICAgICAgICdHZW9DaGFydCc6Z29vZ2xlLnZpc3VhbGl6YXRpb24uR2VvQ2hhcnQsCisgICAgICAgICAgICAgICAgICAgICdQaWVDaGFydCc6Z29vZ2xlLnZpc3VhbGl6YXRpb24uUGllQ2hhcnQsCisgICAgICAgICAgICAgICAgICAgICdIaXN0b2dyYW0nOmdvb2dsZS52aXN1YWxpemF0aW9uLkhpc3RvZ3JhbX07CisKKyAgICB2YXIgcHJveHkgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ2hhcnRXcmFwcGVyKHsKKyAgICAgICdjaGFydFR5cGUnOiAnVGFibGUnLAorICAgICAgJ2NvbnRhaW5lcklkJzogJ2dyYXBoX3dvcmsnLAorICAgICAgJ29wdGlvbnMnOiB7CisgICAgICAgICd3aWR0aCc6IDgwMCwKKyAgICAgICAgJ2hlaWdodCc6IDMwMCwKKyAgICAgICAgICAgICAgICAgICAgcGFnZVNpemU6NSwKKyAgICAgICAgICAgICAgICAgICAgcGFnZTonZW5hYmxlJywKKyAgICAgICAgJ2xlZ2VuZCc6ICdub25lJywKKyAgICAgICAgJ3RpdGxlJzogJ05vZGVzJworICAgICAgfSwKKyAgICAgICd2aWV3Jzogeydjb2x1bW5zJzogWzAsMV19CisgICAgfSk7CisKKyAgICBnb29nbGUudmlzdWFsaXphdGlvbi5ldmVudHMuYWRkTGlzdGVuZXIocHJveHksICdyZWFkeScsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgLy8gMCAtIHRpbWUgMSAtIGNpdHkgMiAtIG5vZGUgMyAtIHNpdGUgNCAtIGNwdSA1IC0gYnl0ZXMKKyAgICAgICAgdmFyIGR0ID0gcHJveHkuZ2V0RGF0YVRhYmxlKCk7CisgICAgICAgIHZhciBncm91cGVkRGF0YTEgPSBnb29nbGUudmlzdWFsaXphdGlvbi5kYXRhLmdyb3VwKGR0LCBbeUNvbHVtbl0sIFt7CisgICAgICAgICAgICBjb2x1bW46IHhDb2x1bW4sCisgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJywKKyAgICAgICAgICAgIGxhYmVsOiBkdC5nZXRDb2x1bW5MYWJlbCh4Q29sdW1uKSwKKyAgICAgICAgICAgIGFnZ3JlZ2F0aW9uOiBnb29nbGUudmlzdWFsaXphdGlvbi5kYXRhLnN1bX1dKTsKKworICAgICAgICBzaG93TGluZV9wc2coZ3JvdXBlZERhdGExKTsKKworICAgICAgICBjb25zb2xlLmxvZyh4Q29sdW1uKTsKKyAgICB9KTsKKworICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLmdldFJlYXNvbnMoKSk7CisgICAgY29uc29sZS5sb2cocmVzcG9uc2UuZ2V0RGF0YVRhYmxlKCkpOworICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLmdldERldGFpbGVkTWVzc2FnZSgpKTsKKyAgICBjb25zb2xlLmxvZyhyZXNwb25zZS5nZXRNZXNzYWdlKCkpOworCisgICAgcHJveHkuc2V0RGF0YVRhYmxlKHJlc3BvbnNlLmdldERhdGFUYWJsZSgpKTsKKworICAgIHByb3h5LmRyYXcoKTsKK30KKworJCgnLm5vZGVzTGFiZWwsIC5ub2Rlc1ZhbHVlJykuY2xpY2soZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBqc29uRGF0YSA9IHdpbmRvdy5wYWdlQW5hbHl0aWNzRGF0YTsKKyAgICAgICAgcmVuZGVyQ2hhcnQoanNvbkRhdGEucXVlcnksIDAsIDIpOworICAgICAgICAvL3JlbmRlckNoYXJ0SnNvbihqc29uRGF0YSwgIk1pbnV0ZVRpbWUiLCAiY291bnRfaG9zdG5hbWUiLCAiTm9kZSBDb3VudCIpOworfSk7CisKKyQoJy5jcHVMYWJlbCwgLmNwdVZhbHVlJykuY2xpY2soZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBqc29uRGF0YSA9IHdpbmRvdy5wYWdlQW5hbHl0aWNzRGF0YTsKKyAgICAgICAgcmVuZGVyQ2hhcnQoanNvbkRhdGEucXVlcnksMCwgMSk7Cit9KTsKKyQoJy5iYW5kd2lkdGhMYWJlbCwgLmJhbmR3aWR0aFZhbHVlJykuY2xpY2soZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBqc29uRGF0YSA9IHdpbmRvdy5wYWdlQmFuZERhdGE7CisgICAgICAgIHJlbmRlckNoYXJ0KGpzb25EYXRhLnF1ZXJ5LCAwLCAxKTsKK30pOwpkaWZmIC0tZ2l0IGEvcGxhbmV0c3RhY2svY29yZS9zdGF0aWMvcGxhbmV0c3RhY2tfZ3JhcGhzX29sZC5qcyBiL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL3BsYW5ldHN0YWNrX2dyYXBoc19vbGQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2YWZlNgotLS0gL2Rldi9udWxsCisrKyBiL3BsYW5ldHN0YWNrL2NvcmUvc3RhdGljL3BsYW5ldHN0YWNrX2dyYXBoc19vbGQuanMKQEAgLTAsMCArMSw4OSBAQAorJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CisKK2Z1bmN0aW9uIHJlbmRlckNoYXJ0KGpzb25EYXRhLCB5RmllbGQsIHhGaWVsZCwgbGVnZW5kKSB7CisgICAgJCgnI2dyYXBoJykuZW1wdHkoKTsKKyAgICAkKCcjY2hhcnRzTW9kYWwnKS5tb2RhbCgnc2hvdycpOworICAgICQoJy5tb2RhbC1ib2R5Jykuc2Nyb2xsVG9wKDApCisgICAgdmFyIG1hcmdpbiA9IHt0b3A6IDAsIHJpZ2h0OiAxMDAsIGJvdHRvbTogMTAwLCBsZWZ0OiAxNzV9LAorICAgIHdpZHRoID0gNTIwIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQsCisgICAgaGVpZ2h0ID0gMzAwIC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b207CisKKyAgICB2YXIgcGFyc2VEYXRlID0gZDMudGltZS5mb3JtYXQoIiVZLSVtLSVtLSVILSVNIikucGFyc2U7CisKKyAgICB2YXIgeCA9IGQzLnRpbWUuc2NhbGUoKQorICAgIC5yYW5nZShbMCwgd2lkdGhdKTsKKworICAgIHZhciB5ID0gZDMuc2NhbGUubGluZWFyKCkKKyAgICAucmFuZ2UoW2hlaWdodCwgMF0pOworCisgICAgdmFyIHhBeGlzID0gZDMuc3ZnLmF4aXMoKQorICAgIC5zY2FsZSh4KQorICAgIC50aWNrcyhkMy50aW1lLm1pbnV0ZXMsIDE1KQorICAgIC5vcmllbnQoImJvdHRvbSIpOworCisgICAgdmFyIHlBeGlzID0gZDMuc3ZnLmF4aXMoKQorICAgIC5zY2FsZSh5KQorICAgIC50aWNrcyg0KQorICAgIC5vcmllbnQoImxlZnQiKTsKKworICAgIHZhciBsaW5lID0gZDMuc3ZnLmxpbmUoKQorICAgIC54KGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHgoZC5kYXRlKTsgfSkKKyAgICAueShmdW5jdGlvbihkKSB7IHJldHVybiB5KGQudmFsdWUpOyB9KTsKKworICAgIHZhciBzdmcgPSBkMy5zZWxlY3QoIiNncmFwaCIpLmFwcGVuZCgic3ZnIikKKyAgICAuYXR0cigid2lkdGgiLCB3aWR0aCArIG1hcmdpbi5sZWZ0ICsgbWFyZ2luLnJpZ2h0KQorICAgIC5hdHRyKCJoZWlnaHQiLCBoZWlnaHQgKyBtYXJnaW4udG9wICsgbWFyZ2luLmJvdHRvbSkKKyAgICAuYXBwZW5kKCJnIikKKyAgICAuYXR0cigidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgiICsgbWFyZ2luLmxlZnQgKyAiLCIgKyBtYXJnaW4udG9wICsgIikiKTsKKworICAgIGRhdGEgPSBqc29uRGF0YS5yb3dzOworICAgICQoJyNjaGFydEhlYWRpbmcnKS50ZXh0KGxlZ2VuZCk7CisgICAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgICAgIGQuZGF0ZSA9IG5ldyBEYXRlKGRbeUZpZWxkXSoxMDAwKTsKKyAgICAgICAgICAgIGQudmFsdWUgPSArZFt4RmllbGRdOworICAgICAgICAgICAgfSk7CisKKyAgICB4LmRvbWFpbihkMy5leHRlbnQoZGF0YSwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5kYXRlOyB9KSk7CisKKyAgICB2YXIgZSA9IGQzLmV4dGVudChkYXRhLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLnZhbHVlO30pOworICAgIGUgPSBbZVswXS0xLGVbMV0rMV07CisKKyAgICB5LmRvbWFpbihlKTsKKworICAgIHN2Zy5hcHBlbmQoImciKQorICAgIC5hdHRyKCJjbGFzcyIsICJ4IGF4aXMiKQorICAgIC5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDAsIiArIGhlaWdodCArICIpIikKKyAgICAuYXR0cigieCIsIDUpCisgICAgLmNhbGwoeEF4aXMpOworCisgICAgc3ZnLmFwcGVuZCgiZyIpCisgICAgLmF0dHIoImNsYXNzIiwgInkgYXhpcyIpCisgICAgLmNhbGwoeUF4aXMpCisgICAgLmFwcGVuZCgidGV4dCIpCisgICAgLmF0dHIoInRyYW5zZm9ybSIsICJyb3RhdGUoLTkwKSIpCisgICAgLmF0dHIoInkiLCA2KQorICAgIC5hdHRyKCJkeSIsICIuNzFlbSIpCisgICAgLnN0eWxlKCJ0ZXh0LWFuY2hvciIsICJlbmQiKQorICAgIC50ZXh0KGxlZ2VuZCkKKyAgICAuYXR0cigiY2xhc3MiLCAibGVnZW5kIik7CisKKyAgICBzdmcuYXBwZW5kKCJwYXRoIikKKyAgICAuZGF0dW0oZGF0YSkKKyAgICAuYXR0cigiY2xhc3MiLCAibGluZSIpCisgICAgLmF0dHIoImQiLCBsaW5lKTsKK30KKworJCgnLm5vZGVzTGFiZWwsIC5ub2Rlc1ZhbHVlJykuY2xpY2soZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBqc29uRGF0YSA9IHdpbmRvdy5wYWdlQW5hbHl0aWNzRGF0YTsKKyAgICAgICAgcmVuZGVyQ2hhcnQoanNvbkRhdGEsICJNaW51dGVUaW1lIiwgImNvdW50X2hvc3RuYW1lIiwgIk5vZGUgQ291bnQiKTsKK30pOworJCgnLmNwdUxhYmVsLCAuY3B1VmFsdWUnKS5jbGljayhmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGpzb25EYXRhID0gd2luZG93LnBhZ2VBbmFseXRpY3NEYXRhOworICAgICAgICByZW5kZXJDaGFydChqc29uRGF0YSwgIk1pbnV0ZVRpbWUiLCAiYXZnX2NwdSIsICJBdmVyYWdlIENwdSIpOworfSk7CiskKCcuYmFuZHdpZHRoTGFiZWwsIC5iYW5kd2lkdGhWYWx1ZScpLmNsaWNrKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIganNvbkRhdGEgPSB3aW5kb3cucGFnZUJhbmREYXRhOworICAgICAgICByZW5kZXJDaGFydChqc29uRGF0YSwgIk1pbnV0ZVRpbWUiLCAic3VtX2NvbXB1dGVkX2J5dGVzX3NlbnRfZGl2X2VsYXBzZWQiLCAiQmFuZHdpZHRoIik7Cit9KTsKKworfSkK