<!-- TROJAN_ENCRYPTED -->LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFRlbXBsYXRlIE5hbWU6IFNpbXBseSBDb25zdHJ1Y3Rpb24gSFRNTCBUZW1wbGF0ZS4KICBUZW1wbGF0ZSBVUkk6ICMKICBEZXNjcmlwdGlvbjogU2ltcGx5IENvbnN0cnVjdGlvbiBpcyBhIHVuaXF1ZSB3ZWJzaXRlIHRlbXBsYXRlIGRlc2lnbmVkIGluIEhUTUwgd2l0aCBhIHNpbXBsZSAmIGJlYXV0aWZ1bCBsb29rLiBUaGVyZSBpcyBhbiBleGNlbGxlbnQgc29sdXRpb24gZm9yIGNyZWF0aW5nIGNsZWFuLCB3b25kZXJmdWwgYW5kIHRyZW5kaW5nIG1hdGVyaWFsIGRlc2lnbiBjb3Jwb3JhdGUsIGNvcnBvcmF0ZSBhbnkgb3RoZXIgcHVycG9zZXMgd2Vic2l0ZXMuCiAgQXV0aG9yOiBEZXZJdGVtcwogIFZlcnNpb246IDEuMAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgCiAgQ1NTIElOREVYCiAgPT09PT09PT09PT09PT09PT09PQoKICAwMS4gR29vZ2xlIGZvbnRzCiAgMDIuIFNjcm9sbCBUbyBUb3AKICAwMy4gQWJvdXQgQXJlYQogIDA0LiBTZXJ2aWNlIEFyZWEKICAwNS4gT2ZmZXIgQXJlYQogIDA2LiBQcm9qZWN0IEFyZWEKICAwNy4gQ2FsbCB0byBBY3Rpb24gQXJlYQogIDA4LiBUZWFtIEFyZWEKICAwOS4gVGVzdGltb25pYWwgQXJlYQogIDEwLiBCbG9nIEFyZWEKICAxMS4gQnJhbmQgQXJlYQogIDEyLiBOZXdzbGV0dGVyIEFyZWEKICAxMy4gQ291bnRlcnVwIEFyZWEKICAxNC4gR29vZ2xlIE1hcCBBcmVhCiAgMTUuIEJyYWRjYXVtcCBBcmVhCiAgMTYuIE91ciBNaXNzaW9uIEFyZWEKICAxNy4gUHJvamVjdCBBcmVhCiAgMTguIEJsb2cgRGV0YWlscyBBcmVhCiAgMTkuIFNpbmdsZSBTZXJ2aWNlIEFyZWEKICAyMC4gU2luZ2xlIFByb2plY3QgQXJlYQogIDIxLiBDb250YWN0IEFyZWEKICAyMi4gTG9nIEluIFJlZ2lzdGVyIEFyZWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgMS4gR29vZ2xlIGZvbnRzCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovKgoKICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CgogICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmOwoKICAgIGZvbnQtZmFtaWx5OiAnSm9zZWZpbiBTYW5zJywgc2Fucy1zZXJpZjsKCgoqLwoKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMDIuIFNjcm9sbCBUbyBUb3AKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjc2Nyb2xsVXAgewogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgYm90dG9tOiA4MHB4OwogICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAyOHB4OwogICAgaGVpZ2h0OiA0NXB4OwogICAgbGluZS1oZWlnaHQ6IDQ1cHg7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICByaWdodDogMTVweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7CiAgICB3aWR0aDogNDVweDsKICAgIHotaW5kZXg6IDIwMDsKICAgIGJvdHRvbTogMTVweDsKfQojc2Nyb2xsVXA6aG92ZXIgewp9CgpALXdlYmtpdC1rZXlmcmFtZXMgc2Nyb2xsLWFuaS10by10b3AgewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICBib3R0b206IDA7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgYm90dG9tOiA1MCU7CiAgfQogIDEwMCUgewogICAgb3BhY2l0eTogMDsKICAgIGJvdHRvbTogNzUlOwogIH0KfQpALW1vei1rZXlmcmFtZXMgc2Nyb2xsLWFuaS10by10b3AgewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICBib3R0b206IDA7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgYm90dG9tOiA1MCU7CiAgfQogIDEwMCUgewogICAgb3BhY2l0eTogMDsKICAgIGJvdHRvbTogNzUlOwogIH0KfQpAa2V5ZnJhbWVzIHNjcm9sbC1hbmktdG8tdG9wIHsKICAwJSB7CiAgICBvcGFjaXR5OiAwOwogICAgYm90dG9tOiAwOwogIH0KICA1MCUgewogICAgb3BhY2l0eTogMTsKICAgIGJvdHRvbTogNTAlOwogIH0KICAxMDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICBib3R0b206IDc1JTsKICB9Cn0KI3Njcm9sbFVwOmhvdmVyIGkgewogICAgYW5pbWF0aW9uOiA4MDBtcyBsaW5lYXIgMHMgbm9ybWFsIG5vbmUgaW5maW5pdGUgcnVubmluZyBzY3JvbGwtYW5pLXRvLXRvcDsKICAgIGhlaWdodDogMTAwJTsKICAgIGxlZnQ6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAtMjVweDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiAxMDAlOwogICAgYm90dG9tOiAwOwp9CiNzY3JvbGxVcCBpIHsKICAgIGNvbG9yOiAjZmZmOwp9CiAjc2Nyb2xsVXAgewogICAgYmFja2dyb3VuZDogI2ZjYzIzNiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwp9CiAKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgRW5kIFNjcm9sbCBUbyBUb3AKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMDMuIEFib3V0IEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIAoKLmFib3V0IHsKICAgIG1hcmdpbi1sZWZ0OiAtMTVweDsKICAgIG1hcmdpbi1yaWdodDogLTE1cHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwp9Ci5hYm91dF9faW5uZXIgaDIgewogICAgY29sb3I6ICNmZmZmZmY7CiAgICBmb250LXNpemU6IDIycHg7CiAgICBmb250LXdlaWdodDogNzAwOwp9Ci5hYm91dF9faW5uZXIgaDI6aG92ZXIgYXsKICAgIGNvbG9yOiAjMDAwOwp9Ci5hYm91dF9faW5uZXIgcCB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLXRvcDogMTVweDsKfQouYWJvdXRfX2J0biBhIHsKICAgIGZvbnQtZmFtaWx5OiBSYWxld2F5OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogI2ZmZjsKfQouYWJvdXRfX2J0biBhOmhvdmVyewogICAgY29sb3I6ICMwMDA7Cn0KLmFib3V0X19pY29uIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgdG9wOiAtMTFweDsKfQouYWJvdXRfX2J0biB7CiAgICBtYXJnaW4tdG9wOiAxMHB4Owp9Ci5hYm91dCB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDsKICAgIHBhZGRpbmctdG9wOiAzMHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5hYm91dF9faW5uZXIuYWJvdXRfX2hvYmVyX19pbmZvIHsKICAgIGJhY2tncm91bmQ6ICNmY2MyMzYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKICAgIGhlaWdodDogMTAwJTsKICAgIGxlZnQ6IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UgMHM7Cn0KLmFib3V0X19pbm5lci5hYm91dF9faG9iZXJfX2luZm8uYWN0aXZlIHsKICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpOwp9CgouYWJvdXRfX2lubmVyIHsKICBiYWNrZ3JvdW5kOiAjMWYyZDMwIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgcGFkZGluZzogNjBweCAyNnB4IDIycHg7Cn0KLmFib3V0OmhvdmVyIC5hYm91dF9faW5uZXIuYWJvdXRfX2hvYmVyX19pbmZvIHsKICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpOwp9Ci5hYm91dF9faW5uZXIuYWJvdXRfX2hvYmVyX19pbmZvIGgyIHsKICAgIHBhZGRpbmctdG9wOiAyMHB4Owp9Ci5hYm91dF9faW5uZXIuYWJvdXRfX2hvYmVyX19pbmZvIC5hYm91dF9faWNvbiB7CiAgICB0b3A6IDMxcHg7Cn0KLmFib3V0X19pY29uIGltZyB7CiAgICBtYXgtaGVpZ2h0OiAzOXB4Owp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkFib3V0IDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmFib3V0LS0yIC5hYm91dF9faW5uZXIgewogICAgYmFja2dyb3VuZDogI2ZhZmFmYSBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwp9Ci5hYm91dC0tMiAuYWJvdXRfX2lubmVyIGgyIHsKICAgIGNvbG9yOiAjMWYyZDMwOwp9Ci5hYm91dC0tMiAuYWJvdXRfX2lubmVyIHAgewogICAgY29sb3I6ICM2MDYwNjA7Cn0KLmFib3V0LS0yIC5hYm91dF9fYnRuIGEgewogICAgY29sb3I6ICMxZjJkMzA7Cn0KLmFib3V0LS0yIC5hYm91dF9faW5uZXIuYWJvdXRfX2hvYmVyX19pbmZvIHsKICAgIGJhY2tncm91bmQ6ICNmY2MyMzYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKfQouYWJvdXQtLTIgLmFib3V0X19pbm5lci5hYm91dF9faG9iZXJfX2luZm8gaDIgewogICAgY29sb3I6ICNmZmY7Cn0KLmFib3V0LS0yIC5hYm91dF9faW5uZXIuYWJvdXRfX2hvYmVyX19pbmZvIHAgewogICAgY29sb3I6ICNmZmY7Cn0KLmFib3V0LS0yIC5hYm91dF9faW5uZXIuYWJvdXRfX2hvYmVyX19pbmZvIC5hYm91dF9fYnRuIGEgewogICAgY29sb3I6ICNmZmY7Cn0KCi50ZXh0X19wb3MgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci50ZXh0X19zaGFwZSB7CiAgICBsZWZ0OiAxMjhweDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwp9Ci50ZXh0X19zaGFwZSBoMiB7CiAgICBjb2xvcjogI2Y3ZjdmNzsKICAgIGZvbnQtZmFtaWx5OiBKb3NlZmluIFNhbnM7CiAgICBmb250LXNpemU6IDEyMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxldHRlci1zcGFjaW5nOiAxNXB4OwogICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlWSg1MCUpICB0cmFuc2xhdGVYKDApOwp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIDA0LiBTZXJ2aWNlIEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovIAoKLnNlY3Rpb25fX3RpdGxlIGgyLnRpdGxlX19saW5lIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC1zaXplOiA0MHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLnNlY3Rpb25fX3RpdGxlIHAgewogICAgY29sb3I6ICM2MDYwNjA7CiAgICBtYXJnaW46IDIxcHggYXV0byBhdXRvOwogICAgd2lkdGg6IDU3JTsKfQouc2VydmljZV9fdGh1bWIgYSBpbWcgewogICAgd2lkdGg6IDEwMCU7Cn0KLnNlcnZpY2VfX3RodW1iIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouc2VydmljZV9fc2VjdGlvbl9fd3JhcCAuc2VydmljZV9fdGh1bWIgewogIG1hcmdpbi1sZWZ0OiAtMTVweDsKfQouc2VydmljZV9faG92ZXIgewogICAgaGVpZ2h0OiAxMDAlOwogICAgbGVmdDogMDsKICAgIG9wYWNpdHk6IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgd2lkdGg6IDEwMCU7CiAgICB6LWluZGV4OiAyOwp9Ci5zZXJ2aWNlX19ob3Zlcjo6YmVmb3JlIHsKICAgIGJhY2tncm91bmQ6ICNmY2MyMzYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKICAgIGNvbnRlbnQ6ICIiOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb3BhY2l0eTogMC44NTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiAxMDAlOwogICAgei1pbmRleDogLTE7Cn0KLnNlcnZpY2VfX2FjdGlvbiB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIHdpZHRoOiAxMDAlOwp9Ci5zZXJ2aWNlX19hY3Rpb24gYSB7CiAgICBjb2xvcjogI2ZlZmVmZTsKICAgIGZvbnQtZmFtaWx5OiBSYWxld2F5OwogICAgZm9udC1zaXplOiAyMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UgMHM7Cn0KLnNlcnZpY2VfX2FjdGlvbiBhOmhvdmVyIHsKICAgIGNvbG9yOiAjMDAwOwp9Ci5zZXJ2aWNlX19kZXRhaWxzIGgyIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbi10b3A6IDE4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5zZXJ2aWNlOmhvdmVyIC5zZXJ2aWNlX19ob3ZlciB7CiAgICBvcGFjaXR5OiAxOwp9CgouY29udGFpbmVyLWZsdWlkIC5zZWN0aW9uX190aXRsZSBwIHsKICAgIHdpZHRoOiAzNCU7Cn0KLypTZXJ2aWNlIFBhZ2UqLwoKLnNlcnZpY2VfX3BhZ2UgLnNlcnZpY2UgewogICAgbWFyZ2luLXRvcDogNzBweDsKfQouc2VydmljZV9fcGFnZSAuc2VydmljZV9fc2VjdGlvbl9fd3JhcHsKICAgIG1hcmdpbi10b3A6IC0xMHB4Owp9Cgouc2VydmljZS0tMiAuY29udGFpbmVyLWZsdWlkIC5zZWN0aW9uX190aXRsZSBwIHsKICAgIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7CiAgICBtYXJnaW4tbGVmdDogaW5oZXJpdDsKICAgIG1hcmdpbi1yaWdodDogaW5oZXJpdDsKICAgIG1hcmdpbi10b3A6IDIxcHg7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgd2lkdGg6IDcyJTsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAwNS4gT2ZmZXIgQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8gCgoub2ZmZXIgewogICAgZGlzcGxheTogZmxleDsKfQoub2ZmZXJfX2ljb24gaW1nIHsKICAgIG1heC13aWR0aDogNDdweDsKfQoub2ZmZXJfX2ljb24gewogICAgbWFyZ2luLXJpZ2h0OiAxOHB4Owp9Ci5vZmZlcl9fZGV0YWlscyBwIHsKICBjb2xvcjogIzYwNjA2MDsKICBmb250LXNpemU6IDE0cHg7CiAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgcGFkZGluZy1yaWdodDogMjlweDsKfQoub2ZmZXJfX2RldGFpbHMgaDIgewogICAgY29sb3I6ICMxZjJkMzA7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KCi5vZmZlci5zZXBhcmF0b3IgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5vZmZlci5zZXBhcmF0b3I6OmJlZm9yZSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApIHVybCgiaW1hZ2VzL2ljb25zL2xpbmUucG5nIikgbm8tcmVwZWF0IHNjcm9sbCAxMDAlIDEwMCUgLyBjb3ZlciA7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogMTAwJTsKICAgIGxlZnQ6IC00M3B4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgd2lkdGg6IDFweDsKICAgIH0KCiAvKk9mZmVyIFN0eWxlIDIqLwouaHRjX19vZmZlcl9fYXJlYXsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmh0Y19fb2ZmZXJfXzIgLmh0Y19fb2ZmZXJfX3RodW1iIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAwOwogICAgdG9wOiAwOwogICAgd2lkdGg6IDQ0JTsKfQouaHRjX19vZmZlcl9fMiAuaHRjX19vZmZlcl9fY29udGFpbmVyIC5vZmZlciArIC5vZmZlciB7CiAgICBtYXJnaW4tdG9wOiA1MHB4Owp9Ci5odGNfX29mZmVyX18yIC5odGNfX29mZmVyX19jb250YWluZXIgewogICAgcGFkZGluZzogNjlweCAwOwp9Ci5odGNfX29mZmVyX18yIC5vZmZlcl9fZGV0YWlscyBoMiB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBtYXJnaW4tYm90dG9tOiAzcHg7Cn0KCi5odGNfX29mZmVyX19hcmVhLmh0Y19fb2ZmZXItLTIgewogICAgcGFkZGluZy10b3A6IDEzMHB4Owp9Ci5odGNfX29mZmVyLS0yIC5oMV9fb2ZmZXJfX2ltYWdlIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgcmlnaHQ6IDMlOwogIHRvcDogLTQwJTsKICB3aWR0aDogMjElOwogIHotaW5kZXg6IDM7Cn0KCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIDA2LiBQcm9qZWN0IEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoucHJvamVjdHsKICAgIG1hcmdpbi1sZWZ0OiAtMTVweDsKICAgIG1hcmdpbi1yaWdodDogLTE1cHg7Cn0KCi5wcm9qZWN0X190aHVtYiB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiA0Owp9Ci5wcm9qZWN0X19ob3Zlcl9faW5mbyB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MiwgMTk0LCA1NCwgMC45KSBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgaGVpZ2h0OiAxMDAlOwogICAgbGVmdDogMDsKICAgIG9wYWNpdHk6IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0b3A6IDA7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgd2lkdGg6IDEwMCU7CiAgICB6LWluZGV4OiAxOwp9Ci5wcm9qZWN0X19hY3Rpb24gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgdG9wOiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICB3aWR0aDogMTAwJTsKICAgIHotaW5kZXg6IDU7Cn0KLnByb2plY3RfX2FjdGlvbiBoMiB7CiAgICBjb2xvcjogI2ZlZmVmZTsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7Cn0KLnByb2plY3RfX2hvdmVyX19pbmZvOjpiZWZvcmUgewogICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsKICAgIGJvdHRvbTogNTBweDsKICAgIGNvbnRlbnQ6ICIiOwogICAgaGVpZ2h0OiBhdXRvOwogICAgbGVmdDogNDVweDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiA0NXB4OwogICAgdG9wOiA1MHB4OwogICAgd2lkdGg6IGF1dG87CiAgICB6LWluZGV4OiAyOwp9CgoucHJvamVjdF9fYWN0aW9uIGg0IHsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbi10b3A6IDE3cHg7Cn0KLnByb2plY3RfX2FjdGlvbiA+IGgyOmhvdmVyIGEgewogICAgY29sb3I6ICMwMDA7Cn0KLnByb2plY3RfX2FjdGlvbiBoMiBhIHsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UgMHM7Cn0KLnByb2plY3Q6aG92ZXIgLnByb2plY3RfX2hvdmVyX19pbmZvLAoucHJvamVjdF9faXRtOmhvdmVyIC5wcm9qZWN0X19ob3Zlcl9faW5mbyB7CiAgICBvcGFjaXR5OiAxOwp9CgoucHJvamVjdF9fdGh1bWIgYSB7CiAgICBkaXNwbGF5OiBibG9jazsKfQoucHJvamVjdF9fdGh1bWIgYSBpbWcgewogICAgd2lkdGg6IDEwMCU7Cn0KLnByb2plY3RfX2l0bXsKICAgIG1hcmdpbi10b3A6IDMwcHg7Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMDcuIENhbGwgdG8gQWN0aW9uIEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouY2FsbHRvX19hY3Rpb25fX3dyYXAgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBoZWlnaHQ6IDE3NXB4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9Ci5jYWxsdG9fX2FjdGlvbl9fd3JhcCBoMiB7CiAgICBjb2xvcjogI2ZmZmZmZTsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5odGNfX2J0bi0tdHJhbnNwYXJlbnQgewogICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQtZmFtaWx5OiBSYWxld2F5OwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGhlaWdodDogNDVweDsKICAgIGxpbmUtaGVpZ2h0OiA0NHB4OwogICAgcGFkZGluZzogMCAzNnB4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZSAwczsKfQouaHRjX19idG4tLXRyYW5zcGFyZW50OmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICNmY2MyMzYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNmY2MyMzY7CiAgICBjb2xvcjogI2ZmZjsKfQouY2FsbHRvX19hY3Rpb25fX3dyYXB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiAxOwp9CgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAwOC4gVGVhbSBBcmVhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLnRlYW1fX2lubmVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoudGVhbV9faG92ZXJfX2luZm8gewogICAgYmFja2dyb3VuZDogcmdiYSgyNTIsIDE5NCwgNTQsIDAuODUpIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBib3R0b206IDA7CiAgICBsZWZ0OiAwOwogICAgcGFkZGluZzogMjVweCAwOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tIDA7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgd2lkdGg6IDEwMCU7Cn0KLnRlYW1fX3NvY2lhbF9fbGluayB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLnRlYW1fX3NvY2lhbF9fbGluayBsaSBhIHsKICAgIGNvbG9yOiAjMDAwOwp9Ci50ZWFtX19zb2NpYWxfX2xpbmsgbGkgewogICAgbWFyZ2luOiAwIDEzcHg7Cn0KLnRlYW1fX3NvY2lhbF9fbGluayBsaSBhIGkgewogICAgYmFja2dyb3VuZDogI2ZmZiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIGNvbG9yOiAjZmNjMjM2OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgaGVpZ2h0OiAzMHB4OwogICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlIDBzOwogICAgd2lkdGg6IDMwcHg7Cn0KLnRlYW1fX3NvY2lhbF9fbGluayBsaSBhOmhvdmVyIGkgewogICAgYmFja2dyb3VuZDogIzAwMCBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgY29sb3I6ICNmZmY7Cn0KLnRlYW1fX2RldGFpbHMgewogICAgYmFja2dyb3VuZDogIzFmMmQzMCBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmZmZmY7CiAgICBwYWRkaW5nOiAyM3B4IDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwp9Ci50ZWFtX19kZXRhaWxzIGgyIGF7CiAgICBjb2xvcjogI2ZmZmZmZjsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgdHJhbnNpdGlvbjogMC41czsKfQoudGVhbV9fZGV0YWlscyBoMiB7CiAgbGluZS1oZWlnaHQ6IDE0cHg7Cn0KLnRlYW1fX2RldGFpbHMgaDIgYTpob3ZlcnsKICAgIGNvbG9yOiAjMDAwOwp9Ci50ZWFtX19kZXRhaWxzIGg0IHsKICAgIGNvbG9yOiAjZmZmZmZmOwogICAgZm9udC1mYW1pbHk6IE9wZW4gU2FuczsKICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KLnRlYW06aG92ZXIgLnRlYW1fX2RldGFpbHMgewogICAgYmFja2dyb3VuZDogI2ZjYzIzNiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwp9Ci50ZWFtOmhvdmVyIC50ZWFtX19ob3Zlcl9faW5mbyB7CiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTsKfQouaHRjX190ZWFtX19jb250YWluZXJ7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiAyOwp9Ci50ZWFtIHsKICAgIG1hcmdpbi10b3A6IDMwcHg7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBUZWFtIDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCi5oMV9fdGVhbS0tb25lIC50ZWFtX19zb2NpYWxfX2xpbmsgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tdG9wOiAtMTVweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwp9Ci5oMV9fdGVhbS0tb25lIC50ZWFtX19zb2NpYWxfX2xpbmsgbGkgewogICAgbWFyZ2luOiAxNXB4IDA7Cn0KLmgxX190ZWFtLS1vbmUgLnRlYW1fX2hvdmVyX19pbmZvIHsKICAgIGJvdHRvbTogYXV0bzsKICAgIGhlaWdodDogMTAwJTsKICAgIGxlZnQ6IDA7CiAgICBwYWRkaW5nOiAwOwogICAgdG9wOiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICB3aWR0aDogODVweDsKfQouaDFfX3RlYW0tLW9uZSAudGVhbTpob3ZlciAudGVhbV9faG92ZXJfX2luZm8gewogICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMDkuIFRlc3RpbW9uaWFsIEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKLnJlZ3Vlc3RfX3F1b3RlLAouaHRjX190ZXN0aW1vbmlhbF9fd3JhcHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDI7Cn0KLmh0Y19fdGVzdGltb25pYWxfX2FyZWEgLnNlY3Rpb25fX3RpdGxlIHAgewogICAgbWFyZ2luLWJvdHRvbTogaW5oZXJpdDsKICAgIG1hcmdpbi1sZWZ0OiBpbmhlcml0OwogICAgbWFyZ2luLXJpZ2h0OiBpbmhlcml0OwogICAgbWFyZ2luLXRvcDogMjBweDsKICAgIHdpZHRoOiAxMDAlOwp9Ci5odGNfX3Rlc3RpbW9uaWFsX19hcmVhIC5zZWN0aW9uX190aXRsZXsKICAgIG1hcmdpbi1ib3R0b206IDQ3cHg7Cn0KLnNlY3Rpb25fX3RpdGxlLnRleHQtbGVmdCB7CiAgICBtYXJnaW4tYm90dG9tOiA0N3B4Owp9Ci50ZXN0aW1vbmlhbCB7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci50ZXN0aW1vbmlhbF9fdGh1bWIgaW1nIHsKICAgIHdpZHRoOiAxMDAlOwp9Ci50ZXN0aW1vbmlhbF9fdGh1bWIgewogICAgbWFyZ2luLXJpZ2h0OiA0MHB4OwogICAgbWluLXdpZHRoOiA0OCU7Cn0KLnRlc3RpbW9uaWFsX19hY3RpdmF0aW9uLS0yIC50ZXN0aW1vbmlhbF9fdGh1bWIgewogICAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7CiAgICAgIG1pbi13aWR0aDogMzclOwp9Ci50ZXN0aW1vbmlhbF9fYWN0aXZhdGlvbi0tMiAudGVzdGltb25pYWxfX2RldGFpbHMgcCB7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgcGFkZGluZy1yaWdodDogMTlweDsKfQoudGVzdGltb25pYWxfX2RldGFpbHMgaDIgewogICAgY29sb3I6ICMzMDMwMzA7CiAgICBmb250LWZhbWlseTogT3BlbiBTYW5zOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKfQoudGVzdGltb25pYWxfX2RldGFpbHMgaDQgewogICAgY29sb3I6ICM2MDYwNjA7CiAgICBmb250LWZhbWlseTogb3BlbiBzYW5zOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbWFyZ2luLXRvcDogN3B4Owp9Ci5zaW5nbGVfX2NsX19mb3JtIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgbWFyZ2luLWxlZnQ6IC0xNXB4OwogICAgbWFyZ2luLXJpZ2h0OiAtMTVweDsKfQouc2luZ2xlX19jbF9fZm9ybSBpbnB1dCB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxOwogICAgaGVpZ2h0OiA0MHB4OwogICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICBtYXJnaW46IDAgMTVweDsKICAgIHBhZGRpbmc6IDAgMjBweDsKICAgIHdpZHRoOiA1MCU7CiAgICBjb2xvcjogIzYwNjA2MDsKfQouc2luZ2xlX19jbF9fZm9ybSBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzYwNjA2MCAhaW1wb3J0YW50Owp9Ci5zaW5nbGVfX2NsX19tZXNzYWdlIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjNjA2MDYwICFpbXBvcnRhbnQ7CiAgICBvcGFjaXR5OiAxOwp9Ci5jbGludF9fc3VibWl0X19idG4gYSB7CiAgICBwYWRkaW5nOiAwIDE3cHg7Cn0KLnNpbmdsZV9fY2xfX21lc3NhZ2UgdGV4dGFyZWEgewogICAgYmFja2dyb3VuZDogI2ZmZiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTsKICAgIG1hcmdpbi1ib3R0b206IDIycHg7CiAgICBtaW4taGVpZ2h0OiAxNTVweDsKICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgIHBhZGRpbmctdG9wOiAxMnB4Owp9Ci5odGNfX3Rlc3RpbW9uaWFsX193cmFwIC5zbGljay1kb3RzIHsKICAgIGJvdHRvbTogMXB4OwogICAgcmlnaHQ6IC01N3B4Owp9Ci5odGNfX3Rlc3RpbW9uaWFsX193cmFwIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246OmJlZm9yZSwKLmh0Y19fdGVzdGltb25pYWxfX3dyYXAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOjpiZWZvcmUgewogICAgYmFja2dyb3VuZDogI2ZjYzIzNiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgb3BhY2l0eTogMTsKfQoKLmh0Y19fdGVzdGltb25pYWxfX3dyYXAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOjpiZWZvcmUgewogICAgYmFja2dyb3VuZDogIzAwMCBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgY29udGVudDogIiI7CiAgICBoZWlnaHQ6IDEwcHg7CiAgICBvcGFjaXR5OiAxOwogICAgd2lkdGg6IDEwcHg7CiAgICB0cmFuc2l0aW9uOiAwLjRzOwp9Ci5odGNfX3Rlc3RpbW9uaWFsX193cmFwIC5zbGljay1kb3RzIGxpIHsKICAgIGhlaWdodDogMTBweDsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7CiAgICB3aWR0aDogMTBweDsKfQouaHRjX190ZXN0aW1vbmlhbF9fd3JhcCAuc2xpY2stZG90cyBsaSArIGxpIHsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4Owp9Ci50ZXNfX2ljb24gaSB7CiAgICBjb2xvcjogI2M3YzBjMDsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIG1hcmdpbi1ib3R0b206IDE4cHg7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBUZXN0aW1vbmlhbCAyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5odGNfX3Rlc3RpbW9uaWFsX19hcmVhLnRlc3RpbW9uaWFsX18yIC5zZWN0aW9uX190aXRsZSBwIHsKICAgIG1hcmdpbjogMDsKfQouaHRjX190ZXN0aW1vbmlhbF9fbGVmdCBoMi50aXRsZV9fbGluZSB7CiAgICBjb2xvcjogIzFmMmQzMDsKICAgIGZvbnQtc2l6ZTogNDBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouaHRjX190ZXN0aW1vbmlhbF9fbGVmdCBwICsgcCB7CiAgICBtYXJnaW4tdG9wOiAxNXB4Owp9Ci50ZXN0aW1vbmlhbF9fMiAuaHRjX190ZXN0aW1vbmlhbF9fd3JhcCAuc2xpY2stZG90cyB7CiAgICBib3R0b206IC00MHB4OwogICAgbGVmdDogLTk5JTsKICAgIHJpZ2h0OiBhdXRvOwp9Ci50ZXN0aW1vbmlhbF9fMiAuaHRjX190ZXN0aW1vbmlhbF9fbGVmdCBwIHsKICBwYWRkaW5nLXJpZ2h0OiAxNHB4Owp9Ci50ZXN0aW1vbmlhbF9fMiAudGVzdGltb25pYWxfX2RldGFpbHMgaDIgewogIG1hcmdpbi10b3A6IDE3cHg7Cn0KCgoKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMTAuIEJsb2cgQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5ibG9nX190aHVtYiBhIHsKICAgIGRpc3BsYXk6IGJsb2NrOwp9Ci5ibG9nX190aHVtYiBhIGltZyB7CiAgICB3aWR0aDogMTAwJTsKfQouYmxvZ19fdGh1bWIgewogICAgcGFkZGluZy1ib3R0b206IDI0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmJsb2dfX2hvdmVyX19pbmZvIHsKICAgIGJvdHRvbTogMDsKICAgIGxlZnQ6IDA7CiAgICBwYWRkaW5nOiAwIDI2cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB3aWR0aDogMTAwJTsKICAgIHotaW5kZXg6IDU7Cn0KLmJsb2dfX21ldGEgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6ICMxZjJkMzAgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogNTBweDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgcGFkZGluZzogMCAyNXB4OwogICAgdHJhbnNpdGlvbjogMC40czsKfQouYmxvZzpob3ZlciAuYmxvZ19fbWV0YXsKICAgIGJhY2tncm91bmQ6ICNmY2MyMzY7Cn0KLmJsb2c6aG92ZXIgLmJsb2dfX21ldGEgbGkgYSwKLmJsb2c6aG92ZXIgLmJsb2dfX21ldGEgbGl7CiAgICBjb2xvcjogIzFmMmQzMDsKfQoKLmJsb2dfX21ldGEgbGkgYSB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgdHJhbnNpdGlvbjogMC40czsKfQouYmxvZ19fbWV0YSBsaSBhOmhvdmVyewogICAgY29sb3I6ICNmY2MyMzY7Cn0KLmJsb2dfX21ldGEgbGkgewogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgdHJhbnNpdGlvbjogMC40czsKfQouYmxvZ19fbWV0YSBsaSArIGxpIHsKICAgIG1hcmdpbi1sZWZ0OiAyMHB4Owp9CgouYmxvZ19fZGV0YWlscyBoMiB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIG1hcmdpbi10b3A6IDI1cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5ibG9nX19idG4gYSB7CiAgICBjb2xvcjogI2I2YjZiNjsKICAgIGZvbnQtZmFtaWx5OiBSYWxld2F5OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlIDBzOwp9Ci5ibG9nX19idG4gYSBpIHsKICAgIHBhZGRpbmctbGVmdDogOXB4Owp9Ci5ibG9nX19idG4gYTpob3ZlciB7CiAgICBjb2xvcjogI2ZjYzIzNjsKfQouYmxvZ19fYnRuIHsKICAgIG1hcmdpbi10b3A6IDE2cHg7Cn0KLmJsb2d7CiAgICBtYXJnaW4tdG9wOiAzMHB4Owp9Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIEJsb2cgMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLmh0Y19fYmxvZy0tMiAuYmxvZ19faG92ZXJfX2luZm8gewogICAgcGFkZGluZzogMDsKfQouaHRjX19ibG9nLS0yIC5ibG9nX19tZXRhIHsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYm9yZGVyLXJhZGl1czogMDsKfQouYmxvZy0tb25lLAouYmxvZy0tdHdvewogICAgbWFyZ2luLXRvcDogLTMwcHg7Cn0KLmJsb2ctLXR3byAuYmxvZ19faG92ZXJfX2luZm8gewogICAgcGFkZGluZzogMCA4NnB4Owp9Ci5ibG9nLS10aHJlZXsKICAgIG1hcmdpbi10b3A6IC02MHB4Owp9Ci5ibG9nLS10aHJlZSAuYmxvZyB7CiAgICBtYXJnaW4tdG9wOiA2MHB4Owp9Ci5ibG9nLS1vbmUgLmJsb2dfX2hvdmVyX19pbmZvIHsKICAgIHBhZGRpbmc6IDAgMTMwcHg7Cn0KLmJsb2dfX3ZpZGVvIHsKICAgIGxlZnQ6IDUwJTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7CiAgICB6LWluZGV4OiA5OTk7Cn0KLmJsb2dfX2FjdGl2YXRpb257CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmJsb2dfX2FjdGl2YXRpb24gLm93bC1uYXYgZGl2IHsKICAgIGhlaWdodDogNjBweDsKICAgIGxlZnQ6IDMwcHg7CiAgICBsaW5lLWhlaWdodDogNjdweDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgd2lkdGg6IDM4cHg7Cn0KCi5ibG9nX19hY3RpdmF0aW9uIC5vd2wtbmF2IGRpdi5vd2wtbmV4dCB7CiAgICBsZWZ0OiBhdXRvOwogICAgcmlnaHQ6IDMwcHg7Cn0KCi5ibG9nX19hY3RpdmF0aW9uLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPSJvd2wtIl0gewogICAgYmFja2dyb3VuZDogcmdiYSgyMDcsIDIwNywgMjA4LCAwLjYpIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwp9Ci5ibG9nX19hY3RpdmF0aW9uIC5vd2wtbmF2IGRpdiBpIHsKICAgIGNvbG9yOiAjMzAzMDMwOwogICAgZm9udC1zaXplOiAzMHB4Owp9Ci5ibG9nLS1kZXRhaWxzIC5odGNfX2JsX19kdGxfX2lubmVyIHsKICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxMS4gQnJhbmQgQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgouYnJhbmRfX2xpc3QgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmJyYW5kX19saXN0IGxpIGEgewogICAgZGlzcGxheTogYmxvY2s7Cn0KLmh0Y19fYnJhbmRfX2FyZWEgewogICAgcGFkZGluZy1ib3R0b206IDEyNXB4OwogICAgcGFkZGluZy10b3A6IDEyNnB4Owp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIDEyLiBOZXdzbGV0dGVyIEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKLm5ld3NfX2lucHV0IGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTc5Nzk3OwogICAgb3BhY2l0eTogMTsKfQoKLm5ld3NsZXR0ZXJfX3dyYXAgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5uZXdzbGV0dGVyX193cmFwIGgyIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5uZXdzbGV0dGVyX193cmFwIGg0IHsKICAgIGNvbG9yOiAjNjA2MDYwOwogICAgZm9udC1mYW1pbHk6IE9wZW4gU2FuczsKICAgIGZvbnQtc2l6ZTogMThweDsKfQoubmV3c2xldHRlcl9fZm9ybSB7CiAgICBtYXJnaW46IDQwcHggYXV0byBhdXRvOwogICAgd2lkdGg6IDY1NXB4Owp9Ci5odGNfX25ld3NfX2lubmVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoubmV3c19faW5wdXQgaW5wdXQgewogICAgLW1vei1ib3JkZXItYm90dG9tLWNvbG9yczogbm9uZTsKICAgIC1tb3otYm9yZGVyLWxlZnQtY29sb3JzOiBub25lOwogICAgLW1vei1ib3JkZXItcmlnaHQtY29sb3JzOiBub25lOwogICAgLW1vei1ib3JkZXItdG9wLWNvbG9yczogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBib3JkZXItY29sb3I6IGN1cnJlbnRjb2xvciBjdXJyZW50Y29sb3IgI2Q3ZDdkNzsKICAgIGJvcmRlci1pbWFnZTogbm9uZTsKICAgIGJvcmRlci1zdHlsZTogbm9uZSBub25lIHNvbGlkOwogICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4OwogICAgY29sb3I6ICM5Nzk3OTc7CiAgICBwYWRkaW5nLWJvdHRvbTogN3B4Owp9Ci5jbGVhcmZpeC5zdWJzY3JpYmVfX2J0biB7CiAgICBib3R0b206IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMDsKfQoubmV3c19faW5wdXQgewogICAgd2lkdGg6IDUwMHB4Owp9Ci5zdWJzY3JpYmVfX2J0biBpbnB1dCB7CiAgICBiYWNrZ3JvdW5kOiAjZmNjMjM2IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmNjMjM2OwogICAgY29sb3I6ICNmZmY7CiAgICBmb250LWZhbWlseTogUmFsZXdheTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBoZWlnaHQ6IDM1cHg7CiAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOwp9Ci5zdWJzY3JpYmVfX2J0biBpbnB1dDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICAgIGNvbG9yOiAjMDAwOwp9Ci5odGNfX25ld3NsZXR0ZXJfX2FyZWEgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5uZXdzbGV0dGVyX190aHVtYiB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogNCU7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIHdpZHRoOiAyMSU7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxMy4gQ291bnRlcnVwIEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouaHRjX19jb3VudGVydXBfX3dyYXAgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKfQouZmFjdF9fY291bnQgc3Bhbi5jb3VudCB7CiAgICBjb2xvcjogIzFmMmQzMDsKICAgIGZvbnQtc2l6ZTogNDBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7Cn0KLmZhY3RfX3RpdGxlIGgyIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmgxX19jb3VudGRvd24gLmh0Y19fY2FsbHRvX19hY3Rpb24gaDIgewogICAgZm9udC1zaXplOiA1NnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbi1ib3R0b206IDE4cHg7Cn0KLmgxX19jb3VudGRvd24gLmh0Y19fY2FsbHRvX19hY3Rpb24gewogICAgcGFkZGluZy1ib3R0b206IDEwMHB4OwogICAgcGFkZGluZy10b3A6IDEwMHB4Owp9Ci5oMV9fY291bnRkb3duIC5odGNfX2NhbGxfX2J0biB7CiAgICBtYXJnaW4tdG9wOiAzNnB4Owp9Ci5oMV9fY291bnRkb3duIC5odGNfX2NhbGx0b19fYWN0aW9uIHAgewogICAgd2lkdGg6IDY1JTsKfQouaDFfX2NvdW50ZG93biAuaHRjX19jb3VudGVydXBfX3dyYXAgewogICAgaGVpZ2h0OiAxNDVweDsKICAgIHBhZGRpbmc6IDAgMTU3cHg7Cn0KLmNvdW50ZXJ1cF9fbGVmdF9fdGh1bWIgewogICAgbWFyZ2luLWxlZnQ6IC0xNXB4OwogICAgbWFyZ2luLXJpZ2h0OiA0MHB4Owp9CgoKCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIDE0LiBHb29nbGUgTWFwIEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKLm1hcC1jb250YWN0c3sKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQojZ29vZ2xlTWFwIHsKICAgIGhlaWdodDogNDM2cHg7CiAgICB3aWR0aDogMTAwJTsKfQouaHRjX19jb250YWN0X19hZGRyZXNzLS0yIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMzEsIDQ1LCA0OCwgMC45Mikgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKICAgIGJvdHRvbTogMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAxOCU7Cn0KLmh0Y19fY29udGFjdF9fYWRkcmVzcy0tMiAubWFwLWNvbnRhY3RzIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouaHRjX19jb250YWN0X19hZGRyZXNzLS0yIC5odGNfX2NvbnRhY3RfX3dyYXAgewogICAgZGlzcGxheTogYmxvY2s7Cn0KLmh0Y19fY29udGFjdF9fYWRkcmVzcy0tMiAuaHRjX19jb250YWN0X193cmFwIHsKICAgIHBhZGRpbmc6IDAgNDBweDsKfQouaHRjX19jb250YWN0X19hZGRyZXNzLS0yIC5odGNfX2NvbnRhY3RfX3dyYXAgLmh0X19hZGRyZXNzX19pbm5lciArIC5odF9fYWRkcmVzc19faW5uZXIgewogICAgbWFyZ2luLXRvcDogNDBweDsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxNS4gQnJhZGNhdW1wIEFyZWEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKLmh0X19icmFkY2F1bXBfX3dyYXAgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBoZWlnaHQ6IDQwMHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMjsKfQouYnJhZGNhdW1wX19pbm5lciBoMi5icmFkY2F1bXAtdGl0bGUgewogICAgY29sb3I6ICNmZGZkZmQ7CiAgICBmb250LXNpemU6IDUwcHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouYnJhZGNhdW1wLWlubmVyIHNwYW4gewogIGNvbG9yOiAjZmZmOwogIGZvbnQtc2l6ZTogMThweDsKICBmb250LXdlaWdodDogNjAwOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmJyYWRjYXVtcC1pbm5lciBhIHsKICAgIGZvbnQtZmFtaWx5OiBSYWxld2F5OwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmJyYWRjYXVtcC1pbm5lciB7CiAgICBtYXJnaW4tdG9wOiA2cHg7Cn0KLmJyZC1zZXBhcmV0b3IgewogICAgcGFkZGluZzogMCA3cHg7Cn0KLmh0Y19fYnN0X19idG4gLmh0Y19fYnRuIHsKICAgIHBhZGRpbmc6IDAgMzZweDsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxNi4gT3VyIE1pc3Npb24gQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5odGNfX21pc3Npb25fX2FyZWEgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5odGNfX29mZmVyX190aHVtYiB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMDsKICAgIHRvcDogMDsKfQouaHRjX19taXNzaW9uX19jb250YWluZXIgewogICAgcGFkZGluZzogODlweCAwOwp9Ci5odGNfX21pc3Npb25fX2NvbnRhaW5lciAuc2luZ2xlX19taXNzaW9uICsgLnNpbmdsZV9fbWlzc2lvbiB7CiAgICBtYXJnaW4tdG9wOiA1MHB4Owp9Ci5zaW5nbGVfX21pc3Npb24gaDIgewogICAgY29sb3I6ICMxZjJkMzA7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLnNpbmdsZV9fbWlzc2lvbiBwIHsKICAgIHBhZGRpbmctcmlnaHQ6IDMzcHg7Cn0KCgoKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMTcuIFByb2plY3QgQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5wcm9qZWN0LS1vbmV7CiAgICBtYXJnaW4tdG9wOiAtMjBweDsKfQoKLnByb2plY3QtLW9uZSAucHJvamVjdCB7CiAgICBtYXJnaW4tbGVmdDogLTVweDsKICAgIG1hcmdpbi1yaWdodDogLTVweDsKICAgIG1hcmdpbi10b3A6IDIwcHg7Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMTguIEJsb2cgRGV0YWlscyBBcmVhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLnNpZGViYXJfX3NlcGFyYXRvcnsKICAgIG1hcmdpbi10b3A6IDMwcHg7Cn0KCi5odGNfX2NhdGVnb3J5IHsKICAgIHBhZGRpbmc6IDQwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmNhdF9fbGlzdCBsaSBhIHsKICAgIGNvbG9yOiAjNjA2MDYwOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOwp9Ci5jYXRfX2xpc3QgbGkgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjZTFlMWUxOwogICAgcGFkZGluZzogMTVweCAwOwp9Ci5jYXRfX2xpc3QgbGk6Zmlyc3QtY2hpbGQgewogICAgcGFkZGluZy10b3A6IDA7Cn0KLmNhdF9fbGlzdCBsaTpob3ZlciBhIHsKICAgIGNvbG9yOiAjZmNjMjM2Owp9Ci5zaWRlYmFyX190aXRsZSB7CiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICNlMWUxZTE7CiAgICBjb2xvcjogIzMwMzAzMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5odGNfX3NlYXJjaF9fYXJlYSB7CiAgICBwYWRkaW5nOiA0MHB4Owp9Ci5wcm9fX2lucHV0X19ib3ggewogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5wcm9fX2lucHV0X19ib3ggaSB7CiAgYmFja2dyb3VuZDogIzFmMmQzMCBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogIGJvdHRvbTogMDsKICBjb2xvcjogI2ZmZjsKICBjdXJzb3I6IHBvaW50ZXI7CiAgaGVpZ2h0OiAzNXB4OwogIGxpbmUtaGVpZ2h0OiAzM3B4OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICByaWdodDogMDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZSAwczsKICB3aWR0aDogMzNweDsKfQoucHJvX19pbnB1dF9fYm94IGlucHV0IHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgY29sb3I6ICNjNWM1YzU7CiAgICBoZWlnaHQ6IDM1cHg7CiAgICBwYWRkaW5nOiAwIDM0cHggMCAxNXB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5wcm9fX2lucHV0X19ib3ggaTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAjZmNjMjM2IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7Cn0KLmh0Y19fY2F0ZWdvcnkgewogICAgcGFkZGluZzogNDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQouY2F0X19saXN0IGxpIGEgewogICAgY29sb3I6ICM2MDYwNjA7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7Cn0KLmNhdF9fbGlzdCBsaSB7CiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICNlMWUxZTE7CiAgICBwYWRkaW5nOiAxNXB4IDA7Cn0KLmNhdF9fbGlzdCBsaTpmaXJzdC1jaGlsZCB7CiAgICBwYWRkaW5nLXRvcDogMDsKfQouY2F0X19saXN0IGxpOmhvdmVyIGEgewogICAgY29sb3I6ICNmY2MyMzY7Cn0KLmh0Y19fYnJvYyB7CiAgICBwYWRkaW5nOiA0MHB4IDE5cHg7Cn0KLmJyb2N1cmVfX2xpc3QgbGkgYSB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOwp9Ci5icm9jdXJlX19saXN0IGxpIGEgaSB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIHBhZGRpbmctcmlnaHQ6IDE0cHg7Cn0KLmJyb2N1cmVfX2xpc3QgbGkgKyBsaSB7CiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICNlMWUxZTE7CiAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgcGFkZGluZy10b3A6IDIwcHg7Cn0KLmJyb2N1cmVfX2xpc3QgbGkgYTpob3ZlciB7CiAgICBjb2xvcjogI2ZjYzIzNjsKfQouaHRjX19yZWNlbnRfX3Bvc3QgewogICAgcGFkZGluZzogNDBweCAyMHB4Owp9Ci5odGNfX3NpbmdsZV9fcG9zdCB7CiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICNlMWUxZTE7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICBwYWRkaW5nLXRvcDogMjBweDsKfQoucG9zdF9fdGh1bWIgewogICAgbWFyZ2luLXJpZ2h0OiAxNXB4OwogICAgbWluLXdpZHRoOiA2MHB4Owp9Ci5wb3N0X19kZXRhaWxzIGg0IHsKICAgIGNvbG9yOiAjMzAzMDMwOwogICAgZm9udC1mYW1pbHk6IE9wZW4gU2FuczsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBtYXJnaW4tYm90dG9tOiA0cHg7Cn0KLnBvc3RfX21ldGEgc3BhbiB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGZvbnQtc2l6ZTogMTJweDsKfQouYnVpbGRfX2RyZWFtX19pbm5lciBoMiB7CiAgICBjb2xvcjogI2ZmZmZmZjsKICAgIGZvbnQtc2l6ZTogMjJweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICBwYWRkaW5nLXJpZ2h0OiAxNHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5idWlsZF9fYnRuIHsKICAgIG1hcmdpbi10b3A6IDE4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmJ1aWxkX19idG4gLmh0Y19fYnRuIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGhlaWdodDogMzVweDsKICAgIGxpbmUtaGVpZ2h0OiAzNXB4OwogICAgcGFkZGluZzogMCAxMnB4Owp9Ci5odGNfX2J1aWxkX19kcmVhbSB7CiAgICBoZWlnaHQ6IDIzN3B4OwogICAgcGFkZGluZy10b3A6IDQwcHg7Cn0KLnJlY2VudF9fcG9zdF9fd3JhcCAuaHRjX19zaW5nbGVfX3Bvc3Q6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLXRvcDogMCBub25lOwogICAgcGFkZGluZy10b3A6IDA7Cn0KLmh0Y19fdGFnIHsKICAgIHBhZGRpbmc6IDQwcHg7Cn0KLnRhZ19fbGlzdCBsaSBhIHsKICAgIGNvbG9yOiAjNjA2MDYwOwp9Ci50YWdfX2xpc3QgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZmxvdzogcm93IHdyYXA7CiAgICBtYXJnaW4tbGVmdDogLTVweDsKICAgIG1hcmdpbi1yaWdodDogLTVweDsKfQoudGFnX19saXN0IGxpIHsKICAgIG1hcmdpbjogMCA1cHggMTBweDsKfQoudGFnX19saXN0IGxpIGEgewogICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGhlaWdodDogMzVweDsKICAgIGxpbmUtaGVpZ2h0OiAzNHB4OwogICAgcGFkZGluZzogMCA5cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UgMHM7Cn0KLnRhZ19fbGlzdCBsaSBhOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICNmY2MyMzYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNmY2MyMzY7CiAgICBjb2xvcjogI2ZmZjsKfQovKkJsb2cgRGV0YWlscyBMZWZ0c2lkZWJhciovCgouaHRjX19ibG9nX19kZXRhaWxzX19wYWdlIC5ibG9nX19ob3Zlcl9faW5mbyB7CiAgICBwYWRkaW5nOiAwIDE0NXB4Owp9Ci5odGNfX2Jsb2dfX2RldGFpbHNfX3BhZ2UgLmJsb2dfX21ldGEgewogIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogIHBhZGRpbmc6IDAgNTBweDsKfQouaHRjX19ibG9nX19kZXRhaWxzIGgyIHsKICAgIGNvbG9yOiAjNjA2MDYwOwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMjdweDsKICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9CmJsb2NrcXVvdGUgewogICAgYmFja2dyb3VuZDogI2ZhZmFmYSBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgYm9yZGVyLWxlZnQ6IDAgbm9uZTsKICAgIGNvbG9yOiAjNjA2MDYwOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgbGluZS1oZWlnaHQ6IDI2cHg7CiAgICBtYXJnaW46IDUwcHggMDsKICAgIHBhZGRpbmc6IDMwcHggNTRweCAzMHB4IDcwcHg7Cn0KCi5ibF9fZHRsIHAgewogICAgY29sb3I6ICM2MDYwNjA7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQouYmxfX2R0bCBwICsgcCB7CiAgICBtYXJnaW4tdG9wOiAyMnB4Owp9CgouYmxfX3Bvc3RfX3NoYXJlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW4tYm90dG9tOiA3MHB4OwogICAgbWFyZ2luLXRvcDogNDdweDsKfQouYmxfX3Bvc3RfX2xpbmsgewogICAgZGlzcGxheTogZmxleDsKfQouYmxfX3Bvc3RfX2xpbmsgbGkgYSBpIHsKICAgIGNvbG9yOiAjYmJiYmJiOwp9Ci5ibF9fcG9zdF9fbGluayBsaSArIGxpIHsKICAgIHBhZGRpbmctbGVmdDogMjVweDsKfQouYmxfX3Bvc3RfX3NoYXJlIHNwYW4gewogICAgY29sb3I6ICNiYmJiYmI7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgcGFkZGluZy1yaWdodDogMThweDsKfQoudGl0bGVfX2xpbmUtLTMgewogICAgY29sb3I6ICMxZjJkMzA7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBmb250LWZhbWlseTogT3BlbiBTYW5zOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLnRpdGxlX19saW5lLS0zOjpiZWZvcmUgewogICAgYmFja2dyb3VuZDogI2UxZTFlMSBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgYm90dG9tOiAwOwogICAgY29udGVudDogIiI7CiAgICBoZWlnaHQ6IDFweDsKICAgIGxlZnQ6IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB3aWR0aDogMTAwJTsKfQouc2luZ2xlX19jb21tZW50IHsKICAgIGRpc3BsYXk6IGZsZXg7Cn0KLmJsX19jb21tZW50X190aHVtYiB7CiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7CiAgICBtaW4td2lkdGg6IDE1JTsKfQouYmxfX2NvbW1lbnRfX3RodW1iIGltZyB7CiAgICB3aWR0aDogMTAwJTsKfQouYmxfX2NvbW1lbnRfX21ldGEgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW4tYm90dG9tOiAycHg7Cn0KLmJsX19jb21tZW50X19tZXRhIGgyIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC1mYW1pbHk6IE9wZW4gU2FuczsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBtYXJnaW4tcmlnaHQ6IDlweDsKfQouYmxfX2NvbW1lbnRfX21ldGEgc3BhbiB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbWFyZ2luOiAwIDlweDsKfQouYmxfX3JlbXBseSB7CiAgICBkaXNwbGF5OiBmbGV4Owp9Ci5ibF9fcmVtcGx5IGxpIGEgewogICAgY29sb3I6ICNiYmJiYmI7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIHRyYW5zaXRpb246IDAuNHM7Cn0KLmJsX19yZW1wbHkgbGkgYTpob3ZlcnsKICAgIGNvbG9yOiAjZmNjMjM2Owp9Ci5ibF9fcmVtcGx5IGxpICsgbGkgewogICAgbWFyZ2luLWxlZnQ6IDMwcHg7Cn0KLmJsX19jb21tZW50X19mb3JtIHsKICAgIG1hcmdpbi10b3A6IDcwcHg7Cn0KLmJsX19mb3JtX19pbm5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgbWFyZ2luLWxlZnQ6IC0xNXB4OwogICAgbWFyZ2luLXJpZ2h0OiAtMTVweDsKfQouc2luZ2xlX19mb3JtIHsKICAgIG1hcmdpbjogMCAxNXB4OwogICAgd2lkdGg6IDUwJTsKfQouYmxfX2lucHV0X19ib3ggewp9Ci5zaW5nbGVfX2Zvcm0gLmJsX19pbnB1dF9fYm94ICsgLmJsX19pbnB1dF9fYm94IHsKICAgIG1hcmdpbi10b3A6IDE4cHg7Cn0KLnNpbmdsZV9fZm9ybSAuYmxfX2lucHV0X19ib3ggc3BhbiB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwp9Ci5ibF9faW5wdXRfX2JveCBpbnB1dCB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgaGVpZ2h0OiAzNXB4OwogICAgcGFkZGluZzogMCAxMHB4Owp9Ci5ibF9fY29tbnRfX2J0biB7CiAgICBtYXJnaW4tdG9wOiAyNHB4Owp9Ci5ibF9fY29tbnRfX2J0biBhLmh0Y19fYnRuIHsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGhlaWdodDogMzVweDsKICAgIGxpbmUtaGVpZ2h0OiAzNXB4Owp9Ci5zaW5nbGVfX2Zvcm0gc3BhbiB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIG1hcmdpbi1ib3R0b206IDdweDsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwp9Ci5zaW5nbGVfX2Zvcm0gdGV4dGFyZWEgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYmViZWI7CiAgICBtaW4taGVpZ2h0OiAyMDBweDsKfQouc2luZ2xlX19jb21tZW50LnJlcGx5IHsKICAgIG1hcmdpbi1ib3R0b206IDY1cHg7CiAgICBtYXJnaW4tbGVmdDogODhweDsKICAgIG1hcmdpbi10b3A6IDY1cHg7Cn0KCi5wcmVfX25leHRfX2J0biBsaSBhIHsKICAgIGNvbG9yOiAjYmJiYmJiOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KLnByZV9fbmV4dF9fYnRuIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBtYXJnaW4tYm90dG9tOiA2NHB4Owp9Ci5wcmVfX25leHRfX2J0biBsaSBhIGkgewogICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGhlaWdodDogMjVweDsKICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgd2lkdGg6IDI1cHg7Cn0KLnByZV9fbmV4dF9fYnRuIGxpIGEgaS5mYS5mYS1hbmdsZS1sZWZ0IHsKICAgIG1hcmdpbi1yaWdodDogMTFweDsKfQoucHJlX19uZXh0X19idG4gbGkgYSBpLmZhLmZhLWFuZ2xlLXJpZ2h0IHsKICAgIG1hcmdpbi1sZWZ0OiAxMXB4Owp9CgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxOS4gU2luZ2xlIFNlcnZpY2UgQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5wcm9kaWN0LWRldC1zbWFsbCBsaSB7CiAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICB3aWR0aDogMjUlOwp9Ci5odC1wb3J0Zm9saW8tZnVsbC1pbWFnZSAudGFiLXBhbmUgaW1nIHsKICAgIHdpZHRoOiAxMDAlOwp9Ci5wcm9kaWN0LWRldC1zbWFsbCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgbWFyZ2luLWxlZnQ6IC0xMHB4OwogICAgbWFyZ2luLXJpZ2h0OiAtMTBweDsKICAgIG1hcmdpbi10b3A6IDIwcHg7Cn0KLnByb2RpY3QtZGV0LXNtYWxsIGxpIGEgewogICAgZGlzcGxheTogYmxvY2s7Cn0KLnByb2RpY3QtZGV0LXNtYWxsIGxpIGEgaW1nIHsKICAgIHdpZHRoOiAxMDAlOwp9Ci5odGNfX3NlcnZpY2VfX2R0bCB7CiAgICBtYXJnaW4tdG9wOiA1NXB4Owp9Ci50aXRsZV9fbGluZS0tNCB7CiAgICBjb2xvcjogIzFmMmQzMDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouaHRjX19zZXJfX2R0bF9faW5uZXIgLmh0Y19fc2VyX19kdGwgLnRpdGxlX19saW5lLS00IHsKICBmb250LXNpemU6IDI0cHg7Cn0KLmh0Y19fc2VyX19kdGxfX2lubmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBtYXJnaW4tbGVmdDogLTI1cHg7CiAgICBtYXJnaW4tcmlnaHQ6IC0yNXB4OwogICAgbWFyZ2luLXRvcDogNDdweDsKfQouaHRjX19zZXJfX2R0bF9faW5uZXIgLmh0Y19fc2VyX19kdGwgewogICAgcGFkZGluZzogMCAyNXB4OwogICAgd2lkdGg6IDUwJTsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAyMC4gU2luZ2xlIFByb2plY3QgQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoucHJvX19kdGxfX2lubmVyIHsKICAgIHBhZGRpbmc6IDcwcHggNDBweDsKfQoucHJvX19kdGxfX2NvbnRlbnQgewogICAgZGlzcGxheTogZmxleDsKfQoucHJvX19kdGxfX2xpc3QgbGkgewogICAgY29sb3I6ICMxZjJkMzA7CiAgICBmb250LWZhbWlseTogT3BlbiBTYW5zOwogICAgZm9udC1zaXplOiAxNnB4Owp9Ci5wcm9fX2R0bF9fbGlzdC5mb250X19ib2xkIGxpIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC1mYW1pbHk6IFJhbGV3YXk7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoucHJvX19kdGxfX2xpc3QgbGkgKyBsaSB7CiAgICBwYWRkaW5nLXRvcDogMjRweDsKfQoucHJvX19kdGxfX2lubmVyIGgyIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbi1ib3R0b206IDQzcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5wcm9fX2R0bF9fbGlzdC5mb250X19ib2xkIHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7Cn0KLmRvd25sb2FkX19wcm9qZWN0IHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICBwYWRkaW5nOiA1MXB4IDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmRvd25sb2FkX19wcm9qZWN0IGgyIHsKICAgIGNvbG9yOiAjZmNjMjM2OwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KCi5odGNfX3Byb19fZGVzY19fY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBtYXJnaW4tbGVmdDogLTIwcHg7CiAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4OwogICAgbWFyZ2luLXRvcDogNzBweDsKfQouc2luZ2xlX19wcm9qZWN0X19kZXRhaWxzIGgyIHsKICAgIGNvbG9yOiAjMWYyZDMwOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbi1ib3R0b206IDE3cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5zaW5nbGVfX3Byb2plY3RfX2RldGFpbHMgewogICAgbWFyZ2luOiAwIDIwcHg7CiAgICB3aWR0aDogMzMuMzMlOwp9Ci5zaW5nbGVfX3Byb2plY3RfX2RldGFpbHMgcCArIHAgewogICAgbWFyZ2luLXRvcDogMTFweDsKfQouZmFjdHNfX2xpc3QgbGkgYSB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7Cn0KLmZhY3RzX19saXN0IGxpICsgbGkgewogICAgbWFyZ2luLXRvcDogMjBweDsKfQouZmFjdHNfX2xpc3QgewogICAgbWFyZ2luLXRvcDogMjVweDsKfQouZmFjdHNfX2xpc3QgbGkgYSBpIHsKICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7Cn0KLmZhY3RzX19saXN0IGxpIGE6aG92ZXIgewogICAgY29sb3I6ICNmY2MyMzY7Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMjEuIENvbnRhY3QgQXJlYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi50aXRsZV9fbGluZS0tNSB7CiAgICBjb2xvcjogIzFmMmQzMDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQtZmFtaWx5OiBPcGVuIFNhbnM7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgcGFkZGluZy1ib3R0b206IDE4cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5odGNfX2NvbnRhY3RfX2lubmVyIHAgewogICAgbWFyZ2luLXRvcDogMzdweDsKICAgIHdpZHRoOiA3NiU7Cn0KLnRpdGxlX19saW5lLS01OjpiZWZvcmUgewogICAgYmFja2dyb3VuZDogI2UxZTFlMSBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwogICAgYm90dG9tOiAwOwogICAgY29udGVudDogIiI7CiAgICBoZWlnaHQ6IDFweDsKICAgIGxlZnQ6IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB3aWR0aDogMTAwJTsKfQouaHRjX19hZGRyZXNzX19jb250YWluZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIG1hcmdpbi10b3A6IDUwcHg7Cn0KLmN0X19hZGRyZXNzIHsKICAgIGRpc3BsYXk6IGZsZXg7Cn0KLmN0X19hZGRyZXNzX19pY29uIGkgewogICAgYm9yZGVyOiAxcHggc29saWQgIzY5Njk2OTsKICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIGhlaWdodDogNDdweDsKICAgIGxpbmUtaGVpZ2h0OiA0N3B4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgd2lkdGg6IDQ3cHg7Cn0KLmh0Y19fYWRkcmVzc19fY29udGFpbmVyIC5jdF9fYWRkcmVzcyArIC5jdF9fYWRkcmVzcyB7CiAgICBtYXJnaW4tbGVmdDogMTE1cHg7Cn0KLmN0X19kZXRhaWxzIHAgYSB7CiAgICBjb2xvcjogIzYwNjA2MDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlIDBzOwp9Ci5jdF9fZGV0YWlscyBwIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7Cn0KLmN0X19hZGRyZXNzX19pY29uIHsKICAgIG1hcmdpbi1yaWdodDogMThweDsKfQouY3RfX2RldGFpbHMgcCBhOmhvdmVyIHsKICAgIGNvbG9yOiAjZmNjMjM2Owp9CiNnb29nbGVNYXAgewogICAgaGVpZ2h0OiA0NzBweDsKICAgIHdpZHRoOiAxMDAlOwp9Ci5tYXBfX2NvbnRhY3RzewogICAgbWFyZ2luLXRvcDogNTBweDsKfQoKLmh0Y19fY29udGFjdF9fZm9ybV9fd3JhcCB7CiAgICBtYXJnaW4tdG9wOiAxMDBweDsKfQouc2luZ2xlLWNvbnRhY3QtaW5uZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIG1hcmdpbi1sZWZ0OiAtMjhweDsKICAgIG1hcmdpbi1yaWdodDogLTI4cHg7CiAgICBtYXJnaW4tdG9wOiA0OHB4Owp9Ci5zaW5nbGUtY29udGFjdC1mb3JtIHsKICAgIHBhZGRpbmc6IDAgMjhweDsKICAgIHdpZHRoOiA1MCU7Cn0KLmNvbnRhY3QtYm94IHNwYW4gewogICAgY29sb3I6ICM2MDYwNjA7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogOXB4Owp9Ci5jb250YWN0LWJveCArIC5jb250YWN0LWJveCB7CiAgICBtYXJnaW4tdG9wOiAxN3B4Owp9Ci5jb250YWN0LWJveCBpbnB1dCB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgaGVpZ2h0OiAzNXB4OwogICAgcGFkZGluZzogMCAxMHB4Owp9Ci5jb250YWN0LWJ0biB7CiAgICBtYXJnaW4tdG9wOiAyNXB4Owp9Ci5jb250YWN0LWJveC5tZXNzYWdlIHRleHRhcmVhIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgbWluLWhlaWdodDogMjA1cHg7Cn0KLmNvbnRhY3QtYnRuIC5odGNfX2J0biB7CiAgZm9udC1zaXplOiAxMnB4OwogIGhlaWdodDogMzVweDsKICBsaW5lLWhlaWdodDogMzRweDsKICBwYWRkaW5nOiAwIDI4cHg7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKCgoKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMjIuIExvZyBJbiBSZWdpc3RlciBBcmVhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5zaW5nbGVfX3RhYnNfX3BhbmVsLnRhYi1wYW5lOm5vdCguYWN0aXZlKSB7CiAgICBkaXNwbGF5OiBub25lOwp9CgoubG9naW5fX3JlZ2lzdGVyX19tZW51IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG1hcmdpbjogMCBhdXRvIDUxcHg7CiAgICBtYXgtd2lkdGg6IDM3MHB4Owp9Ci5sb2dpbl9fcmVnaXN0ZXJfX21lbnUgbGkgYSB7CiAgICBjb2xvcjogIzAwMDAwMDsKICAgIGZvbnQtc2l6ZTogMzZweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UgMHM7Cn0KLmxvZ2luX19yZWdpc3Rlcl9fbWVudSBsaSB7CiAgICBwYWRkaW5nOiAwIDIwcHg7Cn0KLmxvZ2luX19yZWdpc3Rlcl9fbWVudSBsaS5hY3RpdmUgYSB7CiAgICBjb2xvcjogI2ZjYzIzNjsKfQoubG9naW5fX3JlZ2lzdGVyX19tZW51IGxpIGE6aG92ZXIgewogICAgY29sb3I6ICNmY2MyMzY7Cn0KLmh0Y19fbG9naW5fX3JlZ2lzdGVyX193cmFwIHsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgbWF4LXdpZHRoOiAzNzBweDsKfQoubG9naW4gaW5wdXQgewogICAgLW1vei1ib3JkZXItYm90dG9tLWNvbG9yczogbm9uZTsKICAgIC1tb3otYm9yZGVyLWxlZnQtY29sb3JzOiBub25lOwogICAgLW1vei1ib3JkZXItcmlnaHQtY29sb3JzOiBub25lOwogICAgLW1vei1ib3JkZXItdG9wLWNvbG9yczogbm9uZTsKICAgIGJvcmRlci1jb2xvcjogY3VycmVudGNvbG9yIGN1cnJlbnRjb2xvciAjOGU4ZThlOwogICAgYm9yZGVyLWltYWdlOiBub25lOwogICAgYm9yZGVyLXN0eWxlOiBub25lIG5vbmUgc29saWQ7CiAgICBib3JkZXItd2lkdGg6IDAgMCAxcHg7CiAgICBjb2xvcjogIzY4Njg2ODsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGhlaWdodDogNDBweDsKICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgcGFkZGluZzogMCAxNXB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoubG9naW4gaW5wdXQgKyBpbnB1dCB7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgbWFyZ2luLXRvcDogNDBweDsKfQoudGFic19fY2hlY2tib3ggc3Bhbi5mb3JnZXQgYXsKICAgIGZsb2F0OiByaWdodDsKICAgIGNvbG9yOiAjZmNjMjM2OwogICAgZm9udC1zaXplOiAxMnB4Owp9Ci50YWJzX19jaGVja2JveCBsYWJlbCB7CiAgICBib3R0b206IDJweDsKICAgIGNvbG9yOiAjOTk5OwogICAgZm9udC1zaXplOiAxNXB4OwogICAgcGFkZGluZy1sZWZ0OiA5cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KLnRhYnNfX2NoZWNrYm94IHsKICAgIG1hcmdpbi1ib3R0b206IDIwcHg7Cn0KLnRhYnNfX2NoZWNrYm94IHNwYW4gewogICAgY29sb3I6ICM2ODY4Njg7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIHBhZGRpbmctbGVmdDogNXB4Owp9Ci5odGNfX2xvZ2luX19idG4gYSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UgMHM7CiAgICB3aWR0aDogMTUwcHg7CiAgICBjb2xvcjogIzRiNGI0YjsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmh0Y19fbG9naW5fX2J0biB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmxvZ2luIGlucHV0Omxhc3QtY2hpbGQgewogICAgbWFyZ2luLXRvcDogMTRweDsKfQouaHRjX19zb2NpYWxfX2Nvbm5lY3QgaDIgewogICAgY29sb3I6ICMwMDA7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgbWFyZ2luLXRvcDogNTBweDsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKfQouaHRjX19zb2FpYWxfX2xpc3QgewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9Ci5odGNfX3NvYWlhbF9fbGlzdCBsaSBhIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgaGVpZ2h0OiAzNXB4OwogICAgbGluZS1oZWlnaHQ6IDM1cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgd2lkdGg6IDM1cHg7Cn0KLnVzZXJfX21ldGFfX2lubmVyIC5odGNfX3NvYWlhbF9fbGlzdCB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47Cn0KLmh0Y19fc29haWFsX19saXN0IGxpIGEgaSB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTZweDsKfQouaHRjX19zb2NpYWxfX2Nvbm5lY3QgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5odGNfX3NvYWlhbF9fbGlzdCBsaSArIGxpIHsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4Owp9Ci5sb2dpbiBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzY4Njg2OCAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7Cn0KLmh0Y19fbG9naW5fX2J0biBhOmhvdmVyewogICAgYmFja2dyb3VuZDogI2ZjYzIzNjsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyOiAxcHggc29saWQgI2ZjYzIzNjsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBNb2JpbGUgTWVudQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLm1lYW4tY29udGFpbmVyIC5tZWFuLWJhciB7CiAgbWluLWhlaWdodDogMDsKICBwYWRkaW5nOiAwOwp9Ci5tZWFuLWNvbnRhaW5lciBhLm1lYW5tZW51LXJldmVhbCB7CiAgbWFyZ2luLXRvcDogLTg4cHg7Cn0KOmZvY3VzIHsKICAgIG91dGxpbmU6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBhdXRvIDBweDsKfQ==