IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIENvcHlyaWdodCAoYykgMjAxNiDJY29sZSBQb2x5dGVjaG5pcXVlIGRlIE1vbnRy6WFsCiMKIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAojIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAKIwojIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCk1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfWGFGUGFyYW1ldGVycz1lWHRlbmRlZCBBbmFseXNpcyBGZWF0dXJlIFBhcmFtZXRlcnMKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19CdXR0b25Qcm92aWRlTW9kZWw9SSBoYXZlIGEgbW9kZWwgdG8gcHJvdmlkZQpNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX0J1dHRvbkdlbmVyYXRlTW9kZWw9SSB3YW50IHRoZSBhbmFseXNpcyB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoZSBtb2RlbApNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX0ZpbGVDaG9vc2VyTGFiZWw9TW9kZWwgbG9jYXRpb246Ck1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfRmlsZUNob29zZXJEaWFsb2dUaXRsZT1TZWxlY3QgdGhlIG1vZGVsIGxvY2F0aW9uCk1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfVmFyaWFibGVzR3JvdXA9VmFyaWFibGUgdHlwZXMgdG8gdXNlCk1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfVmFyaWFibGVzTGFiZWxEZWZhdWx0PVNlbGVjdCBhIHZhcmlhYmxlIHR5cGUgdG8gZ2V0IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaXQKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19WYXJpYWJsZXNMYWJlbERlYWRsaW5lPWRlYWRsaW5lIChGUkVFKVxuXG5TcGVjaWZ5IGRlYWRsaW5lcwpNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX1ZhcmlhYmxlc0xhYmVsUHJlZW1wdD1wcmVlbXB0IChDT1VOVEVSKVxuXG5Db3VudHMgdGhlIG51bWJlciBvZiB0aW1lIGEgcHJvY2VzcyBoYXMgYmVlbiBwcmVlbXB0ZWQKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19WYXJpYWJsZXNMYWJlbFN5c2NhbGxzPXN5c2NhbGxzIChDT1VOVEVSKVxuXG5Db3VudHMgdGhlIG51bWJlciBvZiBzeXNjYWxscyBkb25lIGJ5IGEgcHJvY2VzcwpNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX1ZhcmlhYmxlc0xhYmVsQ3B1dGltZT1jcHV0aW1lIChUSU1FUilcblxuQ29tcHV0ZSB0aGUgQ1BVIHRpbWUgdXNlZCBieSBhIHByb2Nlc3MKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19UaW1lUmFuZ2VzR3JvdXA9VGltZSByYW5nZXMgdG8gY29uc2lkZXIKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19UaW1lUmFuZ2VzTGFiZWxGcm9tPUZyb20KTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19UaW1lUmFuZ2VzTGFiZWxUbz1UbwpNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX1RpbWVSYW5nZXNCdXR0b25BZGQ9QWRkCk1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfVGltZVJhbmdlc0J1dHRvblJlbW92ZT1SZW1vdmUgc2VsZWN0ZWQKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19UaW1lUmFuZ2VzQnV0dG9uQ2xlYXI9Q2xlYXIKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19UaW1lUmFuZ2VzRXJyb3JJbnZhbGlkSW50ZXJ2YWw9VGhpcyBpbnRlcnZhbCBpcyBub3QgdmFsaWQKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19UaW1lUmFuZ2VzRXJyb3JJbnRlcnZhbEFscmVhZHlBZGRlZD1UaGlzIGludGVydmFsIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgaW4gdGhlIGxpc3QKTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19Qcm92aWRlTW9kZWxFcnJvck5vTW9kZWxMb2NhdGlvbj1ObyBwYXRoIGhhcyBiZWVuIHByb3ZpZGVkIGZvciB0aGUgbW9kZWwgbG9jYXRpb24KTWFuYWdlWGFGUGFyYW1ldGVyc0RpYWxvZ19Qcm92aWRlTW9kZWxFcnJvck1vZGVsTG9jYXRpb25Eb2VzTm90RXhpc3Q9UGF0aCAnJXMnIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgYmUgcmVhZCBvciBpcyBub3QgYSBmaWxlCk1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfR2VuZXJhdGVNb2RlbEVycm9yTm9Nb2RlbExvY2F0aW9uRGlhbG9nPU5vIG1vZGVsIGxvY2F0aW9uIGhhcyBiZWVuIHByb3ZpZGVkLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGdlbmVyYXRlZCBtb2RlbCB3aWxsIG5vdCBiZSBzYXZlZC4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlPwpNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX0dlbmVyYXRlTW9kZWxFcnJvckNhbm5vdENyZWF0ZVRlbXBGaWxlPUNvdWxkIG5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZmlsZSB0byBnZW5lcmF0ZSB0aGUgbW9kZWwuIEFib3J0aW5nLgpNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX0dlbmVyYXRlTW9kZWxFcnJvck1vZGVsTG9jYXRpb25Jc0Rpcj1QYXRoICclcycgaXMgYSBkaXJlY3RvcnksIHRoZSBtb2RlbCBjYW5ub3QgYmUgc2F2ZWQgdGhlcmUuCk1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfR2VuZXJhdGVNb2RlbEVycm9yTW9kZWxMb2NhdGlvbk5vdFdyaXRlYWJsZT1GaWxlICclcycgY2Fubm90IGJlIHdyaXR0ZW4gdG8uCk1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfR2VuZXJhdGVNb2RlbEVycm9yT3ZlcndyaXRlRmlsZURpYWxvZz1GaWxlICclcycgYWxyZWFkeSBleGlzdHMsIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgaXQ/Ck1hbmFnZVhhRlBhcmFtZXRlcnNEaWFsb2dfQnV0dG9uQ2hlY2tNb2RlbD1DaGVjayB0aGUgZ2VuZXJhdGVkIG1vZGVsIGJlZm9yZSBydW5uaW5nIHRoZSBhbmFseXNpcwpNYW5hZ2VYYUZQYXJhbWV0ZXJzRGlhbG9nX0J1dHRvbkFsbEluc3RhbmNlc1ZhbGlkPUNvbnNpZGVyIGFsbCBpbnN0YW5jZXMgaW4gdGhlIHRyYWNlIGFzIHZhbGlkIChubyBhbmFseXNpcyB3aWxsIGJlIHJhbikK