IyBCb29zdC5NdWx0aUluZGV4IGV4YW1wbGVzIEphbWZpbGUKIwojIENvcHlyaWdodCAyMDAzLTIwMDcgSm9hcXXtbiBNIEzzcGV6IE118W96LgojIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KIyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CiMgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQojCiMgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXVsdGlfaW5kZXggZm9yIGxpYnJhcnkgaG9tZSBwYWdlLgoKZXhlIGJhc2ljCiAgICA6IGJhc2ljLmNwcAogICAgOiA8aW5jbHVkZT4kKEJPT1NUX1JPT1QpCiAgICA7CgpleGUgYmltYXAKICAgIDogYmltYXAuY3BwCiAgICA6IDxpbmNsdWRlPiQoQk9PU1RfUk9PVCkKICAgIDsKCmV4ZSBjb21wbGV4X3N0cnVjdHMKICAgIDogY29tcGxleF9zdHJ1Y3RzLmNwcAogICAgOiA8aW5jbHVkZT4kKEJPT1NUX1JPT1QpCiAgICA7CgpleGUgY29tcG9zaXRlX2tleXMKICAgIDogY29tcG9zaXRlX2tleXMuY3BwCiAgICA6IDxpbmNsdWRlPiQoQk9PU1RfUk9PVCkKICAgIDsKCmV4ZSBmdW5fa2V5CiAgICA6IGZ1bl9rZXkuY3BwCiAgICA6IDxpbmNsdWRlPiQoQk9PU1RfUk9PVCkKICAgIDsKCmV4ZSBoYXNoZWQKICAgIDogaGFzaGVkLmNwcAogICAgOiA8aW5jbHVkZT4kKEJPT1NUX1JPT1QpCiAgICA7CgpleGUgaXBfYWxsb2NhdG9yCiAgICA6IGlwX2FsbG9jYXRvci5jcHAKICAgIDogPGluY2x1ZGU+JChCT09TVF9ST09UKSA8dGhyZWFkaW5nPm11bHRpCiAgICA7CgpleGUgbm9uX2RlZmF1bHRfY3RvcgogICAgOiBub25fZGVmYXVsdF9jdG9yLmNwcAogICAgOiA8aW5jbHVkZT4kKEJPT1NUX1JPT1QpCiAgICA7CgpleGUgcmFuZG9tX2FjY2VzcwogICAgOiByYW5kb21fYWNjZXNzLmNwcAogICAgOiA8aW5jbHVkZT4kKEJPT1NUX1JPT1QpCiAgICA7CgpleGUgcmVhcnJhbmdlCiAgICA6IHJlYXJyYW5nZS5jcHAKICAgIDogPGluY2x1ZGU+JChCT09TVF9ST09UKQogICAgOwoKZXhlIHNlcXVlbmNlZAogICAgOiBzZXF1ZW5jZWQuY3BwCiAgICA6IDxpbmNsdWRlPiQoQk9PU1RfUk9PVCkKICAgIDsKCmV4ZSBzZXJpYWxpemF0aW9uCiAgICA6IHNlcmlhbGl6YXRpb24uY3BwCiAgICAgIC9ib29zdC9zZXJpYWxpemF0aW9uLy9ib29zdF9zZXJpYWxpemF0aW9uCiAgICA6IDxpbmNsdWRlPiQoQk9PU1RfUk9PVCkKICAgIDsK