IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMKIyAgUmFpbHN5cwojICAtLS0tLS0tLS0tLS0tLQojCiMgIENvcHlyaWdodCAoYykgMjAwMiBJbnN0aXR1dGUgb2YgVHJhbnNwb3J0LCAKIyAgICAgICAgICAgICBSYWlsd2F5IENvbnN0cnVjdGlvbiBhbmQgT3BlcmF0aW9uLCAKIyAgICAgICAgICAgICBVbml2ZXJzaXR5IG9mIEhhbm92ZXIsIEdlcm1hbnkKIyAgQ29weXJpZ2h0IChjKSAyMDA2IEr8cmdlbiBIdW5vbGQKIwojICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCiMgICAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAojICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKIwojICAwMi8yMS8wMiEgSvxyZ2VuIEh1bm9sZAojCiMgICRJZDogamFtZmlsZS5qYW0gNTUxODggMjAwOS0wNy0yNiAyMDoxMTowM1ogZGFuaWVsamFtZXMgJAojCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKbG9jYWwgQk9PU1RfUk9PVCA9IFsgbW9kdWxlcy5wZWVrIDogQk9PU1RfUk9PVCBdIDsKCnVzZS1wcm9qZWN0IC9saWJ4IDogLi4vbGlieC9zcmMgOwoKcHJvamVjdCBwcm9ncmFtCiAgICA6IHJlcXVpcmVtZW50cyAKICAgICAgICA8aW5jbHVkZT4kKEJPT1NUX1JPT1QpCiAgICAgICAgPHRocmVhZGluZz5tdWx0aQogICAgICAgIDxsaWJyYXJ5Pi9xdDMvL3F0ICAgIAogICAgICAgIDxoYXJkY29kZS1kbGwtcGF0aHM+dHJ1ZQogICAgICAgIDxzdGRsaWI+c3RscG9ydAogICAgICAgIDx1c2U+L2xpYngKICAgICAgICA8bGlicmFyeT4vbGlieC8vbGlieAogICAgICAgICAgIAogOiB1c2FnZS1yZXF1aXJlbWVudHMgCiAgICAgICAgPGluY2x1ZGU+JChCT09TVF9ST09UKQogICAgICAgIDogCiAgICAgICAgZGVmYXVsdC1idWlsZCByZWxlYXNlCiAgICAgICAgPHRocmVhZGluZz5tdWx0aQogICAgICAgIDxsaWJyYXJ5Pi9xdDMvL3F0CiAgICAgICAgPGhhcmRjb2RlLWRsbC1wYXRocz50cnVlCiAgICAgICAgOwoKYnVpbGQtcHJvamVjdCBtYWluIDsKCg==